diff --git a/.gitignore b/.gitignore index dd5dcda..e8fb3de 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,6 @@ rivet-cli/assets/wasm/*.wasm rivet-cli/assets/wasm/js/ vscode-rivet/node_modules/ +vscode-rivet/bin/rivet +vscode-rivet/out/ +vscode-rivet/*.vsix diff --git a/Cargo.lock b/Cargo.lock index ddcd6da..03022be 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -921,7 +921,7 @@ dependencies = [ [[package]] name = "etch" -version = "0.2.0" +version = "0.3.0" dependencies = [ "petgraph 0.7.1", ] @@ -2570,7 +2570,7 @@ dependencies = [ [[package]] name = "rivet-cli" -version = "0.2.0" +version = "0.3.0" dependencies = [ "anyhow", "axum", @@ -2594,7 +2594,7 @@ dependencies = [ [[package]] name = "rivet-core" -version = "0.2.0" +version = "0.3.0" dependencies = [ "anyhow", "criterion", diff --git a/Cargo.toml b/Cargo.toml index 62485ec..af4ee87 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,7 +7,7 @@ members = [ ] [workspace.package] -version = "0.2.0" +version = "0.3.0" authors = ["PulseEngine "] edition = "2024" license = "Apache-2.0" diff --git a/artifacts/decisions.yaml b/artifacts/decisions.yaml index 849a949..2e67606 100644 --- a/artifacts/decisions.yaml +++ b/artifacts/decisions.yaml @@ -879,3 +879,64 @@ artifacts: missing optional WASM assets. alternatives: Serve from filesystem at runtime. Rejected because it requires deploying assets separately from the binary. + + - id: DD-040 + type: design-decision + title: Status-driven traceability enforcement + status: draft + description: > + Traceability rule enforcement is gated on artifact status. Draft + artifacts get info-level diagnostics for missing links; active and + approved artifacts get errors. The schema defines which statuses + enforce traceability via "enforce-links-for-status" (default: + ["active", "approved"]). This separates "not yet done" from + "structurally broken" without requiring a separate completeness + field or workflow state machine. + tags: [validation, workflow, architecture] + links: + - type: satisfies + target: REQ-039 + - type: implements + target: FEAT-070 + fields: + rationale: > + Projects always have work-in-progress artifacts where links are not + yet established. Treating these as errors forces teams to either + suppress warnings globally (losing signal) or add placeholder links + (creating noise). Using the existing status field avoids new concepts + while giving clear semantics: draft = aspirational tracing, + active/approved = enforced tracing. + alternatives: > + (1) Separate completeness field (rejected: adds a new dimension to + every artifact for a single validation behavior). (2) Baseline-scoped + enforcement (rejected: baselines are release markers, not workflow + state). (3) Per-rule severity override (rejected: too granular, + rule-level config does not match the artifact-level intent). + + - id: DD-041 + type: design-decision + title: Shared render module for serve, LSP, and export + status: active + description: > + HTML rendering extracted from serve/views.rs into a render/ module + with pure functions taking RenderContext and returning HTML strings. + Serve wraps in page/embed/print layouts. LSP returns via custom + rivet/render request for VS Code WebViews. Future HTML export calls + the same functions for static site generation. + tags: [architecture, rendering, vscode] + links: + - type: implements + target: FEAT-066 + - type: satisfies + target: REQ-007 + fields: + rationale: > + Three consumers need the same rendered output: serve (browser), + VS Code (WebView via LSP), and export (static HTML). Duplicating + rendering logic is unmaintainable. Pure functions with a shared + RenderContext allow each consumer to construct the context from + its own data source while sharing all HTML generation. + alternatives: > + (1) VS Code embeds serve via iframe (rejected: fails over SSH Remote). + (2) Separate TypeScript renderer (rejected: duplicates rendering). + (3) Template engine (rejected: string building is sufficient). diff --git a/artifacts/features.yaml b/artifacts/features.yaml index f1e31ce..9e88c5c 100644 --- a/artifacts/features.yaml +++ b/artifacts/features.yaml @@ -1142,3 +1142,92 @@ artifacts: fields: phase: phase-2 baseline: v0.1.0 + + - id: FEAT-066 + type: feature + title: VS Code LSP-based WebView rendering + status: active + description: > + VS Code extension renders dashboard views via custom LSP requests + (rivet/render, rivet/treeData, rivet/css) instead of embedding a web + server. Shell document pattern loads assets once, content updates via + postMessage. Works in local and SSH Remote environments without port + forwarding. Tree view with expandable artifact files and documents. + tags: [vscode, lsp, rendering, phase-3] + links: + - type: satisfies + target: REQ-007 + fields: + phase: phase-3 + baseline: v0.3.0 + + - id: FEAT-067 + type: feature + title: SysML v2 parser (spar-sysml2 crate) + status: draft + description: > + Rowan-based lossless parser for SysML v2 textual notation. Same + architecture as spar-parser (AADL): grammar definition, lexer, + parser with error recovery, rowan CST. Covers KerML kernel library + and SysML v2 language constructs including requirements, constraints, + use cases, and allocations. + tags: [sysml, parser, future] + links: + - type: satisfies + target: REQ-037 + fields: + phase: future + baseline: v0.3.0 + + - id: FEAT-068 + type: feature + title: SysML v2 to AADL model lowering + status: draft + description: > + Transform SysML v2 system architecture models into AADL execution + platform models. Maps SysML v2 parts/ports to AADL components/features, + SysML v2 allocations to AADL bindings, and SysML v2 timing constraints + to AADL properties. Based on SEI's SysML v2 + AADL mapping rules. + tags: [sysml, aadl, lowering, future] + links: + - type: satisfies + target: REQ-038 + fields: + phase: future + baseline: v0.3.0 + + - id: FEAT-069 + type: feature + title: SysML v2 requirement adapter for rivet + status: draft + description: > + Adapter that extracts requirement elements from parsed SysML v2 files + and generates rivet artifact YAML. Maps SysML v2 satisfy/verify + relationships to rivet link types. Enables tracing through + SysML v2 (system) → AADL (deployment) → code (implementation). + tags: [sysml, adapter, future] + links: + - type: satisfies + target: REQ-037 + fields: + phase: future + baseline: v0.3.0 + + - id: FEAT-070 + type: feature + title: Draft-aware validation severity + status: draft + description: > + Validation engine downgrades traceability rule violations from error + to info for artifacts with status "draft". Missing required links on + draft artifacts produce informational diagnostics ("link not yet + established") rather than errors. Active/approved artifacts enforce + full traceability. Configurable via schema field + "enforce-links-for-status" with default ["active", "approved"]. + tags: [validation, workflow, phase-3] + links: + - type: satisfies + target: REQ-039 + fields: + phase: phase-3 + baseline: v0.3.0 diff --git a/artifacts/requirements.yaml b/artifacts/requirements.yaml index e9f80f3..ea105b4 100644 --- a/artifacts/requirements.yaml +++ b/artifacts/requirements.yaml @@ -613,3 +613,52 @@ artifacts: category: functional priority: should baseline: v0.2.0-dev + + - id: REQ-037 + type: requirement + title: SysML v2 artifact import + status: draft + description: > + Import requirement and constraint elements from SysML v2 textual notation + files (.sysml) as rivet artifacts. Parse SysML v2 using a rowan-based + lossless parser (same pattern as spar's AADL parser). Extract requirement + elements with their attributes, rationale, and satisfy/verify relationships, + mapping them to rivet artifact YAML. + tags: [sysml, adapter, future] + fields: + priority: should + category: functional + baseline: v0.3.0 + + - id: REQ-038 + type: requirement + title: SysML v2 to AADL model lowering + status: draft + description: > + Lower SysML v2 system models to AADL execution platform models where + timing, scheduling, and resource binding semantics exist. Implements + the mapping rules specified by SEI's "Extending SysML v2 with AADL + Concepts" research. Enables multi-level architecture analysis: + SysML v2 (system-level) to AADL (deployment-level) to implementation. + tags: [sysml, aadl, architecture, future] + fields: + priority: could + category: functional + baseline: v0.3.0 + + - id: REQ-039 + type: requirement + title: Draft-aware validation severity + status: draft + description: > + Validation diagnostics for traceability rules (missing required links, + incomplete coverage) must respect artifact maturity. Artifacts with + status "draft" produce info-level diagnostics for unfulfilled links + instead of errors. Only "active" or "approved" artifacts are held to + full traceability enforcement. This distinguishes "not yet done" from + "broken" in projects with work-in-progress artifacts. + tags: [validation, workflow, core] + fields: + priority: must + category: functional + baseline: v0.3.0 diff --git a/deny.toml b/deny.toml index c3c8c4e..9da3639 100644 --- a/deny.toml +++ b/deny.toml @@ -4,6 +4,11 @@ [advisories] # Vulnerabilities are denied by default in cargo-deny >=0.16. # Yanked crates produce warnings by default. +ignore = [ + # `instant` is unmaintained (RUSTSEC-2024-0384) but pulled in transitively + # by notify 7.0.0 → notify-types. No fix available upstream yet. + "RUSTSEC-2024-0384", +] [licenses] # Confidence threshold for license detection diff --git a/docs/plans/2026-03-22-vscode-lsp-rendering-design.md b/docs/plans/2026-03-22-vscode-lsp-rendering-design.md new file mode 100644 index 0000000..984bef7 --- /dev/null +++ b/docs/plans/2026-03-22-vscode-lsp-rendering-design.md @@ -0,0 +1,515 @@ +# VS Code Extension: LSP-Based Rendering + +**Date:** 2026-03-22 +**Status:** Draft + +## Problem + +The VS Code extension currently uses Simple Browser to embed `rivet serve` output. +This approach: +- Fails over SSH Remote (port forwarding is fragile) +- Doesn't feel native (browser chrome, no toolbar actions) +- Depends on a running HTTP server +- Tree view is flat (11 static items, no document expansion) + +## Goal + +A native VS Code extension where: +1. Sidebar tree view shows documents (expandable with artifacts), views, schemas, help +2. Clicking an item opens a rendered WebView panel +3. "Show Source" action jumps to the YAML file and line +4. Works identically in local and SSH Remote environments +5. Zero network dependencies -- all data flows through LSP (stdin/stdout) + +## Architecture + +### Core Principle: Render functions extracted from serve.rs + +serve.rs currently has ~6300 lines of view handlers in `views.rs`, ~850 lines of +components in `components.rs`, layouts in `layout.rs`, styles in `styles.rs`, and +JS in `js.rs`. The HTML generation is string-building (no template engine), with +route handlers calling helper functions and returning `Html`. + +Extract the HTML generation into **context-agnostic render functions** in a new +`rivet-cli/src/render/` module (peer to `serve/`). These functions: +- Take a `RenderContext` struct + view params +- Return `String` (raw HTML content, no layout wrapper) +- Are called by serve route handlers (wrapped in page/embed/print layout) +- Are called by LSP for the `rivet/render` custom request + +``` +rivet-core types (Store, Schema, LinkGraph, Artifact, ...) + | + render functions (render/, components -- extracted from serve) + | + +----+----+----+ + | | | + serve LSP export (future) + (axum) (stdio) (static HTML) + | | + browser VS Code WebView +``` + +### RenderContext + +Both serve (via AppState) and the LSP (via salsa DB + supplementary state) must +provide the same data to render functions. Define a shared context: + +```rust +/// Everything a render function might need. Not all views use all fields. +pub struct RenderContext<'a> { + pub store: &'a Store, + pub schema: &'a Schema, + pub graph: &'a LinkGraph, + pub doc_store: &'a DocumentStore, + pub result_store: &'a ResultStore, + pub diagnostics: &'a [Diagnostic], + pub context: &'a RepoContext, // project name, branch, git status + pub externals: &'a [ExternalInfo], + pub project_path: &'a Path, + pub schemas_dir: &'a Path, +} +``` + +**Serve** constructs this from `AppState` (trivial -- all fields already exist). + +**LSP** constructs this from: +- `store`, `schema`: already available via salsa (`build_store`, `build_schema`) +- `graph`: expose `build_link_graph` as a public salsa query (currently internal) +- `diagnostics`: already computed via `validate_all` +- `doc_store`: **new** -- add `DocumentStore` loading to LSP startup + refresh on + `didSave`. Documents are parsed from markdown files listed in `rivet.yaml`. +- `result_store`: **new** -- add `ResultStore` loading (reads `results/` dir). + Can be loaded lazily on first render of `/results` page. +- `context`: **new** -- add `RepoContext` construction (git branch, project name). + Lightweight, can be computed at startup. +- `externals`: **new** -- load from `rivet.yaml` config at startup. + +The LSP data gap is manageable: DocumentStore, ResultStore, RepoContext, and +externals are all loaded eagerly by serve today. The same loading code can be +called from the LSP. Only LinkGraph requires a salsa change (make the query public). + +### Custom LSP Request: `rivet/render` + +**Request:** +```json +{ + "method": "rivet/render", + "params": { + "page": "/artifacts/REQ-001", + "params": { "sort": "id", "dir": "asc" }, + "seq": 42 + } +} +``` + +The `seq` field is a monotonically increasing sequence number assigned by the +extension. The response echoes it back. The extension only applies responses where +`seq` matches the current expected value (handles rapid clicking without needing +LSP-level request cancellation). + +**Response (success):** +```json +{ + "html": "
...
", + "title": "REQ-001 -- System shall track artifacts", + "sourceFile": "artifacts/requirements.yaml", + "sourceLine": 42, + "seq": 42 +} +``` + +**Response (error):** +```json +{ + "html": "

Not Found

Artifact REQ-999 does not exist.

", + "title": "Error", + "sourceFile": null, + "sourceLine": null, + "seq": 42 +} +``` + +The response includes content HTML (no layout wrapper), a title for the VS Code +tab, source location for the "Show Source" action, and the sequence number. + +**Blocking concern:** The LSP uses `lsp_server` with a synchronous message loop. +A large render (e.g., graph with 500 nodes) could block hover/completion responses. +Mitigation: render functions are pure CPU work in Rust -- even complex views render +in <50ms. If profiling shows a problem, move rendering to a background thread with +a oneshot channel. Not needed for v1. + +### Custom LSP Request: `rivet/treeData` + +**Request:** +```json +{ + "method": "rivet/treeData", + "params": { + "parent": null + } +} +``` + +**Response (top-level):** +```json +{ + "items": [ + { + "kind": "category", + "label": "Documents", + "children": [ + { + "kind": "document", + "label": "Requirements", + "description": "artifacts/requirements.yaml", + "artifactCount": 36, + "path": "artifacts/requirements.yaml", + "page": "/documents/requirements" + } + ] + }, + { + "kind": "category", + "label": "Views", + "children": [ + { "kind": "view", "label": "Stats", "page": "/stats", "icon": "dashboard" }, + { "kind": "view", "label": "Validation", "page": "/validate", "icon": "pass" } + ] + }, + { + "kind": "category", + "label": "Schemas", + "children": [ + { "kind": "schema", "label": "aspice", "page": "/help/schema/aspice", "typeCount": 14 } + ] + }, + { + "kind": "category", + "label": "Help", + "children": [ + { "kind": "help", "label": "Documentation", "page": "/help/docs" } + ] + } + ] +} +``` + +**Request (expand document to show artifacts):** +```json +{ + "method": "rivet/treeData", + "params": { + "parent": "artifacts/requirements.yaml" + } +} +``` + +**Response:** +```json +{ + "items": [ + { + "kind": "artifact", + "label": "REQ-001", + "description": "System shall track artifacts", + "page": "/artifacts/REQ-001", + "type": "requirement", + "sourceFile": "artifacts/requirements.yaml", + "sourceLine": 5 + } + ] +} +``` + +The top-level tree data is sent eagerly (small payload). Artifact expansion is +lazy per-document (on tree node expand). This avoids fetching 479 artifact labels +upfront, while documents with 80+ artifacts load only when expanded. + +### Custom LSP Notification: `rivet/artifactsChanged` + +When the LSP re-parses after a file change, it sends: +```json +{ + "method": "rivet/artifactsChanged", + "params": { + "artifactCount": 479, + "documentCount": 7, + "changedFiles": ["artifacts/requirements.yaml"] + } +} +``` + +The extension uses this to: +- Refresh the tree view +- If the currently displayed WebView shows content from a changed file, show an + unobtrusive "content changed -- click to refresh" banner (not auto-re-render, + user may be reading) + +### VS Code Extension Changes + +**Tree View** -- populated from LSP: + +``` +> Documents + Requirements [artifacts/requirements.yaml] (36) + Design Decisions [artifacts/design-decisions.yaml] (38) + Features [artifacts/features.yaml] (80) + Losses [safety/stpa/losses.yaml] (12) + Hazards [safety/stpa/hazards.yaml] (12) + ... +> Views + Stats + Validation + Graph + Matrix + Coverage + Traceability +> Schemas + common + aspice + stpa + stpa-sec + cybersecurity + dev + aadl +> Help + Documentation + Schema Reference + Link Types + Validation Rules +``` + +Tree refreshes on `rivet/artifactsChanged`. Document nodes are expandable (lazy +fetch via `rivet/treeData` with parent). Artifact nodes open the rendered view. + +**WebView Panels -- Shell Document Pattern:** + +Instead of replacing `panel.webview.html` on every navigation (which re-ships all +assets), the extension uses a **shell document** pattern: + +1. On first panel open, set `panel.webview.html` to a shell document containing: + - CSS (fonts + styles, ~280KB) -- loaded once + - Mermaid.js (~2.9MB) via `webview.asWebviewUri()` script tag -- loaded once + - Navigation shim JS + `acquireVsCodeApi()` setup + - VS Code theme CSS variable mappings + - An empty `
` container + - A message listener that updates `#content` on `update` messages + +2. On navigation, the extension sends content via `postMessage`: + ```typescript + panel.webview.postMessage({ + type: 'update', + html: renderResponse.html, + title: renderResponse.title, + }); + ``` + The shell's JS updates `#content` with the new HTML and re-triggers Mermaid + rendering on the new content. Note: the HTML content comes from Rivet's own + render functions (trusted source, not user input), so direct DOM insertion is + safe in this context. + +This means: +- CSS, fonts, Mermaid.js load **once** per panel lifetime +- Navigation sends only the content HTML (~5-50KB per page) +- Mermaid diagrams re-render only when content changes +- Scroll position is naturally preserved for same-page updates +- Panel uses `retainContextWhenHidden: true` to survive tab switches + +**Navigation flow:** + +``` +User clicks link in WebView + --> JS shim: e.preventDefault(), vscode.postMessage({type:'navigate', path:'/artifacts/REQ-002'}) + --> extension.ts: onDidReceiveMessage handler + --> extension.ts: increment seq, sendRequest('rivet/render', {page, seq}) + --> LSP: calls render function, returns {html, title, sourceFile, sourceLine, seq} + --> extension.ts: if seq matches current, panel.webview.postMessage({type:'update', html, title}) + --> Shell JS: updates #content container; mermaid.run() +``` + +Back/forward: extension maintains a history stack of `{path, params}` entries. +Back button in toolbar re-renders the previous path. + +**Toolbar actions:** +- Back / Forward (history navigation) +- Show Source (opens YAML at `sourceFile:sourceLine`) +- Refresh (re-render current page) +- Open in Browser (starts `rivet serve` if needed, opens in external browser) + +**Removed:** +- `rivet serve` auto-start for WebView +- Simple Browser usage +- `dashboardPanel` / `dashboardPort` globals + +**Kept (optional):** +- `rivet serve` behind "Open in Browser" command (starts on demand, not at activation) + +### Render Function Extraction + +The serve views.rs functions currently return `Html` with axum extractors. +Refactoring pattern: + +**Before (views.rs):** +```rust +async fn artifacts_list( + State(state): State, + Query(params): Query, +) -> Html { + let state = state.read().await; + // ... build HTML using state.store, state.schema, etc. + Html(html) +} +``` + +**After:** +```rust +// render/artifacts.rs -- pure function, no axum +pub fn artifacts_list(ctx: &RenderContext, params: &ViewParams) -> String { + // ... same HTML building logic, using ctx.store, ctx.schema, etc. + html +} + +// serve/views.rs -- thin axum wrapper +async fn artifacts_list( + State(state): State, + Query(params): Query, +) -> Html { + let state = state.read().await; + let ctx = state.as_render_context(); + Html(render::artifacts::artifacts_list(&ctx, ¶ms)) +} +``` + +The render module lives at `rivet-cli/src/render/` as a peer to `rivet-cli/src/serve/`. +Both import from it. Components, styles, and JS constants stay in `serve/` but are +re-exported or moved to `render/` as needed. + +### Asset Strategy + +Assets by size: +- `mermaid.min.js`: **~2.9 MB** +- `fonts.css` (base64-embedded font faces): **~227 KB** +- `styles.rs` CSS: **~50 KB** +- `htmx.min.js`: **~50 KB** (NOT included in VS Code -- no HTMX needed) + +**v1 strategy:** +- CSS + fonts (~280KB): inlined in the shell document (loaded once per panel) +- Mermaid.js (~2.9MB): loaded via `", + json + )); + } + + // Action buttons + html.push_str(&format!( + r##""##, + id_esc = html_escape(id), + )); + + RenderResult { + html, + title: format!("{} — {}", artifact.id, artifact.title), + source_file, + source_line: None, + } +} + +// ── Source-ref link helpers ─────────────────────────────────────────────── + +/// Turn `path/to/file.rs:42` patterns into clickable `/source/path/to/file.rs#L42` links. +/// Also handles ranges like `file.rs:10-20` and plain `path/to/file.rs` (no line). +fn linkify_source_refs(s: &str) -> String { + // Regex-free: scan for patterns like word/word.ext:digits or word/word.ext:digits-digits + let mut result = String::new(); + let src = s; + let mut pos = 0usize; + + while pos < src.len() { + // Look for file-like patterns: contains '/' or '.' and optionally ':digits' + if let Some(m) = find_source_ref(&src[pos..]) { + result.push_str(&src[pos..pos + m.start]); + let file_path = &m.file; + let encoded_path = urlencoding::encode(file_path); + if let Some(line) = m.line { + if let Some(end_line) = m.end_line { + result.push_str(&format!( + "{file_path}:{line}-{end_line}" + )); + } else { + result.push_str(&format!( + "{file_path}:{line}" + )); + } + } else { + result.push_str(&format!( + "{file_path}" + )); + } + pos += m.start + m.len; + } else { + result.push_str(&src[pos..]); + break; + } + } + result +} + +struct SourceRefMatch { + start: usize, + len: usize, + file: String, + line: Option, + end_line: Option, +} + +/// Find the next source-ref pattern in text: `some/path.ext:line` or `some/path.ext:line-line` +/// File must contain a `/` or `.` with a recognized extension. +fn find_source_ref(s: &str) -> Option { + let extensions = [ + ".rs", ".yaml", ".yml", ".toml", ".md", ".py", ".js", ".ts", ".tsx", ".jsx", ".c", ".h", + ".cpp", ".hpp", ".go", ".java", ".rb", ".sh", ".json", ".xml", ".aadl", + ]; + let len = s.len(); + let mut i = 0; + while i < len { + // Try to match a file path starting at position i + // A file path: sequence of [a-zA-Z0-9_/.\-] containing at least one '/' and ending with a known extension + let start = i; + let mut j = i; + let mut has_slash = false; + let mut has_ext = false; + while j < len { + let c = s.as_bytes()[j]; + if c.is_ascii_alphanumeric() || c == b'_' || c == b'/' || c == b'.' || c == b'-' { + if c == b'/' { + has_slash = true; + } + j += 1; + } else { + break; + } + } + if has_slash && j > start + 2 { + let candidate = &s[start..j]; + // Check if it ends with a known extension + for ext in &extensions { + if candidate.ends_with(ext) { + has_ext = true; + break; + } + } + if has_ext { + let file = candidate.to_string(); + // Check for :line or :line-line + if j < len && s.as_bytes()[j] == b':' { + let _colon_pos = j; + j += 1; + let line_start = j; + while j < len && s.as_bytes()[j].is_ascii_digit() { + j += 1; + } + if j > line_start { + let line: u32 = s[line_start..j].parse().unwrap_or(0); + if line > 0 { + // Check for range: -digits + if j < len && s.as_bytes()[j] == b'-' { + let dash = j; + j += 1; + let end_start = j; + while j < len && s.as_bytes()[j].is_ascii_digit() { + j += 1; + } + if j > end_start { + let end_line: u32 = s[end_start..j].parse().unwrap_or(0); + if end_line > 0 { + return Some(SourceRefMatch { + start, + len: j - start, + file, + line: Some(line), + end_line: Some(end_line), + }); + } + } + // Not a valid range, just use line + return Some(SourceRefMatch { + start, + len: dash - start, + file, + line: Some(line), + end_line: None, + }); + } + return Some(SourceRefMatch { + start, + len: j - start, + file, + line: Some(line), + end_line: None, + }); + } + } + } + // No line number, just file path + return Some(SourceRefMatch { + start, + len: j - start, + file, + line: None, + end_line: None, + }); + } + } + i += 1; + } + None +} diff --git a/rivet-cli/src/render/components.rs b/rivet-cli/src/render/components.rs new file mode 100644 index 0000000..d2aa5ae --- /dev/null +++ b/rivet-cli/src/render/components.rs @@ -0,0 +1,853 @@ +// ── Reusable UI components ────────────────────────────────────────────── +// Allow dead_code: functions here are foundation stubs used by future render tasks. +#![allow(dead_code)] + +use rivet_core::document::html_escape; + +/// Shared query parameters for views with filtering, sorting and pagination. +#[derive(Debug, serde::Deserialize, Default, Clone)] +pub(crate) struct ViewParams { + /// Comma-separated artifact type filter. + pub types: Option, + /// Status filter (e.g. "approved", "draft", "error", "warning"). + pub status: Option, + /// Comma-separated tag filter. + pub tags: Option, + /// Free-text search query. + pub q: Option, + /// Sort column name. + pub sort: Option, + /// Sort direction: "asc" or "desc". + pub dir: Option, + /// Current page (1-based). + pub page: Option, + /// Items per page. + pub per_page: Option, + /// Comma-separated IDs of open/expanded tree nodes. + pub open: Option, + /// Print mode flag (`1` = printable layout). + pub print: Option, +} + +impl ViewParams { + /// Build a query string from the current params (without leading `?`). + pub fn to_query_string(&self) -> String { + let mut parts: Vec = Vec::new(); + if let Some(ref v) = self.types { + if !v.is_empty() { + parts.push(format!("types={}", urlencoding::encode(v))); + } + } + if let Some(ref v) = self.status { + if !v.is_empty() { + parts.push(format!("status={}", urlencoding::encode(v))); + } + } + if let Some(ref v) = self.tags { + if !v.is_empty() { + parts.push(format!("tags={}", urlencoding::encode(v))); + } + } + if let Some(ref v) = self.q { + if !v.is_empty() { + parts.push(format!("q={}", urlencoding::encode(v))); + } + } + if let Some(ref v) = self.sort { + if !v.is_empty() { + parts.push(format!("sort={}", urlencoding::encode(v))); + } + } + if let Some(ref v) = self.dir { + if !v.is_empty() { + parts.push(format!("dir={}", urlencoding::encode(v))); + } + } + if let Some(v) = self.page { + if v > 1 { + parts.push(format!("page={v}")); + } + } + if let Some(v) = self.per_page { + if v != 50 { + parts.push(format!("per_page={v}")); + } + } + if let Some(ref v) = self.open { + if !v.is_empty() { + parts.push(format!("open={}", urlencoding::encode(v))); + } + } + if let Some(ref v) = self.print { + if v == "1" { + parts.push("print=1".to_string()); + } + } + parts.join("&") + } + + /// Build a query string omitting the `page` parameter (for building pagination links). + pub fn query_string_without_page(&self) -> String { + let mut copy = self.clone(); + copy.page = None; + copy.to_query_string() + } + + /// Parse the `types` param into a list of type names. + pub fn type_list(&self) -> Vec { + self.types + .as_deref() + .filter(|s| !s.is_empty()) + .map(|s| s.split(',').map(|t| t.trim().to_string()).collect()) + .unwrap_or_default() + } + + /// Parse the `tags` param into a list of tag names. + pub fn tag_list(&self) -> Vec { + self.tags + .as_deref() + .filter(|s| !s.is_empty()) + .map(|s| s.split(',').map(|t| t.trim().to_string()).collect()) + .unwrap_or_default() + } + + /// Parse the `open` param into a list of IDs. + pub fn open_list(&self) -> Vec { + self.open + .as_deref() + .filter(|s| !s.is_empty()) + .map(|s| s.split(',').map(|t| t.trim().to_string()).collect()) + .unwrap_or_default() + } + + /// Current page number (1-based, defaults to 1). + pub fn current_page(&self) -> usize { + self.page.unwrap_or(1).max(1) + } + + /// Items per page (defaults to 50). + pub fn items_per_page(&self) -> usize { + self.per_page.unwrap_or(50).clamp(1, 500) + } + + /// Whether sort direction is ascending (defaults to true). + pub fn sort_ascending(&self) -> bool { + self.dir.as_deref().unwrap_or("asc") == "asc" + } + + /// Whether print mode is active. + pub fn is_print(&self) -> bool { + self.print.as_deref() == Some("1") + } +} + +// ── Search input ────────────────────────────────────────────────────────── + +/// Render a search input with magnifying-glass icon. +/// +/// * `placeholder` — placeholder text (e.g. "Search artifacts..."). +/// * `current_query` — current search value. +/// * `target_url` — hx-get target (e.g. "/artifacts"). +/// * `include_names` — comma-separated list of input names to include via hx-include. +pub fn search_input( + placeholder: &str, + current_query: &str, + target_url: &str, + include_names: &[&str], +) -> String { + let hx_include: String = include_names + .iter() + .map(|n| format!("[name='{n}']")) + .collect::>() + .join(","); + format!( + "
\ + \ + \ + \ +
", + placeholder = html_escape(placeholder), + value = html_escape(current_query), + url = html_escape(target_url), + ) +} + +// ── Type select dropdown ────────────────────────────────────────────────── + +/// Render a `", + url = html_escape(target_url), + ); + html.push_str(&format!( + "", + sel = if selected_type.is_empty() { + " selected" + } else { + "" + }, + )); + let selected_lower = selected_type.to_lowercase(); + for t in all_types { + let is_selected = !selected_lower.is_empty() && t.to_lowercase() == selected_lower; + let sel = if is_selected { " selected" } else { "" }; + html.push_str(&format!( + "", + val = html_escape(t), + label = html_escape(t), + )); + } + html.push_str(""); + html +} + +// ── Per-page select ─────────────────────────────────────────────────────── + +/// Render a `\ + \ + \ + \ + \ + ", + url = html_escape(target_url), + s25 = if current == 25 { " selected" } else { "" }, + s50 = if current == 50 { " selected" } else { "" }, + s100 = if current == 100 { " selected" } else { "" }, + s200 = if current == 200 { " selected" } else { "" }, + ) +} + +// ── Type checkboxes (STPA-style) ────────────────────────────────────────── + +/// Render a row of type checkboxes with JS to collect values into a hidden input. +/// +/// * `types_with_counts` — `(type_name, display_label, count)` tuples. +/// * `selected_types` — currently selected type names (empty = none checked). +/// * `hidden_input_id` — DOM id for the hidden ``. +/// * `js_fn_name` — name of the JS function that collects checkbox values. +/// * `checkbox_class` — CSS class for the checkboxes. +pub fn type_checkboxes( + types_with_counts: &[(&str, &str, usize)], + selected_types: &[String], + hidden_input_id: &str, + js_fn_name: &str, + checkbox_class: &str, +) -> String { + let mut html = String::with_capacity(1024); + html.push_str( + "
", + ); + html.push_str("Types:"); + + for (type_name, label, count) in types_with_counts { + if *count == 0 { + continue; + } + let checked = if selected_types.iter().any(|s| s == type_name) { + " checked" + } else { + "" + }; + html.push_str(&format!( + "", + )); + } + html.push_str("
"); + + // JS to collect checked checkboxes into hidden input and trigger HTMX + html.push_str(&format!( + "", + )); + + html +} + +// ── Filter bar (full) ───────────────────────────────────────────────────── + +/// Render a filter bar with type checkboxes, status dropdown, and text search. +/// +/// * `available_types` — all types to show as checkboxes. +/// * `selected_types` — types currently selected (empty = all). +/// * `current_status` — current status filter value. +/// * `current_query` — current text search value. +/// * `target_url` — hx-get target (e.g. "/artifacts"). +pub fn filter_bar( + available_types: &[&str], + selected_types: &[String], + current_status: Option<&str>, + current_query: Option<&str>, + target_url: &str, +) -> String { + let mut html = String::with_capacity(2048); + html.push_str(&format!( + "
", + url = html_escape(target_url), + )); + + // Type checkboxes + if !available_types.is_empty() { + html.push_str("
"); + let all_selected = selected_types.is_empty(); + for t in available_types { + let checked = if all_selected || selected_types.iter().any(|s| s == *t) { + " checked" + } else { + "" + }; + html.push_str(&format!( + "" + )); + } + html.push_str("
"); + } + + // Status dropdown + let status_val = current_status.unwrap_or("all"); + html.push_str("

"); + + // Text search + let q_val = current_query.unwrap_or(""); + html.push_str(&format!( + "

\ + \ +
", + html_escape(q_val), + url = html_escape(target_url), + )); + + html.push_str("

"); + html.push_str("
"); + html +} + +// ── Sortable header ─────────────────────────────────────────────────────── + +/// Render a sortable table header cell with an anchor link. +/// +/// Generates `` containing an `` that toggles sort direction, +/// with both `hx-get` and `href` attributes for HTMX and direct access. +pub fn sortable_header( + label: &str, + column: &str, + current_sort: Option<&str>, + ascending: bool, + base_url: &str, + params: &ViewParams, +) -> String { + let is_active = current_sort == Some(column); + let new_dir = if is_active && ascending { + "desc" + } else { + "asc" + }; + let arrow = if is_active { + if ascending { " ▲" } else { " ▼" } + } else { + "" + }; + + let mut p = params.clone(); + p.sort = Some(column.to_string()); + p.dir = Some(new_dir.to_string()); + p.page = Some(1); + let qs = p.to_query_string(); + + let href = format!("{base_url}?{qs}"); + format!( + "\ + {label}{arrow}", + ) +} + +// ── Pagination ──────────────────────────────────────────────────────────── + +/// Render pagination controls with ellipsis, prev/next, and page numbers. +/// +/// * `total_items` — total number of items. +/// * `page` — current 1-based page. +/// * `per_page` — items per page. +/// * `base_url` — URL to paginate (e.g. "/artifacts"). +/// * `params` — current ViewParams for preserving other filters. +pub fn pagination( + total_items: usize, + page: usize, + per_page: usize, + base_url: &str, + params: &ViewParams, +) -> String { + let total_pages = if total_items == 0 { + 1 + } else { + total_items.div_ceil(per_page) + }; + if total_pages <= 1 { + return String::new(); + } + + let qbase = params.query_string_without_page(); + + let make_url = |p: usize| -> String { + if qbase.is_empty() { + format!("{base_url}?page={p}") + } else { + format!("{base_url}?{qbase}&page={p}") + } + }; + + let mut html = String::from("
"); + + // Previous + if page > 1 { + let url = make_url(page - 1); + html.push_str(&format!( + "« Prev", + )); + } else { + html.push_str("« Prev"); + } + + // Page numbers with ellipsis window + let window = 2usize; + let pstart = if page > window + 1 { page - window } else { 1 }; + let pend = total_pages.min(page + window); + + if pstart > 1 { + let url = make_url(1); + html.push_str(&format!( + "1", + )); + if pstart > 2 { + html.push_str(""); + } + } + for p in pstart..=pend { + if p == page { + html.push_str(&format!("{p}")); + } else { + let url = make_url(p); + html.push_str(&format!( + "{p}", + )); + } + } + if pend < total_pages { + if pend < total_pages - 1 { + html.push_str(""); + } + let url = make_url(total_pages); + html.push_str(&format!( + "{total_pages}", + )); + } + + // Next + if page < total_pages { + let url = make_url(page + 1); + html.push_str(&format!( + "Next »", + )); + } else { + html.push_str("Next »"); + } + + html.push_str("
"); + html +} + +/// Slice a collection for the current page. +pub fn paginate(items: &[T], page: usize, per_page: usize) -> &[T] { + let start = (page.saturating_sub(1)) * per_page; + let end = (start + per_page).min(items.len()); + if start >= items.len() { + &[] + } else { + &items[start..end] + } +} + +// ── Collapsible tree ────────────────────────────────────────────────────── + +/// Render a collapsible tree section with Expand All / Collapse All buttons. +/// +/// * `title` — section heading. +/// * `content` — HTML content inside the collapsible. +/// * `tree_id` — unique ID for targeting JS. +pub fn collapsible_tree(title: &str, content: &str, tree_id: &str) -> String { + format!( + "
\ +
\ +

{title}

\ +
\ + \ + \ +
\ +
{content}
\ +
", + title = html_escape(title), + ) +} + +// ── Severity filter (for validation) ────────────────────────────────────── + +/// Render a severity filter bar for the validation view. +/// +/// * `error_count`, `warning_count`, `info_count` — counts for each severity. +/// * `current_status` — current severity filter ("all", "error", "warning", "info"). +/// * `current_query` — current text search value. +pub fn validation_filter_bar( + error_count: usize, + warning_count: usize, + info_count: usize, + current_status: &str, + current_query: &str, +) -> String { + let mut html = String::with_capacity(1024); + html.push_str("
"); + html.push_str( + "
", + ); + + // Search input + html.push_str(&search_input( + "Search by artifact, rule, message...", + current_query, + "/validate", + &["status"], + )); + + // Severity filter + html.push_str( + ""); + + html.push_str("
"); // form-row + html.push_str("
"); // filter-bar + html +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn default_view_params() { + let p = ViewParams::default(); + assert_eq!(p.current_page(), 1); + assert_eq!(p.items_per_page(), 50); + assert!(p.sort_ascending()); + assert!(!p.is_print()); + } + + #[test] + fn view_params_page_clamping() { + let p = ViewParams { + page: Some(0), + ..Default::default() + }; + assert_eq!(p.current_page(), 1); + } + + #[test] + fn view_params_per_page_clamping() { + let p = ViewParams { + per_page: Some(0), + ..Default::default() + }; + assert_eq!(p.items_per_page(), 1); + + let p2 = ViewParams { + per_page: Some(1000), + ..Default::default() + }; + assert_eq!(p2.items_per_page(), 500); + } + + #[test] + fn type_list_parsing() { + let p = ViewParams { + types: Some("loss,hazard, uca".into()), + ..Default::default() + }; + assert_eq!(p.type_list(), vec!["loss", "hazard", "uca"]); + } + + #[test] + fn type_list_empty() { + let p = ViewParams::default(); + assert!(p.type_list().is_empty()); + } + + #[test] + fn tag_list_parsing() { + let p = ViewParams { + tags: Some("safety,critical".into()), + ..Default::default() + }; + assert_eq!(p.tag_list(), vec!["safety", "critical"]); + } + + #[test] + fn open_list_parsing() { + let p = ViewParams { + open: Some("L-001,H-001".into()), + ..Default::default() + }; + assert_eq!(p.open_list(), vec!["L-001", "H-001"]); + } + + #[test] + fn sort_direction() { + let p = ViewParams { + dir: Some("desc".into()), + ..Default::default() + }; + assert!(!p.sort_ascending()); + + let p2 = ViewParams { + dir: Some("asc".into()), + ..Default::default() + }; + assert!(p2.sort_ascending()); + } + + #[test] + fn print_mode() { + let p = ViewParams { + print: Some("1".into()), + ..Default::default() + }; + assert!(p.is_print()); + + let p2 = ViewParams { + print: Some("0".into()), + ..Default::default() + }; + assert!(!p2.is_print()); + } + + #[test] + fn query_string_round_trip() { + let p = ViewParams { + types: Some("loss,hazard".into()), + q: Some("search term".into()), + page: Some(3), + ..Default::default() + }; + let qs = p.to_query_string(); + assert!(qs.contains("types=loss%2Chazard")); + assert!(qs.contains("q=search%20term")); + assert!(qs.contains("page=3")); + } + + #[test] + fn query_string_defaults_omitted() { + let p = ViewParams::default(); + assert_eq!(p.to_query_string(), ""); + } + + #[test] + fn query_string_without_page_omits_page() { + let p = ViewParams { + types: Some("loss".into()), + page: Some(3), + ..Default::default() + }; + let qs = p.query_string_without_page(); + assert!(qs.contains("types=loss")); + assert!(!qs.contains("page=")); + } + + #[test] + fn paginate_basic() { + let items: Vec = (1..=100).collect(); + let page = paginate(&items, 1, 10); + assert_eq!(page, &[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]); + + let page2 = paginate(&items, 2, 10); + assert_eq!(page2, &[11, 12, 13, 14, 15, 16, 17, 18, 19, 20]); + } + + #[test] + fn paginate_last_page() { + let items: Vec = (1..=15).collect(); + let page = paginate(&items, 2, 10); + assert_eq!(page, &[11, 12, 13, 14, 15]); + } + + #[test] + fn paginate_beyond_range() { + let items: Vec = (1..=10).collect(); + let page = paginate(&items, 5, 10); + assert!(page.is_empty()); + } + + #[test] + fn filter_bar_renders_html() { + let types = vec!["loss", "hazard"]; + let selected = vec!["loss".to_string()]; + let html = filter_bar(&types, &selected, Some("all"), Some("test"), "/stpa"); + assert!(html.contains("loss")); + assert!(html.contains("hazard")); + assert!(html.contains("hx-get=\"/stpa\"")); + } + + #[test] + fn collapsible_tree_structure() { + let html = collapsible_tree("STPA Hierarchy", "

tree content

", "stpa-tree"); + assert!(html.contains("STPA Hierarchy")); + assert!(html.contains("Expand All")); + assert!(html.contains("Collapse All")); + assert!(html.contains("stpa-tree")); + assert!(html.contains("

tree content

")); + } + + #[test] + fn pagination_single_page() { + let p = ViewParams::default(); + let html = pagination(10, 1, 50, "/artifacts", &p); + assert!(html.is_empty()); + } + + #[test] + fn pagination_multi_page() { + let p = ViewParams::default(); + let html = pagination(100, 1, 10, "/artifacts", &p); + assert!(html.contains("Next")); + assert!(html.contains("class=\"pagination\"")); + } + + #[test] + fn search_input_renders() { + let html = search_input("Search...", "hello", "/artifacts", &["types", "sort"]); + assert!(html.contains("value=\"hello\"")); + assert!(html.contains("hx-get=\"/artifacts\"")); + assert!(html.contains("[name='types'],[name='sort']")); + } + + #[test] + fn type_select_renders() { + let types = vec!["loss".to_string(), "hazard".to_string()]; + let html = type_select(&types, "loss", "/artifacts", &["q"]); + assert!(html.contains("All types")); + assert!(html.contains("loss")); + assert!(html.contains("hazard")); + } + + #[test] + fn per_page_select_renders() { + let html = per_page_select(100, "/artifacts", &["q", "types"]); + assert!(html.contains("100\" selected")); + } + + #[test] + fn sortable_header_active_asc() { + let p = ViewParams::default(); + let html = sortable_header("ID", "id", Some("id"), true, "/artifacts", &p); + assert!(html.contains("dir=desc")); + assert!(html.contains("▲")); // up arrow + } + + #[test] + fn sortable_header_inactive() { + let p = ViewParams::default(); + let html = sortable_header("Title", "title", Some("id"), true, "/artifacts", &p); + assert!(html.contains("dir=asc")); + assert!(!html.contains("▲")); + assert!(!html.contains("▼")); + } + + #[test] + fn validation_filter_bar_renders() { + let html = validation_filter_bar(3, 5, 2, "all", ""); + assert!(html.contains("All severities (10)")); + assert!(html.contains("Errors (3)")); + assert!(html.contains("hx-get=\"/validate\"")); + } +} diff --git a/rivet-cli/src/render/documents.rs b/rivet-cli/src/render/documents.rs new file mode 100644 index 0000000..b4d2891 --- /dev/null +++ b/rivet-cli/src/render/documents.rs @@ -0,0 +1,230 @@ +use std::collections::BTreeMap; + +use rivet_core::document::{self, html_escape}; + +use super::RenderContext; +use super::RenderResult; +use super::helpers::badge_for_type; + +/// Render the documents list page. +pub(crate) fn render_documents_list(ctx: &RenderContext) -> String { + let doc_store = ctx.doc_store; + let mut html = String::from("

Documents

"); + + if doc_store.is_empty() { + html.push_str("

No documents loaded. Add markdown files with YAML frontmatter to a docs/ directory and reference it in rivet.yaml:

\ +
docs:\n  - docs
"); + return html; + } + + // Group documents by doc_type + let mut groups: BTreeMap> = BTreeMap::new(); + for doc in doc_store.iter() { + groups.entry(doc.doc_type.clone()).or_default().push(doc); + } + + html.push_str("
"); + for (doc_type, docs) in &groups { + html.push_str(&format!( + "
{} {} ({} doc{})", + badge_for_type(doc_type), + html_escape(doc_type), + docs.len(), + if docs.len() == 1 { "" } else { "s" }, + )); + html.push_str("
    "); + for doc in docs { + let status_badge = match doc.status.as_deref().unwrap_or("-") { + "approved" => "approved", + "draft" => "draft", + _ => "", + }; + let other_badge = if status_badge.is_empty() { + let s = doc.status.as_deref().unwrap_or("-"); + format!( + "{}", + html_escape(s) + ) + } else { + String::new() + }; + let doc_id = html_escape(&doc.id); + html.push_str(&format!( + "
  • \ + {doc_id}\ + {title}\ + {status_badge}{other_badge}\ + {refs} refs\ +
  • ", + title = html_escape(&doc.title), + refs = doc.references.len(), + )); + } + html.push_str("
"); + } + html.push_str("
"); + + // Flat table + html.push_str("

All Documents

"); + html.push_str( + "", + ); + for doc in doc_store.iter() { + let status = doc.status.as_deref().unwrap_or("-"); + let status_badge = match status { + "approved" => format!("{status}"), + "draft" => format!("{status}"), + _ => format!("{status}"), + }; + let doc_id = html_escape(&doc.id); + html.push_str(&format!( + "\ + \ + \ + \ + ", + type_badge = badge_for_type(&doc.doc_type), + title = html_escape(&doc.title), + refs = doc.references.len(), + )); + } + html.push_str("
IDTypeTitleStatusRefs
{doc_id}{type_badge}{title}{status_badge}{refs}
"); + html.push_str(&format!( + "

{} documents, {} total artifact references

", + doc_store.len(), + doc_store.all_references().len() + )); + + html +} + +/// Render a single document detail page. +pub(crate) fn render_document_detail(ctx: &RenderContext, id: &str) -> RenderResult { + let doc_store = ctx.doc_store; + let store = ctx.store; + let graph = ctx.graph; + + let Some(doc) = doc_store.get(id) else { + return RenderResult { + html: format!( + "

Not Found

Document {} does not exist.

", + html_escape(id) + ), + title: "Not Found".to_string(), + source_file: None, + source_line: None, + }; + }; + + let mut html = String::new(); + + // Header + html.push_str(&format!("

{}

", html_escape(&doc.title))); + html.push_str("
"); + html.push_str(&badge_for_type(&doc.doc_type)); + if let Some(status) = &doc.status { + let badge_class = match status.as_str() { + "approved" => "badge-ok", + "draft" => "badge-warn", + _ => "badge-info", + }; + html.push_str(&format!( + "{}", + html_escape(status) + )); + } + html.push_str(&format!( + "{} artifact references", + doc.references.len() + )); + html.push_str("
"); + + // TOC + let toc_sections: Vec<_> = doc.sections.iter().filter(|s| s.level >= 2).collect(); + if toc_sections.len() > 2 { + html.push_str("
Contents
    "); + for sec in &toc_sections { + let class = match sec.level { + 2 => "toc-h2", + 3 => "toc-h3", + _ => "toc-h4", + }; + let ref_count = if sec.artifact_ids.is_empty() { + String::new() + } else { + format!(" ({})", sec.artifact_ids.len()) + }; + html.push_str(&format!( + "
  • {}{ref_count}
  • ", + html_escape(&sec.title), + )); + } + html.push_str("
"); + } + + // Body + html.push_str("
"); + let body_html = document::render_to_html( + doc, + |aid| store.contains(aid), + |aid| crate::serve::views::build_artifact_info(aid, store, graph), + |did| doc_store.get(did).is_some(), + ); + html.push_str(&body_html); + html.push_str("
"); + + // Glossary + if !doc.glossary.is_empty() { + html.push_str("

Glossary

"); + for (term, definition) in &doc.glossary { + html.push_str(&format!( + "
{}
{}
", + html_escape(term), + html_escape(definition) + )); + } + html.push_str("
"); + } + + // Referenced artifacts + if !doc.references.is_empty() { + html.push_str("

Referenced Artifacts

"); + html.push_str(""); + + let mut seen = std::collections::HashSet::new(); + for reference in &doc.references { + if !seen.insert(&reference.artifact_id) { + continue; + } + if let Some(artifact) = store.get(&reference.artifact_id) { + let status = artifact.status.as_deref().unwrap_or("-"); + let ref_id_esc = html_escape(&artifact.id); + html.push_str(&format!( + "\ + ", + badge_for_type(&artifact.artifact_type), + html_escape(&artifact.title), + html_escape(status), + )); + } else { + html.push_str(&format!( + "\ + ", + html_escape(&reference.artifact_id), + )); + } + } + html.push_str("
IDTypeTitleStatus
{ref_id_esc}{}{}{}
{}not found
"); + } + + html.push_str("

← Back to documents

"); + + let source_file = doc.source_file.as_ref().map(|p| p.display().to_string()); + + RenderResult { + html, + title: doc.title.clone(), + source_file, + source_line: Some(1), + } +} diff --git a/rivet-cli/src/render/help.rs b/rivet-cli/src/render/help.rs new file mode 100644 index 0000000..f7cf490 --- /dev/null +++ b/rivet-cli/src/render/help.rs @@ -0,0 +1,339 @@ +use rivet_core::document::html_escape; +use rivet_core::markdown::render_markdown; + +use super::RenderContext; +use super::RenderResult; + +/// Render the help overview page. +pub(crate) fn render_help(ctx: &RenderContext) -> String { + let schema = ctx.schema; + let type_count = schema.artifact_types.len(); + let link_count = schema.link_types.len(); + let rule_count = schema.traceability_rules.len(); + + let mut html = String::with_capacity(4096); + html.push_str("

Help & Documentation

"); + html.push_str(r#"
"#); + + let link_style = "display:inline-block;margin-top:.75rem;font-size:.85rem"; + html.push_str(&format!( + "
\ +

Schema Types

\ +

{type_count}

\ +

artifact types loaded

\ + Browse types →\ +
" + )); + html.push_str(&format!( + "
\ +

Link Types

\ +

{link_count}

\ +

with inverse mappings

\ + View links →\ +
" + )); + html.push_str(&format!( + "
\ +

Traceability Rules

\ +

{rule_count}

\ +

enforced by validation

\ + View rules →\ +
" + )); + html.push_str(&format!( + "
\ +

Documentation

\ +

Built-in guides, references, and schema docs.

\ + Browse topics →\ +
" + )); + html.push_str("
"); + + // Schema linkage diagram (Mermaid) + html.push_str("
"); + html.push_str("

Schema Linkage

"); + html.push_str("
\ngraph LR\n");
+    for rule in &schema.traceability_rules {
+        let link_label = rule
+            .required_link
+            .as_deref()
+            .or(rule.required_backlink.as_deref())
+            .unwrap_or(&rule.name);
+        for target in &rule.target_types {
+            html.push_str(&format!(
+                "    {}[\"{}\"] -->|{}| {}[\"{}\"]\n",
+                rule.source_type.replace('-', "_"),
+                rule.source_type,
+                link_label,
+                target.replace('-', "_"),
+                target,
+            ));
+        }
+        // If no target_types, use from_types as reverse
+        if rule.target_types.is_empty() {
+            for from in &rule.from_types {
+                html.push_str(&format!(
+                    "    {}[\"{}\"] -->|{}| {}[\"{}\"]\n",
+                    from.replace('-', "_"),
+                    from,
+                    link_label,
+                    rule.source_type.replace('-', "_"),
+                    rule.source_type,
+                ));
+            }
+        }
+    }
+    html.push_str("
"); + html.push_str("
"); + + // CLI quick reference + html.push_str( + r#"
+

CLI Quick Reference

+
"#,
+    );
+    html.push_str("rivet validate              Validate all artifacts\n");
+    html.push_str("rivet list [-t TYPE]        List artifacts\n");
+    html.push_str("rivet stats                 Summary statistics\n");
+    html.push_str("rivet coverage              Traceability coverage\n");
+    html.push_str("rivet matrix --from X --to Y  Traceability matrix\n");
+    html.push_str("rivet schema list           List artifact types\n");
+    html.push_str("rivet schema show TYPE      Show type details\n");
+    html.push_str("rivet docs                  List documentation topics\n");
+    html.push_str("rivet serve [-P PORT]       Start dashboard\n");
+    html.push_str("
"); + + html +} + +/// Render the schema types list. +pub(crate) fn render_schema_list(ctx: &RenderContext) -> String { + let schema = ctx.schema; + let mut types: Vec<_> = schema.artifact_types.values().collect(); + types.sort_by_key(|t| &t.name); + + let mut html = String::with_capacity(4096); + html.push_str("

Schema Types

"); + html.push_str(r#"

Click a type to see fields, link fields, traceability rules, and example YAML.

"#); + html.push_str( + r#" + + "#, + ); + + for t in &types { + let proc = t.aspice_process.as_deref().unwrap_or("-"); + html.push_str(&format!( + "\ + \ + \ + \ + \ + \ + ", + name = t.name, + desc = render_markdown(&t.description), + fields = t.fields.len(), + links = t.link_fields.len(), + )); + } + + html.push_str("
TypeDescriptionFieldsLinksProcess
{name}{desc}{fields}{links}{proc}
"); + html +} + +/// Render a single schema type detail. +pub(crate) fn render_schema_show(ctx: &RenderContext, name: &str) -> RenderResult { + let raw = crate::schema_cmd::cmd_show(ctx.schema, name, "text"); + + let mut html = String::with_capacity(8192); + html.push_str(""); + html.push_str("
");
+    html.push_str(&html_escape(&raw));
+    html.push_str("
"); + + RenderResult { + html, + title: format!("Schema: {name}"), + source_file: None, + source_line: None, + } +} + +/// Render the link types reference. +pub(crate) fn render_links(ctx: &RenderContext) -> String { + let schema = ctx.schema; + let mut links: Vec<_> = schema.link_types.values().collect(); + links.sort_by_key(|l| &l.name); + + let mut html = String::with_capacity(4096); + html.push_str(""); + html.push_str("

Link Types

"); + html.push_str( + "\ + \ + ", + ); + + for l in &links { + let inv = l.inverse.as_deref().unwrap_or("-"); + html.push_str(&format!( + "", + html_escape(&l.name), + html_escape(inv), + render_markdown(&l.description), + )); + } + + html.push_str("
NameInverseDescription
{}{}{}
"); + html +} + +/// Render the traceability rules reference. +pub(crate) fn render_rules(ctx: &RenderContext) -> String { + let raw = crate::schema_cmd::cmd_rules(ctx.schema, "text"); + + let mut html = String::with_capacity(4096); + html.push_str(""); + html.push_str("

Traceability Rules

"); + html.push_str("
");
+    html.push_str(&html_escape(&raw));
+    html.push_str("
"); + html +} + +/// Render the built-in docs topic list. +pub(crate) fn render_docs_list() -> String { + let mut html = String::with_capacity(4096); + html.push_str("

Documentation Topics

"); + html.push_str(r#"

Built-in reference docs.

"#); + html.push_str(r#"
"#); + + let topics_json = crate::docs::list_topics("json"); + if let Ok(val) = serde_json::from_str::(&topics_json) { + let mut current_cat = String::new(); + if let Some(topics) = val.get("topics").and_then(|t| t.as_array()) { + for topic in topics { + let slug = topic.get("slug").and_then(|s| s.as_str()).unwrap_or(""); + let title = topic.get("title").and_then(|s| s.as_str()).unwrap_or(""); + let category = topic.get("category").and_then(|s| s.as_str()).unwrap_or(""); + + if category != current_cat { + if !current_cat.is_empty() { + html.push_str("
"); + } + html.push_str(&format!( + r#"

{category}

"# + )); + html.push_str(r#"
"#); + current_cat = category.to_string(); + } + + html.push_str(&format!( + "\ + {slug}\ + {title}\ + " + )); + } + if !current_cat.is_empty() { + html.push_str("
"); + } + } + } + + html.push_str(""); + html +} + +/// Render a single documentation topic. +pub(crate) fn render_docs_topic(slug: &str) -> RenderResult { + let raw = crate::docs::show_topic(slug, "text"); + + let mut html = String::with_capacity(8192); + html.push_str(""); + html.push_str("
"); + + // Render markdown-ish content + let mut in_code_block = false; + let mut in_table = false; + for line in raw.lines() { + if line.starts_with("```") { + if in_code_block { + html.push_str(""); + in_code_block = false; + } else { + html.push_str(r#"
"#);
+                in_code_block = true;
+            }
+            continue;
+        }
+        if in_code_block {
+            html.push_str(&html_escape(line));
+            html.push('\n');
+            continue;
+        }
+        if let Some(h1) = line.strip_prefix("# ") {
+            html.push_str(&format!("

{}

", html_escape(h1))); + } else if let Some(h2) = line.strip_prefix("## ") { + html.push_str(&format!( + "

{}

", + html_escape(h2) + )); + } else if let Some(h3) = line.strip_prefix("### ") { + html.push_str(&format!( + "

{}

", + html_escape(h3) + )); + } else if line.starts_with('|') { + if !in_table { + html.push_str(r#"
"#); + in_table = true; + } + if line + .chars() + .all(|c| c == '|' || c == '-' || c == ' ' || c == ':') + { + // Skip separator rows + } else { + html.push_str(""); + let cells: Vec<&str> = line.split('|').collect(); + for cell in &cells[1..cells.len().saturating_sub(1)] { + html.push_str(&format!( + "", + html_escape(cell.trim()) + )); + } + html.push_str(""); + } + } else { + if in_table { + html.push_str("
{}
"); + in_table = false; + } + if line.is_empty() { + html.push_str("
"); + } else { + html.push_str(&format!( + "

{}

", + html_escape(line) + )); + } + } + } + if in_table { + html.push_str("
"); + } + if in_code_block { + html.push_str(""); + } + html.push_str(""); + + RenderResult { + html, + title: format!("Docs: {slug}"), + source_file: None, + source_line: None, + } +} diff --git a/rivet-cli/src/render/helpers.rs b/rivet-cli/src/render/helpers.rs new file mode 100644 index 0000000..23fdd0c --- /dev/null +++ b/rivet-cli/src/render/helpers.rs @@ -0,0 +1,84 @@ +use std::collections::HashMap; + +use rivet_core::document::html_escape; + +// ── Color palette ──────────────────────────────────────────────────────── + +pub(crate) fn type_color_map() -> HashMap { + let pairs: &[(&str, &str)] = &[ + // STPA + ("loss", "#dc3545"), + ("hazard", "#fd7e14"), + ("system-constraint", "#20c997"), + ("controller", "#6f42c1"), + ("uca", "#e83e8c"), + ("control-action", "#17a2b8"), + ("feedback", "#6610f2"), + ("causal-factor", "#d63384"), + ("safety-constraint", "#20c997"), + ("loss-scenario", "#e83e8c"), + ("controller-constraint", "#20c997"), + ("controlled-process", "#6610f2"), + ("sub-hazard", "#fd7e14"), + // ASPICE + ("stakeholder-req", "#0d6efd"), + ("system-req", "#0dcaf0"), + ("system-architecture", "#198754"), + ("sw-req", "#198754"), + ("sw-architecture", "#0d6efd"), + ("sw-detailed-design", "#6610f2"), + ("sw-unit", "#6f42c1"), + ("system-verification", "#6610f2"), + ("sw-verification", "#6610f2"), + ("system-integration-verification", "#6610f2"), + ("sw-integration-verification", "#6610f2"), + ("sw-unit-verification", "#6610f2"), + ("qualification-verification", "#6610f2"), + // Dev + ("requirement", "#0d6efd"), + ("design-decision", "#198754"), + ("feature", "#6f42c1"), + // STPA-Sec + ("sec-loss", "#991b1b"), + ("sec-hazard", "#b91c1c"), + ("sec-constraint", "#15803d"), + ("sec-uca", "#be123c"), + ("sec-scenario", "#9a3412"), + // Cybersecurity + ("asset", "#ffc107"), + ("threat", "#dc3545"), + ("cybersecurity-req", "#fd7e14"), + ("vulnerability", "#e83e8c"), + ("attack-path", "#dc3545"), + ("cybersecurity-goal", "#0d6efd"), + ("cybersecurity-control", "#198754"), + ("security-verification", "#6610f2"), + ("risk-assessment", "#fd7e14"), + ("security-event", "#e83e8c"), + ]; + pairs + .iter() + .map(|(k, v)| (k.to_string(), v.to_string())) + .collect() +} + +/// Return a colored badge `` for an artifact type. +/// +/// Uses the `type_color_map` hex color as text and computes a 12%-opacity +/// tinted background from it. +pub(crate) fn badge_for_type(type_name: &str) -> String { + let colors = type_color_map(); + let hex = colors + .get(type_name) + .map(|s| s.as_str()) + .unwrap_or("#5b2d9e"); + // Parse hex → rgb + let hex_digits = hex.trim_start_matches('#'); + let r = u8::from_str_radix(&hex_digits[0..2], 16).unwrap_or(91); + let g = u8::from_str_radix(&hex_digits[2..4], 16).unwrap_or(45); + let b = u8::from_str_radix(&hex_digits[4..6], 16).unwrap_or(158); + format!( + "{}", + html_escape(type_name) + ) +} diff --git a/rivet-cli/src/render/mod.rs b/rivet-cli/src/render/mod.rs new file mode 100644 index 0000000..992ba88 --- /dev/null +++ b/rivet-cli/src/render/mod.rs @@ -0,0 +1,148 @@ +use std::path::Path; + +use rivet_core::document::DocumentStore; +use rivet_core::links::LinkGraph; +use rivet_core::results::ResultStore; +use rivet_core::schema::Schema; +use rivet_core::store::Store; +use rivet_core::validate::Diagnostic; + +use crate::serve::{ExternalInfo, RepoContext}; + +pub(crate) mod artifacts; +pub(crate) mod components; +pub(crate) mod documents; +pub(crate) mod help; +pub(crate) mod helpers; +pub(crate) mod stats; +pub(crate) mod stpa; +pub(crate) mod styles; +pub(crate) mod validate; + +/// Shared context for all render functions. +#[allow(dead_code)] +pub(crate) struct RenderContext<'a> { + pub(crate) store: &'a Store, + pub(crate) schema: &'a Schema, + pub(crate) graph: &'a LinkGraph, + pub(crate) doc_store: &'a DocumentStore, + pub(crate) result_store: &'a ResultStore, + pub(crate) diagnostics: &'a [Diagnostic], + pub(crate) context: &'a RepoContext, + pub(crate) externals: &'a [ExternalInfo], + pub(crate) project_path: &'a Path, + pub(crate) schemas_dir: &'a Path, +} + +#[allow(dead_code)] +pub(crate) struct RenderResult { + pub(crate) html: String, + pub(crate) title: String, + pub(crate) source_file: Option, + pub(crate) source_line: Option, +} + +pub(crate) fn render_page( + ctx: &RenderContext, + page: &str, + params: &crate::serve::components::ViewParams, +) -> RenderResult { + // Strip query string if present (e.g., /artifacts?q=foo → /artifacts) + let (path, _query) = page.split_once('?').unwrap_or((page, "")); + + match path { + "/" | "/stats" => RenderResult { + html: stats::render_stats(ctx), + title: "Stats".to_string(), + source_file: None, + source_line: None, + }, + "/artifacts" => RenderResult { + html: artifacts::render_artifacts_list(ctx, params), + title: "Artifacts".to_string(), + source_file: None, + source_line: None, + }, + p if p.starts_with("/artifacts/") => { + let rest = &p["/artifacts/".len()..]; + // Extract artifact ID (stop at next slash for sub-routes like /graph, /preview) + let (id, sub) = rest.split_once('/').unwrap_or((rest, "")); + match sub { + "" => artifacts::render_artifact_detail(ctx, id), + // Sub-routes like /artifacts/{id}/graph are not yet available + _ => artifacts::render_artifact_detail(ctx, id), + } + } + "/validate" => RenderResult { + html: validate::render_validate(ctx, params), + title: "Validation".to_string(), + source_file: None, + source_line: None, + }, + p if p.starts_with("/stpa") => RenderResult { + html: stpa::render_stpa(ctx, params), + title: "STPA".to_string(), + source_file: None, + source_line: None, + }, + "/documents" => RenderResult { + html: documents::render_documents_list(ctx), + title: "Documents".to_string(), + source_file: None, + source_line: None, + }, + p if p.starts_with("/documents/") => { + let id = &p["/documents/".len()..]; + documents::render_document_detail(ctx, id) + } + "/help" => RenderResult { + html: help::render_help(ctx), + title: "Help".to_string(), + source_file: None, + source_line: None, + }, + "/help/schema" => RenderResult { + html: help::render_schema_list(ctx), + title: "Schema Types".to_string(), + source_file: None, + source_line: None, + }, + p if p.starts_with("/help/schema/") => { + let name = &p["/help/schema/".len()..]; + help::render_schema_show(ctx, name) + } + "/help/links" => RenderResult { + html: help::render_links(ctx), + title: "Link Types".to_string(), + source_file: None, + source_line: None, + }, + "/help/rules" => RenderResult { + html: help::render_rules(ctx), + title: "Traceability Rules".to_string(), + source_file: None, + source_line: None, + }, + "/help/docs" => RenderResult { + html: help::render_docs_list(), + title: "Documentation".to_string(), + source_file: None, + source_line: None, + }, + p if p.starts_with("/help/docs/") => { + let slug = &p["/help/docs/".len()..]; + help::render_docs_topic(slug) + } + _ => RenderResult { + html: format!( + "

Not Available

\ +

The {} view is not yet available in VS Code.

\ +

Use rivet serve to view it in your browser.

", + rivet_core::document::html_escape(path) + ), + title: "Not Available".to_string(), + source_file: None, + source_line: None, + }, + } +} diff --git a/rivet-cli/src/render/stats.rs b/rivet-cli/src/render/stats.rs new file mode 100644 index 0000000..6b03cc3 --- /dev/null +++ b/rivet-cli/src/render/stats.rs @@ -0,0 +1,254 @@ +use std::collections::BTreeMap; + +use rivet_core::coverage; +use rivet_core::document::html_escape; +use rivet_core::schema::Severity; + +use crate::render::RenderContext; +use crate::render::helpers::badge_for_type; + +pub(crate) fn render_stats(ctx: &RenderContext) -> String { + let store = ctx.store; + let graph = ctx.graph; + let doc_store = ctx.doc_store; + + let mut types: Vec<&str> = store.types().collect(); + types.sort(); + + let orphans = graph.orphans(store); + let diagnostics = ctx.diagnostics; + let errors = diagnostics + .iter() + .filter(|d| d.severity == Severity::Error) + .count(); + let warnings = diagnostics + .iter() + .filter(|d| d.severity == Severity::Warning) + .count(); + + // Project header + let mut html = format!( + "
\ +

Project Overview

\ +

{} — {} artifact types, {} traceability rules

\ +
", + html_escape(&ctx.context.project_name), + types.len(), + ctx.schema.traceability_rules.len(), + ); + + // Summary cards with colored accents + html.push_str("
"); + html.push_str(&format!( + "
{}
Artifacts
", + store.len() + )); + html.push_str(&format!( + "
{}
Types
", + types.len() + )); + html.push_str(&format!( + "
{}
Orphans
", + orphans.len() + )); + html.push_str(&format!( + "
{}
Errors
", + errors + )); + html.push_str(&format!( + "
{}
Warnings
", + warnings + )); + html.push_str(&format!( + "
{}
Broken Links
", + graph.broken.len() + )); + html.push_str(&format!( + "
{}
Documents
", + doc_store.len() + )); + html.push_str("
"); + + // By-type table + html.push_str("

Artifacts by Type

"); + for t in &types { + html.push_str(&format!( + "", + badge_for_type(t), + store.count_by_type(t) + )); + } + html.push_str("
TypeCount
{}{}
"); + + // Status breakdown + let mut status_counts: BTreeMap = BTreeMap::new(); + for a in store.iter() { + let s = a.status.as_deref().unwrap_or("unknown"); + *status_counts.entry(s.to_string()).or_default() += 1; + } + let total_artifacts = store.len().max(1); + html.push_str("

Status Distribution

"); + for (status, count) in &status_counts { + let pct = (*count as f64 / total_artifacts as f64) * 100.0; + let bar_color = match status.as_str() { + "approved" => "#15713a", + "draft" => "#b8860b", + "obsolete" => "#c62828", + "unknown" => "#9898a6", + _ => "#3a86ff", + }; + html.push_str(&format!( + "
\ +
{}
\ +
\ +
\ +
\ +
{count}
\ +
", + html_escape(status), + )); + } + html.push_str("
"); + + // Orphans + if !orphans.is_empty() { + html.push_str("

Orphan Artifacts (no links)

"); + for id in &orphans { + html.push_str(&format!( + "" + )); + } + html.push_str("
ID
{id}
"); + } + + // ── Coverage summary card ──────────────────────────────────────── + let cov_report = coverage::compute_coverage(store, ctx.schema, graph); + if !cov_report.entries.is_empty() { + let overall = cov_report.overall_coverage(); + let cov_color = if overall >= 80.0 { + "#15713a" + } else if overall >= 50.0 { + "#b8860b" + } else { + "#c62828" + }; + let total_covered: usize = cov_report.entries.iter().map(|e| e.covered).sum(); + let total_items: usize = cov_report.entries.iter().map(|e| e.total).sum(); + html.push_str(&format!( + "
\ +

Traceability Coverage

\ +
\ +
{overall:.0}%
\ +
\ +
\ +
\ +
\ +
\ + {total_covered} / {total_items} artifacts covered across {} rules\ +
\ +
\ +
\ + \ + View full coverage report →\ +
", + cov_report.entries.len(), + )); + } + + // ── Test results summary ───────────────────────────────────────── + if !ctx.result_store.is_empty() { + let summary = ctx.result_store.summary(); + let rate = summary.pass_rate(); + let rate_color = if rate >= 80.0 { + "#15713a" + } else if rate >= 50.0 { + "#b8860b" + } else { + "#c62828" + }; + html.push_str("

Test Results

"); + html.push_str(&format!( + "
\ +
{rate:.0}%
\ +
\ +
\ +
\ +
\ +
\ +
" + )); + html.push_str("
"); + html.push_str(&format!( + "{} runs\ + {} passed\ + {} failed", + summary.total_runs, summary.pass_count, summary.fail_count, + )); + if summary.skip_count > 0 { + html.push_str(&format!( + "{} skipped", + summary.skip_count, + )); + } + if summary.blocked_count > 0 { + html.push_str(&format!( + "{} blocked", + summary.blocked_count, + )); + } + html.push_str("
"); + html.push_str( + "\ + View all test runs →", + ); + html.push_str("
"); + } + + // ── Quick links ────────────────────────────────────────────────── + // Count verifiable types for the verification link badge + let ver_count = { + let mut count = 0usize; + for rule in &ctx.schema.traceability_rules { + if rule.required_backlink.as_deref() == Some("verifies") { + count += store.by_type(&rule.source_type).len(); + } + } + count + }; + + html.push_str( + "
\ +

Quick Links

\ +
", + ); + html.push_str(&format!( + "\ +
Verification
\ +
{ver_count} requirements
\ +
", + )); + html.push_str(&format!( + "\ +
Documents
\ +
{} loaded
\ +
", + doc_store.len(), + )); + html.push_str( + "\ +
Traceability Graph
\ +
Full link graph
\ +
", + ); + html.push_str("
"); + + html +} diff --git a/rivet-cli/src/render/stpa.rs b/rivet-cli/src/render/stpa.rs new file mode 100644 index 0000000..bea7500 --- /dev/null +++ b/rivet-cli/src/render/stpa.rs @@ -0,0 +1,873 @@ +use rivet_core::document::html_escape; +use rivet_core::store::Store; + +use super::RenderContext; +use super::helpers::badge_for_type; +use crate::serve::components::{self, ViewParams}; + +pub(crate) fn render_stpa(ctx: &RenderContext, params: &ViewParams) -> String { + let store = ctx.store; + let graph = ctx.graph; + + let stpa_types = [ + ("loss", "Losses"), + ("hazard", "Hazards"), + ("sub-hazard", "Sub-Hazards"), + ("system-constraint", "System Constraints"), + ("controller", "Controllers"), + ("controlled-process", "Controlled Processes"), + ("control-action", "Control Actions"), + ("uca", "UCAs"), + ("controller-constraint", "Controller Constraints"), + ("loss-scenario", "Loss Scenarios"), + ]; + + // ── Parse filter params ───────────────────────────────────── + let type_filter: Option> = params + .types + .as_ref() + .filter(|s| !s.is_empty()) + .map(|s| s.split(',').map(|t| t.trim().to_lowercase()).collect()); + + let q_filter: Option = params + .q + .as_ref() + .filter(|s| !s.trim().is_empty()) + .map(|s| s.trim().to_lowercase()); + + let total: usize = stpa_types.iter().map(|(t, _)| store.count_by_type(t)).sum(); + let has_active_filter = type_filter.is_some() || q_filter.is_some(); + + let mut html = String::from("

STPA Analysis

"); + + // ── Filter bar ────────────────────────────────────────────── + let q_val = params.q.as_deref().unwrap_or(""); + let types_val = params.types.as_deref().unwrap_or(""); + html.push_str("
"); + html.push_str( + "
", + ); + + // Search input + html.push_str(&components::search_input( + "Search STPA artifacts...", + q_val, + "/stpa", + &["types"], + )); + + // Hidden input to hold comma-separated types — triggers reload on change + html.push_str(&format!( + "", + html_escape(types_val), + )); + + html.push_str("
"); // form-row + + // Type checkbox row + let selected_types = type_filter.clone().unwrap_or_default(); + let types_with_counts: Vec<(&str, &str, usize)> = stpa_types + .iter() + .map(|(t, l)| (*t, *l, store.count_by_type(t))) + .collect(); + html.push_str(&components::type_checkboxes( + &types_with_counts, + &selected_types, + "stpa-types-hidden", + "stpaUpdateTypes", + "stpa-type-cb", + )); + + html.push_str("
"); // filter-bar + + if total == 0 { + html.push_str( + "
\ +

No STPA artifacts found in this project.

\ +

\ + Add artifacts of types loss, hazard, uca, etc. \ + using the stpa schema to enable the STPA analysis dashboard.

\ +
", + ); + return html; + } + + // Summary stat cards + html.push_str("
"); + let stat_colors = [ + "#dc3545", "#fd7e14", "#fd7e14", "#20c997", "#6f42c1", "#6610f2", "#17a2b8", "#e83e8c", + "#20c997", "#e83e8c", + ]; + for (i, (type_name, label)) in stpa_types.iter().enumerate() { + let count = store.count_by_type(type_name); + if count == 0 { + continue; + } + let color = stat_colors[i]; + html.push_str(&format!( + "
\ +
{count}
\ +
{label}
" + )); + } + html.push_str("
"); + + // Hierarchy tree view + html.push_str("

STPA Hierarchy

"); + + let losses = store.by_type("loss"); + if losses.is_empty() { + html.push_str( + "

No losses defined. The STPA hierarchy starts with losses.

", + ); + } + + let mut sorted_losses: Vec<&str> = losses.iter().map(|s| s.as_str()).collect(); + sorted_losses.sort(); + + for loss_id in &sorted_losses { + let Some(loss) = store.get(loss_id) else { + continue; + }; + if has_active_filter + && (!type_visible(&type_filter, "loss") || !matches_text(store, loss_id, &q_filter)) + { + continue; + } + html.push_str("
"); + html.push_str(" "); + html.push_str(&badge_for_type("loss")); + html.push_str(&format!( + " {id}\ + {title}", + id = html_escape(loss_id), + title = html_escape(&loss.title), + )); + html.push_str(""); + + let hazard_backlinks = graph.backlinks_of_type(loss_id, "leads-to-loss"); + if !hazard_backlinks.is_empty() { + html.push_str("
"); + let mut hazard_ids: Vec<&str> = hazard_backlinks + .iter() + .map(|bl| bl.source.as_str()) + .collect(); + hazard_ids.sort(); + hazard_ids.dedup(); + for hazard_id in &hazard_ids { + let Some(hazard) = store.get(hazard_id) else { + continue; + }; + if has_active_filter + && (!type_visible(&type_filter, &hazard.artifact_type) + || !matches_text(store, hazard_id, &q_filter)) + { + continue; + } + html.push_str("
"); + html.push_str(" "); + html.push_str("leads-to-loss"); + html.push_str(&badge_for_type(&hazard.artifact_type)); + html.push_str(&format!( + " {id}\ + {title}", + id = html_escape(hazard_id), + title = html_escape(&hazard.title), + )); + html.push_str(""); + + let constraint_bls = graph.backlinks_of_type(hazard_id, "prevents"); + let uca_bls = graph.backlinks_of_type(hazard_id, "leads-to-hazard"); + + if !constraint_bls.is_empty() || !uca_bls.is_empty() { + html.push_str("
"); + + // System Constraints + let mut sc_ids: Vec<&str> = constraint_bls + .iter() + .filter(|bl| { + store + .get(&bl.source) + .map(|a| a.artifact_type == "system-constraint") + .unwrap_or(false) + }) + .map(|bl| bl.source.as_str()) + .collect(); + sc_ids.sort(); + sc_ids.dedup(); + for sc_id in &sc_ids { + let Some(sc) = store.get(sc_id) else { continue }; + if has_active_filter + && (!type_visible(&type_filter, "system-constraint") + || !matches_text(store, sc_id, &q_filter)) + { + continue; + } + html.push_str(&format!( + "
\ + prevents{badge}\ + {id}\ + {title}\ +
", + badge = badge_for_type("system-constraint"), + id = html_escape(sc_id), + title = html_escape(&sc.title), + )); + } + + // UCAs + let mut uca_ids: Vec<&str> = uca_bls + .iter() + .filter(|bl| { + store + .get(&bl.source) + .map(|a| a.artifact_type == "uca") + .unwrap_or(false) + }) + .map(|bl| bl.source.as_str()) + .collect(); + uca_ids.sort(); + uca_ids.dedup(); + for uca_id in &uca_ids { + let Some(uca) = store.get(uca_id) else { + continue; + }; + if has_active_filter + && (!type_visible(&type_filter, "uca") + || !matches_text(store, uca_id, &q_filter)) + { + continue; + } + // Collapse below level 2 + html.push_str("
"); + html.push_str(" "); + html.push_str("leads-to-hazard"); + html.push_str(&badge_for_type("uca")); + html.push_str(&format!( + " {id}\ + {title}", + id = html_escape(uca_id), + title = html_escape(&uca.title), + )); + html.push_str(""); + + let cc_bls = graph.backlinks_of_type(uca_id, "inverts-uca"); + let ls_bls = graph.backlinks_of_type(uca_id, "caused-by-uca"); + + if !cc_bls.is_empty() || !ls_bls.is_empty() { + html.push_str("
"); + // Controller Constraints + let mut cc_ids: Vec<&str> = + cc_bls.iter().map(|bl| bl.source.as_str()).collect(); + cc_ids.sort(); + cc_ids.dedup(); + for cc_id in &cc_ids { + let Some(cc) = store.get(cc_id) else { continue }; + if has_active_filter + && (!type_visible(&type_filter, "controller-constraint") + || !matches_text(store, cc_id, &q_filter)) + { + continue; + } + html.push_str(&format!( + "
\ + inverts-uca{badge}\ + {id}\ + {title}\ +
", + badge = badge_for_type("controller-constraint"), + id = html_escape(cc_id), + title = html_escape(&cc.title), + )); + } + // Loss Scenarios + let mut ls_ids: Vec<&str> = + ls_bls.iter().map(|bl| bl.source.as_str()).collect(); + ls_ids.sort(); + ls_ids.dedup(); + for ls_id in &ls_ids { + let Some(ls) = store.get(ls_id) else { continue }; + if has_active_filter + && (!type_visible(&type_filter, "loss-scenario") + || !matches_text(store, ls_id, &q_filter)) + { + continue; + } + html.push_str(&format!( + "
\ + caused-by-uca{badge}\ + {id}\ + {title}\ +
", + badge = badge_for_type("loss-scenario"), + id = html_escape(ls_id), + title = html_escape(&ls.title), + )); + } + html.push_str("
"); // stpa-level (CC/LS) + } + html.push_str("
"); // UCA + } + html.push_str("
"); // stpa-level (SC/UCA) + } + html.push_str("
"); // Hazard + } + html.push_str("
"); // stpa-level (Hazards) + } + html.push_str("
"); // Loss + } + + html.push_str("
"); // stpa-tree, card + + // UCA Table + let uca_ids = store.by_type("uca"); + let show_uca_table = !uca_ids.is_empty() && type_visible(&type_filter, "uca"); + if show_uca_table { + html.push_str("

Unsafe Control Actions

"); + + struct UcaRow { + id: String, + title: String, + uca_type: String, + control_action: String, + linked_hazards: Vec, + } + + let mut rows: Vec = Vec::new(); + for uca_id in uca_ids { + let Some(uca) = store.get(uca_id) else { + continue; + }; + if has_active_filter && !matches_text(store, uca_id, &q_filter) { + continue; + } + let uca_type = uca + .fields + .get("uca-type") + .and_then(|v| v.as_str()) + .unwrap_or("-") + .to_string(); + let controller_links: Vec<&str> = uca + .links + .iter() + .filter(|l| l.link_type == "issued-by") + .map(|l| l.target.as_str()) + .collect(); + let control_action = if let Some(ctrl_id) = controller_links.first() { + let ca_bls = graph.backlinks_of_type(ctrl_id, "issued-by"); + ca_bls + .iter() + .filter(|bl| { + store + .get(&bl.source) + .map(|a| a.artifact_type == "control-action") + .unwrap_or(false) + }) + .map(|bl| bl.source.clone()) + .next() + .unwrap_or_else(|| ctrl_id.to_string()) + } else { + "-".to_string() + }; + let hazards: Vec = uca + .links + .iter() + .filter(|l| l.link_type == "leads-to-hazard") + .map(|l| l.target.clone()) + .collect(); + rows.push(UcaRow { + id: uca_id.clone(), + title: uca.title.clone(), + uca_type, + control_action, + linked_hazards: hazards, + }); + } + + rows.sort_by(|a, b| { + a.control_action + .cmp(&b.control_action) + .then(a.id.cmp(&b.id)) + }); + + html.push_str( + "\ + \ + \ + ", + ); + + for row in &rows { + let type_class = match row.uca_type.as_str() { + "not-providing" => "uca-type-not-providing", + "providing" => "uca-type-providing", + "too-early-too-late" => "uca-type-too-early-too-late", + "stopped-too-soon" => "uca-type-stopped-too-soon", + _ => "", + }; + let type_badge = if type_class.is_empty() { + html_escape(&row.uca_type) + } else { + format!( + "{}", + html_escape(&row.uca_type), + ) + }; + let hazard_links: Vec = row + .linked_hazards + .iter() + .map(|h| { + format!( + "{id}", + id = html_escape(h), + ) + }) + .collect(); + let ca_display = if row.control_action == "-" { + "-".to_string() + } else { + format!( + "{id}", + id = html_escape(&row.control_action), + ) + }; + html.push_str(&format!( + "\ + \ + \ + \ + \ + ", + id = html_escape(&row.id), + ca = ca_display, + title = html_escape(&row.title), + hazards = hazard_links.join(", "), + )); + } + + html.push_str("
Unsafe Control Actions
IDControl ActionUCA TypeDescriptionLinked Hazards
{id}{ca}{type_badge}{title}{hazards}
"); + } + + html.push_str(&format!( + "

{total} STPA artifacts total

" + )); + + // ── STPA-Sec section ──────────────────────────────────────────────── + let sec_types = [ + ("sec-loss", "Security Losses"), + ("sec-hazard", "Security Hazards"), + ("sec-constraint", "Security Constraints"), + ("sec-uca", "Security UCAs"), + ("sec-scenario", "Security Scenarios"), + ]; + let sec_total: usize = sec_types.iter().map(|(t, _)| store.count_by_type(t)).sum(); + + if sec_total > 0 { + html.push_str( + "
\ +

STPA-Sec — Security Analysis

\ +

\ + STPA extended with adversarial threat modelling. Each security hazard includes \ + CIA-triad impact; each security UCA includes an adversarial-causation field \ + explaining how an attacker could introduce the unsafe condition.\ +

", + ); + + // Stat cards + html.push_str("
"); + let sec_colors = ["#ef4444", "#dc2626", "#b91c1c", "#991b1b", "#7f1d1d"]; + for (i, (type_name, label)) in sec_types.iter().enumerate() { + let count = store.count_by_type(type_name); + if count == 0 { + continue; + } + let color = sec_colors[i]; + html.push_str(&format!( + "
\ +
{count}
\ +
{label}
" + )); + } + html.push_str("
"); + + // Sec hierarchy: sec-loss → sec-hazard → sec-constraint + sec-uca → sec-scenario + html.push_str("

Security Hierarchy

"); + + let sec_losses = store.by_type("sec-loss"); + let mut sorted_sec_losses: Vec<&str> = sec_losses.iter().map(|s| s.as_str()).collect(); + sorted_sec_losses.sort(); + + if sorted_sec_losses.is_empty() { + html.push_str("

No security losses defined.

"); + } + + for sl_id in &sorted_sec_losses { + let Some(sl) = store.get(sl_id) else { + continue; + }; + if has_active_filter + && (!type_visible(&type_filter, "sec-loss") + || !matches_text(store, sl_id, &q_filter)) + { + continue; + } + let cia = sl + .fields + .get("cia-impact") + .and_then(|v| v.as_sequence()) + .map(|seq| { + seq.iter() + .filter_map(|v| v.as_str()) + .collect::>() + .join(", ") + }) + .unwrap_or_default(); + let cia_badge = if !cia.is_empty() { + format!( + "{cia}" + ) + } else { + String::new() + }; + + html.push_str("
"); + html.push_str(" "); + html.push_str(&badge_for_type("sec-loss")); + html.push_str(&format!( + " {id}\ + {title}{cia_badge}", + id = html_escape(sl_id), + title = html_escape(&sl.title), + )); + html.push_str(""); + + let sh_backlinks = graph.backlinks_of_type(sl_id, "leads-to-sec-loss"); + if !sh_backlinks.is_empty() { + html.push_str("
"); + let mut sh_ids: Vec<&str> = + sh_backlinks.iter().map(|bl| bl.source.as_str()).collect(); + sh_ids.sort(); + sh_ids.dedup(); + + for sh_id in &sh_ids { + let Some(sh) = store.get(sh_id) else { + continue; + }; + if has_active_filter + && (!type_visible(&type_filter, "sec-hazard") + || !matches_text(store, sh_id, &q_filter)) + { + continue; + } + let sh_cia = sh + .fields + .get("cia-impact") + .and_then(|v| v.as_sequence()) + .map(|seq| { + seq.iter() + .filter_map(|v| v.as_str()) + .collect::>() + .join(", ") + }) + .unwrap_or_default(); + let sh_cia_badge = if !sh_cia.is_empty() { + format!( + "{sh_cia}" + ) + } else { + String::new() + }; + + html.push_str("
"); + html.push_str(" "); + html.push_str("leads-to-sec-loss"); + html.push_str(&badge_for_type("sec-hazard")); + html.push_str(&format!( + " {id}\ + {title}{sh_cia_badge}", + id = html_escape(sh_id), + title = html_escape(&sh.title), + )); + html.push_str(""); + + let ssc_bls = graph.backlinks_of_type(sh_id, "prevents-sec-hazard"); + let suca_bls = graph.backlinks_of_type(sh_id, "leads-to-sec-hazard"); + + if !ssc_bls.is_empty() || !suca_bls.is_empty() { + html.push_str("
"); + + // Security Constraints + let mut ssc_ids: Vec<&str> = + ssc_bls.iter().map(|bl| bl.source.as_str()).collect(); + ssc_ids.sort(); + ssc_ids.dedup(); + for ssc_id in &ssc_ids { + let Some(ssc) = store.get(ssc_id) else { + continue; + }; + if has_active_filter + && (!type_visible(&type_filter, "sec-constraint") + || !matches_text(store, ssc_id, &q_filter)) + { + continue; + } + html.push_str(&format!( + "
\ + prevents{badge}\ + {id}\ + {title}\ +
", + badge = badge_for_type("sec-constraint"), + id = html_escape(ssc_id), + title = html_escape(&ssc.title), + )); + } + + // Security UCAs + let mut suca_ids: Vec<&str> = suca_bls + .iter() + .filter(|bl| { + store + .get(&bl.source) + .map(|a| a.artifact_type == "sec-uca") + .unwrap_or(false) + }) + .map(|bl| bl.source.as_str()) + .collect(); + suca_ids.sort(); + suca_ids.dedup(); + for suca_id in &suca_ids { + let Some(suca) = store.get(suca_id) else { + continue; + }; + if has_active_filter + && (!type_visible(&type_filter, "sec-uca") + || !matches_text(store, suca_id, &q_filter)) + { + continue; + } + html.push_str("
"); + html.push_str(" "); + html.push_str( + "leads-to-sec-hazard", + ); + html.push_str(&badge_for_type("sec-uca")); + html.push_str(&format!( + " {id}\ + {title}", + id = html_escape(suca_id), + title = html_escape(&suca.title), + )); + html.push_str(""); + + let sls_bls = graph.backlinks_of_type(suca_id, "caused-by-sec-uca"); + if !sls_bls.is_empty() { + html.push_str("
"); + let mut sls_ids: Vec<&str> = + sls_bls.iter().map(|bl| bl.source.as_str()).collect(); + sls_ids.sort(); + sls_ids.dedup(); + for sls_id in &sls_ids { + let Some(sls) = store.get(sls_id) else { + continue; + }; + if has_active_filter + && (!type_visible(&type_filter, "sec-scenario") + || !matches_text(store, sls_id, &q_filter)) + { + continue; + } + let av = sls + .fields + .get("attack-vector") + .and_then(|v| v.as_str()) + .unwrap_or("-"); + html.push_str(&format!( + "
\ + caused-by-sec-uca{badge}\ + {id}\ + {title}\ + {av}\ +
", + badge = badge_for_type("sec-scenario"), + id = html_escape(sls_id), + title = html_escape(&sls.title), + )); + } + html.push_str("
"); + } + html.push_str("
"); // sec-uca + } + + html.push_str("
"); // stpa-level (SSC/SUCA) + } + html.push_str("
"); // sec-hazard + } + html.push_str("
"); // stpa-level (sec-hazards) + } + html.push_str("
"); // sec-loss + } + + html.push_str("
"); // stpa-tree, card + + // Security UCA table + let suca_ids = store.by_type("sec-uca"); + let show_sec_uca_table = !suca_ids.is_empty() && type_visible(&type_filter, "sec-uca"); + if show_sec_uca_table { + html.push_str( + "

Security Unsafe Control Actions

\ + \ + \ + \ + ", + ); + + let mut suca_list: Vec<(String, String, String, String, String, Vec)> = + Vec::new(); + for suca_id in suca_ids { + let Some(suca) = store.get(suca_id) else { + continue; + }; + if has_active_filter && !matches_text(store, suca_id, &q_filter) { + continue; + } + let uca_type = suca + .fields + .get("uca-type") + .and_then(|v| v.as_str()) + .unwrap_or("-") + .to_string(); + let attacker = suca + .fields + .get("attacker-type") + .and_then(|v| v.as_str()) + .unwrap_or("-") + .to_string(); + let controller = suca + .links + .iter() + .find(|l| l.link_type == "issued-by") + .map(|l| l.target.clone()) + .unwrap_or_else(|| "-".to_string()); + let hazards: Vec = suca + .links + .iter() + .filter(|l| l.link_type == "leads-to-sec-hazard") + .map(|l| l.target.clone()) + .collect(); + suca_list.push(( + suca_id.clone(), + suca.title.clone(), + uca_type, + attacker, + controller, + hazards, + )); + } + suca_list.sort_by(|a, b| a.4.cmp(&b.4).then(a.0.as_str().cmp(b.0.as_str()))); + + for (id, title, uca_type, attacker, controller, hazards) in &suca_list { + let type_class = match uca_type.as_str() { + "not-providing" => "uca-type-not-providing", + "providing" => "uca-type-providing", + "too-early-too-late" => "uca-type-too-early-too-late", + "stopped-too-soon" => "uca-type-stopped-too-soon", + _ => "", + }; + let type_badge = if type_class.is_empty() { + html_escape(uca_type) + } else { + format!( + "{}", + html_escape(uca_type), + ) + }; + let attacker_color = match attacker.as_str() { + "external-network" => "#dc2626", + "insider" => "#b45309", + "supply-chain" => "#7c3aed", + "physical" => "#1d4ed8", + _ => "var(--text-secondary)", + }; + let attacker_badge = format!( + "{}", + html_escape(attacker), + ); + let hazard_links: String = hazards + .iter() + .map(|h| { + format!( + "{id}", + id = html_escape(h), + ) + }) + .collect::>() + .join(", "); + let ctrl_display = if controller == "-" { + "-".to_string() + } else { + format!( + "{id}", + id = html_escape(controller), + ) + }; + html.push_str(&format!( + "\ + \ + \ + \ + \ + \ + ", + id = html_escape(id), + title = html_escape(title), + )); + } + html.push_str("
Security Unsafe Control Actions
IDControllerUCA TypeAttackerDescriptionHazards
{id}{ctrl_display}{type_badge}{attacker_badge}{title}{hazard_links}
"); + } + + html.push_str(&format!( + "

{sec_total} STPA-Sec artifacts total

" + )); + } + + html +} + +// ── Private helpers ─────────────────────────────────────────────────────── + +/// Check if an artifact matches the text query. +fn matches_text(store: &Store, id: &str, q: &Option) -> bool { + let Some(q) = q else { return true }; + if id.to_lowercase().contains(q) { + return true; + } + if let Some(a) = store.get(id) { + if a.title.to_lowercase().contains(q) { + return true; + } + if let Some(ref desc) = a.description { + if desc.to_lowercase().contains(q) { + return true; + } + } + } + false +} + +/// Check if an artifact type is in the filter set. +fn type_visible(tf: &Option>, art_type: &str) -> bool { + match tf { + Some(types) => types.contains(&art_type.to_lowercase()), + None => true, + } +} diff --git a/rivet-cli/src/render/styles.rs b/rivet-cli/src/render/styles.rs new file mode 100644 index 0000000..8b08874 --- /dev/null +++ b/rivet-cli/src/render/styles.rs @@ -0,0 +1,689 @@ +// Auto-extracted from serve.rs + +/// Bundled font faces (Latin subset) — no Google Fonts CDN needed. +pub(crate) const FONTS_CSS: &str = include_str!("../../assets/fonts.css"); + +pub(crate) const CSS: &str = r#" +/* ── Reset & base ─────────────────────────────────────────────── */ +*,*::before,*::after{box-sizing:border-box;margin:0;padding:0} +:root{ + --bg: #f5f5f7; + --surface:#fff; + --sidebar:#0f0f13; + --sidebar-hover:#1c1c24; + --sidebar-text:#9898a6; + --sidebar-active:#fff; + --text: #1d1d1f; + --text-secondary:#6e6e73; + --border: #e5e5ea; + --accent: #3a86ff; + --accent-hover:#2568d6; + --radius: 10px; + --radius-sm:6px; + --shadow: 0 1px 3px rgba(0,0,0,.06),0 1px 2px rgba(0,0,0,.04); + --shadow-md:0 4px 12px rgba(0,0,0,.06),0 1px 3px rgba(0,0,0,.04); + --mono: 'JetBrains Mono','Fira Code','SF Mono',Menlo,monospace; + --font: 'Atkinson Hyperlegible',system-ui,-apple-system,sans-serif; + --transition:180ms ease; +} +html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility} +body{font-family:var(--font);color:var(--text);background:var(--bg);line-height:1.6;font-size:15px} + +/* ── Links ────────────────────────────────────────────────────── */ +a{color:var(--accent);text-decoration:none;transition:color var(--transition)} +a:hover{color:var(--accent-hover)} +a:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px} + +/* ── Screen-reader-only utility (accessibility) ──────────────── */ +.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px; + overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0} + +/* ── Skip-to-content link (accessibility) ────────────────────── */ +.skip-link{position:absolute;top:-100%;left:1rem;z-index:10000; + padding:.5rem 1rem;background:var(--accent);color:#fff;font-weight:600; + border-radius:0 0 var(--radius-sm) var(--radius-sm);font-size:.875rem; + text-decoration:none;transition:top .15s ease} +.skip-link:focus{top:0} + +/* ── Shell layout ─────────────────────────────────────────────── */ +.shell{display:flex;min-height:100vh} +.content-area{display:flex;flex-direction:column;flex:1;min-width:0} + +/* ── Sidebar navigation ──────────────────────────────────────── */ +nav{width:232px;background:var(--sidebar);color:var(--sidebar-text); + padding:1.75rem 1rem;flex-shrink:0;display:flex;flex-direction:column; + position:sticky;top:0;height:100vh;overflow-y:auto; + border-right:1px solid rgba(255,255,255,.06)} +nav h1{font-size:1.05rem;font-weight:700;color:var(--sidebar-active); + margin-bottom:2rem;letter-spacing:.04em;padding:0 .75rem; + display:flex;align-items:center;gap:.5rem} +nav h1::before{content:'';display:inline-block;width:8px;height:8px; + border-radius:50%;background:var(--accent);flex-shrink:0} +nav ul{list-style:none;display:flex;flex-direction:column;gap:2px} +nav li{margin:0} +nav a{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-radius:var(--radius-sm); + color:var(--sidebar-text);font-size:.875rem;font-weight:500; + transition:all var(--transition)} +nav a:hover{background:var(--sidebar-hover);color:var(--sidebar-active);text-decoration:none} +nav a.active{background:rgba(58,134,255,.08);color:var(--sidebar-active);border-left:2px solid var(--accent);padding-left:calc(.75rem - 2px)} +nav a:focus-visible{outline:2px solid var(--accent);outline-offset:-2px} + +/* ── Main content ─────────────────────────────────────────────── */ +main{flex:1;padding:2.5rem 3rem;max-width:1400px;min-width:0;overflow-y:auto} +main.htmx-swapping{opacity:.4;transition:opacity 150ms ease-out} +main.htmx-settling{opacity:1;transition:opacity 200ms ease-in} + +/* ── Loading bar ──────────────────────────────────────────────── */ +#loading-bar{position:fixed;top:0;left:0;width:0;height:2px;background:var(--accent); + z-index:9999;transition:none;pointer-events:none} +#loading-bar.active{width:85%;transition:width 8s cubic-bezier(.1,.05,.1,1)} +#loading-bar.done{width:100%;transition:width 100ms ease;opacity:0;transition:width 100ms ease,opacity 300ms ease 100ms} + +/* ── Typography ───────────────────────────────────────────────── */ +h2{font-size:1.4rem;font-weight:700;margin-bottom:1.25rem;color:var(--text);letter-spacing:-.01em;padding-bottom:.75rem;border-bottom:1px solid var(--border)} +h3{font-size:1.05rem;font-weight:600;margin:1.5rem 0 .75rem;color:var(--text)} +code,pre{font-family:var(--mono);font-size:.85em} +pre{background:#f1f1f3;padding:1rem;border-radius:var(--radius-sm);overflow-x:auto} + +/* ── Tables ───────────────────────────────────────────────────── */ +table{width:100%;border-collapse:collapse;margin-bottom:1.5rem;font-size:.9rem} +th,td{text-align:left;padding:.65rem .875rem} +th{font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em; + color:var(--text-secondary);border-bottom:2px solid var(--border);background:transparent} +td{border-bottom:1px solid var(--border)} +tbody tr{transition:background var(--transition)} +tbody tr:nth-child(even){background:rgba(0,0,0,.015)} +tbody tr:hover{background:rgba(58,134,255,.04)} +.tbl-filter-wrap{margin-bottom:.5rem} +.tbl-filter{width:100%;max-width:20rem;padding:.4rem .65rem;font-size:.85rem;font-family:var(--mono); + border:1px solid var(--border);border-radius:5px;background:var(--surface);color:var(--text); + outline:none;transition:border-color var(--transition)} +.tbl-filter:focus{border-color:var(--accent)} +.tbl-sort-arrow{font-size:.7rem;opacity:.6;margin-left:.25rem} +th:hover .tbl-sort-arrow{opacity:1} +td a{font-family:var(--mono);font-size:.85rem;font-weight:500} + +/* ── Badges ───────────────────────────────────────────────────── */ +.badge{display:inline-flex;align-items:center;padding:.2rem .55rem;border-radius:5px; + font-size:.73rem;font-weight:600;letter-spacing:.02em;line-height:1.4;white-space:nowrap} +.badge-error{background:#fee;color:#c62828} +.badge-warn{background:#fff8e1;color:#8b6914} +.badge-info{background:#e8f4fd;color:#0c5a82} +.badge-ok{background:#e6f9ed;color:#15713a} +.badge-type{background:#f0ecf9;color:#5b2d9e;font-family:var(--mono);font-size:.72rem} + +/* ── Validation bar ──────────────────────────────────────────── */ +.validation-bar{padding:1rem 1.25rem;border-radius:var(--radius);margin-bottom:1.25rem;font-weight:600;font-size:.95rem} +.validation-bar.pass{background:linear-gradient(135deg,#e6f9ed,#d4f5e0);color:#15713a;border:1px solid #b8e8c8} +.validation-bar.fail{background:linear-gradient(135deg,#fee,#fdd);color:#c62828;border:1px solid #f4c7c3} + +/* ── Status progress bars ────────────────────────────────────── */ +.status-bar-row{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem;font-size:.85rem} +.status-bar-label{width:80px;text-align:right;font-weight:500;color:var(--text-secondary)} +.status-bar-track{flex:1;height:20px;background:#e5e5ea;border-radius:4px;overflow:hidden;position:relative} +.status-bar-fill{height:100%;border-radius:4px;transition:width .3s ease} +.status-bar-count{width:40px;font-variant-numeric:tabular-nums;color:var(--text-secondary)} + +/* ── Cards ────────────────────────────────────────────────────── */ +.card{background:var(--surface);border-radius:var(--radius);padding:1.5rem; + margin-bottom:1.25rem;box-shadow:var(--shadow);border:1px solid var(--border); + transition:box-shadow var(--transition)} + +/* ── Stat grid ────────────────────────────────────────────────── */ +.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem;margin-bottom:1.75rem} +.stat-box{background:var(--surface);border-radius:var(--radius);padding:1.25rem 1rem;text-align:center; + box-shadow:var(--shadow);border:1px solid var(--border);transition:box-shadow var(--transition),transform var(--transition); + border-top:3px solid var(--border)} +.stat-box:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)} +.stat-box .number{font-size:2rem;font-weight:800;letter-spacing:-.02em; + font-variant-numeric:tabular-nums;line-height:1.2} +.stat-box .label{font-size:.8rem;font-weight:500;color:var(--text-secondary);margin-top:.25rem; + text-transform:uppercase;letter-spacing:.04em} +.stat-blue{border-top-color:#3a86ff}.stat-blue .number{color:#3a86ff} +.stat-green{border-top-color:#15713a}.stat-green .number{color:#15713a} +.stat-orange{border-top-color:#e67e22}.stat-orange .number{color:#e67e22} +.stat-red{border-top-color:#c62828}.stat-red .number{color:#c62828} +.stat-amber{border-top-color:#b8860b}.stat-amber .number{color:#b8860b} +.stat-purple{border-top-color:#6f42c1}.stat-purple .number{color:#6f42c1} + +/* ── Link pills ───────────────────────────────────────────────── */ +.link-pill{display:inline-block;padding:.15rem .45rem;border-radius:4px; + font-size:.76rem;font-family:var(--mono);background:#f0f0f3; + color:var(--text-secondary);margin:.1rem;font-weight:500} + +/* ── Forms ────────────────────────────────────────────────────── */ +.form-row{display:flex;gap:1rem;align-items:end;flex-wrap:wrap;margin-bottom:1rem} +.form-row label{font-size:.8rem;font-weight:600;color:var(--text-secondary); + text-transform:uppercase;letter-spacing:.04em} +.form-row select,.form-row input[type="text"],.form-row input[type="search"], +.form-row input:not([type]),.form-row input[list]{ + padding:.5rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm); + font-size:.875rem;font-family:var(--font);background:var(--surface);color:var(--text); + transition:border-color var(--transition),box-shadow var(--transition);appearance:none; + -webkit-appearance:none} +.form-row select{padding-right:2rem;background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%236e6e73' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); + background-repeat:no-repeat;background-position:right .75rem center} +.form-row input:focus,.form-row select:focus{ + outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(58,134,255,.15)} +.form-row input[type="range"]{padding:0;border:none;accent-color:var(--accent);width:100%} +.form-row input[type="range"]:focus{box-shadow:none} +.form-row button{padding:.5rem 1.25rem;background:var(--accent);color:#fff;border:none; + border-radius:var(--radius-sm);font-size:.875rem;font-weight:600; + font-family:var(--font);cursor:pointer;transition:all var(--transition); + box-shadow:0 1px 2px rgba(0,0,0,.08)} +.form-row button:hover{background:var(--accent-hover);box-shadow:0 2px 6px rgba(58,134,255,.25);transform:translateY(-1px)} +.form-row button:active{transform:translateY(0)} +.form-row button:focus-visible{outline:2px solid var(--accent);outline-offset:2px} + +/* ── Definition lists ─────────────────────────────────────────── */ +dl{margin:.75rem 0} +dt{font-weight:600;font-size:.8rem;color:var(--text-secondary);margin-top:.75rem; + text-transform:uppercase;letter-spacing:.04em} +dd{margin-left:0;margin-bottom:.25rem;margin-top:.2rem} + +/* ── Meta text ────────────────────────────────────────────────── */ +.meta{color:var(--text-secondary);font-size:.85rem} + +/* ── Nav icons & badges ───────────────────────────────────────── */ +.nav-icon{display:inline-flex;width:1.25rem;height:1.25rem;align-items:center;justify-content:center;flex-shrink:0;opacity:.5} +nav a:hover .nav-icon,nav a.active .nav-icon{opacity:.9} +.nav-label{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0} +.nav-badge{font-size:.65rem;font-weight:700;padding:.1rem .4rem;border-radius:4px; + background:rgba(255,255,255,.08);color:rgba(255,255,255,.4);margin-left:auto;flex-shrink:0} +.nav-badge-error{background:rgba(220,53,69,.2);color:#ff6b7a} +nav .nav-divider{height:1px;background:rgba(255,255,255,.06);margin:.75rem .75rem} + +/* ── Context bar ─────────────────────────────────────────────── */ +.context-bar{display:flex;align-items:center;gap:.75rem;padding:.5rem 1.5rem; + background:var(--surface);border-bottom:1px solid var(--border);font-size:.78rem;color:var(--text-secondary); + flex-wrap:wrap} +.context-bar .ctx-project{font-weight:700;color:var(--text);font-size:.82rem} +.context-bar .ctx-sep{opacity:.25} +.context-bar .ctx-git{font-family:var(--mono);font-size:.72rem;padding:.15rem .4rem;border-radius:4px; + background:rgba(58,134,255,.08);color:var(--accent)} +.context-bar .ctx-dirty{font-family:var(--mono);font-size:.68rem;padding:.15rem .4rem;border-radius:4px; + background:rgba(220,53,69,.1);color:#c62828} +.context-bar .ctx-clean{font-family:var(--mono);font-size:.68rem;padding:.15rem .4rem;border-radius:4px; + background:rgba(21,113,58,.1);color:#15713a} +.context-bar .ctx-time{margin-left:auto;opacity:.6} +.ctx-switcher{position:relative;display:inline-flex;align-items:center} +.ctx-switcher-details{position:relative} +.ctx-switcher-details summary{cursor:pointer;list-style:none;display:inline-flex;align-items:center; + padding:.15rem .35rem;border-radius:4px;opacity:.5;transition:opacity .15s} +.ctx-switcher-details summary:hover{opacity:1;background:rgba(255,255,255,.06)} +.ctx-switcher-details summary::-webkit-details-marker{display:none} +.ctx-switcher-dropdown{position:absolute;top:100%;left:0;z-index:100;margin-top:.35rem; + background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm); + padding:.5rem;min-width:280px;box-shadow:0 8px 24px rgba(0,0,0,.35)} +.ctx-switcher-item{padding:.5rem .65rem;border-radius:4px} +.ctx-switcher-item:hover{background:rgba(255,255,255,.04)} +.ctx-switcher-item .ctx-switcher-name{display:block;font-weight:600;font-size:.8rem;color:var(--text);margin-bottom:.2rem} +.ctx-switcher-item .ctx-switcher-cmd{display:block;font-size:.7rem;color:var(--text-secondary); + padding:.2rem .4rem;background:rgba(255,255,255,.04);border-radius:3px; + font-family:var(--mono);user-select:all;cursor:text} + +/* ── Footer ──────────────────────────────────────────────────── */ +.footer{padding:2rem 0 1rem;text-align:center;font-size:.75rem;color:var(--text-secondary); + border-top:1px solid var(--border);margin-top:3rem} + +/* ── Verification ────────────────────────────────────────────── */ +.ver-level{margin-bottom:1.5rem} +.ver-level-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem} +.ver-level-title{font-size:1rem;font-weight:600;color:var(--text)} +.ver-level-arrow{color:var(--text-secondary);font-size:.85rem} +details.ver-row>summary{cursor:pointer;list-style:none;padding:.6rem .875rem;border-bottom:1px solid var(--border); + display:flex;align-items:center;gap:.75rem;transition:background var(--transition)} +details.ver-row>summary::-webkit-details-marker{display:none} +details.ver-row>summary:hover{background:rgba(58,134,255,.04)} +details.ver-row[open]>summary{background:rgba(58,134,255,.04);border-bottom-color:var(--accent)} +details.ver-row>.ver-detail{padding:1rem 1.5rem;background:rgba(0,0,0,.01);border-bottom:1px solid var(--border)} +.ver-chevron{transition:transform var(--transition);display:inline-flex;opacity:.4} +details.ver-row[open] .ver-chevron{transform:rotate(90deg)} +.ver-steps{width:100%;border-collapse:collapse;font-size:.85rem;margin-top:.5rem} +.ver-steps th{text-align:left;font-weight:600;font-size:.72rem;text-transform:uppercase; + letter-spacing:.04em;color:var(--text-secondary);padding:.4rem .5rem;border-bottom:1px solid var(--border)} +.ver-steps td{padding:.4rem .5rem;border-bottom:1px solid rgba(0,0,0,.04);vertical-align:top} +.method-badge{display:inline-flex;padding:.15rem .5rem;border-radius:4px;font-size:.72rem;font-weight:600; + background:#e8f4fd;color:#0c5a82} + +/* ── Results ─────────────────────────────────────────────────── */ +.result-pass{color:#15713a}.result-fail{color:#c62828}.result-skip{color:#6e6e73} +.result-error{color:#e67e22}.result-blocked{color:#8b6914} +.result-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:.35rem} +.result-dot-pass{background:#15713a}.result-dot-fail{background:#c62828} +.result-dot-skip{background:#c5c5cd}.result-dot-error{background:#e67e22}.result-dot-blocked{background:#b8860b} + +/* ── Diff ────────────────────────────────────────────────────── */ +.diff-added{background:rgba(21,113,58,.08)} +.diff-removed{background:rgba(198,40,40,.08)} +.diff-modified{background:rgba(184,134,11,.08)} +.diff-icon{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem; + border-radius:4px;font-size:.85rem;font-weight:700;flex-shrink:0;margin-right:.35rem} +.diff-icon-add{background:rgba(21,113,58,.12);color:#15713a} +.diff-icon-remove{background:rgba(198,40,40,.12);color:#c62828} +.diff-icon-modify{background:rgba(184,134,11,.12);color:#b8860b} +.diff-summary{display:flex;gap:1.25rem;padding:.75rem 1rem;border-radius:var(--radius-sm); + background:var(--surface);border:1px solid var(--border);margin-bottom:1.25rem;font-size:.9rem;font-weight:600} +.diff-summary-item{display:flex;align-items:center;gap:.35rem} +.diff-old{color:#c62828;text-decoration:line-through;font-size:.85rem} +.diff-new{color:#15713a;font-size:.85rem} +.diff-arrow{color:var(--text-secondary);margin:0 .25rem;font-size:.8rem} +details.diff-row>summary{cursor:pointer;list-style:none;padding:.6rem .875rem;border-bottom:1px solid var(--border); + display:flex;align-items:center;gap:.5rem;transition:background var(--transition)} +details.diff-row>summary::-webkit-details-marker{display:none} +details.diff-row>summary:hover{background:rgba(58,134,255,.04)} +details.diff-row[open]>summary{background:rgba(184,134,11,.06);border-bottom-color:var(--border)} +details.diff-row>.diff-detail{padding:.75rem 1.25rem;background:rgba(0,0,0,.01);border-bottom:1px solid var(--border);font-size:.88rem} +.diff-field{padding:.3rem 0;display:flex;align-items:baseline;gap:.5rem} +.diff-field-name{font-weight:600;font-size:.8rem;color:var(--text-secondary);min-width:100px; + text-transform:uppercase;letter-spacing:.03em} + +/* ── Detail actions ──────────────────────────────────────────── */ +.detail-actions{display:flex;gap:.75rem;align-items:center;margin-top:1rem} +.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem 1rem;border-radius:var(--radius-sm); + font-size:.85rem;font-weight:600;font-family:var(--font);text-decoration:none; + transition:all var(--transition);cursor:pointer;border:none} +.btn-primary{background:var(--accent);color:#fff;box-shadow:0 1px 2px rgba(0,0,0,.08)} +.btn-primary:hover{background:var(--accent-hover);transform:translateY(-1px);color:#fff;text-decoration:none} +.btn-secondary{background:transparent;color:var(--text-secondary);border:1px solid var(--border)} +.btn-secondary:hover{background:rgba(0,0,0,.03);color:var(--text);text-decoration:none} + +/* ── SVG Viewer (fullscreen / popout / resize) ───────────────── */ +.svg-viewer{position:relative;border:1px solid var(--border);border-radius:6px;overflow:hidden; + resize:both;min-height:300px} +.svg-viewer-toolbar{position:absolute;top:8px;right:8px;z-index:20;display:flex;gap:4px} +.svg-viewer-toolbar button{background:rgba(0,0,0,0.6);color:#fff;border:1px solid rgba(255,255,255,0.2); + border-radius:4px;padding:4px 8px;cursor:pointer;font-size:16px;line-height:1; + transition:background var(--transition)} +.svg-viewer-toolbar button:hover{background:rgba(0,0,0,0.8)} +.svg-viewer.fullscreen{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:9999; + border-radius:0;background:var(--bg);resize:none} +.svg-viewer.fullscreen .svg-viewer-toolbar{top:16px;right:16px} +.svg-viewer .graph-container{border:none;border-radius:0} +.svg-viewer.fullscreen .graph-container{height:100vh;min-height:100vh} + +/* ── Graph ────────────────────────────────────────────────────── */ +.graph-container{border-radius:var(--radius);overflow:hidden;background:#fafbfc;cursor:grab; + height:calc(100vh - 280px);min-height:400px;position:relative;border:1px solid var(--border)} +.graph-container:active{cursor:grabbing} +.graph-container svg{display:block;width:100%;height:100%;position:absolute;top:0;left:0} +.graph-controls{position:absolute;top:.75rem;right:.75rem;display:flex;flex-direction:column;gap:.35rem;z-index:10} +.graph-controls button{width:34px;height:34px;border:1px solid var(--border);border-radius:var(--radius-sm); + background:var(--surface);font-size:1rem;cursor:pointer;display:flex;align-items:center; + justify-content:center;box-shadow:var(--shadow);color:var(--text); + transition:all var(--transition)} +.graph-controls button:hover{background:#f0f0f3;box-shadow:var(--shadow-md)} +.graph-controls button:focus-visible{outline:2px solid var(--accent);outline-offset:2px} +.graph-legend{display:flex;flex-wrap:wrap;gap:.75rem;padding:.75rem 0 .25rem;font-size:.82rem} +.graph-legend-item{display:flex;align-items:center;gap:.35rem;color:var(--text-secondary)} +.graph-legend-swatch{width:12px;height:12px;border-radius:3px;flex-shrink:0} + +/* ── Filter grid ──────────────────────────────────────────────── */ +.filter-grid{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:.75rem} +.filter-grid label{font-size:.8rem;display:flex;align-items:center;gap:.3rem; + color:var(--text-secondary);cursor:pointer;padding:.2rem .45rem; + border-radius:4px;transition:background var(--transition); + text-transform:none;letter-spacing:0;font-weight:500} +.filter-grid label:hover{background:rgba(58,134,255,.06)} +.filter-grid input[type="checkbox"]{margin:0;accent-color:var(--accent);width:14px;height:14px; + cursor:pointer;border-radius:3px} + +/* ── Document styles ──────────────────────────────────────────── */ +.doc-body{line-height:1.8;font-size:.95rem} +.doc-body h1{font-size:1.4rem;font-weight:700;margin:2rem 0 .75rem;color:var(--text); + border-bottom:2px solid var(--border);padding-bottom:.5rem} +.doc-body h2{font-size:1.2rem;font-weight:600;margin:1.5rem 0 .5rem;color:var(--text)} +.doc-body h3{font-size:1.05rem;font-weight:600;margin:1.25rem 0 .4rem;color:var(--text-secondary)} +.doc-body p{margin:.5rem 0} +.doc-body ul{margin:.5rem 0 .5rem 1.5rem} +.doc-body li{margin:.2rem 0} +.doc-body img{border-radius:6px;margin:.75rem 0;box-shadow:0 2px 8px rgba(0,0,0,.1)} +.doc-body pre.mermaid{background:transparent;border:1px solid var(--border);border-radius:6px;padding:1rem;text-align:center} +.artifact-ref{display:inline-flex;align-items:center;padding:.15rem .5rem;border-radius:5px; + font-size:.8rem;font-weight:600;font-family:var(--mono);background:#edf2ff; + color:#3a63c7;cursor:pointer;text-decoration:none; + border:1px solid #d4def5;transition:all var(--transition)} +.artifact-ref:hover{background:#d4def5;text-decoration:none;transform:translateY(-1px);box-shadow:0 2px 4px rgba(0,0,0,.06)} +.artifact-ref.broken{background:#fde8e8;color:#c62828;border-color:#f4c7c3;cursor:default} +.artifact-ref.broken:hover{transform:none;box-shadow:none} +.doc-ref{display:inline-flex;align-items:center;padding:.15rem .5rem;border-radius:5px; + font-size:.8rem;font-weight:600;font-family:var(--mono);background:#f0fdf4; + color:#166534;cursor:pointer;text-decoration:none; + border:1px solid #bbf7d0;transition:all var(--transition)} +.doc-ref:hover{background:#dcfce7;text-decoration:none;transform:translateY(-1px);box-shadow:0 2px 4px rgba(0,0,0,.06)} +/* ── Artifact hover preview ────────────────────────────────── */ +.art-tooltip{position:absolute;z-index:1000;pointer-events:none; + background:var(--surface);border:1px solid var(--border);border-radius:var(--radius); + box-shadow:var(--shadow-lg);padding:0;max-width:340px;min-width:220px; + opacity:0;transition:opacity 120ms ease-in} +.art-tooltip.visible{opacity:1;pointer-events:auto} +.art-preview{padding:.75rem .85rem;font-size:.82rem;line-height:1.45} +.art-preview-header{display:flex;align-items:center;gap:.4rem;margin-bottom:.3rem} +.art-preview-title{font-weight:600;font-size:.85rem;margin-bottom:.3rem;color:var(--text)} +.art-preview-desc{color:var(--text-secondary);font-size:.78rem;line-height:1.4;margin-top:.3rem; + display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden} +.art-preview-links{font-size:.72rem;color:var(--text-secondary);margin-top:.35rem;font-family:var(--mono)} +.art-preview-tags{margin-top:.35rem;display:flex;flex-wrap:wrap;gap:.25rem} +.art-preview-tag{font-size:.65rem;padding:.1rem .35rem;border-radius:3px; + background:rgba(58,134,255,.08);color:var(--accent);font-family:var(--mono)} +.doc-glossary{font-size:.9rem} +.doc-glossary dt{font-weight:600;color:var(--text)} +.doc-glossary dd{margin:0 0 .5rem 1rem;color:var(--text-secondary)} +.doc-toc{font-size:.88rem;background:var(--surface);border:1px solid var(--border); + border-radius:var(--radius);padding:1rem 1.25rem;margin-bottom:1.25rem; + box-shadow:var(--shadow)} +.doc-toc strong{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary)} +.doc-toc ul{list-style:none;margin:.5rem 0 0;padding:0} +.doc-toc li{margin:.2rem 0;color:var(--text-secondary)} +.doc-toc .toc-h2{padding-left:0} +.doc-toc .toc-h3{padding-left:1.25rem} +.doc-toc .toc-h4{padding-left:2.5rem} +.doc-meta{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center;margin-bottom:1.25rem} + +/* ── Source viewer ────────────────────────────────────────────── */ +.source-tree{font-family:var(--mono);font-size:.85rem;line-height:1.8} +.source-tree ul{list-style:none;margin:0;padding:0} +.source-tree li{margin:0} +.source-tree .tree-item{display:flex;align-items:center;gap:.4rem;padding:.2rem .5rem;border-radius:var(--radius-sm); + transition:background var(--transition);color:var(--text)} +.source-tree .tree-item:hover{background:rgba(58,134,255,.06);text-decoration:none} +.source-tree .tree-icon{display:inline-flex;width:1rem;height:1rem;align-items:center;justify-content:center;flex-shrink:0;opacity:.55} +.source-tree .indent{display:inline-block;width:1.25rem;flex-shrink:0} +.source-viewer{font-family:var(--mono);font-size:.82rem;line-height:1.7;overflow-x:auto; + background:#fafbfc;border:1px solid var(--border);border-radius:var(--radius);padding:0} +.source-viewer table{width:100%;border-collapse:collapse;margin:0} +.source-viewer table td{padding:0;border:none;vertical-align:top} +.source-viewer table tr:hover{background:rgba(58,134,255,.04)} +.source-line{display:table-row} +.source-line .line-no{display:table-cell;width:3.5rem;min-width:3.5rem;padding:.05rem .75rem .05rem .5rem; + text-align:right;color:#b0b0b8;user-select:none;border-right:1px solid var(--border);background:#f5f5f7} +.source-line .line-content{display:table-cell;padding:.05rem .75rem;white-space:pre;tab-size:4} +.source-line-highlight{background:rgba(58,134,255,.08) !important} +.source-line-highlight .line-no{background:rgba(58,134,255,.12);color:var(--accent);font-weight:600} +.source-line:target{background:rgba(255,210,50,.18) !important} +.source-line:target .line-no{background:rgba(255,210,50,.25);color:#9a6700;font-weight:700} +.source-line .line-no a{color:inherit;text-decoration:none} +.source-line .line-no a:hover{color:var(--accent);text-decoration:underline} +/* ── Syntax highlighting tokens ─────────────────────────────── */ +.hl-key{color:#0550ae}.hl-str{color:#0a3069}.hl-num{color:#0550ae} +.hl-bool{color:#cf222e;font-weight:600}.hl-null{color:#cf222e;font-style:italic} +.hl-comment{color:#6e7781;font-style:italic}.hl-tag{color:#6639ba} +.hl-anchor{color:#953800}.hl-type{color:#8250df}.hl-kw{color:#cf222e;font-weight:600} +.hl-fn{color:#8250df}.hl-macro{color:#0550ae;font-weight:600} +.hl-attr{color:#116329}.hl-punct{color:#6e7781} +.hl-sh-cmd{color:#0550ae;font-weight:600}.hl-sh-flag{color:#953800} +.hl-sh-pipe{color:#cf222e;font-weight:700} +.source-ref-link{color:var(--accent);text-decoration:none;font-family:var(--mono);font-size:.85em} +.source-ref-link:hover{text-decoration:underline} +.source-breadcrumb{display:flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--text-secondary); + margin-bottom:1rem;flex-wrap:wrap} +.source-breadcrumb a{color:var(--accent);font-weight:500} +.source-breadcrumb .sep{opacity:.35;margin:0 .1rem} +.source-meta{display:flex;gap:1.5rem;font-size:.8rem;color:var(--text-secondary);margin-bottom:1rem} +.source-meta .meta-item{display:flex;align-items:center;gap:.35rem} +.source-refs{margin-top:1.25rem} +.source-refs h3{font-size:.95rem;margin-bottom:.5rem} + +/* ── STPA tree ───────────────────────────────────────────────── */ +.stpa-tree{margin-top:1.25rem} +.stpa-level{padding-left:1.5rem;border-left:2px solid var(--border);margin-left:.5rem} +.stpa-node{display:flex;align-items:center;gap:.5rem;padding:.35rem 0;font-size:.9rem} +.stpa-node a{font-family:var(--mono);font-size:.82rem;font-weight:500} +.stpa-link-label{display:inline-block;padding:.1rem .4rem;border-radius:4px;font-size:.68rem; + font-family:var(--mono);background:rgba(58,134,255,.08);color:var(--accent);font-weight:500; + margin-right:.35rem;white-space:nowrap} +details.stpa-details>summary{cursor:pointer;list-style:none;padding:.4rem .5rem;border-radius:var(--radius-sm); + display:flex;align-items:center;gap:.5rem;transition:background var(--transition);font-size:.9rem} +details.stpa-details>summary::-webkit-details-marker{display:none} +details.stpa-details>summary:hover{background:rgba(58,134,255,.04)} +details.stpa-details>summary .stpa-chevron{transition:transform var(--transition);display:inline-flex;opacity:.4;font-size:.7rem} +details.stpa-details[open]>summary .stpa-chevron{transform:rotate(90deg)} +.stpa-uca-table{width:100%;border-collapse:collapse;font-size:.88rem;margin-top:.75rem} +.stpa-uca-table th{font-weight:600;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em; + color:var(--text-secondary);padding:.5rem .75rem;border-bottom:2px solid var(--border)} +.stpa-uca-table td{padding:.55rem .75rem;border-bottom:1px solid var(--border);vertical-align:top} +.stpa-uca-table tbody tr:hover{background:rgba(58,134,255,.04)} +.uca-type-badge{display:inline-flex;padding:.15rem .5rem;border-radius:4px;font-size:.72rem;font-weight:600;white-space:nowrap} +.uca-type-not-providing{background:#fee;color:#c62828} +.uca-type-providing{background:#fff3e0;color:#e65100} +.uca-type-too-early-too-late{background:#e8f4fd;color:#0c5a82} +.uca-type-stopped-too-soon{background:#f3e5f5;color:#6a1b9a} + +/* ── Traceability explorer ──────────────────────────────────────── */ +.trace-matrix{border-collapse:collapse;font-size:.8rem;margin-bottom:1.5rem;width:100%} +.trace-matrix th{font-weight:600;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em; + color:var(--text-secondary);padding:.45rem .6rem;border-bottom:2px solid var(--border);white-space:nowrap} +.trace-matrix td{padding:.35rem .6rem;border-bottom:1px solid var(--border);text-align:center} +.trace-matrix td:first-child{text-align:left;font-family:var(--mono);font-size:.78rem;font-weight:500} +.trace-matrix tbody tr:hover{background:rgba(58,134,255,.04)} +.trace-cell{display:inline-flex;align-items:center;justify-content:center;width:28px;height:22px; + border-radius:4px;font-size:.75rem;font-weight:700;font-variant-numeric:tabular-nums} +.trace-cell-ok{background:rgba(21,113,58,.1);color:#15713a} +.trace-cell-gap{background:rgba(198,40,40,.1);color:#c62828} +.trace-tree{margin-top:1rem} +.trace-node{display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;border-radius:var(--radius-sm); + transition:background var(--transition);font-size:.88rem} +.trace-node:hover{background:rgba(58,134,255,.04)} +.trace-node a{font-family:var(--mono);font-size:.82rem;font-weight:500} +.trace-edge{display:inline-block;padding:.1rem .4rem;border-radius:4px;font-size:.68rem; + font-family:var(--mono);background:rgba(58,134,255,.08);color:var(--accent);font-weight:500; + margin-right:.35rem;white-space:nowrap} +.trace-level{padding-left:1.5rem;border-left:2px solid var(--border);margin-left:.5rem} +details.trace-details>summary{cursor:pointer;list-style:none;padding:.4rem .5rem;border-radius:var(--radius-sm); + display:flex;align-items:center;gap:.5rem;transition:background var(--transition);font-size:.88rem} +details.trace-details>summary::-webkit-details-marker{display:none} +details.trace-details>summary:hover{background:rgba(58,134,255,.04)} +details.trace-details>summary .trace-chevron{transition:transform var(--transition);display:inline-flex;opacity:.4;font-size:.7rem} +details.trace-details[open]>summary .trace-chevron{transform:rotate(90deg)} +.trace-history{margin:.35rem 0 .5rem 1.5rem;padding:.5rem .75rem;background:rgba(0,0,0,.015); + border-radius:var(--radius-sm);border:1px solid var(--border);font-size:.8rem} +.trace-history-title{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em; + color:var(--text-secondary);margin-bottom:.35rem} +.trace-history-item{display:flex;align-items:baseline;gap:.5rem;padding:.15rem 0;color:var(--text-secondary)} +.trace-history-item code{font-size:.75rem;color:var(--accent);font-weight:500} +.trace-history-item .hist-date{font-size:.72rem;color:var(--text-secondary);opacity:.7;min-width:70px} +.trace-history-item .hist-msg{font-size:.78rem;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis} +.trace-status{display:inline-flex;padding:.12rem .4rem;border-radius:4px;font-size:.68rem;font-weight:600; + margin-left:.25rem} +.trace-status-approved{background:rgba(21,113,58,.1);color:#15713a} +.trace-status-draft{background:rgba(184,134,11,.1);color:#b8860b} + +/* ── Artifact embedding in docs ────────────────────────────────── */ +.artifact-embed{margin:.75rem 0;padding:.75rem 1rem;background:var(--card-bg);border:1px solid var(--border); + border-radius:var(--radius);border-left:3px solid var(--accent)} +.artifact-embed-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.35rem} +.artifact-embed-header .artifact-ref{font-family:var(--mono);font-size:.85rem;font-weight:600} +.artifact-embed-title{font-weight:600;font-size:.92rem;color:var(--text)} +.artifact-embed-desc{font-size:.82rem;color:var(--text-secondary);margin-top:.25rem;line-height:1.5} + +/* ── Rendered markdown in descriptions ─────────────────────────── */ +.artifact-desc p{margin:.3em 0} +.artifact-desc ul,.artifact-desc ol{margin:.3em 0;padding-left:1.5em} +.artifact-desc code{background:rgba(255,255,255,.1);padding:.1em .3em;border-radius:3px;font-size:.9em} +.artifact-desc pre{background:rgba(0,0,0,.3);padding:.5em;border-radius:4px;overflow-x:auto} +.artifact-desc pre code{background:none;padding:0} +.artifact-desc table{border-collapse:collapse;margin:.5em 0} +.artifact-desc table td,.artifact-desc table th{border:1px solid var(--border);padding:.3em .6em} +.artifact-desc del{opacity:.6} +.artifact-desc blockquote{border-left:3px solid var(--border);margin:.5em 0;padding-left:.8em;opacity:.85} +.artifact-embed-desc p{margin:.2em 0} +.artifact-embed-desc code{background:rgba(255,255,255,.1);padding:.1em .2em;border-radius:2px;font-size:.9em} + +/* ── Diagram in artifact detail ────────────────────────────────── */ +.artifact-diagram{margin:1rem 0} +.artifact-diagram .mermaid{background:var(--card-bg);padding:1rem;border-radius:var(--radius); + border:1px solid var(--border)} + +/* ── AADL SVG style overrides (match etch) ────────────────────── */ +.aadl-viewport svg text{font-family:system-ui,-apple-system,BlinkMacSystemFont,sans-serif !important; + font-size:12px !important} +.aadl-viewport svg rect,.aadl-viewport svg polygon{rx:6;ry:6} +.aadl-viewport svg .node rect{stroke-width:1.5px;filter:drop-shadow(0 1px 3px rgba(0,0,0,.1))} +.aadl-viewport svg .edge path,.aadl-viewport svg .edge line{stroke:#888 !important;stroke-width:1.2px} +.aadl-viewport svg .edge polygon{fill:#888 !important;stroke:#888 !important} + +/* ── Scrollbar (subtle) ───────────────────────────────────────── */ +::-webkit-scrollbar{width:6px;height:6px} +::-webkit-scrollbar-track{background:transparent} +::-webkit-scrollbar-thumb{background:#c5c5cd;border-radius:3px} +::-webkit-scrollbar-thumb:hover{background:#a0a0aa} + +/* ── Selection ────────────────────────────────────────────────── */ +::selection{background:rgba(58,134,255,.18)} + +/* ── Cmd+K search modal ──────────────────────────────────────── */ +.cmd-k-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);backdrop-filter:blur(4px); + z-index:10000;display:none;align-items:flex-start;justify-content:center;padding-top:min(20vh,160px)} +.cmd-k-overlay.open{display:flex} +.cmd-k-modal{background:var(--sidebar);border-radius:12px;width:100%;max-width:600px; + box-shadow:0 16px 70px rgba(0,0,0,.35);border:1px solid rgba(255,255,255,.08); + overflow:hidden;display:flex;flex-direction:column;max-height:min(70vh,520px)} +.cmd-k-input{width:100%;padding:.875rem 1rem .875rem 2.75rem;font-size:1rem;font-family:var(--font); + background:transparent;border:none;border-bottom:1px solid rgba(255,255,255,.08); + color:#fff;outline:none;caret-color:var(--accent)} +.cmd-k-input::placeholder{color:rgba(255,255,255,.35)} +.cmd-k-icon{position:absolute;left:1rem;top:.95rem;color:rgba(255,255,255,.35);pointer-events:none; + font-size:.95rem} +.cmd-k-head{position:relative} +.cmd-k-results{overflow-y:auto;padding:.5rem 0;flex:1} +.cmd-k-empty{padding:1.5rem 1rem;text-align:center;color:rgba(255,255,255,.35);font-size:.9rem} +.cmd-k-group{padding:0 .5rem} +.cmd-k-group-label{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em; + color:rgba(255,255,255,.3);padding:.5rem .625rem .25rem} +.cmd-k-item{display:flex;align-items:center;gap:.75rem;padding:.5rem .625rem;border-radius:var(--radius-sm); + cursor:pointer;color:var(--sidebar-text);font-size:.88rem;transition:background 80ms ease} +.cmd-k-item:hover,.cmd-k-item.active{background:rgba(255,255,255,.08);color:#fff} +.cmd-k-item-icon{width:1.5rem;height:1.5rem;border-radius:4px;display:flex;align-items:center; + justify-content:center;font-size:.7rem;flex-shrink:0;background:rgba(255,255,255,.06);color:rgba(255,255,255,.5)} +.cmd-k-item-body{flex:1;min-width:0} +.cmd-k-item-title{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} +.cmd-k-item-title mark{background:transparent;color:var(--accent);font-weight:700} +.cmd-k-item-meta{font-size:.75rem;color:rgba(255,255,255,.35);white-space:nowrap;overflow:hidden;text-overflow:ellipsis} +.cmd-k-item-meta mark{background:transparent;color:var(--accent);font-weight:600} +.cmd-k-item-field{font-size:.65rem;padding:.1rem .35rem;border-radius:3px; + background:rgba(255,255,255,.06);color:rgba(255,255,255,.4);white-space:nowrap;flex-shrink:0} +.cmd-k-kbd{display:inline-flex;align-items:center;gap:.2rem;font-size:.7rem;font-family:var(--mono); + padding:.15rem .4rem;border-radius:4px;background:rgba(255,255,255,.08);color:rgba(255,255,255,.4); + border:1px solid rgba(255,255,255,.06)} +.nav-search-hint{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem; + margin-top:auto;border-top:1px solid rgba(255,255,255,.06);padding-top:1rem; + color:var(--sidebar-text);font-size:.82rem;cursor:pointer;border-radius:var(--radius-sm); + transition:all var(--transition)} +.nav-search-hint:hover{background:var(--sidebar-hover);color:var(--sidebar-active)} +.aadl-diagram{background:var(--card-bg);border:1px solid var(--border);border-radius:8px; + margin:1.5rem 0;overflow:hidden;position:relative} +.aadl-diagram .aadl-caption{display:flex;align-items:center;justify-content:space-between; + padding:.5rem 1rem;border-bottom:1px solid var(--border);background:var(--nav-bg); + font-size:.82rem;color:var(--text-secondary)} +.aadl-caption .aadl-title{font-weight:600;color:var(--text);font-family:var(--mono);font-size:.85rem} +.aadl-caption .aadl-badge{display:inline-block;padding:.1rem .5rem;border-radius:var(--radius-sm); + background:var(--primary);color:#fff;font-size:.72rem;font-weight:600;letter-spacing:.02em} +.aadl-controls{display:flex;gap:.25rem} +.aadl-controls button{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-sm); + width:1.7rem;height:1.7rem;cursor:pointer;font-size:.85rem;line-height:1;display:flex; + align-items:center;justify-content:center;color:var(--text-secondary);transition:all .15s} +.aadl-controls button:hover{background:var(--primary);color:#fff;border-color:var(--primary)} +.aadl-viewport{overflow:hidden;cursor:grab;min-height:300px;position:relative;background:var(--body-bg)} +.aadl-viewport.grabbing{cursor:grabbing} +.aadl-viewport svg{transform-origin:0 0;position:absolute;top:0;left:0} +.aadl-viewport svg .node rect,.aadl-viewport svg .node polygon,.aadl-viewport svg .node path,.aadl-viewport svg .node ellipse{filter:drop-shadow(0 1px 2px rgba(0,0,0,.08))} +.aadl-viewport svg .node text{font-family:system-ui,-apple-system,sans-serif} +.aadl-viewport svg .edge path{stroke-dasharray:none} +.aadl-loading{color:var(--text-secondary);font-style:italic;padding:2rem;text-align:center} +.aadl-error{color:var(--danger);font-style:italic;padding:1rem} +.aadl-analysis{border-top:1px solid var(--border);max-height:220px;overflow-y:auto;font-size:.78rem} +.aadl-analysis-header{display:flex;align-items:center;gap:.5rem;padding:.4rem 1rem; + background:var(--nav-bg);font-weight:600;font-size:.75rem;color:var(--text-secondary); + position:sticky;top:0;z-index:1;border-bottom:1px solid var(--border)} +.aadl-analysis-header .badge-count{display:inline-flex;align-items:center;justify-content:center; + min-width:1.3rem;height:1.3rem;border-radius:99px;font-size:.65rem;font-weight:700;padding:0 .3rem} +.badge-error{background:var(--danger);color:#fff} +.badge-warning{background:#e8a735;color:#fff} +.badge-info{background:var(--primary);color:#fff} +.aadl-diag{display:flex;align-items:baseline;gap:.5rem;padding:.3rem 1rem;border-bottom:1px solid var(--border)} +.aadl-diag:last-child{border-bottom:none} +.aadl-diag:hover{background:rgba(0,0,0,.03)} +.aadl-diag .sev{flex-shrink:0;font-size:.65rem;font-weight:700;text-transform:uppercase; + padding:.1rem .35rem;border-radius:var(--radius-sm);letter-spacing:.03em} +.sev-error{background:#fde8e8;color:var(--danger)} +.sev-warning{background:#fef3cd;color:#856404} +.sev-info{background:#d1ecf1;color:#0c5460} +.aadl-diag .diag-path{color:var(--text-secondary);font-family:var(--mono);font-size:.72rem;flex-shrink:0} +.aadl-diag .diag-msg{color:var(--text);flex:1} +.aadl-diag .diag-analysis{color:var(--text-secondary);font-size:.68rem;opacity:.7;flex-shrink:0} + +/* ── Sortable table headers ──────────────────────────────── */ +table.sortable th{cursor:pointer;user-select:none} +table.sortable th:hover{color:var(--text)} + +/* ── Facet sidebar (artifact tag filtering) ──────────────── */ +.artifacts-layout{display:flex;gap:1.5rem;align-items:flex-start} +.artifacts-main{flex:1;min-width:0} +.facet-sidebar{width:220px;flex-shrink:0;background:var(--surface);border:1px solid var(--border); + border-radius:var(--radius);padding:1rem;position:sticky;top:1rem;max-height:calc(100vh - 4rem);overflow-y:auto} +.facet-sidebar h3{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em; + color:var(--text-secondary);margin:0 0 .75rem;padding-bottom:.5rem;border-bottom:1px solid var(--border)} +.facet-list{display:flex;flex-direction:column;gap:.35rem} +.facet-item{display:flex;align-items:center;gap:.4rem;font-size:.82rem;color:var(--text); + cursor:pointer;padding:.2rem .35rem;border-radius:4px;transition:background var(--transition)} +.facet-item:hover{background:rgba(58,134,255,.06)} +.facet-item input[type="checkbox"]{margin:0;accent-color:var(--accent);width:14px;height:14px;cursor:pointer} +.facet-item .facet-count{margin-left:auto;font-size:.72rem;color:var(--text-secondary); + font-variant-numeric:tabular-nums;font-family:var(--mono)} + +/* ── Group-by header rows ────────────────────────────────── */ +.group-header-row td{background:rgba(58,134,255,.06);font-weight:600;font-size:.85rem; + color:var(--text);padding:.5rem .875rem;border-bottom:2px solid var(--border);letter-spacing:.02em} + +/* ── Document tree hierarchy ─────────────────────────────── */ +.doc-tree{margin-bottom:1.5rem} +.doc-tree details{margin-bottom:.25rem} +.doc-tree summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:.5rem; + padding:.5rem .75rem;border-radius:var(--radius-sm);font-weight:600;font-size:.9rem; + color:var(--text);transition:background var(--transition)} +.doc-tree summary::-webkit-details-marker{display:none} +.doc-tree summary:hover{background:rgba(58,134,255,.04)} +.doc-tree summary .tree-chevron{transition:transform var(--transition);display:inline-flex;opacity:.4;font-size:.7rem} +.doc-tree details[open]>summary .tree-chevron{transform:rotate(90deg)} +.doc-tree summary .tree-count{font-size:.75rem;color:var(--text-secondary);font-weight:500; + font-variant-numeric:tabular-nums;margin-left:.25rem} +.doc-tree ul{list-style:none;padding:0 0 0 1.5rem;margin:.25rem 0} +.doc-tree li{margin:.15rem 0} +.doc-tree li a{display:flex;align-items:center;gap:.5rem;padding:.35rem .75rem;border-radius:var(--radius-sm); + font-size:.88rem;color:var(--text);transition:background var(--transition);text-decoration:none} +.doc-tree li a:hover{background:rgba(58,134,255,.04)} +.doc-tree .doc-tree-id{font-family:var(--mono);font-size:.8rem;font-weight:500;color:var(--accent)} +.doc-tree .doc-tree-status{font-size:.72rem} + +/* ── Matrix cell drill-down ──────────────────────────────── */ +.matrix-cell-clickable{cursor:pointer;transition:background var(--transition)} +.matrix-cell-clickable:hover{background:rgba(58,134,255,.08)} +.cell-detail{font-size:.82rem} +.cell-detail ul{list-style:none;padding:.5rem;margin:0} +.cell-detail li{padding:.25rem .5rem;border-bottom:1px solid var(--border)} +.cell-detail li:last-child{border-bottom:none} + +/* ── Filter bar ────────────────────────────────────────── */ +.filter-bar{margin-bottom:1rem;padding:1rem} +.filter-bar .form-row{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap} + +/* ── Pagination ────────────────────────────────────────── */ +.pagination{display:flex;gap:.25rem;align-items:center;justify-content:center; + margin-top:1rem;padding:.75rem 0;flex-wrap:wrap} +.pagination a{display:inline-flex;align-items:center;justify-content:center; + min-width:2rem;height:2rem;padding:0 .5rem;border:1px solid var(--border); + border-radius:var(--radius-sm);font-size:.82rem;font-family:var(--font); + color:var(--text);background:var(--surface);text-decoration:none; + transition:all var(--transition);cursor:pointer} +.pagination a:hover{background:var(--accent);color:#fff;border-color:var(--accent)} +.pagination-current{display:inline-flex;align-items:center;justify-content:center; + min-width:2rem;height:2rem;padding:0 .5rem;border:1px solid var(--accent); + border-radius:var(--radius-sm);font-size:.82rem;font-weight:600; + color:#fff;background:var(--accent)} +.pagination-disabled{display:inline-flex;align-items:center;justify-content:center; + min-width:2rem;height:2rem;padding:0 .5rem;border:1px solid var(--border); + border-radius:var(--radius-sm);font-size:.82rem; + color:var(--text-secondary);background:var(--surface);opacity:.5} +.pagination-ellipsis{display:inline-flex;align-items:center;justify-content:center; + min-width:1.5rem;height:2rem;font-size:.82rem;color:var(--text-secondary)} +"#; diff --git a/rivet-cli/src/render/validate.rs b/rivet-cli/src/render/validate.rs new file mode 100644 index 0000000..100e452 --- /dev/null +++ b/rivet-cli/src/render/validate.rs @@ -0,0 +1,156 @@ +use rivet_core::document::html_escape; +use rivet_core::schema::Severity; + +use super::RenderContext; +use crate::serve::components::{self, ViewParams}; + +pub(crate) fn render_validate(ctx: &RenderContext, params: &ViewParams) -> String { + let diagnostics = ctx.diagnostics; + + let errors = diagnostics + .iter() + .filter(|d| d.severity == Severity::Error) + .count(); + let warnings = diagnostics + .iter() + .filter(|d| d.severity == Severity::Warning) + .count(); + let infos = diagnostics + .iter() + .filter(|d| d.severity == Severity::Info) + .count(); + + let mut html = String::from("

Validation Results

"); + + // Colored summary bar + let total_issues = errors + warnings + infos; + if total_issues == 0 { + html.push_str("
All checks passed
"); + } else { + html.push_str(&format!( + "
{total_issues} issue{} found — {errors} error{}, {warnings} warning{}, {infos} info
", + if total_issues != 1 { "s" } else { "" }, + if errors != 1 { "s" } else { "" }, + if warnings != 1 { "s" } else { "" }, + )); + } + + if diagnostics.is_empty() { + html.push_str("

No issues found.

"); + return html; + } + + // Filter bar (severity + text search) + let current_status = params.status.as_deref().unwrap_or("all"); + let current_query = params.q.as_deref().unwrap_or(""); + html.push_str(&components::validation_filter_bar( + errors, + warnings, + infos, + current_status, + current_query, + )); + + // Apply severity filter and sort: errors first, then warnings, then info. + // We work from the cached (immutable) diagnostics, so sorting is done via + // the filtered+collected vec below rather than mutating in place. + let severity_filter = match current_status { + "error" => Some(Severity::Error), + "warning" => Some(Severity::Warning), + "info" => Some(Severity::Info), + _ => None, + }; + let q_filter: Option = if current_query.is_empty() { + None + } else { + Some(current_query.to_lowercase()) + }; + + let mut filtered: Vec<_> = diagnostics + .iter() + .filter(|d| { + if let Some(ref sev) = severity_filter { + if d.severity != *sev { + return false; + } + } + if let Some(ref q) = q_filter { + let art_match = d + .artifact_id + .as_deref() + .map(|id| id.to_lowercase().contains(q)) + .unwrap_or(false); + let rule_match = d.rule.to_lowercase().contains(q); + let msg_match = d.message.to_lowercase().contains(q); + if !art_match && !rule_match && !msg_match { + return false; + } + } + true + }) + .collect(); + + // Sort: errors first, then warnings, then info + filtered.sort_by_key(|d| match d.severity { + Severity::Error => 0, + Severity::Warning => 1, + Severity::Info => 2, + }); + + let filtered_count = filtered.len(); + if filtered_count == 0 { + html.push_str("

No matching issues found.

"); + return html; + } + + // Paginate + let per_page = params.items_per_page(); + let total_pages = filtered_count.div_ceil(per_page); + let page = params.current_page().min(total_pages); + let start = (page - 1) * per_page; + let page_items = &filtered[start..filtered_count.min(start + per_page)]; + + html.push_str( + "", + ); + + for d in page_items { + let sev = match d.severity { + Severity::Error => "ERROR", + Severity::Warning => "WARN", + Severity::Info => "INFO", + }; + let art_id = d.artifact_id.as_deref().unwrap_or("-"); + let art_link = if d.artifact_id.is_some() && ctx.store.contains(art_id) { + format!( + "{art}", + art = html_escape(art_id) + ) + } else { + html_escape(art_id) + }; + html.push_str(&format!( + "", + html_escape(&d.rule), + html_escape(&d.message) + )); + } + + html.push_str("
SeverityArtifactRuleMessage
{sev}{art_link}{}{}
"); + + // Summary + pagination + if filtered_count < total_issues { + html.push_str(&format!( + "

{filtered_count} matching issues of {total_issues} total

", + )); + } + html.push_str(&components::pagination( + filtered_count, + page, + per_page, + "/validate", + params, + )); + + html +} diff --git a/rivet-cli/src/serve/mod.rs b/rivet-cli/src/serve/mod.rs index c9037f3..2a06159 100644 --- a/rivet-cli/src/serve/mod.rs +++ b/rivet-cli/src/serve/mod.rs @@ -57,7 +57,7 @@ pub(crate) struct RepoContext { pub(crate) port: u16, } -fn capture_git_info(project_path: &std::path::Path) -> Option { +pub(crate) fn capture_git_info(project_path: &std::path::Path) -> Option { let branch = std::process::Command::new("git") .args(["rev-parse", "--abbrev-ref", "HEAD"]) .current_dir(project_path) @@ -192,6 +192,24 @@ pub(crate) struct AppState { pub(crate) cached_diagnostics: Vec, } +impl AppState { + /// Build a [`crate::render::RenderContext`] borrowing from this state. + pub(crate) fn as_render_context(&self) -> crate::render::RenderContext<'_> { + crate::render::RenderContext { + store: &self.store, + schema: &self.schema, + graph: &self.graph, + doc_store: &self.doc_store, + result_store: &self.result_store, + diagnostics: &self.cached_diagnostics, + context: &self.context, + externals: &self.externals, + project_path: &self.project_path_buf, + schemas_dir: &self.schemas_dir, + } + } +} + /// Convenience alias so handler signatures stay compact. pub(crate) type SharedState = Arc>; @@ -1054,4 +1072,4 @@ pub(crate) mod components; pub(crate) mod js; pub(crate) mod layout; pub(crate) mod styles; -mod views; +pub(crate) mod views; diff --git a/rivet-cli/src/serve/styles.rs b/rivet-cli/src/serve/styles.rs index 8b08874..3d0084b 100644 --- a/rivet-cli/src/serve/styles.rs +++ b/rivet-cli/src/serve/styles.rs @@ -1,689 +1 @@ -// Auto-extracted from serve.rs - -/// Bundled font faces (Latin subset) — no Google Fonts CDN needed. -pub(crate) const FONTS_CSS: &str = include_str!("../../assets/fonts.css"); - -pub(crate) const CSS: &str = r#" -/* ── Reset & base ─────────────────────────────────────────────── */ -*,*::before,*::after{box-sizing:border-box;margin:0;padding:0} -:root{ - --bg: #f5f5f7; - --surface:#fff; - --sidebar:#0f0f13; - --sidebar-hover:#1c1c24; - --sidebar-text:#9898a6; - --sidebar-active:#fff; - --text: #1d1d1f; - --text-secondary:#6e6e73; - --border: #e5e5ea; - --accent: #3a86ff; - --accent-hover:#2568d6; - --radius: 10px; - --radius-sm:6px; - --shadow: 0 1px 3px rgba(0,0,0,.06),0 1px 2px rgba(0,0,0,.04); - --shadow-md:0 4px 12px rgba(0,0,0,.06),0 1px 3px rgba(0,0,0,.04); - --mono: 'JetBrains Mono','Fira Code','SF Mono',Menlo,monospace; - --font: 'Atkinson Hyperlegible',system-ui,-apple-system,sans-serif; - --transition:180ms ease; -} -html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility} -body{font-family:var(--font);color:var(--text);background:var(--bg);line-height:1.6;font-size:15px} - -/* ── Links ────────────────────────────────────────────────────── */ -a{color:var(--accent);text-decoration:none;transition:color var(--transition)} -a:hover{color:var(--accent-hover)} -a:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px} - -/* ── Screen-reader-only utility (accessibility) ──────────────── */ -.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px; - overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0} - -/* ── Skip-to-content link (accessibility) ────────────────────── */ -.skip-link{position:absolute;top:-100%;left:1rem;z-index:10000; - padding:.5rem 1rem;background:var(--accent);color:#fff;font-weight:600; - border-radius:0 0 var(--radius-sm) var(--radius-sm);font-size:.875rem; - text-decoration:none;transition:top .15s ease} -.skip-link:focus{top:0} - -/* ── Shell layout ─────────────────────────────────────────────── */ -.shell{display:flex;min-height:100vh} -.content-area{display:flex;flex-direction:column;flex:1;min-width:0} - -/* ── Sidebar navigation ──────────────────────────────────────── */ -nav{width:232px;background:var(--sidebar);color:var(--sidebar-text); - padding:1.75rem 1rem;flex-shrink:0;display:flex;flex-direction:column; - position:sticky;top:0;height:100vh;overflow-y:auto; - border-right:1px solid rgba(255,255,255,.06)} -nav h1{font-size:1.05rem;font-weight:700;color:var(--sidebar-active); - margin-bottom:2rem;letter-spacing:.04em;padding:0 .75rem; - display:flex;align-items:center;gap:.5rem} -nav h1::before{content:'';display:inline-block;width:8px;height:8px; - border-radius:50%;background:var(--accent);flex-shrink:0} -nav ul{list-style:none;display:flex;flex-direction:column;gap:2px} -nav li{margin:0} -nav a{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-radius:var(--radius-sm); - color:var(--sidebar-text);font-size:.875rem;font-weight:500; - transition:all var(--transition)} -nav a:hover{background:var(--sidebar-hover);color:var(--sidebar-active);text-decoration:none} -nav a.active{background:rgba(58,134,255,.08);color:var(--sidebar-active);border-left:2px solid var(--accent);padding-left:calc(.75rem - 2px)} -nav a:focus-visible{outline:2px solid var(--accent);outline-offset:-2px} - -/* ── Main content ─────────────────────────────────────────────── */ -main{flex:1;padding:2.5rem 3rem;max-width:1400px;min-width:0;overflow-y:auto} -main.htmx-swapping{opacity:.4;transition:opacity 150ms ease-out} -main.htmx-settling{opacity:1;transition:opacity 200ms ease-in} - -/* ── Loading bar ──────────────────────────────────────────────── */ -#loading-bar{position:fixed;top:0;left:0;width:0;height:2px;background:var(--accent); - z-index:9999;transition:none;pointer-events:none} -#loading-bar.active{width:85%;transition:width 8s cubic-bezier(.1,.05,.1,1)} -#loading-bar.done{width:100%;transition:width 100ms ease;opacity:0;transition:width 100ms ease,opacity 300ms ease 100ms} - -/* ── Typography ───────────────────────────────────────────────── */ -h2{font-size:1.4rem;font-weight:700;margin-bottom:1.25rem;color:var(--text);letter-spacing:-.01em;padding-bottom:.75rem;border-bottom:1px solid var(--border)} -h3{font-size:1.05rem;font-weight:600;margin:1.5rem 0 .75rem;color:var(--text)} -code,pre{font-family:var(--mono);font-size:.85em} -pre{background:#f1f1f3;padding:1rem;border-radius:var(--radius-sm);overflow-x:auto} - -/* ── Tables ───────────────────────────────────────────────────── */ -table{width:100%;border-collapse:collapse;margin-bottom:1.5rem;font-size:.9rem} -th,td{text-align:left;padding:.65rem .875rem} -th{font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em; - color:var(--text-secondary);border-bottom:2px solid var(--border);background:transparent} -td{border-bottom:1px solid var(--border)} -tbody tr{transition:background var(--transition)} -tbody tr:nth-child(even){background:rgba(0,0,0,.015)} -tbody tr:hover{background:rgba(58,134,255,.04)} -.tbl-filter-wrap{margin-bottom:.5rem} -.tbl-filter{width:100%;max-width:20rem;padding:.4rem .65rem;font-size:.85rem;font-family:var(--mono); - border:1px solid var(--border);border-radius:5px;background:var(--surface);color:var(--text); - outline:none;transition:border-color var(--transition)} -.tbl-filter:focus{border-color:var(--accent)} -.tbl-sort-arrow{font-size:.7rem;opacity:.6;margin-left:.25rem} -th:hover .tbl-sort-arrow{opacity:1} -td a{font-family:var(--mono);font-size:.85rem;font-weight:500} - -/* ── Badges ───────────────────────────────────────────────────── */ -.badge{display:inline-flex;align-items:center;padding:.2rem .55rem;border-radius:5px; - font-size:.73rem;font-weight:600;letter-spacing:.02em;line-height:1.4;white-space:nowrap} -.badge-error{background:#fee;color:#c62828} -.badge-warn{background:#fff8e1;color:#8b6914} -.badge-info{background:#e8f4fd;color:#0c5a82} -.badge-ok{background:#e6f9ed;color:#15713a} -.badge-type{background:#f0ecf9;color:#5b2d9e;font-family:var(--mono);font-size:.72rem} - -/* ── Validation bar ──────────────────────────────────────────── */ -.validation-bar{padding:1rem 1.25rem;border-radius:var(--radius);margin-bottom:1.25rem;font-weight:600;font-size:.95rem} -.validation-bar.pass{background:linear-gradient(135deg,#e6f9ed,#d4f5e0);color:#15713a;border:1px solid #b8e8c8} -.validation-bar.fail{background:linear-gradient(135deg,#fee,#fdd);color:#c62828;border:1px solid #f4c7c3} - -/* ── Status progress bars ────────────────────────────────────── */ -.status-bar-row{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem;font-size:.85rem} -.status-bar-label{width:80px;text-align:right;font-weight:500;color:var(--text-secondary)} -.status-bar-track{flex:1;height:20px;background:#e5e5ea;border-radius:4px;overflow:hidden;position:relative} -.status-bar-fill{height:100%;border-radius:4px;transition:width .3s ease} -.status-bar-count{width:40px;font-variant-numeric:tabular-nums;color:var(--text-secondary)} - -/* ── Cards ────────────────────────────────────────────────────── */ -.card{background:var(--surface);border-radius:var(--radius);padding:1.5rem; - margin-bottom:1.25rem;box-shadow:var(--shadow);border:1px solid var(--border); - transition:box-shadow var(--transition)} - -/* ── Stat grid ────────────────────────────────────────────────── */ -.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem;margin-bottom:1.75rem} -.stat-box{background:var(--surface);border-radius:var(--radius);padding:1.25rem 1rem;text-align:center; - box-shadow:var(--shadow);border:1px solid var(--border);transition:box-shadow var(--transition),transform var(--transition); - border-top:3px solid var(--border)} -.stat-box:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)} -.stat-box .number{font-size:2rem;font-weight:800;letter-spacing:-.02em; - font-variant-numeric:tabular-nums;line-height:1.2} -.stat-box .label{font-size:.8rem;font-weight:500;color:var(--text-secondary);margin-top:.25rem; - text-transform:uppercase;letter-spacing:.04em} -.stat-blue{border-top-color:#3a86ff}.stat-blue .number{color:#3a86ff} -.stat-green{border-top-color:#15713a}.stat-green .number{color:#15713a} -.stat-orange{border-top-color:#e67e22}.stat-orange .number{color:#e67e22} -.stat-red{border-top-color:#c62828}.stat-red .number{color:#c62828} -.stat-amber{border-top-color:#b8860b}.stat-amber .number{color:#b8860b} -.stat-purple{border-top-color:#6f42c1}.stat-purple .number{color:#6f42c1} - -/* ── Link pills ───────────────────────────────────────────────── */ -.link-pill{display:inline-block;padding:.15rem .45rem;border-radius:4px; - font-size:.76rem;font-family:var(--mono);background:#f0f0f3; - color:var(--text-secondary);margin:.1rem;font-weight:500} - -/* ── Forms ────────────────────────────────────────────────────── */ -.form-row{display:flex;gap:1rem;align-items:end;flex-wrap:wrap;margin-bottom:1rem} -.form-row label{font-size:.8rem;font-weight:600;color:var(--text-secondary); - text-transform:uppercase;letter-spacing:.04em} -.form-row select,.form-row input[type="text"],.form-row input[type="search"], -.form-row input:not([type]),.form-row input[list]{ - padding:.5rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm); - font-size:.875rem;font-family:var(--font);background:var(--surface);color:var(--text); - transition:border-color var(--transition),box-shadow var(--transition);appearance:none; - -webkit-appearance:none} -.form-row select{padding-right:2rem;background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%236e6e73' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); - background-repeat:no-repeat;background-position:right .75rem center} -.form-row input:focus,.form-row select:focus{ - outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(58,134,255,.15)} -.form-row input[type="range"]{padding:0;border:none;accent-color:var(--accent);width:100%} -.form-row input[type="range"]:focus{box-shadow:none} -.form-row button{padding:.5rem 1.25rem;background:var(--accent);color:#fff;border:none; - border-radius:var(--radius-sm);font-size:.875rem;font-weight:600; - font-family:var(--font);cursor:pointer;transition:all var(--transition); - box-shadow:0 1px 2px rgba(0,0,0,.08)} -.form-row button:hover{background:var(--accent-hover);box-shadow:0 2px 6px rgba(58,134,255,.25);transform:translateY(-1px)} -.form-row button:active{transform:translateY(0)} -.form-row button:focus-visible{outline:2px solid var(--accent);outline-offset:2px} - -/* ── Definition lists ─────────────────────────────────────────── */ -dl{margin:.75rem 0} -dt{font-weight:600;font-size:.8rem;color:var(--text-secondary);margin-top:.75rem; - text-transform:uppercase;letter-spacing:.04em} -dd{margin-left:0;margin-bottom:.25rem;margin-top:.2rem} - -/* ── Meta text ────────────────────────────────────────────────── */ -.meta{color:var(--text-secondary);font-size:.85rem} - -/* ── Nav icons & badges ───────────────────────────────────────── */ -.nav-icon{display:inline-flex;width:1.25rem;height:1.25rem;align-items:center;justify-content:center;flex-shrink:0;opacity:.5} -nav a:hover .nav-icon,nav a.active .nav-icon{opacity:.9} -.nav-label{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0} -.nav-badge{font-size:.65rem;font-weight:700;padding:.1rem .4rem;border-radius:4px; - background:rgba(255,255,255,.08);color:rgba(255,255,255,.4);margin-left:auto;flex-shrink:0} -.nav-badge-error{background:rgba(220,53,69,.2);color:#ff6b7a} -nav .nav-divider{height:1px;background:rgba(255,255,255,.06);margin:.75rem .75rem} - -/* ── Context bar ─────────────────────────────────────────────── */ -.context-bar{display:flex;align-items:center;gap:.75rem;padding:.5rem 1.5rem; - background:var(--surface);border-bottom:1px solid var(--border);font-size:.78rem;color:var(--text-secondary); - flex-wrap:wrap} -.context-bar .ctx-project{font-weight:700;color:var(--text);font-size:.82rem} -.context-bar .ctx-sep{opacity:.25} -.context-bar .ctx-git{font-family:var(--mono);font-size:.72rem;padding:.15rem .4rem;border-radius:4px; - background:rgba(58,134,255,.08);color:var(--accent)} -.context-bar .ctx-dirty{font-family:var(--mono);font-size:.68rem;padding:.15rem .4rem;border-radius:4px; - background:rgba(220,53,69,.1);color:#c62828} -.context-bar .ctx-clean{font-family:var(--mono);font-size:.68rem;padding:.15rem .4rem;border-radius:4px; - background:rgba(21,113,58,.1);color:#15713a} -.context-bar .ctx-time{margin-left:auto;opacity:.6} -.ctx-switcher{position:relative;display:inline-flex;align-items:center} -.ctx-switcher-details{position:relative} -.ctx-switcher-details summary{cursor:pointer;list-style:none;display:inline-flex;align-items:center; - padding:.15rem .35rem;border-radius:4px;opacity:.5;transition:opacity .15s} -.ctx-switcher-details summary:hover{opacity:1;background:rgba(255,255,255,.06)} -.ctx-switcher-details summary::-webkit-details-marker{display:none} -.ctx-switcher-dropdown{position:absolute;top:100%;left:0;z-index:100;margin-top:.35rem; - background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm); - padding:.5rem;min-width:280px;box-shadow:0 8px 24px rgba(0,0,0,.35)} -.ctx-switcher-item{padding:.5rem .65rem;border-radius:4px} -.ctx-switcher-item:hover{background:rgba(255,255,255,.04)} -.ctx-switcher-item .ctx-switcher-name{display:block;font-weight:600;font-size:.8rem;color:var(--text);margin-bottom:.2rem} -.ctx-switcher-item .ctx-switcher-cmd{display:block;font-size:.7rem;color:var(--text-secondary); - padding:.2rem .4rem;background:rgba(255,255,255,.04);border-radius:3px; - font-family:var(--mono);user-select:all;cursor:text} - -/* ── Footer ──────────────────────────────────────────────────── */ -.footer{padding:2rem 0 1rem;text-align:center;font-size:.75rem;color:var(--text-secondary); - border-top:1px solid var(--border);margin-top:3rem} - -/* ── Verification ────────────────────────────────────────────── */ -.ver-level{margin-bottom:1.5rem} -.ver-level-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem} -.ver-level-title{font-size:1rem;font-weight:600;color:var(--text)} -.ver-level-arrow{color:var(--text-secondary);font-size:.85rem} -details.ver-row>summary{cursor:pointer;list-style:none;padding:.6rem .875rem;border-bottom:1px solid var(--border); - display:flex;align-items:center;gap:.75rem;transition:background var(--transition)} -details.ver-row>summary::-webkit-details-marker{display:none} -details.ver-row>summary:hover{background:rgba(58,134,255,.04)} -details.ver-row[open]>summary{background:rgba(58,134,255,.04);border-bottom-color:var(--accent)} -details.ver-row>.ver-detail{padding:1rem 1.5rem;background:rgba(0,0,0,.01);border-bottom:1px solid var(--border)} -.ver-chevron{transition:transform var(--transition);display:inline-flex;opacity:.4} -details.ver-row[open] .ver-chevron{transform:rotate(90deg)} -.ver-steps{width:100%;border-collapse:collapse;font-size:.85rem;margin-top:.5rem} -.ver-steps th{text-align:left;font-weight:600;font-size:.72rem;text-transform:uppercase; - letter-spacing:.04em;color:var(--text-secondary);padding:.4rem .5rem;border-bottom:1px solid var(--border)} -.ver-steps td{padding:.4rem .5rem;border-bottom:1px solid rgba(0,0,0,.04);vertical-align:top} -.method-badge{display:inline-flex;padding:.15rem .5rem;border-radius:4px;font-size:.72rem;font-weight:600; - background:#e8f4fd;color:#0c5a82} - -/* ── Results ─────────────────────────────────────────────────── */ -.result-pass{color:#15713a}.result-fail{color:#c62828}.result-skip{color:#6e6e73} -.result-error{color:#e67e22}.result-blocked{color:#8b6914} -.result-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:.35rem} -.result-dot-pass{background:#15713a}.result-dot-fail{background:#c62828} -.result-dot-skip{background:#c5c5cd}.result-dot-error{background:#e67e22}.result-dot-blocked{background:#b8860b} - -/* ── Diff ────────────────────────────────────────────────────── */ -.diff-added{background:rgba(21,113,58,.08)} -.diff-removed{background:rgba(198,40,40,.08)} -.diff-modified{background:rgba(184,134,11,.08)} -.diff-icon{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem; - border-radius:4px;font-size:.85rem;font-weight:700;flex-shrink:0;margin-right:.35rem} -.diff-icon-add{background:rgba(21,113,58,.12);color:#15713a} -.diff-icon-remove{background:rgba(198,40,40,.12);color:#c62828} -.diff-icon-modify{background:rgba(184,134,11,.12);color:#b8860b} -.diff-summary{display:flex;gap:1.25rem;padding:.75rem 1rem;border-radius:var(--radius-sm); - background:var(--surface);border:1px solid var(--border);margin-bottom:1.25rem;font-size:.9rem;font-weight:600} -.diff-summary-item{display:flex;align-items:center;gap:.35rem} -.diff-old{color:#c62828;text-decoration:line-through;font-size:.85rem} -.diff-new{color:#15713a;font-size:.85rem} -.diff-arrow{color:var(--text-secondary);margin:0 .25rem;font-size:.8rem} -details.diff-row>summary{cursor:pointer;list-style:none;padding:.6rem .875rem;border-bottom:1px solid var(--border); - display:flex;align-items:center;gap:.5rem;transition:background var(--transition)} -details.diff-row>summary::-webkit-details-marker{display:none} -details.diff-row>summary:hover{background:rgba(58,134,255,.04)} -details.diff-row[open]>summary{background:rgba(184,134,11,.06);border-bottom-color:var(--border)} -details.diff-row>.diff-detail{padding:.75rem 1.25rem;background:rgba(0,0,0,.01);border-bottom:1px solid var(--border);font-size:.88rem} -.diff-field{padding:.3rem 0;display:flex;align-items:baseline;gap:.5rem} -.diff-field-name{font-weight:600;font-size:.8rem;color:var(--text-secondary);min-width:100px; - text-transform:uppercase;letter-spacing:.03em} - -/* ── Detail actions ──────────────────────────────────────────── */ -.detail-actions{display:flex;gap:.75rem;align-items:center;margin-top:1rem} -.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem 1rem;border-radius:var(--radius-sm); - font-size:.85rem;font-weight:600;font-family:var(--font);text-decoration:none; - transition:all var(--transition);cursor:pointer;border:none} -.btn-primary{background:var(--accent);color:#fff;box-shadow:0 1px 2px rgba(0,0,0,.08)} -.btn-primary:hover{background:var(--accent-hover);transform:translateY(-1px);color:#fff;text-decoration:none} -.btn-secondary{background:transparent;color:var(--text-secondary);border:1px solid var(--border)} -.btn-secondary:hover{background:rgba(0,0,0,.03);color:var(--text);text-decoration:none} - -/* ── SVG Viewer (fullscreen / popout / resize) ───────────────── */ -.svg-viewer{position:relative;border:1px solid var(--border);border-radius:6px;overflow:hidden; - resize:both;min-height:300px} -.svg-viewer-toolbar{position:absolute;top:8px;right:8px;z-index:20;display:flex;gap:4px} -.svg-viewer-toolbar button{background:rgba(0,0,0,0.6);color:#fff;border:1px solid rgba(255,255,255,0.2); - border-radius:4px;padding:4px 8px;cursor:pointer;font-size:16px;line-height:1; - transition:background var(--transition)} -.svg-viewer-toolbar button:hover{background:rgba(0,0,0,0.8)} -.svg-viewer.fullscreen{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:9999; - border-radius:0;background:var(--bg);resize:none} -.svg-viewer.fullscreen .svg-viewer-toolbar{top:16px;right:16px} -.svg-viewer .graph-container{border:none;border-radius:0} -.svg-viewer.fullscreen .graph-container{height:100vh;min-height:100vh} - -/* ── Graph ────────────────────────────────────────────────────── */ -.graph-container{border-radius:var(--radius);overflow:hidden;background:#fafbfc;cursor:grab; - height:calc(100vh - 280px);min-height:400px;position:relative;border:1px solid var(--border)} -.graph-container:active{cursor:grabbing} -.graph-container svg{display:block;width:100%;height:100%;position:absolute;top:0;left:0} -.graph-controls{position:absolute;top:.75rem;right:.75rem;display:flex;flex-direction:column;gap:.35rem;z-index:10} -.graph-controls button{width:34px;height:34px;border:1px solid var(--border);border-radius:var(--radius-sm); - background:var(--surface);font-size:1rem;cursor:pointer;display:flex;align-items:center; - justify-content:center;box-shadow:var(--shadow);color:var(--text); - transition:all var(--transition)} -.graph-controls button:hover{background:#f0f0f3;box-shadow:var(--shadow-md)} -.graph-controls button:focus-visible{outline:2px solid var(--accent);outline-offset:2px} -.graph-legend{display:flex;flex-wrap:wrap;gap:.75rem;padding:.75rem 0 .25rem;font-size:.82rem} -.graph-legend-item{display:flex;align-items:center;gap:.35rem;color:var(--text-secondary)} -.graph-legend-swatch{width:12px;height:12px;border-radius:3px;flex-shrink:0} - -/* ── Filter grid ──────────────────────────────────────────────── */ -.filter-grid{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:.75rem} -.filter-grid label{font-size:.8rem;display:flex;align-items:center;gap:.3rem; - color:var(--text-secondary);cursor:pointer;padding:.2rem .45rem; - border-radius:4px;transition:background var(--transition); - text-transform:none;letter-spacing:0;font-weight:500} -.filter-grid label:hover{background:rgba(58,134,255,.06)} -.filter-grid input[type="checkbox"]{margin:0;accent-color:var(--accent);width:14px;height:14px; - cursor:pointer;border-radius:3px} - -/* ── Document styles ──────────────────────────────────────────── */ -.doc-body{line-height:1.8;font-size:.95rem} -.doc-body h1{font-size:1.4rem;font-weight:700;margin:2rem 0 .75rem;color:var(--text); - border-bottom:2px solid var(--border);padding-bottom:.5rem} -.doc-body h2{font-size:1.2rem;font-weight:600;margin:1.5rem 0 .5rem;color:var(--text)} -.doc-body h3{font-size:1.05rem;font-weight:600;margin:1.25rem 0 .4rem;color:var(--text-secondary)} -.doc-body p{margin:.5rem 0} -.doc-body ul{margin:.5rem 0 .5rem 1.5rem} -.doc-body li{margin:.2rem 0} -.doc-body img{border-radius:6px;margin:.75rem 0;box-shadow:0 2px 8px rgba(0,0,0,.1)} -.doc-body pre.mermaid{background:transparent;border:1px solid var(--border);border-radius:6px;padding:1rem;text-align:center} -.artifact-ref{display:inline-flex;align-items:center;padding:.15rem .5rem;border-radius:5px; - font-size:.8rem;font-weight:600;font-family:var(--mono);background:#edf2ff; - color:#3a63c7;cursor:pointer;text-decoration:none; - border:1px solid #d4def5;transition:all var(--transition)} -.artifact-ref:hover{background:#d4def5;text-decoration:none;transform:translateY(-1px);box-shadow:0 2px 4px rgba(0,0,0,.06)} -.artifact-ref.broken{background:#fde8e8;color:#c62828;border-color:#f4c7c3;cursor:default} -.artifact-ref.broken:hover{transform:none;box-shadow:none} -.doc-ref{display:inline-flex;align-items:center;padding:.15rem .5rem;border-radius:5px; - font-size:.8rem;font-weight:600;font-family:var(--mono);background:#f0fdf4; - color:#166534;cursor:pointer;text-decoration:none; - border:1px solid #bbf7d0;transition:all var(--transition)} -.doc-ref:hover{background:#dcfce7;text-decoration:none;transform:translateY(-1px);box-shadow:0 2px 4px rgba(0,0,0,.06)} -/* ── Artifact hover preview ────────────────────────────────── */ -.art-tooltip{position:absolute;z-index:1000;pointer-events:none; - background:var(--surface);border:1px solid var(--border);border-radius:var(--radius); - box-shadow:var(--shadow-lg);padding:0;max-width:340px;min-width:220px; - opacity:0;transition:opacity 120ms ease-in} -.art-tooltip.visible{opacity:1;pointer-events:auto} -.art-preview{padding:.75rem .85rem;font-size:.82rem;line-height:1.45} -.art-preview-header{display:flex;align-items:center;gap:.4rem;margin-bottom:.3rem} -.art-preview-title{font-weight:600;font-size:.85rem;margin-bottom:.3rem;color:var(--text)} -.art-preview-desc{color:var(--text-secondary);font-size:.78rem;line-height:1.4;margin-top:.3rem; - display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden} -.art-preview-links{font-size:.72rem;color:var(--text-secondary);margin-top:.35rem;font-family:var(--mono)} -.art-preview-tags{margin-top:.35rem;display:flex;flex-wrap:wrap;gap:.25rem} -.art-preview-tag{font-size:.65rem;padding:.1rem .35rem;border-radius:3px; - background:rgba(58,134,255,.08);color:var(--accent);font-family:var(--mono)} -.doc-glossary{font-size:.9rem} -.doc-glossary dt{font-weight:600;color:var(--text)} -.doc-glossary dd{margin:0 0 .5rem 1rem;color:var(--text-secondary)} -.doc-toc{font-size:.88rem;background:var(--surface);border:1px solid var(--border); - border-radius:var(--radius);padding:1rem 1.25rem;margin-bottom:1.25rem; - box-shadow:var(--shadow)} -.doc-toc strong{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary)} -.doc-toc ul{list-style:none;margin:.5rem 0 0;padding:0} -.doc-toc li{margin:.2rem 0;color:var(--text-secondary)} -.doc-toc .toc-h2{padding-left:0} -.doc-toc .toc-h3{padding-left:1.25rem} -.doc-toc .toc-h4{padding-left:2.5rem} -.doc-meta{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center;margin-bottom:1.25rem} - -/* ── Source viewer ────────────────────────────────────────────── */ -.source-tree{font-family:var(--mono);font-size:.85rem;line-height:1.8} -.source-tree ul{list-style:none;margin:0;padding:0} -.source-tree li{margin:0} -.source-tree .tree-item{display:flex;align-items:center;gap:.4rem;padding:.2rem .5rem;border-radius:var(--radius-sm); - transition:background var(--transition);color:var(--text)} -.source-tree .tree-item:hover{background:rgba(58,134,255,.06);text-decoration:none} -.source-tree .tree-icon{display:inline-flex;width:1rem;height:1rem;align-items:center;justify-content:center;flex-shrink:0;opacity:.55} -.source-tree .indent{display:inline-block;width:1.25rem;flex-shrink:0} -.source-viewer{font-family:var(--mono);font-size:.82rem;line-height:1.7;overflow-x:auto; - background:#fafbfc;border:1px solid var(--border);border-radius:var(--radius);padding:0} -.source-viewer table{width:100%;border-collapse:collapse;margin:0} -.source-viewer table td{padding:0;border:none;vertical-align:top} -.source-viewer table tr:hover{background:rgba(58,134,255,.04)} -.source-line{display:table-row} -.source-line .line-no{display:table-cell;width:3.5rem;min-width:3.5rem;padding:.05rem .75rem .05rem .5rem; - text-align:right;color:#b0b0b8;user-select:none;border-right:1px solid var(--border);background:#f5f5f7} -.source-line .line-content{display:table-cell;padding:.05rem .75rem;white-space:pre;tab-size:4} -.source-line-highlight{background:rgba(58,134,255,.08) !important} -.source-line-highlight .line-no{background:rgba(58,134,255,.12);color:var(--accent);font-weight:600} -.source-line:target{background:rgba(255,210,50,.18) !important} -.source-line:target .line-no{background:rgba(255,210,50,.25);color:#9a6700;font-weight:700} -.source-line .line-no a{color:inherit;text-decoration:none} -.source-line .line-no a:hover{color:var(--accent);text-decoration:underline} -/* ── Syntax highlighting tokens ─────────────────────────────── */ -.hl-key{color:#0550ae}.hl-str{color:#0a3069}.hl-num{color:#0550ae} -.hl-bool{color:#cf222e;font-weight:600}.hl-null{color:#cf222e;font-style:italic} -.hl-comment{color:#6e7781;font-style:italic}.hl-tag{color:#6639ba} -.hl-anchor{color:#953800}.hl-type{color:#8250df}.hl-kw{color:#cf222e;font-weight:600} -.hl-fn{color:#8250df}.hl-macro{color:#0550ae;font-weight:600} -.hl-attr{color:#116329}.hl-punct{color:#6e7781} -.hl-sh-cmd{color:#0550ae;font-weight:600}.hl-sh-flag{color:#953800} -.hl-sh-pipe{color:#cf222e;font-weight:700} -.source-ref-link{color:var(--accent);text-decoration:none;font-family:var(--mono);font-size:.85em} -.source-ref-link:hover{text-decoration:underline} -.source-breadcrumb{display:flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--text-secondary); - margin-bottom:1rem;flex-wrap:wrap} -.source-breadcrumb a{color:var(--accent);font-weight:500} -.source-breadcrumb .sep{opacity:.35;margin:0 .1rem} -.source-meta{display:flex;gap:1.5rem;font-size:.8rem;color:var(--text-secondary);margin-bottom:1rem} -.source-meta .meta-item{display:flex;align-items:center;gap:.35rem} -.source-refs{margin-top:1.25rem} -.source-refs h3{font-size:.95rem;margin-bottom:.5rem} - -/* ── STPA tree ───────────────────────────────────────────────── */ -.stpa-tree{margin-top:1.25rem} -.stpa-level{padding-left:1.5rem;border-left:2px solid var(--border);margin-left:.5rem} -.stpa-node{display:flex;align-items:center;gap:.5rem;padding:.35rem 0;font-size:.9rem} -.stpa-node a{font-family:var(--mono);font-size:.82rem;font-weight:500} -.stpa-link-label{display:inline-block;padding:.1rem .4rem;border-radius:4px;font-size:.68rem; - font-family:var(--mono);background:rgba(58,134,255,.08);color:var(--accent);font-weight:500; - margin-right:.35rem;white-space:nowrap} -details.stpa-details>summary{cursor:pointer;list-style:none;padding:.4rem .5rem;border-radius:var(--radius-sm); - display:flex;align-items:center;gap:.5rem;transition:background var(--transition);font-size:.9rem} -details.stpa-details>summary::-webkit-details-marker{display:none} -details.stpa-details>summary:hover{background:rgba(58,134,255,.04)} -details.stpa-details>summary .stpa-chevron{transition:transform var(--transition);display:inline-flex;opacity:.4;font-size:.7rem} -details.stpa-details[open]>summary .stpa-chevron{transform:rotate(90deg)} -.stpa-uca-table{width:100%;border-collapse:collapse;font-size:.88rem;margin-top:.75rem} -.stpa-uca-table th{font-weight:600;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em; - color:var(--text-secondary);padding:.5rem .75rem;border-bottom:2px solid var(--border)} -.stpa-uca-table td{padding:.55rem .75rem;border-bottom:1px solid var(--border);vertical-align:top} -.stpa-uca-table tbody tr:hover{background:rgba(58,134,255,.04)} -.uca-type-badge{display:inline-flex;padding:.15rem .5rem;border-radius:4px;font-size:.72rem;font-weight:600;white-space:nowrap} -.uca-type-not-providing{background:#fee;color:#c62828} -.uca-type-providing{background:#fff3e0;color:#e65100} -.uca-type-too-early-too-late{background:#e8f4fd;color:#0c5a82} -.uca-type-stopped-too-soon{background:#f3e5f5;color:#6a1b9a} - -/* ── Traceability explorer ──────────────────────────────────────── */ -.trace-matrix{border-collapse:collapse;font-size:.8rem;margin-bottom:1.5rem;width:100%} -.trace-matrix th{font-weight:600;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em; - color:var(--text-secondary);padding:.45rem .6rem;border-bottom:2px solid var(--border);white-space:nowrap} -.trace-matrix td{padding:.35rem .6rem;border-bottom:1px solid var(--border);text-align:center} -.trace-matrix td:first-child{text-align:left;font-family:var(--mono);font-size:.78rem;font-weight:500} -.trace-matrix tbody tr:hover{background:rgba(58,134,255,.04)} -.trace-cell{display:inline-flex;align-items:center;justify-content:center;width:28px;height:22px; - border-radius:4px;font-size:.75rem;font-weight:700;font-variant-numeric:tabular-nums} -.trace-cell-ok{background:rgba(21,113,58,.1);color:#15713a} -.trace-cell-gap{background:rgba(198,40,40,.1);color:#c62828} -.trace-tree{margin-top:1rem} -.trace-node{display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;border-radius:var(--radius-sm); - transition:background var(--transition);font-size:.88rem} -.trace-node:hover{background:rgba(58,134,255,.04)} -.trace-node a{font-family:var(--mono);font-size:.82rem;font-weight:500} -.trace-edge{display:inline-block;padding:.1rem .4rem;border-radius:4px;font-size:.68rem; - font-family:var(--mono);background:rgba(58,134,255,.08);color:var(--accent);font-weight:500; - margin-right:.35rem;white-space:nowrap} -.trace-level{padding-left:1.5rem;border-left:2px solid var(--border);margin-left:.5rem} -details.trace-details>summary{cursor:pointer;list-style:none;padding:.4rem .5rem;border-radius:var(--radius-sm); - display:flex;align-items:center;gap:.5rem;transition:background var(--transition);font-size:.88rem} -details.trace-details>summary::-webkit-details-marker{display:none} -details.trace-details>summary:hover{background:rgba(58,134,255,.04)} -details.trace-details>summary .trace-chevron{transition:transform var(--transition);display:inline-flex;opacity:.4;font-size:.7rem} -details.trace-details[open]>summary .trace-chevron{transform:rotate(90deg)} -.trace-history{margin:.35rem 0 .5rem 1.5rem;padding:.5rem .75rem;background:rgba(0,0,0,.015); - border-radius:var(--radius-sm);border:1px solid var(--border);font-size:.8rem} -.trace-history-title{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em; - color:var(--text-secondary);margin-bottom:.35rem} -.trace-history-item{display:flex;align-items:baseline;gap:.5rem;padding:.15rem 0;color:var(--text-secondary)} -.trace-history-item code{font-size:.75rem;color:var(--accent);font-weight:500} -.trace-history-item .hist-date{font-size:.72rem;color:var(--text-secondary);opacity:.7;min-width:70px} -.trace-history-item .hist-msg{font-size:.78rem;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis} -.trace-status{display:inline-flex;padding:.12rem .4rem;border-radius:4px;font-size:.68rem;font-weight:600; - margin-left:.25rem} -.trace-status-approved{background:rgba(21,113,58,.1);color:#15713a} -.trace-status-draft{background:rgba(184,134,11,.1);color:#b8860b} - -/* ── Artifact embedding in docs ────────────────────────────────── */ -.artifact-embed{margin:.75rem 0;padding:.75rem 1rem;background:var(--card-bg);border:1px solid var(--border); - border-radius:var(--radius);border-left:3px solid var(--accent)} -.artifact-embed-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.35rem} -.artifact-embed-header .artifact-ref{font-family:var(--mono);font-size:.85rem;font-weight:600} -.artifact-embed-title{font-weight:600;font-size:.92rem;color:var(--text)} -.artifact-embed-desc{font-size:.82rem;color:var(--text-secondary);margin-top:.25rem;line-height:1.5} - -/* ── Rendered markdown in descriptions ─────────────────────────── */ -.artifact-desc p{margin:.3em 0} -.artifact-desc ul,.artifact-desc ol{margin:.3em 0;padding-left:1.5em} -.artifact-desc code{background:rgba(255,255,255,.1);padding:.1em .3em;border-radius:3px;font-size:.9em} -.artifact-desc pre{background:rgba(0,0,0,.3);padding:.5em;border-radius:4px;overflow-x:auto} -.artifact-desc pre code{background:none;padding:0} -.artifact-desc table{border-collapse:collapse;margin:.5em 0} -.artifact-desc table td,.artifact-desc table th{border:1px solid var(--border);padding:.3em .6em} -.artifact-desc del{opacity:.6} -.artifact-desc blockquote{border-left:3px solid var(--border);margin:.5em 0;padding-left:.8em;opacity:.85} -.artifact-embed-desc p{margin:.2em 0} -.artifact-embed-desc code{background:rgba(255,255,255,.1);padding:.1em .2em;border-radius:2px;font-size:.9em} - -/* ── Diagram in artifact detail ────────────────────────────────── */ -.artifact-diagram{margin:1rem 0} -.artifact-diagram .mermaid{background:var(--card-bg);padding:1rem;border-radius:var(--radius); - border:1px solid var(--border)} - -/* ── AADL SVG style overrides (match etch) ────────────────────── */ -.aadl-viewport svg text{font-family:system-ui,-apple-system,BlinkMacSystemFont,sans-serif !important; - font-size:12px !important} -.aadl-viewport svg rect,.aadl-viewport svg polygon{rx:6;ry:6} -.aadl-viewport svg .node rect{stroke-width:1.5px;filter:drop-shadow(0 1px 3px rgba(0,0,0,.1))} -.aadl-viewport svg .edge path,.aadl-viewport svg .edge line{stroke:#888 !important;stroke-width:1.2px} -.aadl-viewport svg .edge polygon{fill:#888 !important;stroke:#888 !important} - -/* ── Scrollbar (subtle) ───────────────────────────────────────── */ -::-webkit-scrollbar{width:6px;height:6px} -::-webkit-scrollbar-track{background:transparent} -::-webkit-scrollbar-thumb{background:#c5c5cd;border-radius:3px} -::-webkit-scrollbar-thumb:hover{background:#a0a0aa} - -/* ── Selection ────────────────────────────────────────────────── */ -::selection{background:rgba(58,134,255,.18)} - -/* ── Cmd+K search modal ──────────────────────────────────────── */ -.cmd-k-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);backdrop-filter:blur(4px); - z-index:10000;display:none;align-items:flex-start;justify-content:center;padding-top:min(20vh,160px)} -.cmd-k-overlay.open{display:flex} -.cmd-k-modal{background:var(--sidebar);border-radius:12px;width:100%;max-width:600px; - box-shadow:0 16px 70px rgba(0,0,0,.35);border:1px solid rgba(255,255,255,.08); - overflow:hidden;display:flex;flex-direction:column;max-height:min(70vh,520px)} -.cmd-k-input{width:100%;padding:.875rem 1rem .875rem 2.75rem;font-size:1rem;font-family:var(--font); - background:transparent;border:none;border-bottom:1px solid rgba(255,255,255,.08); - color:#fff;outline:none;caret-color:var(--accent)} -.cmd-k-input::placeholder{color:rgba(255,255,255,.35)} -.cmd-k-icon{position:absolute;left:1rem;top:.95rem;color:rgba(255,255,255,.35);pointer-events:none; - font-size:.95rem} -.cmd-k-head{position:relative} -.cmd-k-results{overflow-y:auto;padding:.5rem 0;flex:1} -.cmd-k-empty{padding:1.5rem 1rem;text-align:center;color:rgba(255,255,255,.35);font-size:.9rem} -.cmd-k-group{padding:0 .5rem} -.cmd-k-group-label{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em; - color:rgba(255,255,255,.3);padding:.5rem .625rem .25rem} -.cmd-k-item{display:flex;align-items:center;gap:.75rem;padding:.5rem .625rem;border-radius:var(--radius-sm); - cursor:pointer;color:var(--sidebar-text);font-size:.88rem;transition:background 80ms ease} -.cmd-k-item:hover,.cmd-k-item.active{background:rgba(255,255,255,.08);color:#fff} -.cmd-k-item-icon{width:1.5rem;height:1.5rem;border-radius:4px;display:flex;align-items:center; - justify-content:center;font-size:.7rem;flex-shrink:0;background:rgba(255,255,255,.06);color:rgba(255,255,255,.5)} -.cmd-k-item-body{flex:1;min-width:0} -.cmd-k-item-title{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} -.cmd-k-item-title mark{background:transparent;color:var(--accent);font-weight:700} -.cmd-k-item-meta{font-size:.75rem;color:rgba(255,255,255,.35);white-space:nowrap;overflow:hidden;text-overflow:ellipsis} -.cmd-k-item-meta mark{background:transparent;color:var(--accent);font-weight:600} -.cmd-k-item-field{font-size:.65rem;padding:.1rem .35rem;border-radius:3px; - background:rgba(255,255,255,.06);color:rgba(255,255,255,.4);white-space:nowrap;flex-shrink:0} -.cmd-k-kbd{display:inline-flex;align-items:center;gap:.2rem;font-size:.7rem;font-family:var(--mono); - padding:.15rem .4rem;border-radius:4px;background:rgba(255,255,255,.08);color:rgba(255,255,255,.4); - border:1px solid rgba(255,255,255,.06)} -.nav-search-hint{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem; - margin-top:auto;border-top:1px solid rgba(255,255,255,.06);padding-top:1rem; - color:var(--sidebar-text);font-size:.82rem;cursor:pointer;border-radius:var(--radius-sm); - transition:all var(--transition)} -.nav-search-hint:hover{background:var(--sidebar-hover);color:var(--sidebar-active)} -.aadl-diagram{background:var(--card-bg);border:1px solid var(--border);border-radius:8px; - margin:1.5rem 0;overflow:hidden;position:relative} -.aadl-diagram .aadl-caption{display:flex;align-items:center;justify-content:space-between; - padding:.5rem 1rem;border-bottom:1px solid var(--border);background:var(--nav-bg); - font-size:.82rem;color:var(--text-secondary)} -.aadl-caption .aadl-title{font-weight:600;color:var(--text);font-family:var(--mono);font-size:.85rem} -.aadl-caption .aadl-badge{display:inline-block;padding:.1rem .5rem;border-radius:var(--radius-sm); - background:var(--primary);color:#fff;font-size:.72rem;font-weight:600;letter-spacing:.02em} -.aadl-controls{display:flex;gap:.25rem} -.aadl-controls button{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-sm); - width:1.7rem;height:1.7rem;cursor:pointer;font-size:.85rem;line-height:1;display:flex; - align-items:center;justify-content:center;color:var(--text-secondary);transition:all .15s} -.aadl-controls button:hover{background:var(--primary);color:#fff;border-color:var(--primary)} -.aadl-viewport{overflow:hidden;cursor:grab;min-height:300px;position:relative;background:var(--body-bg)} -.aadl-viewport.grabbing{cursor:grabbing} -.aadl-viewport svg{transform-origin:0 0;position:absolute;top:0;left:0} -.aadl-viewport svg .node rect,.aadl-viewport svg .node polygon,.aadl-viewport svg .node path,.aadl-viewport svg .node ellipse{filter:drop-shadow(0 1px 2px rgba(0,0,0,.08))} -.aadl-viewport svg .node text{font-family:system-ui,-apple-system,sans-serif} -.aadl-viewport svg .edge path{stroke-dasharray:none} -.aadl-loading{color:var(--text-secondary);font-style:italic;padding:2rem;text-align:center} -.aadl-error{color:var(--danger);font-style:italic;padding:1rem} -.aadl-analysis{border-top:1px solid var(--border);max-height:220px;overflow-y:auto;font-size:.78rem} -.aadl-analysis-header{display:flex;align-items:center;gap:.5rem;padding:.4rem 1rem; - background:var(--nav-bg);font-weight:600;font-size:.75rem;color:var(--text-secondary); - position:sticky;top:0;z-index:1;border-bottom:1px solid var(--border)} -.aadl-analysis-header .badge-count{display:inline-flex;align-items:center;justify-content:center; - min-width:1.3rem;height:1.3rem;border-radius:99px;font-size:.65rem;font-weight:700;padding:0 .3rem} -.badge-error{background:var(--danger);color:#fff} -.badge-warning{background:#e8a735;color:#fff} -.badge-info{background:var(--primary);color:#fff} -.aadl-diag{display:flex;align-items:baseline;gap:.5rem;padding:.3rem 1rem;border-bottom:1px solid var(--border)} -.aadl-diag:last-child{border-bottom:none} -.aadl-diag:hover{background:rgba(0,0,0,.03)} -.aadl-diag .sev{flex-shrink:0;font-size:.65rem;font-weight:700;text-transform:uppercase; - padding:.1rem .35rem;border-radius:var(--radius-sm);letter-spacing:.03em} -.sev-error{background:#fde8e8;color:var(--danger)} -.sev-warning{background:#fef3cd;color:#856404} -.sev-info{background:#d1ecf1;color:#0c5460} -.aadl-diag .diag-path{color:var(--text-secondary);font-family:var(--mono);font-size:.72rem;flex-shrink:0} -.aadl-diag .diag-msg{color:var(--text);flex:1} -.aadl-diag .diag-analysis{color:var(--text-secondary);font-size:.68rem;opacity:.7;flex-shrink:0} - -/* ── Sortable table headers ──────────────────────────────── */ -table.sortable th{cursor:pointer;user-select:none} -table.sortable th:hover{color:var(--text)} - -/* ── Facet sidebar (artifact tag filtering) ──────────────── */ -.artifacts-layout{display:flex;gap:1.5rem;align-items:flex-start} -.artifacts-main{flex:1;min-width:0} -.facet-sidebar{width:220px;flex-shrink:0;background:var(--surface);border:1px solid var(--border); - border-radius:var(--radius);padding:1rem;position:sticky;top:1rem;max-height:calc(100vh - 4rem);overflow-y:auto} -.facet-sidebar h3{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em; - color:var(--text-secondary);margin:0 0 .75rem;padding-bottom:.5rem;border-bottom:1px solid var(--border)} -.facet-list{display:flex;flex-direction:column;gap:.35rem} -.facet-item{display:flex;align-items:center;gap:.4rem;font-size:.82rem;color:var(--text); - cursor:pointer;padding:.2rem .35rem;border-radius:4px;transition:background var(--transition)} -.facet-item:hover{background:rgba(58,134,255,.06)} -.facet-item input[type="checkbox"]{margin:0;accent-color:var(--accent);width:14px;height:14px;cursor:pointer} -.facet-item .facet-count{margin-left:auto;font-size:.72rem;color:var(--text-secondary); - font-variant-numeric:tabular-nums;font-family:var(--mono)} - -/* ── Group-by header rows ────────────────────────────────── */ -.group-header-row td{background:rgba(58,134,255,.06);font-weight:600;font-size:.85rem; - color:var(--text);padding:.5rem .875rem;border-bottom:2px solid var(--border);letter-spacing:.02em} - -/* ── Document tree hierarchy ─────────────────────────────── */ -.doc-tree{margin-bottom:1.5rem} -.doc-tree details{margin-bottom:.25rem} -.doc-tree summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:.5rem; - padding:.5rem .75rem;border-radius:var(--radius-sm);font-weight:600;font-size:.9rem; - color:var(--text);transition:background var(--transition)} -.doc-tree summary::-webkit-details-marker{display:none} -.doc-tree summary:hover{background:rgba(58,134,255,.04)} -.doc-tree summary .tree-chevron{transition:transform var(--transition);display:inline-flex;opacity:.4;font-size:.7rem} -.doc-tree details[open]>summary .tree-chevron{transform:rotate(90deg)} -.doc-tree summary .tree-count{font-size:.75rem;color:var(--text-secondary);font-weight:500; - font-variant-numeric:tabular-nums;margin-left:.25rem} -.doc-tree ul{list-style:none;padding:0 0 0 1.5rem;margin:.25rem 0} -.doc-tree li{margin:.15rem 0} -.doc-tree li a{display:flex;align-items:center;gap:.5rem;padding:.35rem .75rem;border-radius:var(--radius-sm); - font-size:.88rem;color:var(--text);transition:background var(--transition);text-decoration:none} -.doc-tree li a:hover{background:rgba(58,134,255,.04)} -.doc-tree .doc-tree-id{font-family:var(--mono);font-size:.8rem;font-weight:500;color:var(--accent)} -.doc-tree .doc-tree-status{font-size:.72rem} - -/* ── Matrix cell drill-down ──────────────────────────────── */ -.matrix-cell-clickable{cursor:pointer;transition:background var(--transition)} -.matrix-cell-clickable:hover{background:rgba(58,134,255,.08)} -.cell-detail{font-size:.82rem} -.cell-detail ul{list-style:none;padding:.5rem;margin:0} -.cell-detail li{padding:.25rem .5rem;border-bottom:1px solid var(--border)} -.cell-detail li:last-child{border-bottom:none} - -/* ── Filter bar ────────────────────────────────────────── */ -.filter-bar{margin-bottom:1rem;padding:1rem} -.filter-bar .form-row{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap} - -/* ── Pagination ────────────────────────────────────────── */ -.pagination{display:flex;gap:.25rem;align-items:center;justify-content:center; - margin-top:1rem;padding:.75rem 0;flex-wrap:wrap} -.pagination a{display:inline-flex;align-items:center;justify-content:center; - min-width:2rem;height:2rem;padding:0 .5rem;border:1px solid var(--border); - border-radius:var(--radius-sm);font-size:.82rem;font-family:var(--font); - color:var(--text);background:var(--surface);text-decoration:none; - transition:all var(--transition);cursor:pointer} -.pagination a:hover{background:var(--accent);color:#fff;border-color:var(--accent)} -.pagination-current{display:inline-flex;align-items:center;justify-content:center; - min-width:2rem;height:2rem;padding:0 .5rem;border:1px solid var(--accent); - border-radius:var(--radius-sm);font-size:.82rem;font-weight:600; - color:#fff;background:var(--accent)} -.pagination-disabled{display:inline-flex;align-items:center;justify-content:center; - min-width:2rem;height:2rem;padding:0 .5rem;border:1px solid var(--border); - border-radius:var(--radius-sm);font-size:.82rem; - color:var(--text-secondary);background:var(--surface);opacity:.5} -.pagination-ellipsis{display:inline-flex;align-items:center;justify-content:center; - min-width:1.5rem;height:2rem;font-size:.82rem;color:var(--text-secondary)} -"#; +pub(crate) use crate::render::styles::*; diff --git a/rivet-cli/src/serve/views.rs b/rivet-cli/src/serve/views.rs index ee50478..40faaf4 100644 --- a/rivet-cli/src/serve/views.rs +++ b/rivet-cli/src/serve/views.rs @@ -18,10 +18,9 @@ use rivet_core::diff::ArtifactDiff; use rivet_core::document::{self, html_escape}; use rivet_core::formats::generic::GenericYamlAdapter; use rivet_core::links::LinkGraph; -use rivet_core::markdown::{render_markdown, strip_html_tags}; +use rivet_core::markdown::render_markdown; use rivet_core::matrix::{self, Direction}; use rivet_core::model::ProjectConfig; -use rivet_core::schema::Severity; use rivet_core::store::Store; use super::components::{self, ViewParams}; @@ -43,249 +42,8 @@ pub(crate) async fn stats_view(State(state): State) -> Html } fn stats_partial(state: &AppState) -> String { - let store = &state.store; - let graph = &state.graph; - let doc_store = &state.doc_store; - - let mut types: Vec<&str> = store.types().collect(); - types.sort(); - - let orphans = graph.orphans(store); - let diagnostics = &state.cached_diagnostics; - let errors = diagnostics - .iter() - .filter(|d| d.severity == Severity::Error) - .count(); - let warnings = diagnostics - .iter() - .filter(|d| d.severity == Severity::Warning) - .count(); - - // Project header - let mut html = format!( - "
\ -

Project Overview

\ -

{} — {} artifact types, {} traceability rules

\ -
", - html_escape(&state.context.project_name), - types.len(), - state.schema.traceability_rules.len(), - ); - - // Summary cards with colored accents - html.push_str("
"); - html.push_str(&format!( - "
{}
Artifacts
", - store.len() - )); - html.push_str(&format!( - "
{}
Types
", - types.len() - )); - html.push_str(&format!( - "
{}
Orphans
", - orphans.len() - )); - html.push_str(&format!( - "
{}
Errors
", - errors - )); - html.push_str(&format!( - "
{}
Warnings
", - warnings - )); - html.push_str(&format!( - "
{}
Broken Links
", - graph.broken.len() - )); - html.push_str(&format!( - "
{}
Documents
", - doc_store.len() - )); - html.push_str("
"); - - // By-type table - html.push_str("

Artifacts by Type

"); - for t in &types { - html.push_str(&format!( - "", - badge_for_type(t), - store.count_by_type(t) - )); - } - html.push_str("
TypeCount
{}{}
"); - - // Status breakdown - let mut status_counts: BTreeMap = BTreeMap::new(); - for a in store.iter() { - let s = a.status.as_deref().unwrap_or("unknown"); - *status_counts.entry(s.to_string()).or_default() += 1; - } - let total_artifacts = store.len().max(1); - html.push_str("

Status Distribution

"); - for (status, count) in &status_counts { - let pct = (*count as f64 / total_artifacts as f64) * 100.0; - let bar_color = match status.as_str() { - "approved" => "#15713a", - "draft" => "#b8860b", - "obsolete" => "#c62828", - "unknown" => "#9898a6", - _ => "#3a86ff", - }; - html.push_str(&format!( - "
\ -
{}
\ -
\ -
\ -
\ -
{count}
\ -
", - html_escape(status), - )); - } - html.push_str("
"); - - // Orphans - if !orphans.is_empty() { - html.push_str("

Orphan Artifacts (no links)

"); - for id in &orphans { - html.push_str(&format!( - "" - )); - } - html.push_str("
ID
{id}
"); - } - - // ── Coverage summary card ──────────────────────────────────────── - let cov_report = coverage::compute_coverage(store, &state.schema, graph); - if !cov_report.entries.is_empty() { - let overall = cov_report.overall_coverage(); - let cov_color = if overall >= 80.0 { - "#15713a" - } else if overall >= 50.0 { - "#b8860b" - } else { - "#c62828" - }; - let total_covered: usize = cov_report.entries.iter().map(|e| e.covered).sum(); - let total_items: usize = cov_report.entries.iter().map(|e| e.total).sum(); - html.push_str(&format!( - "
\ -

Traceability Coverage

\ -
\ -
{overall:.0}%
\ -
\ -
\ -
\ -
\ -
\ - {total_covered} / {total_items} artifacts covered across {} rules\ -
\ -
\ -
\ - \ - View full coverage report →\ -
", - cov_report.entries.len(), - )); - } - - // ── Test results summary ───────────────────────────────────────── - if !state.result_store.is_empty() { - let summary = state.result_store.summary(); - let rate = summary.pass_rate(); - let rate_color = if rate >= 80.0 { - "#15713a" - } else if rate >= 50.0 { - "#b8860b" - } else { - "#c62828" - }; - html.push_str("

Test Results

"); - html.push_str(&format!( - "
\ -
{rate:.0}%
\ -
\ -
\ -
\ -
\ -
\ -
" - )); - html.push_str("
"); - html.push_str(&format!( - "{} runs\ - {} passed\ - {} failed", - summary.total_runs, summary.pass_count, summary.fail_count, - )); - if summary.skip_count > 0 { - html.push_str(&format!( - "{} skipped", - summary.skip_count, - )); - } - if summary.blocked_count > 0 { - html.push_str(&format!( - "{} blocked", - summary.blocked_count, - )); - } - html.push_str("
"); - html.push_str( - "\ - View all test runs →", - ); - html.push_str("
"); - } - - // ── Quick links ────────────────────────────────────────────────── - // Count verifiable types for the verification link badge - let ver_count = { - let mut count = 0usize; - for rule in &state.schema.traceability_rules { - if rule.required_backlink.as_deref() == Some("verifies") { - count += store.by_type(&rule.source_type).len(); - } - } - count - }; - - html.push_str( - "
\ -

Quick Links

\ -
", - ); - html.push_str(&format!( - "\ -
Verification
\ -
{ver_count} requirements
\ -
", - )); - html.push_str(&format!( - "\ -
Documents
\ -
{} loaded
\ -
", - doc_store.len(), - )); - html.push_str( - "\ -
Traceability Graph
\ -
Full link graph
\ -
", - ); - html.push_str("
"); - - html + let ctx = state.as_render_context(); + crate::render::stats::render_stats(&ctx) } // ── Externals ──────────────────────────────────────────────────────────── @@ -454,238 +212,10 @@ pub(crate) async fn artifacts_list( Query(params): Query, ) -> Html { let state = state.read().await; - let store = &state.store; - - // ── Collect all artifact types for the dropdown ────────────── - let mut all_types: Vec = store.types().map(|t| t.to_string()).collect(); - all_types.sort(); - - // ── Parse filter params ───────────────────────────────────── - let type_filter: Option> = params - .types - .as_ref() - .filter(|s| !s.is_empty()) - .map(|s| s.split(',').map(|t| t.trim().to_lowercase()).collect()); - - let q_filter: Option = params - .q - .as_ref() - .filter(|s| !s.trim().is_empty()) - .map(|s| s.trim().to_lowercase()); - - let sort_col = params.sort.as_deref().unwrap_or("id"); - let sort_desc = !params.sort_ascending(); - let per_page = params.items_per_page(); - let page = params.current_page(); - - // ── Filter ────────────────────────────────────────────────── - let mut artifacts: Vec<_> = store - .iter() - .filter(|a| { - if let Some(ref tf) = type_filter { - if !tf.contains(&a.artifact_type.to_lowercase()) { - return false; - } - } - if let Some(ref q) = q_filter { - let id_match = a.id.to_lowercase().contains(q); - let title_match = a.title.to_lowercase().contains(q); - let desc_match = a - .description - .as_ref() - .map(|d| d.to_lowercase().contains(q)) - .unwrap_or(false); - if !id_match && !title_match && !desc_match { - return false; - } - } - true - }) - .collect(); - - // ── Sort ──────────────────────────────────────────────────── - match sort_col { - "type" => { - artifacts.sort_by(|a, b| a.artifact_type.cmp(&b.artifact_type).then(a.id.cmp(&b.id))) - } - "title" => artifacts.sort_by(|a, b| a.title.cmp(&b.title).then(a.id.cmp(&b.id))), - "status" => artifacts.sort_by(|a, b| { - let sa = a.status.as_deref().unwrap_or(""); - let sb = b.status.as_deref().unwrap_or(""); - sa.cmp(sb).then(a.id.cmp(&b.id)) - }), - _ => artifacts.sort_by(|a, b| a.id.cmp(&b.id)), - } - if sort_desc { - artifacts.reverse(); - } - - // ── Paginate ──────────────────────────────────────────────── - let total = artifacts.len(); - let total_pages = if total == 0 { - 1 - } else { - total.div_ceil(per_page) - }; - let page = page.min(total_pages); - let start = (page - 1) * per_page; - let page_artifacts = &artifacts[start..total.min(start + per_page)]; - - // ── Render ────────────────────────────────────────────────── - let mut html = String::from("

Artifacts

"); - - // Filter bar (search + type dropdown + per-page + hidden sort/dir) - let q_val = params.q.as_deref().unwrap_or(""); - let types_val = params.types.as_deref().unwrap_or(""); - html.push_str("
"); - html.push_str("
"); - html.push_str(&components::search_input( - "Search artifacts...", - q_val, - "/artifacts", - &["types", "sort", "dir", "per_page"], - )); - html.push_str(&components::type_select( - &all_types, - types_val, - "/artifacts", - &["q", "sort", "dir", "per_page"], - )); - html.push_str(&components::per_page_select( - per_page, - "/artifacts", - &["q", "types", "sort", "dir"], - )); - html.push_str(&format!( - "", - html_escape(sort_col), - )); - html.push_str(&format!( - "", - html_escape(params.dir.as_deref().unwrap_or("asc")), - )); - html.push_str("
"); // form-row - html.push_str("
"); // filter-bar - - // Layout: sidebar + main table - html.push_str("
"); - - // Main table area - html.push_str("
"); - - // Sortable column headers - html.push_str(""); - html.push_str(&components::sortable_header( - "ID", - "id", - Some(sort_col), - !sort_desc, - "/artifacts", - ¶ms, - )); - html.push_str(&components::sortable_header( - "Type", - "type", - Some(sort_col), - !sort_desc, - "/artifacts", - ¶ms, - )); - html.push_str(&components::sortable_header( - "Title", - "title", - Some(sort_col), - !sort_desc, - "/artifacts", - ¶ms, - )); - html.push_str(&components::sortable_header( - "Status", - "status", - Some(sort_col), - !sort_desc, - "/artifacts", - ¶ms, - )); - html.push_str(""); - html.push_str(""); - - for a in page_artifacts { - let status = a.status.as_deref().unwrap_or("-"); - let status_badge = match status { - "approved" => format!("{status}"), - "draft" => format!("{status}"), - "obsolete" => format!("{status}"), - _ => format!("{status}"), - }; - let tags_csv = a.tags.join(","); - let tags_display = if a.tags.is_empty() { - String::from("-") - } else { - a.tags - .iter() - .map(|t| { - format!( - "{}", - html_escape(t) - ) - }) - .collect::>() - .join(" ") - }; - let id_esc = html_escape(&a.id); - html.push_str(&format!( - "\ - \ - \ - \ - \ - ", - badge_for_type(&a.artifact_type), - html_escape(&a.title), - status_badge, - a.links.len(), - html_escape(&tags_csv), - tags_display, - )); - } - - html.push_str("
Artifacts list
LinksTags
{id_esc}{}{}{}{}{}
"); - - // Summary line - if total == store.len() { - html.push_str(&format!( - "

{total} artifacts total (page {page} of {total_pages})

", - )); - } else { - html.push_str(&format!( - "

{total} matching artifacts of {} total (page {page} of {total_pages})

", - store.len(), - )); - } - - // Pagination controls - html.push_str(&components::pagination( - total, - page, - per_page, - "/artifacts", - ¶ms, - )); - - html.push_str("
"); // end artifacts-main - - // Facet sidebar - html.push_str( - "
\ -

Filter by tag

\ -
\ -
", - ); - - html.push_str("
"); // end artifacts-layout - - Html(html) + let ctx = state.as_render_context(); + Html(crate::render::artifacts::render_artifacts_list( + &ctx, ¶ms, + )) } /// Compact preview tooltip for an artifact — loaded on hover. @@ -694,72 +224,8 @@ pub(crate) async fn artifact_preview( Path(id): Path, ) -> Html { let state = state.read().await; - let store = &state.store; - let graph = &state.graph; - - let Some(artifact) = store.get(&id) else { - return Html(format!( - "
{}
Not found
", - html_escape(&id) - )); - }; - - let mut html = String::from("
"); - html.push_str(&format!( - "
{} {}
", - badge_for_type(&artifact.artifact_type), - html_escape(&artifact.id) - )); - html.push_str(&format!( - "
{}
", - html_escape(&artifact.title) - )); - if let Some(status) = &artifact.status { - let cls = match status.as_str() { - "approved" => "badge-ok", - "draft" => "badge-warn", - "obsolete" => "badge-error", - _ => "badge-info", - }; - html.push_str(&format!( - "{} ", - html_escape(status) - )); - } - if let Some(desc) = &artifact.description { - let rendered = render_markdown(desc); - let plain = strip_html_tags(&rendered); - let snippet: String = plain.chars().take(160).collect(); - let ellip = if plain.chars().count() > 160 { - "..." - } else { - "" - }; - html.push_str(&format!( - "
{}{ellip}
", - html_escape(&snippet) - )); - } - let fwd = artifact.links.len(); - let back = graph.backlinks_to(&id).len(); - if fwd > 0 || back > 0 { - html.push_str(&format!( - "
{fwd} outgoing, {back} incoming
" - )); - } - if !artifact.tags.is_empty() { - let tags: Vec = artifact - .tags - .iter() - .map(|t| format!("{}", html_escape(t))) - .collect(); - html.push_str(&format!( - "
{}
", - tags.join(" ") - )); - } - html.push_str("
"); - Html(html) + let ctx = state.as_render_context(); + Html(crate::render::artifacts::render_artifact_preview(&ctx, &id)) } pub(crate) async fn artifact_detail( @@ -767,189 +233,8 @@ pub(crate) async fn artifact_detail( Path(id): Path, ) -> Html { let state = state.read().await; - let store = &state.store; - let graph = &state.graph; - - let Some(artifact) = store.get(&id).or_else(|| { - // Try to resolve as cross-repo reference (prefix:id) - match rivet_core::externals::parse_artifact_ref(&id) { - rivet_core::externals::ArtifactRef::External { ref prefix, ref id } => state - .externals - .iter() - .find(|e| e.prefix == *prefix && e.synced) - .and_then(|e| e.store.get(id)), - _ => None, - } - }) else { - return Html(format!( - "

Not Found

Artifact {} does not exist.

", - html_escape(&id) - )); - }; - - let mut html = format!( - "

{}

{}

", - html_escape(&artifact.id), - badge_for_type(&artifact.artifact_type) - ); - - html.push_str("
"); - html.push_str(&format!( - "
Title
{}
", - html_escape(&artifact.title) - )); - if let Some(desc) = &artifact.description { - html.push_str(&format!( - "
Description
{}
", - render_markdown(desc) - )); - } - if let Some(status) = &artifact.status { - html.push_str(&format!("
Status
{}
", html_escape(status))); - } - if !artifact.tags.is_empty() { - let tags: Vec = artifact - .tags - .iter() - .map(|t| format!("{}", html_escape(t))) - .collect(); - html.push_str(&format!("
Tags
{}
", tags.join(" "))); - } - - // Extra fields — detect file:line source references and make them clickable - for (key, value) in &artifact.fields { - // Skip diagram — rendered separately below as mermaid/AADL - if key == "diagram" { - continue; - } - let val = match value { - serde_yaml::Value::String(s) => linkify_source_refs(&html_escape(s)), - other => html_escape(&format!("{other:?}")), - }; - html.push_str(&format!("
{}
{}
", html_escape(key), val)); - } - html.push_str("
"); - - // Diagram field — render mermaid or AADL diagram if present - if let Some(serde_yaml::Value::String(diagram)) = artifact.fields.get("diagram") { - html.push_str("
"); - html.push_str("

Diagram

"); - let trimmed = diagram.trim(); - if trimmed.starts_with("root:") { - // AADL diagram - let root = trimmed.strip_prefix("root:").unwrap_or("").trim(); - html.push_str(&format!( - "

Loading AADL diagram...

", - html_escape(root) - )); - } else { - // Treat as mermaid - html.push_str("
");
-            html.push_str(&html_escape(trimmed));
-            html.push_str("
"); - } - html.push_str("
"); - } - - // Forward links - if !artifact.links.is_empty() { - html.push_str("

Outgoing Links

"); - for link in &artifact.links { - let target_display = if store.contains(&link.target) { - format!( - "{target}", - target = html_escape(&link.target), - ) - } else { - // Check if this is a cross-repo reference (prefix:id) - match rivet_core::externals::parse_artifact_ref(&link.target) { - rivet_core::externals::ArtifactRef::External { ref prefix, ref id } => { - let ext_exists = state - .externals - .iter() - .any(|e| e.prefix == *prefix && e.synced && e.store.contains(id)); - if ext_exists { - format!( - "\ - {ext_prefix}{ext_id}", - ext_prefix = html_escape(prefix), - ext_id = html_escape(id), - ) - } else { - format!( - "{}{} \ - external", - html_escape(prefix), - html_escape(id), - ) - } - } - rivet_core::externals::ArtifactRef::Local(_) => { - format!( - "{} broken", - html_escape(&link.target) - ) - } - } - }; - html.push_str(&format!( - "", - html_escape(&link.link_type), - target_display - )); - } - html.push_str("
TypeTarget
{}{}
"); - } - - // Backlinks - let backlinks = graph.backlinks_to(&id); - if !backlinks.is_empty() { - html.push_str("

Incoming Links

"); - for bl in backlinks { - let label = bl.inverse_type.as_deref().unwrap_or(&bl.link_type); - let source_esc = html_escape(&bl.source); - html.push_str(&format!( - "\ - ", - html_escape(label), - )); - } - html.push_str("
TypeSource
{}{source_esc}
"); - } - - // AADL diagram highlighting data - let mut aadl_links = Vec::new(); - for link in &artifact.links { - if link.target.starts_with("AADL-") { - aadl_links.push(link.target.clone()); - } - } - for bl in graph.backlinks_to(&id) { - if bl.source.starts_with("AADL-") { - aadl_links.push(bl.source.clone()); - } - } - if id.starts_with("AADL-") { - aadl_links.push(id.clone()); - } - if !aadl_links.is_empty() { - let json = serde_json::to_string(&aadl_links).unwrap_or_default(); - html.push_str(&format!( - "", - json - )); - } - - // Action buttons - html.push_str(&format!( - r##""##, - id_esc = html_escape(&id), - )); - - Html(html) + let ctx = state.as_render_context(); + Html(crate::render::artifacts::render_artifact_detail(&ctx, &id).html) } // ── Graph visualization ────────────────────────────────────────────────── @@ -1485,154 +770,8 @@ pub(crate) async fn validate_view( Query(params): Query, ) -> Html { let state = state.read().await; - let diagnostics = &state.cached_diagnostics; - - let errors = diagnostics - .iter() - .filter(|d| d.severity == Severity::Error) - .count(); - let warnings = diagnostics - .iter() - .filter(|d| d.severity == Severity::Warning) - .count(); - let infos = diagnostics - .iter() - .filter(|d| d.severity == Severity::Info) - .count(); - - let mut html = String::from("

Validation Results

"); - - // Colored summary bar - let total_issues = errors + warnings + infos; - if total_issues == 0 { - html.push_str("
All checks passed
"); - } else { - html.push_str(&format!( - "
{total_issues} issue{} found — {errors} error{}, {warnings} warning{}, {infos} info
", - if total_issues != 1 { "s" } else { "" }, - if errors != 1 { "s" } else { "" }, - if warnings != 1 { "s" } else { "" }, - )); - } - - if diagnostics.is_empty() { - html.push_str("

No issues found.

"); - return Html(html); - } - - // Filter bar (severity + text search) - let current_status = params.status.as_deref().unwrap_or("all"); - let current_query = params.q.as_deref().unwrap_or(""); - html.push_str(&components::validation_filter_bar( - errors, - warnings, - infos, - current_status, - current_query, - )); - - // Apply severity filter and sort: errors first, then warnings, then info. - // We work from the cached (immutable) diagnostics, so sorting is done via - // the filtered+collected vec below rather than mutating in place. - let severity_filter = match current_status { - "error" => Some(Severity::Error), - "warning" => Some(Severity::Warning), - "info" => Some(Severity::Info), - _ => None, - }; - let q_filter: Option = if current_query.is_empty() { - None - } else { - Some(current_query.to_lowercase()) - }; - - let mut filtered: Vec<_> = diagnostics - .iter() - .filter(|d| { - if let Some(ref sev) = severity_filter { - if d.severity != *sev { - return false; - } - } - if let Some(ref q) = q_filter { - let art_match = d - .artifact_id - .as_deref() - .map(|id| id.to_lowercase().contains(q)) - .unwrap_or(false); - let rule_match = d.rule.to_lowercase().contains(q); - let msg_match = d.message.to_lowercase().contains(q); - if !art_match && !rule_match && !msg_match { - return false; - } - } - true - }) - .collect(); - - // Sort: errors first, then warnings, then info - filtered.sort_by_key(|d| match d.severity { - Severity::Error => 0, - Severity::Warning => 1, - Severity::Info => 2, - }); - - let filtered_count = filtered.len(); - if filtered_count == 0 { - html.push_str("

No matching issues found.

"); - return Html(html); - } - - // Paginate - let per_page = params.items_per_page(); - let total_pages = filtered_count.div_ceil(per_page); - let page = params.current_page().min(total_pages); - let start = (page - 1) * per_page; - let page_items = &filtered[start..filtered_count.min(start + per_page)]; - - html.push_str( - "", - ); - - for d in page_items { - let sev = match d.severity { - Severity::Error => "ERROR", - Severity::Warning => "WARN", - Severity::Info => "INFO", - }; - let art_id = d.artifact_id.as_deref().unwrap_or("-"); - let art_link = if d.artifact_id.is_some() && state.store.contains(art_id) { - format!( - "{art}", - art = html_escape(art_id) - ) - } else { - html_escape(art_id) - }; - html.push_str(&format!( - "", - html_escape(&d.rule), - html_escape(&d.message) - )); - } - - html.push_str("
SeverityArtifactRuleMessage
{sev}{art_link}{}{}
"); - - // Summary + pagination - if filtered_count < total_issues { - html.push_str(&format!( - "

{filtered_count} matching issues of {total_issues} total

", - )); - } - html.push_str(&components::pagination( - filtered_count, - page, - per_page, - "/validate", - ¶ms, - )); - - Html(html) + let ctx = state.as_render_context(); + Html(crate::render::validate::render_validate(&ctx, ¶ms)) } // ── Traceability Matrix ────────────────────────────────────────────────── @@ -2758,9 +1897,11 @@ pub(crate) async fn stpa_view( Query(params): Query, ) -> Html { let state = state.read().await; - stpa_partial(&state, ¶ms) + let ctx = state.as_render_context(); + Html(crate::render::stpa::render_stpa(&ctx, ¶ms)) } +#[allow(dead_code)] fn stpa_partial(state: &AppState, params: &ViewParams) -> Html { let store = &state.store; let graph = &state.graph; @@ -5666,7 +4807,7 @@ pub(crate) async fn traceability_history( /// Handles the special `__type:{type}` convention used by the `{{table:TYPE:FIELDS}}` /// embed: returns a synthetic `ArtifactInfo` whose `tags` list contains all artifact IDs /// of the requested type. -fn build_artifact_info( +pub(crate) fn build_artifact_info( id: &str, store: &rivet_core::store::Store, graph: &rivet_core::links::LinkGraph, @@ -5796,155 +4937,6 @@ fn rewrite_image_paths(html: &str) -> String { result } -/// Turn `path/to/file.rs:42` patterns into clickable `/source/path/to/file.rs#L42` links. -/// Also handles ranges like `file.rs:10-20` and plain `path/to/file.rs` (no line). -fn linkify_source_refs(s: &str) -> String { - // Regex-free: scan for patterns like word/word.ext:digits or word/word.ext:digits-digits - let mut result = String::new(); - let src = s; - let mut pos = 0usize; - - while pos < src.len() { - // Look for file-like patterns: contains '/' or '.' and optionally ':digits' - if let Some(m) = find_source_ref(&src[pos..]) { - result.push_str(&src[pos..pos + m.start]); - let file_path = &m.file; - let encoded_path = urlencoding::encode(file_path); - if let Some(line) = m.line { - if let Some(end_line) = m.end_line { - result.push_str(&format!( - "{file_path}:{line}-{end_line}" - )); - } else { - result.push_str(&format!( - "{file_path}:{line}" - )); - } - } else { - result.push_str(&format!( - "{file_path}" - )); - } - pos += m.start + m.len; - } else { - result.push_str(&src[pos..]); - break; - } - } - result -} - -struct SourceRefMatch { - start: usize, - len: usize, - file: String, - line: Option, - end_line: Option, -} - -/// Find the next source-ref pattern in text: `some/path.ext:line` or `some/path.ext:line-line` -/// File must contain a `/` or `.` with a recognized extension. -fn find_source_ref(s: &str) -> Option { - let extensions = [ - ".rs", ".yaml", ".yml", ".toml", ".md", ".py", ".js", ".ts", ".tsx", ".jsx", ".c", ".h", - ".cpp", ".hpp", ".go", ".java", ".rb", ".sh", ".json", ".xml", ".aadl", - ]; - let len = s.len(); - let mut i = 0; - while i < len { - // Try to match a file path starting at position i - // A file path: sequence of [a-zA-Z0-9_/.\-] containing at least one '/' and ending with a known extension - let start = i; - let mut j = i; - let mut has_slash = false; - let mut has_ext = false; - while j < len { - let c = s.as_bytes()[j]; - if c.is_ascii_alphanumeric() || c == b'_' || c == b'/' || c == b'.' || c == b'-' { - if c == b'/' { - has_slash = true; - } - j += 1; - } else { - break; - } - } - if has_slash && j > start + 2 { - let candidate = &s[start..j]; - // Check if it ends with a known extension - for ext in &extensions { - if candidate.ends_with(ext) { - has_ext = true; - break; - } - } - if has_ext { - let file = candidate.to_string(); - // Check for :line or :line-line - if j < len && s.as_bytes()[j] == b':' { - let _colon_pos = j; - j += 1; - let line_start = j; - while j < len && s.as_bytes()[j].is_ascii_digit() { - j += 1; - } - if j > line_start { - let line: u32 = s[line_start..j].parse().unwrap_or(0); - if line > 0 { - // Check for range: -digits - if j < len && s.as_bytes()[j] == b'-' { - let dash = j; - j += 1; - let end_start = j; - while j < len && s.as_bytes()[j].is_ascii_digit() { - j += 1; - } - if j > end_start { - let end_line: u32 = s[end_start..j].parse().unwrap_or(0); - if end_line > 0 { - return Some(SourceRefMatch { - start, - len: j - start, - file, - line: Some(line), - end_line: Some(end_line), - }); - } - } - // Not a valid range, just use line - return Some(SourceRefMatch { - start, - len: dash - start, - file, - line: Some(line), - end_line: None, - }); - } - return Some(SourceRefMatch { - start, - len: j - start, - file, - line: Some(line), - end_line: None, - }); - } - } - } - // No line number, just file path - return Some(SourceRefMatch { - start, - len: j - start, - file, - line: None, - end_line: None, - }); - } - } - i += 1; - } - None -} - // ── Help / Docs / Schema dashboard views ─────────────────────────────── pub(crate) async fn help_view(State(state): State) -> Html { diff --git a/vscode-rivet/assets/mermaid.min.js b/vscode-rivet/assets/mermaid.min.js new file mode 100644 index 0000000..4ef6a73 --- /dev/null +++ b/vscode-rivet/assets/mermaid.min.js @@ -0,0 +1,3022 @@ +"use strict";var __esbuild_esm_mermaid_nm;(__esbuild_esm_mermaid_nm||={}).mermaid=(()=>{var BAe=Object.create;var u2=Object.defineProperty;var FAe=Object.getOwnPropertyDescriptor;var $Ae=Object.getOwnPropertyNames;var zAe=Object.getPrototypeOf,GAe=Object.prototype.hasOwnProperty;var o=(t,e)=>u2(t,"name",{value:e,configurable:!0});var O=(t,e)=>()=>(t&&(e=t(t=0)),e);var nr=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),vr=(t,e)=>{for(var r in e)u2(t,r,{get:e[r],enumerable:!0})},z3=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of $Ae(e))!GAe.call(t,i)&&i!==r&&u2(t,i,{get:()=>e[i],enumerable:!(n=FAe(e,i))||n.enumerable});return t},jr=(t,e,r)=>(z3(t,e,"default"),r&&z3(r,e,"default")),Ra=(t,e,r)=>(r=t!=null?BAe(zAe(t)):{},z3(e||!t||!t.__esModule?u2(r,"default",{value:t,enumerable:!0}):r,t)),G3=t=>z3(u2({},"__esModule",{value:!0}),t);var VAe,ag,W_,uH,V3=O(()=>{"use strict";VAe=Object.freeze({left:0,top:0,width:16,height:16}),ag=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),W_=Object.freeze({...VAe,...ag}),uH=Object.freeze({...W_,body:"",hidden:!1})});var qAe,hH,fH=O(()=>{"use strict";V3();qAe=Object.freeze({width:null,height:null}),hH=Object.freeze({...qAe,...ag})});var H_,q3,dH=O(()=>{"use strict";H_=o((t,e,r,n="")=>{let i=t.split(":");if(t.slice(0,1)==="@"){if(i.length<2||i.length>3)return null;n=i.shift().slice(1)}if(i.length>3||!i.length)return null;if(i.length>1){let l=i.pop(),u=i.pop(),h={provider:i.length>0?i[0]:n,prefix:u,name:l};return e&&!q3(h)?null:h}let a=i[0],s=a.split("-");if(s.length>1){let l={provider:n,prefix:s.shift(),name:s.join("-")};return e&&!q3(l)?null:l}if(r&&n===""){let l={provider:n,prefix:"",name:a};return e&&!q3(l,r)?null:l}return null},"stringToIcon"),q3=o((t,e)=>t?!!((e&&t.prefix===""||t.prefix)&&t.name):!1,"validateIconName")});function pH(t,e){let r={};!t.hFlip!=!e.hFlip&&(r.hFlip=!0),!t.vFlip!=!e.vFlip&&(r.vFlip=!0);let n=((t.rotate||0)+(e.rotate||0))%4;return n&&(r.rotate=n),r}var mH=O(()=>{"use strict";o(pH,"mergeIconTransformations")});function Y_(t,e){let r=pH(t,e);for(let n in uH)n in ag?n in t&&!(n in r)&&(r[n]=ag[n]):n in e?r[n]=e[n]:n in t&&(r[n]=t[n]);return r}var gH=O(()=>{"use strict";V3();mH();o(Y_,"mergeIconData")});function yH(t,e){let r=t.icons,n=t.aliases||Object.create(null),i=Object.create(null);function a(s){if(r[s])return i[s]=[];if(!(s in i)){i[s]=null;let l=n[s]&&n[s].parent,u=l&&a(l);u&&(i[s]=[l].concat(u))}return i[s]}return o(a,"resolve"),(e||Object.keys(r).concat(Object.keys(n))).forEach(a),i}var vH=O(()=>{"use strict";o(yH,"getIconsTree")});function xH(t,e,r){let n=t.icons,i=t.aliases||Object.create(null),a={};function s(l){a=Y_(n[l]||i[l],a)}return o(s,"parse"),s(e),r.forEach(s),Y_(t,a)}function j_(t,e){if(t.icons[e])return xH(t,e,[]);let r=yH(t,[e])[e];return r?xH(t,e,r):null}var bH=O(()=>{"use strict";gH();vH();o(xH,"internalGetIconData");o(j_,"getIconData")});function X_(t,e,r){if(e===1)return t;if(r=r||100,typeof t=="number")return Math.ceil(t*e*r)/r;if(typeof t!="string")return t;let n=t.split(UAe);if(n===null||!n.length)return t;let i=[],a=n.shift(),s=WAe.test(a);for(;;){if(s){let l=parseFloat(a);isNaN(l)?i.push(a):i.push(Math.ceil(l*e*r)/r)}else i.push(a);if(a=n.shift(),a===void 0)return i.join("");s=!s}}var UAe,WAe,TH=O(()=>{"use strict";UAe=/(-?[0-9.]*[0-9]+[0-9.]*)/g,WAe=/^-?[0-9.]*[0-9]+[0-9.]*$/g;o(X_,"calculateSize")});function HAe(t,e="defs"){let r="",n=t.indexOf("<"+e);for(;n>=0;){let i=t.indexOf(">",n),a=t.indexOf("",a);if(s===-1)break;r+=t.slice(i+1,a).trim(),t=t.slice(0,n).trim()+t.slice(s+1)}return{defs:r,content:t}}function YAe(t,e){return t?""+t+""+e:e}function wH(t,e,r){let n=HAe(t);return YAe(n.defs,e+n.content+r)}var kH=O(()=>{"use strict";o(HAe,"splitSVGDefs");o(YAe,"mergeDefsAndContent");o(wH,"wrapSVGContent")});function K_(t,e){let r={...W_,...t},n={...hH,...e},i={left:r.left,top:r.top,width:r.width,height:r.height},a=r.body;[r,n].forEach(y=>{let v=[],x=y.hFlip,b=y.vFlip,T=y.rotate;x?b?T+=2:(v.push("translate("+(i.width+i.left).toString()+" "+(0-i.top).toString()+")"),v.push("scale(-1 1)"),i.top=i.left=0):b&&(v.push("translate("+(0-i.left).toString()+" "+(i.height+i.top).toString()+")"),v.push("scale(1 -1)"),i.top=i.left=0);let E;switch(T<0&&(T-=Math.floor(T/4)*4),T=T%4,T){case 1:E=i.height/2+i.top,v.unshift("rotate(90 "+E.toString()+" "+E.toString()+")");break;case 2:v.unshift("rotate(180 "+(i.width/2+i.left).toString()+" "+(i.height/2+i.top).toString()+")");break;case 3:E=i.width/2+i.left,v.unshift("rotate(-90 "+E.toString()+" "+E.toString()+")");break}T%2===1&&(i.left!==i.top&&(E=i.left,i.left=i.top,i.top=E),i.width!==i.height&&(E=i.width,i.width=i.height,i.height=E)),v.length&&(a=wH(a,'',""))});let s=n.width,l=n.height,u=i.width,h=i.height,f,d;s===null?(d=l===null?"1em":l==="auto"?h:l,f=X_(d,u/h)):(f=s==="auto"?u:s,d=l===null?X_(f,h/u):l==="auto"?h:l);let p={},m=o((y,v)=>{jAe(v)||(p[y]=v.toString())},"setAttr");m("width",f),m("height",d);let g=[i.left,i.top,u,h];return p.viewBox=g.join(" "),{attributes:p,viewBox:g,body:a}}var jAe,EH=O(()=>{"use strict";V3();fH();TH();kH();jAe=o(t=>t==="unset"||t==="undefined"||t==="none","isUnsetKeyword");o(K_,"iconToSVG")});function Q_(t,e=KAe){let r=[],n;for(;n=XAe.exec(t);)r.push(n[1]);if(!r.length)return t;let i="suffix"+(Math.random()*16777216|Date.now()).toString(16);return r.forEach(a=>{let s=typeof e=="function"?e(a):e+(QAe++).toString(),l=a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");t=t.replace(new RegExp('([#;"])('+l+')([")]|\\.[a-z])',"g"),"$1"+s+i+"$3")}),t=t.replace(new RegExp(i,"g"),""),t}var XAe,KAe,QAe,SH=O(()=>{"use strict";XAe=/\sid="(\S+)"/g,KAe="IconifyId"+Date.now().toString(16)+(Math.random()*16777216|0).toString(16),QAe=0;o(Q_,"replaceIDs")});function Z_(t,e){let r=t.indexOf("xlink:")===-1?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(let n in e)r+=" "+n+'="'+e[n]+'"';return'"+t+""}var CH=O(()=>{"use strict";o(Z_,"iconToHTML")});var AH=O(()=>{"use strict";dH();bH();EH();SH();CH()});var J_,Vn,sg=O(()=>{"use strict";J_=o((t,e,{depth:r=2,clobber:n=!1}={})=>{let i={depth:r,clobber:n};return Array.isArray(e)&&!Array.isArray(t)?(e.forEach(a=>J_(t,a,i)),t):Array.isArray(e)&&Array.isArray(t)?(e.forEach(a=>{t.includes(a)||t.push(a)}),t):t===void 0||r<=0?t!=null&&typeof t=="object"&&typeof e=="object"?Object.assign(t,e):e:(e!==void 0&&typeof t=="object"&&typeof e=="object"&&Object.keys(e).forEach(a=>{typeof e[a]=="object"&&e[a]!==null&&(t[a]===void 0||typeof t[a]=="object")?(t[a]===void 0&&(t[a]=Array.isArray(e[a])?[]:{}),t[a]=J_(t[a],e[a],{depth:r-1,clobber:n})):(n||typeof t[a]!="object"&&typeof e[a]!="object")&&(t[a]=e[a])}),t)},"assignWithDepth"),Vn=J_});var U3=nr((e8,t8)=>{"use strict";(function(t,e){typeof e8=="object"&&typeof t8<"u"?t8.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(e8,(function(){"use strict";var t=1e3,e=6e4,r=36e5,n="millisecond",i="second",a="minute",s="hour",l="day",u="week",h="month",f="quarter",d="year",p="date",m="Invalid Date",g=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,y=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,v={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:o(function(C){var _=["th","st","nd","rd"],D=C%100;return"["+C+(_[(D-20)%10]||_[D]||_[0])+"]"},"ordinal")},x=o(function(C,_,D){var M=String(C);return!M||M.length>=_?C:""+Array(_+1-M.length).join(D)+C},"m"),b={s:x,z:o(function(C){var _=-C.utcOffset(),D=Math.abs(_),M=Math.floor(D/60),R=D%60;return(_<=0?"+":"-")+x(M,2,"0")+":"+x(R,2,"0")},"z"),m:o(function C(_,D){if(_.date()1)return C(B[0])}else{var F=_.name;E[F]=_,R=F}return!M&&R&&(T=R),R||!M&&T},"t"),A=o(function(C,_){if(k(C))return C.clone();var D=typeof _=="object"?_:{};return D.date=C,D.args=arguments,new I(D)},"O"),L=b;L.l=S,L.i=k,L.w=function(C,_){return A(C,{locale:_.$L,utc:_.$u,x:_.$x,$offset:_.$offset})};var I=(function(){function C(D){this.$L=S(D.locale,null,!0),this.parse(D),this.$x=this.$x||D.x||{},this[w]=!0}o(C,"M");var _=C.prototype;return _.parse=function(D){this.$d=(function(M){var R=M.date,P=M.utc;if(R===null)return new Date(NaN);if(L.u(R))return new Date;if(R instanceof Date)return new Date(R);if(typeof R=="string"&&!/Z$/i.test(R)){var B=R.match(g);if(B){var F=B[2]-1||0,G=(B[7]||"0").substring(0,3);return P?new Date(Date.UTC(B[1],F,B[3]||1,B[4]||0,B[5]||0,B[6]||0,G)):new Date(B[1],F,B[3]||1,B[4]||0,B[5]||0,B[6]||0,G)}}return new Date(R)})(D),this.init()},_.init=function(){var D=this.$d;this.$y=D.getFullYear(),this.$M=D.getMonth(),this.$D=D.getDate(),this.$W=D.getDay(),this.$H=D.getHours(),this.$m=D.getMinutes(),this.$s=D.getSeconds(),this.$ms=D.getMilliseconds()},_.$utils=function(){return L},_.isValid=function(){return this.$d.toString()!==m},_.isSame=function(D,M){var R=A(D);return this.startOf(M)<=R&&R<=this.endOf(M)},_.isAfter=function(D,M){return A(D){"use strict";_H=Ra(U3(),1),eh={trace:0,debug:1,info:2,warn:3,error:4,fatal:5},K={trace:o((...t)=>{},"trace"),debug:o((...t)=>{},"debug"),info:o((...t)=>{},"info"),warn:o((...t)=>{},"warn"),error:o((...t)=>{},"error"),fatal:o((...t)=>{},"fatal")},h2=o(function(t="fatal"){let e=eh.fatal;typeof t=="string"?t.toLowerCase()in eh&&(e=eh[t]):typeof t=="number"&&(e=t),K.trace=()=>{},K.debug=()=>{},K.info=()=>{},K.warn=()=>{},K.error=()=>{},K.fatal=()=>{},e<=eh.fatal&&(K.fatal=console.error?console.error.bind(console,cl("FATAL"),"color: orange"):console.log.bind(console,"\x1B[35m",cl("FATAL"))),e<=eh.error&&(K.error=console.error?console.error.bind(console,cl("ERROR"),"color: orange"):console.log.bind(console,"\x1B[31m",cl("ERROR"))),e<=eh.warn&&(K.warn=console.warn?console.warn.bind(console,cl("WARN"),"color: orange"):console.log.bind(console,"\x1B[33m",cl("WARN"))),e<=eh.info&&(K.info=console.info?console.info.bind(console,cl("INFO"),"color: lightblue"):console.log.bind(console,"\x1B[34m",cl("INFO"))),e<=eh.debug&&(K.debug=console.debug?console.debug.bind(console,cl("DEBUG"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",cl("DEBUG"))),e<=eh.trace&&(K.trace=console.debug?console.debug.bind(console,cl("TRACE"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",cl("TRACE")))},"setLogLevel"),cl=o(t=>`%c${(0,_H.default)().format("ss.SSS")} : ${t} : `,"format")});var W3,DH,RH=O(()=>{"use strict";W3={min:{r:0,g:0,b:0,s:0,l:0,a:0},max:{r:255,g:255,b:255,h:360,s:100,l:100,a:1},clamp:{r:o(t=>t>=255?255:t<0?0:t,"r"),g:o(t=>t>=255?255:t<0?0:t,"g"),b:o(t=>t>=255?255:t<0?0:t,"b"),h:o(t=>t%360,"h"),s:o(t=>t>=100?100:t<0?0:t,"s"),l:o(t=>t>=100?100:t<0?0:t,"l"),a:o(t=>t>=1?1:t<0?0:t,"a")},toLinear:o(t=>{let e=t/255;return t>.03928?Math.pow((e+.055)/1.055,2.4):e/12.92},"toLinear"),hue2rgb:o((t,e,r)=>(r<0&&(r+=1),r>1&&(r-=1),r<.16666666666666666?t+(e-t)*6*r:r<.5?e:r<.6666666666666666?t+(e-t)*(.6666666666666666-r)*6:t),"hue2rgb"),hsl2rgb:o(({h:t,s:e,l:r},n)=>{if(!e)return r*2.55;t/=360,e/=100,r/=100;let i=r<.5?r*(1+e):r+e-r*e,a=2*r-i;switch(n){case"r":return W3.hue2rgb(a,i,t+.3333333333333333)*255;case"g":return W3.hue2rgb(a,i,t)*255;case"b":return W3.hue2rgb(a,i,t-.3333333333333333)*255}},"hsl2rgb"),rgb2hsl:o(({r:t,g:e,b:r},n)=>{t/=255,e/=255,r/=255;let i=Math.max(t,e,r),a=Math.min(t,e,r),s=(i+a)/2;if(n==="l")return s*100;if(i===a)return 0;let l=i-a,u=s>.5?l/(2-i-a):l/(i+a);if(n==="s")return u*100;switch(i){case t:return((e-r)/l+(e{"use strict";ZAe={clamp:o((t,e,r)=>e>r?Math.min(e,Math.max(r,t)):Math.min(r,Math.max(e,t)),"clamp"),round:o(t=>Math.round(t*1e10)/1e10,"round")},LH=ZAe});var JAe,MH,IH=O(()=>{"use strict";JAe={dec2hex:o(t=>{let e=Math.round(t).toString(16);return e.length>1?e:`0${e}`},"dec2hex")},MH=JAe});var e7e,ir,$c=O(()=>{"use strict";RH();NH();IH();e7e={channel:DH,lang:LH,unit:MH},ir=e7e});var th,Qi,f2=O(()=>{"use strict";$c();th={};for(let t=0;t<=255;t++)th[t]=ir.unit.dec2hex(t);Qi={ALL:0,RGB:1,HSL:2}});var r8,OH,PH=O(()=>{"use strict";f2();r8=class{static{o(this,"Type")}constructor(){this.type=Qi.ALL}get(){return this.type}set(e){if(this.type&&this.type!==e)throw new Error("Cannot change both RGB and HSL channels at the same time");this.type=e}reset(){this.type=Qi.ALL}is(e){return this.type===e}},OH=r8});var n8,BH,FH=O(()=>{"use strict";$c();PH();f2();n8=class{static{o(this,"Channels")}constructor(e,r){this.color=r,this.changed=!1,this.data=e,this.type=new OH}set(e,r){return this.color=r,this.changed=!1,this.data=e,this.type.type=Qi.ALL,this}_ensureHSL(){let e=this.data,{h:r,s:n,l:i}=e;r===void 0&&(e.h=ir.channel.rgb2hsl(e,"h")),n===void 0&&(e.s=ir.channel.rgb2hsl(e,"s")),i===void 0&&(e.l=ir.channel.rgb2hsl(e,"l"))}_ensureRGB(){let e=this.data,{r,g:n,b:i}=e;r===void 0&&(e.r=ir.channel.hsl2rgb(e,"r")),n===void 0&&(e.g=ir.channel.hsl2rgb(e,"g")),i===void 0&&(e.b=ir.channel.hsl2rgb(e,"b"))}get r(){let e=this.data,r=e.r;return!this.type.is(Qi.HSL)&&r!==void 0?r:(this._ensureHSL(),ir.channel.hsl2rgb(e,"r"))}get g(){let e=this.data,r=e.g;return!this.type.is(Qi.HSL)&&r!==void 0?r:(this._ensureHSL(),ir.channel.hsl2rgb(e,"g"))}get b(){let e=this.data,r=e.b;return!this.type.is(Qi.HSL)&&r!==void 0?r:(this._ensureHSL(),ir.channel.hsl2rgb(e,"b"))}get h(){let e=this.data,r=e.h;return!this.type.is(Qi.RGB)&&r!==void 0?r:(this._ensureRGB(),ir.channel.rgb2hsl(e,"h"))}get s(){let e=this.data,r=e.s;return!this.type.is(Qi.RGB)&&r!==void 0?r:(this._ensureRGB(),ir.channel.rgb2hsl(e,"s"))}get l(){let e=this.data,r=e.l;return!this.type.is(Qi.RGB)&&r!==void 0?r:(this._ensureRGB(),ir.channel.rgb2hsl(e,"l"))}get a(){return this.data.a}set r(e){this.type.set(Qi.RGB),this.changed=!0,this.data.r=e}set g(e){this.type.set(Qi.RGB),this.changed=!0,this.data.g=e}set b(e){this.type.set(Qi.RGB),this.changed=!0,this.data.b=e}set h(e){this.type.set(Qi.HSL),this.changed=!0,this.data.h=e}set s(e){this.type.set(Qi.HSL),this.changed=!0,this.data.s=e}set l(e){this.type.set(Qi.HSL),this.changed=!0,this.data.l=e}set a(e){this.changed=!0,this.data.a=e}},BH=n8});var t7e,pf,d2=O(()=>{"use strict";FH();t7e=new BH({r:0,g:0,b:0,a:0},"transparent"),pf=t7e});var $H,Ap,i8=O(()=>{"use strict";d2();f2();$H={re:/^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,parse:o(t=>{if(t.charCodeAt(0)!==35)return;let e=t.match($H.re);if(!e)return;let r=e[1],n=parseInt(r,16),i=r.length,a=i%4===0,s=i>4,l=s?1:17,u=s?8:4,h=a?0:-1,f=s?255:15;return pf.set({r:(n>>u*(h+3)&f)*l,g:(n>>u*(h+2)&f)*l,b:(n>>u*(h+1)&f)*l,a:a?(n&f)*l/255:1},t)},"parse"),stringify:o(t=>{let{r:e,g:r,b:n,a:i}=t;return i<1?`#${th[Math.round(e)]}${th[Math.round(r)]}${th[Math.round(n)]}${th[Math.round(i*255)]}`:`#${th[Math.round(e)]}${th[Math.round(r)]}${th[Math.round(n)]}`},"stringify")},Ap=$H});var H3,p2,zH=O(()=>{"use strict";$c();d2();H3={re:/^hsla?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(?:deg|grad|rad|turn)?)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(%)?))?\s*?\)$/i,hueRe:/^(.+?)(deg|grad|rad|turn)$/i,_hue2deg:o(t=>{let e=t.match(H3.hueRe);if(e){let[,r,n]=e;switch(n){case"grad":return ir.channel.clamp.h(parseFloat(r)*.9);case"rad":return ir.channel.clamp.h(parseFloat(r)*180/Math.PI);case"turn":return ir.channel.clamp.h(parseFloat(r)*360)}}return ir.channel.clamp.h(parseFloat(t))},"_hue2deg"),parse:o(t=>{let e=t.charCodeAt(0);if(e!==104&&e!==72)return;let r=t.match(H3.re);if(!r)return;let[,n,i,a,s,l]=r;return pf.set({h:H3._hue2deg(n),s:ir.channel.clamp.s(parseFloat(i)),l:ir.channel.clamp.l(parseFloat(a)),a:s?ir.channel.clamp.a(l?parseFloat(s)/100:parseFloat(s)):1},t)},"parse"),stringify:o(t=>{let{h:e,s:r,l:n,a:i}=t;return i<1?`hsla(${ir.lang.round(e)}, ${ir.lang.round(r)}%, ${ir.lang.round(n)}%, ${i})`:`hsl(${ir.lang.round(e)}, ${ir.lang.round(r)}%, ${ir.lang.round(n)}%)`},"stringify")},p2=H3});var Y3,a8,GH=O(()=>{"use strict";i8();Y3={colors:{aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyanaqua:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",transparent:"#00000000",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},parse:o(t=>{t=t.toLowerCase();let e=Y3.colors[t];if(e)return Ap.parse(e)},"parse"),stringify:o(t=>{let e=Ap.stringify(t);for(let r in Y3.colors)if(Y3.colors[r]===e)return r},"stringify")},a8=Y3});var VH,m2,qH=O(()=>{"use strict";$c();d2();VH={re:/^rgba?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?)))?\s*?\)$/i,parse:o(t=>{let e=t.charCodeAt(0);if(e!==114&&e!==82)return;let r=t.match(VH.re);if(!r)return;let[,n,i,a,s,l,u,h,f]=r;return pf.set({r:ir.channel.clamp.r(i?parseFloat(n)*2.55:parseFloat(n)),g:ir.channel.clamp.g(s?parseFloat(a)*2.55:parseFloat(a)),b:ir.channel.clamp.b(u?parseFloat(l)*2.55:parseFloat(l)),a:h?ir.channel.clamp.a(f?parseFloat(h)/100:parseFloat(h)):1},t)},"parse"),stringify:o(t=>{let{r:e,g:r,b:n,a:i}=t;return i<1?`rgba(${ir.lang.round(e)}, ${ir.lang.round(r)}, ${ir.lang.round(n)}, ${ir.lang.round(i)})`:`rgb(${ir.lang.round(e)}, ${ir.lang.round(r)}, ${ir.lang.round(n)})`},"stringify")},m2=VH});var r7e,Zi,rh=O(()=>{"use strict";i8();zH();GH();qH();f2();r7e={format:{keyword:a8,hex:Ap,rgb:m2,rgba:m2,hsl:p2,hsla:p2},parse:o(t=>{if(typeof t!="string")return t;let e=Ap.parse(t)||m2.parse(t)||p2.parse(t)||a8.parse(t);if(e)return e;throw new Error(`Unsupported color format: "${t}"`)},"parse"),stringify:o(t=>!t.changed&&t.color?t.color:t.type.is(Qi.HSL)||t.data.r===void 0?p2.stringify(t):t.a<1||!Number.isInteger(t.r)||!Number.isInteger(t.g)||!Number.isInteger(t.b)?m2.stringify(t):Ap.stringify(t),"stringify")},Zi=r7e});var n7e,j3,s8=O(()=>{"use strict";$c();rh();n7e=o((t,e)=>{let r=Zi.parse(t);for(let n in e)r[n]=ir.channel.clamp[n](e[n]);return Zi.stringify(r)},"change"),j3=n7e});var i7e,bs,o8=O(()=>{"use strict";$c();d2();rh();s8();i7e=o((t,e,r=0,n=1)=>{if(typeof t!="number")return j3(t,{a:e});let i=pf.set({r:ir.channel.clamp.r(t),g:ir.channel.clamp.g(e),b:ir.channel.clamp.b(r),a:ir.channel.clamp.a(n)});return Zi.stringify(i)},"rgba"),bs=i7e});var a7e,_p,UH=O(()=>{"use strict";$c();rh();a7e=o((t,e)=>ir.lang.round(Zi.parse(t)[e]),"channel"),_p=a7e});var s7e,WH,HH=O(()=>{"use strict";$c();rh();s7e=o(t=>{let{r:e,g:r,b:n}=Zi.parse(t),i=.2126*ir.channel.toLinear(e)+.7152*ir.channel.toLinear(r)+.0722*ir.channel.toLinear(n);return ir.lang.round(i)},"luminance"),WH=s7e});var o7e,YH,jH=O(()=>{"use strict";HH();o7e=o(t=>WH(t)>=.5,"isLight"),YH=o7e});var l7e,Ji,XH=O(()=>{"use strict";jH();l7e=o(t=>!YH(t),"isDark"),Ji=l7e});var c7e,og,X3=O(()=>{"use strict";$c();rh();c7e=o((t,e,r)=>{let n=Zi.parse(t),i=n[e],a=ir.channel.clamp[e](i+r);return i!==a&&(n[e]=a),Zi.stringify(n)},"adjustChannel"),og=c7e});var u7e,Lt,KH=O(()=>{"use strict";X3();u7e=o((t,e)=>og(t,"l",e),"lighten"),Lt=u7e});var h7e,Bt,QH=O(()=>{"use strict";X3();h7e=o((t,e)=>og(t,"l",-e),"darken"),Bt=h7e});var f7e,K3,ZH=O(()=>{"use strict";X3();f7e=o((t,e)=>og(t,"a",-e),"transparentize"),K3=f7e});var d7e,Fe,JH=O(()=>{"use strict";rh();s8();d7e=o((t,e)=>{let r=Zi.parse(t),n={};for(let i in e)e[i]&&(n[i]=r[i]+e[i]);return j3(t,n)},"adjust"),Fe=d7e});var p7e,eY,tY=O(()=>{"use strict";rh();o8();p7e=o((t,e,r=50)=>{let{r:n,g:i,b:a,a:s}=Zi.parse(t),{r:l,g:u,b:h,a:f}=Zi.parse(e),d=r/100,p=d*2-1,m=s-f,y=((p*m===-1?p:(p+m)/(1+p*m))+1)/2,v=1-y,x=n*y+l*v,b=i*y+u*v,T=a*y+h*v,E=s*d+f*(1-d);return bs(x,b,T,E)},"mix"),eY=p7e});var m7e,At,rY=O(()=>{"use strict";rh();tY();m7e=o((t,e=100)=>{let r=Zi.parse(t);return r.r=255-r.r,r.g=255-r.g,r.b=255-r.b,eY(r,t,e)},"invert"),At=m7e});var nY=O(()=>{"use strict";o8();UH();XH();KH();QH();ZH();JH();rY()});var Ys=O(()=>{"use strict";nY()});var mf,gf,g2=O(()=>{"use strict";mf="#ffffff",gf="#f2f2f2"});var zi,lg=O(()=>{"use strict";Ys();zi=o((t,e)=>e?Fe(t,{s:-40,l:10}):Fe(t,{s:-40,l:-10}),"mkBorder")});var c8,iY,aY=O(()=>{"use strict";Ys();g2();lg();c8=class{static{o(this,"Theme")}constructor(){this.background="#f4f4f4",this.primaryColor="#fff4dd",this.noteBkgColor="#fff5ad",this.noteTextColor="#333",this.THEME_COLOR_LIMIT=12,this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px"}updateColors(){if(this.primaryTextColor=this.primaryTextColor||(this.darkMode?"#eee":"#333"),this.secondaryColor=this.secondaryColor||Fe(this.primaryColor,{h:-120}),this.tertiaryColor=this.tertiaryColor||Fe(this.primaryColor,{h:180,l:5}),this.primaryBorderColor=this.primaryBorderColor||zi(this.primaryColor,this.darkMode),this.secondaryBorderColor=this.secondaryBorderColor||zi(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=this.tertiaryBorderColor||zi(this.tertiaryColor,this.darkMode),this.noteBorderColor=this.noteBorderColor||zi(this.noteBkgColor,this.darkMode),this.noteBkgColor=this.noteBkgColor||"#fff5ad",this.noteTextColor=this.noteTextColor||"#333",this.secondaryTextColor=this.secondaryTextColor||At(this.secondaryColor),this.tertiaryTextColor=this.tertiaryTextColor||At(this.tertiaryColor),this.lineColor=this.lineColor||At(this.background),this.arrowheadColor=this.arrowheadColor||At(this.background),this.textColor=this.textColor||this.primaryTextColor,this.border2=this.border2||this.tertiaryBorderColor,this.nodeBkg=this.nodeBkg||this.primaryColor,this.mainBkg=this.mainBkg||this.primaryColor,this.nodeBorder=this.nodeBorder||this.primaryBorderColor,this.clusterBkg=this.clusterBkg||this.tertiaryColor,this.clusterBorder=this.clusterBorder||this.tertiaryBorderColor,this.defaultLinkColor=this.defaultLinkColor||this.lineColor,this.titleColor=this.titleColor||this.tertiaryTextColor,this.edgeLabelBackground=this.edgeLabelBackground||(this.darkMode?Bt(this.secondaryColor,30):this.secondaryColor),this.nodeTextColor=this.nodeTextColor||this.primaryTextColor,this.actorBorder=this.actorBorder||this.primaryBorderColor,this.actorBkg=this.actorBkg||this.mainBkg,this.actorTextColor=this.actorTextColor||this.primaryTextColor,this.actorLineColor=this.actorLineColor||this.actorBorder,this.labelBoxBkgColor=this.labelBoxBkgColor||this.actorBkg,this.signalColor=this.signalColor||this.textColor,this.signalTextColor=this.signalTextColor||this.textColor,this.labelBoxBorderColor=this.labelBoxBorderColor||this.actorBorder,this.labelTextColor=this.labelTextColor||this.actorTextColor,this.loopTextColor=this.loopTextColor||this.actorTextColor,this.activationBorderColor=this.activationBorderColor||Bt(this.secondaryColor,10),this.activationBkgColor=this.activationBkgColor||this.secondaryColor,this.sequenceNumberColor=this.sequenceNumberColor||At(this.lineColor),this.sectionBkgColor=this.sectionBkgColor||this.tertiaryColor,this.altSectionBkgColor=this.altSectionBkgColor||"white",this.sectionBkgColor=this.sectionBkgColor||this.secondaryColor,this.sectionBkgColor2=this.sectionBkgColor2||this.primaryColor,this.excludeBkgColor=this.excludeBkgColor||"#eeeeee",this.taskBorderColor=this.taskBorderColor||this.primaryBorderColor,this.taskBkgColor=this.taskBkgColor||this.primaryColor,this.activeTaskBorderColor=this.activeTaskBorderColor||this.primaryColor,this.activeTaskBkgColor=this.activeTaskBkgColor||Lt(this.primaryColor,23),this.gridColor=this.gridColor||"lightgrey",this.doneTaskBkgColor=this.doneTaskBkgColor||"lightgrey",this.doneTaskBorderColor=this.doneTaskBorderColor||"grey",this.critBorderColor=this.critBorderColor||"#ff8888",this.critBkgColor=this.critBkgColor||"red",this.todayLineColor=this.todayLineColor||"red",this.vertLineColor=this.vertLineColor||"navy",this.taskTextColor=this.taskTextColor||this.textColor,this.taskTextOutsideColor=this.taskTextOutsideColor||this.textColor,this.taskTextLightColor=this.taskTextLightColor||this.textColor,this.taskTextColor=this.taskTextColor||this.primaryTextColor,this.taskTextDarkColor=this.taskTextDarkColor||this.textColor,this.taskTextClickableColor=this.taskTextClickableColor||"#003163",this.personBorder=this.personBorder||this.primaryBorderColor,this.personBkg=this.personBkg||this.mainBkg,this.darkMode?(this.rowOdd=this.rowOdd||Bt(this.mainBkg,5)||"#ffffff",this.rowEven=this.rowEven||Bt(this.mainBkg,10)):(this.rowOdd=this.rowOdd||Lt(this.mainBkg,75)||"#ffffff",this.rowEven=this.rowEven||Lt(this.mainBkg,5)),this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||this.tertiaryColor,this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.specialStateColor=this.lineColor,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||Fe(this.primaryColor,{h:30}),this.cScale4=this.cScale4||Fe(this.primaryColor,{h:60}),this.cScale5=this.cScale5||Fe(this.primaryColor,{h:90}),this.cScale6=this.cScale6||Fe(this.primaryColor,{h:120}),this.cScale7=this.cScale7||Fe(this.primaryColor,{h:150}),this.cScale8=this.cScale8||Fe(this.primaryColor,{h:210,l:150}),this.cScale9=this.cScale9||Fe(this.primaryColor,{h:270}),this.cScale10=this.cScale10||Fe(this.primaryColor,{h:300}),this.cScale11=this.cScale11||Fe(this.primaryColor,{h:330}),this.darkMode)for(let r=0;r{this[n]=e[n]}),this.updateColors(),r.forEach(n=>{this[n]=e[n]})}},iY=o(t=>{let e=new c8;return e.calculate(t),e},"getThemeVariables")});var u8,sY,oY=O(()=>{"use strict";Ys();lg();u8=class{static{o(this,"Theme")}constructor(){this.background="#333",this.primaryColor="#1f2020",this.secondaryColor=Lt(this.primaryColor,16),this.tertiaryColor=Fe(this.primaryColor,{h:-160}),this.primaryBorderColor=At(this.background),this.secondaryBorderColor=zi(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=zi(this.tertiaryColor,this.darkMode),this.primaryTextColor=At(this.primaryColor),this.secondaryTextColor=At(this.secondaryColor),this.tertiaryTextColor=At(this.tertiaryColor),this.lineColor=At(this.background),this.textColor=At(this.background),this.mainBkg="#1f2020",this.secondBkg="calculated",this.mainContrastColor="lightgrey",this.darkTextColor=Lt(At("#323D47"),10),this.lineColor="calculated",this.border1="#ccc",this.border2=bs(255,255,255,.25),this.arrowheadColor="calculated",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="#181818",this.textColor="#ccc",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#F9FFFE",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="calculated",this.activationBkgColor="calculated",this.sequenceNumberColor="black",this.sectionBkgColor=Bt("#EAE8D9",30),this.altSectionBkgColor="calculated",this.sectionBkgColor2="#EAE8D9",this.excludeBkgColor=Bt(this.sectionBkgColor,10),this.taskBorderColor=bs(255,255,255,70),this.taskBkgColor="calculated",this.taskTextColor="calculated",this.taskTextLightColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor=bs(255,255,255,50),this.activeTaskBkgColor="#81B1DB",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="grey",this.critBorderColor="#E83737",this.critBkgColor="#E83737",this.taskTextDarkColor="calculated",this.todayLineColor="#DB5757",this.vertLineColor="#00BFFF",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.rowOdd=this.rowOdd||Lt(this.mainBkg,5)||"#ffffff",this.rowEven=this.rowEven||Bt(this.mainBkg,10),this.labelColor="calculated",this.errorBkgColor="#a44141",this.errorTextColor="#ddd"}updateColors(){this.secondBkg=Lt(this.mainBkg,16),this.lineColor=this.mainContrastColor,this.arrowheadColor=this.mainContrastColor,this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.edgeLabelBackground=Lt(this.labelBackground,25),this.actorBorder=this.border1,this.actorBkg=this.mainBkg,this.actorTextColor=this.mainContrastColor,this.actorLineColor=this.actorBorder,this.signalColor=this.mainContrastColor,this.signalTextColor=this.mainContrastColor,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.mainContrastColor,this.loopTextColor=this.mainContrastColor,this.noteBorderColor=this.secondaryBorderColor,this.noteBkgColor=this.secondBkg,this.noteTextColor=this.secondaryTextColor,this.activationBorderColor=this.border1,this.activationBkgColor=this.secondBkg,this.altSectionBkgColor=this.background,this.taskBkgColor=Lt(this.mainBkg,23),this.taskTextColor=this.darkTextColor,this.taskTextLightColor=this.mainContrastColor,this.taskTextOutsideColor=this.taskTextLightColor,this.gridColor=this.mainContrastColor,this.doneTaskBkgColor=this.mainContrastColor,this.taskTextDarkColor=At(this.doneTaskBkgColor),this.archEdgeColor=this.lineColor,this.archEdgeArrowColor=this.lineColor,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#555",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.primaryBorderColor,this.specialStateColor="#f4f4f4",this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=Fe(this.primaryColor,{h:64}),this.fillType3=Fe(this.secondaryColor,{h:64}),this.fillType4=Fe(this.primaryColor,{h:-64}),this.fillType5=Fe(this.secondaryColor,{h:-64}),this.fillType6=Fe(this.primaryColor,{h:128}),this.fillType7=Fe(this.secondaryColor,{h:128}),this.cScale1=this.cScale1||"#0b0000",this.cScale2=this.cScale2||"#4d1037",this.cScale3=this.cScale3||"#3f5258",this.cScale4=this.cScale4||"#4f2f1b",this.cScale5=this.cScale5||"#6e0a0a",this.cScale6=this.cScale6||"#3b0048",this.cScale7=this.cScale7||"#995a01",this.cScale8=this.cScale8||"#154706",this.cScale9=this.cScale9||"#161722",this.cScale10=this.cScale10||"#00296f",this.cScale11=this.cScale11||"#01629c",this.cScale12=this.cScale12||"#010029",this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||Fe(this.primaryColor,{h:30}),this.cScale4=this.cScale4||Fe(this.primaryColor,{h:60}),this.cScale5=this.cScale5||Fe(this.primaryColor,{h:90}),this.cScale6=this.cScale6||Fe(this.primaryColor,{h:120}),this.cScale7=this.cScale7||Fe(this.primaryColor,{h:150}),this.cScale8=this.cScale8||Fe(this.primaryColor,{h:210}),this.cScale9=this.cScale9||Fe(this.primaryColor,{h:270}),this.cScale10=this.cScale10||Fe(this.primaryColor,{h:300}),this.cScale11=this.cScale11||Fe(this.primaryColor,{h:330});for(let e=0;e{this[n]=e[n]}),this.updateColors(),r.forEach(n=>{this[n]=e[n]})}},sY=o(t=>{let e=new u8;return e.calculate(t),e},"getThemeVariables")});var h8,yf,y2=O(()=>{"use strict";Ys();lg();g2();h8=class{static{o(this,"Theme")}constructor(){this.background="#f4f4f4",this.primaryColor="#ECECFF",this.secondaryColor=Fe(this.primaryColor,{h:120}),this.secondaryColor="#ffffde",this.tertiaryColor=Fe(this.primaryColor,{h:-160}),this.primaryBorderColor=zi(this.primaryColor,this.darkMode),this.secondaryBorderColor=zi(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=zi(this.tertiaryColor,this.darkMode),this.primaryTextColor=At(this.primaryColor),this.secondaryTextColor=At(this.secondaryColor),this.tertiaryTextColor=At(this.tertiaryColor),this.lineColor=At(this.background),this.textColor=At(this.background),this.background="white",this.mainBkg="#ECECFF",this.secondBkg="#ffffde",this.lineColor="#333333",this.border1="#9370DB",this.border2="#aaaa33",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="rgba(232,232,232, 0.8)",this.textColor="#333",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="calculated",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="calculated",this.taskTextColor=this.taskTextLightColor,this.taskTextDarkColor="calculated",this.taskTextOutsideColor=this.taskTextDarkColor,this.taskTextClickableColor="calculated",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBorderColor="calculated",this.critBkgColor="calculated",this.todayLineColor="calculated",this.vertLineColor="calculated",this.sectionBkgColor=bs(102,102,255,.49),this.altSectionBkgColor="white",this.sectionBkgColor2="#fff400",this.taskBorderColor="#534fbc",this.taskBkgColor="#8a90dd",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="#534fbc",this.activeTaskBkgColor="#bfc7ff",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.vertLineColor="navy",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.rowOdd="calculated",this.rowEven="calculated",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222",this.updateColors()}updateColors(){this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||Fe(this.primaryColor,{h:30}),this.cScale4=this.cScale4||Fe(this.primaryColor,{h:60}),this.cScale5=this.cScale5||Fe(this.primaryColor,{h:90}),this.cScale6=this.cScale6||Fe(this.primaryColor,{h:120}),this.cScale7=this.cScale7||Fe(this.primaryColor,{h:150}),this.cScale8=this.cScale8||Fe(this.primaryColor,{h:210}),this.cScale9=this.cScale9||Fe(this.primaryColor,{h:270}),this.cScale10=this.cScale10||Fe(this.primaryColor,{h:300}),this.cScale11=this.cScale11||Fe(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||Bt(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||Bt(this.tertiaryColor,40);for(let e=0;e{this[n]==="calculated"&&(this[n]=void 0)}),typeof e!="object"){this.updateColors();return}let r=Object.keys(e);r.forEach(n=>{this[n]=e[n]}),this.updateColors(),r.forEach(n=>{this[n]=e[n]})}},yf=o(t=>{let e=new h8;return e.calculate(t),e},"getThemeVariables")});var f8,lY,cY=O(()=>{"use strict";Ys();g2();lg();f8=class{static{o(this,"Theme")}constructor(){this.background="#f4f4f4",this.primaryColor="#cde498",this.secondaryColor="#cdffb2",this.background="white",this.mainBkg="#cde498",this.secondBkg="#cdffb2",this.lineColor="green",this.border1="#13540c",this.border2="#6eaa49",this.arrowheadColor="green",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.tertiaryColor=Lt("#cde498",10),this.primaryBorderColor=zi(this.primaryColor,this.darkMode),this.secondaryBorderColor=zi(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=zi(this.tertiaryColor,this.darkMode),this.primaryTextColor=At(this.primaryColor),this.secondaryTextColor=At(this.secondaryColor),this.tertiaryTextColor=At(this.primaryColor),this.lineColor=At(this.background),this.textColor=At(this.background),this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#333",this.edgeLabelBackground="#e8e8e8",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="calculated",this.signalColor="#333",this.signalTextColor="#333",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="#326932",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="#6eaa49",this.altSectionBkgColor="white",this.sectionBkgColor2="#6eaa49",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="#487e3a",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.vertLineColor="#00BFFF",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){this.actorBorder=Bt(this.mainBkg,20),this.actorBkg=this.mainBkg,this.labelBoxBkgColor=this.actorBkg,this.labelTextColor=this.actorTextColor,this.loopTextColor=this.actorTextColor,this.noteBorderColor=this.border2,this.noteTextColor=this.actorTextColor,this.actorLineColor=this.actorBorder,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||Fe(this.primaryColor,{h:30}),this.cScale4=this.cScale4||Fe(this.primaryColor,{h:60}),this.cScale5=this.cScale5||Fe(this.primaryColor,{h:90}),this.cScale6=this.cScale6||Fe(this.primaryColor,{h:120}),this.cScale7=this.cScale7||Fe(this.primaryColor,{h:150}),this.cScale8=this.cScale8||Fe(this.primaryColor,{h:210}),this.cScale9=this.cScale9||Fe(this.primaryColor,{h:270}),this.cScale10=this.cScale10||Fe(this.primaryColor,{h:300}),this.cScale11=this.cScale11||Fe(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||Bt(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||Bt(this.tertiaryColor,40);for(let e=0;e{this[n]=e[n]}),this.updateColors(),r.forEach(n=>{this[n]=e[n]})}},lY=o(t=>{let e=new f8;return e.calculate(t),e},"getThemeVariables")});var d8,uY,hY=O(()=>{"use strict";Ys();lg();g2();d8=class{static{o(this,"Theme")}constructor(){this.primaryColor="#eee",this.contrast="#707070",this.secondaryColor=Lt(this.contrast,55),this.background="#ffffff",this.tertiaryColor=Fe(this.primaryColor,{h:-160}),this.primaryBorderColor=zi(this.primaryColor,this.darkMode),this.secondaryBorderColor=zi(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=zi(this.tertiaryColor,this.darkMode),this.primaryTextColor=At(this.primaryColor),this.secondaryTextColor=At(this.secondaryColor),this.tertiaryTextColor=At(this.tertiaryColor),this.lineColor=At(this.background),this.textColor=At(this.background),this.mainBkg="#eee",this.secondBkg="calculated",this.lineColor="#666",this.border1="#999",this.border2="calculated",this.note="#ffa",this.text="#333",this.critical="#d42",this.done="#bbb",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="white",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor=this.actorBorder,this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="calculated",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="white",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBkgColor="calculated",this.critBorderColor="calculated",this.todayLineColor="calculated",this.vertLineColor="calculated",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.rowOdd=this.rowOdd||Lt(this.mainBkg,75)||"#ffffff",this.rowEven=this.rowEven||"#f4f4f4",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){this.secondBkg=Lt(this.contrast,55),this.border2=this.contrast,this.actorBorder=Lt(this.border1,23),this.actorBkg=this.mainBkg,this.actorTextColor=this.text,this.actorLineColor=this.actorBorder,this.signalColor=this.text,this.signalTextColor=this.text,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.text,this.loopTextColor=this.text,this.noteBorderColor="#999",this.noteBkgColor="#666",this.noteTextColor="#fff",this.cScale0=this.cScale0||"#555",this.cScale1=this.cScale1||"#F4F4F4",this.cScale2=this.cScale2||"#555",this.cScale3=this.cScale3||"#BBB",this.cScale4=this.cScale4||"#777",this.cScale5=this.cScale5||"#999",this.cScale6=this.cScale6||"#DDD",this.cScale7=this.cScale7||"#FFF",this.cScale8=this.cScale8||"#DDD",this.cScale9=this.cScale9||"#BBB",this.cScale10=this.cScale10||"#999",this.cScale11=this.cScale11||"#777";for(let e=0;e{this[n]=e[n]}),this.updateColors(),r.forEach(n=>{this[n]=e[n]})}},uY=o(t=>{let e=new d8;return e.calculate(t),e},"getThemeVariables")});var ul,Q3=O(()=>{"use strict";aY();oY();y2();cY();hY();ul={base:{getThemeVariables:iY},dark:{getThemeVariables:sY},default:{getThemeVariables:yf},forest:{getThemeVariables:lY},neutral:{getThemeVariables:uY}}});var Oo,fY=O(()=>{"use strict";Oo={flowchart:{useMaxWidth:!0,titleTopMargin:25,subGraphTitleMargin:{top:0,bottom:0},diagramPadding:8,htmlLabels:null,nodeSpacing:50,rankSpacing:50,curve:"basis",padding:15,defaultRenderer:"dagre-wrapper",wrappingWidth:200,inheritDir:!1},sequence:{useMaxWidth:!0,hideUnusedParticipants:!1,activationWidth:10,diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",mirrorActors:!0,forceMenus:!1,bottomMarginAdj:1,rightAngles:!1,showSequenceNumbers:!1,actorFontSize:14,actorFontFamily:'"Open Sans", sans-serif',actorFontWeight:400,noteFontSize:14,noteFontFamily:'"trebuchet ms", verdana, arial, sans-serif',noteFontWeight:400,noteAlign:"center",messageFontSize:16,messageFontFamily:'"trebuchet ms", verdana, arial, sans-serif',messageFontWeight:400,wrap:!1,wrapPadding:10,labelBoxWidth:50,labelBoxHeight:20},gantt:{useMaxWidth:!0,titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,rightPadding:75,leftPadding:75,gridLineStartPadding:35,fontSize:11,sectionFontSize:11,numberSectionStyles:4,axisFormat:"%Y-%m-%d",topAxis:!1,displayMode:"",weekday:"sunday"},journey:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,maxLabelWidth:360,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"],titleColor:"",titleFontFamily:'"trebuchet ms", verdana, arial, sans-serif',titleFontSize:"4ex"},class:{useMaxWidth:!0,titleTopMargin:25,arrowMarkerAbsolute:!1,dividerMargin:10,padding:5,textHeight:10,defaultRenderer:"dagre-wrapper",htmlLabels:!1,hideEmptyMembersBox:!1},state:{useMaxWidth:!0,titleTopMargin:25,dividerMargin:10,sizeUnit:5,padding:8,textHeight:10,titleShift:-15,noteMargin:10,forkWidth:70,forkHeight:7,miniPadding:2,fontSizeFactor:5.02,fontSize:24,labelHeight:16,edgeLengthFactor:"20",compositTitleSize:35,radius:5,defaultRenderer:"dagre-wrapper"},er:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:20,layoutDirection:"TB",minEntityWidth:100,minEntityHeight:75,entityPadding:15,nodeSpacing:140,rankSpacing:80,stroke:"gray",fill:"honeydew",fontSize:12},pie:{useMaxWidth:!0,textPosition:.75},quadrantChart:{useMaxWidth:!0,chartWidth:500,chartHeight:500,titleFontSize:20,titlePadding:10,quadrantPadding:5,xAxisLabelPadding:5,yAxisLabelPadding:5,xAxisLabelFontSize:16,yAxisLabelFontSize:16,quadrantLabelFontSize:16,quadrantTextTopPadding:5,pointTextPadding:5,pointLabelFontSize:12,pointRadius:5,xAxisPosition:"top",yAxisPosition:"left",quadrantInternalBorderStrokeWidth:1,quadrantExternalBorderStrokeWidth:2},xyChart:{useMaxWidth:!0,width:700,height:500,titleFontSize:20,titlePadding:10,showDataLabel:!1,showTitle:!0,xAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},yAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},chartOrientation:"vertical",plotReservedSpacePercent:50},requirement:{useMaxWidth:!0,rect_fill:"#f9f9f9",text_color:"#333",rect_border_size:"0.5px",rect_border_color:"#bbb",rect_min_width:200,rect_min_height:200,fontSize:14,rect_padding:10,line_height:20},mindmap:{useMaxWidth:!0,padding:10,maxNodeWidth:200,layoutAlgorithm:"cose-bilkent"},ishikawa:{useMaxWidth:!0,diagramPadding:20},kanban:{useMaxWidth:!0,padding:8,sectionWidth:200,ticketBaseUrl:""},timeline:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"],disableMulticolor:!1},gitGraph:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:8,nodeLabel:{width:75,height:100,x:-25,y:0},mainBranchName:"main",mainBranchOrder:0,showCommitLabel:!0,showBranches:!0,rotateCommitLabel:!0,parallelCommits:!1,arrowMarkerAbsolute:!1},c4:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,c4ShapeMargin:50,c4ShapePadding:20,width:216,height:60,boxMargin:10,c4ShapeInRow:4,nextLinePaddingX:0,c4BoundaryInRow:2,personFontSize:14,personFontFamily:'"Open Sans", sans-serif',personFontWeight:"normal",external_personFontSize:14,external_personFontFamily:'"Open Sans", sans-serif',external_personFontWeight:"normal",systemFontSize:14,systemFontFamily:'"Open Sans", sans-serif',systemFontWeight:"normal",external_systemFontSize:14,external_systemFontFamily:'"Open Sans", sans-serif',external_systemFontWeight:"normal",system_dbFontSize:14,system_dbFontFamily:'"Open Sans", sans-serif',system_dbFontWeight:"normal",external_system_dbFontSize:14,external_system_dbFontFamily:'"Open Sans", sans-serif',external_system_dbFontWeight:"normal",system_queueFontSize:14,system_queueFontFamily:'"Open Sans", sans-serif',system_queueFontWeight:"normal",external_system_queueFontSize:14,external_system_queueFontFamily:'"Open Sans", sans-serif',external_system_queueFontWeight:"normal",boundaryFontSize:14,boundaryFontFamily:'"Open Sans", sans-serif',boundaryFontWeight:"normal",messageFontSize:12,messageFontFamily:'"Open Sans", sans-serif',messageFontWeight:"normal",containerFontSize:14,containerFontFamily:'"Open Sans", sans-serif',containerFontWeight:"normal",external_containerFontSize:14,external_containerFontFamily:'"Open Sans", sans-serif',external_containerFontWeight:"normal",container_dbFontSize:14,container_dbFontFamily:'"Open Sans", sans-serif',container_dbFontWeight:"normal",external_container_dbFontSize:14,external_container_dbFontFamily:'"Open Sans", sans-serif',external_container_dbFontWeight:"normal",container_queueFontSize:14,container_queueFontFamily:'"Open Sans", sans-serif',container_queueFontWeight:"normal",external_container_queueFontSize:14,external_container_queueFontFamily:'"Open Sans", sans-serif',external_container_queueFontWeight:"normal",componentFontSize:14,componentFontFamily:'"Open Sans", sans-serif',componentFontWeight:"normal",external_componentFontSize:14,external_componentFontFamily:'"Open Sans", sans-serif',external_componentFontWeight:"normal",component_dbFontSize:14,component_dbFontFamily:'"Open Sans", sans-serif',component_dbFontWeight:"normal",external_component_dbFontSize:14,external_component_dbFontFamily:'"Open Sans", sans-serif',external_component_dbFontWeight:"normal",component_queueFontSize:14,component_queueFontFamily:'"Open Sans", sans-serif',component_queueFontWeight:"normal",external_component_queueFontSize:14,external_component_queueFontFamily:'"Open Sans", sans-serif',external_component_queueFontWeight:"normal",wrap:!0,wrapPadding:10,person_bg_color:"#08427B",person_border_color:"#073B6F",external_person_bg_color:"#686868",external_person_border_color:"#8A8A8A",system_bg_color:"#1168BD",system_border_color:"#3C7FC0",system_db_bg_color:"#1168BD",system_db_border_color:"#3C7FC0",system_queue_bg_color:"#1168BD",system_queue_border_color:"#3C7FC0",external_system_bg_color:"#999999",external_system_border_color:"#8A8A8A",external_system_db_bg_color:"#999999",external_system_db_border_color:"#8A8A8A",external_system_queue_bg_color:"#999999",external_system_queue_border_color:"#8A8A8A",container_bg_color:"#438DD5",container_border_color:"#3C7FC0",container_db_bg_color:"#438DD5",container_db_border_color:"#3C7FC0",container_queue_bg_color:"#438DD5",container_queue_border_color:"#3C7FC0",external_container_bg_color:"#B3B3B3",external_container_border_color:"#A6A6A6",external_container_db_bg_color:"#B3B3B3",external_container_db_border_color:"#A6A6A6",external_container_queue_bg_color:"#B3B3B3",external_container_queue_border_color:"#A6A6A6",component_bg_color:"#85BBF0",component_border_color:"#78A8D8",component_db_bg_color:"#85BBF0",component_db_border_color:"#78A8D8",component_queue_bg_color:"#85BBF0",component_queue_border_color:"#78A8D8",external_component_bg_color:"#CCCCCC",external_component_border_color:"#BFBFBF",external_component_db_bg_color:"#CCCCCC",external_component_db_border_color:"#BFBFBF",external_component_queue_bg_color:"#CCCCCC",external_component_queue_border_color:"#BFBFBF"},sankey:{useMaxWidth:!0,width:600,height:400,linkColor:"gradient",nodeAlignment:"justify",showValues:!0,prefix:"",suffix:""},block:{useMaxWidth:!0,padding:8},packet:{useMaxWidth:!0,rowHeight:32,bitWidth:32,bitsPerRow:32,showBits:!0,paddingX:5,paddingY:5},architecture:{useMaxWidth:!0,padding:40,iconSize:80,fontSize:16},radar:{useMaxWidth:!0,width:600,height:600,marginTop:50,marginRight:50,marginBottom:50,marginLeft:50,axisScaleFactor:1,axisLabelFactor:1.05,curveTension:.17},venn:{useMaxWidth:!0,width:800,height:450,padding:8,useDebugLayout:!1},theme:"default",look:"classic",handDrawnSeed:0,layout:"dagre",maxTextSize:5e4,maxEdges:500,darkMode:!1,fontFamily:'"trebuchet ms", verdana, arial, sans-serif;',logLevel:5,securityLevel:"strict",startOnLoad:!0,arrowMarkerAbsolute:!1,secure:["secure","securityLevel","startOnLoad","maxTextSize","suppressErrorRendering","maxEdges"],legacyMathML:!1,forceLegacyMathML:!1,deterministicIds:!1,fontSize:16,markdownAutoWrap:!0,suppressErrorRendering:!1}});var dY,pY,mY,gr,La=O(()=>{"use strict";Q3();fY();dY={...Oo,deterministicIDSeed:void 0,elk:{mergeEdges:!1,nodePlacementStrategy:"BRANDES_KOEPF",forceNodeModelOrder:!1,considerModelOrder:"NODES_AND_EDGES"},themeCSS:void 0,themeVariables:ul.default.getThemeVariables(),sequence:{...Oo.sequence,messageFont:o(function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},"messageFont"),noteFont:o(function(){return{fontFamily:this.noteFontFamily,fontSize:this.noteFontSize,fontWeight:this.noteFontWeight}},"noteFont"),actorFont:o(function(){return{fontFamily:this.actorFontFamily,fontSize:this.actorFontSize,fontWeight:this.actorFontWeight}},"actorFont")},class:{hideEmptyMembersBox:!1},gantt:{...Oo.gantt,tickInterval:void 0,useWidth:void 0},c4:{...Oo.c4,useWidth:void 0,personFont:o(function(){return{fontFamily:this.personFontFamily,fontSize:this.personFontSize,fontWeight:this.personFontWeight}},"personFont"),flowchart:{...Oo.flowchart,inheritDir:!1},external_personFont:o(function(){return{fontFamily:this.external_personFontFamily,fontSize:this.external_personFontSize,fontWeight:this.external_personFontWeight}},"external_personFont"),systemFont:o(function(){return{fontFamily:this.systemFontFamily,fontSize:this.systemFontSize,fontWeight:this.systemFontWeight}},"systemFont"),external_systemFont:o(function(){return{fontFamily:this.external_systemFontFamily,fontSize:this.external_systemFontSize,fontWeight:this.external_systemFontWeight}},"external_systemFont"),system_dbFont:o(function(){return{fontFamily:this.system_dbFontFamily,fontSize:this.system_dbFontSize,fontWeight:this.system_dbFontWeight}},"system_dbFont"),external_system_dbFont:o(function(){return{fontFamily:this.external_system_dbFontFamily,fontSize:this.external_system_dbFontSize,fontWeight:this.external_system_dbFontWeight}},"external_system_dbFont"),system_queueFont:o(function(){return{fontFamily:this.system_queueFontFamily,fontSize:this.system_queueFontSize,fontWeight:this.system_queueFontWeight}},"system_queueFont"),external_system_queueFont:o(function(){return{fontFamily:this.external_system_queueFontFamily,fontSize:this.external_system_queueFontSize,fontWeight:this.external_system_queueFontWeight}},"external_system_queueFont"),containerFont:o(function(){return{fontFamily:this.containerFontFamily,fontSize:this.containerFontSize,fontWeight:this.containerFontWeight}},"containerFont"),external_containerFont:o(function(){return{fontFamily:this.external_containerFontFamily,fontSize:this.external_containerFontSize,fontWeight:this.external_containerFontWeight}},"external_containerFont"),container_dbFont:o(function(){return{fontFamily:this.container_dbFontFamily,fontSize:this.container_dbFontSize,fontWeight:this.container_dbFontWeight}},"container_dbFont"),external_container_dbFont:o(function(){return{fontFamily:this.external_container_dbFontFamily,fontSize:this.external_container_dbFontSize,fontWeight:this.external_container_dbFontWeight}},"external_container_dbFont"),container_queueFont:o(function(){return{fontFamily:this.container_queueFontFamily,fontSize:this.container_queueFontSize,fontWeight:this.container_queueFontWeight}},"container_queueFont"),external_container_queueFont:o(function(){return{fontFamily:this.external_container_queueFontFamily,fontSize:this.external_container_queueFontSize,fontWeight:this.external_container_queueFontWeight}},"external_container_queueFont"),componentFont:o(function(){return{fontFamily:this.componentFontFamily,fontSize:this.componentFontSize,fontWeight:this.componentFontWeight}},"componentFont"),external_componentFont:o(function(){return{fontFamily:this.external_componentFontFamily,fontSize:this.external_componentFontSize,fontWeight:this.external_componentFontWeight}},"external_componentFont"),component_dbFont:o(function(){return{fontFamily:this.component_dbFontFamily,fontSize:this.component_dbFontSize,fontWeight:this.component_dbFontWeight}},"component_dbFont"),external_component_dbFont:o(function(){return{fontFamily:this.external_component_dbFontFamily,fontSize:this.external_component_dbFontSize,fontWeight:this.external_component_dbFontWeight}},"external_component_dbFont"),component_queueFont:o(function(){return{fontFamily:this.component_queueFontFamily,fontSize:this.component_queueFontSize,fontWeight:this.component_queueFontWeight}},"component_queueFont"),external_component_queueFont:o(function(){return{fontFamily:this.external_component_queueFontFamily,fontSize:this.external_component_queueFontSize,fontWeight:this.external_component_queueFontWeight}},"external_component_queueFont"),boundaryFont:o(function(){return{fontFamily:this.boundaryFontFamily,fontSize:this.boundaryFontSize,fontWeight:this.boundaryFontWeight}},"boundaryFont"),messageFont:o(function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},"messageFont")},pie:{...Oo.pie,useWidth:984},xyChart:{...Oo.xyChart,useWidth:void 0},requirement:{...Oo.requirement,useWidth:void 0},packet:{...Oo.packet},radar:{...Oo.radar},ishikawa:{...Oo.ishikawa},treemap:{useMaxWidth:!0,padding:10,diagramPadding:8,showValues:!0,nodeWidth:100,nodeHeight:40,borderWidth:1,valueFontSize:12,labelFontSize:14,valueFormat:","},venn:{...Oo.venn}},pY=o((t,e="")=>Object.keys(t).reduce((r,n)=>Array.isArray(t[n])?r:typeof t[n]=="object"&&t[n]!==null?[...r,e+n,...pY(t[n],"")]:[...r,e+n],[]),"keyify"),mY=new Set(pY(dY,"")),gr=dY});var cg,g7e,p8=O(()=>{"use strict";La();xt();cg=o(t=>{if(K.debug("sanitizeDirective called with",t),!(typeof t!="object"||t==null)){if(Array.isArray(t)){t.forEach(e=>cg(e));return}for(let e of Object.keys(t)){if(K.debug("Checking key",e),e.startsWith("__")||e.includes("proto")||e.includes("constr")||!mY.has(e)||t[e]==null){K.debug("sanitize deleting key: ",e),delete t[e];continue}if(typeof t[e]=="object"){K.debug("sanitizing object",e),cg(t[e]);continue}let r=["themeCSS","fontFamily","altFontFamily"];for(let n of r)e.includes(n)&&(K.debug("sanitizing css option",e),t[e]=g7e(t[e]))}if(t.themeVariables)for(let e of Object.keys(t.themeVariables)){let r=t.themeVariables[e];r?.match&&!r.match(/^[\d "#%(),.;A-Za-z]+$/)&&(t.themeVariables[e]="")}K.debug("After sanitization",t)}},"sanitizeDirective"),g7e=o(t=>{let e=0,r=0;for(let n of t){if(e{"use strict";sg();xt();Q3();La();p8();vf=Object.freeze(gr),Xs=o(t=>!(t===!1||["false","null","0"].includes(String(t).trim().toLowerCase())),"evaluate"),js=Vn({},vf),Dp=[],v2=Vn({},vf),J3=o((t,e)=>{let r=Vn({},t),n={};for(let i of e)xY(i),n=Vn(n,i);if(r=Vn(r,n),n.theme&&n.theme in ul){let i=Vn({},Z3),a=Vn(i.themeVariables||{},n.themeVariables);r.theme&&r.theme in ul&&(r.themeVariables=ul[r.theme].getThemeVariables(a))}return v2=r,wY(v2),v2},"updateCurrentConfig"),m8=o(t=>(js=Vn({},vf),js=Vn(js,t),t.theme&&ul[t.theme]&&(js.themeVariables=ul[t.theme].getThemeVariables(t.themeVariables)),J3(js,Dp),js),"setSiteConfig"),yY=o(t=>{Z3=Vn({},t)},"saveConfigFromInitialize"),vY=o(t=>(js=Vn(js,t),J3(js,Dp),js),"updateSiteConfig"),g8=o(()=>Vn({},js),"getSiteConfig"),ew=o(t=>(wY(t),Vn(v2,t),Zt()),"setConfig"),Zt=o(()=>Vn({},v2),"getConfig"),xY=o(t=>{t&&(["secure",...js.secure??[]].forEach(e=>{Object.hasOwn(t,e)&&(K.debug(`Denied attempt to modify a secure key ${e}`,t[e]),delete t[e])}),Object.keys(t).forEach(e=>{e.startsWith("__")&&delete t[e]}),Object.keys(t).forEach(e=>{typeof t[e]=="string"&&(t[e].includes("<")||t[e].includes(">")||t[e].includes("url(data:"))&&delete t[e],typeof t[e]=="object"&&xY(t[e])}))},"sanitize"),bY=o(t=>{cg(t),t.fontFamily&&!t.themeVariables?.fontFamily&&(t.themeVariables={...t.themeVariables,fontFamily:t.fontFamily}),Dp.push(t),J3(js,Dp)},"addDirective"),x2=o((t=js)=>{Dp=[],J3(t,Dp)},"reset"),y7e={LAZY_LOAD_DEPRECATED:"The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead.",FLOWCHART_HTML_LABELS_DEPRECATED:"flowchart.htmlLabels is deprecated. Please use global htmlLabels instead."},gY={},TY=o(t=>{gY[t]||(K.warn(y7e[t]),gY[t]=!0)},"issueWarning"),wY=o(t=>{t&&(t.lazyLoadedDiagrams||t.loadExternalDiagramsAtStartup)&&TY("LAZY_LOAD_DEPRECATED")},"checkConfig"),kY=o(()=>{let t={};Z3&&(t=Vn(t,Z3));for(let e of Dp)t=Vn(t,e);return t},"getUserDefinedConfig"),Sr=o(t=>(t.flowchart?.htmlLabels!=null&&TY("FLOWCHART_HTML_LABELS_DEPRECATED"),Xs(t.htmlLabels??t.flowchart?.htmlLabels??!0)),"getEffectiveHtmlLabels")});function ks(t){return function(e){e instanceof RegExp&&(e.lastIndex=0);for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i2&&arguments[2]!==void 0?arguments[2]:nw;EY&&EY(t,null);let n=e.length;for(;n--;){let i=e[n];if(typeof i=="string"){let a=r(i);a!==i&&(v7e(e)||(e[n]=a),i=a)}t[i]=!0}return t}function C7e(t){for(let e=0;e0&&arguments[0]!==void 0?arguments[0]:B7e(),e=o(mt=>OY(mt),"DOMPurify");if(e.version="3.3.1",e.removed=[],!t||!t.document||t.document.nodeType!==E2.document||!t.Element)return e.isSupported=!1,e;let{document:r}=t,n=r,i=n.currentScript,{DocumentFragment:a,HTMLTemplateElement:s,Node:l,Element:u,NodeFilter:h,NamedNodeMap:f=t.NamedNodeMap||t.MozNamedAttrMap,HTMLFormElement:d,DOMParser:p,trustedTypes:m}=t,g=u.prototype,y=k2(g,"cloneNode"),v=k2(g,"remove"),x=k2(g,"nextSibling"),b=k2(g,"childNodes"),T=k2(g,"parentNode");if(typeof s=="function"){let mt=r.createElement("template");mt.content&&mt.content.ownerDocument&&(r=mt.content.ownerDocument)}let E,w="",{implementation:k,createNodeIterator:S,createDocumentFragment:A,getElementsByTagName:L}=r,{importNode:I}=n,N=LY();e.isSupported=typeof NY=="function"&&typeof T=="function"&&k&&k.createHTMLDocument!==void 0;let{MUSTACHE_EXPR:C,ERB_EXPR:_,TMPLIT_EXPR:D,DATA_ATTR:M,ARIA_ATTR:R,IS_SCRIPT_OR_DATA:P,ATTR_WHITESPACE:B,CUSTOM_ELEMENT:F}=RY,{IS_ALLOWED_URI:G}=RY,$=null,V=Xr({},[...CY,...x8,...b8,...T8,...AY]),X=null,Q=Xr({},[..._Y,...w8,...DY,...rw]),H=Object.seal(k8(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),ie=null,Y=null,le=Object.seal(k8(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),ee=!0,J=!0,te=!1,Z=!0,xe=!1,de=!0,Se=!1,Me=!1,ke=!1,we=!1,_e=!1,$e=!1,fe=!0,Ke=!1,Te="user-content-",Be=!0,Ue=!1,Ge={},Ne=null,We=Xr({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),j=null,ae=Xr({},["audio","video","img","source","image","track"]),U=null,ce=Xr({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),z="http://www.w3.org/1998/Math/MathML",ne="http://www.w3.org/2000/svg",se="http://www.w3.org/1999/xhtml",be=se,pe=!1,me=null,Re=Xr({},[z,ne,se],y8),ge=Xr({},["mi","mo","mn","ms","mtext"]),Ie=Xr({},["annotation-xml"]),qe=Xr({},["title","style","font","a","script"]),Pe=null,Xe=["application/xhtml+xml","text/html"],oe="text/html",et=null,he=null,ot=r.createElement("form"),Dt=o(function(Le){return Le instanceof RegExp||Le instanceof Function},"isRegexOrFunction"),It=o(function(){let Le=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(he&&he===Le)){if((!Le||typeof Le!="object")&&(Le={}),Le=zc(Le),Pe=Xe.indexOf(Le.PARSER_MEDIA_TYPE)===-1?oe:Le.PARSER_MEDIA_TYPE,et=Pe==="application/xhtml+xml"?y8:nw,$=Kl(Le,"ALLOWED_TAGS")?Xr({},Le.ALLOWED_TAGS,et):V,X=Kl(Le,"ALLOWED_ATTR")?Xr({},Le.ALLOWED_ATTR,et):Q,me=Kl(Le,"ALLOWED_NAMESPACES")?Xr({},Le.ALLOWED_NAMESPACES,y8):Re,U=Kl(Le,"ADD_URI_SAFE_ATTR")?Xr(zc(ce),Le.ADD_URI_SAFE_ATTR,et):ce,j=Kl(Le,"ADD_DATA_URI_TAGS")?Xr(zc(ae),Le.ADD_DATA_URI_TAGS,et):ae,Ne=Kl(Le,"FORBID_CONTENTS")?Xr({},Le.FORBID_CONTENTS,et):We,ie=Kl(Le,"FORBID_TAGS")?Xr({},Le.FORBID_TAGS,et):zc({}),Y=Kl(Le,"FORBID_ATTR")?Xr({},Le.FORBID_ATTR,et):zc({}),Ge=Kl(Le,"USE_PROFILES")?Le.USE_PROFILES:!1,ee=Le.ALLOW_ARIA_ATTR!==!1,J=Le.ALLOW_DATA_ATTR!==!1,te=Le.ALLOW_UNKNOWN_PROTOCOLS||!1,Z=Le.ALLOW_SELF_CLOSE_IN_ATTR!==!1,xe=Le.SAFE_FOR_TEMPLATES||!1,de=Le.SAFE_FOR_XML!==!1,Se=Le.WHOLE_DOCUMENT||!1,we=Le.RETURN_DOM||!1,_e=Le.RETURN_DOM_FRAGMENT||!1,$e=Le.RETURN_TRUSTED_TYPE||!1,ke=Le.FORCE_BODY||!1,fe=Le.SANITIZE_DOM!==!1,Ke=Le.SANITIZE_NAMED_PROPS||!1,Be=Le.KEEP_CONTENT!==!1,Ue=Le.IN_PLACE||!1,G=Le.ALLOWED_URI_REGEXP||MY,be=Le.NAMESPACE||se,ge=Le.MATHML_TEXT_INTEGRATION_POINTS||ge,Ie=Le.HTML_INTEGRATION_POINTS||Ie,H=Le.CUSTOM_ELEMENT_HANDLING||{},Le.CUSTOM_ELEMENT_HANDLING&&Dt(Le.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(H.tagNameCheck=Le.CUSTOM_ELEMENT_HANDLING.tagNameCheck),Le.CUSTOM_ELEMENT_HANDLING&&Dt(Le.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(H.attributeNameCheck=Le.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),Le.CUSTOM_ELEMENT_HANDLING&&typeof Le.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(H.allowCustomizedBuiltInElements=Le.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),xe&&(J=!1),_e&&(we=!0),Ge&&($=Xr({},AY),X=[],Ge.html===!0&&(Xr($,CY),Xr(X,_Y)),Ge.svg===!0&&(Xr($,x8),Xr(X,w8),Xr(X,rw)),Ge.svgFilters===!0&&(Xr($,b8),Xr(X,w8),Xr(X,rw)),Ge.mathMl===!0&&(Xr($,T8),Xr(X,DY),Xr(X,rw))),Le.ADD_TAGS&&(typeof Le.ADD_TAGS=="function"?le.tagCheck=Le.ADD_TAGS:($===V&&($=zc($)),Xr($,Le.ADD_TAGS,et))),Le.ADD_ATTR&&(typeof Le.ADD_ATTR=="function"?le.attributeCheck=Le.ADD_ATTR:(X===Q&&(X=zc(X)),Xr(X,Le.ADD_ATTR,et))),Le.ADD_URI_SAFE_ATTR&&Xr(U,Le.ADD_URI_SAFE_ATTR,et),Le.FORBID_CONTENTS&&(Ne===We&&(Ne=zc(Ne)),Xr(Ne,Le.FORBID_CONTENTS,et)),Le.ADD_FORBID_CONTENTS&&(Ne===We&&(Ne=zc(Ne)),Xr(Ne,Le.ADD_FORBID_CONTENTS,et)),Be&&($["#text"]=!0),Se&&Xr($,["html","head","body"]),$.table&&(Xr($,["tbody"]),delete ie.tbody),Le.TRUSTED_TYPES_POLICY){if(typeof Le.TRUSTED_TYPES_POLICY.createHTML!="function")throw w2('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof Le.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw w2('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');E=Le.TRUSTED_TYPES_POLICY,w=E.createHTML("")}else E===void 0&&(E=F7e(m,i)),E!==null&&typeof w=="string"&&(w=E.createHTML(""));ws&&ws(Le),he=Le}},"_parseConfig"),wt=Xr({},[...x8,...b8,...A7e]),Rt=Xr({},[...T8,..._7e]),it=o(function(Le){let ct=T(Le);(!ct||!ct.tagName)&&(ct={namespaceURI:be,tagName:"template"});let St=nw(Le.tagName),Mr=nw(ct.tagName);return me[Le.namespaceURI]?Le.namespaceURI===ne?ct.namespaceURI===se?St==="svg":ct.namespaceURI===z?St==="svg"&&(Mr==="annotation-xml"||ge[Mr]):!!wt[St]:Le.namespaceURI===z?ct.namespaceURI===se?St==="math":ct.namespaceURI===ne?St==="math"&&Ie[Mr]:!!Rt[St]:Le.namespaceURI===se?ct.namespaceURI===ne&&!Ie[Mr]||ct.namespaceURI===z&&!ge[Mr]?!1:!Rt[St]&&(qe[St]||!wt[St]):!!(Pe==="application/xhtml+xml"&&me[Le.namespaceURI]):!1},"_checkValidNamespace"),at=o(function(Le){b2(e.removed,{element:Le});try{T(Le).removeChild(Le)}catch{v(Le)}},"_forceRemove"),Ct=o(function(Le,ct){try{b2(e.removed,{attribute:ct.getAttributeNode(Le),from:ct})}catch{b2(e.removed,{attribute:null,from:ct})}if(ct.removeAttribute(Le),Le==="is")if(we||_e)try{at(ct)}catch{}else try{ct.setAttribute(Le,"")}catch{}},"_removeAttribute"),yt=o(function(Le){let ct=null,St=null;if(ke)Le=""+Le;else{let cn=v8(Le,/^[\r\n\t ]+/);St=cn&&cn[0]}Pe==="application/xhtml+xml"&&be===se&&(Le=''+Le+"");let Mr=E?E.createHTML(Le):Le;if(be===se)try{ct=new p().parseFromString(Mr,Pe)}catch{}if(!ct||!ct.documentElement){ct=k.createDocument(be,"template",null);try{ct.documentElement.innerHTML=pe?w:Mr}catch{}}let tn=ct.body||ct.documentElement;return Le&&St&&tn.insertBefore(r.createTextNode(St),tn.childNodes[0]||null),be===se?L.call(ct,Se?"html":"body")[0]:Se?ct.documentElement:tn},"_initDocument"),dt=o(function(Le){return S.call(Le.ownerDocument||Le,Le,h.SHOW_ELEMENT|h.SHOW_COMMENT|h.SHOW_TEXT|h.SHOW_PROCESSING_INSTRUCTION|h.SHOW_CDATA_SECTION,null)},"_createNodeIterator"),Ht=o(function(Le){return Le instanceof d&&(typeof Le.nodeName!="string"||typeof Le.textContent!="string"||typeof Le.removeChild!="function"||!(Le.attributes instanceof f)||typeof Le.removeAttribute!="function"||typeof Le.setAttribute!="function"||typeof Le.namespaceURI!="string"||typeof Le.insertBefore!="function"||typeof Le.hasChildNodes!="function")},"_isClobbered"),cr=o(function(Le){return typeof l=="function"&&Le instanceof l},"_isNode");function Kt(mt,Le,ct){tw(mt,St=>{St.call(e,Le,ct,he)})}o(Kt,"_executeHooks");let kr=o(function(Le){let ct=null;if(Kt(N.beforeSanitizeElements,Le,null),Ht(Le))return at(Le),!0;let St=et(Le.nodeName);if(Kt(N.uponSanitizeElement,Le,{tagName:St,allowedTags:$}),de&&Le.hasChildNodes()&&!cr(Le.firstElementChild)&&Ts(/<[/\w!]/g,Le.innerHTML)&&Ts(/<[/\w!]/g,Le.textContent)||Le.nodeType===E2.progressingInstruction||de&&Le.nodeType===E2.comment&&Ts(/<[/\w]/g,Le.data))return at(Le),!0;if(!(le.tagCheck instanceof Function&&le.tagCheck(St))&&(!$[St]||ie[St])){if(!ie[St]&&tr(St)&&(H.tagNameCheck instanceof RegExp&&Ts(H.tagNameCheck,St)||H.tagNameCheck instanceof Function&&H.tagNameCheck(St)))return!1;if(Be&&!Ne[St]){let Mr=T(Le)||Le.parentNode,tn=b(Le)||Le.childNodes;if(tn&&Mr){let cn=tn.length;for(let Cr=cn-1;Cr>=0;--Cr){let Ki=y(tn[Cr],!0);Ki.__removalCount=(Le.__removalCount||0)+1,Mr.insertBefore(Ki,x(Le))}}}return at(Le),!0}return Le instanceof u&&!it(Le)||(St==="noscript"||St==="noembed"||St==="noframes")&&Ts(/<\/no(script|embed|frames)/i,Le.innerHTML)?(at(Le),!0):(xe&&Le.nodeType===E2.text&&(ct=Le.textContent,tw([C,_,D],Mr=>{ct=T2(ct,Mr," ")}),Le.textContent!==ct&&(b2(e.removed,{element:Le.cloneNode()}),Le.textContent=ct)),Kt(N.afterSanitizeElements,Le,null),!1)},"_sanitizeElements"),ur=o(function(Le,ct,St){if(fe&&(ct==="id"||ct==="name")&&(St in r||St in ot))return!1;if(!(J&&!Y[ct]&&Ts(M,ct))){if(!(ee&&Ts(R,ct))){if(!(le.attributeCheck instanceof Function&&le.attributeCheck(ct,Le))){if(!X[ct]||Y[ct]){if(!(tr(Le)&&(H.tagNameCheck instanceof RegExp&&Ts(H.tagNameCheck,Le)||H.tagNameCheck instanceof Function&&H.tagNameCheck(Le))&&(H.attributeNameCheck instanceof RegExp&&Ts(H.attributeNameCheck,ct)||H.attributeNameCheck instanceof Function&&H.attributeNameCheck(ct,Le))||ct==="is"&&H.allowCustomizedBuiltInElements&&(H.tagNameCheck instanceof RegExp&&Ts(H.tagNameCheck,St)||H.tagNameCheck instanceof Function&&H.tagNameCheck(St))))return!1}else if(!U[ct]){if(!Ts(G,T2(St,B,""))){if(!((ct==="src"||ct==="xlink:href"||ct==="href")&&Le!=="script"&&k7e(St,"data:")===0&&j[Le])){if(!(te&&!Ts(P,T2(St,B,"")))){if(St)return!1}}}}}}}return!0},"_isValidAttribute"),tr=o(function(Le){return Le!=="annotation-xml"&&v8(Le,F)},"_isBasicCustomElement"),hr=o(function(Le){Kt(N.beforeSanitizeAttributes,Le,null);let{attributes:ct}=Le;if(!ct||Ht(Le))return;let St={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:X,forceKeepAttr:void 0},Mr=ct.length;for(;Mr--;){let tn=ct[Mr],{name:cn,namespaceURI:Cr,value:Ki}=tn,Da=et(cn),Dn=Ki,Pt=cn==="value"?Dn:E7e(Dn);if(St.attrName=Da,St.attrValue=Pt,St.keepAttr=!0,St.forceKeepAttr=void 0,Kt(N.uponSanitizeAttribute,Le,St),Pt=St.attrValue,Ke&&(Da==="id"||Da==="name")&&(Ct(cn,Le),Pt=Te+Pt),de&&Ts(/((--!?|])>)|<\/(style|title|textarea)/i,Pt)){Ct(cn,Le);continue}if(Da==="attributename"&&v8(Pt,"href")){Ct(cn,Le);continue}if(St.forceKeepAttr)continue;if(!St.keepAttr){Ct(cn,Le);continue}if(!Z&&Ts(/\/>/i,Pt)){Ct(cn,Le);continue}xe&&tw([C,_,D],Vt=>{Pt=T2(Pt,Vt," ")});let Tt=et(Le.nodeName);if(!ur(Tt,Da,Pt)){Ct(cn,Le);continue}if(E&&typeof m=="object"&&typeof m.getAttributeType=="function"&&!Cr)switch(m.getAttributeType(Tt,Da)){case"TrustedHTML":{Pt=E.createHTML(Pt);break}case"TrustedScriptURL":{Pt=E.createScriptURL(Pt);break}}if(Pt!==Dn)try{Cr?Le.setAttributeNS(Cr,cn,Pt):Le.setAttribute(cn,Pt),Ht(Le)?at(Le):SY(e.removed)}catch{Ct(cn,Le)}}Kt(N.afterSanitizeAttributes,Le,null)},"_sanitizeAttributes"),_n=o(function mt(Le){let ct=null,St=dt(Le);for(Kt(N.beforeSanitizeShadowDOM,Le,null);ct=St.nextNode();)Kt(N.uponSanitizeShadowNode,ct,null),kr(ct),hr(ct),ct.content instanceof a&&mt(ct.content);Kt(N.afterSanitizeShadowDOM,Le,null)},"_sanitizeShadowDOM");return e.sanitize=function(mt){let Le=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},ct=null,St=null,Mr=null,tn=null;if(pe=!mt,pe&&(mt=""),typeof mt!="string"&&!cr(mt))if(typeof mt.toString=="function"){if(mt=mt.toString(),typeof mt!="string")throw w2("dirty is not a string, aborting")}else throw w2("toString is not a function");if(!e.isSupported)return mt;if(Me||It(Le),e.removed=[],typeof mt=="string"&&(Ue=!1),Ue){if(mt.nodeName){let Ki=et(mt.nodeName);if(!$[Ki]||ie[Ki])throw w2("root node is forbidden and cannot be sanitized in-place")}}else if(mt instanceof l)ct=yt(""),St=ct.ownerDocument.importNode(mt,!0),St.nodeType===E2.element&&St.nodeName==="BODY"||St.nodeName==="HTML"?ct=St:ct.appendChild(St);else{if(!we&&!xe&&!Se&&mt.indexOf("<")===-1)return E&&$e?E.createHTML(mt):mt;if(ct=yt(mt),!ct)return we?null:$e?w:""}ct&&ke&&at(ct.firstChild);let cn=dt(Ue?mt:ct);for(;Mr=cn.nextNode();)kr(Mr),hr(Mr),Mr.content instanceof a&&_n(Mr.content);if(Ue)return mt;if(we){if(_e)for(tn=A.call(ct.ownerDocument);ct.firstChild;)tn.appendChild(ct.firstChild);else tn=ct;return(X.shadowroot||X.shadowrootmode)&&(tn=I.call(n,tn,!0)),tn}let Cr=Se?ct.outerHTML:ct.innerHTML;return Se&&$["!doctype"]&&ct.ownerDocument&&ct.ownerDocument.doctype&&ct.ownerDocument.doctype.name&&Ts(IY,ct.ownerDocument.doctype.name)&&(Cr=" +`+Cr),xe&&tw([C,_,D],Ki=>{Cr=T2(Cr,Ki," ")}),E&&$e?E.createHTML(Cr):Cr},e.setConfig=function(){let mt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};It(mt),Me=!0},e.clearConfig=function(){he=null,Me=!1},e.isValidAttribute=function(mt,Le,ct){he||It({});let St=et(mt),Mr=et(Le);return ur(St,Mr,ct)},e.addHook=function(mt,Le){typeof Le=="function"&&b2(N[mt],Le)},e.removeHook=function(mt,Le){if(Le!==void 0){let ct=T7e(N[mt],Le);return ct===-1?void 0:w7e(N[mt],ct,1)[0]}return SY(N[mt])},e.removeHooks=function(mt){N[mt]=[]},e.removeAllHooks=function(){N=LY()},e}var NY,EY,v7e,x7e,b7e,ws,hl,k8,E8,S8,tw,T7e,SY,b2,w7e,nw,y8,v8,T2,k7e,E7e,Kl,Ts,w2,CY,x8,b8,A7e,T8,_7e,AY,_Y,w8,DY,rw,D7e,R7e,L7e,N7e,M7e,MY,I7e,O7e,IY,P7e,RY,E2,B7e,F7e,LY,fl,S2=O(()=>{"use strict";({entries:NY,setPrototypeOf:EY,isFrozen:v7e,getPrototypeOf:x7e,getOwnPropertyDescriptor:b7e}=Object),{freeze:ws,seal:hl,create:k8}=Object,{apply:E8,construct:S8}=typeof Reflect<"u"&&Reflect;ws||(ws=o(function(e){return e},"freeze"));hl||(hl=o(function(e){return e},"seal"));E8||(E8=o(function(e,r){for(var n=arguments.length,i=new Array(n>2?n-2:0),a=2;a1?r-1:0),i=1;i/gm),L7e=hl(/\$\{[\w\W]*/gm),N7e=hl(/^data-[\-\w.\u00B7-\uFFFF]+$/),M7e=hl(/^aria-[\-\w]+$/),MY=hl(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),I7e=hl(/^(?:\w+script|data):/i),O7e=hl(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),IY=hl(/^html$/i),P7e=hl(/^[a-z][.\w]*(-[.\w]+)+$/i),RY=Object.freeze({__proto__:null,ARIA_ATTR:M7e,ATTR_WHITESPACE:O7e,CUSTOM_ELEMENT:P7e,DATA_ATTR:N7e,DOCTYPE_NAME:IY,ERB_EXPR:R7e,IS_ALLOWED_URI:MY,IS_SCRIPT_OR_DATA:I7e,MUSTACHE_EXPR:D7e,TMPLIT_EXPR:L7e}),E2={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,progressingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},B7e=o(function(){return typeof window>"u"?null:window},"getGlobal"),F7e=o(function(e,r){if(typeof e!="object"||typeof e.createPolicy!="function")return null;let n=null,i="data-tt-policy-suffix";r&&r.hasAttribute(i)&&(n=r.getAttribute(i));let a="dompurify"+(n?"#"+n:"");try{return e.createPolicy(a,{createHTML(s){return s},createScriptURL(s){return s}})}catch{return console.warn("TrustedTypes policy "+a+" could not be created."),null}},"_createTrustedTypesPolicy"),LY=o(function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},"_createHooksMap");o(OY,"createDOMPurify");fl=OY()});var dX={};vr(dX,{ParseError:()=>bt,SETTINGS_SCHEMA:()=>D2,__defineFunction:()=>Ot,__defineMacro:()=>ue,__defineSymbol:()=>q,__domTree:()=>fX,__parse:()=>lX,__renderToDomTree:()=>Rw,__renderToHTMLTree:()=>uX,__setFontMetrics:()=>mj,default:()=>_8e,render:()=>pD,renderToString:()=>oX,version:()=>hX});function U7e(t){return String(t).replace(q7e,e=>V7e[e])}function j7e(t){if(t.default)return t.default;var e=t.type,r=Array.isArray(e)?e[0]:e;if(typeof r!="string")return r.enum[0];switch(r){case"boolean":return!1;case"string":return"";case"number":return 0;case"object":return{}}}function t_e(t){for(var e=0;e<$8.length;e++)for(var r=$8[e],n=0;n=i[0]&&t<=i[1])return r.name}return null}function pj(t){for(var e=0;e=mw[e]&&t<=mw[e+1])return!0;return!1}function mj(t,e){qc[t]=e}function Z8(t,e,r){if(!qc[e])throw new Error("Font metrics not found for font: "+e+".");var n=t.charCodeAt(0),i=qc[e][n];if(!i&&t[0]in BY&&(n=BY[t[0]].charCodeAt(0),i=qc[e][n]),!i&&r==="text"&&pj(n)&&(i=qc[e][77]),i)return{depth:i[0],height:i[1],italic:i[2],skew:i[3],width:i[4]}}function f_e(t){var e;if(t>=5?e=0:t>=3?e=1:e=2,!C8[e]){var r=C8[e]={cssEmPerMu:iw.quad[e]/18};for(var n in iw)iw.hasOwnProperty(n)&&(r[n]=iw[n][e])}return C8[e]}function zY(t){if(t instanceof Zs)return t;throw new Error("Expected symbolNode but got "+String(t)+".")}function y_e(t){if(t instanceof Np)return t;throw new Error("Expected span but got "+String(t)+".")}function q(t,e,r,n,i,a){qn[t][i]={font:e,group:r,replace:n},a&&n&&(qn[t][n]=qn[t][i])}function Ot(t){for(var{type:e,names:r,props:n,handler:i,htmlBuilder:a,mathmlBuilder:s}=t,l={type:e,numArgs:n.numArgs,argTypes:n.argTypes,allowedInArgument:!!n.allowedInArgument,allowedInText:!!n.allowedInText,allowedInMath:n.allowedInMath===void 0?!0:n.allowedInMath,numOptionalArgs:n.numOptionalArgs||0,infix:!!n.infix,primitive:!!n.primitive,handler:i},u=0;u0&&(a.push(hw(s,e)),s=[]),a.push(n[l]));s.length>0&&a.push(hw(s,e));var h;r?(h=hw(ea(r,e,!0)),h.classes=["tag"],a.push(h)):i&&a.push(i);var f=oh(["katex-html"],a);if(f.setAttribute("aria-hidden","true"),h){var d=h.children[0];d.style.height=_t(f.height+f.depth),f.depth&&(d.style.verticalAlign=_t(-f.depth))}return f}function Aj(t){return new Lp(t)}function D8(t){if(!t)return!1;if(t.type==="mi"&&t.children.length===1){var e=t.children[0];return e instanceof pl&&e.text==="."}else if(t.type==="mo"&&t.children.length===1&&t.getAttribute("separator")==="true"&&t.getAttribute("lspace")==="0em"&&t.getAttribute("rspace")==="0em"){var r=t.children[0];return r instanceof pl&&r.text===","}else return!1}function WY(t,e,r,n,i){var a=Js(t,r),s;a.length===1&&a[0]instanceof Es&&["mrow","mtable"].includes(a[0].type)?s=a[0]:s=new vt.MathNode("mrow",a);var l=new vt.MathNode("annotation",[new vt.TextNode(e)]);l.setAttribute("encoding","application/x-tex");var u=new vt.MathNode("semantics",[s,l]),h=new vt.MathNode("math",[u]);h.setAttribute("xmlns","http://www.w3.org/1998/Math/MathML"),n&&h.setAttribute("display","block");var f=i?"katex":"katex-mathml";return He.makeSpan([f],[h])}function Ir(t,e){if(!t||t.type!==e)throw new Error("Expected node of type "+e+", but got "+(t?"node of type "+t.type:String(t)));return t}function rD(t){var e=Cw(t);if(!e)throw new Error("Expected node of symbol group type, but got "+(t?"node of type "+t.type:String(t)));return e}function Cw(t){return t&&(t.type==="atom"||x_e.hasOwnProperty(t.type))?t:null}function Lj(t,e){var r=ea(t.body,e,!0);return X_e([t.mclass],r,e)}function Nj(t,e){var r,n=Js(t.body,e);return t.mclass==="minner"?r=new vt.MathNode("mpadded",n):t.mclass==="mord"?t.isCharacterBox?(r=n[0],r.type="mi"):r=new vt.MathNode("mi",n):(t.isCharacterBox?(r=n[0],r.type="mo"):r=new vt.MathNode("mo",n),t.mclass==="mbin"?(r.attributes.lspace="0.22em",r.attributes.rspace="0.22em"):t.mclass==="mpunct"?(r.attributes.lspace="0em",r.attributes.rspace="0.17em"):t.mclass==="mopen"||t.mclass==="mclose"?(r.attributes.lspace="0em",r.attributes.rspace="0em"):t.mclass==="minner"&&(r.attributes.lspace="0.0556em",r.attributes.width="+0.1111em")),r}function Z_e(t,e,r){var n=K_e[t];switch(n){case"\\\\cdrightarrow":case"\\\\cdleftarrow":return r.callFunction(n,[e[0]],[e[1]]);case"\\uparrow":case"\\downarrow":{var i=r.callFunction("\\\\cdleft",[e[0]],[]),a={type:"atom",text:n,mode:"math",family:"rel"},s=r.callFunction("\\Big",[a],[]),l=r.callFunction("\\\\cdright",[e[1]],[]),u={type:"ordgroup",mode:"math",body:[i,s,l]};return r.callFunction("\\\\cdparent",[u],[])}case"\\\\cdlongequal":return r.callFunction("\\\\cdlongequal",[],[]);case"\\Vert":{var h={type:"textord",text:"\\Vert",mode:"math"};return r.callFunction("\\Big",[h],[])}default:return{type:"textord",text:" ",mode:"math"}}}function J_e(t){var e=[];for(t.gullet.beginGroup(),t.gullet.macros.set("\\cr","\\\\\\relax"),t.gullet.beginGroup();;){e.push(t.parseExpression(!1,"\\\\")),t.gullet.endGroup(),t.gullet.beginGroup();var r=t.fetch().text;if(r==="&"||r==="\\\\")t.consume();else if(r==="\\end"){e[e.length-1].length===0&&e.pop();break}else throw new bt("Expected \\\\ or \\cr or \\end",t.nextToken)}for(var n=[],i=[n],a=0;a-1))if("<>AV".indexOf(h)>-1)for(var d=0;d<2;d++){for(var p=!0,m=u+1;mAV=|." after @',s[u]);var g=Z_e(h,f,t),y={type:"styling",body:[g],mode:"math",style:"display"};n.push(y),l=HY()}a%2===0?n.push(l):n.shift(),n=[],i.push(n)}t.gullet.endGroup(),t.gullet.endGroup();var v=new Array(i[0].length).fill({type:"align",align:"c",pregap:.25,postgap:.25});return{type:"array",mode:"math",body:i,arraystretch:1,addJot:!0,rowGaps:[null],cols:v,colSeparationType:"CD",hLinesBeforeRow:new Array(i.length+1).fill([])}}function _w(t,e){var r=Cw(t);if(r&&f8e.includes(r.text))return r;throw r?new bt("Invalid delimiter '"+r.text+"' after '"+e.funcName+"'",t):new bt("Invalid delimiter type '"+t.type+"'",t)}function XY(t){if(!t.body)throw new Error("Bug: The leftright ParseNode wasn't fully parsed.")}function Wc(t){for(var{type:e,names:r,props:n,handler:i,htmlBuilder:a,mathmlBuilder:s}=t,l={type:e,numArgs:n.numArgs||0,allowedInText:!1,numOptionalArgs:0,handler:i},u=0;u1||!f)&&y.pop(),x.length{"use strict";Qs=class t{static{o(this,"SourceLocation")}constructor(e,r,n){this.lexer=void 0,this.start=void 0,this.end=void 0,this.lexer=e,this.start=r,this.end=n}static range(e,r){return r?!e||!e.loc||!r.loc||e.loc.lexer!==r.loc.lexer?null:new t(e.loc.lexer,e.loc.start,r.loc.end):e&&e.loc}},Po=class t{static{o(this,"Token")}constructor(e,r){this.text=void 0,this.loc=void 0,this.noexpand=void 0,this.treatAsRelax=void 0,this.text=e,this.loc=r}range(e,r){return new t(r,Qs.range(this,e))}},bt=class t{static{o(this,"ParseError")}constructor(e,r){this.name=void 0,this.position=void 0,this.length=void 0,this.rawMessage=void 0;var n="KaTeX parse error: "+e,i,a,s=r&&r.loc;if(s&&s.start<=s.end){var l=s.lexer.input;i=s.start,a=s.end,i===l.length?n+=" at end of input: ":n+=" at position "+(i+1)+": ";var u=l.slice(i,a).replace(/[^]/g,"$&\u0332"),h;i>15?h="\u2026"+l.slice(i-15,i):h=l.slice(0,i);var f;a+15":">","<":"<",'"':""","'":"'"},q7e=/[&><"']/g;o(U7e,"escape");dj=o(function t(e){return e.type==="ordgroup"||e.type==="color"?e.body.length===1?t(e.body[0]):e:e.type==="font"?t(e.body):e},"getBaseElem"),W7e=o(function(e){var r=dj(e);return r.type==="mathord"||r.type==="textord"||r.type==="atom"},"isCharacterBox"),H7e=o(function(e){if(!e)throw new Error("Expected non-null, but got "+String(e));return e},"assert"),Y7e=o(function(e){var r=/^[\x00-\x20]*([^\\/#?]*?)(:|�*58|�*3a|&colon)/i.exec(e);return r?r[2]!==":"||!/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(r[1])?null:r[1].toLowerCase():"_relative"},"protocolFromUrl"),un={deflt:$7e,escape:U7e,hyphenate:G7e,getBaseElem:dj,isCharacterBox:W7e,protocolFromUrl:Y7e},D2={displayMode:{type:"boolean",description:"Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.",cli:"-d, --display-mode"},output:{type:{enum:["htmlAndMathml","html","mathml"]},description:"Determines the markup language of the output.",cli:"-F, --format "},leqno:{type:"boolean",description:"Render display math in leqno style (left-justified tags)."},fleqn:{type:"boolean",description:"Render display math flush left."},throwOnError:{type:"boolean",default:!0,cli:"-t, --no-throw-on-error",cliDescription:"Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error."},errorColor:{type:"string",default:"#cc0000",cli:"-c, --error-color ",cliDescription:"A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.",cliProcessor:o(t=>"#"+t,"cliProcessor")},macros:{type:"object",cli:"-m, --macro ",cliDescription:"Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:o((t,e)=>(e.push(t),e),"cliProcessor")},minRuleThickness:{type:"number",description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:o(t=>Math.max(0,t),"processor"),cli:"--min-rule-thickness ",cliProcessor:parseFloat},colorIsTextColor:{type:"boolean",description:"Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.",cli:"-b, --color-is-text-color"},strict:{type:[{enum:["warn","ignore","error"]},"boolean","function"],description:"Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.",cli:"-S, --strict",cliDefault:!1},trust:{type:["boolean","function"],description:"Trust the input, enabling all HTML features such as \\url.",cli:"-T, --trust"},maxSize:{type:"number",default:1/0,description:"If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large",processor:o(t=>Math.max(0,t),"processor"),cli:"-s, --max-size ",cliProcessor:parseInt},maxExpand:{type:"number",default:1e3,description:"Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.",processor:o(t=>Math.max(0,t),"processor"),cli:"-e, --max-expand ",cliProcessor:o(t=>t==="Infinity"?1/0:parseInt(t),"cliProcessor")},globalGroup:{type:"boolean",cli:!1}};o(j7e,"getDefaultValue");L2=class{static{o(this,"Settings")}constructor(e){this.displayMode=void 0,this.output=void 0,this.leqno=void 0,this.fleqn=void 0,this.throwOnError=void 0,this.errorColor=void 0,this.macros=void 0,this.minRuleThickness=void 0,this.colorIsTextColor=void 0,this.strict=void 0,this.trust=void 0,this.maxSize=void 0,this.maxExpand=void 0,this.globalGroup=void 0,e=e||{};for(var r in D2)if(D2.hasOwnProperty(r)){var n=D2[r];this[r]=e[r]!==void 0?n.processor?n.processor(e[r]):e[r]:j7e(n)}}reportNonstrict(e,r,n){var i=this.strict;if(typeof i=="function"&&(i=i(e,r,n)),!(!i||i==="ignore")){if(i===!0||i==="error")throw new bt("LaTeX-incompatible input and strict mode is set to 'error': "+(r+" ["+e+"]"),n);i==="warn"?typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(r+" ["+e+"]")):typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+i+"': "+r+" ["+e+"]"))}}useStrictBehavior(e,r,n){var i=this.strict;if(typeof i=="function")try{i=i(e,r,n)}catch{i="error"}return!i||i==="ignore"?!1:i===!0||i==="error"?!0:i==="warn"?(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(r+" ["+e+"]")),!1):(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+i+"': "+r+" ["+e+"]")),!1)}isTrusted(e){if(e.url&&!e.protocol){var r=un.protocolFromUrl(e.url);if(r==null)return!1;e.protocol=r}var n=typeof this.trust=="function"?this.trust(e):this.trust;return!!n}},Gc=class{static{o(this,"Style")}constructor(e,r,n){this.id=void 0,this.size=void 0,this.cramped=void 0,this.id=e,this.size=r,this.cramped=n}sup(){return Vc[X7e[this.id]]}sub(){return Vc[K7e[this.id]]}fracNum(){return Vc[Q7e[this.id]]}fracDen(){return Vc[Z7e[this.id]]}cramp(){return Vc[J7e[this.id]]}text(){return Vc[e_e[this.id]]}isTight(){return this.size>=2}},Q8=0,gw=1,fg=2,ah=3,N2=4,dl=5,dg=6,Ss=7,Vc=[new Gc(Q8,0,!1),new Gc(gw,0,!0),new Gc(fg,1,!1),new Gc(ah,1,!0),new Gc(N2,2,!1),new Gc(dl,2,!0),new Gc(dg,3,!1),new Gc(Ss,3,!0)],X7e=[N2,dl,N2,dl,dg,Ss,dg,Ss],K7e=[dl,dl,dl,dl,Ss,Ss,Ss,Ss],Q7e=[fg,ah,N2,dl,dg,Ss,dg,Ss],Z7e=[ah,ah,dl,dl,Ss,Ss,Ss,Ss],J7e=[gw,gw,ah,ah,dl,dl,Ss,Ss],e_e=[Q8,gw,fg,ah,fg,ah,fg,ah],dr={DISPLAY:Vc[Q8],TEXT:Vc[fg],SCRIPT:Vc[N2],SCRIPTSCRIPT:Vc[dg]},$8=[{name:"latin",blocks:[[256,591],[768,879]]},{name:"cyrillic",blocks:[[1024,1279]]},{name:"armenian",blocks:[[1328,1423]]},{name:"brahmic",blocks:[[2304,4255]]},{name:"georgian",blocks:[[4256,4351]]},{name:"cjk",blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:"hangul",blocks:[[44032,55215]]}];o(t_e,"scriptFromCodepoint");mw=[];$8.forEach(t=>t.blocks.forEach(e=>mw.push(...e)));o(pj,"supportedCodepoint");hg=80,r_e=o(function(e,r){return"M95,"+(622+e+r)+` +c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14 +c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54 +c44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10 +s173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429 +c69,-144,104.5,-217.7,106.5,-221 +l`+e/2.075+" -"+e+` +c5.3,-9.3,12,-14,20,-14 +H400000v`+(40+e)+`H845.2724 +s-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7 +c-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z +M`+(834+e)+" "+r+"h400000v"+(40+e)+"h-400000z"},"sqrtMain"),n_e=o(function(e,r){return"M263,"+(601+e+r)+`c0.7,0,18,39.7,52,119 +c34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120 +c340,-704.7,510.7,-1060.3,512,-1067 +l`+e/2.084+" -"+e+` +c4.7,-7.3,11,-11,19,-11 +H40000v`+(40+e)+`H1012.3 +s-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232 +c-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1 +s-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26 +c-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z +M`+(1001+e)+" "+r+"h400000v"+(40+e)+"h-400000z"},"sqrtSize1"),i_e=o(function(e,r){return"M983 "+(10+e+r)+` +l`+e/3.13+" -"+e+` +c4,-6.7,10,-10,18,-10 H400000v`+(40+e)+` +H1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7 +s-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744 +c-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30 +c26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722 +c56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5 +c53.7,-170.3,84.5,-266.8,92.5,-289.5z +M`+(1001+e)+" "+r+"h400000v"+(40+e)+"h-400000z"},"sqrtSize2"),a_e=o(function(e,r){return"M424,"+(2398+e+r)+` +c-1.3,-0.7,-38.5,-172,-111.5,-514c-73,-342,-109.8,-513.3,-110.5,-514 +c0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,25c-5.7,9.3,-9.8,16,-12.5,20 +s-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,-13s76,-122,76,-122s77,-121,77,-121 +s209,968,209,968c0,-2,84.7,-361.7,254,-1079c169.3,-717.3,254.7,-1077.7,256,-1081 +l`+e/4.223+" -"+e+`c4,-6.7,10,-10,18,-10 H400000 +v`+(40+e)+`H1014.6 +s-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185 +c-2,6,-10,9,-24,9 +c-8,0,-12,-0.7,-12,-2z M`+(1001+e)+" "+r+` +h400000v`+(40+e)+"h-400000z"},"sqrtSize3"),s_e=o(function(e,r){return"M473,"+(2713+e+r)+` +c339.3,-1799.3,509.3,-2700,510,-2702 l`+e/5.298+" -"+e+` +c3.3,-7.3,9.3,-11,18,-11 H400000v`+(40+e)+`H1017.7 +s-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9 +c-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200 +c0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26 +s76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104, +606zM`+(1001+e)+" "+r+"h400000v"+(40+e)+"H1017.7z"},"sqrtSize4"),o_e=o(function(e){var r=e/2;return"M400000 "+e+" H0 L"+r+" 0 l65 45 L145 "+(e-80)+" H400000z"},"phasePath"),l_e=o(function(e,r,n){var i=n-54-r-e;return"M702 "+(e+r)+"H400000"+(40+e)+` +H742v`+i+`l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1 +h-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170 +c-4-3.333-8.333-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667 +219 661 l218 661zM702 `+r+"H400000v"+(40+e)+"H742z"},"sqrtTall"),c_e=o(function(e,r,n){r=1e3*r;var i="";switch(e){case"sqrtMain":i=r_e(r,hg);break;case"sqrtSize1":i=n_e(r,hg);break;case"sqrtSize2":i=i_e(r,hg);break;case"sqrtSize3":i=a_e(r,hg);break;case"sqrtSize4":i=s_e(r,hg);break;case"sqrtTall":i=l_e(r,hg,n)}return i},"sqrtPath"),u_e=o(function(e,r){switch(e){case"\u239C":return"M291 0 H417 V"+r+" H291z M291 0 H417 V"+r+" H291z";case"\u2223":return"M145 0 H188 V"+r+" H145z M145 0 H188 V"+r+" H145z";case"\u2225":return"M145 0 H188 V"+r+" H145z M145 0 H188 V"+r+" H145z"+("M367 0 H410 V"+r+" H367z M367 0 H410 V"+r+" H367z");case"\u239F":return"M457 0 H583 V"+r+" H457z M457 0 H583 V"+r+" H457z";case"\u23A2":return"M319 0 H403 V"+r+" H319z M319 0 H403 V"+r+" H319z";case"\u23A5":return"M263 0 H347 V"+r+" H263z M263 0 H347 V"+r+" H263z";case"\u23AA":return"M384 0 H504 V"+r+" H384z M384 0 H504 V"+r+" H384z";case"\u23D0":return"M312 0 H355 V"+r+" H312z M312 0 H355 V"+r+" H312z";case"\u2016":return"M257 0 H300 V"+r+" H257z M257 0 H300 V"+r+" H257z"+("M478 0 H521 V"+r+" H478z M478 0 H521 V"+r+" H478z");default:return""}},"innerPath"),PY={doubleleftarrow:`M262 157 +l10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3 + 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28 + 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5 +c2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5 + 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87 +-86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7 +-2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z +m8 0v40h399730v-40zm0 194v40h399730v-40z`,doublerightarrow:`M399738 392l +-10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5 + 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88 +-33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68 +-17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18 +-13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782 +c-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3 +-107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z`,leftarrow:`M400000 241H110l3-3c68.7-52.7 113.7-120 + 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8 +-5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247 +c-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208 + 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3 + 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202 + l-3-3h399890zM100 241v40h399900v-40z`,leftbrace:`M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117 +-45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7 + 5-6 9-10 13-.7 1-7.3 1-20 1H6z`,leftbraceunder:`M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13 + 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688 + 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7 +-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z`,leftgroup:`M400000 80 +H435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0 + 435 0h399565z`,leftgroupunder:`M400000 262 +H435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219 + 435 219h399565z`,leftharpoon:`M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3 +-3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5 +-18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7 +-196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z`,leftharpoonplus:`M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5 + 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3 +-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7 +-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z +m0 0v40h400000v-40z`,leftharpoondown:`M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333 + 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5 + 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667 +-152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z`,leftharpoondownplus:`M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12 + 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7 +-2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0 +v40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z`,lefthook:`M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5 +-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3 +-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21 + 71.5 23h399859zM103 281v-40h399897v40z`,leftlinesegment:`M40 281 V428 H0 V94 H40 V241 H400000 v40z +M40 281 V428 H0 V94 H40 V241 H400000 v40z`,leftmapsto:`M40 281 V448H0V74H40V241H400000v40z +M40 281 V448H0V74H40V241H400000v40z`,leftToFrom:`M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23 +-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8 +c28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3 + 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z`,longequal:`M0 50 h400000 v40H0z m0 194h40000v40H0z +M0 50 h400000 v40H0z m0 194h40000v40H0z`,midbrace:`M200428 334 +c-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14 +-53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7 + 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11 + 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z`,midbraceunder:`M199572 214 +c100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14 + 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3 + 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0 +-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z`,oiintSize1:`M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6 +-320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z +m368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8 +60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z`,oiintSize2:`M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8 +-451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z +m502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2 +c0 110 84 276 504 276s502.4-166 502.4-276z`,oiiintSize1:`M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6 +-480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z +m525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0 +85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z`,oiiintSize2:`M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8 +-707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z +m770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1 +c0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z`,rightarrow:`M0 241v40h399891c-47.3 35.3-84 78-110 128 +-16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 + 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 + 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85 +-40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5 +-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67 + 151.7 139 205zm0 0v40h399900v-40z`,rightbrace:`M400000 542l +-6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5 +s-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1 +c124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z`,rightbraceunder:`M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3 + 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237 +-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z`,rightgroup:`M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0 + 3-1 3-3v-38c-76-158-257-219-435-219H0z`,rightgroupunder:`M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18 + 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z`,rightharpoon:`M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3 +-3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2 +-10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 + 69.2 92 94.5zm0 0v40h399900v-40z`,rightharpoonplus:`M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11 +-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7 + 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z +m0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z`,rightharpoondown:`M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8 + 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5 +-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95 +-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z`,rightharpoondownplus:`M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8 + 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 + 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3 +-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z +m0-194v40h400000v-40zm0 0v40h400000v-40z`,righthook:`M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3 + 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0 +-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21 + 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z`,rightlinesegment:`M399960 241 V94 h40 V428 h-40 V281 H0 v-40z +M399960 241 V94 h40 V428 h-40 V281 H0 v-40z`,rightToFrom:`M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23 + 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32 +-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142 +-167z M100 147v40h399900v-40zM0 341v40h399900v-40z`,twoheadleftarrow:`M0 167c68 40 + 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69 +-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3 +-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19 +-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101 + 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z`,twoheadrightarrow:`M400000 167 +c-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3 + 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42 + 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333 +-19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70 + 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z`,tilde1:`M200 55.538c-77 0-168 73.953-177 73.953-3 0-7 +-2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0 + 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0 + 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128 +-68.267.847-113-73.952-191-73.952z`,tilde2:`M344 55.266c-142 0-300.638 81.316-311.5 86.418 +-8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9 + 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114 +c1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751 + 181.476 676 181.476c-149 0-189-126.21-332-126.21z`,tilde3:`M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457 +-11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0 + 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697 + 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696 + -338 0-409-156.573-744-156.573z`,tilde4:`M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345 +-11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409 + 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9 + 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409 + -175.236-744-175.236z`,vec:`M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5 +3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11 +10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63 +-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1 +-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59 +H213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359 +c-16-25.333-24-45-24-59z`,widehat1:`M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22 +c-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z`,widehat2:`M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10 +-11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widehat3:`M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10 +-11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widehat4:`M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10 +-11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widecheck1:`M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1, +-5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z`,widecheck2:`M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, +-11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,widecheck3:`M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, +-11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,widecheck4:`M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, +-11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,baraboveleftarrow:`M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202 +c4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5 +c-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130 +s-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47 +121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6 +s2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11 +c0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z +M100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z`,rightarrowabovebar:`M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32 +-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0 +13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39 +-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5 +-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5 +-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67 +151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z`,baraboveshortleftharpoon:`M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11 +c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17 +c2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21 +c-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40 +c-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z +M0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z`,rightharpoonaboveshortbar:`M0,241 l0,40c399126,0,399993,0,399993,0 +c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199, +-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6 +c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z +M0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z`,shortbaraboveleftharpoon:`M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11 +c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9, +1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7, +-152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z +M93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z`,shortrightharpoonabovebar:`M53,241l0,40c398570,0,399437,0,399437,0 +c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199, +-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6 +c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z +M500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z`},h_e=o(function(e,r){switch(e){case"lbrack":return"M403 1759 V84 H666 V0 H319 V1759 v"+r+` v1759 h347 v-84 +H403z M403 1759 V0 H319 V1759 v`+r+" v1759 h84z";case"rbrack":return"M347 1759 V0 H0 V84 H263 V1759 v"+r+` v1759 H0 v84 H347z +M347 1759 V0 H263 V1759 v`+r+" v1759 h84z";case"vert":return"M145 15 v585 v"+r+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-r+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+r+" v585 h43z";case"doublevert":return"M145 15 v585 v"+r+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-r+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+r+` v585 h43z +M367 15 v585 v`+r+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-r+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M410 15 H367 v585 v`+r+" v585 h43z";case"lfloor":return"M319 602 V0 H403 V602 v"+r+` v1715 h263 v84 H319z +MM319 602 V0 H403 V602 v`+r+" v1715 H319z";case"rfloor":return"M319 602 V0 H403 V602 v"+r+` v1799 H0 v-84 H319z +MM319 602 V0 H403 V602 v`+r+" v1715 H319z";case"lceil":return"M403 1759 V84 H666 V0 H319 V1759 v"+r+` v602 h84z +M403 1759 V0 H319 V1759 v`+r+" v602 h84z";case"rceil":return"M347 1759 V0 H0 V84 H263 V1759 v"+r+` v602 h84z +M347 1759 V0 h-84 V1759 v`+r+" v602 h84z";case"lparen":return`M863,9c0,-2,-2,-5,-6,-9c0,0,-17,0,-17,0c-12.7,0,-19.3,0.3,-20,1 +c-5.3,5.3,-10.3,11,-15,17c-242.7,294.7,-395.3,682,-458,1162c-21.3,163.3,-33.3,349, +-36,557 l0,`+(r+84)+`c0.2,6,0,26,0,60c2,159.3,10,310.7,24,454c53.3,528,210, +949.7,470,1265c4.7,6,9.7,11.7,15,17c0.7,0.7,7,1,19,1c0,0,18,0,18,0c4,-4,6,-7,6,-9 +c0,-2.7,-3.3,-8.7,-10,-18c-135.3,-192.7,-235.5,-414.3,-300.5,-665c-65,-250.7,-102.5, +-544.7,-112.5,-882c-2,-104,-3,-167,-3,-189 +l0,-`+(r+92)+`c0,-162.7,5.7,-314,17,-454c20.7,-272,63.7,-513,129,-723c65.3, +-210,155.3,-396.3,270,-559c6.7,-9.3,10,-15.3,10,-18z`;case"rparen":return`M76,0c-16.7,0,-25,3,-25,9c0,2,2,6.3,6,13c21.3,28.7,42.3,60.3, +63,95c96.7,156.7,172.8,332.5,228.5,527.5c55.7,195,92.8,416.5,111.5,664.5 +c11.3,139.3,17,290.7,17,454c0,28,1.7,43,3.3,45l0,`+(r+9)+` +c-3,4,-3.3,16.7,-3.3,38c0,162,-5.7,313.7,-17,455c-18.7,248,-55.8,469.3,-111.5,664 +c-55.7,194.7,-131.8,370.3,-228.5,527c-20.7,34.7,-41.7,66.3,-63,95c-2,3.3,-4,7,-6,11 +c0,7.3,5.7,11,17,11c0,0,11,0,11,0c9.3,0,14.3,-0.3,15,-1c5.3,-5.3,10.3,-11,15,-17 +c242.7,-294.7,395.3,-681.7,458,-1161c21.3,-164.7,33.3,-350.7,36,-558 +l0,-`+(r+144)+`c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7, +-470,-1265c-4.7,-6,-9.7,-11.7,-15,-17c-0.7,-0.7,-6.7,-1,-18,-1z`;default:throw new Error("Unknown stretchy delimiter.")}},"tallDelim"),Lp=class{static{o(this,"DocumentFragment")}constructor(e){this.children=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.children=e,this.classes=[],this.height=0,this.depth=0,this.maxFontSize=0,this.style={}}hasClass(e){return this.classes.includes(e)}toNode(){for(var e=document.createDocumentFragment(),r=0;rr.toText(),"toText");return this.children.map(e).join("")}},qc={"AMS-Regular":{32:[0,0,0,0,.25],65:[0,.68889,0,0,.72222],66:[0,.68889,0,0,.66667],67:[0,.68889,0,0,.72222],68:[0,.68889,0,0,.72222],69:[0,.68889,0,0,.66667],70:[0,.68889,0,0,.61111],71:[0,.68889,0,0,.77778],72:[0,.68889,0,0,.77778],73:[0,.68889,0,0,.38889],74:[.16667,.68889,0,0,.5],75:[0,.68889,0,0,.77778],76:[0,.68889,0,0,.66667],77:[0,.68889,0,0,.94445],78:[0,.68889,0,0,.72222],79:[.16667,.68889,0,0,.77778],80:[0,.68889,0,0,.61111],81:[.16667,.68889,0,0,.77778],82:[0,.68889,0,0,.72222],83:[0,.68889,0,0,.55556],84:[0,.68889,0,0,.66667],85:[0,.68889,0,0,.72222],86:[0,.68889,0,0,.72222],87:[0,.68889,0,0,1],88:[0,.68889,0,0,.72222],89:[0,.68889,0,0,.72222],90:[0,.68889,0,0,.66667],107:[0,.68889,0,0,.55556],160:[0,0,0,0,.25],165:[0,.675,.025,0,.75],174:[.15559,.69224,0,0,.94666],240:[0,.68889,0,0,.55556],295:[0,.68889,0,0,.54028],710:[0,.825,0,0,2.33334],732:[0,.9,0,0,2.33334],770:[0,.825,0,0,2.33334],771:[0,.9,0,0,2.33334],989:[.08167,.58167,0,0,.77778],1008:[0,.43056,.04028,0,.66667],8245:[0,.54986,0,0,.275],8463:[0,.68889,0,0,.54028],8487:[0,.68889,0,0,.72222],8498:[0,.68889,0,0,.55556],8502:[0,.68889,0,0,.66667],8503:[0,.68889,0,0,.44445],8504:[0,.68889,0,0,.66667],8513:[0,.68889,0,0,.63889],8592:[-.03598,.46402,0,0,.5],8594:[-.03598,.46402,0,0,.5],8602:[-.13313,.36687,0,0,1],8603:[-.13313,.36687,0,0,1],8606:[.01354,.52239,0,0,1],8608:[.01354,.52239,0,0,1],8610:[.01354,.52239,0,0,1.11111],8611:[.01354,.52239,0,0,1.11111],8619:[0,.54986,0,0,1],8620:[0,.54986,0,0,1],8621:[-.13313,.37788,0,0,1.38889],8622:[-.13313,.36687,0,0,1],8624:[0,.69224,0,0,.5],8625:[0,.69224,0,0,.5],8630:[0,.43056,0,0,1],8631:[0,.43056,0,0,1],8634:[.08198,.58198,0,0,.77778],8635:[.08198,.58198,0,0,.77778],8638:[.19444,.69224,0,0,.41667],8639:[.19444,.69224,0,0,.41667],8642:[.19444,.69224,0,0,.41667],8643:[.19444,.69224,0,0,.41667],8644:[.1808,.675,0,0,1],8646:[.1808,.675,0,0,1],8647:[.1808,.675,0,0,1],8648:[.19444,.69224,0,0,.83334],8649:[.1808,.675,0,0,1],8650:[.19444,.69224,0,0,.83334],8651:[.01354,.52239,0,0,1],8652:[.01354,.52239,0,0,1],8653:[-.13313,.36687,0,0,1],8654:[-.13313,.36687,0,0,1],8655:[-.13313,.36687,0,0,1],8666:[.13667,.63667,0,0,1],8667:[.13667,.63667,0,0,1],8669:[-.13313,.37788,0,0,1],8672:[-.064,.437,0,0,1.334],8674:[-.064,.437,0,0,1.334],8705:[0,.825,0,0,.5],8708:[0,.68889,0,0,.55556],8709:[.08167,.58167,0,0,.77778],8717:[0,.43056,0,0,.42917],8722:[-.03598,.46402,0,0,.5],8724:[.08198,.69224,0,0,.77778],8726:[.08167,.58167,0,0,.77778],8733:[0,.69224,0,0,.77778],8736:[0,.69224,0,0,.72222],8737:[0,.69224,0,0,.72222],8738:[.03517,.52239,0,0,.72222],8739:[.08167,.58167,0,0,.22222],8740:[.25142,.74111,0,0,.27778],8741:[.08167,.58167,0,0,.38889],8742:[.25142,.74111,0,0,.5],8756:[0,.69224,0,0,.66667],8757:[0,.69224,0,0,.66667],8764:[-.13313,.36687,0,0,.77778],8765:[-.13313,.37788,0,0,.77778],8769:[-.13313,.36687,0,0,.77778],8770:[-.03625,.46375,0,0,.77778],8774:[.30274,.79383,0,0,.77778],8776:[-.01688,.48312,0,0,.77778],8778:[.08167,.58167,0,0,.77778],8782:[.06062,.54986,0,0,.77778],8783:[.06062,.54986,0,0,.77778],8785:[.08198,.58198,0,0,.77778],8786:[.08198,.58198,0,0,.77778],8787:[.08198,.58198,0,0,.77778],8790:[0,.69224,0,0,.77778],8791:[.22958,.72958,0,0,.77778],8796:[.08198,.91667,0,0,.77778],8806:[.25583,.75583,0,0,.77778],8807:[.25583,.75583,0,0,.77778],8808:[.25142,.75726,0,0,.77778],8809:[.25142,.75726,0,0,.77778],8812:[.25583,.75583,0,0,.5],8814:[.20576,.70576,0,0,.77778],8815:[.20576,.70576,0,0,.77778],8816:[.30274,.79383,0,0,.77778],8817:[.30274,.79383,0,0,.77778],8818:[.22958,.72958,0,0,.77778],8819:[.22958,.72958,0,0,.77778],8822:[.1808,.675,0,0,.77778],8823:[.1808,.675,0,0,.77778],8828:[.13667,.63667,0,0,.77778],8829:[.13667,.63667,0,0,.77778],8830:[.22958,.72958,0,0,.77778],8831:[.22958,.72958,0,0,.77778],8832:[.20576,.70576,0,0,.77778],8833:[.20576,.70576,0,0,.77778],8840:[.30274,.79383,0,0,.77778],8841:[.30274,.79383,0,0,.77778],8842:[.13597,.63597,0,0,.77778],8843:[.13597,.63597,0,0,.77778],8847:[.03517,.54986,0,0,.77778],8848:[.03517,.54986,0,0,.77778],8858:[.08198,.58198,0,0,.77778],8859:[.08198,.58198,0,0,.77778],8861:[.08198,.58198,0,0,.77778],8862:[0,.675,0,0,.77778],8863:[0,.675,0,0,.77778],8864:[0,.675,0,0,.77778],8865:[0,.675,0,0,.77778],8872:[0,.69224,0,0,.61111],8873:[0,.69224,0,0,.72222],8874:[0,.69224,0,0,.88889],8876:[0,.68889,0,0,.61111],8877:[0,.68889,0,0,.61111],8878:[0,.68889,0,0,.72222],8879:[0,.68889,0,0,.72222],8882:[.03517,.54986,0,0,.77778],8883:[.03517,.54986,0,0,.77778],8884:[.13667,.63667,0,0,.77778],8885:[.13667,.63667,0,0,.77778],8888:[0,.54986,0,0,1.11111],8890:[.19444,.43056,0,0,.55556],8891:[.19444,.69224,0,0,.61111],8892:[.19444,.69224,0,0,.61111],8901:[0,.54986,0,0,.27778],8903:[.08167,.58167,0,0,.77778],8905:[.08167,.58167,0,0,.77778],8906:[.08167,.58167,0,0,.77778],8907:[0,.69224,0,0,.77778],8908:[0,.69224,0,0,.77778],8909:[-.03598,.46402,0,0,.77778],8910:[0,.54986,0,0,.76042],8911:[0,.54986,0,0,.76042],8912:[.03517,.54986,0,0,.77778],8913:[.03517,.54986,0,0,.77778],8914:[0,.54986,0,0,.66667],8915:[0,.54986,0,0,.66667],8916:[0,.69224,0,0,.66667],8918:[.0391,.5391,0,0,.77778],8919:[.0391,.5391,0,0,.77778],8920:[.03517,.54986,0,0,1.33334],8921:[.03517,.54986,0,0,1.33334],8922:[.38569,.88569,0,0,.77778],8923:[.38569,.88569,0,0,.77778],8926:[.13667,.63667,0,0,.77778],8927:[.13667,.63667,0,0,.77778],8928:[.30274,.79383,0,0,.77778],8929:[.30274,.79383,0,0,.77778],8934:[.23222,.74111,0,0,.77778],8935:[.23222,.74111,0,0,.77778],8936:[.23222,.74111,0,0,.77778],8937:[.23222,.74111,0,0,.77778],8938:[.20576,.70576,0,0,.77778],8939:[.20576,.70576,0,0,.77778],8940:[.30274,.79383,0,0,.77778],8941:[.30274,.79383,0,0,.77778],8994:[.19444,.69224,0,0,.77778],8995:[.19444,.69224,0,0,.77778],9416:[.15559,.69224,0,0,.90222],9484:[0,.69224,0,0,.5],9488:[0,.69224,0,0,.5],9492:[0,.37788,0,0,.5],9496:[0,.37788,0,0,.5],9585:[.19444,.68889,0,0,.88889],9586:[.19444,.74111,0,0,.88889],9632:[0,.675,0,0,.77778],9633:[0,.675,0,0,.77778],9650:[0,.54986,0,0,.72222],9651:[0,.54986,0,0,.72222],9654:[.03517,.54986,0,0,.77778],9660:[0,.54986,0,0,.72222],9661:[0,.54986,0,0,.72222],9664:[.03517,.54986,0,0,.77778],9674:[.11111,.69224,0,0,.66667],9733:[.19444,.69224,0,0,.94445],10003:[0,.69224,0,0,.83334],10016:[0,.69224,0,0,.83334],10731:[.11111,.69224,0,0,.66667],10846:[.19444,.75583,0,0,.61111],10877:[.13667,.63667,0,0,.77778],10878:[.13667,.63667,0,0,.77778],10885:[.25583,.75583,0,0,.77778],10886:[.25583,.75583,0,0,.77778],10887:[.13597,.63597,0,0,.77778],10888:[.13597,.63597,0,0,.77778],10889:[.26167,.75726,0,0,.77778],10890:[.26167,.75726,0,0,.77778],10891:[.48256,.98256,0,0,.77778],10892:[.48256,.98256,0,0,.77778],10901:[.13667,.63667,0,0,.77778],10902:[.13667,.63667,0,0,.77778],10933:[.25142,.75726,0,0,.77778],10934:[.25142,.75726,0,0,.77778],10935:[.26167,.75726,0,0,.77778],10936:[.26167,.75726,0,0,.77778],10937:[.26167,.75726,0,0,.77778],10938:[.26167,.75726,0,0,.77778],10949:[.25583,.75583,0,0,.77778],10950:[.25583,.75583,0,0,.77778],10955:[.28481,.79383,0,0,.77778],10956:[.28481,.79383,0,0,.77778],57350:[.08167,.58167,0,0,.22222],57351:[.08167,.58167,0,0,.38889],57352:[.08167,.58167,0,0,.77778],57353:[0,.43056,.04028,0,.66667],57356:[.25142,.75726,0,0,.77778],57357:[.25142,.75726,0,0,.77778],57358:[.41951,.91951,0,0,.77778],57359:[.30274,.79383,0,0,.77778],57360:[.30274,.79383,0,0,.77778],57361:[.41951,.91951,0,0,.77778],57366:[.25142,.75726,0,0,.77778],57367:[.25142,.75726,0,0,.77778],57368:[.25142,.75726,0,0,.77778],57369:[.25142,.75726,0,0,.77778],57370:[.13597,.63597,0,0,.77778],57371:[.13597,.63597,0,0,.77778]},"Caligraphic-Regular":{32:[0,0,0,0,.25],65:[0,.68333,0,.19445,.79847],66:[0,.68333,.03041,.13889,.65681],67:[0,.68333,.05834,.13889,.52653],68:[0,.68333,.02778,.08334,.77139],69:[0,.68333,.08944,.11111,.52778],70:[0,.68333,.09931,.11111,.71875],71:[.09722,.68333,.0593,.11111,.59487],72:[0,.68333,.00965,.11111,.84452],73:[0,.68333,.07382,0,.54452],74:[.09722,.68333,.18472,.16667,.67778],75:[0,.68333,.01445,.05556,.76195],76:[0,.68333,0,.13889,.68972],77:[0,.68333,0,.13889,1.2009],78:[0,.68333,.14736,.08334,.82049],79:[0,.68333,.02778,.11111,.79611],80:[0,.68333,.08222,.08334,.69556],81:[.09722,.68333,0,.11111,.81667],82:[0,.68333,0,.08334,.8475],83:[0,.68333,.075,.13889,.60556],84:[0,.68333,.25417,0,.54464],85:[0,.68333,.09931,.08334,.62583],86:[0,.68333,.08222,0,.61278],87:[0,.68333,.08222,.08334,.98778],88:[0,.68333,.14643,.13889,.7133],89:[.09722,.68333,.08222,.08334,.66834],90:[0,.68333,.07944,.13889,.72473],160:[0,0,0,0,.25]},"Fraktur-Regular":{32:[0,0,0,0,.25],33:[0,.69141,0,0,.29574],34:[0,.69141,0,0,.21471],38:[0,.69141,0,0,.73786],39:[0,.69141,0,0,.21201],40:[.24982,.74947,0,0,.38865],41:[.24982,.74947,0,0,.38865],42:[0,.62119,0,0,.27764],43:[.08319,.58283,0,0,.75623],44:[0,.10803,0,0,.27764],45:[.08319,.58283,0,0,.75623],46:[0,.10803,0,0,.27764],47:[.24982,.74947,0,0,.50181],48:[0,.47534,0,0,.50181],49:[0,.47534,0,0,.50181],50:[0,.47534,0,0,.50181],51:[.18906,.47534,0,0,.50181],52:[.18906,.47534,0,0,.50181],53:[.18906,.47534,0,0,.50181],54:[0,.69141,0,0,.50181],55:[.18906,.47534,0,0,.50181],56:[0,.69141,0,0,.50181],57:[.18906,.47534,0,0,.50181],58:[0,.47534,0,0,.21606],59:[.12604,.47534,0,0,.21606],61:[-.13099,.36866,0,0,.75623],63:[0,.69141,0,0,.36245],65:[0,.69141,0,0,.7176],66:[0,.69141,0,0,.88397],67:[0,.69141,0,0,.61254],68:[0,.69141,0,0,.83158],69:[0,.69141,0,0,.66278],70:[.12604,.69141,0,0,.61119],71:[0,.69141,0,0,.78539],72:[.06302,.69141,0,0,.7203],73:[0,.69141,0,0,.55448],74:[.12604,.69141,0,0,.55231],75:[0,.69141,0,0,.66845],76:[0,.69141,0,0,.66602],77:[0,.69141,0,0,1.04953],78:[0,.69141,0,0,.83212],79:[0,.69141,0,0,.82699],80:[.18906,.69141,0,0,.82753],81:[.03781,.69141,0,0,.82699],82:[0,.69141,0,0,.82807],83:[0,.69141,0,0,.82861],84:[0,.69141,0,0,.66899],85:[0,.69141,0,0,.64576],86:[0,.69141,0,0,.83131],87:[0,.69141,0,0,1.04602],88:[0,.69141,0,0,.71922],89:[.18906,.69141,0,0,.83293],90:[.12604,.69141,0,0,.60201],91:[.24982,.74947,0,0,.27764],93:[.24982,.74947,0,0,.27764],94:[0,.69141,0,0,.49965],97:[0,.47534,0,0,.50046],98:[0,.69141,0,0,.51315],99:[0,.47534,0,0,.38946],100:[0,.62119,0,0,.49857],101:[0,.47534,0,0,.40053],102:[.18906,.69141,0,0,.32626],103:[.18906,.47534,0,0,.5037],104:[.18906,.69141,0,0,.52126],105:[0,.69141,0,0,.27899],106:[0,.69141,0,0,.28088],107:[0,.69141,0,0,.38946],108:[0,.69141,0,0,.27953],109:[0,.47534,0,0,.76676],110:[0,.47534,0,0,.52666],111:[0,.47534,0,0,.48885],112:[.18906,.52396,0,0,.50046],113:[.18906,.47534,0,0,.48912],114:[0,.47534,0,0,.38919],115:[0,.47534,0,0,.44266],116:[0,.62119,0,0,.33301],117:[0,.47534,0,0,.5172],118:[0,.52396,0,0,.5118],119:[0,.52396,0,0,.77351],120:[.18906,.47534,0,0,.38865],121:[.18906,.47534,0,0,.49884],122:[.18906,.47534,0,0,.39054],160:[0,0,0,0,.25],8216:[0,.69141,0,0,.21471],8217:[0,.69141,0,0,.21471],58112:[0,.62119,0,0,.49749],58113:[0,.62119,0,0,.4983],58114:[.18906,.69141,0,0,.33328],58115:[.18906,.69141,0,0,.32923],58116:[.18906,.47534,0,0,.50343],58117:[0,.69141,0,0,.33301],58118:[0,.62119,0,0,.33409],58119:[0,.47534,0,0,.50073]},"Main-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.35],34:[0,.69444,0,0,.60278],35:[.19444,.69444,0,0,.95833],36:[.05556,.75,0,0,.575],37:[.05556,.75,0,0,.95833],38:[0,.69444,0,0,.89444],39:[0,.69444,0,0,.31944],40:[.25,.75,0,0,.44722],41:[.25,.75,0,0,.44722],42:[0,.75,0,0,.575],43:[.13333,.63333,0,0,.89444],44:[.19444,.15556,0,0,.31944],45:[0,.44444,0,0,.38333],46:[0,.15556,0,0,.31944],47:[.25,.75,0,0,.575],48:[0,.64444,0,0,.575],49:[0,.64444,0,0,.575],50:[0,.64444,0,0,.575],51:[0,.64444,0,0,.575],52:[0,.64444,0,0,.575],53:[0,.64444,0,0,.575],54:[0,.64444,0,0,.575],55:[0,.64444,0,0,.575],56:[0,.64444,0,0,.575],57:[0,.64444,0,0,.575],58:[0,.44444,0,0,.31944],59:[.19444,.44444,0,0,.31944],60:[.08556,.58556,0,0,.89444],61:[-.10889,.39111,0,0,.89444],62:[.08556,.58556,0,0,.89444],63:[0,.69444,0,0,.54305],64:[0,.69444,0,0,.89444],65:[0,.68611,0,0,.86944],66:[0,.68611,0,0,.81805],67:[0,.68611,0,0,.83055],68:[0,.68611,0,0,.88194],69:[0,.68611,0,0,.75555],70:[0,.68611,0,0,.72361],71:[0,.68611,0,0,.90416],72:[0,.68611,0,0,.9],73:[0,.68611,0,0,.43611],74:[0,.68611,0,0,.59444],75:[0,.68611,0,0,.90138],76:[0,.68611,0,0,.69166],77:[0,.68611,0,0,1.09166],78:[0,.68611,0,0,.9],79:[0,.68611,0,0,.86388],80:[0,.68611,0,0,.78611],81:[.19444,.68611,0,0,.86388],82:[0,.68611,0,0,.8625],83:[0,.68611,0,0,.63889],84:[0,.68611,0,0,.8],85:[0,.68611,0,0,.88472],86:[0,.68611,.01597,0,.86944],87:[0,.68611,.01597,0,1.18888],88:[0,.68611,0,0,.86944],89:[0,.68611,.02875,0,.86944],90:[0,.68611,0,0,.70277],91:[.25,.75,0,0,.31944],92:[.25,.75,0,0,.575],93:[.25,.75,0,0,.31944],94:[0,.69444,0,0,.575],95:[.31,.13444,.03194,0,.575],97:[0,.44444,0,0,.55902],98:[0,.69444,0,0,.63889],99:[0,.44444,0,0,.51111],100:[0,.69444,0,0,.63889],101:[0,.44444,0,0,.52708],102:[0,.69444,.10903,0,.35139],103:[.19444,.44444,.01597,0,.575],104:[0,.69444,0,0,.63889],105:[0,.69444,0,0,.31944],106:[.19444,.69444,0,0,.35139],107:[0,.69444,0,0,.60694],108:[0,.69444,0,0,.31944],109:[0,.44444,0,0,.95833],110:[0,.44444,0,0,.63889],111:[0,.44444,0,0,.575],112:[.19444,.44444,0,0,.63889],113:[.19444,.44444,0,0,.60694],114:[0,.44444,0,0,.47361],115:[0,.44444,0,0,.45361],116:[0,.63492,0,0,.44722],117:[0,.44444,0,0,.63889],118:[0,.44444,.01597,0,.60694],119:[0,.44444,.01597,0,.83055],120:[0,.44444,0,0,.60694],121:[.19444,.44444,.01597,0,.60694],122:[0,.44444,0,0,.51111],123:[.25,.75,0,0,.575],124:[.25,.75,0,0,.31944],125:[.25,.75,0,0,.575],126:[.35,.34444,0,0,.575],160:[0,0,0,0,.25],163:[0,.69444,0,0,.86853],168:[0,.69444,0,0,.575],172:[0,.44444,0,0,.76666],176:[0,.69444,0,0,.86944],177:[.13333,.63333,0,0,.89444],184:[.17014,0,0,0,.51111],198:[0,.68611,0,0,1.04166],215:[.13333,.63333,0,0,.89444],216:[.04861,.73472,0,0,.89444],223:[0,.69444,0,0,.59722],230:[0,.44444,0,0,.83055],247:[.13333,.63333,0,0,.89444],248:[.09722,.54167,0,0,.575],305:[0,.44444,0,0,.31944],338:[0,.68611,0,0,1.16944],339:[0,.44444,0,0,.89444],567:[.19444,.44444,0,0,.35139],710:[0,.69444,0,0,.575],711:[0,.63194,0,0,.575],713:[0,.59611,0,0,.575],714:[0,.69444,0,0,.575],715:[0,.69444,0,0,.575],728:[0,.69444,0,0,.575],729:[0,.69444,0,0,.31944],730:[0,.69444,0,0,.86944],732:[0,.69444,0,0,.575],733:[0,.69444,0,0,.575],915:[0,.68611,0,0,.69166],916:[0,.68611,0,0,.95833],920:[0,.68611,0,0,.89444],923:[0,.68611,0,0,.80555],926:[0,.68611,0,0,.76666],928:[0,.68611,0,0,.9],931:[0,.68611,0,0,.83055],933:[0,.68611,0,0,.89444],934:[0,.68611,0,0,.83055],936:[0,.68611,0,0,.89444],937:[0,.68611,0,0,.83055],8211:[0,.44444,.03194,0,.575],8212:[0,.44444,.03194,0,1.14999],8216:[0,.69444,0,0,.31944],8217:[0,.69444,0,0,.31944],8220:[0,.69444,0,0,.60278],8221:[0,.69444,0,0,.60278],8224:[.19444,.69444,0,0,.51111],8225:[.19444,.69444,0,0,.51111],8242:[0,.55556,0,0,.34444],8407:[0,.72444,.15486,0,.575],8463:[0,.69444,0,0,.66759],8465:[0,.69444,0,0,.83055],8467:[0,.69444,0,0,.47361],8472:[.19444,.44444,0,0,.74027],8476:[0,.69444,0,0,.83055],8501:[0,.69444,0,0,.70277],8592:[-.10889,.39111,0,0,1.14999],8593:[.19444,.69444,0,0,.575],8594:[-.10889,.39111,0,0,1.14999],8595:[.19444,.69444,0,0,.575],8596:[-.10889,.39111,0,0,1.14999],8597:[.25,.75,0,0,.575],8598:[.19444,.69444,0,0,1.14999],8599:[.19444,.69444,0,0,1.14999],8600:[.19444,.69444,0,0,1.14999],8601:[.19444,.69444,0,0,1.14999],8636:[-.10889,.39111,0,0,1.14999],8637:[-.10889,.39111,0,0,1.14999],8640:[-.10889,.39111,0,0,1.14999],8641:[-.10889,.39111,0,0,1.14999],8656:[-.10889,.39111,0,0,1.14999],8657:[.19444,.69444,0,0,.70277],8658:[-.10889,.39111,0,0,1.14999],8659:[.19444,.69444,0,0,.70277],8660:[-.10889,.39111,0,0,1.14999],8661:[.25,.75,0,0,.70277],8704:[0,.69444,0,0,.63889],8706:[0,.69444,.06389,0,.62847],8707:[0,.69444,0,0,.63889],8709:[.05556,.75,0,0,.575],8711:[0,.68611,0,0,.95833],8712:[.08556,.58556,0,0,.76666],8715:[.08556,.58556,0,0,.76666],8722:[.13333,.63333,0,0,.89444],8723:[.13333,.63333,0,0,.89444],8725:[.25,.75,0,0,.575],8726:[.25,.75,0,0,.575],8727:[-.02778,.47222,0,0,.575],8728:[-.02639,.47361,0,0,.575],8729:[-.02639,.47361,0,0,.575],8730:[.18,.82,0,0,.95833],8733:[0,.44444,0,0,.89444],8734:[0,.44444,0,0,1.14999],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.31944],8741:[.25,.75,0,0,.575],8743:[0,.55556,0,0,.76666],8744:[0,.55556,0,0,.76666],8745:[0,.55556,0,0,.76666],8746:[0,.55556,0,0,.76666],8747:[.19444,.69444,.12778,0,.56875],8764:[-.10889,.39111,0,0,.89444],8768:[.19444,.69444,0,0,.31944],8771:[.00222,.50222,0,0,.89444],8773:[.027,.638,0,0,.894],8776:[.02444,.52444,0,0,.89444],8781:[.00222,.50222,0,0,.89444],8801:[.00222,.50222,0,0,.89444],8804:[.19667,.69667,0,0,.89444],8805:[.19667,.69667,0,0,.89444],8810:[.08556,.58556,0,0,1.14999],8811:[.08556,.58556,0,0,1.14999],8826:[.08556,.58556,0,0,.89444],8827:[.08556,.58556,0,0,.89444],8834:[.08556,.58556,0,0,.89444],8835:[.08556,.58556,0,0,.89444],8838:[.19667,.69667,0,0,.89444],8839:[.19667,.69667,0,0,.89444],8846:[0,.55556,0,0,.76666],8849:[.19667,.69667,0,0,.89444],8850:[.19667,.69667,0,0,.89444],8851:[0,.55556,0,0,.76666],8852:[0,.55556,0,0,.76666],8853:[.13333,.63333,0,0,.89444],8854:[.13333,.63333,0,0,.89444],8855:[.13333,.63333,0,0,.89444],8856:[.13333,.63333,0,0,.89444],8857:[.13333,.63333,0,0,.89444],8866:[0,.69444,0,0,.70277],8867:[0,.69444,0,0,.70277],8868:[0,.69444,0,0,.89444],8869:[0,.69444,0,0,.89444],8900:[-.02639,.47361,0,0,.575],8901:[-.02639,.47361,0,0,.31944],8902:[-.02778,.47222,0,0,.575],8968:[.25,.75,0,0,.51111],8969:[.25,.75,0,0,.51111],8970:[.25,.75,0,0,.51111],8971:[.25,.75,0,0,.51111],8994:[-.13889,.36111,0,0,1.14999],8995:[-.13889,.36111,0,0,1.14999],9651:[.19444,.69444,0,0,1.02222],9657:[-.02778,.47222,0,0,.575],9661:[.19444,.69444,0,0,1.02222],9667:[-.02778,.47222,0,0,.575],9711:[.19444,.69444,0,0,1.14999],9824:[.12963,.69444,0,0,.89444],9825:[.12963,.69444,0,0,.89444],9826:[.12963,.69444,0,0,.89444],9827:[.12963,.69444,0,0,.89444],9837:[0,.75,0,0,.44722],9838:[.19444,.69444,0,0,.44722],9839:[.19444,.69444,0,0,.44722],10216:[.25,.75,0,0,.44722],10217:[.25,.75,0,0,.44722],10815:[0,.68611,0,0,.9],10927:[.19667,.69667,0,0,.89444],10928:[.19667,.69667,0,0,.89444],57376:[.19444,.69444,0,0,0]},"Main-BoldItalic":{32:[0,0,0,0,.25],33:[0,.69444,.11417,0,.38611],34:[0,.69444,.07939,0,.62055],35:[.19444,.69444,.06833,0,.94444],37:[.05556,.75,.12861,0,.94444],38:[0,.69444,.08528,0,.88555],39:[0,.69444,.12945,0,.35555],40:[.25,.75,.15806,0,.47333],41:[.25,.75,.03306,0,.47333],42:[0,.75,.14333,0,.59111],43:[.10333,.60333,.03306,0,.88555],44:[.19444,.14722,0,0,.35555],45:[0,.44444,.02611,0,.41444],46:[0,.14722,0,0,.35555],47:[.25,.75,.15806,0,.59111],48:[0,.64444,.13167,0,.59111],49:[0,.64444,.13167,0,.59111],50:[0,.64444,.13167,0,.59111],51:[0,.64444,.13167,0,.59111],52:[.19444,.64444,.13167,0,.59111],53:[0,.64444,.13167,0,.59111],54:[0,.64444,.13167,0,.59111],55:[.19444,.64444,.13167,0,.59111],56:[0,.64444,.13167,0,.59111],57:[0,.64444,.13167,0,.59111],58:[0,.44444,.06695,0,.35555],59:[.19444,.44444,.06695,0,.35555],61:[-.10889,.39111,.06833,0,.88555],63:[0,.69444,.11472,0,.59111],64:[0,.69444,.09208,0,.88555],65:[0,.68611,0,0,.86555],66:[0,.68611,.0992,0,.81666],67:[0,.68611,.14208,0,.82666],68:[0,.68611,.09062,0,.87555],69:[0,.68611,.11431,0,.75666],70:[0,.68611,.12903,0,.72722],71:[0,.68611,.07347,0,.89527],72:[0,.68611,.17208,0,.8961],73:[0,.68611,.15681,0,.47166],74:[0,.68611,.145,0,.61055],75:[0,.68611,.14208,0,.89499],76:[0,.68611,0,0,.69777],77:[0,.68611,.17208,0,1.07277],78:[0,.68611,.17208,0,.8961],79:[0,.68611,.09062,0,.85499],80:[0,.68611,.0992,0,.78721],81:[.19444,.68611,.09062,0,.85499],82:[0,.68611,.02559,0,.85944],83:[0,.68611,.11264,0,.64999],84:[0,.68611,.12903,0,.7961],85:[0,.68611,.17208,0,.88083],86:[0,.68611,.18625,0,.86555],87:[0,.68611,.18625,0,1.15999],88:[0,.68611,.15681,0,.86555],89:[0,.68611,.19803,0,.86555],90:[0,.68611,.14208,0,.70888],91:[.25,.75,.1875,0,.35611],93:[.25,.75,.09972,0,.35611],94:[0,.69444,.06709,0,.59111],95:[.31,.13444,.09811,0,.59111],97:[0,.44444,.09426,0,.59111],98:[0,.69444,.07861,0,.53222],99:[0,.44444,.05222,0,.53222],100:[0,.69444,.10861,0,.59111],101:[0,.44444,.085,0,.53222],102:[.19444,.69444,.21778,0,.4],103:[.19444,.44444,.105,0,.53222],104:[0,.69444,.09426,0,.59111],105:[0,.69326,.11387,0,.35555],106:[.19444,.69326,.1672,0,.35555],107:[0,.69444,.11111,0,.53222],108:[0,.69444,.10861,0,.29666],109:[0,.44444,.09426,0,.94444],110:[0,.44444,.09426,0,.64999],111:[0,.44444,.07861,0,.59111],112:[.19444,.44444,.07861,0,.59111],113:[.19444,.44444,.105,0,.53222],114:[0,.44444,.11111,0,.50167],115:[0,.44444,.08167,0,.48694],116:[0,.63492,.09639,0,.385],117:[0,.44444,.09426,0,.62055],118:[0,.44444,.11111,0,.53222],119:[0,.44444,.11111,0,.76777],120:[0,.44444,.12583,0,.56055],121:[.19444,.44444,.105,0,.56166],122:[0,.44444,.13889,0,.49055],126:[.35,.34444,.11472,0,.59111],160:[0,0,0,0,.25],168:[0,.69444,.11473,0,.59111],176:[0,.69444,0,0,.94888],184:[.17014,0,0,0,.53222],198:[0,.68611,.11431,0,1.02277],216:[.04861,.73472,.09062,0,.88555],223:[.19444,.69444,.09736,0,.665],230:[0,.44444,.085,0,.82666],248:[.09722,.54167,.09458,0,.59111],305:[0,.44444,.09426,0,.35555],338:[0,.68611,.11431,0,1.14054],339:[0,.44444,.085,0,.82666],567:[.19444,.44444,.04611,0,.385],710:[0,.69444,.06709,0,.59111],711:[0,.63194,.08271,0,.59111],713:[0,.59444,.10444,0,.59111],714:[0,.69444,.08528,0,.59111],715:[0,.69444,0,0,.59111],728:[0,.69444,.10333,0,.59111],729:[0,.69444,.12945,0,.35555],730:[0,.69444,0,0,.94888],732:[0,.69444,.11472,0,.59111],733:[0,.69444,.11472,0,.59111],915:[0,.68611,.12903,0,.69777],916:[0,.68611,0,0,.94444],920:[0,.68611,.09062,0,.88555],923:[0,.68611,0,0,.80666],926:[0,.68611,.15092,0,.76777],928:[0,.68611,.17208,0,.8961],931:[0,.68611,.11431,0,.82666],933:[0,.68611,.10778,0,.88555],934:[0,.68611,.05632,0,.82666],936:[0,.68611,.10778,0,.88555],937:[0,.68611,.0992,0,.82666],8211:[0,.44444,.09811,0,.59111],8212:[0,.44444,.09811,0,1.18221],8216:[0,.69444,.12945,0,.35555],8217:[0,.69444,.12945,0,.35555],8220:[0,.69444,.16772,0,.62055],8221:[0,.69444,.07939,0,.62055]},"Main-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.12417,0,.30667],34:[0,.69444,.06961,0,.51444],35:[.19444,.69444,.06616,0,.81777],37:[.05556,.75,.13639,0,.81777],38:[0,.69444,.09694,0,.76666],39:[0,.69444,.12417,0,.30667],40:[.25,.75,.16194,0,.40889],41:[.25,.75,.03694,0,.40889],42:[0,.75,.14917,0,.51111],43:[.05667,.56167,.03694,0,.76666],44:[.19444,.10556,0,0,.30667],45:[0,.43056,.02826,0,.35778],46:[0,.10556,0,0,.30667],47:[.25,.75,.16194,0,.51111],48:[0,.64444,.13556,0,.51111],49:[0,.64444,.13556,0,.51111],50:[0,.64444,.13556,0,.51111],51:[0,.64444,.13556,0,.51111],52:[.19444,.64444,.13556,0,.51111],53:[0,.64444,.13556,0,.51111],54:[0,.64444,.13556,0,.51111],55:[.19444,.64444,.13556,0,.51111],56:[0,.64444,.13556,0,.51111],57:[0,.64444,.13556,0,.51111],58:[0,.43056,.0582,0,.30667],59:[.19444,.43056,.0582,0,.30667],61:[-.13313,.36687,.06616,0,.76666],63:[0,.69444,.1225,0,.51111],64:[0,.69444,.09597,0,.76666],65:[0,.68333,0,0,.74333],66:[0,.68333,.10257,0,.70389],67:[0,.68333,.14528,0,.71555],68:[0,.68333,.09403,0,.755],69:[0,.68333,.12028,0,.67833],70:[0,.68333,.13305,0,.65277],71:[0,.68333,.08722,0,.77361],72:[0,.68333,.16389,0,.74333],73:[0,.68333,.15806,0,.38555],74:[0,.68333,.14028,0,.525],75:[0,.68333,.14528,0,.76888],76:[0,.68333,0,0,.62722],77:[0,.68333,.16389,0,.89666],78:[0,.68333,.16389,0,.74333],79:[0,.68333,.09403,0,.76666],80:[0,.68333,.10257,0,.67833],81:[.19444,.68333,.09403,0,.76666],82:[0,.68333,.03868,0,.72944],83:[0,.68333,.11972,0,.56222],84:[0,.68333,.13305,0,.71555],85:[0,.68333,.16389,0,.74333],86:[0,.68333,.18361,0,.74333],87:[0,.68333,.18361,0,.99888],88:[0,.68333,.15806,0,.74333],89:[0,.68333,.19383,0,.74333],90:[0,.68333,.14528,0,.61333],91:[.25,.75,.1875,0,.30667],93:[.25,.75,.10528,0,.30667],94:[0,.69444,.06646,0,.51111],95:[.31,.12056,.09208,0,.51111],97:[0,.43056,.07671,0,.51111],98:[0,.69444,.06312,0,.46],99:[0,.43056,.05653,0,.46],100:[0,.69444,.10333,0,.51111],101:[0,.43056,.07514,0,.46],102:[.19444,.69444,.21194,0,.30667],103:[.19444,.43056,.08847,0,.46],104:[0,.69444,.07671,0,.51111],105:[0,.65536,.1019,0,.30667],106:[.19444,.65536,.14467,0,.30667],107:[0,.69444,.10764,0,.46],108:[0,.69444,.10333,0,.25555],109:[0,.43056,.07671,0,.81777],110:[0,.43056,.07671,0,.56222],111:[0,.43056,.06312,0,.51111],112:[.19444,.43056,.06312,0,.51111],113:[.19444,.43056,.08847,0,.46],114:[0,.43056,.10764,0,.42166],115:[0,.43056,.08208,0,.40889],116:[0,.61508,.09486,0,.33222],117:[0,.43056,.07671,0,.53666],118:[0,.43056,.10764,0,.46],119:[0,.43056,.10764,0,.66444],120:[0,.43056,.12042,0,.46389],121:[.19444,.43056,.08847,0,.48555],122:[0,.43056,.12292,0,.40889],126:[.35,.31786,.11585,0,.51111],160:[0,0,0,0,.25],168:[0,.66786,.10474,0,.51111],176:[0,.69444,0,0,.83129],184:[.17014,0,0,0,.46],198:[0,.68333,.12028,0,.88277],216:[.04861,.73194,.09403,0,.76666],223:[.19444,.69444,.10514,0,.53666],230:[0,.43056,.07514,0,.71555],248:[.09722,.52778,.09194,0,.51111],338:[0,.68333,.12028,0,.98499],339:[0,.43056,.07514,0,.71555],710:[0,.69444,.06646,0,.51111],711:[0,.62847,.08295,0,.51111],713:[0,.56167,.10333,0,.51111],714:[0,.69444,.09694,0,.51111],715:[0,.69444,0,0,.51111],728:[0,.69444,.10806,0,.51111],729:[0,.66786,.11752,0,.30667],730:[0,.69444,0,0,.83129],732:[0,.66786,.11585,0,.51111],733:[0,.69444,.1225,0,.51111],915:[0,.68333,.13305,0,.62722],916:[0,.68333,0,0,.81777],920:[0,.68333,.09403,0,.76666],923:[0,.68333,0,0,.69222],926:[0,.68333,.15294,0,.66444],928:[0,.68333,.16389,0,.74333],931:[0,.68333,.12028,0,.71555],933:[0,.68333,.11111,0,.76666],934:[0,.68333,.05986,0,.71555],936:[0,.68333,.11111,0,.76666],937:[0,.68333,.10257,0,.71555],8211:[0,.43056,.09208,0,.51111],8212:[0,.43056,.09208,0,1.02222],8216:[0,.69444,.12417,0,.30667],8217:[0,.69444,.12417,0,.30667],8220:[0,.69444,.1685,0,.51444],8221:[0,.69444,.06961,0,.51444],8463:[0,.68889,0,0,.54028]},"Main-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.27778],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.77778],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.19444,.10556,0,0,.27778],45:[0,.43056,0,0,.33333],46:[0,.10556,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.64444,0,0,.5],49:[0,.64444,0,0,.5],50:[0,.64444,0,0,.5],51:[0,.64444,0,0,.5],52:[0,.64444,0,0,.5],53:[0,.64444,0,0,.5],54:[0,.64444,0,0,.5],55:[0,.64444,0,0,.5],56:[0,.64444,0,0,.5],57:[0,.64444,0,0,.5],58:[0,.43056,0,0,.27778],59:[.19444,.43056,0,0,.27778],60:[.0391,.5391,0,0,.77778],61:[-.13313,.36687,0,0,.77778],62:[.0391,.5391,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.77778],65:[0,.68333,0,0,.75],66:[0,.68333,0,0,.70834],67:[0,.68333,0,0,.72222],68:[0,.68333,0,0,.76389],69:[0,.68333,0,0,.68056],70:[0,.68333,0,0,.65278],71:[0,.68333,0,0,.78472],72:[0,.68333,0,0,.75],73:[0,.68333,0,0,.36111],74:[0,.68333,0,0,.51389],75:[0,.68333,0,0,.77778],76:[0,.68333,0,0,.625],77:[0,.68333,0,0,.91667],78:[0,.68333,0,0,.75],79:[0,.68333,0,0,.77778],80:[0,.68333,0,0,.68056],81:[.19444,.68333,0,0,.77778],82:[0,.68333,0,0,.73611],83:[0,.68333,0,0,.55556],84:[0,.68333,0,0,.72222],85:[0,.68333,0,0,.75],86:[0,.68333,.01389,0,.75],87:[0,.68333,.01389,0,1.02778],88:[0,.68333,0,0,.75],89:[0,.68333,.025,0,.75],90:[0,.68333,0,0,.61111],91:[.25,.75,0,0,.27778],92:[.25,.75,0,0,.5],93:[.25,.75,0,0,.27778],94:[0,.69444,0,0,.5],95:[.31,.12056,.02778,0,.5],97:[0,.43056,0,0,.5],98:[0,.69444,0,0,.55556],99:[0,.43056,0,0,.44445],100:[0,.69444,0,0,.55556],101:[0,.43056,0,0,.44445],102:[0,.69444,.07778,0,.30556],103:[.19444,.43056,.01389,0,.5],104:[0,.69444,0,0,.55556],105:[0,.66786,0,0,.27778],106:[.19444,.66786,0,0,.30556],107:[0,.69444,0,0,.52778],108:[0,.69444,0,0,.27778],109:[0,.43056,0,0,.83334],110:[0,.43056,0,0,.55556],111:[0,.43056,0,0,.5],112:[.19444,.43056,0,0,.55556],113:[.19444,.43056,0,0,.52778],114:[0,.43056,0,0,.39167],115:[0,.43056,0,0,.39445],116:[0,.61508,0,0,.38889],117:[0,.43056,0,0,.55556],118:[0,.43056,.01389,0,.52778],119:[0,.43056,.01389,0,.72222],120:[0,.43056,0,0,.52778],121:[.19444,.43056,.01389,0,.52778],122:[0,.43056,0,0,.44445],123:[.25,.75,0,0,.5],124:[.25,.75,0,0,.27778],125:[.25,.75,0,0,.5],126:[.35,.31786,0,0,.5],160:[0,0,0,0,.25],163:[0,.69444,0,0,.76909],167:[.19444,.69444,0,0,.44445],168:[0,.66786,0,0,.5],172:[0,.43056,0,0,.66667],176:[0,.69444,0,0,.75],177:[.08333,.58333,0,0,.77778],182:[.19444,.69444,0,0,.61111],184:[.17014,0,0,0,.44445],198:[0,.68333,0,0,.90278],215:[.08333,.58333,0,0,.77778],216:[.04861,.73194,0,0,.77778],223:[0,.69444,0,0,.5],230:[0,.43056,0,0,.72222],247:[.08333,.58333,0,0,.77778],248:[.09722,.52778,0,0,.5],305:[0,.43056,0,0,.27778],338:[0,.68333,0,0,1.01389],339:[0,.43056,0,0,.77778],567:[.19444,.43056,0,0,.30556],710:[0,.69444,0,0,.5],711:[0,.62847,0,0,.5],713:[0,.56778,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.66786,0,0,.27778],730:[0,.69444,0,0,.75],732:[0,.66786,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.68333,0,0,.625],916:[0,.68333,0,0,.83334],920:[0,.68333,0,0,.77778],923:[0,.68333,0,0,.69445],926:[0,.68333,0,0,.66667],928:[0,.68333,0,0,.75],931:[0,.68333,0,0,.72222],933:[0,.68333,0,0,.77778],934:[0,.68333,0,0,.72222],936:[0,.68333,0,0,.77778],937:[0,.68333,0,0,.72222],8211:[0,.43056,.02778,0,.5],8212:[0,.43056,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5],8224:[.19444,.69444,0,0,.44445],8225:[.19444,.69444,0,0,.44445],8230:[0,.123,0,0,1.172],8242:[0,.55556,0,0,.275],8407:[0,.71444,.15382,0,.5],8463:[0,.68889,0,0,.54028],8465:[0,.69444,0,0,.72222],8467:[0,.69444,0,.11111,.41667],8472:[.19444,.43056,0,.11111,.63646],8476:[0,.69444,0,0,.72222],8501:[0,.69444,0,0,.61111],8592:[-.13313,.36687,0,0,1],8593:[.19444,.69444,0,0,.5],8594:[-.13313,.36687,0,0,1],8595:[.19444,.69444,0,0,.5],8596:[-.13313,.36687,0,0,1],8597:[.25,.75,0,0,.5],8598:[.19444,.69444,0,0,1],8599:[.19444,.69444,0,0,1],8600:[.19444,.69444,0,0,1],8601:[.19444,.69444,0,0,1],8614:[.011,.511,0,0,1],8617:[.011,.511,0,0,1.126],8618:[.011,.511,0,0,1.126],8636:[-.13313,.36687,0,0,1],8637:[-.13313,.36687,0,0,1],8640:[-.13313,.36687,0,0,1],8641:[-.13313,.36687,0,0,1],8652:[.011,.671,0,0,1],8656:[-.13313,.36687,0,0,1],8657:[.19444,.69444,0,0,.61111],8658:[-.13313,.36687,0,0,1],8659:[.19444,.69444,0,0,.61111],8660:[-.13313,.36687,0,0,1],8661:[.25,.75,0,0,.61111],8704:[0,.69444,0,0,.55556],8706:[0,.69444,.05556,.08334,.5309],8707:[0,.69444,0,0,.55556],8709:[.05556,.75,0,0,.5],8711:[0,.68333,0,0,.83334],8712:[.0391,.5391,0,0,.66667],8715:[.0391,.5391,0,0,.66667],8722:[.08333,.58333,0,0,.77778],8723:[.08333,.58333,0,0,.77778],8725:[.25,.75,0,0,.5],8726:[.25,.75,0,0,.5],8727:[-.03472,.46528,0,0,.5],8728:[-.05555,.44445,0,0,.5],8729:[-.05555,.44445,0,0,.5],8730:[.2,.8,0,0,.83334],8733:[0,.43056,0,0,.77778],8734:[0,.43056,0,0,1],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.27778],8741:[.25,.75,0,0,.5],8743:[0,.55556,0,0,.66667],8744:[0,.55556,0,0,.66667],8745:[0,.55556,0,0,.66667],8746:[0,.55556,0,0,.66667],8747:[.19444,.69444,.11111,0,.41667],8764:[-.13313,.36687,0,0,.77778],8768:[.19444,.69444,0,0,.27778],8771:[-.03625,.46375,0,0,.77778],8773:[-.022,.589,0,0,.778],8776:[-.01688,.48312,0,0,.77778],8781:[-.03625,.46375,0,0,.77778],8784:[-.133,.673,0,0,.778],8801:[-.03625,.46375,0,0,.77778],8804:[.13597,.63597,0,0,.77778],8805:[.13597,.63597,0,0,.77778],8810:[.0391,.5391,0,0,1],8811:[.0391,.5391,0,0,1],8826:[.0391,.5391,0,0,.77778],8827:[.0391,.5391,0,0,.77778],8834:[.0391,.5391,0,0,.77778],8835:[.0391,.5391,0,0,.77778],8838:[.13597,.63597,0,0,.77778],8839:[.13597,.63597,0,0,.77778],8846:[0,.55556,0,0,.66667],8849:[.13597,.63597,0,0,.77778],8850:[.13597,.63597,0,0,.77778],8851:[0,.55556,0,0,.66667],8852:[0,.55556,0,0,.66667],8853:[.08333,.58333,0,0,.77778],8854:[.08333,.58333,0,0,.77778],8855:[.08333,.58333,0,0,.77778],8856:[.08333,.58333,0,0,.77778],8857:[.08333,.58333,0,0,.77778],8866:[0,.69444,0,0,.61111],8867:[0,.69444,0,0,.61111],8868:[0,.69444,0,0,.77778],8869:[0,.69444,0,0,.77778],8872:[.249,.75,0,0,.867],8900:[-.05555,.44445,0,0,.5],8901:[-.05555,.44445,0,0,.27778],8902:[-.03472,.46528,0,0,.5],8904:[.005,.505,0,0,.9],8942:[.03,.903,0,0,.278],8943:[-.19,.313,0,0,1.172],8945:[-.1,.823,0,0,1.282],8968:[.25,.75,0,0,.44445],8969:[.25,.75,0,0,.44445],8970:[.25,.75,0,0,.44445],8971:[.25,.75,0,0,.44445],8994:[-.14236,.35764,0,0,1],8995:[-.14236,.35764,0,0,1],9136:[.244,.744,0,0,.412],9137:[.244,.745,0,0,.412],9651:[.19444,.69444,0,0,.88889],9657:[-.03472,.46528,0,0,.5],9661:[.19444,.69444,0,0,.88889],9667:[-.03472,.46528,0,0,.5],9711:[.19444,.69444,0,0,1],9824:[.12963,.69444,0,0,.77778],9825:[.12963,.69444,0,0,.77778],9826:[.12963,.69444,0,0,.77778],9827:[.12963,.69444,0,0,.77778],9837:[0,.75,0,0,.38889],9838:[.19444,.69444,0,0,.38889],9839:[.19444,.69444,0,0,.38889],10216:[.25,.75,0,0,.38889],10217:[.25,.75,0,0,.38889],10222:[.244,.744,0,0,.412],10223:[.244,.745,0,0,.412],10229:[.011,.511,0,0,1.609],10230:[.011,.511,0,0,1.638],10231:[.011,.511,0,0,1.859],10232:[.024,.525,0,0,1.609],10233:[.024,.525,0,0,1.638],10234:[.024,.525,0,0,1.858],10236:[.011,.511,0,0,1.638],10815:[0,.68333,0,0,.75],10927:[.13597,.63597,0,0,.77778],10928:[.13597,.63597,0,0,.77778],57376:[.19444,.69444,0,0,0]},"Math-BoldItalic":{32:[0,0,0,0,.25],48:[0,.44444,0,0,.575],49:[0,.44444,0,0,.575],50:[0,.44444,0,0,.575],51:[.19444,.44444,0,0,.575],52:[.19444,.44444,0,0,.575],53:[.19444,.44444,0,0,.575],54:[0,.64444,0,0,.575],55:[.19444,.44444,0,0,.575],56:[0,.64444,0,0,.575],57:[.19444,.44444,0,0,.575],65:[0,.68611,0,0,.86944],66:[0,.68611,.04835,0,.8664],67:[0,.68611,.06979,0,.81694],68:[0,.68611,.03194,0,.93812],69:[0,.68611,.05451,0,.81007],70:[0,.68611,.15972,0,.68889],71:[0,.68611,0,0,.88673],72:[0,.68611,.08229,0,.98229],73:[0,.68611,.07778,0,.51111],74:[0,.68611,.10069,0,.63125],75:[0,.68611,.06979,0,.97118],76:[0,.68611,0,0,.75555],77:[0,.68611,.11424,0,1.14201],78:[0,.68611,.11424,0,.95034],79:[0,.68611,.03194,0,.83666],80:[0,.68611,.15972,0,.72309],81:[.19444,.68611,0,0,.86861],82:[0,.68611,.00421,0,.87235],83:[0,.68611,.05382,0,.69271],84:[0,.68611,.15972,0,.63663],85:[0,.68611,.11424,0,.80027],86:[0,.68611,.25555,0,.67778],87:[0,.68611,.15972,0,1.09305],88:[0,.68611,.07778,0,.94722],89:[0,.68611,.25555,0,.67458],90:[0,.68611,.06979,0,.77257],97:[0,.44444,0,0,.63287],98:[0,.69444,0,0,.52083],99:[0,.44444,0,0,.51342],100:[0,.69444,0,0,.60972],101:[0,.44444,0,0,.55361],102:[.19444,.69444,.11042,0,.56806],103:[.19444,.44444,.03704,0,.5449],104:[0,.69444,0,0,.66759],105:[0,.69326,0,0,.4048],106:[.19444,.69326,.0622,0,.47083],107:[0,.69444,.01852,0,.6037],108:[0,.69444,.0088,0,.34815],109:[0,.44444,0,0,1.0324],110:[0,.44444,0,0,.71296],111:[0,.44444,0,0,.58472],112:[.19444,.44444,0,0,.60092],113:[.19444,.44444,.03704,0,.54213],114:[0,.44444,.03194,0,.5287],115:[0,.44444,0,0,.53125],116:[0,.63492,0,0,.41528],117:[0,.44444,0,0,.68102],118:[0,.44444,.03704,0,.56666],119:[0,.44444,.02778,0,.83148],120:[0,.44444,0,0,.65903],121:[.19444,.44444,.03704,0,.59028],122:[0,.44444,.04213,0,.55509],160:[0,0,0,0,.25],915:[0,.68611,.15972,0,.65694],916:[0,.68611,0,0,.95833],920:[0,.68611,.03194,0,.86722],923:[0,.68611,0,0,.80555],926:[0,.68611,.07458,0,.84125],928:[0,.68611,.08229,0,.98229],931:[0,.68611,.05451,0,.88507],933:[0,.68611,.15972,0,.67083],934:[0,.68611,0,0,.76666],936:[0,.68611,.11653,0,.71402],937:[0,.68611,.04835,0,.8789],945:[0,.44444,0,0,.76064],946:[.19444,.69444,.03403,0,.65972],947:[.19444,.44444,.06389,0,.59003],948:[0,.69444,.03819,0,.52222],949:[0,.44444,0,0,.52882],950:[.19444,.69444,.06215,0,.50833],951:[.19444,.44444,.03704,0,.6],952:[0,.69444,.03194,0,.5618],953:[0,.44444,0,0,.41204],954:[0,.44444,0,0,.66759],955:[0,.69444,0,0,.67083],956:[.19444,.44444,0,0,.70787],957:[0,.44444,.06898,0,.57685],958:[.19444,.69444,.03021,0,.50833],959:[0,.44444,0,0,.58472],960:[0,.44444,.03704,0,.68241],961:[.19444,.44444,0,0,.6118],962:[.09722,.44444,.07917,0,.42361],963:[0,.44444,.03704,0,.68588],964:[0,.44444,.13472,0,.52083],965:[0,.44444,.03704,0,.63055],966:[.19444,.44444,0,0,.74722],967:[.19444,.44444,0,0,.71805],968:[.19444,.69444,.03704,0,.75833],969:[0,.44444,.03704,0,.71782],977:[0,.69444,0,0,.69155],981:[.19444,.69444,0,0,.7125],982:[0,.44444,.03194,0,.975],1009:[.19444,.44444,0,0,.6118],1013:[0,.44444,0,0,.48333],57649:[0,.44444,0,0,.39352],57911:[.19444,.44444,0,0,.43889]},"Math-Italic":{32:[0,0,0,0,.25],48:[0,.43056,0,0,.5],49:[0,.43056,0,0,.5],50:[0,.43056,0,0,.5],51:[.19444,.43056,0,0,.5],52:[.19444,.43056,0,0,.5],53:[.19444,.43056,0,0,.5],54:[0,.64444,0,0,.5],55:[.19444,.43056,0,0,.5],56:[0,.64444,0,0,.5],57:[.19444,.43056,0,0,.5],65:[0,.68333,0,.13889,.75],66:[0,.68333,.05017,.08334,.75851],67:[0,.68333,.07153,.08334,.71472],68:[0,.68333,.02778,.05556,.82792],69:[0,.68333,.05764,.08334,.7382],70:[0,.68333,.13889,.08334,.64306],71:[0,.68333,0,.08334,.78625],72:[0,.68333,.08125,.05556,.83125],73:[0,.68333,.07847,.11111,.43958],74:[0,.68333,.09618,.16667,.55451],75:[0,.68333,.07153,.05556,.84931],76:[0,.68333,0,.02778,.68056],77:[0,.68333,.10903,.08334,.97014],78:[0,.68333,.10903,.08334,.80347],79:[0,.68333,.02778,.08334,.76278],80:[0,.68333,.13889,.08334,.64201],81:[.19444,.68333,0,.08334,.79056],82:[0,.68333,.00773,.08334,.75929],83:[0,.68333,.05764,.08334,.6132],84:[0,.68333,.13889,.08334,.58438],85:[0,.68333,.10903,.02778,.68278],86:[0,.68333,.22222,0,.58333],87:[0,.68333,.13889,0,.94445],88:[0,.68333,.07847,.08334,.82847],89:[0,.68333,.22222,0,.58056],90:[0,.68333,.07153,.08334,.68264],97:[0,.43056,0,0,.52859],98:[0,.69444,0,0,.42917],99:[0,.43056,0,.05556,.43276],100:[0,.69444,0,.16667,.52049],101:[0,.43056,0,.05556,.46563],102:[.19444,.69444,.10764,.16667,.48959],103:[.19444,.43056,.03588,.02778,.47697],104:[0,.69444,0,0,.57616],105:[0,.65952,0,0,.34451],106:[.19444,.65952,.05724,0,.41181],107:[0,.69444,.03148,0,.5206],108:[0,.69444,.01968,.08334,.29838],109:[0,.43056,0,0,.87801],110:[0,.43056,0,0,.60023],111:[0,.43056,0,.05556,.48472],112:[.19444,.43056,0,.08334,.50313],113:[.19444,.43056,.03588,.08334,.44641],114:[0,.43056,.02778,.05556,.45116],115:[0,.43056,0,.05556,.46875],116:[0,.61508,0,.08334,.36111],117:[0,.43056,0,.02778,.57246],118:[0,.43056,.03588,.02778,.48472],119:[0,.43056,.02691,.08334,.71592],120:[0,.43056,0,.02778,.57153],121:[.19444,.43056,.03588,.05556,.49028],122:[0,.43056,.04398,.05556,.46505],160:[0,0,0,0,.25],915:[0,.68333,.13889,.08334,.61528],916:[0,.68333,0,.16667,.83334],920:[0,.68333,.02778,.08334,.76278],923:[0,.68333,0,.16667,.69445],926:[0,.68333,.07569,.08334,.74236],928:[0,.68333,.08125,.05556,.83125],931:[0,.68333,.05764,.08334,.77986],933:[0,.68333,.13889,.05556,.58333],934:[0,.68333,0,.08334,.66667],936:[0,.68333,.11,.05556,.61222],937:[0,.68333,.05017,.08334,.7724],945:[0,.43056,.0037,.02778,.6397],946:[.19444,.69444,.05278,.08334,.56563],947:[.19444,.43056,.05556,0,.51773],948:[0,.69444,.03785,.05556,.44444],949:[0,.43056,0,.08334,.46632],950:[.19444,.69444,.07378,.08334,.4375],951:[.19444,.43056,.03588,.05556,.49653],952:[0,.69444,.02778,.08334,.46944],953:[0,.43056,0,.05556,.35394],954:[0,.43056,0,0,.57616],955:[0,.69444,0,0,.58334],956:[.19444,.43056,0,.02778,.60255],957:[0,.43056,.06366,.02778,.49398],958:[.19444,.69444,.04601,.11111,.4375],959:[0,.43056,0,.05556,.48472],960:[0,.43056,.03588,0,.57003],961:[.19444,.43056,0,.08334,.51702],962:[.09722,.43056,.07986,.08334,.36285],963:[0,.43056,.03588,0,.57141],964:[0,.43056,.1132,.02778,.43715],965:[0,.43056,.03588,.02778,.54028],966:[.19444,.43056,0,.08334,.65417],967:[.19444,.43056,0,.05556,.62569],968:[.19444,.69444,.03588,.11111,.65139],969:[0,.43056,.03588,0,.62245],977:[0,.69444,0,.08334,.59144],981:[.19444,.69444,0,.08334,.59583],982:[0,.43056,.02778,0,.82813],1009:[.19444,.43056,0,.08334,.51702],1013:[0,.43056,0,.05556,.4059],57649:[0,.43056,0,.02778,.32246],57911:[.19444,.43056,0,.08334,.38403]},"SansSerif-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.36667],34:[0,.69444,0,0,.55834],35:[.19444,.69444,0,0,.91667],36:[.05556,.75,0,0,.55],37:[.05556,.75,0,0,1.02912],38:[0,.69444,0,0,.83056],39:[0,.69444,0,0,.30556],40:[.25,.75,0,0,.42778],41:[.25,.75,0,0,.42778],42:[0,.75,0,0,.55],43:[.11667,.61667,0,0,.85556],44:[.10556,.13056,0,0,.30556],45:[0,.45833,0,0,.36667],46:[0,.13056,0,0,.30556],47:[.25,.75,0,0,.55],48:[0,.69444,0,0,.55],49:[0,.69444,0,0,.55],50:[0,.69444,0,0,.55],51:[0,.69444,0,0,.55],52:[0,.69444,0,0,.55],53:[0,.69444,0,0,.55],54:[0,.69444,0,0,.55],55:[0,.69444,0,0,.55],56:[0,.69444,0,0,.55],57:[0,.69444,0,0,.55],58:[0,.45833,0,0,.30556],59:[.10556,.45833,0,0,.30556],61:[-.09375,.40625,0,0,.85556],63:[0,.69444,0,0,.51945],64:[0,.69444,0,0,.73334],65:[0,.69444,0,0,.73334],66:[0,.69444,0,0,.73334],67:[0,.69444,0,0,.70278],68:[0,.69444,0,0,.79445],69:[0,.69444,0,0,.64167],70:[0,.69444,0,0,.61111],71:[0,.69444,0,0,.73334],72:[0,.69444,0,0,.79445],73:[0,.69444,0,0,.33056],74:[0,.69444,0,0,.51945],75:[0,.69444,0,0,.76389],76:[0,.69444,0,0,.58056],77:[0,.69444,0,0,.97778],78:[0,.69444,0,0,.79445],79:[0,.69444,0,0,.79445],80:[0,.69444,0,0,.70278],81:[.10556,.69444,0,0,.79445],82:[0,.69444,0,0,.70278],83:[0,.69444,0,0,.61111],84:[0,.69444,0,0,.73334],85:[0,.69444,0,0,.76389],86:[0,.69444,.01528,0,.73334],87:[0,.69444,.01528,0,1.03889],88:[0,.69444,0,0,.73334],89:[0,.69444,.0275,0,.73334],90:[0,.69444,0,0,.67223],91:[.25,.75,0,0,.34306],93:[.25,.75,0,0,.34306],94:[0,.69444,0,0,.55],95:[.35,.10833,.03056,0,.55],97:[0,.45833,0,0,.525],98:[0,.69444,0,0,.56111],99:[0,.45833,0,0,.48889],100:[0,.69444,0,0,.56111],101:[0,.45833,0,0,.51111],102:[0,.69444,.07639,0,.33611],103:[.19444,.45833,.01528,0,.55],104:[0,.69444,0,0,.56111],105:[0,.69444,0,0,.25556],106:[.19444,.69444,0,0,.28611],107:[0,.69444,0,0,.53056],108:[0,.69444,0,0,.25556],109:[0,.45833,0,0,.86667],110:[0,.45833,0,0,.56111],111:[0,.45833,0,0,.55],112:[.19444,.45833,0,0,.56111],113:[.19444,.45833,0,0,.56111],114:[0,.45833,.01528,0,.37222],115:[0,.45833,0,0,.42167],116:[0,.58929,0,0,.40417],117:[0,.45833,0,0,.56111],118:[0,.45833,.01528,0,.5],119:[0,.45833,.01528,0,.74445],120:[0,.45833,0,0,.5],121:[.19444,.45833,.01528,0,.5],122:[0,.45833,0,0,.47639],126:[.35,.34444,0,0,.55],160:[0,0,0,0,.25],168:[0,.69444,0,0,.55],176:[0,.69444,0,0,.73334],180:[0,.69444,0,0,.55],184:[.17014,0,0,0,.48889],305:[0,.45833,0,0,.25556],567:[.19444,.45833,0,0,.28611],710:[0,.69444,0,0,.55],711:[0,.63542,0,0,.55],713:[0,.63778,0,0,.55],728:[0,.69444,0,0,.55],729:[0,.69444,0,0,.30556],730:[0,.69444,0,0,.73334],732:[0,.69444,0,0,.55],733:[0,.69444,0,0,.55],915:[0,.69444,0,0,.58056],916:[0,.69444,0,0,.91667],920:[0,.69444,0,0,.85556],923:[0,.69444,0,0,.67223],926:[0,.69444,0,0,.73334],928:[0,.69444,0,0,.79445],931:[0,.69444,0,0,.79445],933:[0,.69444,0,0,.85556],934:[0,.69444,0,0,.79445],936:[0,.69444,0,0,.85556],937:[0,.69444,0,0,.79445],8211:[0,.45833,.03056,0,.55],8212:[0,.45833,.03056,0,1.10001],8216:[0,.69444,0,0,.30556],8217:[0,.69444,0,0,.30556],8220:[0,.69444,0,0,.55834],8221:[0,.69444,0,0,.55834]},"SansSerif-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.05733,0,.31945],34:[0,.69444,.00316,0,.5],35:[.19444,.69444,.05087,0,.83334],36:[.05556,.75,.11156,0,.5],37:[.05556,.75,.03126,0,.83334],38:[0,.69444,.03058,0,.75834],39:[0,.69444,.07816,0,.27778],40:[.25,.75,.13164,0,.38889],41:[.25,.75,.02536,0,.38889],42:[0,.75,.11775,0,.5],43:[.08333,.58333,.02536,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,.01946,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,.13164,0,.5],48:[0,.65556,.11156,0,.5],49:[0,.65556,.11156,0,.5],50:[0,.65556,.11156,0,.5],51:[0,.65556,.11156,0,.5],52:[0,.65556,.11156,0,.5],53:[0,.65556,.11156,0,.5],54:[0,.65556,.11156,0,.5],55:[0,.65556,.11156,0,.5],56:[0,.65556,.11156,0,.5],57:[0,.65556,.11156,0,.5],58:[0,.44444,.02502,0,.27778],59:[.125,.44444,.02502,0,.27778],61:[-.13,.37,.05087,0,.77778],63:[0,.69444,.11809,0,.47222],64:[0,.69444,.07555,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,.08293,0,.66667],67:[0,.69444,.11983,0,.63889],68:[0,.69444,.07555,0,.72223],69:[0,.69444,.11983,0,.59722],70:[0,.69444,.13372,0,.56945],71:[0,.69444,.11983,0,.66667],72:[0,.69444,.08094,0,.70834],73:[0,.69444,.13372,0,.27778],74:[0,.69444,.08094,0,.47222],75:[0,.69444,.11983,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,.08094,0,.875],78:[0,.69444,.08094,0,.70834],79:[0,.69444,.07555,0,.73611],80:[0,.69444,.08293,0,.63889],81:[.125,.69444,.07555,0,.73611],82:[0,.69444,.08293,0,.64584],83:[0,.69444,.09205,0,.55556],84:[0,.69444,.13372,0,.68056],85:[0,.69444,.08094,0,.6875],86:[0,.69444,.1615,0,.66667],87:[0,.69444,.1615,0,.94445],88:[0,.69444,.13372,0,.66667],89:[0,.69444,.17261,0,.66667],90:[0,.69444,.11983,0,.61111],91:[.25,.75,.15942,0,.28889],93:[.25,.75,.08719,0,.28889],94:[0,.69444,.0799,0,.5],95:[.35,.09444,.08616,0,.5],97:[0,.44444,.00981,0,.48056],98:[0,.69444,.03057,0,.51667],99:[0,.44444,.08336,0,.44445],100:[0,.69444,.09483,0,.51667],101:[0,.44444,.06778,0,.44445],102:[0,.69444,.21705,0,.30556],103:[.19444,.44444,.10836,0,.5],104:[0,.69444,.01778,0,.51667],105:[0,.67937,.09718,0,.23889],106:[.19444,.67937,.09162,0,.26667],107:[0,.69444,.08336,0,.48889],108:[0,.69444,.09483,0,.23889],109:[0,.44444,.01778,0,.79445],110:[0,.44444,.01778,0,.51667],111:[0,.44444,.06613,0,.5],112:[.19444,.44444,.0389,0,.51667],113:[.19444,.44444,.04169,0,.51667],114:[0,.44444,.10836,0,.34167],115:[0,.44444,.0778,0,.38333],116:[0,.57143,.07225,0,.36111],117:[0,.44444,.04169,0,.51667],118:[0,.44444,.10836,0,.46111],119:[0,.44444,.10836,0,.68334],120:[0,.44444,.09169,0,.46111],121:[.19444,.44444,.10836,0,.46111],122:[0,.44444,.08752,0,.43472],126:[.35,.32659,.08826,0,.5],160:[0,0,0,0,.25],168:[0,.67937,.06385,0,.5],176:[0,.69444,0,0,.73752],184:[.17014,0,0,0,.44445],305:[0,.44444,.04169,0,.23889],567:[.19444,.44444,.04169,0,.26667],710:[0,.69444,.0799,0,.5],711:[0,.63194,.08432,0,.5],713:[0,.60889,.08776,0,.5],714:[0,.69444,.09205,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,.09483,0,.5],729:[0,.67937,.07774,0,.27778],730:[0,.69444,0,0,.73752],732:[0,.67659,.08826,0,.5],733:[0,.69444,.09205,0,.5],915:[0,.69444,.13372,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,.07555,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,.12816,0,.66667],928:[0,.69444,.08094,0,.70834],931:[0,.69444,.11983,0,.72222],933:[0,.69444,.09031,0,.77778],934:[0,.69444,.04603,0,.72222],936:[0,.69444,.09031,0,.77778],937:[0,.69444,.08293,0,.72222],8211:[0,.44444,.08616,0,.5],8212:[0,.44444,.08616,0,1],8216:[0,.69444,.07816,0,.27778],8217:[0,.69444,.07816,0,.27778],8220:[0,.69444,.14205,0,.5],8221:[0,.69444,.00316,0,.5]},"SansSerif-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.31945],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.75834],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,0,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.65556,0,0,.5],49:[0,.65556,0,0,.5],50:[0,.65556,0,0,.5],51:[0,.65556,0,0,.5],52:[0,.65556,0,0,.5],53:[0,.65556,0,0,.5],54:[0,.65556,0,0,.5],55:[0,.65556,0,0,.5],56:[0,.65556,0,0,.5],57:[0,.65556,0,0,.5],58:[0,.44444,0,0,.27778],59:[.125,.44444,0,0,.27778],61:[-.13,.37,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,0,0,.66667],67:[0,.69444,0,0,.63889],68:[0,.69444,0,0,.72223],69:[0,.69444,0,0,.59722],70:[0,.69444,0,0,.56945],71:[0,.69444,0,0,.66667],72:[0,.69444,0,0,.70834],73:[0,.69444,0,0,.27778],74:[0,.69444,0,0,.47222],75:[0,.69444,0,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,0,0,.875],78:[0,.69444,0,0,.70834],79:[0,.69444,0,0,.73611],80:[0,.69444,0,0,.63889],81:[.125,.69444,0,0,.73611],82:[0,.69444,0,0,.64584],83:[0,.69444,0,0,.55556],84:[0,.69444,0,0,.68056],85:[0,.69444,0,0,.6875],86:[0,.69444,.01389,0,.66667],87:[0,.69444,.01389,0,.94445],88:[0,.69444,0,0,.66667],89:[0,.69444,.025,0,.66667],90:[0,.69444,0,0,.61111],91:[.25,.75,0,0,.28889],93:[.25,.75,0,0,.28889],94:[0,.69444,0,0,.5],95:[.35,.09444,.02778,0,.5],97:[0,.44444,0,0,.48056],98:[0,.69444,0,0,.51667],99:[0,.44444,0,0,.44445],100:[0,.69444,0,0,.51667],101:[0,.44444,0,0,.44445],102:[0,.69444,.06944,0,.30556],103:[.19444,.44444,.01389,0,.5],104:[0,.69444,0,0,.51667],105:[0,.67937,0,0,.23889],106:[.19444,.67937,0,0,.26667],107:[0,.69444,0,0,.48889],108:[0,.69444,0,0,.23889],109:[0,.44444,0,0,.79445],110:[0,.44444,0,0,.51667],111:[0,.44444,0,0,.5],112:[.19444,.44444,0,0,.51667],113:[.19444,.44444,0,0,.51667],114:[0,.44444,.01389,0,.34167],115:[0,.44444,0,0,.38333],116:[0,.57143,0,0,.36111],117:[0,.44444,0,0,.51667],118:[0,.44444,.01389,0,.46111],119:[0,.44444,.01389,0,.68334],120:[0,.44444,0,0,.46111],121:[.19444,.44444,.01389,0,.46111],122:[0,.44444,0,0,.43472],126:[.35,.32659,0,0,.5],160:[0,0,0,0,.25],168:[0,.67937,0,0,.5],176:[0,.69444,0,0,.66667],184:[.17014,0,0,0,.44445],305:[0,.44444,0,0,.23889],567:[.19444,.44444,0,0,.26667],710:[0,.69444,0,0,.5],711:[0,.63194,0,0,.5],713:[0,.60889,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.67937,0,0,.27778],730:[0,.69444,0,0,.66667],732:[0,.67659,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.69444,0,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,0,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,0,0,.66667],928:[0,.69444,0,0,.70834],931:[0,.69444,0,0,.72222],933:[0,.69444,0,0,.77778],934:[0,.69444,0,0,.72222],936:[0,.69444,0,0,.77778],937:[0,.69444,0,0,.72222],8211:[0,.44444,.02778,0,.5],8212:[0,.44444,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5]},"Script-Regular":{32:[0,0,0,0,.25],65:[0,.7,.22925,0,.80253],66:[0,.7,.04087,0,.90757],67:[0,.7,.1689,0,.66619],68:[0,.7,.09371,0,.77443],69:[0,.7,.18583,0,.56162],70:[0,.7,.13634,0,.89544],71:[0,.7,.17322,0,.60961],72:[0,.7,.29694,0,.96919],73:[0,.7,.19189,0,.80907],74:[.27778,.7,.19189,0,1.05159],75:[0,.7,.31259,0,.91364],76:[0,.7,.19189,0,.87373],77:[0,.7,.15981,0,1.08031],78:[0,.7,.3525,0,.9015],79:[0,.7,.08078,0,.73787],80:[0,.7,.08078,0,1.01262],81:[0,.7,.03305,0,.88282],82:[0,.7,.06259,0,.85],83:[0,.7,.19189,0,.86767],84:[0,.7,.29087,0,.74697],85:[0,.7,.25815,0,.79996],86:[0,.7,.27523,0,.62204],87:[0,.7,.27523,0,.80532],88:[0,.7,.26006,0,.94445],89:[0,.7,.2939,0,.70961],90:[0,.7,.24037,0,.8212],160:[0,0,0,0,.25]},"Size1-Regular":{32:[0,0,0,0,.25],40:[.35001,.85,0,0,.45834],41:[.35001,.85,0,0,.45834],47:[.35001,.85,0,0,.57778],91:[.35001,.85,0,0,.41667],92:[.35001,.85,0,0,.57778],93:[.35001,.85,0,0,.41667],123:[.35001,.85,0,0,.58334],125:[.35001,.85,0,0,.58334],160:[0,0,0,0,.25],710:[0,.72222,0,0,.55556],732:[0,.72222,0,0,.55556],770:[0,.72222,0,0,.55556],771:[0,.72222,0,0,.55556],8214:[-99e-5,.601,0,0,.77778],8593:[1e-5,.6,0,0,.66667],8595:[1e-5,.6,0,0,.66667],8657:[1e-5,.6,0,0,.77778],8659:[1e-5,.6,0,0,.77778],8719:[.25001,.75,0,0,.94445],8720:[.25001,.75,0,0,.94445],8721:[.25001,.75,0,0,1.05556],8730:[.35001,.85,0,0,1],8739:[-.00599,.606,0,0,.33333],8741:[-.00599,.606,0,0,.55556],8747:[.30612,.805,.19445,0,.47222],8748:[.306,.805,.19445,0,.47222],8749:[.306,.805,.19445,0,.47222],8750:[.30612,.805,.19445,0,.47222],8896:[.25001,.75,0,0,.83334],8897:[.25001,.75,0,0,.83334],8898:[.25001,.75,0,0,.83334],8899:[.25001,.75,0,0,.83334],8968:[.35001,.85,0,0,.47222],8969:[.35001,.85,0,0,.47222],8970:[.35001,.85,0,0,.47222],8971:[.35001,.85,0,0,.47222],9168:[-99e-5,.601,0,0,.66667],10216:[.35001,.85,0,0,.47222],10217:[.35001,.85,0,0,.47222],10752:[.25001,.75,0,0,1.11111],10753:[.25001,.75,0,0,1.11111],10754:[.25001,.75,0,0,1.11111],10756:[.25001,.75,0,0,.83334],10758:[.25001,.75,0,0,.83334]},"Size2-Regular":{32:[0,0,0,0,.25],40:[.65002,1.15,0,0,.59722],41:[.65002,1.15,0,0,.59722],47:[.65002,1.15,0,0,.81111],91:[.65002,1.15,0,0,.47222],92:[.65002,1.15,0,0,.81111],93:[.65002,1.15,0,0,.47222],123:[.65002,1.15,0,0,.66667],125:[.65002,1.15,0,0,.66667],160:[0,0,0,0,.25],710:[0,.75,0,0,1],732:[0,.75,0,0,1],770:[0,.75,0,0,1],771:[0,.75,0,0,1],8719:[.55001,1.05,0,0,1.27778],8720:[.55001,1.05,0,0,1.27778],8721:[.55001,1.05,0,0,1.44445],8730:[.65002,1.15,0,0,1],8747:[.86225,1.36,.44445,0,.55556],8748:[.862,1.36,.44445,0,.55556],8749:[.862,1.36,.44445,0,.55556],8750:[.86225,1.36,.44445,0,.55556],8896:[.55001,1.05,0,0,1.11111],8897:[.55001,1.05,0,0,1.11111],8898:[.55001,1.05,0,0,1.11111],8899:[.55001,1.05,0,0,1.11111],8968:[.65002,1.15,0,0,.52778],8969:[.65002,1.15,0,0,.52778],8970:[.65002,1.15,0,0,.52778],8971:[.65002,1.15,0,0,.52778],10216:[.65002,1.15,0,0,.61111],10217:[.65002,1.15,0,0,.61111],10752:[.55001,1.05,0,0,1.51112],10753:[.55001,1.05,0,0,1.51112],10754:[.55001,1.05,0,0,1.51112],10756:[.55001,1.05,0,0,1.11111],10758:[.55001,1.05,0,0,1.11111]},"Size3-Regular":{32:[0,0,0,0,.25],40:[.95003,1.45,0,0,.73611],41:[.95003,1.45,0,0,.73611],47:[.95003,1.45,0,0,1.04445],91:[.95003,1.45,0,0,.52778],92:[.95003,1.45,0,0,1.04445],93:[.95003,1.45,0,0,.52778],123:[.95003,1.45,0,0,.75],125:[.95003,1.45,0,0,.75],160:[0,0,0,0,.25],710:[0,.75,0,0,1.44445],732:[0,.75,0,0,1.44445],770:[0,.75,0,0,1.44445],771:[0,.75,0,0,1.44445],8730:[.95003,1.45,0,0,1],8968:[.95003,1.45,0,0,.58334],8969:[.95003,1.45,0,0,.58334],8970:[.95003,1.45,0,0,.58334],8971:[.95003,1.45,0,0,.58334],10216:[.95003,1.45,0,0,.75],10217:[.95003,1.45,0,0,.75]},"Size4-Regular":{32:[0,0,0,0,.25],40:[1.25003,1.75,0,0,.79167],41:[1.25003,1.75,0,0,.79167],47:[1.25003,1.75,0,0,1.27778],91:[1.25003,1.75,0,0,.58334],92:[1.25003,1.75,0,0,1.27778],93:[1.25003,1.75,0,0,.58334],123:[1.25003,1.75,0,0,.80556],125:[1.25003,1.75,0,0,.80556],160:[0,0,0,0,.25],710:[0,.825,0,0,1.8889],732:[0,.825,0,0,1.8889],770:[0,.825,0,0,1.8889],771:[0,.825,0,0,1.8889],8730:[1.25003,1.75,0,0,1],8968:[1.25003,1.75,0,0,.63889],8969:[1.25003,1.75,0,0,.63889],8970:[1.25003,1.75,0,0,.63889],8971:[1.25003,1.75,0,0,.63889],9115:[.64502,1.155,0,0,.875],9116:[1e-5,.6,0,0,.875],9117:[.64502,1.155,0,0,.875],9118:[.64502,1.155,0,0,.875],9119:[1e-5,.6,0,0,.875],9120:[.64502,1.155,0,0,.875],9121:[.64502,1.155,0,0,.66667],9122:[-99e-5,.601,0,0,.66667],9123:[.64502,1.155,0,0,.66667],9124:[.64502,1.155,0,0,.66667],9125:[-99e-5,.601,0,0,.66667],9126:[.64502,1.155,0,0,.66667],9127:[1e-5,.9,0,0,.88889],9128:[.65002,1.15,0,0,.88889],9129:[.90001,0,0,0,.88889],9130:[0,.3,0,0,.88889],9131:[1e-5,.9,0,0,.88889],9132:[.65002,1.15,0,0,.88889],9133:[.90001,0,0,0,.88889],9143:[.88502,.915,0,0,1.05556],10216:[1.25003,1.75,0,0,.80556],10217:[1.25003,1.75,0,0,.80556],57344:[-.00499,.605,0,0,1.05556],57345:[-.00499,.605,0,0,1.05556],57680:[0,.12,0,0,.45],57681:[0,.12,0,0,.45],57682:[0,.12,0,0,.45],57683:[0,.12,0,0,.45]},"Typewriter-Regular":{32:[0,0,0,0,.525],33:[0,.61111,0,0,.525],34:[0,.61111,0,0,.525],35:[0,.61111,0,0,.525],36:[.08333,.69444,0,0,.525],37:[.08333,.69444,0,0,.525],38:[0,.61111,0,0,.525],39:[0,.61111,0,0,.525],40:[.08333,.69444,0,0,.525],41:[.08333,.69444,0,0,.525],42:[0,.52083,0,0,.525],43:[-.08056,.53055,0,0,.525],44:[.13889,.125,0,0,.525],45:[-.08056,.53055,0,0,.525],46:[0,.125,0,0,.525],47:[.08333,.69444,0,0,.525],48:[0,.61111,0,0,.525],49:[0,.61111,0,0,.525],50:[0,.61111,0,0,.525],51:[0,.61111,0,0,.525],52:[0,.61111,0,0,.525],53:[0,.61111,0,0,.525],54:[0,.61111,0,0,.525],55:[0,.61111,0,0,.525],56:[0,.61111,0,0,.525],57:[0,.61111,0,0,.525],58:[0,.43056,0,0,.525],59:[.13889,.43056,0,0,.525],60:[-.05556,.55556,0,0,.525],61:[-.19549,.41562,0,0,.525],62:[-.05556,.55556,0,0,.525],63:[0,.61111,0,0,.525],64:[0,.61111,0,0,.525],65:[0,.61111,0,0,.525],66:[0,.61111,0,0,.525],67:[0,.61111,0,0,.525],68:[0,.61111,0,0,.525],69:[0,.61111,0,0,.525],70:[0,.61111,0,0,.525],71:[0,.61111,0,0,.525],72:[0,.61111,0,0,.525],73:[0,.61111,0,0,.525],74:[0,.61111,0,0,.525],75:[0,.61111,0,0,.525],76:[0,.61111,0,0,.525],77:[0,.61111,0,0,.525],78:[0,.61111,0,0,.525],79:[0,.61111,0,0,.525],80:[0,.61111,0,0,.525],81:[.13889,.61111,0,0,.525],82:[0,.61111,0,0,.525],83:[0,.61111,0,0,.525],84:[0,.61111,0,0,.525],85:[0,.61111,0,0,.525],86:[0,.61111,0,0,.525],87:[0,.61111,0,0,.525],88:[0,.61111,0,0,.525],89:[0,.61111,0,0,.525],90:[0,.61111,0,0,.525],91:[.08333,.69444,0,0,.525],92:[.08333,.69444,0,0,.525],93:[.08333,.69444,0,0,.525],94:[0,.61111,0,0,.525],95:[.09514,0,0,0,.525],96:[0,.61111,0,0,.525],97:[0,.43056,0,0,.525],98:[0,.61111,0,0,.525],99:[0,.43056,0,0,.525],100:[0,.61111,0,0,.525],101:[0,.43056,0,0,.525],102:[0,.61111,0,0,.525],103:[.22222,.43056,0,0,.525],104:[0,.61111,0,0,.525],105:[0,.61111,0,0,.525],106:[.22222,.61111,0,0,.525],107:[0,.61111,0,0,.525],108:[0,.61111,0,0,.525],109:[0,.43056,0,0,.525],110:[0,.43056,0,0,.525],111:[0,.43056,0,0,.525],112:[.22222,.43056,0,0,.525],113:[.22222,.43056,0,0,.525],114:[0,.43056,0,0,.525],115:[0,.43056,0,0,.525],116:[0,.55358,0,0,.525],117:[0,.43056,0,0,.525],118:[0,.43056,0,0,.525],119:[0,.43056,0,0,.525],120:[0,.43056,0,0,.525],121:[.22222,.43056,0,0,.525],122:[0,.43056,0,0,.525],123:[.08333,.69444,0,0,.525],124:[.08333,.69444,0,0,.525],125:[.08333,.69444,0,0,.525],126:[0,.61111,0,0,.525],127:[0,.61111,0,0,.525],160:[0,0,0,0,.525],176:[0,.61111,0,0,.525],184:[.19445,0,0,0,.525],305:[0,.43056,0,0,.525],567:[.22222,.43056,0,0,.525],711:[0,.56597,0,0,.525],713:[0,.56555,0,0,.525],714:[0,.61111,0,0,.525],715:[0,.61111,0,0,.525],728:[0,.61111,0,0,.525],730:[0,.61111,0,0,.525],770:[0,.61111,0,0,.525],771:[0,.61111,0,0,.525],776:[0,.61111,0,0,.525],915:[0,.61111,0,0,.525],916:[0,.61111,0,0,.525],920:[0,.61111,0,0,.525],923:[0,.61111,0,0,.525],926:[0,.61111,0,0,.525],928:[0,.61111,0,0,.525],931:[0,.61111,0,0,.525],933:[0,.61111,0,0,.525],934:[0,.61111,0,0,.525],936:[0,.61111,0,0,.525],937:[0,.61111,0,0,.525],8216:[0,.61111,0,0,.525],8217:[0,.61111,0,0,.525],8242:[0,.61111,0,0,.525],9251:[.11111,.21944,0,0,.525]}},iw={slant:[.25,.25,.25],space:[0,0,0],stretch:[0,0,0],shrink:[0,0,0],xHeight:[.431,.431,.431],quad:[1,1.171,1.472],extraSpace:[0,0,0],num1:[.677,.732,.925],num2:[.394,.384,.387],num3:[.444,.471,.504],denom1:[.686,.752,1.025],denom2:[.345,.344,.532],sup1:[.413,.503,.504],sup2:[.363,.431,.404],sup3:[.289,.286,.294],sub1:[.15,.143,.2],sub2:[.247,.286,.4],supDrop:[.386,.353,.494],subDrop:[.05,.071,.1],delim1:[2.39,1.7,1.98],delim2:[1.01,1.157,1.42],axisHeight:[.25,.25,.25],defaultRuleThickness:[.04,.049,.049],bigOpSpacing1:[.111,.111,.111],bigOpSpacing2:[.166,.166,.166],bigOpSpacing3:[.2,.2,.2],bigOpSpacing4:[.6,.611,.611],bigOpSpacing5:[.1,.143,.143],sqrtRuleThickness:[.04,.04,.04],ptPerEm:[10,10,10],doubleRuleSep:[.2,.2,.2],arrayRuleWidth:[.04,.04,.04],fboxsep:[.3,.3,.3],fboxrule:[.04,.04,.04]},BY={\u00C5:"A",\u00D0:"D",\u00DE:"o",\u00E5:"a",\u00F0:"d",\u00FE:"o",\u0410:"A",\u0411:"B",\u0412:"B",\u0413:"F",\u0414:"A",\u0415:"E",\u0416:"K",\u0417:"3",\u0418:"N",\u0419:"N",\u041A:"K",\u041B:"N",\u041C:"M",\u041D:"H",\u041E:"O",\u041F:"N",\u0420:"P",\u0421:"C",\u0422:"T",\u0423:"y",\u0424:"O",\u0425:"X",\u0426:"U",\u0427:"h",\u0428:"W",\u0429:"W",\u042A:"B",\u042B:"X",\u042C:"B",\u042D:"3",\u042E:"X",\u042F:"R",\u0430:"a",\u0431:"b",\u0432:"a",\u0433:"r",\u0434:"y",\u0435:"e",\u0436:"m",\u0437:"e",\u0438:"n",\u0439:"n",\u043A:"n",\u043B:"n",\u043C:"m",\u043D:"n",\u043E:"o",\u043F:"n",\u0440:"p",\u0441:"c",\u0442:"o",\u0443:"y",\u0444:"b",\u0445:"x",\u0446:"n",\u0447:"n",\u0448:"w",\u0449:"w",\u044A:"a",\u044B:"m",\u044C:"a",\u044D:"e",\u044E:"m",\u044F:"r"};o(mj,"setFontMetrics");o(Z8,"getCharacterMetrics");C8={};o(f_e,"getGlobalMetrics");d_e=[[1,1,1],[2,1,1],[3,1,1],[4,2,1],[5,2,1],[6,3,1],[7,4,2],[8,6,3],[9,7,6],[10,8,7],[11,10,9]],FY=[.5,.6,.7,.8,.9,1,1.2,1.44,1.728,2.074,2.488],$Y=o(function(e,r){return r.size<2?e:d_e[e-1][r.size-1]},"sizeAtStyle"),yw=class t{static{o(this,"Options")}constructor(e){this.style=void 0,this.color=void 0,this.size=void 0,this.textSize=void 0,this.phantom=void 0,this.font=void 0,this.fontFamily=void 0,this.fontWeight=void 0,this.fontShape=void 0,this.sizeMultiplier=void 0,this.maxSize=void 0,this.minRuleThickness=void 0,this._fontMetrics=void 0,this.style=e.style,this.color=e.color,this.size=e.size||t.BASESIZE,this.textSize=e.textSize||this.size,this.phantom=!!e.phantom,this.font=e.font||"",this.fontFamily=e.fontFamily||"",this.fontWeight=e.fontWeight||"",this.fontShape=e.fontShape||"",this.sizeMultiplier=FY[this.size-1],this.maxSize=e.maxSize,this.minRuleThickness=e.minRuleThickness,this._fontMetrics=void 0}extend(e){var r={style:this.style,size:this.size,textSize:this.textSize,color:this.color,phantom:this.phantom,font:this.font,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontShape:this.fontShape,maxSize:this.maxSize,minRuleThickness:this.minRuleThickness};for(var n in e)e.hasOwnProperty(n)&&(r[n]=e[n]);return new t(r)}havingStyle(e){return this.style===e?this:this.extend({style:e,size:$Y(this.textSize,e)})}havingCrampedStyle(){return this.havingStyle(this.style.cramp())}havingSize(e){return this.size===e&&this.textSize===e?this:this.extend({style:this.style.text(),size:e,textSize:e,sizeMultiplier:FY[e-1]})}havingBaseStyle(e){e=e||this.style.text();var r=$Y(t.BASESIZE,e);return this.size===r&&this.textSize===t.BASESIZE&&this.style===e?this:this.extend({style:e,size:r})}havingBaseSizing(){var e;switch(this.style.id){case 4:case 5:e=3;break;case 6:case 7:e=1;break;default:e=6}return this.extend({style:this.style.text(),size:e})}withColor(e){return this.extend({color:e})}withPhantom(){return this.extend({phantom:!0})}withFont(e){return this.extend({font:e})}withTextFontFamily(e){return this.extend({fontFamily:e,font:""})}withTextFontWeight(e){return this.extend({fontWeight:e,font:""})}withTextFontShape(e){return this.extend({fontShape:e,font:""})}sizingClasses(e){return e.size!==this.size?["sizing","reset-size"+e.size,"size"+this.size]:[]}baseSizingClasses(){return this.size!==t.BASESIZE?["sizing","reset-size"+this.size,"size"+t.BASESIZE]:[]}fontMetrics(){return this._fontMetrics||(this._fontMetrics=f_e(this.size)),this._fontMetrics}getColor(){return this.phantom?"transparent":this.color}};yw.BASESIZE=6;z8={pt:1,mm:7227/2540,cm:7227/254,in:72.27,bp:803/800,pc:12,dd:1238/1157,cc:14856/1157,nd:685/642,nc:1370/107,sp:1/65536,px:803/800},p_e={ex:!0,em:!0,mu:!0},gj=o(function(e){return typeof e!="string"&&(e=e.unit),e in z8||e in p_e||e==="ex"},"validUnit"),bi=o(function(e,r){var n;if(e.unit in z8)n=z8[e.unit]/r.fontMetrics().ptPerEm/r.sizeMultiplier;else if(e.unit==="mu")n=r.fontMetrics().cssEmPerMu;else{var i;if(r.style.isTight()?i=r.havingStyle(r.style.text()):i=r,e.unit==="ex")n=i.fontMetrics().xHeight;else if(e.unit==="em")n=i.fontMetrics().quad;else throw new bt("Invalid unit: '"+e.unit+"'");i!==r&&(n*=i.sizeMultiplier/r.sizeMultiplier)}return Math.min(e.number*n,r.maxSize)},"calculateSize"),_t=o(function(e){return+e.toFixed(4)+"em"},"makeEm"),Tf=o(function(e){return e.filter(r=>r).join(" ")},"createClass"),yj=o(function(e,r,n){if(this.classes=e||[],this.attributes={},this.height=0,this.depth=0,this.maxFontSize=0,this.style=n||{},r){r.style.isTight()&&this.classes.push("mtight");var i=r.getColor();i&&(this.style.color=i)}},"initNode"),vj=o(function(e){var r=document.createElement(e);r.className=Tf(this.classes);for(var n in this.style)this.style.hasOwnProperty(n)&&(r.style[n]=this.style[n]);for(var i in this.attributes)this.attributes.hasOwnProperty(i)&&r.setAttribute(i,this.attributes[i]);for(var a=0;a/=\x00-\x1f]/,xj=o(function(e){var r="<"+e;this.classes.length&&(r+=' class="'+un.escape(Tf(this.classes))+'"');var n="";for(var i in this.style)this.style.hasOwnProperty(i)&&(n+=un.hyphenate(i)+":"+this.style[i]+";");n&&(r+=' style="'+un.escape(n)+'"');for(var a in this.attributes)if(this.attributes.hasOwnProperty(a)){if(m_e.test(a))throw new bt("Invalid attribute name '"+a+"'");r+=" "+a+'="'+un.escape(this.attributes[a])+'"'}r+=">";for(var s=0;s",r},"toMarkup"),Np=class{static{o(this,"Span")}constructor(e,r,n,i){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.width=void 0,this.maxFontSize=void 0,this.style=void 0,yj.call(this,e,n,i),this.children=r||[]}setAttribute(e,r){this.attributes[e]=r}hasClass(e){return this.classes.includes(e)}toNode(){return vj.call(this,"span")}toMarkup(){return xj.call(this,"span")}},M2=class{static{o(this,"Anchor")}constructor(e,r,n,i){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,yj.call(this,r,i),this.children=n||[],this.setAttribute("href",e)}setAttribute(e,r){this.attributes[e]=r}hasClass(e){return this.classes.includes(e)}toNode(){return vj.call(this,"a")}toMarkup(){return xj.call(this,"a")}},G8=class{static{o(this,"Img")}constructor(e,r,n){this.src=void 0,this.alt=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.alt=r,this.src=e,this.classes=["mord"],this.style=n}hasClass(e){return this.classes.includes(e)}toNode(){var e=document.createElement("img");e.src=this.src,e.alt=this.alt,e.className="mord";for(var r in this.style)this.style.hasOwnProperty(r)&&(e.style[r]=this.style[r]);return e}toMarkup(){var e=''+un.escape(this.alt)+'0&&(r=document.createElement("span"),r.style.marginRight=_t(this.italic)),this.classes.length>0&&(r=r||document.createElement("span"),r.className=Tf(this.classes));for(var n in this.style)this.style.hasOwnProperty(n)&&(r=r||document.createElement("span"),r.style[n]=this.style[n]);return r?(r.appendChild(e),r):e}toMarkup(){var e=!1,r="0&&(n+="margin-right:"+this.italic+"em;");for(var i in this.style)this.style.hasOwnProperty(i)&&(n+=un.hyphenate(i)+":"+this.style[i]+";");n&&(e=!0,r+=' style="'+un.escape(n)+'"');var a=un.escape(this.text);return e?(r+=">",r+=a,r+="
",r):a}},Zl=class{static{o(this,"SvgNode")}constructor(e,r){this.children=void 0,this.attributes=void 0,this.children=e||[],this.attributes=r||{}}toNode(){var e="http://www.w3.org/2000/svg",r=document.createElementNS(e,"svg");for(var n in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,n)&&r.setAttribute(n,this.attributes[n]);for(var i=0;i':''}},I2=class{static{o(this,"LineNode")}constructor(e){this.attributes=void 0,this.attributes=e||{}}toNode(){var e="http://www.w3.org/2000/svg",r=document.createElementNS(e,"line");for(var n in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,n)&&r.setAttribute(n,this.attributes[n]);return r}toMarkup(){var e="","\\gt",!0);q(W,re,De,"\u2208","\\in",!0);q(W,re,De,"\uE020","\\@not");q(W,re,De,"\u2282","\\subset",!0);q(W,re,De,"\u2283","\\supset",!0);q(W,re,De,"\u2286","\\subseteq",!0);q(W,re,De,"\u2287","\\supseteq",!0);q(W,Ae,De,"\u2288","\\nsubseteq",!0);q(W,Ae,De,"\u2289","\\nsupseteq",!0);q(W,re,De,"\u22A8","\\models");q(W,re,De,"\u2190","\\leftarrow",!0);q(W,re,De,"\u2264","\\le");q(W,re,De,"\u2264","\\leq",!0);q(W,re,De,"<","\\lt",!0);q(W,re,De,"\u2192","\\rightarrow",!0);q(W,re,De,"\u2192","\\to");q(W,Ae,De,"\u2271","\\ngeq",!0);q(W,Ae,De,"\u2270","\\nleq",!0);q(W,re,ch,"\xA0","\\ ");q(W,re,ch,"\xA0","\\space");q(W,re,ch,"\xA0","\\nobreakspace");q(ft,re,ch,"\xA0","\\ ");q(ft,re,ch,"\xA0"," ");q(ft,re,ch,"\xA0","\\space");q(ft,re,ch,"\xA0","\\nobreakspace");q(W,re,ch,null,"\\nobreak");q(W,re,ch,null,"\\allowbreak");q(W,re,Ew,",",",");q(W,re,Ew,";",";");q(W,Ae,Ft,"\u22BC","\\barwedge",!0);q(W,Ae,Ft,"\u22BB","\\veebar",!0);q(W,re,Ft,"\u2299","\\odot",!0);q(W,re,Ft,"\u2295","\\oplus",!0);q(W,re,Ft,"\u2297","\\otimes",!0);q(W,re,ze,"\u2202","\\partial",!0);q(W,re,Ft,"\u2298","\\oslash",!0);q(W,Ae,Ft,"\u229A","\\circledcirc",!0);q(W,Ae,Ft,"\u22A1","\\boxdot",!0);q(W,re,Ft,"\u25B3","\\bigtriangleup");q(W,re,Ft,"\u25BD","\\bigtriangledown");q(W,re,Ft,"\u2020","\\dagger");q(W,re,Ft,"\u22C4","\\diamond");q(W,re,Ft,"\u22C6","\\star");q(W,re,Ft,"\u25C3","\\triangleleft");q(W,re,Ft,"\u25B9","\\triangleright");q(W,re,Bo,"{","\\{");q(ft,re,ze,"{","\\{");q(ft,re,ze,"{","\\textbraceleft");q(W,re,Cs,"}","\\}");q(ft,re,ze,"}","\\}");q(ft,re,ze,"}","\\textbraceright");q(W,re,Bo,"{","\\lbrace");q(W,re,Cs,"}","\\rbrace");q(W,re,Bo,"[","\\lbrack",!0);q(ft,re,ze,"[","\\lbrack",!0);q(W,re,Cs,"]","\\rbrack",!0);q(ft,re,ze,"]","\\rbrack",!0);q(W,re,Bo,"(","\\lparen",!0);q(W,re,Cs,")","\\rparen",!0);q(ft,re,ze,"<","\\textless",!0);q(ft,re,ze,">","\\textgreater",!0);q(W,re,Bo,"\u230A","\\lfloor",!0);q(W,re,Cs,"\u230B","\\rfloor",!0);q(W,re,Bo,"\u2308","\\lceil",!0);q(W,re,Cs,"\u2309","\\rceil",!0);q(W,re,ze,"\\","\\backslash");q(W,re,ze,"\u2223","|");q(W,re,ze,"\u2223","\\vert");q(ft,re,ze,"|","\\textbar",!0);q(W,re,ze,"\u2225","\\|");q(W,re,ze,"\u2225","\\Vert");q(ft,re,ze,"\u2225","\\textbardbl");q(ft,re,ze,"~","\\textasciitilde");q(ft,re,ze,"\\","\\textbackslash");q(ft,re,ze,"^","\\textasciicircum");q(W,re,De,"\u2191","\\uparrow",!0);q(W,re,De,"\u21D1","\\Uparrow",!0);q(W,re,De,"\u2193","\\downarrow",!0);q(W,re,De,"\u21D3","\\Downarrow",!0);q(W,re,De,"\u2195","\\updownarrow",!0);q(W,re,De,"\u21D5","\\Updownarrow",!0);q(W,re,Gi,"\u2210","\\coprod");q(W,re,Gi,"\u22C1","\\bigvee");q(W,re,Gi,"\u22C0","\\bigwedge");q(W,re,Gi,"\u2A04","\\biguplus");q(W,re,Gi,"\u22C2","\\bigcap");q(W,re,Gi,"\u22C3","\\bigcup");q(W,re,Gi,"\u222B","\\int");q(W,re,Gi,"\u222B","\\intop");q(W,re,Gi,"\u222C","\\iint");q(W,re,Gi,"\u222D","\\iiint");q(W,re,Gi,"\u220F","\\prod");q(W,re,Gi,"\u2211","\\sum");q(W,re,Gi,"\u2A02","\\bigotimes");q(W,re,Gi,"\u2A01","\\bigoplus");q(W,re,Gi,"\u2A00","\\bigodot");q(W,re,Gi,"\u222E","\\oint");q(W,re,Gi,"\u222F","\\oiint");q(W,re,Gi,"\u2230","\\oiiint");q(W,re,Gi,"\u2A06","\\bigsqcup");q(W,re,Gi,"\u222B","\\smallint");q(ft,re,pg,"\u2026","\\textellipsis");q(W,re,pg,"\u2026","\\mathellipsis");q(ft,re,pg,"\u2026","\\ldots",!0);q(W,re,pg,"\u2026","\\ldots",!0);q(W,re,pg,"\u22EF","\\@cdots",!0);q(W,re,pg,"\u22F1","\\ddots",!0);q(W,re,ze,"\u22EE","\\varvdots");q(ft,re,ze,"\u22EE","\\varvdots");q(W,re,ai,"\u02CA","\\acute");q(W,re,ai,"\u02CB","\\grave");q(W,re,ai,"\xA8","\\ddot");q(W,re,ai,"~","\\tilde");q(W,re,ai,"\u02C9","\\bar");q(W,re,ai,"\u02D8","\\breve");q(W,re,ai,"\u02C7","\\check");q(W,re,ai,"^","\\hat");q(W,re,ai,"\u20D7","\\vec");q(W,re,ai,"\u02D9","\\dot");q(W,re,ai,"\u02DA","\\mathring");q(W,re,fr,"\uE131","\\@imath");q(W,re,fr,"\uE237","\\@jmath");q(W,re,ze,"\u0131","\u0131");q(W,re,ze,"\u0237","\u0237");q(ft,re,ze,"\u0131","\\i",!0);q(ft,re,ze,"\u0237","\\j",!0);q(ft,re,ze,"\xDF","\\ss",!0);q(ft,re,ze,"\xE6","\\ae",!0);q(ft,re,ze,"\u0153","\\oe",!0);q(ft,re,ze,"\xF8","\\o",!0);q(ft,re,ze,"\xC6","\\AE",!0);q(ft,re,ze,"\u0152","\\OE",!0);q(ft,re,ze,"\xD8","\\O",!0);q(ft,re,ai,"\u02CA","\\'");q(ft,re,ai,"\u02CB","\\`");q(ft,re,ai,"\u02C6","\\^");q(ft,re,ai,"\u02DC","\\~");q(ft,re,ai,"\u02C9","\\=");q(ft,re,ai,"\u02D8","\\u");q(ft,re,ai,"\u02D9","\\.");q(ft,re,ai,"\xB8","\\c");q(ft,re,ai,"\u02DA","\\r");q(ft,re,ai,"\u02C7","\\v");q(ft,re,ai,"\xA8",'\\"');q(ft,re,ai,"\u02DD","\\H");q(ft,re,ai,"\u25EF","\\textcircled");bj={"--":!0,"---":!0,"``":!0,"''":!0};q(ft,re,ze,"\u2013","--",!0);q(ft,re,ze,"\u2013","\\textendash");q(ft,re,ze,"\u2014","---",!0);q(ft,re,ze,"\u2014","\\textemdash");q(ft,re,ze,"\u2018","`",!0);q(ft,re,ze,"\u2018","\\textquoteleft");q(ft,re,ze,"\u2019","'",!0);q(ft,re,ze,"\u2019","\\textquoteright");q(ft,re,ze,"\u201C","``",!0);q(ft,re,ze,"\u201C","\\textquotedblleft");q(ft,re,ze,"\u201D","''",!0);q(ft,re,ze,"\u201D","\\textquotedblright");q(W,re,ze,"\xB0","\\degree",!0);q(ft,re,ze,"\xB0","\\degree");q(ft,re,ze,"\xB0","\\textdegree",!0);q(W,re,ze,"\xA3","\\pounds");q(W,re,ze,"\xA3","\\mathsterling",!0);q(ft,re,ze,"\xA3","\\pounds");q(ft,re,ze,"\xA3","\\textsterling",!0);q(W,Ae,ze,"\u2720","\\maltese");q(ft,Ae,ze,"\u2720","\\maltese");GY='0123456789/@."';for(aw=0;aw0)return Ql(a,h,i,r,s.concat(f));if(u){var d,p;if(u==="boldsymbol"){var m=w_e(a,i,r,s,n);d=m.fontName,p=[m.fontClass]}else l?(d=kj[u].fontName,p=[u]):(d=uw(u,r.fontWeight,r.fontShape),p=[u,r.fontWeight,r.fontShape]);if(Sw(a,d,i).metrics)return Ql(a,d,i,r,s.concat(p));if(bj.hasOwnProperty(a)&&d.slice(0,10)==="Typewriter"){for(var g=[],y=0;y{if(Tf(t.classes)!==Tf(e.classes)||t.skew!==e.skew||t.maxFontSize!==e.maxFontSize)return!1;if(t.classes.length===1){var r=t.classes[0];if(r==="mbin"||r==="mord")return!1}for(var n in t.style)if(t.style.hasOwnProperty(n)&&t.style[n]!==e.style[n])return!1;for(var i in e.style)if(e.style.hasOwnProperty(i)&&t.style[i]!==e.style[i])return!1;return!0},"canCombine"),S_e=o(t=>{for(var e=0;er&&(r=s.height),s.depth>n&&(n=s.depth),s.maxFontSize>i&&(i=s.maxFontSize)}e.height=r,e.depth=n,e.maxFontSize=i},"sizeElementFromChildren"),Ks=o(function(e,r,n,i){var a=new Np(e,r,n,i);return J8(a),a},"makeSpan"),Tj=o((t,e,r,n)=>new Np(t,e,r,n),"makeSvgSpan"),C_e=o(function(e,r,n){var i=Ks([e],[],r);return i.height=Math.max(n||r.fontMetrics().defaultRuleThickness,r.minRuleThickness),i.style.borderBottomWidth=_t(i.height),i.maxFontSize=1,i},"makeLineSpan"),A_e=o(function(e,r,n,i){var a=new M2(e,r,n,i);return J8(a),a},"makeAnchor"),wj=o(function(e){var r=new Lp(e);return J8(r),r},"makeFragment"),__e=o(function(e,r){return e instanceof Lp?Ks([],[e],r):e},"wrapFragment"),D_e=o(function(e){if(e.positionType==="individualShift"){for(var r=e.children,n=[r[0]],i=-r[0].shift-r[0].elem.depth,a=i,s=1;s{var r=Ks(["mspace"],[],e),n=bi(t,e);return r.style.marginRight=_t(n),r},"makeGlue"),uw=o(function(e,r,n){var i="";switch(e){case"amsrm":i="AMS";break;case"textrm":i="Main";break;case"textsf":i="SansSerif";break;case"texttt":i="Typewriter";break;default:i=e}var a;return r==="textbf"&&n==="textit"?a="BoldItalic":r==="textbf"?a="Bold":r==="textit"?a="Italic":a="Regular",i+"-"+a},"retrieveTextFontName"),kj={mathbf:{variant:"bold",fontName:"Main-Bold"},mathrm:{variant:"normal",fontName:"Main-Regular"},textit:{variant:"italic",fontName:"Main-Italic"},mathit:{variant:"italic",fontName:"Main-Italic"},mathnormal:{variant:"italic",fontName:"Math-Italic"},mathsfit:{variant:"sans-serif-italic",fontName:"SansSerif-Italic"},mathbb:{variant:"double-struck",fontName:"AMS-Regular"},mathcal:{variant:"script",fontName:"Caligraphic-Regular"},mathfrak:{variant:"fraktur",fontName:"Fraktur-Regular"},mathscr:{variant:"script",fontName:"Script-Regular"},mathsf:{variant:"sans-serif",fontName:"SansSerif-Regular"},mathtt:{variant:"monospace",fontName:"Typewriter-Regular"}},Ej={vec:["vec",.471,.714],oiintSize1:["oiintSize1",.957,.499],oiintSize2:["oiintSize2",1.472,.659],oiiintSize1:["oiiintSize1",1.304,.499],oiiintSize2:["oiiintSize2",1.98,.659]},N_e=o(function(e,r){var[n,i,a]=Ej[e],s=new Uc(n),l=new Zl([s],{width:_t(i),height:_t(a),style:"width:"+_t(i),viewBox:"0 0 "+1e3*i+" "+1e3*a,preserveAspectRatio:"xMinYMin"}),u=Tj(["overlay"],[l],r);return u.height=a,u.style.height=_t(a),u.style.width=_t(i),u},"staticSvg"),He={fontMap:kj,makeSymbol:Ql,mathsym:T_e,makeSpan:Ks,makeSvgSpan:Tj,makeLineSpan:C_e,makeAnchor:A_e,makeFragment:wj,wrapFragment:__e,makeVList:R_e,makeOrd:k_e,makeGlue:L_e,staticSvg:N_e,svgData:Ej,tryCombineChars:S_e},xi={number:3,unit:"mu"},Rp={number:4,unit:"mu"},ih={number:5,unit:"mu"},M_e={mord:{mop:xi,mbin:Rp,mrel:ih,minner:xi},mop:{mord:xi,mop:xi,mrel:ih,minner:xi},mbin:{mord:Rp,mop:Rp,mopen:Rp,minner:Rp},mrel:{mord:ih,mop:ih,mopen:ih,minner:ih},mopen:{},mclose:{mop:xi,mbin:Rp,mrel:ih,minner:xi},mpunct:{mord:xi,mop:xi,mrel:ih,mopen:xi,mclose:xi,mpunct:xi,minner:xi},minner:{mord:xi,mop:xi,mbin:Rp,mrel:ih,mopen:xi,mpunct:xi,minner:xi}},I_e={mord:{mop:xi},mop:{mord:xi,mop:xi},mbin:{},mrel:{},mopen:{},mclose:{mop:xi},mpunct:{},minner:{mop:xi}},Sj={},xw={},bw={};o(Ot,"defineFunction");o(Mp,"defineFunctionBuilders");Tw=o(function(e){return e.type==="ordgroup"&&e.body.length===1?e.body[0]:e},"normalizeArgument"),Oi=o(function(e){return e.type==="ordgroup"?e.body:[e]},"ordargument"),oh=He.makeSpan,O_e=["leftmost","mbin","mopen","mrel","mop","mpunct"],P_e=["rightmost","mrel","mclose","mpunct"],B_e={display:dr.DISPLAY,text:dr.TEXT,script:dr.SCRIPT,scriptscript:dr.SCRIPTSCRIPT},F_e={mord:"mord",mop:"mop",mbin:"mbin",mrel:"mrel",mopen:"mopen",mclose:"mclose",mpunct:"mpunct",minner:"minner"},ea=o(function(e,r,n,i){i===void 0&&(i=[null,null]);for(var a=[],s=0;s{var v=y.classes[0],x=g.classes[0];v==="mbin"&&P_e.includes(x)?y.classes[0]="mord":x==="mbin"&&O_e.includes(v)&&(g.classes[0]="mord")},{node:d},p,m),UY(a,(g,y)=>{var v=q8(y),x=q8(g),b=v&&x?g.hasClass("mtight")?I_e[v][x]:M_e[v][x]:null;if(b)return He.makeGlue(b,h)},{node:d},p,m),a},"buildExpression"),UY=o(function t(e,r,n,i,a){i&&e.push(i);for(var s=0;sp=>{e.splice(d+1,0,p),s++})(s)}i&&e.pop()},"traverseNonSpaceNodes"),Cj=o(function(e){return e instanceof Lp||e instanceof M2||e instanceof Np&&e.hasClass("enclosing")?e:null},"checkPartialGroup"),$_e=o(function t(e,r){var n=Cj(e);if(n){var i=n.children;if(i.length){if(r==="right")return t(i[i.length-1],"right");if(r==="left")return t(i[0],"left")}}return e},"getOutermostNode"),q8=o(function(e,r){return e?(r&&(e=$_e(e,r)),F_e[e.classes[0]]||null):null},"getTypeOfDomTree"),O2=o(function(e,r){var n=["nulldelimiter"].concat(e.baseSizingClasses());return oh(r.concat(n))},"makeNullDelimiter"),rn=o(function(e,r,n){if(!e)return oh();if(xw[e.type]){var i=xw[e.type](e,r);if(n&&r.size!==n.size){i=oh(r.sizingClasses(n),[i],r);var a=r.sizeMultiplier/n.sizeMultiplier;i.height*=a,i.depth*=a}return i}else throw new bt("Got group of unknown type: '"+e.type+"'")},"buildGroup");o(hw,"buildHTMLUnbreakable");o(U8,"buildHTML");o(Aj,"newDocumentFragment");Es=class{static{o(this,"MathNode")}constructor(e,r,n){this.type=void 0,this.attributes=void 0,this.children=void 0,this.classes=void 0,this.type=e,this.attributes={},this.children=r||[],this.classes=n||[]}setAttribute(e,r){this.attributes[e]=r}getAttribute(e){return this.attributes[e]}toNode(){var e=document.createElementNS("http://www.w3.org/1998/Math/MathML",this.type);for(var r in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,r)&&e.setAttribute(r,this.attributes[r]);this.classes.length>0&&(e.className=Tf(this.classes));for(var n=0;n0&&(e+=' class ="'+un.escape(Tf(this.classes))+'"'),e+=">";for(var n=0;n",e}toText(){return this.children.map(e=>e.toText()).join("")}},pl=class{static{o(this,"TextNode")}constructor(e){this.text=void 0,this.text=e}toNode(){return document.createTextNode(this.text)}toMarkup(){return un.escape(this.toText())}toText(){return this.text}},W8=class{static{o(this,"SpaceNode")}constructor(e){this.width=void 0,this.character=void 0,this.width=e,e>=.05555&&e<=.05556?this.character="\u200A":e>=.1666&&e<=.1667?this.character="\u2009":e>=.2222&&e<=.2223?this.character="\u2005":e>=.2777&&e<=.2778?this.character="\u2005\u200A":e>=-.05556&&e<=-.05555?this.character="\u200A\u2063":e>=-.1667&&e<=-.1666?this.character="\u2009\u2063":e>=-.2223&&e<=-.2222?this.character="\u205F\u2063":e>=-.2778&&e<=-.2777?this.character="\u2005\u2063":this.character=null}toNode(){if(this.character)return document.createTextNode(this.character);var e=document.createElementNS("http://www.w3.org/1998/Math/MathML","mspace");return e.setAttribute("width",_t(this.width)),e}toMarkup(){return this.character?""+this.character+"":''}toText(){return this.character?this.character:" "}},vt={MathNode:Es,TextNode:pl,SpaceNode:W8,newDocumentFragment:Aj},ml=o(function(e,r,n){return qn[r][e]&&qn[r][e].replace&&e.charCodeAt(0)!==55349&&!(bj.hasOwnProperty(e)&&n&&(n.fontFamily&&n.fontFamily.slice(4,6)==="tt"||n.font&&n.font.slice(4,6)==="tt"))&&(e=qn[r][e].replace),new vt.TextNode(e)},"makeText"),eD=o(function(e){return e.length===1?e[0]:new vt.MathNode("mrow",e)},"makeRow"),tD=o(function(e,r){if(r.fontFamily==="texttt")return"monospace";if(r.fontFamily==="textsf")return r.fontShape==="textit"&&r.fontWeight==="textbf"?"sans-serif-bold-italic":r.fontShape==="textit"?"sans-serif-italic":r.fontWeight==="textbf"?"bold-sans-serif":"sans-serif";if(r.fontShape==="textit"&&r.fontWeight==="textbf")return"bold-italic";if(r.fontShape==="textit")return"italic";if(r.fontWeight==="textbf")return"bold";var n=r.font;if(!n||n==="mathnormal")return null;var i=e.mode;if(n==="mathit")return"italic";if(n==="boldsymbol")return e.type==="textord"?"bold":"bold-italic";if(n==="mathbf")return"bold";if(n==="mathbb")return"double-struck";if(n==="mathsfit")return"sans-serif-italic";if(n==="mathfrak")return"fraktur";if(n==="mathscr"||n==="mathcal")return"script";if(n==="mathsf")return"sans-serif";if(n==="mathtt")return"monospace";var a=e.text;if(["\\imath","\\jmath"].includes(a))return null;qn[i][a]&&qn[i][a].replace&&(a=qn[i][a].replace);var s=He.fontMap[n].fontName;return Z8(a,s,i)?He.fontMap[n].variant:null},"getVariant");o(D8,"isNumberPunctuation");Js=o(function(e,r,n){if(e.length===1){var i=Mn(e[0],r);return n&&i instanceof Es&&i.type==="mo"&&(i.setAttribute("lspace","0em"),i.setAttribute("rspace","0em")),[i]}for(var a=[],s,l=0;l=1&&(s.type==="mn"||D8(s))){var h=u.children[0];h instanceof Es&&h.type==="mn"&&(h.children=[...s.children,...h.children],a.pop())}else if(s.type==="mi"&&s.children.length===1){var f=s.children[0];if(f instanceof pl&&f.text==="\u0338"&&(u.type==="mo"||u.type==="mi"||u.type==="mn")){var d=u.children[0];d instanceof pl&&d.text.length>0&&(d.text=d.text.slice(0,1)+"\u0338"+d.text.slice(1),a.pop())}}}a.push(u),s=u}return a},"buildExpression"),wf=o(function(e,r,n){return eD(Js(e,r,n))},"buildExpressionRow"),Mn=o(function(e,r){if(!e)return new vt.MathNode("mrow");if(bw[e.type]){var n=bw[e.type](e,r);return n}else throw new bt("Got group of unknown type: '"+e.type+"'")},"buildGroup");o(WY,"buildMathML");_j=o(function(e){return new yw({style:e.displayMode?dr.DISPLAY:dr.TEXT,maxSize:e.maxSize,minRuleThickness:e.minRuleThickness})},"optionsFromSettings"),Dj=o(function(e,r){if(r.displayMode){var n=["katex-display"];r.leqno&&n.push("leqno"),r.fleqn&&n.push("fleqn"),e=He.makeSpan(n,[e])}return e},"displayWrap"),z_e=o(function(e,r,n){var i=_j(n),a;if(n.output==="mathml")return WY(e,r,i,n.displayMode,!0);if(n.output==="html"){var s=U8(e,i);a=He.makeSpan(["katex"],[s])}else{var l=WY(e,r,i,n.displayMode,!1),u=U8(e,i);a=He.makeSpan(["katex"],[l,u])}return Dj(a,n)},"buildTree"),G_e=o(function(e,r,n){var i=_j(n),a=U8(e,i),s=He.makeSpan(["katex"],[a]);return Dj(s,n)},"buildHTMLTree"),V_e={widehat:"^",widecheck:"\u02C7",widetilde:"~",utilde:"~",overleftarrow:"\u2190",underleftarrow:"\u2190",xleftarrow:"\u2190",overrightarrow:"\u2192",underrightarrow:"\u2192",xrightarrow:"\u2192",underbrace:"\u23DF",overbrace:"\u23DE",overgroup:"\u23E0",undergroup:"\u23E1",overleftrightarrow:"\u2194",underleftrightarrow:"\u2194",xleftrightarrow:"\u2194",Overrightarrow:"\u21D2",xRightarrow:"\u21D2",overleftharpoon:"\u21BC",xleftharpoonup:"\u21BC",overrightharpoon:"\u21C0",xrightharpoonup:"\u21C0",xLeftarrow:"\u21D0",xLeftrightarrow:"\u21D4",xhookleftarrow:"\u21A9",xhookrightarrow:"\u21AA",xmapsto:"\u21A6",xrightharpoondown:"\u21C1",xleftharpoondown:"\u21BD",xrightleftharpoons:"\u21CC",xleftrightharpoons:"\u21CB",xtwoheadleftarrow:"\u219E",xtwoheadrightarrow:"\u21A0",xlongequal:"=",xtofrom:"\u21C4",xrightleftarrows:"\u21C4",xrightequilibrium:"\u21CC",xleftequilibrium:"\u21CB","\\cdrightarrow":"\u2192","\\cdleftarrow":"\u2190","\\cdlongequal":"="},q_e=o(function(e){var r=new vt.MathNode("mo",[new vt.TextNode(V_e[e.replace(/^\\/,"")])]);return r.setAttribute("stretchy","true"),r},"mathMLnode"),U_e={overrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],overleftarrow:[["leftarrow"],.888,522,"xMinYMin"],underrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],underleftarrow:[["leftarrow"],.888,522,"xMinYMin"],xrightarrow:[["rightarrow"],1.469,522,"xMaxYMin"],"\\cdrightarrow":[["rightarrow"],3,522,"xMaxYMin"],xleftarrow:[["leftarrow"],1.469,522,"xMinYMin"],"\\cdleftarrow":[["leftarrow"],3,522,"xMinYMin"],Overrightarrow:[["doublerightarrow"],.888,560,"xMaxYMin"],xRightarrow:[["doublerightarrow"],1.526,560,"xMaxYMin"],xLeftarrow:[["doubleleftarrow"],1.526,560,"xMinYMin"],overleftharpoon:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoonup:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoondown:[["leftharpoondown"],.888,522,"xMinYMin"],overrightharpoon:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoonup:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoondown:[["rightharpoondown"],.888,522,"xMaxYMin"],xlongequal:[["longequal"],.888,334,"xMinYMin"],"\\cdlongequal":[["longequal"],3,334,"xMinYMin"],xtwoheadleftarrow:[["twoheadleftarrow"],.888,334,"xMinYMin"],xtwoheadrightarrow:[["twoheadrightarrow"],.888,334,"xMaxYMin"],overleftrightarrow:[["leftarrow","rightarrow"],.888,522],overbrace:[["leftbrace","midbrace","rightbrace"],1.6,548],underbrace:[["leftbraceunder","midbraceunder","rightbraceunder"],1.6,548],underleftrightarrow:[["leftarrow","rightarrow"],.888,522],xleftrightarrow:[["leftarrow","rightarrow"],1.75,522],xLeftrightarrow:[["doubleleftarrow","doublerightarrow"],1.75,560],xrightleftharpoons:[["leftharpoondownplus","rightharpoonplus"],1.75,716],xleftrightharpoons:[["leftharpoonplus","rightharpoondownplus"],1.75,716],xhookleftarrow:[["leftarrow","righthook"],1.08,522],xhookrightarrow:[["lefthook","rightarrow"],1.08,522],overlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],underlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],overgroup:[["leftgroup","rightgroup"],.888,342],undergroup:[["leftgroupunder","rightgroupunder"],.888,342],xmapsto:[["leftmapsto","rightarrow"],1.5,522],xtofrom:[["leftToFrom","rightToFrom"],1.75,528],xrightleftarrows:[["baraboveleftarrow","rightarrowabovebar"],1.75,901],xrightequilibrium:[["baraboveshortleftharpoon","rightharpoonaboveshortbar"],1.75,716],xleftequilibrium:[["shortbaraboveleftharpoon","shortrightharpoonabovebar"],1.75,716]},W_e=o(function(e){return e.type==="ordgroup"?e.body.length:1},"groupLength"),H_e=o(function(e,r){function n(){var l=4e5,u=e.label.slice(1);if(["widehat","widecheck","widetilde","utilde"].includes(u)){var h=e,f=W_e(h.base),d,p,m;if(f>5)u==="widehat"||u==="widecheck"?(d=420,l=2364,m=.42,p=u+"4"):(d=312,l=2340,m=.34,p="tilde4");else{var g=[1,1,2,2,3,3][f];u==="widehat"||u==="widecheck"?(l=[0,1062,2364,2364,2364][g],d=[0,239,300,360,420][g],m=[0,.24,.3,.3,.36,.42][g],p=u+g):(l=[0,600,1033,2339,2340][g],d=[0,260,286,306,312][g],m=[0,.26,.286,.3,.306,.34][g],p="tilde"+g)}var y=new Uc(p),v=new Zl([y],{width:"100%",height:_t(m),viewBox:"0 0 "+l+" "+d,preserveAspectRatio:"none"});return{span:He.makeSvgSpan([],[v],r),minWidth:0,height:m}}else{var x=[],b=U_e[u],[T,E,w]=b,k=w/1e3,S=T.length,A,L;if(S===1){var I=b[3];A=["hide-tail"],L=[I]}else if(S===2)A=["halfarrow-left","halfarrow-right"],L=["xMinYMin","xMaxYMin"];else if(S===3)A=["brace-left","brace-center","brace-right"],L=["xMinYMin","xMidYMin","xMaxYMin"];else throw new Error(`Correct katexImagesData or update code here to support + `+S+" children.");for(var N=0;N0&&(i.style.minWidth=_t(a)),i},"svgSpan"),Y_e=o(function(e,r,n,i,a){var s,l=e.height+e.depth+n+i;if(/fbox|color|angl/.test(r)){if(s=He.makeSpan(["stretchy",r],[],a),r==="fbox"){var u=a.color&&a.getColor();u&&(s.style.borderColor=u)}}else{var h=[];/^[bx]cancel$/.test(r)&&h.push(new I2({x1:"0",y1:"0",x2:"100%",y2:"100%","stroke-width":"0.046em"})),/^x?cancel$/.test(r)&&h.push(new I2({x1:"0",y1:"100%",x2:"100%",y2:"0","stroke-width":"0.046em"}));var f=new Zl(h,{width:"100%",height:_t(l)});s=He.makeSvgSpan([],[f],a)}return s.height=l,s.style.height=_t(l),s},"encloseSpan"),lh={encloseSpan:Y_e,mathMLnode:q_e,svgSpan:H_e};o(Ir,"assertNodeType");o(rD,"assertSymbolNodeType");o(Cw,"checkSymbolNodeType");nD=o((t,e)=>{var r,n,i;t&&t.type==="supsub"?(n=Ir(t.base,"accent"),r=n.base,t.base=r,i=y_e(rn(t,e)),t.base=n):(n=Ir(t,"accent"),r=n.base);var a=rn(r,e.havingCrampedStyle()),s=n.isShifty&&un.isCharacterBox(r),l=0;if(s){var u=un.getBaseElem(r),h=rn(u,e.havingCrampedStyle());l=zY(h).skew}var f=n.label==="\\c",d=f?a.height+a.depth:Math.min(a.height,e.fontMetrics().xHeight),p;if(n.isStretchy)p=lh.svgSpan(n,e),p=He.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:a},{type:"elem",elem:p,wrapperClasses:["svg-align"],wrapperStyle:l>0?{width:"calc(100% - "+_t(2*l)+")",marginLeft:_t(2*l)}:void 0}]},e);else{var m,g;n.label==="\\vec"?(m=He.staticSvg("vec",e),g=He.svgData.vec[1]):(m=He.makeOrd({mode:n.mode,text:n.label},e,"textord"),m=zY(m),m.italic=0,g=m.width,f&&(d+=m.depth)),p=He.makeSpan(["accent-body"],[m]);var y=n.label==="\\textcircled";y&&(p.classes.push("accent-full"),d=a.height);var v=l;y||(v-=g/2),p.style.left=_t(v),n.label==="\\textcircled"&&(p.style.top=".2em"),p=He.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:a},{type:"kern",size:-d},{type:"elem",elem:p}]},e)}var x=He.makeSpan(["mord","accent"],[p],e);return i?(i.children[0]=x,i.height=Math.max(x.height,i.height),i.classes[0]="mord",i):x},"htmlBuilder$a"),Rj=o((t,e)=>{var r=t.isStretchy?lh.mathMLnode(t.label):new vt.MathNode("mo",[ml(t.label,t.mode)]),n=new vt.MathNode("mover",[Mn(t.base,e),r]);return n.setAttribute("accent","true"),n},"mathmlBuilder$9"),j_e=new RegExp(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring"].map(t=>"\\"+t).join("|"));Ot({type:"accent",names:["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring","\\widecheck","\\widehat","\\widetilde","\\overrightarrow","\\overleftarrow","\\Overrightarrow","\\overleftrightarrow","\\overgroup","\\overlinesegment","\\overleftharpoon","\\overrightharpoon"],props:{numArgs:1},handler:o((t,e)=>{var r=Tw(e[0]),n=!j_e.test(t.funcName),i=!n||t.funcName==="\\widehat"||t.funcName==="\\widetilde"||t.funcName==="\\widecheck";return{type:"accent",mode:t.parser.mode,label:t.funcName,isStretchy:n,isShifty:i,base:r}},"handler"),htmlBuilder:nD,mathmlBuilder:Rj});Ot({type:"accent",names:["\\'","\\`","\\^","\\~","\\=","\\u","\\.",'\\"',"\\c","\\r","\\H","\\v","\\textcircled"],props:{numArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["primitive"]},handler:o((t,e)=>{var r=e[0],n=t.parser.mode;return n==="math"&&(t.parser.settings.reportNonstrict("mathVsTextAccents","LaTeX's accent "+t.funcName+" works only in text mode"),n="text"),{type:"accent",mode:n,label:t.funcName,isStretchy:!1,isShifty:!0,base:r}},"handler"),htmlBuilder:nD,mathmlBuilder:Rj});Ot({type:"accentUnder",names:["\\underleftarrow","\\underrightarrow","\\underleftrightarrow","\\undergroup","\\underlinesegment","\\utilde"],props:{numArgs:1},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=e[0];return{type:"accentUnder",mode:r.mode,label:n,base:i}},"handler"),htmlBuilder:o((t,e)=>{var r=rn(t.base,e),n=lh.svgSpan(t,e),i=t.label==="\\utilde"?.12:0,a=He.makeVList({positionType:"top",positionData:r.height,children:[{type:"elem",elem:n,wrapperClasses:["svg-align"]},{type:"kern",size:i},{type:"elem",elem:r}]},e);return He.makeSpan(["mord","accentunder"],[a],e)},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=lh.mathMLnode(t.label),n=new vt.MathNode("munder",[Mn(t.base,e),r]);return n.setAttribute("accentunder","true"),n},"mathmlBuilder")});fw=o(t=>{var e=new vt.MathNode("mpadded",t?[t]:[]);return e.setAttribute("width","+0.6em"),e.setAttribute("lspace","0.3em"),e},"paddedNode");Ot({type:"xArrow",names:["\\xleftarrow","\\xrightarrow","\\xLeftarrow","\\xRightarrow","\\xleftrightarrow","\\xLeftrightarrow","\\xhookleftarrow","\\xhookrightarrow","\\xmapsto","\\xrightharpoondown","\\xrightharpoonup","\\xleftharpoondown","\\xleftharpoonup","\\xrightleftharpoons","\\xleftrightharpoons","\\xlongequal","\\xtwoheadrightarrow","\\xtwoheadleftarrow","\\xtofrom","\\xrightleftarrows","\\xrightequilibrium","\\xleftequilibrium","\\\\cdrightarrow","\\\\cdleftarrow","\\\\cdlongequal"],props:{numArgs:1,numOptionalArgs:1},handler(t,e,r){var{parser:n,funcName:i}=t;return{type:"xArrow",mode:n.mode,label:i,body:e[0],below:r[0]}},htmlBuilder(t,e){var r=e.style,n=e.havingStyle(r.sup()),i=He.wrapFragment(rn(t.body,n,e),e),a=t.label.slice(0,2)==="\\x"?"x":"cd";i.classes.push(a+"-arrow-pad");var s;t.below&&(n=e.havingStyle(r.sub()),s=He.wrapFragment(rn(t.below,n,e),e),s.classes.push(a+"-arrow-pad"));var l=lh.svgSpan(t,e),u=-e.fontMetrics().axisHeight+.5*l.height,h=-e.fontMetrics().axisHeight-.5*l.height-.111;(i.depth>.25||t.label==="\\xleftequilibrium")&&(h-=i.depth);var f;if(s){var d=-e.fontMetrics().axisHeight+s.height+.5*l.height+.111;f=He.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:h},{type:"elem",elem:l,shift:u},{type:"elem",elem:s,shift:d}]},e)}else f=He.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:h},{type:"elem",elem:l,shift:u}]},e);return f.children[0].children[0].children[1].classes.push("svg-align"),He.makeSpan(["mrel","x-arrow"],[f],e)},mathmlBuilder(t,e){var r=lh.mathMLnode(t.label);r.setAttribute("minsize",t.label.charAt(0)==="x"?"1.75em":"3.0em");var n;if(t.body){var i=fw(Mn(t.body,e));if(t.below){var a=fw(Mn(t.below,e));n=new vt.MathNode("munderover",[r,a,i])}else n=new vt.MathNode("mover",[r,i])}else if(t.below){var s=fw(Mn(t.below,e));n=new vt.MathNode("munder",[r,s])}else n=fw(),n=new vt.MathNode("mover",[r,n]);return n}});X_e=He.makeSpan;o(Lj,"htmlBuilder$9");o(Nj,"mathmlBuilder$8");Ot({type:"mclass",names:["\\mathord","\\mathbin","\\mathrel","\\mathopen","\\mathclose","\\mathpunct","\\mathinner"],props:{numArgs:1,primitive:!0},handler(t,e){var{parser:r,funcName:n}=t,i=e[0];return{type:"mclass",mode:r.mode,mclass:"m"+n.slice(5),body:Oi(i),isCharacterBox:un.isCharacterBox(i)}},htmlBuilder:Lj,mathmlBuilder:Nj});Aw=o(t=>{var e=t.type==="ordgroup"&&t.body.length?t.body[0]:t;return e.type==="atom"&&(e.family==="bin"||e.family==="rel")?"m"+e.family:"mord"},"binrelClass");Ot({type:"mclass",names:["\\@binrel"],props:{numArgs:2},handler(t,e){var{parser:r}=t;return{type:"mclass",mode:r.mode,mclass:Aw(e[0]),body:Oi(e[1]),isCharacterBox:un.isCharacterBox(e[1])}}});Ot({type:"mclass",names:["\\stackrel","\\overset","\\underset"],props:{numArgs:2},handler(t,e){var{parser:r,funcName:n}=t,i=e[1],a=e[0],s;n!=="\\stackrel"?s=Aw(i):s="mrel";var l={type:"op",mode:i.mode,limits:!0,alwaysHandleSupSub:!0,parentIsSupSub:!1,symbol:!1,suppressBaseShift:n!=="\\stackrel",body:Oi(i)},u={type:"supsub",mode:a.mode,base:l,sup:n==="\\underset"?null:a,sub:n==="\\underset"?a:null};return{type:"mclass",mode:r.mode,mclass:s,body:[u],isCharacterBox:un.isCharacterBox(u)}},htmlBuilder:Lj,mathmlBuilder:Nj});Ot({type:"pmb",names:["\\pmb"],props:{numArgs:1,allowedInText:!0},handler(t,e){var{parser:r}=t;return{type:"pmb",mode:r.mode,mclass:Aw(e[0]),body:Oi(e[0])}},htmlBuilder(t,e){var r=ea(t.body,e,!0),n=He.makeSpan([t.mclass],r,e);return n.style.textShadow="0.02em 0.01em 0.04px",n},mathmlBuilder(t,e){var r=Js(t.body,e),n=new vt.MathNode("mstyle",r);return n.setAttribute("style","text-shadow: 0.02em 0.01em 0.04px"),n}});K_e={">":"\\\\cdrightarrow","<":"\\\\cdleftarrow","=":"\\\\cdlongequal",A:"\\uparrow",V:"\\downarrow","|":"\\Vert",".":"no arrow"},HY=o(()=>({type:"styling",body:[],mode:"math",style:"display"}),"newCell"),YY=o(t=>t.type==="textord"&&t.text==="@","isStartOfArrow"),Q_e=o((t,e)=>(t.type==="mathord"||t.type==="atom")&&t.text===e,"isLabelEnd");o(Z_e,"cdArrow");o(J_e,"parseCD");Ot({type:"cdlabel",names:["\\\\cdleft","\\\\cdright"],props:{numArgs:1},handler(t,e){var{parser:r,funcName:n}=t;return{type:"cdlabel",mode:r.mode,side:n.slice(4),label:e[0]}},htmlBuilder(t,e){var r=e.havingStyle(e.style.sup()),n=He.wrapFragment(rn(t.label,r,e),e);return n.classes.push("cd-label-"+t.side),n.style.bottom=_t(.8-n.depth),n.height=0,n.depth=0,n},mathmlBuilder(t,e){var r=new vt.MathNode("mrow",[Mn(t.label,e)]);return r=new vt.MathNode("mpadded",[r]),r.setAttribute("width","0"),t.side==="left"&&r.setAttribute("lspace","-1width"),r.setAttribute("voffset","0.7em"),r=new vt.MathNode("mstyle",[r]),r.setAttribute("displaystyle","false"),r.setAttribute("scriptlevel","1"),r}});Ot({type:"cdlabelparent",names:["\\\\cdparent"],props:{numArgs:1},handler(t,e){var{parser:r}=t;return{type:"cdlabelparent",mode:r.mode,fragment:e[0]}},htmlBuilder(t,e){var r=He.wrapFragment(rn(t.fragment,e),e);return r.classes.push("cd-vert-arrow"),r},mathmlBuilder(t,e){return new vt.MathNode("mrow",[Mn(t.fragment,e)])}});Ot({type:"textord",names:["\\@char"],props:{numArgs:1,allowedInText:!0},handler(t,e){for(var{parser:r}=t,n=Ir(e[0],"ordgroup"),i=n.body,a="",s=0;s=1114111)throw new bt("\\@char with invalid code point "+a);return u<=65535?h=String.fromCharCode(u):(u-=65536,h=String.fromCharCode((u>>10)+55296,(u&1023)+56320)),{type:"textord",mode:r.mode,text:h}}});Mj=o((t,e)=>{var r=ea(t.body,e.withColor(t.color),!1);return He.makeFragment(r)},"htmlBuilder$8"),Ij=o((t,e)=>{var r=Js(t.body,e.withColor(t.color)),n=new vt.MathNode("mstyle",r);return n.setAttribute("mathcolor",t.color),n},"mathmlBuilder$7");Ot({type:"color",names:["\\textcolor"],props:{numArgs:2,allowedInText:!0,argTypes:["color","original"]},handler(t,e){var{parser:r}=t,n=Ir(e[0],"color-token").color,i=e[1];return{type:"color",mode:r.mode,color:n,body:Oi(i)}},htmlBuilder:Mj,mathmlBuilder:Ij});Ot({type:"color",names:["\\color"],props:{numArgs:1,allowedInText:!0,argTypes:["color"]},handler(t,e){var{parser:r,breakOnTokenText:n}=t,i=Ir(e[0],"color-token").color;r.gullet.macros.set("\\current@color",i);var a=r.parseExpression(!0,n);return{type:"color",mode:r.mode,color:i,body:a}},htmlBuilder:Mj,mathmlBuilder:Ij});Ot({type:"cr",names:["\\\\"],props:{numArgs:0,numOptionalArgs:0,allowedInText:!0},handler(t,e,r){var{parser:n}=t,i=n.gullet.future().text==="["?n.parseSizeGroup(!0):null,a=!n.settings.displayMode||!n.settings.useStrictBehavior("newLineInDisplayMode","In LaTeX, \\\\ or \\newline does nothing in display mode");return{type:"cr",mode:n.mode,newLine:a,size:i&&Ir(i,"size").value}},htmlBuilder(t,e){var r=He.makeSpan(["mspace"],[],e);return t.newLine&&(r.classes.push("newline"),t.size&&(r.style.marginTop=_t(bi(t.size,e)))),r},mathmlBuilder(t,e){var r=new vt.MathNode("mspace");return t.newLine&&(r.setAttribute("linebreak","newline"),t.size&&r.setAttribute("height",_t(bi(t.size,e)))),r}});H8={"\\global":"\\global","\\long":"\\\\globallong","\\\\globallong":"\\\\globallong","\\def":"\\gdef","\\gdef":"\\gdef","\\edef":"\\xdef","\\xdef":"\\xdef","\\let":"\\\\globallet","\\futurelet":"\\\\globalfuture"},Oj=o(t=>{var e=t.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(e))throw new bt("Expected a control sequence",t);return e},"checkControlSequence"),e8e=o(t=>{var e=t.gullet.popToken();return e.text==="="&&(e=t.gullet.popToken(),e.text===" "&&(e=t.gullet.popToken())),e},"getRHS"),Pj=o((t,e,r,n)=>{var i=t.gullet.macros.get(r.text);i==null&&(r.noexpand=!0,i={tokens:[r],numArgs:0,unexpandable:!t.gullet.isExpandable(r.text)}),t.gullet.macros.set(e,i,n)},"letCommand");Ot({type:"internal",names:["\\global","\\long","\\\\globallong"],props:{numArgs:0,allowedInText:!0},handler(t){var{parser:e,funcName:r}=t;e.consumeSpaces();var n=e.fetch();if(H8[n.text])return(r==="\\global"||r==="\\\\globallong")&&(n.text=H8[n.text]),Ir(e.parseFunction(),"internal");throw new bt("Invalid token after macro prefix",n)}});Ot({type:"internal",names:["\\def","\\gdef","\\edef","\\xdef"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(t){var{parser:e,funcName:r}=t,n=e.gullet.popToken(),i=n.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(i))throw new bt("Expected a control sequence",n);for(var a=0,s,l=[[]];e.gullet.future().text!=="{";)if(n=e.gullet.popToken(),n.text==="#"){if(e.gullet.future().text==="{"){s=e.gullet.future(),l[a].push("{");break}if(n=e.gullet.popToken(),!/^[1-9]$/.test(n.text))throw new bt('Invalid argument number "'+n.text+'"');if(parseInt(n.text)!==a+1)throw new bt('Argument number "'+n.text+'" out of order');a++,l.push([])}else{if(n.text==="EOF")throw new bt("Expected a macro definition");l[a].push(n.text)}var{tokens:u}=e.gullet.consumeArg();return s&&u.unshift(s),(r==="\\edef"||r==="\\xdef")&&(u=e.gullet.expandTokens(u),u.reverse()),e.gullet.macros.set(i,{tokens:u,numArgs:a,delimiters:l},r===H8[r]),{type:"internal",mode:e.mode}}});Ot({type:"internal",names:["\\let","\\\\globallet"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(t){var{parser:e,funcName:r}=t,n=Oj(e.gullet.popToken());e.gullet.consumeSpaces();var i=e8e(e);return Pj(e,n,i,r==="\\\\globallet"),{type:"internal",mode:e.mode}}});Ot({type:"internal",names:["\\futurelet","\\\\globalfuture"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(t){var{parser:e,funcName:r}=t,n=Oj(e.gullet.popToken()),i=e.gullet.popToken(),a=e.gullet.popToken();return Pj(e,n,a,r==="\\\\globalfuture"),e.gullet.pushToken(a),e.gullet.pushToken(i),{type:"internal",mode:e.mode}}});_2=o(function(e,r,n){var i=qn.math[e]&&qn.math[e].replace,a=Z8(i||e,r,n);if(!a)throw new Error("Unsupported symbol "+e+" and font size "+r+".");return a},"getMetrics"),iD=o(function(e,r,n,i){var a=n.havingBaseStyle(r),s=He.makeSpan(i.concat(a.sizingClasses(n)),[e],n),l=a.sizeMultiplier/n.sizeMultiplier;return s.height*=l,s.depth*=l,s.maxFontSize=a.sizeMultiplier,s},"styleWrap"),Bj=o(function(e,r,n){var i=r.havingBaseStyle(n),a=(1-r.sizeMultiplier/i.sizeMultiplier)*r.fontMetrics().axisHeight;e.classes.push("delimcenter"),e.style.top=_t(a),e.height-=a,e.depth+=a},"centerSpan"),t8e=o(function(e,r,n,i,a,s){var l=He.makeSymbol(e,"Main-Regular",a,i),u=iD(l,r,i,s);return n&&Bj(u,i,r),u},"makeSmallDelim"),r8e=o(function(e,r,n,i){return He.makeSymbol(e,"Size"+r+"-Regular",n,i)},"mathrmSize"),Fj=o(function(e,r,n,i,a,s){var l=r8e(e,r,a,i),u=iD(He.makeSpan(["delimsizing","size"+r],[l],i),dr.TEXT,i,s);return n&&Bj(u,i,dr.TEXT),u},"makeLargeDelim"),R8=o(function(e,r,n){var i;r==="Size1-Regular"?i="delim-size1":i="delim-size4";var a=He.makeSpan(["delimsizinginner",i],[He.makeSpan([],[He.makeSymbol(e,r,n)])]);return{type:"elem",elem:a}},"makeGlyphSpan"),L8=o(function(e,r,n){var i=qc["Size4-Regular"][e.charCodeAt(0)]?qc["Size4-Regular"][e.charCodeAt(0)][4]:qc["Size1-Regular"][e.charCodeAt(0)][4],a=new Uc("inner",u_e(e,Math.round(1e3*r))),s=new Zl([a],{width:_t(i),height:_t(r),style:"width:"+_t(i),viewBox:"0 0 "+1e3*i+" "+Math.round(1e3*r),preserveAspectRatio:"xMinYMin"}),l=He.makeSvgSpan([],[s],n);return l.height=r,l.style.height=_t(r),l.style.width=_t(i),{type:"elem",elem:l}},"makeInner"),Y8=.008,dw={type:"kern",size:-1*Y8},n8e=["|","\\lvert","\\rvert","\\vert"],i8e=["\\|","\\lVert","\\rVert","\\Vert"],$j=o(function(e,r,n,i,a,s){var l,u,h,f,d="",p=0;l=h=f=e,u=null;var m="Size1-Regular";e==="\\uparrow"?h=f="\u23D0":e==="\\Uparrow"?h=f="\u2016":e==="\\downarrow"?l=h="\u23D0":e==="\\Downarrow"?l=h="\u2016":e==="\\updownarrow"?(l="\\uparrow",h="\u23D0",f="\\downarrow"):e==="\\Updownarrow"?(l="\\Uparrow",h="\u2016",f="\\Downarrow"):n8e.includes(e)?(h="\u2223",d="vert",p=333):i8e.includes(e)?(h="\u2225",d="doublevert",p=556):e==="["||e==="\\lbrack"?(l="\u23A1",h="\u23A2",f="\u23A3",m="Size4-Regular",d="lbrack",p=667):e==="]"||e==="\\rbrack"?(l="\u23A4",h="\u23A5",f="\u23A6",m="Size4-Regular",d="rbrack",p=667):e==="\\lfloor"||e==="\u230A"?(h=l="\u23A2",f="\u23A3",m="Size4-Regular",d="lfloor",p=667):e==="\\lceil"||e==="\u2308"?(l="\u23A1",h=f="\u23A2",m="Size4-Regular",d="lceil",p=667):e==="\\rfloor"||e==="\u230B"?(h=l="\u23A5",f="\u23A6",m="Size4-Regular",d="rfloor",p=667):e==="\\rceil"||e==="\u2309"?(l="\u23A4",h=f="\u23A5",m="Size4-Regular",d="rceil",p=667):e==="("||e==="\\lparen"?(l="\u239B",h="\u239C",f="\u239D",m="Size4-Regular",d="lparen",p=875):e===")"||e==="\\rparen"?(l="\u239E",h="\u239F",f="\u23A0",m="Size4-Regular",d="rparen",p=875):e==="\\{"||e==="\\lbrace"?(l="\u23A7",u="\u23A8",f="\u23A9",h="\u23AA",m="Size4-Regular"):e==="\\}"||e==="\\rbrace"?(l="\u23AB",u="\u23AC",f="\u23AD",h="\u23AA",m="Size4-Regular"):e==="\\lgroup"||e==="\u27EE"?(l="\u23A7",f="\u23A9",h="\u23AA",m="Size4-Regular"):e==="\\rgroup"||e==="\u27EF"?(l="\u23AB",f="\u23AD",h="\u23AA",m="Size4-Regular"):e==="\\lmoustache"||e==="\u23B0"?(l="\u23A7",f="\u23AD",h="\u23AA",m="Size4-Regular"):(e==="\\rmoustache"||e==="\u23B1")&&(l="\u23AB",f="\u23A9",h="\u23AA",m="Size4-Regular");var g=_2(l,m,a),y=g.height+g.depth,v=_2(h,m,a),x=v.height+v.depth,b=_2(f,m,a),T=b.height+b.depth,E=0,w=1;if(u!==null){var k=_2(u,m,a);E=k.height+k.depth,w=2}var S=y+T+E,A=Math.max(0,Math.ceil((r-S)/(w*x))),L=S+A*w*x,I=i.fontMetrics().axisHeight;n&&(I*=i.sizeMultiplier);var N=L/2-I,C=[];if(d.length>0){var _=L-y-T,D=Math.round(L*1e3),M=h_e(d,Math.round(_*1e3)),R=new Uc(d,M),P=(p/1e3).toFixed(3)+"em",B=(D/1e3).toFixed(3)+"em",F=new Zl([R],{width:P,height:B,viewBox:"0 0 "+p+" "+D}),G=He.makeSvgSpan([],[F],i);G.height=D/1e3,G.style.width=P,G.style.height=B,C.push({type:"elem",elem:G})}else{if(C.push(R8(f,m,a)),C.push(dw),u===null){var $=L-y-T+2*Y8;C.push(L8(h,$,i))}else{var V=(L-y-T-E)/2+2*Y8;C.push(L8(h,V,i)),C.push(dw),C.push(R8(u,m,a)),C.push(dw),C.push(L8(h,V,i))}C.push(dw),C.push(R8(l,m,a))}var X=i.havingBaseStyle(dr.TEXT),Q=He.makeVList({positionType:"bottom",positionData:N,children:C},X);return iD(He.makeSpan(["delimsizing","mult"],[Q],X),dr.TEXT,i,s)},"makeStackedDelim"),N8=80,M8=.08,I8=o(function(e,r,n,i,a){var s=c_e(e,i,n),l=new Uc(e,s),u=new Zl([l],{width:"400em",height:_t(r),viewBox:"0 0 400000 "+n,preserveAspectRatio:"xMinYMin slice"});return He.makeSvgSpan(["hide-tail"],[u],a)},"sqrtSvg"),a8e=o(function(e,r){var n=r.havingBaseSizing(),i=qj("\\surd",e*n.sizeMultiplier,Vj,n),a=n.sizeMultiplier,s=Math.max(0,r.minRuleThickness-r.fontMetrics().sqrtRuleThickness),l,u=0,h=0,f=0,d;return i.type==="small"?(f=1e3+1e3*s+N8,e<1?a=1:e<1.4&&(a=.7),u=(1+s+M8)/a,h=(1+s)/a,l=I8("sqrtMain",u,f,s,r),l.style.minWidth="0.853em",d=.833/a):i.type==="large"?(f=(1e3+N8)*R2[i.size],h=(R2[i.size]+s)/a,u=(R2[i.size]+s+M8)/a,l=I8("sqrtSize"+i.size,u,f,s,r),l.style.minWidth="1.02em",d=1/a):(u=e+s+M8,h=e+s,f=Math.floor(1e3*e+s)+N8,l=I8("sqrtTall",u,f,s,r),l.style.minWidth="0.742em",d=1.056),l.height=h,l.style.height=_t(u),{span:l,advanceWidth:d,ruleWidth:(r.fontMetrics().sqrtRuleThickness+s)*a}},"makeSqrtImage"),zj=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\u230A","\u230B","\\lceil","\\rceil","\u2308","\u2309","\\surd"],s8e=["\\uparrow","\\downarrow","\\updownarrow","\\Uparrow","\\Downarrow","\\Updownarrow","|","\\|","\\vert","\\Vert","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\u27EE","\u27EF","\\lmoustache","\\rmoustache","\u23B0","\u23B1"],Gj=["<",">","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"],R2=[0,1.2,1.8,2.4,3],o8e=o(function(e,r,n,i,a){if(e==="<"||e==="\\lt"||e==="\u27E8"?e="\\langle":(e===">"||e==="\\gt"||e==="\u27E9")&&(e="\\rangle"),zj.includes(e)||Gj.includes(e))return Fj(e,r,!1,n,i,a);if(s8e.includes(e))return $j(e,R2[r],!1,n,i,a);throw new bt("Illegal delimiter: '"+e+"'")},"makeSizedDelim"),l8e=[{type:"small",style:dr.SCRIPTSCRIPT},{type:"small",style:dr.SCRIPT},{type:"small",style:dr.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}],c8e=[{type:"small",style:dr.SCRIPTSCRIPT},{type:"small",style:dr.SCRIPT},{type:"small",style:dr.TEXT},{type:"stack"}],Vj=[{type:"small",style:dr.SCRIPTSCRIPT},{type:"small",style:dr.SCRIPT},{type:"small",style:dr.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}],u8e=o(function(e){if(e.type==="small")return"Main-Regular";if(e.type==="large")return"Size"+e.size+"-Regular";if(e.type==="stack")return"Size4-Regular";throw new Error("Add support for delim type '"+e.type+"' here.")},"delimTypeToFont"),qj=o(function(e,r,n,i){for(var a=Math.min(2,3-i.style.size),s=a;sr)return n[s]}return n[n.length-1]},"traverseSequence"),Uj=o(function(e,r,n,i,a,s){e==="<"||e==="\\lt"||e==="\u27E8"?e="\\langle":(e===">"||e==="\\gt"||e==="\u27E9")&&(e="\\rangle");var l;Gj.includes(e)?l=l8e:zj.includes(e)?l=Vj:l=c8e;var u=qj(e,r,l,i);return u.type==="small"?t8e(e,u.style,n,i,a,s):u.type==="large"?Fj(e,u.size,n,i,a,s):$j(e,r,n,i,a,s)},"makeCustomSizedDelim"),h8e=o(function(e,r,n,i,a,s){var l=i.fontMetrics().axisHeight*i.sizeMultiplier,u=901,h=5/i.fontMetrics().ptPerEm,f=Math.max(r-l,n+l),d=Math.max(f/500*u,2*f-h);return Uj(e,d,!0,i,a,s)},"makeLeftRightDelim"),sh={sqrtImage:a8e,sizedDelim:o8e,sizeToMaxHeight:R2,customSizedDelim:Uj,leftRightDelim:h8e},jY={"\\bigl":{mclass:"mopen",size:1},"\\Bigl":{mclass:"mopen",size:2},"\\biggl":{mclass:"mopen",size:3},"\\Biggl":{mclass:"mopen",size:4},"\\bigr":{mclass:"mclose",size:1},"\\Bigr":{mclass:"mclose",size:2},"\\biggr":{mclass:"mclose",size:3},"\\Biggr":{mclass:"mclose",size:4},"\\bigm":{mclass:"mrel",size:1},"\\Bigm":{mclass:"mrel",size:2},"\\biggm":{mclass:"mrel",size:3},"\\Biggm":{mclass:"mrel",size:4},"\\big":{mclass:"mord",size:1},"\\Big":{mclass:"mord",size:2},"\\bigg":{mclass:"mord",size:3},"\\Bigg":{mclass:"mord",size:4}},f8e=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\u230A","\u230B","\\lceil","\\rceil","\u2308","\u2309","<",">","\\langle","\u27E8","\\rangle","\u27E9","\\lt","\\gt","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\u27EE","\u27EF","\\lmoustache","\\rmoustache","\u23B0","\u23B1","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."];o(_w,"checkDelimiter");Ot({type:"delimsizing",names:["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg"],props:{numArgs:1,argTypes:["primitive"]},handler:o((t,e)=>{var r=_w(e[0],t);return{type:"delimsizing",mode:t.parser.mode,size:jY[t.funcName].size,mclass:jY[t.funcName].mclass,delim:r.text}},"handler"),htmlBuilder:o((t,e)=>t.delim==="."?He.makeSpan([t.mclass]):sh.sizedDelim(t.delim,t.size,e,t.mode,[t.mclass]),"htmlBuilder"),mathmlBuilder:o(t=>{var e=[];t.delim!=="."&&e.push(ml(t.delim,t.mode));var r=new vt.MathNode("mo",e);t.mclass==="mopen"||t.mclass==="mclose"?r.setAttribute("fence","true"):r.setAttribute("fence","false"),r.setAttribute("stretchy","true");var n=_t(sh.sizeToMaxHeight[t.size]);return r.setAttribute("minsize",n),r.setAttribute("maxsize",n),r},"mathmlBuilder")});o(XY,"assertParsed");Ot({type:"leftright-right",names:["\\right"],props:{numArgs:1,primitive:!0},handler:o((t,e)=>{var r=t.parser.gullet.macros.get("\\current@color");if(r&&typeof r!="string")throw new bt("\\current@color set to non-string in \\right");return{type:"leftright-right",mode:t.parser.mode,delim:_w(e[0],t).text,color:r}},"handler")});Ot({type:"leftright",names:["\\left"],props:{numArgs:1,primitive:!0},handler:o((t,e)=>{var r=_w(e[0],t),n=t.parser;++n.leftrightDepth;var i=n.parseExpression(!1);--n.leftrightDepth,n.expect("\\right",!1);var a=Ir(n.parseFunction(),"leftright-right");return{type:"leftright",mode:n.mode,body:i,left:r.text,right:a.delim,rightColor:a.color}},"handler"),htmlBuilder:o((t,e)=>{XY(t);for(var r=ea(t.body,e,!0,["mopen","mclose"]),n=0,i=0,a=!1,s=0;s{XY(t);var r=Js(t.body,e);if(t.left!=="."){var n=new vt.MathNode("mo",[ml(t.left,t.mode)]);n.setAttribute("fence","true"),r.unshift(n)}if(t.right!=="."){var i=new vt.MathNode("mo",[ml(t.right,t.mode)]);i.setAttribute("fence","true"),t.rightColor&&i.setAttribute("mathcolor",t.rightColor),r.push(i)}return eD(r)},"mathmlBuilder")});Ot({type:"middle",names:["\\middle"],props:{numArgs:1,primitive:!0},handler:o((t,e)=>{var r=_w(e[0],t);if(!t.parser.leftrightDepth)throw new bt("\\middle without preceding \\left",r);return{type:"middle",mode:t.parser.mode,delim:r.text}},"handler"),htmlBuilder:o((t,e)=>{var r;if(t.delim===".")r=O2(e,[]);else{r=sh.sizedDelim(t.delim,1,e,t.mode,[]);var n={delim:t.delim,options:e};r.isMiddle=n}return r},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=t.delim==="\\vert"||t.delim==="|"?ml("|","text"):ml(t.delim,t.mode),n=new vt.MathNode("mo",[r]);return n.setAttribute("fence","true"),n.setAttribute("lspace","0.05em"),n.setAttribute("rspace","0.05em"),n},"mathmlBuilder")});aD=o((t,e)=>{var r=He.wrapFragment(rn(t.body,e),e),n=t.label.slice(1),i=e.sizeMultiplier,a,s=0,l=un.isCharacterBox(t.body);if(n==="sout")a=He.makeSpan(["stretchy","sout"]),a.height=e.fontMetrics().defaultRuleThickness/i,s=-.5*e.fontMetrics().xHeight;else if(n==="phase"){var u=bi({number:.6,unit:"pt"},e),h=bi({number:.35,unit:"ex"},e),f=e.havingBaseSizing();i=i/f.sizeMultiplier;var d=r.height+r.depth+u+h;r.style.paddingLeft=_t(d/2+u);var p=Math.floor(1e3*d*i),m=o_e(p),g=new Zl([new Uc("phase",m)],{width:"400em",height:_t(p/1e3),viewBox:"0 0 400000 "+p,preserveAspectRatio:"xMinYMin slice"});a=He.makeSvgSpan(["hide-tail"],[g],e),a.style.height=_t(d),s=r.depth+u+h}else{/cancel/.test(n)?l||r.classes.push("cancel-pad"):n==="angl"?r.classes.push("anglpad"):r.classes.push("boxpad");var y=0,v=0,x=0;/box/.test(n)?(x=Math.max(e.fontMetrics().fboxrule,e.minRuleThickness),y=e.fontMetrics().fboxsep+(n==="colorbox"?0:x),v=y):n==="angl"?(x=Math.max(e.fontMetrics().defaultRuleThickness,e.minRuleThickness),y=4*x,v=Math.max(0,.25-r.depth)):(y=l?.2:0,v=y),a=lh.encloseSpan(r,n,y,v,e),/fbox|boxed|fcolorbox/.test(n)?(a.style.borderStyle="solid",a.style.borderWidth=_t(x)):n==="angl"&&x!==.049&&(a.style.borderTopWidth=_t(x),a.style.borderRightWidth=_t(x)),s=r.depth+v,t.backgroundColor&&(a.style.backgroundColor=t.backgroundColor,t.borderColor&&(a.style.borderColor=t.borderColor))}var b;if(t.backgroundColor)b=He.makeVList({positionType:"individualShift",children:[{type:"elem",elem:a,shift:s},{type:"elem",elem:r,shift:0}]},e);else{var T=/cancel|phase/.test(n)?["svg-align"]:[];b=He.makeVList({positionType:"individualShift",children:[{type:"elem",elem:r,shift:0},{type:"elem",elem:a,shift:s,wrapperClasses:T}]},e)}return/cancel/.test(n)&&(b.height=r.height,b.depth=r.depth),/cancel/.test(n)&&!l?He.makeSpan(["mord","cancel-lap"],[b],e):He.makeSpan(["mord"],[b],e)},"htmlBuilder$7"),sD=o((t,e)=>{var r=0,n=new vt.MathNode(t.label.indexOf("colorbox")>-1?"mpadded":"menclose",[Mn(t.body,e)]);switch(t.label){case"\\cancel":n.setAttribute("notation","updiagonalstrike");break;case"\\bcancel":n.setAttribute("notation","downdiagonalstrike");break;case"\\phase":n.setAttribute("notation","phasorangle");break;case"\\sout":n.setAttribute("notation","horizontalstrike");break;case"\\fbox":n.setAttribute("notation","box");break;case"\\angl":n.setAttribute("notation","actuarial");break;case"\\fcolorbox":case"\\colorbox":if(r=e.fontMetrics().fboxsep*e.fontMetrics().ptPerEm,n.setAttribute("width","+"+2*r+"pt"),n.setAttribute("height","+"+2*r+"pt"),n.setAttribute("lspace",r+"pt"),n.setAttribute("voffset",r+"pt"),t.label==="\\fcolorbox"){var i=Math.max(e.fontMetrics().fboxrule,e.minRuleThickness);n.setAttribute("style","border: "+i+"em solid "+String(t.borderColor))}break;case"\\xcancel":n.setAttribute("notation","updiagonalstrike downdiagonalstrike");break}return t.backgroundColor&&n.setAttribute("mathbackground",t.backgroundColor),n},"mathmlBuilder$6");Ot({type:"enclose",names:["\\colorbox"],props:{numArgs:2,allowedInText:!0,argTypes:["color","text"]},handler(t,e,r){var{parser:n,funcName:i}=t,a=Ir(e[0],"color-token").color,s=e[1];return{type:"enclose",mode:n.mode,label:i,backgroundColor:a,body:s}},htmlBuilder:aD,mathmlBuilder:sD});Ot({type:"enclose",names:["\\fcolorbox"],props:{numArgs:3,allowedInText:!0,argTypes:["color","color","text"]},handler(t,e,r){var{parser:n,funcName:i}=t,a=Ir(e[0],"color-token").color,s=Ir(e[1],"color-token").color,l=e[2];return{type:"enclose",mode:n.mode,label:i,backgroundColor:s,borderColor:a,body:l}},htmlBuilder:aD,mathmlBuilder:sD});Ot({type:"enclose",names:["\\fbox"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!0},handler(t,e){var{parser:r}=t;return{type:"enclose",mode:r.mode,label:"\\fbox",body:e[0]}}});Ot({type:"enclose",names:["\\cancel","\\bcancel","\\xcancel","\\sout","\\phase"],props:{numArgs:1},handler(t,e){var{parser:r,funcName:n}=t,i=e[0];return{type:"enclose",mode:r.mode,label:n,body:i}},htmlBuilder:aD,mathmlBuilder:sD});Ot({type:"enclose",names:["\\angl"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!1},handler(t,e){var{parser:r}=t;return{type:"enclose",mode:r.mode,label:"\\angl",body:e[0]}}});Wj={};o(Wc,"defineEnvironment");Hj={};o(ue,"defineMacro");o(KY,"getHLines");Dw=o(t=>{var e=t.parser.settings;if(!e.displayMode)throw new bt("{"+t.envName+"} can be used only in display mode.")},"validateAmsEnvironmentContext");o(oD,"getAutoTag");o(kf,"parseArray");o(lD,"dCellStyle");Hc=o(function(e,r){var n,i,a=e.body.length,s=e.hLinesBeforeRow,l=0,u=new Array(a),h=[],f=Math.max(r.fontMetrics().arrayRuleWidth,r.minRuleThickness),d=1/r.fontMetrics().ptPerEm,p=5*d;if(e.colSeparationType&&e.colSeparationType==="small"){var m=r.havingStyle(dr.SCRIPT).sizeMultiplier;p=.2778*(m/r.sizeMultiplier)}var g=e.colSeparationType==="CD"?bi({number:3,unit:"ex"},r):12*d,y=3*d,v=e.arraystretch*g,x=.7*v,b=.3*v,T=0;function E(we){for(var _e=0;_e0&&(T+=.25),h.push({pos:T,isDashed:we[_e]})}for(o(E,"setHLinePos"),E(s[0]),n=0;n0&&(N+=b,Swe))for(n=0;n=l)){var Y=void 0;(i>0||e.hskipBeforeAndAfter)&&(Y=un.deflt(V.pregap,p),Y!==0&&(M=He.makeSpan(["arraycolsep"],[]),M.style.width=_t(Y),D.push(M)));var le=[];for(n=0;n0){for(var Z=He.makeLineSpan("hline",r,f),xe=He.makeLineSpan("hdashline",r,f),de=[{type:"elem",elem:u,shift:0}];h.length>0;){var Se=h.pop(),Me=Se.pos-C;Se.isDashed?de.push({type:"elem",elem:xe,shift:Me}):de.push({type:"elem",elem:Z,shift:Me})}u=He.makeVList({positionType:"individualShift",children:de},r)}if(P.length===0)return He.makeSpan(["mord"],[u],r);var ke=He.makeVList({positionType:"individualShift",children:P},r);return ke=He.makeSpan(["tag"],[ke],r),He.makeFragment([u,ke])},"htmlBuilder"),d8e={c:"center ",l:"left ",r:"right "},Yc=o(function(e,r){for(var n=[],i=new vt.MathNode("mtd",[],["mtr-glue"]),a=new vt.MathNode("mtd",[],["mml-eqn-num"]),s=0;s0){var g=e.cols,y="",v=!1,x=0,b=g.length;g[0].type==="separator"&&(p+="top ",x=1),g[g.length-1].type==="separator"&&(p+="bottom ",b-=1);for(var T=x;T0?"left ":"",p+=A[A.length-1].length>0?"right ":"";for(var L=1;L-1?"alignat":"align",a=e.envName==="split",s=kf(e.parser,{cols:n,addJot:!0,autoTag:a?void 0:oD(e.envName),emptySingleRow:!0,colSeparationType:i,maxNumCols:a?2:void 0,leqno:e.parser.settings.leqno},"display"),l,u=0,h={type:"ordgroup",mode:e.mode,body:[]};if(r[0]&&r[0].type==="ordgroup"){for(var f="",d=0;d0&&m&&(v=1),n[g]={type:"align",align:y,pregap:v,postgap:0}}return s.colSeparationType=m?"align":"alignat",s},"alignedHandler");Wc({type:"array",names:["array","darray"],props:{numArgs:1},handler(t,e){var r=Cw(e[0]),n=r?[e[0]]:Ir(e[0],"ordgroup").body,i=n.map(function(s){var l=rD(s),u=l.text;if("lcr".indexOf(u)!==-1)return{type:"align",align:u};if(u==="|")return{type:"separator",separator:"|"};if(u===":")return{type:"separator",separator:":"};throw new bt("Unknown column alignment: "+u,s)}),a={cols:i,hskipBeforeAndAfter:!0,maxNumCols:i.length};return kf(t.parser,a,lD(t.envName))},htmlBuilder:Hc,mathmlBuilder:Yc});Wc({type:"array",names:["matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix","matrix*","pmatrix*","bmatrix*","Bmatrix*","vmatrix*","Vmatrix*"],props:{numArgs:0},handler(t){var e={matrix:null,pmatrix:["(",")"],bmatrix:["[","]"],Bmatrix:["\\{","\\}"],vmatrix:["|","|"],Vmatrix:["\\Vert","\\Vert"]}[t.envName.replace("*","")],r="c",n={hskipBeforeAndAfter:!1,cols:[{type:"align",align:r}]};if(t.envName.charAt(t.envName.length-1)==="*"){var i=t.parser;if(i.consumeSpaces(),i.fetch().text==="["){if(i.consume(),i.consumeSpaces(),r=i.fetch().text,"lcr".indexOf(r)===-1)throw new bt("Expected l or c or r",i.nextToken);i.consume(),i.consumeSpaces(),i.expect("]"),i.consume(),n.cols=[{type:"align",align:r}]}}var a=kf(t.parser,n,lD(t.envName)),s=Math.max(0,...a.body.map(l=>l.length));return a.cols=new Array(s).fill({type:"align",align:r}),e?{type:"leftright",mode:t.mode,body:[a],left:e[0],right:e[1],rightColor:void 0}:a},htmlBuilder:Hc,mathmlBuilder:Yc});Wc({type:"array",names:["smallmatrix"],props:{numArgs:0},handler(t){var e={arraystretch:.5},r=kf(t.parser,e,"script");return r.colSeparationType="small",r},htmlBuilder:Hc,mathmlBuilder:Yc});Wc({type:"array",names:["subarray"],props:{numArgs:1},handler(t,e){var r=Cw(e[0]),n=r?[e[0]]:Ir(e[0],"ordgroup").body,i=n.map(function(s){var l=rD(s),u=l.text;if("lc".indexOf(u)!==-1)return{type:"align",align:u};throw new bt("Unknown column alignment: "+u,s)});if(i.length>1)throw new bt("{subarray} can contain only one column");var a={cols:i,hskipBeforeAndAfter:!1,arraystretch:.5};if(a=kf(t.parser,a,"script"),a.body.length>0&&a.body[0].length>1)throw new bt("{subarray} can contain only one column");return a},htmlBuilder:Hc,mathmlBuilder:Yc});Wc({type:"array",names:["cases","dcases","rcases","drcases"],props:{numArgs:0},handler(t){var e={arraystretch:1.2,cols:[{type:"align",align:"l",pregap:0,postgap:1},{type:"align",align:"l",pregap:0,postgap:0}]},r=kf(t.parser,e,lD(t.envName));return{type:"leftright",mode:t.mode,body:[r],left:t.envName.indexOf("r")>-1?".":"\\{",right:t.envName.indexOf("r")>-1?"\\}":".",rightColor:void 0}},htmlBuilder:Hc,mathmlBuilder:Yc});Wc({type:"array",names:["align","align*","aligned","split"],props:{numArgs:0},handler:Yj,htmlBuilder:Hc,mathmlBuilder:Yc});Wc({type:"array",names:["gathered","gather","gather*"],props:{numArgs:0},handler(t){["gather","gather*"].includes(t.envName)&&Dw(t);var e={cols:[{type:"align",align:"c"}],addJot:!0,colSeparationType:"gather",autoTag:oD(t.envName),emptySingleRow:!0,leqno:t.parser.settings.leqno};return kf(t.parser,e,"display")},htmlBuilder:Hc,mathmlBuilder:Yc});Wc({type:"array",names:["alignat","alignat*","alignedat"],props:{numArgs:1},handler:Yj,htmlBuilder:Hc,mathmlBuilder:Yc});Wc({type:"array",names:["equation","equation*"],props:{numArgs:0},handler(t){Dw(t);var e={autoTag:oD(t.envName),emptySingleRow:!0,singleRow:!0,maxNumCols:1,leqno:t.parser.settings.leqno};return kf(t.parser,e,"display")},htmlBuilder:Hc,mathmlBuilder:Yc});Wc({type:"array",names:["CD"],props:{numArgs:0},handler(t){return Dw(t),J_e(t.parser)},htmlBuilder:Hc,mathmlBuilder:Yc});ue("\\nonumber","\\gdef\\@eqnsw{0}");ue("\\notag","\\nonumber");Ot({type:"text",names:["\\hline","\\hdashline"],props:{numArgs:0,allowedInText:!0,allowedInMath:!0},handler(t,e){throw new bt(t.funcName+" valid only within array environment")}});QY=Wj;Ot({type:"environment",names:["\\begin","\\end"],props:{numArgs:1,argTypes:["text"]},handler(t,e){var{parser:r,funcName:n}=t,i=e[0];if(i.type!=="ordgroup")throw new bt("Invalid environment name",i);for(var a="",s=0;s{var r=t.font,n=e.withFont(r);return rn(t.body,n)},"htmlBuilder$5"),Xj=o((t,e)=>{var r=t.font,n=e.withFont(r);return Mn(t.body,n)},"mathmlBuilder$4"),ZY={"\\Bbb":"\\mathbb","\\bold":"\\mathbf","\\frak":"\\mathfrak","\\bm":"\\boldsymbol"};Ot({type:"font",names:["\\mathrm","\\mathit","\\mathbf","\\mathnormal","\\mathsfit","\\mathbb","\\mathcal","\\mathfrak","\\mathscr","\\mathsf","\\mathtt","\\Bbb","\\bold","\\frak"],props:{numArgs:1,allowedInArgument:!0},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=Tw(e[0]),a=n;return a in ZY&&(a=ZY[a]),{type:"font",mode:r.mode,font:a.slice(1),body:i}},"handler"),htmlBuilder:jj,mathmlBuilder:Xj});Ot({type:"mclass",names:["\\boldsymbol","\\bm"],props:{numArgs:1},handler:o((t,e)=>{var{parser:r}=t,n=e[0],i=un.isCharacterBox(n);return{type:"mclass",mode:r.mode,mclass:Aw(n),body:[{type:"font",mode:r.mode,font:"boldsymbol",body:n}],isCharacterBox:i}},"handler")});Ot({type:"font",names:["\\rm","\\sf","\\tt","\\bf","\\it","\\cal"],props:{numArgs:0,allowedInText:!0},handler:o((t,e)=>{var{parser:r,funcName:n,breakOnTokenText:i}=t,{mode:a}=r,s=r.parseExpression(!0,i),l="math"+n.slice(1);return{type:"font",mode:a,font:l,body:{type:"ordgroup",mode:r.mode,body:s}}},"handler"),htmlBuilder:jj,mathmlBuilder:Xj});Kj=o((t,e)=>{var r=e;return t==="display"?r=r.id>=dr.SCRIPT.id?r.text():dr.DISPLAY:t==="text"&&r.size===dr.DISPLAY.size?r=dr.TEXT:t==="script"?r=dr.SCRIPT:t==="scriptscript"&&(r=dr.SCRIPTSCRIPT),r},"adjustStyle"),cD=o((t,e)=>{var r=Kj(t.size,e.style),n=r.fracNum(),i=r.fracDen(),a;a=e.havingStyle(n);var s=rn(t.numer,a,e);if(t.continued){var l=8.5/e.fontMetrics().ptPerEm,u=3.5/e.fontMetrics().ptPerEm;s.height=s.height0?g=3*p:g=7*p,y=e.fontMetrics().denom1):(d>0?(m=e.fontMetrics().num2,g=p):(m=e.fontMetrics().num3,g=3*p),y=e.fontMetrics().denom2);var v;if(f){var b=e.fontMetrics().axisHeight;m-s.depth-(b+.5*d){var r=new vt.MathNode("mfrac",[Mn(t.numer,e),Mn(t.denom,e)]);if(!t.hasBarLine)r.setAttribute("linethickness","0px");else if(t.barSize){var n=bi(t.barSize,e);r.setAttribute("linethickness",_t(n))}var i=Kj(t.size,e.style);if(i.size!==e.style.size){r=new vt.MathNode("mstyle",[r]);var a=i.size===dr.DISPLAY.size?"true":"false";r.setAttribute("displaystyle",a),r.setAttribute("scriptlevel","0")}if(t.leftDelim!=null||t.rightDelim!=null){var s=[];if(t.leftDelim!=null){var l=new vt.MathNode("mo",[new vt.TextNode(t.leftDelim.replace("\\",""))]);l.setAttribute("fence","true"),s.push(l)}if(s.push(r),t.rightDelim!=null){var u=new vt.MathNode("mo",[new vt.TextNode(t.rightDelim.replace("\\",""))]);u.setAttribute("fence","true"),s.push(u)}return eD(s)}return r},"mathmlBuilder$3");Ot({type:"genfrac",names:["\\dfrac","\\frac","\\tfrac","\\dbinom","\\binom","\\tbinom","\\\\atopfrac","\\\\bracefrac","\\\\brackfrac"],props:{numArgs:2,allowedInArgument:!0},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=e[0],a=e[1],s,l=null,u=null,h="auto";switch(n){case"\\dfrac":case"\\frac":case"\\tfrac":s=!0;break;case"\\\\atopfrac":s=!1;break;case"\\dbinom":case"\\binom":case"\\tbinom":s=!1,l="(",u=")";break;case"\\\\bracefrac":s=!1,l="\\{",u="\\}";break;case"\\\\brackfrac":s=!1,l="[",u="]";break;default:throw new Error("Unrecognized genfrac command")}switch(n){case"\\dfrac":case"\\dbinom":h="display";break;case"\\tfrac":case"\\tbinom":h="text";break}return{type:"genfrac",mode:r.mode,continued:!1,numer:i,denom:a,hasBarLine:s,leftDelim:l,rightDelim:u,size:h,barSize:null}},"handler"),htmlBuilder:cD,mathmlBuilder:uD});Ot({type:"genfrac",names:["\\cfrac"],props:{numArgs:2},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=e[0],a=e[1];return{type:"genfrac",mode:r.mode,continued:!0,numer:i,denom:a,hasBarLine:!0,leftDelim:null,rightDelim:null,size:"display",barSize:null}},"handler")});Ot({type:"infix",names:["\\over","\\choose","\\atop","\\brace","\\brack"],props:{numArgs:0,infix:!0},handler(t){var{parser:e,funcName:r,token:n}=t,i;switch(r){case"\\over":i="\\frac";break;case"\\choose":i="\\binom";break;case"\\atop":i="\\\\atopfrac";break;case"\\brace":i="\\\\bracefrac";break;case"\\brack":i="\\\\brackfrac";break;default:throw new Error("Unrecognized infix genfrac command")}return{type:"infix",mode:e.mode,replaceWith:i,token:n}}});JY=["display","text","script","scriptscript"],ej=o(function(e){var r=null;return e.length>0&&(r=e,r=r==="."?null:r),r},"delimFromValue");Ot({type:"genfrac",names:["\\genfrac"],props:{numArgs:6,allowedInArgument:!0,argTypes:["math","math","size","text","math","math"]},handler(t,e){var{parser:r}=t,n=e[4],i=e[5],a=Tw(e[0]),s=a.type==="atom"&&a.family==="open"?ej(a.text):null,l=Tw(e[1]),u=l.type==="atom"&&l.family==="close"?ej(l.text):null,h=Ir(e[2],"size"),f,d=null;h.isBlank?f=!0:(d=h.value,f=d.number>0);var p="auto",m=e[3];if(m.type==="ordgroup"){if(m.body.length>0){var g=Ir(m.body[0],"textord");p=JY[Number(g.text)]}}else m=Ir(m,"textord"),p=JY[Number(m.text)];return{type:"genfrac",mode:r.mode,numer:n,denom:i,continued:!1,hasBarLine:f,barSize:d,leftDelim:s,rightDelim:u,size:p}},htmlBuilder:cD,mathmlBuilder:uD});Ot({type:"infix",names:["\\above"],props:{numArgs:1,argTypes:["size"],infix:!0},handler(t,e){var{parser:r,funcName:n,token:i}=t;return{type:"infix",mode:r.mode,replaceWith:"\\\\abovefrac",size:Ir(e[0],"size").value,token:i}}});Ot({type:"genfrac",names:["\\\\abovefrac"],props:{numArgs:3,argTypes:["math","size","math"]},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=e[0],a=H7e(Ir(e[1],"infix").size),s=e[2],l=a.number>0;return{type:"genfrac",mode:r.mode,numer:i,denom:s,continued:!1,hasBarLine:l,barSize:a,leftDelim:null,rightDelim:null,size:"auto"}},"handler"),htmlBuilder:cD,mathmlBuilder:uD});Qj=o((t,e)=>{var r=e.style,n,i;t.type==="supsub"?(n=t.sup?rn(t.sup,e.havingStyle(r.sup()),e):rn(t.sub,e.havingStyle(r.sub()),e),i=Ir(t.base,"horizBrace")):i=Ir(t,"horizBrace");var a=rn(i.base,e.havingBaseStyle(dr.DISPLAY)),s=lh.svgSpan(i,e),l;if(i.isOver?(l=He.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:a},{type:"kern",size:.1},{type:"elem",elem:s}]},e),l.children[0].children[0].children[1].classes.push("svg-align")):(l=He.makeVList({positionType:"bottom",positionData:a.depth+.1+s.height,children:[{type:"elem",elem:s},{type:"kern",size:.1},{type:"elem",elem:a}]},e),l.children[0].children[0].children[0].classes.push("svg-align")),n){var u=He.makeSpan(["mord",i.isOver?"mover":"munder"],[l],e);i.isOver?l=He.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:u},{type:"kern",size:.2},{type:"elem",elem:n}]},e):l=He.makeVList({positionType:"bottom",positionData:u.depth+.2+n.height+n.depth,children:[{type:"elem",elem:n},{type:"kern",size:.2},{type:"elem",elem:u}]},e)}return He.makeSpan(["mord",i.isOver?"mover":"munder"],[l],e)},"htmlBuilder$3"),p8e=o((t,e)=>{var r=lh.mathMLnode(t.label);return new vt.MathNode(t.isOver?"mover":"munder",[Mn(t.base,e),r])},"mathmlBuilder$2");Ot({type:"horizBrace",names:["\\overbrace","\\underbrace"],props:{numArgs:1},handler(t,e){var{parser:r,funcName:n}=t;return{type:"horizBrace",mode:r.mode,label:n,isOver:/^\\over/.test(n),base:e[0]}},htmlBuilder:Qj,mathmlBuilder:p8e});Ot({type:"href",names:["\\href"],props:{numArgs:2,argTypes:["url","original"],allowedInText:!0},handler:o((t,e)=>{var{parser:r}=t,n=e[1],i=Ir(e[0],"url").url;return r.settings.isTrusted({command:"\\href",url:i})?{type:"href",mode:r.mode,href:i,body:Oi(n)}:r.formatUnsupportedCmd("\\href")},"handler"),htmlBuilder:o((t,e)=>{var r=ea(t.body,e,!1);return He.makeAnchor(t.href,[],r,e)},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=wf(t.body,e);return r instanceof Es||(r=new Es("mrow",[r])),r.setAttribute("href",t.href),r},"mathmlBuilder")});Ot({type:"href",names:["\\url"],props:{numArgs:1,argTypes:["url"],allowedInText:!0},handler:o((t,e)=>{var{parser:r}=t,n=Ir(e[0],"url").url;if(!r.settings.isTrusted({command:"\\url",url:n}))return r.formatUnsupportedCmd("\\url");for(var i=[],a=0;a{var{parser:r,funcName:n,token:i}=t,a=Ir(e[0],"raw").string,s=e[1];r.settings.strict&&r.settings.reportNonstrict("htmlExtension","HTML extension is disabled on strict mode");var l,u={};switch(n){case"\\htmlClass":u.class=a,l={command:"\\htmlClass",class:a};break;case"\\htmlId":u.id=a,l={command:"\\htmlId",id:a};break;case"\\htmlStyle":u.style=a,l={command:"\\htmlStyle",style:a};break;case"\\htmlData":{for(var h=a.split(","),f=0;f{var r=ea(t.body,e,!1),n=["enclosing"];t.attributes.class&&n.push(...t.attributes.class.trim().split(/\s+/));var i=He.makeSpan(n,r,e);for(var a in t.attributes)a!=="class"&&t.attributes.hasOwnProperty(a)&&i.setAttribute(a,t.attributes[a]);return i},"htmlBuilder"),mathmlBuilder:o((t,e)=>wf(t.body,e),"mathmlBuilder")});Ot({type:"htmlmathml",names:["\\html@mathml"],props:{numArgs:2,allowedInText:!0},handler:o((t,e)=>{var{parser:r}=t;return{type:"htmlmathml",mode:r.mode,html:Oi(e[0]),mathml:Oi(e[1])}},"handler"),htmlBuilder:o((t,e)=>{var r=ea(t.html,e,!1);return He.makeFragment(r)},"htmlBuilder"),mathmlBuilder:o((t,e)=>wf(t.mathml,e),"mathmlBuilder")});O8=o(function(e){if(/^[-+]? *(\d+(\.\d*)?|\.\d+)$/.test(e))return{number:+e,unit:"bp"};var r=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(e);if(!r)throw new bt("Invalid size: '"+e+"' in \\includegraphics");var n={number:+(r[1]+r[2]),unit:r[3]};if(!gj(n))throw new bt("Invalid unit: '"+n.unit+"' in \\includegraphics.");return n},"sizeData");Ot({type:"includegraphics",names:["\\includegraphics"],props:{numArgs:1,numOptionalArgs:1,argTypes:["raw","url"],allowedInText:!1},handler:o((t,e,r)=>{var{parser:n}=t,i={number:0,unit:"em"},a={number:.9,unit:"em"},s={number:0,unit:"em"},l="";if(r[0])for(var u=Ir(r[0],"raw").string,h=u.split(","),f=0;f{var r=bi(t.height,e),n=0;t.totalheight.number>0&&(n=bi(t.totalheight,e)-r);var i=0;t.width.number>0&&(i=bi(t.width,e));var a={height:_t(r+n)};i>0&&(a.width=_t(i)),n>0&&(a.verticalAlign=_t(-n));var s=new G8(t.src,t.alt,a);return s.height=r,s.depth=n,s},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=new vt.MathNode("mglyph",[]);r.setAttribute("alt",t.alt);var n=bi(t.height,e),i=0;if(t.totalheight.number>0&&(i=bi(t.totalheight,e)-n,r.setAttribute("valign",_t(-i))),r.setAttribute("height",_t(n+i)),t.width.number>0){var a=bi(t.width,e);r.setAttribute("width",_t(a))}return r.setAttribute("src",t.src),r},"mathmlBuilder")});Ot({type:"kern",names:["\\kern","\\mkern","\\hskip","\\mskip"],props:{numArgs:1,argTypes:["size"],primitive:!0,allowedInText:!0},handler(t,e){var{parser:r,funcName:n}=t,i=Ir(e[0],"size");if(r.settings.strict){var a=n[1]==="m",s=i.value.unit==="mu";a?(s||r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" supports only mu units, "+("not "+i.value.unit+" units")),r.mode!=="math"&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" works only in math mode")):s&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" doesn't support mu units")}return{type:"kern",mode:r.mode,dimension:i.value}},htmlBuilder(t,e){return He.makeGlue(t.dimension,e)},mathmlBuilder(t,e){var r=bi(t.dimension,e);return new vt.SpaceNode(r)}});Ot({type:"lap",names:["\\mathllap","\\mathrlap","\\mathclap"],props:{numArgs:1,allowedInText:!0},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=e[0];return{type:"lap",mode:r.mode,alignment:n.slice(5),body:i}},"handler"),htmlBuilder:o((t,e)=>{var r;t.alignment==="clap"?(r=He.makeSpan([],[rn(t.body,e)]),r=He.makeSpan(["inner"],[r],e)):r=He.makeSpan(["inner"],[rn(t.body,e)]);var n=He.makeSpan(["fix"],[]),i=He.makeSpan([t.alignment],[r,n],e),a=He.makeSpan(["strut"]);return a.style.height=_t(i.height+i.depth),i.depth&&(a.style.verticalAlign=_t(-i.depth)),i.children.unshift(a),i=He.makeSpan(["thinbox"],[i],e),He.makeSpan(["mord","vbox"],[i],e)},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=new vt.MathNode("mpadded",[Mn(t.body,e)]);if(t.alignment!=="rlap"){var n=t.alignment==="llap"?"-1":"-0.5";r.setAttribute("lspace",n+"width")}return r.setAttribute("width","0px"),r},"mathmlBuilder")});Ot({type:"styling",names:["\\(","$"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(t,e){var{funcName:r,parser:n}=t,i=n.mode;n.switchMode("math");var a=r==="\\("?"\\)":"$",s=n.parseExpression(!1,a);return n.expect(a),n.switchMode(i),{type:"styling",mode:n.mode,style:"text",body:s}}});Ot({type:"text",names:["\\)","\\]"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(t,e){throw new bt("Mismatched "+t.funcName)}});tj=o((t,e)=>{switch(e.style.size){case dr.DISPLAY.size:return t.display;case dr.TEXT.size:return t.text;case dr.SCRIPT.size:return t.script;case dr.SCRIPTSCRIPT.size:return t.scriptscript;default:return t.text}},"chooseMathStyle");Ot({type:"mathchoice",names:["\\mathchoice"],props:{numArgs:4,primitive:!0},handler:o((t,e)=>{var{parser:r}=t;return{type:"mathchoice",mode:r.mode,display:Oi(e[0]),text:Oi(e[1]),script:Oi(e[2]),scriptscript:Oi(e[3])}},"handler"),htmlBuilder:o((t,e)=>{var r=tj(t,e),n=ea(r,e,!1);return He.makeFragment(n)},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=tj(t,e);return wf(r,e)},"mathmlBuilder")});Zj=o((t,e,r,n,i,a,s)=>{t=He.makeSpan([],[t]);var l=r&&un.isCharacterBox(r),u,h;if(e){var f=rn(e,n.havingStyle(i.sup()),n);h={elem:f,kern:Math.max(n.fontMetrics().bigOpSpacing1,n.fontMetrics().bigOpSpacing3-f.depth)}}if(r){var d=rn(r,n.havingStyle(i.sub()),n);u={elem:d,kern:Math.max(n.fontMetrics().bigOpSpacing2,n.fontMetrics().bigOpSpacing4-d.height)}}var p;if(h&&u){var m=n.fontMetrics().bigOpSpacing5+u.elem.height+u.elem.depth+u.kern+t.depth+s;p=He.makeVList({positionType:"bottom",positionData:m,children:[{type:"kern",size:n.fontMetrics().bigOpSpacing5},{type:"elem",elem:u.elem,marginLeft:_t(-a)},{type:"kern",size:u.kern},{type:"elem",elem:t},{type:"kern",size:h.kern},{type:"elem",elem:h.elem,marginLeft:_t(a)},{type:"kern",size:n.fontMetrics().bigOpSpacing5}]},n)}else if(u){var g=t.height-s;p=He.makeVList({positionType:"top",positionData:g,children:[{type:"kern",size:n.fontMetrics().bigOpSpacing5},{type:"elem",elem:u.elem,marginLeft:_t(-a)},{type:"kern",size:u.kern},{type:"elem",elem:t}]},n)}else if(h){var y=t.depth+s;p=He.makeVList({positionType:"bottom",positionData:y,children:[{type:"elem",elem:t},{type:"kern",size:h.kern},{type:"elem",elem:h.elem,marginLeft:_t(a)},{type:"kern",size:n.fontMetrics().bigOpSpacing5}]},n)}else return t;var v=[p];if(u&&a!==0&&!l){var x=He.makeSpan(["mspace"],[],n);x.style.marginRight=_t(a),v.unshift(x)}return He.makeSpan(["mop","op-limits"],v,n)},"assembleSupSub"),Jj=["\\smallint"],mg=o((t,e)=>{var r,n,i=!1,a;t.type==="supsub"?(r=t.sup,n=t.sub,a=Ir(t.base,"op"),i=!0):a=Ir(t,"op");var s=e.style,l=!1;s.size===dr.DISPLAY.size&&a.symbol&&!Jj.includes(a.name)&&(l=!0);var u;if(a.symbol){var h=l?"Size2-Regular":"Size1-Regular",f="";if((a.name==="\\oiint"||a.name==="\\oiiint")&&(f=a.name.slice(1),a.name=f==="oiint"?"\\iint":"\\iiint"),u=He.makeSymbol(a.name,h,"math",e,["mop","op-symbol",l?"large-op":"small-op"]),f.length>0){var d=u.italic,p=He.staticSvg(f+"Size"+(l?"2":"1"),e);u=He.makeVList({positionType:"individualShift",children:[{type:"elem",elem:u,shift:0},{type:"elem",elem:p,shift:l?.08:0}]},e),a.name="\\"+f,u.classes.unshift("mop"),u.italic=d}}else if(a.body){var m=ea(a.body,e,!0);m.length===1&&m[0]instanceof Zs?(u=m[0],u.classes[0]="mop"):u=He.makeSpan(["mop"],m,e)}else{for(var g=[],y=1;y{var r;if(t.symbol)r=new Es("mo",[ml(t.name,t.mode)]),Jj.includes(t.name)&&r.setAttribute("largeop","false");else if(t.body)r=new Es("mo",Js(t.body,e));else{r=new Es("mi",[new pl(t.name.slice(1))]);var n=new Es("mo",[ml("\u2061","text")]);t.parentIsSupSub?r=new Es("mrow",[r,n]):r=Aj([r,n])}return r},"mathmlBuilder$1"),m8e={"\u220F":"\\prod","\u2210":"\\coprod","\u2211":"\\sum","\u22C0":"\\bigwedge","\u22C1":"\\bigvee","\u22C2":"\\bigcap","\u22C3":"\\bigcup","\u2A00":"\\bigodot","\u2A01":"\\bigoplus","\u2A02":"\\bigotimes","\u2A04":"\\biguplus","\u2A06":"\\bigsqcup"};Ot({type:"op",names:["\\coprod","\\bigvee","\\bigwedge","\\biguplus","\\bigcap","\\bigcup","\\intop","\\prod","\\sum","\\bigotimes","\\bigoplus","\\bigodot","\\bigsqcup","\\smallint","\u220F","\u2210","\u2211","\u22C0","\u22C1","\u22C2","\u22C3","\u2A00","\u2A01","\u2A02","\u2A04","\u2A06"],props:{numArgs:0},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=n;return i.length===1&&(i=m8e[i]),{type:"op",mode:r.mode,limits:!0,parentIsSupSub:!1,symbol:!0,name:i}},"handler"),htmlBuilder:mg,mathmlBuilder:P2});Ot({type:"op",names:["\\mathop"],props:{numArgs:1,primitive:!0},handler:o((t,e)=>{var{parser:r}=t,n=e[0];return{type:"op",mode:r.mode,limits:!1,parentIsSupSub:!1,symbol:!1,body:Oi(n)}},"handler"),htmlBuilder:mg,mathmlBuilder:P2});g8e={"\u222B":"\\int","\u222C":"\\iint","\u222D":"\\iiint","\u222E":"\\oint","\u222F":"\\oiint","\u2230":"\\oiiint"};Ot({type:"op",names:["\\arcsin","\\arccos","\\arctan","\\arctg","\\arcctg","\\arg","\\ch","\\cos","\\cosec","\\cosh","\\cot","\\cotg","\\coth","\\csc","\\ctg","\\cth","\\deg","\\dim","\\exp","\\hom","\\ker","\\lg","\\ln","\\log","\\sec","\\sin","\\sinh","\\sh","\\tan","\\tanh","\\tg","\\th"],props:{numArgs:0},handler(t){var{parser:e,funcName:r}=t;return{type:"op",mode:e.mode,limits:!1,parentIsSupSub:!1,symbol:!1,name:r}},htmlBuilder:mg,mathmlBuilder:P2});Ot({type:"op",names:["\\det","\\gcd","\\inf","\\lim","\\max","\\min","\\Pr","\\sup"],props:{numArgs:0},handler(t){var{parser:e,funcName:r}=t;return{type:"op",mode:e.mode,limits:!0,parentIsSupSub:!1,symbol:!1,name:r}},htmlBuilder:mg,mathmlBuilder:P2});Ot({type:"op",names:["\\int","\\iint","\\iiint","\\oint","\\oiint","\\oiiint","\u222B","\u222C","\u222D","\u222E","\u222F","\u2230"],props:{numArgs:0},handler(t){var{parser:e,funcName:r}=t,n=r;return n.length===1&&(n=g8e[n]),{type:"op",mode:e.mode,limits:!1,parentIsSupSub:!1,symbol:!0,name:n}},htmlBuilder:mg,mathmlBuilder:P2});eX=o((t,e)=>{var r,n,i=!1,a;t.type==="supsub"?(r=t.sup,n=t.sub,a=Ir(t.base,"operatorname"),i=!0):a=Ir(t,"operatorname");var s;if(a.body.length>0){for(var l=a.body.map(d=>{var p=d.text;return typeof p=="string"?{type:"textord",mode:d.mode,text:p}:d}),u=ea(l,e.withFont("mathrm"),!0),h=0;h{for(var r=Js(t.body,e.withFont("mathrm")),n=!0,i=0;if.toText()).join("");r=[new vt.TextNode(l)]}var u=new vt.MathNode("mi",r);u.setAttribute("mathvariant","normal");var h=new vt.MathNode("mo",[ml("\u2061","text")]);return t.parentIsSupSub?new vt.MathNode("mrow",[u,h]):vt.newDocumentFragment([u,h])},"mathmlBuilder");Ot({type:"operatorname",names:["\\operatorname@","\\operatornamewithlimits"],props:{numArgs:1},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=e[0];return{type:"operatorname",mode:r.mode,body:Oi(i),alwaysHandleSupSub:n==="\\operatornamewithlimits",limits:!1,parentIsSupSub:!1}},"handler"),htmlBuilder:eX,mathmlBuilder:y8e});ue("\\operatorname","\\@ifstar\\operatornamewithlimits\\operatorname@");Mp({type:"ordgroup",htmlBuilder(t,e){return t.semisimple?He.makeFragment(ea(t.body,e,!1)):He.makeSpan(["mord"],ea(t.body,e,!0),e)},mathmlBuilder(t,e){return wf(t.body,e,!0)}});Ot({type:"overline",names:["\\overline"],props:{numArgs:1},handler(t,e){var{parser:r}=t,n=e[0];return{type:"overline",mode:r.mode,body:n}},htmlBuilder(t,e){var r=rn(t.body,e.havingCrampedStyle()),n=He.makeLineSpan("overline-line",e),i=e.fontMetrics().defaultRuleThickness,a=He.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r},{type:"kern",size:3*i},{type:"elem",elem:n},{type:"kern",size:i}]},e);return He.makeSpan(["mord","overline"],[a],e)},mathmlBuilder(t,e){var r=new vt.MathNode("mo",[new vt.TextNode("\u203E")]);r.setAttribute("stretchy","true");var n=new vt.MathNode("mover",[Mn(t.body,e),r]);return n.setAttribute("accent","true"),n}});Ot({type:"phantom",names:["\\phantom"],props:{numArgs:1,allowedInText:!0},handler:o((t,e)=>{var{parser:r}=t,n=e[0];return{type:"phantom",mode:r.mode,body:Oi(n)}},"handler"),htmlBuilder:o((t,e)=>{var r=ea(t.body,e.withPhantom(),!1);return He.makeFragment(r)},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=Js(t.body,e);return new vt.MathNode("mphantom",r)},"mathmlBuilder")});Ot({type:"hphantom",names:["\\hphantom"],props:{numArgs:1,allowedInText:!0},handler:o((t,e)=>{var{parser:r}=t,n=e[0];return{type:"hphantom",mode:r.mode,body:n}},"handler"),htmlBuilder:o((t,e)=>{var r=He.makeSpan([],[rn(t.body,e.withPhantom())]);if(r.height=0,r.depth=0,r.children)for(var n=0;n{var r=Js(Oi(t.body),e),n=new vt.MathNode("mphantom",r),i=new vt.MathNode("mpadded",[n]);return i.setAttribute("height","0px"),i.setAttribute("depth","0px"),i},"mathmlBuilder")});Ot({type:"vphantom",names:["\\vphantom"],props:{numArgs:1,allowedInText:!0},handler:o((t,e)=>{var{parser:r}=t,n=e[0];return{type:"vphantom",mode:r.mode,body:n}},"handler"),htmlBuilder:o((t,e)=>{var r=He.makeSpan(["inner"],[rn(t.body,e.withPhantom())]),n=He.makeSpan(["fix"],[]);return He.makeSpan(["mord","rlap"],[r,n],e)},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=Js(Oi(t.body),e),n=new vt.MathNode("mphantom",r),i=new vt.MathNode("mpadded",[n]);return i.setAttribute("width","0px"),i},"mathmlBuilder")});Ot({type:"raisebox",names:["\\raisebox"],props:{numArgs:2,argTypes:["size","hbox"],allowedInText:!0},handler(t,e){var{parser:r}=t,n=Ir(e[0],"size").value,i=e[1];return{type:"raisebox",mode:r.mode,dy:n,body:i}},htmlBuilder(t,e){var r=rn(t.body,e),n=bi(t.dy,e);return He.makeVList({positionType:"shift",positionData:-n,children:[{type:"elem",elem:r}]},e)},mathmlBuilder(t,e){var r=new vt.MathNode("mpadded",[Mn(t.body,e)]),n=t.dy.number+t.dy.unit;return r.setAttribute("voffset",n),r}});Ot({type:"internal",names:["\\relax"],props:{numArgs:0,allowedInText:!0,allowedInArgument:!0},handler(t){var{parser:e}=t;return{type:"internal",mode:e.mode}}});Ot({type:"rule",names:["\\rule"],props:{numArgs:2,numOptionalArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["size","size","size"]},handler(t,e,r){var{parser:n}=t,i=r[0],a=Ir(e[0],"size"),s=Ir(e[1],"size");return{type:"rule",mode:n.mode,shift:i&&Ir(i,"size").value,width:a.value,height:s.value}},htmlBuilder(t,e){var r=He.makeSpan(["mord","rule"],[],e),n=bi(t.width,e),i=bi(t.height,e),a=t.shift?bi(t.shift,e):0;return r.style.borderRightWidth=_t(n),r.style.borderTopWidth=_t(i),r.style.bottom=_t(a),r.width=n,r.height=i+a,r.depth=-a,r.maxFontSize=i*1.125*e.sizeMultiplier,r},mathmlBuilder(t,e){var r=bi(t.width,e),n=bi(t.height,e),i=t.shift?bi(t.shift,e):0,a=e.color&&e.getColor()||"black",s=new vt.MathNode("mspace");s.setAttribute("mathbackground",a),s.setAttribute("width",_t(r)),s.setAttribute("height",_t(n));var l=new vt.MathNode("mpadded",[s]);return i>=0?l.setAttribute("height",_t(i)):(l.setAttribute("height",_t(i)),l.setAttribute("depth",_t(-i))),l.setAttribute("voffset",_t(i)),l}});o(tX,"sizingGroup");rj=["\\tiny","\\sixptsize","\\scriptsize","\\footnotesize","\\small","\\normalsize","\\large","\\Large","\\LARGE","\\huge","\\Huge"],v8e=o((t,e)=>{var r=e.havingSize(t.size);return tX(t.body,r,e)},"htmlBuilder");Ot({type:"sizing",names:rj,props:{numArgs:0,allowedInText:!0},handler:o((t,e)=>{var{breakOnTokenText:r,funcName:n,parser:i}=t,a=i.parseExpression(!1,r);return{type:"sizing",mode:i.mode,size:rj.indexOf(n)+1,body:a}},"handler"),htmlBuilder:v8e,mathmlBuilder:o((t,e)=>{var r=e.havingSize(t.size),n=Js(t.body,r),i=new vt.MathNode("mstyle",n);return i.setAttribute("mathsize",_t(r.sizeMultiplier)),i},"mathmlBuilder")});Ot({type:"smash",names:["\\smash"],props:{numArgs:1,numOptionalArgs:1,allowedInText:!0},handler:o((t,e,r)=>{var{parser:n}=t,i=!1,a=!1,s=r[0]&&Ir(r[0],"ordgroup");if(s)for(var l="",u=0;u{var r=He.makeSpan([],[rn(t.body,e)]);if(!t.smashHeight&&!t.smashDepth)return r;if(t.smashHeight&&(r.height=0,r.children))for(var n=0;n{var r=new vt.MathNode("mpadded",[Mn(t.body,e)]);return t.smashHeight&&r.setAttribute("height","0px"),t.smashDepth&&r.setAttribute("depth","0px"),r},"mathmlBuilder")});Ot({type:"sqrt",names:["\\sqrt"],props:{numArgs:1,numOptionalArgs:1},handler(t,e,r){var{parser:n}=t,i=r[0],a=e[0];return{type:"sqrt",mode:n.mode,body:a,index:i}},htmlBuilder(t,e){var r=rn(t.body,e.havingCrampedStyle());r.height===0&&(r.height=e.fontMetrics().xHeight),r=He.wrapFragment(r,e);var n=e.fontMetrics(),i=n.defaultRuleThickness,a=i;e.style.idr.height+r.depth+s&&(s=(s+d-r.height-r.depth)/2);var p=u.height-r.height-s-h;r.style.paddingLeft=_t(f);var m=He.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r,wrapperClasses:["svg-align"]},{type:"kern",size:-(r.height+p)},{type:"elem",elem:u},{type:"kern",size:h}]},e);if(t.index){var g=e.havingStyle(dr.SCRIPTSCRIPT),y=rn(t.index,g,e),v=.6*(m.height-m.depth),x=He.makeVList({positionType:"shift",positionData:-v,children:[{type:"elem",elem:y}]},e),b=He.makeSpan(["root"],[x]);return He.makeSpan(["mord","sqrt"],[b,m],e)}else return He.makeSpan(["mord","sqrt"],[m],e)},mathmlBuilder(t,e){var{body:r,index:n}=t;return n?new vt.MathNode("mroot",[Mn(r,e),Mn(n,e)]):new vt.MathNode("msqrt",[Mn(r,e)])}});nj={display:dr.DISPLAY,text:dr.TEXT,script:dr.SCRIPT,scriptscript:dr.SCRIPTSCRIPT};Ot({type:"styling",names:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(t,e){var{breakOnTokenText:r,funcName:n,parser:i}=t,a=i.parseExpression(!0,r),s=n.slice(1,n.length-5);return{type:"styling",mode:i.mode,style:s,body:a}},htmlBuilder(t,e){var r=nj[t.style],n=e.havingStyle(r).withFont("");return tX(t.body,n,e)},mathmlBuilder(t,e){var r=nj[t.style],n=e.havingStyle(r),i=Js(t.body,n),a=new vt.MathNode("mstyle",i),s={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]},l=s[t.style];return a.setAttribute("scriptlevel",l[0]),a.setAttribute("displaystyle",l[1]),a}});x8e=o(function(e,r){var n=e.base;if(n)if(n.type==="op"){var i=n.limits&&(r.style.size===dr.DISPLAY.size||n.alwaysHandleSupSub);return i?mg:null}else if(n.type==="operatorname"){var a=n.alwaysHandleSupSub&&(r.style.size===dr.DISPLAY.size||n.limits);return a?eX:null}else{if(n.type==="accent")return un.isCharacterBox(n.base)?nD:null;if(n.type==="horizBrace"){var s=!e.sub;return s===n.isOver?Qj:null}else return null}else return null},"htmlBuilderDelegate");Mp({type:"supsub",htmlBuilder(t,e){var r=x8e(t,e);if(r)return r(t,e);var{base:n,sup:i,sub:a}=t,s=rn(n,e),l,u,h=e.fontMetrics(),f=0,d=0,p=n&&un.isCharacterBox(n);if(i){var m=e.havingStyle(e.style.sup());l=rn(i,m,e),p||(f=s.height-m.fontMetrics().supDrop*m.sizeMultiplier/e.sizeMultiplier)}if(a){var g=e.havingStyle(e.style.sub());u=rn(a,g,e),p||(d=s.depth+g.fontMetrics().subDrop*g.sizeMultiplier/e.sizeMultiplier)}var y;e.style===dr.DISPLAY?y=h.sup1:e.style.cramped?y=h.sup3:y=h.sup2;var v=e.sizeMultiplier,x=_t(.5/h.ptPerEm/v),b=null;if(u){var T=t.base&&t.base.type==="op"&&t.base.name&&(t.base.name==="\\oiint"||t.base.name==="\\oiiint");(s instanceof Zs||T)&&(b=_t(-s.italic))}var E;if(l&&u){f=Math.max(f,y,l.depth+.25*h.xHeight),d=Math.max(d,h.sub2);var w=h.defaultRuleThickness,k=4*w;if(f-l.depth-(u.height-d)0&&(f+=S,d-=S)}var A=[{type:"elem",elem:u,shift:d,marginRight:x,marginLeft:b},{type:"elem",elem:l,shift:-f,marginRight:x}];E=He.makeVList({positionType:"individualShift",children:A},e)}else if(u){d=Math.max(d,h.sub1,u.height-.8*h.xHeight);var L=[{type:"elem",elem:u,marginLeft:b,marginRight:x}];E=He.makeVList({positionType:"shift",positionData:d,children:L},e)}else if(l)f=Math.max(f,y,l.depth+.25*h.xHeight),E=He.makeVList({positionType:"shift",positionData:-f,children:[{type:"elem",elem:l,marginRight:x}]},e);else throw new Error("supsub must have either sup or sub.");var I=q8(s,"right")||"mord";return He.makeSpan([I],[s,He.makeSpan(["msupsub"],[E])],e)},mathmlBuilder(t,e){var r=!1,n,i;t.base&&t.base.type==="horizBrace"&&(i=!!t.sup,i===t.base.isOver&&(r=!0,n=t.base.isOver)),t.base&&(t.base.type==="op"||t.base.type==="operatorname")&&(t.base.parentIsSupSub=!0);var a=[Mn(t.base,e)];t.sub&&a.push(Mn(t.sub,e)),t.sup&&a.push(Mn(t.sup,e));var s;if(r)s=n?"mover":"munder";else if(t.sub)if(t.sup){var h=t.base;h&&h.type==="op"&&h.limits&&e.style===dr.DISPLAY||h&&h.type==="operatorname"&&h.alwaysHandleSupSub&&(e.style===dr.DISPLAY||h.limits)?s="munderover":s="msubsup"}else{var u=t.base;u&&u.type==="op"&&u.limits&&(e.style===dr.DISPLAY||u.alwaysHandleSupSub)||u&&u.type==="operatorname"&&u.alwaysHandleSupSub&&(u.limits||e.style===dr.DISPLAY)?s="munder":s="msub"}else{var l=t.base;l&&l.type==="op"&&l.limits&&(e.style===dr.DISPLAY||l.alwaysHandleSupSub)||l&&l.type==="operatorname"&&l.alwaysHandleSupSub&&(l.limits||e.style===dr.DISPLAY)?s="mover":s="msup"}return new vt.MathNode(s,a)}});Mp({type:"atom",htmlBuilder(t,e){return He.mathsym(t.text,t.mode,e,["m"+t.family])},mathmlBuilder(t,e){var r=new vt.MathNode("mo",[ml(t.text,t.mode)]);if(t.family==="bin"){var n=tD(t,e);n==="bold-italic"&&r.setAttribute("mathvariant",n)}else t.family==="punct"?r.setAttribute("separator","true"):(t.family==="open"||t.family==="close")&&r.setAttribute("stretchy","false");return r}});rX={mi:"italic",mn:"normal",mtext:"normal"};Mp({type:"mathord",htmlBuilder(t,e){return He.makeOrd(t,e,"mathord")},mathmlBuilder(t,e){var r=new vt.MathNode("mi",[ml(t.text,t.mode,e)]),n=tD(t,e)||"italic";return n!==rX[r.type]&&r.setAttribute("mathvariant",n),r}});Mp({type:"textord",htmlBuilder(t,e){return He.makeOrd(t,e,"textord")},mathmlBuilder(t,e){var r=ml(t.text,t.mode,e),n=tD(t,e)||"normal",i;return t.mode==="text"?i=new vt.MathNode("mtext",[r]):/[0-9]/.test(t.text)?i=new vt.MathNode("mn",[r]):t.text==="\\prime"?i=new vt.MathNode("mo",[r]):i=new vt.MathNode("mi",[r]),n!==rX[i.type]&&i.setAttribute("mathvariant",n),i}});P8={"\\nobreak":"nobreak","\\allowbreak":"allowbreak"},B8={" ":{},"\\ ":{},"~":{className:"nobreak"},"\\space":{},"\\nobreakspace":{className:"nobreak"}};Mp({type:"spacing",htmlBuilder(t,e){if(B8.hasOwnProperty(t.text)){var r=B8[t.text].className||"";if(t.mode==="text"){var n=He.makeOrd(t,e,"textord");return n.classes.push(r),n}else return He.makeSpan(["mspace",r],[He.mathsym(t.text,t.mode,e)],e)}else{if(P8.hasOwnProperty(t.text))return He.makeSpan(["mspace",P8[t.text]],[],e);throw new bt('Unknown type of space "'+t.text+'"')}},mathmlBuilder(t,e){var r;if(B8.hasOwnProperty(t.text))r=new vt.MathNode("mtext",[new vt.TextNode("\xA0")]);else{if(P8.hasOwnProperty(t.text))return new vt.MathNode("mspace");throw new bt('Unknown type of space "'+t.text+'"')}return r}});ij=o(()=>{var t=new vt.MathNode("mtd",[]);return t.setAttribute("width","50%"),t},"pad");Mp({type:"tag",mathmlBuilder(t,e){var r=new vt.MathNode("mtable",[new vt.MathNode("mtr",[ij(),new vt.MathNode("mtd",[wf(t.body,e)]),ij(),new vt.MathNode("mtd",[wf(t.tag,e)])])]);return r.setAttribute("width","100%"),r}});aj={"\\text":void 0,"\\textrm":"textrm","\\textsf":"textsf","\\texttt":"texttt","\\textnormal":"textrm"},sj={"\\textbf":"textbf","\\textmd":"textmd"},b8e={"\\textit":"textit","\\textup":"textup"},oj=o((t,e)=>{var r=t.font;if(r){if(aj[r])return e.withTextFontFamily(aj[r]);if(sj[r])return e.withTextFontWeight(sj[r]);if(r==="\\emph")return e.fontShape==="textit"?e.withTextFontShape("textup"):e.withTextFontShape("textit")}else return e;return e.withTextFontShape(b8e[r])},"optionsWithFont");Ot({type:"text",names:["\\text","\\textrm","\\textsf","\\texttt","\\textnormal","\\textbf","\\textmd","\\textit","\\textup","\\emph"],props:{numArgs:1,argTypes:["text"],allowedInArgument:!0,allowedInText:!0},handler(t,e){var{parser:r,funcName:n}=t,i=e[0];return{type:"text",mode:r.mode,body:Oi(i),font:n}},htmlBuilder(t,e){var r=oj(t,e),n=ea(t.body,r,!0);return He.makeSpan(["mord","text"],n,r)},mathmlBuilder(t,e){var r=oj(t,e);return wf(t.body,r)}});Ot({type:"underline",names:["\\underline"],props:{numArgs:1,allowedInText:!0},handler(t,e){var{parser:r}=t;return{type:"underline",mode:r.mode,body:e[0]}},htmlBuilder(t,e){var r=rn(t.body,e),n=He.makeLineSpan("underline-line",e),i=e.fontMetrics().defaultRuleThickness,a=He.makeVList({positionType:"top",positionData:r.height,children:[{type:"kern",size:i},{type:"elem",elem:n},{type:"kern",size:3*i},{type:"elem",elem:r}]},e);return He.makeSpan(["mord","underline"],[a],e)},mathmlBuilder(t,e){var r=new vt.MathNode("mo",[new vt.TextNode("\u203E")]);r.setAttribute("stretchy","true");var n=new vt.MathNode("munder",[Mn(t.body,e),r]);return n.setAttribute("accentunder","true"),n}});Ot({type:"vcenter",names:["\\vcenter"],props:{numArgs:1,argTypes:["original"],allowedInText:!1},handler(t,e){var{parser:r}=t;return{type:"vcenter",mode:r.mode,body:e[0]}},htmlBuilder(t,e){var r=rn(t.body,e),n=e.fontMetrics().axisHeight,i=.5*(r.height-n-(r.depth+n));return He.makeVList({positionType:"shift",positionData:i,children:[{type:"elem",elem:r}]},e)},mathmlBuilder(t,e){return new vt.MathNode("mpadded",[Mn(t.body,e)],["vcenter"])}});Ot({type:"verb",names:["\\verb"],props:{numArgs:0,allowedInText:!0},handler(t,e,r){throw new bt("\\verb ended by end of line instead of matching delimiter")},htmlBuilder(t,e){for(var r=lj(t),n=[],i=e.havingStyle(e.style.text()),a=0;at.body.replace(/ /g,t.star?"\u2423":"\xA0"),"makeVerb"),bf=Sj,nX=`[ \r + ]`,T8e="\\\\[a-zA-Z@]+",w8e="\\\\[^\uD800-\uDFFF]",k8e="("+T8e+")"+nX+"*",E8e=`\\\\( +|[ \r ]+ +?)[ \r ]*`,j8="[\u0300-\u036F]",S8e=new RegExp(j8+"+$"),C8e="("+nX+"+)|"+(E8e+"|")+"([!-\\[\\]-\u2027\u202A-\uD7FF\uF900-\uFFFF]"+(j8+"*")+"|[\uD800-\uDBFF][\uDC00-\uDFFF]"+(j8+"*")+"|\\\\verb\\*([^]).*?\\4|\\\\verb([^*a-zA-Z]).*?\\5"+("|"+k8e)+("|"+w8e+")"),ww=class{static{o(this,"Lexer")}constructor(e,r){this.input=void 0,this.settings=void 0,this.tokenRegex=void 0,this.catcodes=void 0,this.input=e,this.settings=r,this.tokenRegex=new RegExp(C8e,"g"),this.catcodes={"%":14,"~":13}}setCatcode(e,r){this.catcodes[e]=r}lex(){var e=this.input,r=this.tokenRegex.lastIndex;if(r===e.length)return new Po("EOF",new Qs(this,r,r));var n=this.tokenRegex.exec(e);if(n===null||n.index!==r)throw new bt("Unexpected character: '"+e[r]+"'",new Po(e[r],new Qs(this,r,r+1)));var i=n[6]||n[3]||(n[2]?"\\ ":" ");if(this.catcodes[i]===14){var a=e.indexOf(` +`,this.tokenRegex.lastIndex);return a===-1?(this.tokenRegex.lastIndex=e.length,this.settings.reportNonstrict("commentAtEnd","% comment has no terminating newline; LaTeX would fail because of commenting the end of math mode (e.g. $)")):this.tokenRegex.lastIndex=a+1,this.lex()}return new Po(i,new Qs(this,r,this.tokenRegex.lastIndex))}},X8=class{static{o(this,"Namespace")}constructor(e,r){e===void 0&&(e={}),r===void 0&&(r={}),this.current=void 0,this.builtins=void 0,this.undefStack=void 0,this.current=r,this.builtins=e,this.undefStack=[]}beginGroup(){this.undefStack.push({})}endGroup(){if(this.undefStack.length===0)throw new bt("Unbalanced namespace destruction: attempt to pop global namespace; please report this as a bug");var e=this.undefStack.pop();for(var r in e)e.hasOwnProperty(r)&&(e[r]==null?delete this.current[r]:this.current[r]=e[r])}endGroups(){for(;this.undefStack.length>0;)this.endGroup()}has(e){return this.current.hasOwnProperty(e)||this.builtins.hasOwnProperty(e)}get(e){return this.current.hasOwnProperty(e)?this.current[e]:this.builtins[e]}set(e,r,n){if(n===void 0&&(n=!1),n){for(var i=0;i0&&(this.undefStack[this.undefStack.length-1][e]=r)}else{var a=this.undefStack[this.undefStack.length-1];a&&!a.hasOwnProperty(e)&&(a[e]=this.current[e])}r==null?delete this.current[e]:this.current[e]=r}},A8e=Hj;ue("\\noexpand",function(t){var e=t.popToken();return t.isExpandable(e.text)&&(e.noexpand=!0,e.treatAsRelax=!0),{tokens:[e],numArgs:0}});ue("\\expandafter",function(t){var e=t.popToken();return t.expandOnce(!0),{tokens:[e],numArgs:0}});ue("\\@firstoftwo",function(t){var e=t.consumeArgs(2);return{tokens:e[0],numArgs:0}});ue("\\@secondoftwo",function(t){var e=t.consumeArgs(2);return{tokens:e[1],numArgs:0}});ue("\\@ifnextchar",function(t){var e=t.consumeArgs(3);t.consumeSpaces();var r=t.future();return e[0].length===1&&e[0][0].text===r.text?{tokens:e[1],numArgs:0}:{tokens:e[2],numArgs:0}});ue("\\@ifstar","\\@ifnextchar *{\\@firstoftwo{#1}}");ue("\\TextOrMath",function(t){var e=t.consumeArgs(2);return t.mode==="text"?{tokens:e[0],numArgs:0}:{tokens:e[1],numArgs:0}});cj={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};ue("\\char",function(t){var e=t.popToken(),r,n="";if(e.text==="'")r=8,e=t.popToken();else if(e.text==='"')r=16,e=t.popToken();else if(e.text==="`")if(e=t.popToken(),e.text[0]==="\\")n=e.text.charCodeAt(1);else{if(e.text==="EOF")throw new bt("\\char` missing argument");n=e.text.charCodeAt(0)}else r=10;if(r){if(n=cj[e.text],n==null||n>=r)throw new bt("Invalid base-"+r+" digit "+e.text);for(var i;(i=cj[t.future().text])!=null&&i{var i=t.consumeArg().tokens;if(i.length!==1)throw new bt("\\newcommand's first argument must be a macro name");var a=i[0].text,s=t.isDefined(a);if(s&&!e)throw new bt("\\newcommand{"+a+"} attempting to redefine "+(a+"; use \\renewcommand"));if(!s&&!r)throw new bt("\\renewcommand{"+a+"} when command "+a+" does not yet exist; use \\newcommand");var l=0;if(i=t.consumeArg().tokens,i.length===1&&i[0].text==="["){for(var u="",h=t.expandNextToken();h.text!=="]"&&h.text!=="EOF";)u+=h.text,h=t.expandNextToken();if(!u.match(/^\s*[0-9]+\s*$/))throw new bt("Invalid number of arguments: "+u);l=parseInt(u),i=t.consumeArg().tokens}return s&&n||t.macros.set(a,{tokens:i,numArgs:l}),""},"newcommand");ue("\\newcommand",t=>hD(t,!1,!0,!1));ue("\\renewcommand",t=>hD(t,!0,!1,!1));ue("\\providecommand",t=>hD(t,!0,!0,!0));ue("\\message",t=>{var e=t.consumeArgs(1)[0];return console.log(e.reverse().map(r=>r.text).join("")),""});ue("\\errmessage",t=>{var e=t.consumeArgs(1)[0];return console.error(e.reverse().map(r=>r.text).join("")),""});ue("\\show",t=>{var e=t.popToken(),r=e.text;return console.log(e,t.macros.get(r),bf[r],qn.math[r],qn.text[r]),""});ue("\\bgroup","{");ue("\\egroup","}");ue("~","\\nobreakspace");ue("\\lq","`");ue("\\rq","'");ue("\\aa","\\r a");ue("\\AA","\\r A");ue("\\textcopyright","\\html@mathml{\\textcircled{c}}{\\char`\xA9}");ue("\\copyright","\\TextOrMath{\\textcopyright}{\\text{\\textcopyright}}");ue("\\textregistered","\\html@mathml{\\textcircled{\\scriptsize R}}{\\char`\xAE}");ue("\u212C","\\mathscr{B}");ue("\u2130","\\mathscr{E}");ue("\u2131","\\mathscr{F}");ue("\u210B","\\mathscr{H}");ue("\u2110","\\mathscr{I}");ue("\u2112","\\mathscr{L}");ue("\u2133","\\mathscr{M}");ue("\u211B","\\mathscr{R}");ue("\u212D","\\mathfrak{C}");ue("\u210C","\\mathfrak{H}");ue("\u2128","\\mathfrak{Z}");ue("\\Bbbk","\\Bbb{k}");ue("\xB7","\\cdotp");ue("\\llap","\\mathllap{\\textrm{#1}}");ue("\\rlap","\\mathrlap{\\textrm{#1}}");ue("\\clap","\\mathclap{\\textrm{#1}}");ue("\\mathstrut","\\vphantom{(}");ue("\\underbar","\\underline{\\text{#1}}");ue("\\not",'\\html@mathml{\\mathrel{\\mathrlap\\@not}}{\\char"338}');ue("\\neq","\\html@mathml{\\mathrel{\\not=}}{\\mathrel{\\char`\u2260}}");ue("\\ne","\\neq");ue("\u2260","\\neq");ue("\\notin","\\html@mathml{\\mathrel{{\\in}\\mathllap{/\\mskip1mu}}}{\\mathrel{\\char`\u2209}}");ue("\u2209","\\notin");ue("\u2258","\\html@mathml{\\mathrel{=\\kern{-1em}\\raisebox{0.4em}{$\\scriptsize\\frown$}}}{\\mathrel{\\char`\u2258}}");ue("\u2259","\\html@mathml{\\stackrel{\\tiny\\wedge}{=}}{\\mathrel{\\char`\u2258}}");ue("\u225A","\\html@mathml{\\stackrel{\\tiny\\vee}{=}}{\\mathrel{\\char`\u225A}}");ue("\u225B","\\html@mathml{\\stackrel{\\scriptsize\\star}{=}}{\\mathrel{\\char`\u225B}}");ue("\u225D","\\html@mathml{\\stackrel{\\tiny\\mathrm{def}}{=}}{\\mathrel{\\char`\u225D}}");ue("\u225E","\\html@mathml{\\stackrel{\\tiny\\mathrm{m}}{=}}{\\mathrel{\\char`\u225E}}");ue("\u225F","\\html@mathml{\\stackrel{\\tiny?}{=}}{\\mathrel{\\char`\u225F}}");ue("\u27C2","\\perp");ue("\u203C","\\mathclose{!\\mkern-0.8mu!}");ue("\u220C","\\notni");ue("\u231C","\\ulcorner");ue("\u231D","\\urcorner");ue("\u231E","\\llcorner");ue("\u231F","\\lrcorner");ue("\xA9","\\copyright");ue("\xAE","\\textregistered");ue("\uFE0F","\\textregistered");ue("\\ulcorner",'\\html@mathml{\\@ulcorner}{\\mathop{\\char"231c}}');ue("\\urcorner",'\\html@mathml{\\@urcorner}{\\mathop{\\char"231d}}');ue("\\llcorner",'\\html@mathml{\\@llcorner}{\\mathop{\\char"231e}}');ue("\\lrcorner",'\\html@mathml{\\@lrcorner}{\\mathop{\\char"231f}}');ue("\\vdots","{\\varvdots\\rule{0pt}{15pt}}");ue("\u22EE","\\vdots");ue("\\varGamma","\\mathit{\\Gamma}");ue("\\varDelta","\\mathit{\\Delta}");ue("\\varTheta","\\mathit{\\Theta}");ue("\\varLambda","\\mathit{\\Lambda}");ue("\\varXi","\\mathit{\\Xi}");ue("\\varPi","\\mathit{\\Pi}");ue("\\varSigma","\\mathit{\\Sigma}");ue("\\varUpsilon","\\mathit{\\Upsilon}");ue("\\varPhi","\\mathit{\\Phi}");ue("\\varPsi","\\mathit{\\Psi}");ue("\\varOmega","\\mathit{\\Omega}");ue("\\substack","\\begin{subarray}{c}#1\\end{subarray}");ue("\\colon","\\nobreak\\mskip2mu\\mathpunct{}\\mathchoice{\\mkern-3mu}{\\mkern-3mu}{}{}{:}\\mskip6mu\\relax");ue("\\boxed","\\fbox{$\\displaystyle{#1}$}");ue("\\iff","\\DOTSB\\;\\Longleftrightarrow\\;");ue("\\implies","\\DOTSB\\;\\Longrightarrow\\;");ue("\\impliedby","\\DOTSB\\;\\Longleftarrow\\;");ue("\\dddot","{\\overset{\\raisebox{-0.1ex}{\\normalsize ...}}{#1}}");ue("\\ddddot","{\\overset{\\raisebox{-0.1ex}{\\normalsize ....}}{#1}}");uj={",":"\\dotsc","\\not":"\\dotsb","+":"\\dotsb","=":"\\dotsb","<":"\\dotsb",">":"\\dotsb","-":"\\dotsb","*":"\\dotsb",":":"\\dotsb","\\DOTSB":"\\dotsb","\\coprod":"\\dotsb","\\bigvee":"\\dotsb","\\bigwedge":"\\dotsb","\\biguplus":"\\dotsb","\\bigcap":"\\dotsb","\\bigcup":"\\dotsb","\\prod":"\\dotsb","\\sum":"\\dotsb","\\bigotimes":"\\dotsb","\\bigoplus":"\\dotsb","\\bigodot":"\\dotsb","\\bigsqcup":"\\dotsb","\\And":"\\dotsb","\\longrightarrow":"\\dotsb","\\Longrightarrow":"\\dotsb","\\longleftarrow":"\\dotsb","\\Longleftarrow":"\\dotsb","\\longleftrightarrow":"\\dotsb","\\Longleftrightarrow":"\\dotsb","\\mapsto":"\\dotsb","\\longmapsto":"\\dotsb","\\hookrightarrow":"\\dotsb","\\doteq":"\\dotsb","\\mathbin":"\\dotsb","\\mathrel":"\\dotsb","\\relbar":"\\dotsb","\\Relbar":"\\dotsb","\\xrightarrow":"\\dotsb","\\xleftarrow":"\\dotsb","\\DOTSI":"\\dotsi","\\int":"\\dotsi","\\oint":"\\dotsi","\\iint":"\\dotsi","\\iiint":"\\dotsi","\\iiiint":"\\dotsi","\\idotsint":"\\dotsi","\\DOTSX":"\\dotsx"};ue("\\dots",function(t){var e="\\dotso",r=t.expandAfterFuture().text;return r in uj?e=uj[r]:(r.slice(0,4)==="\\not"||r in qn.math&&["bin","rel"].includes(qn.math[r].group))&&(e="\\dotsb"),e});fD={")":!0,"]":!0,"\\rbrack":!0,"\\}":!0,"\\rbrace":!0,"\\rangle":!0,"\\rceil":!0,"\\rfloor":!0,"\\rgroup":!0,"\\rmoustache":!0,"\\right":!0,"\\bigr":!0,"\\biggr":!0,"\\Bigr":!0,"\\Biggr":!0,$:!0,";":!0,".":!0,",":!0};ue("\\dotso",function(t){var e=t.future().text;return e in fD?"\\ldots\\,":"\\ldots"});ue("\\dotsc",function(t){var e=t.future().text;return e in fD&&e!==","?"\\ldots\\,":"\\ldots"});ue("\\cdots",function(t){var e=t.future().text;return e in fD?"\\@cdots\\,":"\\@cdots"});ue("\\dotsb","\\cdots");ue("\\dotsm","\\cdots");ue("\\dotsi","\\!\\cdots");ue("\\dotsx","\\ldots\\,");ue("\\DOTSI","\\relax");ue("\\DOTSB","\\relax");ue("\\DOTSX","\\relax");ue("\\tmspace","\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax");ue("\\,","\\tmspace+{3mu}{.1667em}");ue("\\thinspace","\\,");ue("\\>","\\mskip{4mu}");ue("\\:","\\tmspace+{4mu}{.2222em}");ue("\\medspace","\\:");ue("\\;","\\tmspace+{5mu}{.2777em}");ue("\\thickspace","\\;");ue("\\!","\\tmspace-{3mu}{.1667em}");ue("\\negthinspace","\\!");ue("\\negmedspace","\\tmspace-{4mu}{.2222em}");ue("\\negthickspace","\\tmspace-{5mu}{.277em}");ue("\\enspace","\\kern.5em ");ue("\\enskip","\\hskip.5em\\relax");ue("\\quad","\\hskip1em\\relax");ue("\\qquad","\\hskip2em\\relax");ue("\\tag","\\@ifstar\\tag@literal\\tag@paren");ue("\\tag@paren","\\tag@literal{({#1})}");ue("\\tag@literal",t=>{if(t.macros.get("\\df@tag"))throw new bt("Multiple \\tag");return"\\gdef\\df@tag{\\text{#1}}"});ue("\\bmod","\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}");ue("\\pod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)");ue("\\pmod","\\pod{{\\rm mod}\\mkern6mu#1}");ue("\\mod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1");ue("\\newline","\\\\\\relax");ue("\\TeX","\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}");iX=_t(qc["Main-Regular"][84][1]-.7*qc["Main-Regular"][65][1]);ue("\\LaTeX","\\textrm{\\html@mathml{"+("L\\kern-.36em\\raisebox{"+iX+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{LaTeX}}");ue("\\KaTeX","\\textrm{\\html@mathml{"+("K\\kern-.17em\\raisebox{"+iX+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{KaTeX}}");ue("\\hspace","\\@ifstar\\@hspacer\\@hspace");ue("\\@hspace","\\hskip #1\\relax");ue("\\@hspacer","\\rule{0pt}{0pt}\\hskip #1\\relax");ue("\\ordinarycolon",":");ue("\\vcentcolon","\\mathrel{\\mathop\\ordinarycolon}");ue("\\dblcolon",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}');ue("\\coloneqq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}');ue("\\Coloneqq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}');ue("\\coloneq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}');ue("\\Coloneq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}');ue("\\eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}');ue("\\Eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}');ue("\\eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}');ue("\\Eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}');ue("\\colonapprox",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}');ue("\\Colonapprox",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}');ue("\\colonsim",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}');ue("\\Colonsim",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}');ue("\u2237","\\dblcolon");ue("\u2239","\\eqcolon");ue("\u2254","\\coloneqq");ue("\u2255","\\eqqcolon");ue("\u2A74","\\Coloneqq");ue("\\ratio","\\vcentcolon");ue("\\coloncolon","\\dblcolon");ue("\\colonequals","\\coloneqq");ue("\\coloncolonequals","\\Coloneqq");ue("\\equalscolon","\\eqqcolon");ue("\\equalscoloncolon","\\Eqqcolon");ue("\\colonminus","\\coloneq");ue("\\coloncolonminus","\\Coloneq");ue("\\minuscolon","\\eqcolon");ue("\\minuscoloncolon","\\Eqcolon");ue("\\coloncolonapprox","\\Colonapprox");ue("\\coloncolonsim","\\Colonsim");ue("\\simcolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}");ue("\\simcoloncolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}");ue("\\approxcolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}");ue("\\approxcoloncolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}");ue("\\notni","\\html@mathml{\\not\\ni}{\\mathrel{\\char`\u220C}}");ue("\\limsup","\\DOTSB\\operatorname*{lim\\,sup}");ue("\\liminf","\\DOTSB\\operatorname*{lim\\,inf}");ue("\\injlim","\\DOTSB\\operatorname*{inj\\,lim}");ue("\\projlim","\\DOTSB\\operatorname*{proj\\,lim}");ue("\\varlimsup","\\DOTSB\\operatorname*{\\overline{lim}}");ue("\\varliminf","\\DOTSB\\operatorname*{\\underline{lim}}");ue("\\varinjlim","\\DOTSB\\operatorname*{\\underrightarrow{lim}}");ue("\\varprojlim","\\DOTSB\\operatorname*{\\underleftarrow{lim}}");ue("\\gvertneqq","\\html@mathml{\\@gvertneqq}{\u2269}");ue("\\lvertneqq","\\html@mathml{\\@lvertneqq}{\u2268}");ue("\\ngeqq","\\html@mathml{\\@ngeqq}{\u2271}");ue("\\ngeqslant","\\html@mathml{\\@ngeqslant}{\u2271}");ue("\\nleqq","\\html@mathml{\\@nleqq}{\u2270}");ue("\\nleqslant","\\html@mathml{\\@nleqslant}{\u2270}");ue("\\nshortmid","\\html@mathml{\\@nshortmid}{\u2224}");ue("\\nshortparallel","\\html@mathml{\\@nshortparallel}{\u2226}");ue("\\nsubseteqq","\\html@mathml{\\@nsubseteqq}{\u2288}");ue("\\nsupseteqq","\\html@mathml{\\@nsupseteqq}{\u2289}");ue("\\varsubsetneq","\\html@mathml{\\@varsubsetneq}{\u228A}");ue("\\varsubsetneqq","\\html@mathml{\\@varsubsetneqq}{\u2ACB}");ue("\\varsupsetneq","\\html@mathml{\\@varsupsetneq}{\u228B}");ue("\\varsupsetneqq","\\html@mathml{\\@varsupsetneqq}{\u2ACC}");ue("\\imath","\\html@mathml{\\@imath}{\u0131}");ue("\\jmath","\\html@mathml{\\@jmath}{\u0237}");ue("\\llbracket","\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`\u27E6}}");ue("\\rrbracket","\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`\u27E7}}");ue("\u27E6","\\llbracket");ue("\u27E7","\\rrbracket");ue("\\lBrace","\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`\u2983}}");ue("\\rBrace","\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`\u2984}}");ue("\u2983","\\lBrace");ue("\u2984","\\rBrace");ue("\\minuso","\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`\u29B5}}");ue("\u29B5","\\minuso");ue("\\darr","\\downarrow");ue("\\dArr","\\Downarrow");ue("\\Darr","\\Downarrow");ue("\\lang","\\langle");ue("\\rang","\\rangle");ue("\\uarr","\\uparrow");ue("\\uArr","\\Uparrow");ue("\\Uarr","\\Uparrow");ue("\\N","\\mathbb{N}");ue("\\R","\\mathbb{R}");ue("\\Z","\\mathbb{Z}");ue("\\alef","\\aleph");ue("\\alefsym","\\aleph");ue("\\Alpha","\\mathrm{A}");ue("\\Beta","\\mathrm{B}");ue("\\bull","\\bullet");ue("\\Chi","\\mathrm{X}");ue("\\clubs","\\clubsuit");ue("\\cnums","\\mathbb{C}");ue("\\Complex","\\mathbb{C}");ue("\\Dagger","\\ddagger");ue("\\diamonds","\\diamondsuit");ue("\\empty","\\emptyset");ue("\\Epsilon","\\mathrm{E}");ue("\\Eta","\\mathrm{H}");ue("\\exist","\\exists");ue("\\harr","\\leftrightarrow");ue("\\hArr","\\Leftrightarrow");ue("\\Harr","\\Leftrightarrow");ue("\\hearts","\\heartsuit");ue("\\image","\\Im");ue("\\infin","\\infty");ue("\\Iota","\\mathrm{I}");ue("\\isin","\\in");ue("\\Kappa","\\mathrm{K}");ue("\\larr","\\leftarrow");ue("\\lArr","\\Leftarrow");ue("\\Larr","\\Leftarrow");ue("\\lrarr","\\leftrightarrow");ue("\\lrArr","\\Leftrightarrow");ue("\\Lrarr","\\Leftrightarrow");ue("\\Mu","\\mathrm{M}");ue("\\natnums","\\mathbb{N}");ue("\\Nu","\\mathrm{N}");ue("\\Omicron","\\mathrm{O}");ue("\\plusmn","\\pm");ue("\\rarr","\\rightarrow");ue("\\rArr","\\Rightarrow");ue("\\Rarr","\\Rightarrow");ue("\\real","\\Re");ue("\\reals","\\mathbb{R}");ue("\\Reals","\\mathbb{R}");ue("\\Rho","\\mathrm{P}");ue("\\sdot","\\cdot");ue("\\sect","\\S");ue("\\spades","\\spadesuit");ue("\\sub","\\subset");ue("\\sube","\\subseteq");ue("\\supe","\\supseteq");ue("\\Tau","\\mathrm{T}");ue("\\thetasym","\\vartheta");ue("\\weierp","\\wp");ue("\\Zeta","\\mathrm{Z}");ue("\\argmin","\\DOTSB\\operatorname*{arg\\,min}");ue("\\argmax","\\DOTSB\\operatorname*{arg\\,max}");ue("\\plim","\\DOTSB\\mathop{\\operatorname{plim}}\\limits");ue("\\bra","\\mathinner{\\langle{#1}|}");ue("\\ket","\\mathinner{|{#1}\\rangle}");ue("\\braket","\\mathinner{\\langle{#1}\\rangle}");ue("\\Bra","\\left\\langle#1\\right|");ue("\\Ket","\\left|#1\\right\\rangle");aX=o(t=>e=>{var r=e.consumeArg().tokens,n=e.consumeArg().tokens,i=e.consumeArg().tokens,a=e.consumeArg().tokens,s=e.macros.get("|"),l=e.macros.get("\\|");e.macros.beginGroup();var u=o(d=>p=>{t&&(p.macros.set("|",s),i.length&&p.macros.set("\\|",l));var m=d;if(!d&&i.length){var g=p.future();g.text==="|"&&(p.popToken(),m=!0)}return{tokens:m?i:n,numArgs:0}},"midMacro");e.macros.set("|",u(!1)),i.length&&e.macros.set("\\|",u(!0));var h=e.consumeArg().tokens,f=e.expandTokens([...a,...h,...r]);return e.macros.endGroup(),{tokens:f.reverse(),numArgs:0}},"braketHelper");ue("\\bra@ket",aX(!1));ue("\\bra@set",aX(!0));ue("\\Braket","\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}");ue("\\Set","\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}");ue("\\set","\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}");ue("\\angln","{\\angl n}");ue("\\blue","\\textcolor{##6495ed}{#1}");ue("\\orange","\\textcolor{##ffa500}{#1}");ue("\\pink","\\textcolor{##ff00af}{#1}");ue("\\red","\\textcolor{##df0030}{#1}");ue("\\green","\\textcolor{##28ae7b}{#1}");ue("\\gray","\\textcolor{gray}{#1}");ue("\\purple","\\textcolor{##9d38bd}{#1}");ue("\\blueA","\\textcolor{##ccfaff}{#1}");ue("\\blueB","\\textcolor{##80f6ff}{#1}");ue("\\blueC","\\textcolor{##63d9ea}{#1}");ue("\\blueD","\\textcolor{##11accd}{#1}");ue("\\blueE","\\textcolor{##0c7f99}{#1}");ue("\\tealA","\\textcolor{##94fff5}{#1}");ue("\\tealB","\\textcolor{##26edd5}{#1}");ue("\\tealC","\\textcolor{##01d1c1}{#1}");ue("\\tealD","\\textcolor{##01a995}{#1}");ue("\\tealE","\\textcolor{##208170}{#1}");ue("\\greenA","\\textcolor{##b6ffb0}{#1}");ue("\\greenB","\\textcolor{##8af281}{#1}");ue("\\greenC","\\textcolor{##74cf70}{#1}");ue("\\greenD","\\textcolor{##1fab54}{#1}");ue("\\greenE","\\textcolor{##0d923f}{#1}");ue("\\goldA","\\textcolor{##ffd0a9}{#1}");ue("\\goldB","\\textcolor{##ffbb71}{#1}");ue("\\goldC","\\textcolor{##ff9c39}{#1}");ue("\\goldD","\\textcolor{##e07d10}{#1}");ue("\\goldE","\\textcolor{##a75a05}{#1}");ue("\\redA","\\textcolor{##fca9a9}{#1}");ue("\\redB","\\textcolor{##ff8482}{#1}");ue("\\redC","\\textcolor{##f9685d}{#1}");ue("\\redD","\\textcolor{##e84d39}{#1}");ue("\\redE","\\textcolor{##bc2612}{#1}");ue("\\maroonA","\\textcolor{##ffbde0}{#1}");ue("\\maroonB","\\textcolor{##ff92c6}{#1}");ue("\\maroonC","\\textcolor{##ed5fa6}{#1}");ue("\\maroonD","\\textcolor{##ca337c}{#1}");ue("\\maroonE","\\textcolor{##9e034e}{#1}");ue("\\purpleA","\\textcolor{##ddd7ff}{#1}");ue("\\purpleB","\\textcolor{##c6b9fc}{#1}");ue("\\purpleC","\\textcolor{##aa87ff}{#1}");ue("\\purpleD","\\textcolor{##7854ab}{#1}");ue("\\purpleE","\\textcolor{##543b78}{#1}");ue("\\mintA","\\textcolor{##f5f9e8}{#1}");ue("\\mintB","\\textcolor{##edf2df}{#1}");ue("\\mintC","\\textcolor{##e0e5cc}{#1}");ue("\\grayA","\\textcolor{##f6f7f7}{#1}");ue("\\grayB","\\textcolor{##f0f1f2}{#1}");ue("\\grayC","\\textcolor{##e3e5e6}{#1}");ue("\\grayD","\\textcolor{##d6d8da}{#1}");ue("\\grayE","\\textcolor{##babec2}{#1}");ue("\\grayF","\\textcolor{##888d93}{#1}");ue("\\grayG","\\textcolor{##626569}{#1}");ue("\\grayH","\\textcolor{##3b3e40}{#1}");ue("\\grayI","\\textcolor{##21242c}{#1}");ue("\\kaBlue","\\textcolor{##314453}{#1}");ue("\\kaGreen","\\textcolor{##71B307}{#1}");sX={"^":!0,_:!0,"\\limits":!0,"\\nolimits":!0},K8=class{static{o(this,"MacroExpander")}constructor(e,r,n){this.settings=void 0,this.expansionCount=void 0,this.lexer=void 0,this.macros=void 0,this.stack=void 0,this.mode=void 0,this.settings=r,this.expansionCount=0,this.feed(e),this.macros=new X8(A8e,r.macros),this.mode=n,this.stack=[]}feed(e){this.lexer=new ww(e,this.settings)}switchMode(e){this.mode=e}beginGroup(){this.macros.beginGroup()}endGroup(){this.macros.endGroup()}endGroups(){this.macros.endGroups()}future(){return this.stack.length===0&&this.pushToken(this.lexer.lex()),this.stack[this.stack.length-1]}popToken(){return this.future(),this.stack.pop()}pushToken(e){this.stack.push(e)}pushTokens(e){this.stack.push(...e)}scanArgument(e){var r,n,i;if(e){if(this.consumeSpaces(),this.future().text!=="[")return null;r=this.popToken(),{tokens:i,end:n}=this.consumeArg(["]"])}else({tokens:i,start:r,end:n}=this.consumeArg());return this.pushToken(new Po("EOF",n.loc)),this.pushTokens(i),new Po("",Qs.range(r,n))}consumeSpaces(){for(;;){var e=this.future();if(e.text===" ")this.stack.pop();else break}}consumeArg(e){var r=[],n=e&&e.length>0;n||this.consumeSpaces();var i=this.future(),a,s=0,l=0;do{if(a=this.popToken(),r.push(a),a.text==="{")++s;else if(a.text==="}"){if(--s,s===-1)throw new bt("Extra }",a)}else if(a.text==="EOF")throw new bt("Unexpected end of input in a macro argument, expected '"+(e&&n?e[l]:"}")+"'",a);if(e&&n)if((s===0||s===1&&e[l]==="{")&&a.text===e[l]){if(++l,l===e.length){r.splice(-l,l);break}}else l=0}while(s!==0||n);return i.text==="{"&&r[r.length-1].text==="}"&&(r.pop(),r.shift()),r.reverse(),{tokens:r,start:i,end:a}}consumeArgs(e,r){if(r){if(r.length!==e+1)throw new bt("The length of delimiters doesn't match the number of args!");for(var n=r[0],i=0;ithis.settings.maxExpand)throw new bt("Too many expansions: infinite loop or need to increase maxExpand setting")}expandOnce(e){var r=this.popToken(),n=r.text,i=r.noexpand?null:this._getExpansion(n);if(i==null||e&&i.unexpandable){if(e&&i==null&&n[0]==="\\"&&!this.isDefined(n))throw new bt("Undefined control sequence: "+n);return this.pushToken(r),!1}this.countExpansion(1);var a=i.tokens,s=this.consumeArgs(i.numArgs,i.delimiters);if(i.numArgs){a=a.slice();for(var l=a.length-1;l>=0;--l){var u=a[l];if(u.text==="#"){if(l===0)throw new bt("Incomplete placeholder at end of macro body",u);if(u=a[--l],u.text==="#")a.splice(l+1,1);else if(/^[1-9]$/.test(u.text))a.splice(l,2,...s[+u.text-1]);else throw new bt("Not a valid argument number",u)}}}return this.pushTokens(a),a.length}expandAfterFuture(){return this.expandOnce(),this.future()}expandNextToken(){for(;;)if(this.expandOnce()===!1){var e=this.stack.pop();return e.treatAsRelax&&(e.text="\\relax"),e}throw new Error}expandMacro(e){return this.macros.has(e)?this.expandTokens([new Po(e)]):void 0}expandTokens(e){var r=[],n=this.stack.length;for(this.pushTokens(e);this.stack.length>n;)if(this.expandOnce(!0)===!1){var i=this.stack.pop();i.treatAsRelax&&(i.noexpand=!1,i.treatAsRelax=!1),r.push(i)}return this.countExpansion(r.length),r}expandMacroAsText(e){var r=this.expandMacro(e);return r&&r.map(n=>n.text).join("")}_getExpansion(e){var r=this.macros.get(e);if(r==null)return r;if(e.length===1){var n=this.lexer.catcodes[e];if(n!=null&&n!==13)return}var i=typeof r=="function"?r(this):r;if(typeof i=="string"){var a=0;if(i.indexOf("#")!==-1)for(var s=i.replace(/##/g,"");s.indexOf("#"+(a+1))!==-1;)++a;for(var l=new ww(i,this.settings),u=[],h=l.lex();h.text!=="EOF";)u.push(h),h=l.lex();u.reverse();var f={tokens:u,numArgs:a};return f}return i}isDefined(e){return this.macros.has(e)||bf.hasOwnProperty(e)||qn.math.hasOwnProperty(e)||qn.text.hasOwnProperty(e)||sX.hasOwnProperty(e)}isExpandable(e){var r=this.macros.get(e);return r!=null?typeof r=="string"||typeof r=="function"||!r.unexpandable:bf.hasOwnProperty(e)&&!bf[e].primitive}},hj=/^[₊₋₌₍₎₀₁₂₃₄₅₆₇₈₉ₐₑₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ]/,pw=Object.freeze({"\u208A":"+","\u208B":"-","\u208C":"=","\u208D":"(","\u208E":")","\u2080":"0","\u2081":"1","\u2082":"2","\u2083":"3","\u2084":"4","\u2085":"5","\u2086":"6","\u2087":"7","\u2088":"8","\u2089":"9","\u2090":"a","\u2091":"e","\u2095":"h","\u1D62":"i","\u2C7C":"j","\u2096":"k","\u2097":"l","\u2098":"m","\u2099":"n","\u2092":"o","\u209A":"p","\u1D63":"r","\u209B":"s","\u209C":"t","\u1D64":"u","\u1D65":"v","\u2093":"x","\u1D66":"\u03B2","\u1D67":"\u03B3","\u1D68":"\u03C1","\u1D69":"\u03D5","\u1D6A":"\u03C7","\u207A":"+","\u207B":"-","\u207C":"=","\u207D":"(","\u207E":")","\u2070":"0","\xB9":"1","\xB2":"2","\xB3":"3","\u2074":"4","\u2075":"5","\u2076":"6","\u2077":"7","\u2078":"8","\u2079":"9","\u1D2C":"A","\u1D2E":"B","\u1D30":"D","\u1D31":"E","\u1D33":"G","\u1D34":"H","\u1D35":"I","\u1D36":"J","\u1D37":"K","\u1D38":"L","\u1D39":"M","\u1D3A":"N","\u1D3C":"O","\u1D3E":"P","\u1D3F":"R","\u1D40":"T","\u1D41":"U","\u2C7D":"V","\u1D42":"W","\u1D43":"a","\u1D47":"b","\u1D9C":"c","\u1D48":"d","\u1D49":"e","\u1DA0":"f","\u1D4D":"g",\u02B0:"h","\u2071":"i",\u02B2:"j","\u1D4F":"k",\u02E1:"l","\u1D50":"m",\u207F:"n","\u1D52":"o","\u1D56":"p",\u02B3:"r",\u02E2:"s","\u1D57":"t","\u1D58":"u","\u1D5B":"v",\u02B7:"w",\u02E3:"x",\u02B8:"y","\u1DBB":"z","\u1D5D":"\u03B2","\u1D5E":"\u03B3","\u1D5F":"\u03B4","\u1D60":"\u03D5","\u1D61":"\u03C7","\u1DBF":"\u03B8"}),F8={"\u0301":{text:"\\'",math:"\\acute"},"\u0300":{text:"\\`",math:"\\grave"},"\u0308":{text:'\\"',math:"\\ddot"},"\u0303":{text:"\\~",math:"\\tilde"},"\u0304":{text:"\\=",math:"\\bar"},"\u0306":{text:"\\u",math:"\\breve"},"\u030C":{text:"\\v",math:"\\check"},"\u0302":{text:"\\^",math:"\\hat"},"\u0307":{text:"\\.",math:"\\dot"},"\u030A":{text:"\\r",math:"\\mathring"},"\u030B":{text:"\\H"},"\u0327":{text:"\\c"}},fj={\u00E1:"a\u0301",\u00E0:"a\u0300",\u00E4:"a\u0308",\u01DF:"a\u0308\u0304",\u00E3:"a\u0303",\u0101:"a\u0304",\u0103:"a\u0306",\u1EAF:"a\u0306\u0301",\u1EB1:"a\u0306\u0300",\u1EB5:"a\u0306\u0303",\u01CE:"a\u030C",\u00E2:"a\u0302",\u1EA5:"a\u0302\u0301",\u1EA7:"a\u0302\u0300",\u1EAB:"a\u0302\u0303",\u0227:"a\u0307",\u01E1:"a\u0307\u0304",\u00E5:"a\u030A",\u01FB:"a\u030A\u0301",\u1E03:"b\u0307",\u0107:"c\u0301",\u1E09:"c\u0327\u0301",\u010D:"c\u030C",\u0109:"c\u0302",\u010B:"c\u0307",\u00E7:"c\u0327",\u010F:"d\u030C",\u1E0B:"d\u0307",\u1E11:"d\u0327",\u00E9:"e\u0301",\u00E8:"e\u0300",\u00EB:"e\u0308",\u1EBD:"e\u0303",\u0113:"e\u0304",\u1E17:"e\u0304\u0301",\u1E15:"e\u0304\u0300",\u0115:"e\u0306",\u1E1D:"e\u0327\u0306",\u011B:"e\u030C",\u00EA:"e\u0302",\u1EBF:"e\u0302\u0301",\u1EC1:"e\u0302\u0300",\u1EC5:"e\u0302\u0303",\u0117:"e\u0307",\u0229:"e\u0327",\u1E1F:"f\u0307",\u01F5:"g\u0301",\u1E21:"g\u0304",\u011F:"g\u0306",\u01E7:"g\u030C",\u011D:"g\u0302",\u0121:"g\u0307",\u0123:"g\u0327",\u1E27:"h\u0308",\u021F:"h\u030C",\u0125:"h\u0302",\u1E23:"h\u0307",\u1E29:"h\u0327",\u00ED:"i\u0301",\u00EC:"i\u0300",\u00EF:"i\u0308",\u1E2F:"i\u0308\u0301",\u0129:"i\u0303",\u012B:"i\u0304",\u012D:"i\u0306",\u01D0:"i\u030C",\u00EE:"i\u0302",\u01F0:"j\u030C",\u0135:"j\u0302",\u1E31:"k\u0301",\u01E9:"k\u030C",\u0137:"k\u0327",\u013A:"l\u0301",\u013E:"l\u030C",\u013C:"l\u0327",\u1E3F:"m\u0301",\u1E41:"m\u0307",\u0144:"n\u0301",\u01F9:"n\u0300",\u00F1:"n\u0303",\u0148:"n\u030C",\u1E45:"n\u0307",\u0146:"n\u0327",\u00F3:"o\u0301",\u00F2:"o\u0300",\u00F6:"o\u0308",\u022B:"o\u0308\u0304",\u00F5:"o\u0303",\u1E4D:"o\u0303\u0301",\u1E4F:"o\u0303\u0308",\u022D:"o\u0303\u0304",\u014D:"o\u0304",\u1E53:"o\u0304\u0301",\u1E51:"o\u0304\u0300",\u014F:"o\u0306",\u01D2:"o\u030C",\u00F4:"o\u0302",\u1ED1:"o\u0302\u0301",\u1ED3:"o\u0302\u0300",\u1ED7:"o\u0302\u0303",\u022F:"o\u0307",\u0231:"o\u0307\u0304",\u0151:"o\u030B",\u1E55:"p\u0301",\u1E57:"p\u0307",\u0155:"r\u0301",\u0159:"r\u030C",\u1E59:"r\u0307",\u0157:"r\u0327",\u015B:"s\u0301",\u1E65:"s\u0301\u0307",\u0161:"s\u030C",\u1E67:"s\u030C\u0307",\u015D:"s\u0302",\u1E61:"s\u0307",\u015F:"s\u0327",\u1E97:"t\u0308",\u0165:"t\u030C",\u1E6B:"t\u0307",\u0163:"t\u0327",\u00FA:"u\u0301",\u00F9:"u\u0300",\u00FC:"u\u0308",\u01D8:"u\u0308\u0301",\u01DC:"u\u0308\u0300",\u01D6:"u\u0308\u0304",\u01DA:"u\u0308\u030C",\u0169:"u\u0303",\u1E79:"u\u0303\u0301",\u016B:"u\u0304",\u1E7B:"u\u0304\u0308",\u016D:"u\u0306",\u01D4:"u\u030C",\u00FB:"u\u0302",\u016F:"u\u030A",\u0171:"u\u030B",\u1E7D:"v\u0303",\u1E83:"w\u0301",\u1E81:"w\u0300",\u1E85:"w\u0308",\u0175:"w\u0302",\u1E87:"w\u0307",\u1E98:"w\u030A",\u1E8D:"x\u0308",\u1E8B:"x\u0307",\u00FD:"y\u0301",\u1EF3:"y\u0300",\u00FF:"y\u0308",\u1EF9:"y\u0303",\u0233:"y\u0304",\u0177:"y\u0302",\u1E8F:"y\u0307",\u1E99:"y\u030A",\u017A:"z\u0301",\u017E:"z\u030C",\u1E91:"z\u0302",\u017C:"z\u0307",\u00C1:"A\u0301",\u00C0:"A\u0300",\u00C4:"A\u0308",\u01DE:"A\u0308\u0304",\u00C3:"A\u0303",\u0100:"A\u0304",\u0102:"A\u0306",\u1EAE:"A\u0306\u0301",\u1EB0:"A\u0306\u0300",\u1EB4:"A\u0306\u0303",\u01CD:"A\u030C",\u00C2:"A\u0302",\u1EA4:"A\u0302\u0301",\u1EA6:"A\u0302\u0300",\u1EAA:"A\u0302\u0303",\u0226:"A\u0307",\u01E0:"A\u0307\u0304",\u00C5:"A\u030A",\u01FA:"A\u030A\u0301",\u1E02:"B\u0307",\u0106:"C\u0301",\u1E08:"C\u0327\u0301",\u010C:"C\u030C",\u0108:"C\u0302",\u010A:"C\u0307",\u00C7:"C\u0327",\u010E:"D\u030C",\u1E0A:"D\u0307",\u1E10:"D\u0327",\u00C9:"E\u0301",\u00C8:"E\u0300",\u00CB:"E\u0308",\u1EBC:"E\u0303",\u0112:"E\u0304",\u1E16:"E\u0304\u0301",\u1E14:"E\u0304\u0300",\u0114:"E\u0306",\u1E1C:"E\u0327\u0306",\u011A:"E\u030C",\u00CA:"E\u0302",\u1EBE:"E\u0302\u0301",\u1EC0:"E\u0302\u0300",\u1EC4:"E\u0302\u0303",\u0116:"E\u0307",\u0228:"E\u0327",\u1E1E:"F\u0307",\u01F4:"G\u0301",\u1E20:"G\u0304",\u011E:"G\u0306",\u01E6:"G\u030C",\u011C:"G\u0302",\u0120:"G\u0307",\u0122:"G\u0327",\u1E26:"H\u0308",\u021E:"H\u030C",\u0124:"H\u0302",\u1E22:"H\u0307",\u1E28:"H\u0327",\u00CD:"I\u0301",\u00CC:"I\u0300",\u00CF:"I\u0308",\u1E2E:"I\u0308\u0301",\u0128:"I\u0303",\u012A:"I\u0304",\u012C:"I\u0306",\u01CF:"I\u030C",\u00CE:"I\u0302",\u0130:"I\u0307",\u0134:"J\u0302",\u1E30:"K\u0301",\u01E8:"K\u030C",\u0136:"K\u0327",\u0139:"L\u0301",\u013D:"L\u030C",\u013B:"L\u0327",\u1E3E:"M\u0301",\u1E40:"M\u0307",\u0143:"N\u0301",\u01F8:"N\u0300",\u00D1:"N\u0303",\u0147:"N\u030C",\u1E44:"N\u0307",\u0145:"N\u0327",\u00D3:"O\u0301",\u00D2:"O\u0300",\u00D6:"O\u0308",\u022A:"O\u0308\u0304",\u00D5:"O\u0303",\u1E4C:"O\u0303\u0301",\u1E4E:"O\u0303\u0308",\u022C:"O\u0303\u0304",\u014C:"O\u0304",\u1E52:"O\u0304\u0301",\u1E50:"O\u0304\u0300",\u014E:"O\u0306",\u01D1:"O\u030C",\u00D4:"O\u0302",\u1ED0:"O\u0302\u0301",\u1ED2:"O\u0302\u0300",\u1ED6:"O\u0302\u0303",\u022E:"O\u0307",\u0230:"O\u0307\u0304",\u0150:"O\u030B",\u1E54:"P\u0301",\u1E56:"P\u0307",\u0154:"R\u0301",\u0158:"R\u030C",\u1E58:"R\u0307",\u0156:"R\u0327",\u015A:"S\u0301",\u1E64:"S\u0301\u0307",\u0160:"S\u030C",\u1E66:"S\u030C\u0307",\u015C:"S\u0302",\u1E60:"S\u0307",\u015E:"S\u0327",\u0164:"T\u030C",\u1E6A:"T\u0307",\u0162:"T\u0327",\u00DA:"U\u0301",\u00D9:"U\u0300",\u00DC:"U\u0308",\u01D7:"U\u0308\u0301",\u01DB:"U\u0308\u0300",\u01D5:"U\u0308\u0304",\u01D9:"U\u0308\u030C",\u0168:"U\u0303",\u1E78:"U\u0303\u0301",\u016A:"U\u0304",\u1E7A:"U\u0304\u0308",\u016C:"U\u0306",\u01D3:"U\u030C",\u00DB:"U\u0302",\u016E:"U\u030A",\u0170:"U\u030B",\u1E7C:"V\u0303",\u1E82:"W\u0301",\u1E80:"W\u0300",\u1E84:"W\u0308",\u0174:"W\u0302",\u1E86:"W\u0307",\u1E8C:"X\u0308",\u1E8A:"X\u0307",\u00DD:"Y\u0301",\u1EF2:"Y\u0300",\u0178:"Y\u0308",\u1EF8:"Y\u0303",\u0232:"Y\u0304",\u0176:"Y\u0302",\u1E8E:"Y\u0307",\u0179:"Z\u0301",\u017D:"Z\u030C",\u1E90:"Z\u0302",\u017B:"Z\u0307",\u03AC:"\u03B1\u0301",\u1F70:"\u03B1\u0300",\u1FB1:"\u03B1\u0304",\u1FB0:"\u03B1\u0306",\u03AD:"\u03B5\u0301",\u1F72:"\u03B5\u0300",\u03AE:"\u03B7\u0301",\u1F74:"\u03B7\u0300",\u03AF:"\u03B9\u0301",\u1F76:"\u03B9\u0300",\u03CA:"\u03B9\u0308",\u0390:"\u03B9\u0308\u0301",\u1FD2:"\u03B9\u0308\u0300",\u1FD1:"\u03B9\u0304",\u1FD0:"\u03B9\u0306",\u03CC:"\u03BF\u0301",\u1F78:"\u03BF\u0300",\u03CD:"\u03C5\u0301",\u1F7A:"\u03C5\u0300",\u03CB:"\u03C5\u0308",\u03B0:"\u03C5\u0308\u0301",\u1FE2:"\u03C5\u0308\u0300",\u1FE1:"\u03C5\u0304",\u1FE0:"\u03C5\u0306",\u03CE:"\u03C9\u0301",\u1F7C:"\u03C9\u0300",\u038E:"\u03A5\u0301",\u1FEA:"\u03A5\u0300",\u03AB:"\u03A5\u0308",\u1FE9:"\u03A5\u0304",\u1FE8:"\u03A5\u0306",\u038F:"\u03A9\u0301",\u1FFA:"\u03A9\u0300"},kw=class t{static{o(this,"Parser")}constructor(e,r){this.mode=void 0,this.gullet=void 0,this.settings=void 0,this.leftrightDepth=void 0,this.nextToken=void 0,this.mode="math",this.gullet=new K8(e,r,this.mode),this.settings=r,this.leftrightDepth=0}expect(e,r){if(r===void 0&&(r=!0),this.fetch().text!==e)throw new bt("Expected '"+e+"', got '"+this.fetch().text+"'",this.fetch());r&&this.consume()}consume(){this.nextToken=null}fetch(){return this.nextToken==null&&(this.nextToken=this.gullet.expandNextToken()),this.nextToken}switchMode(e){this.mode=e,this.gullet.switchMode(e)}parse(){this.settings.globalGroup||this.gullet.beginGroup(),this.settings.colorIsTextColor&&this.gullet.macros.set("\\color","\\textcolor");try{var e=this.parseExpression(!1);return this.expect("EOF"),this.settings.globalGroup||this.gullet.endGroup(),e}finally{this.gullet.endGroups()}}subparse(e){var r=this.nextToken;this.consume(),this.gullet.pushToken(new Po("}")),this.gullet.pushTokens(e);var n=this.parseExpression(!1);return this.expect("}"),this.nextToken=r,n}parseExpression(e,r){for(var n=[];;){this.mode==="math"&&this.consumeSpaces();var i=this.fetch();if(t.endOfExpression.indexOf(i.text)!==-1||r&&i.text===r||e&&bf[i.text]&&bf[i.text].infix)break;var a=this.parseAtom(r);if(a){if(a.type==="internal")continue}else break;n.push(a)}return this.mode==="text"&&this.formLigatures(n),this.handleInfixNodes(n)}handleInfixNodes(e){for(var r=-1,n,i=0;i=0&&this.settings.reportNonstrict("unicodeTextInMathMode",'Latin-1/Unicode text character "'+r[0]+'" used in math mode',e);var l=qn[this.mode][r].group,u=Qs.range(e),h;if(v_e.hasOwnProperty(l)){var f=l;h={type:"atom",mode:this.mode,family:f,loc:u,text:r}}else h={type:l,mode:this.mode,loc:u,text:r};s=h}else if(r.charCodeAt(0)>=128)this.settings.strict&&(pj(r.charCodeAt(0))?this.mode==="math"&&this.settings.reportNonstrict("unicodeTextInMathMode",'Unicode text character "'+r[0]+'" used in math mode',e):this.settings.reportNonstrict("unknownSymbol",'Unrecognized Unicode character "'+r[0]+'"'+(" ("+r.charCodeAt(0)+")"),e)),s={type:"textord",mode:"text",loc:Qs.range(e),text:r};else return null;if(this.consume(),a)for(var d=0;d{e.tagName==="A"&&e.hasAttribute("target")&&e.setAttribute(t,e.getAttribute("target")??"")}),fl.addHook("afterSanitizeAttributes",e=>{e.tagName==="A"&&e.hasAttribute(t)&&(e.setAttribute("target",e.getAttribute(t)??""),e.removeAttribute(t),e.getAttribute("target")==="_blank"&&e.setAttribute("rel","noopener"))})}var Ip,D8e,R8e,yX,mX,wr,N8e,M8e,I8e,O8e,vX,Op,P8e,B8e,jc,mD,F8e,$8e,gX,Lw,Jn,Pp,z8e,gg,st,Ur=O(()=>{"use strict";S2();$r();Ip=//gi,D8e=o(t=>t?vX(t).replace(/\\n/g,"#br#").split("#br#"):[""],"getRows"),R8e=(()=>{let t=!1;return()=>{t||(L8e(),t=!0)}})();o(L8e,"setupDompurifyHooks");yX=o(t=>(R8e(),fl.sanitize(t)),"removeScript"),mX=o((t,e)=>{if(Sr(e)){let r=e.securityLevel;r==="antiscript"||r==="strict"||r==="sandbox"?t=yX(t):r!=="loose"&&(t=vX(t),t=t.replace(//g,">"),t=t.replace(/=/g,"="),t=O8e(t))}return t},"sanitizeMore"),wr=o((t,e)=>t&&(e.dompurifyConfig?t=fl.sanitize(mX(t,e),e.dompurifyConfig).toString():t=fl.sanitize(mX(t,e),{FORBID_TAGS:["style"]}).toString(),t),"sanitizeText"),N8e=o((t,e)=>typeof t=="string"?wr(t,e):t.flat().map(r=>wr(r,e)),"sanitizeTextOrArray"),M8e=o(t=>Ip.test(t),"hasBreaks"),I8e=o(t=>t.split(Ip),"splitBreaks"),O8e=o(t=>t.replace(/#br#/g,"
"),"placeholderToBreak"),vX=o(t=>t.replace(Ip,"#br#"),"breakToPlaceholder"),Op=o(t=>{let e="";return t&&(e=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,e=CSS.escape(e)),e},"getUrl"),P8e=o(function(...t){let e=t.filter(r=>!isNaN(r));return Math.max(...e)},"getMax"),B8e=o(function(...t){let e=t.filter(r=>!isNaN(r));return Math.min(...e)},"getMin"),jc=o(function(t){let e=t.split(/(,)/),r=[];for(let n=0;n0&&n+1Math.max(0,t.split(e).length-1),"countOccurrence"),F8e=o((t,e)=>{let r=mD(t,"~"),n=mD(e,"~");return r===1&&n===1},"shouldCombineSets"),$8e=o(t=>{let e=mD(t,"~"),r=!1;if(e<=1)return t;e%2!==0&&t.startsWith("~")&&(t=t.substring(1),r=!0);let n=[...t],i=n.indexOf("~"),a=n.lastIndexOf("~");for(;i!==-1&&a!==-1&&i!==a;)n[i]="<",n[a]=">",i=n.indexOf("~"),a=n.lastIndexOf("~");return r&&n.unshift("~"),n.join("")},"processSet"),gX=o(()=>window.MathMLElement!==void 0,"isMathMLSupported"),Lw=/\$\$(.*)\$\$/g,Jn=o(t=>(t.match(Lw)?.length??0)>0,"hasKatex"),Pp=o(async(t,e)=>{let r=document.createElement("div");r.innerHTML=await gg(t,e),r.id="katex-temp",r.style.visibility="hidden",r.style.position="absolute",r.style.top="0",document.querySelector("body")?.insertAdjacentElement("beforeend",r);let i={width:r.clientWidth,height:r.clientHeight};return r.remove(),i},"calculateMathMLDimensions"),z8e=o(async(t,e)=>{if(!Jn(t))return t;if(!(gX()||e.legacyMathML||e.forceLegacyMathML))return t.replace(Lw,"MathML is unsupported in this environment.");{let{default:r}=await Promise.resolve().then(()=>(pX(),dX)),n=e.forceLegacyMathML||!gX()&&e.legacyMathML?"htmlAndMathml":"mathml";return t.split(Ip).map(i=>Jn(i)?`
${i}
`:`
${i}
`).join("").replace(Lw,(i,a)=>r.renderToString(a,{throwOnError:!0,displayMode:!0,output:n}).replace(/\n/g," ").replace(//g,""))}return t.replace(Lw,"Katex is not supported in @mermaid-js/tiny. Please use the full mermaid library.")},"renderKatexUnsanitized"),gg=o(async(t,e)=>wr(await z8e(t,e),e),"renderKatexSanitized"),st={getRows:D8e,sanitizeText:wr,sanitizeTextOrArray:N8e,hasBreaks:M8e,splitBreaks:I8e,lineBreakRegex:Ip,removeScript:yX,getUrl:Op,evaluate:Xs,getMax:P8e,getMin:B8e}});var yD,gD,xX,Nw,bX,TX,eo,Xc=O(()=>{"use strict";AH();$r();Ur();xt();yD={body:'?',height:80,width:80},gD=new Map,xX=new Map,Nw=o(t=>{for(let e of t){if(!e.name)throw new Error('Invalid icon loader. Must have a "name" property with non-empty string value.');if(K.debug("Registering icon pack:",e.name),"loader"in e)xX.set(e.name,e.loader);else if("icons"in e)gD.set(e.name,e.icons);else throw K.error("Invalid icon loader:",e),new Error('Invalid icon loader. Must have either "icons" or "loader" property.')}},"registerIconPacks"),bX=o(async(t,e)=>{let r=H_(t,!0,e!==void 0);if(!r)throw new Error(`Invalid icon name: ${t}`);let n=r.prefix||e;if(!n)throw new Error(`Icon name must contain a prefix: ${t}`);let i=gD.get(n);if(!i){let s=xX.get(n);if(!s)throw new Error(`Icon set not found: ${r.prefix}`);try{i={...await s(),prefix:n},gD.set(n,i)}catch(l){throw K.error(l),new Error(`Failed to load icon set: ${r.prefix}`)}}let a=j_(i,r.name);if(!a)throw new Error(`Icon not found: ${t}`);return a},"getRegisteredIconData"),TX=o(async t=>{try{return await bX(t),!0}catch{return!1}},"isIconAvailable"),eo=o(async(t,e,r)=>{let n;try{n=await bX(t,e?.fallbackPrefix)}catch(s){K.error(s),n=yD}let i=K_(n,e),a=Z_(Q_(i.body),{...i.attributes,...r});return wr(a,Zt())},"getIconSVG")});function Mw(t){for(var e=[],r=1;r{"use strict";o(Mw,"dedent")});var Iw,Bp,wX,Ow=O(()=>{"use strict";Iw=/^-{3}\s*[\n\r](.*?)[\n\r]-{3}\s*[\n\r]+/s,Bp=/%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,wX=/\s*%%.*\n/gm});var yg,xD=O(()=>{"use strict";yg=class extends Error{static{o(this,"UnknownDiagramError")}constructor(e){super(e),this.name="UnknownDiagramError"}}});var uh,vg,B2,bD,kX,Fp=O(()=>{"use strict";xt();Ow();xD();uh={},vg=o(function(t,e){t=t.replace(Iw,"").replace(Bp,"").replace(wX,` +`);for(let[r,{detector:n}]of Object.entries(uh))if(n(t,e))return r;throw new yg(`No diagram type detected matching given configuration for text: ${t}`)},"detectType"),B2=o((...t)=>{for(let{id:e,detector:r,loader:n}of t)bD(e,r,n)},"registerLazyLoadedDiagrams"),bD=o((t,e,r)=>{uh[t]&&K.warn(`Detector with key ${t} already exists. Overwriting.`),uh[t]={detector:e,loader:r},K.debug(`Detector with key ${t} added${r?" with loader":""}`)},"addDetector"),kX=o(t=>uh[t].loader,"getDiagramLoader")});var F2,EX,TD=O(()=>{"use strict";F2=(function(){var t=o(function(Te,Be,Ue,Ge){for(Ue=Ue||{},Ge=Te.length;Ge--;Ue[Te[Ge]]=Be);return Ue},"o"),e=[1,24],r=[1,25],n=[1,26],i=[1,27],a=[1,28],s=[1,63],l=[1,64],u=[1,65],h=[1,66],f=[1,67],d=[1,68],p=[1,69],m=[1,29],g=[1,30],y=[1,31],v=[1,32],x=[1,33],b=[1,34],T=[1,35],E=[1,36],w=[1,37],k=[1,38],S=[1,39],A=[1,40],L=[1,41],I=[1,42],N=[1,43],C=[1,44],_=[1,45],D=[1,46],M=[1,47],R=[1,48],P=[1,50],B=[1,51],F=[1,52],G=[1,53],$=[1,54],V=[1,55],X=[1,56],Q=[1,57],H=[1,58],ie=[1,59],Y=[1,60],le=[14,42],ee=[14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],J=[12,14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],te=[1,82],Z=[1,83],xe=[1,84],de=[1,85],Se=[12,14,42],Me=[12,14,33,42],ke=[12,14,33,42,76,77,79,80],we=[12,33],_e=[34,36,37,38,39,40,41,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],$e={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mermaidDoc:4,direction:5,direction_tb:6,direction_bt:7,direction_rl:8,direction_lr:9,graphConfig:10,C4_CONTEXT:11,NEWLINE:12,statements:13,EOF:14,C4_CONTAINER:15,C4_COMPONENT:16,C4_DYNAMIC:17,C4_DEPLOYMENT:18,otherStatements:19,diagramStatements:20,otherStatement:21,title:22,accDescription:23,acc_title:24,acc_title_value:25,acc_descr:26,acc_descr_value:27,acc_descr_multiline_value:28,boundaryStatement:29,boundaryStartStatement:30,boundaryStopStatement:31,boundaryStart:32,LBRACE:33,ENTERPRISE_BOUNDARY:34,attributes:35,SYSTEM_BOUNDARY:36,BOUNDARY:37,CONTAINER_BOUNDARY:38,NODE:39,NODE_L:40,NODE_R:41,RBRACE:42,diagramStatement:43,PERSON:44,PERSON_EXT:45,SYSTEM:46,SYSTEM_DB:47,SYSTEM_QUEUE:48,SYSTEM_EXT:49,SYSTEM_EXT_DB:50,SYSTEM_EXT_QUEUE:51,CONTAINER:52,CONTAINER_DB:53,CONTAINER_QUEUE:54,CONTAINER_EXT:55,CONTAINER_EXT_DB:56,CONTAINER_EXT_QUEUE:57,COMPONENT:58,COMPONENT_DB:59,COMPONENT_QUEUE:60,COMPONENT_EXT:61,COMPONENT_EXT_DB:62,COMPONENT_EXT_QUEUE:63,REL:64,BIREL:65,REL_U:66,REL_D:67,REL_L:68,REL_R:69,REL_B:70,REL_INDEX:71,UPDATE_EL_STYLE:72,UPDATE_REL_STYLE:73,UPDATE_LAYOUT_CONFIG:74,attribute:75,STR:76,STR_KEY:77,STR_VALUE:78,ATTRIBUTE:79,ATTRIBUTE_EMPTY:80,$accept:0,$end:1},terminals_:{2:"error",6:"direction_tb",7:"direction_bt",8:"direction_rl",9:"direction_lr",11:"C4_CONTEXT",12:"NEWLINE",14:"EOF",15:"C4_CONTAINER",16:"C4_COMPONENT",17:"C4_DYNAMIC",18:"C4_DEPLOYMENT",22:"title",23:"accDescription",24:"acc_title",25:"acc_title_value",26:"acc_descr",27:"acc_descr_value",28:"acc_descr_multiline_value",33:"LBRACE",34:"ENTERPRISE_BOUNDARY",36:"SYSTEM_BOUNDARY",37:"BOUNDARY",38:"CONTAINER_BOUNDARY",39:"NODE",40:"NODE_L",41:"NODE_R",42:"RBRACE",44:"PERSON",45:"PERSON_EXT",46:"SYSTEM",47:"SYSTEM_DB",48:"SYSTEM_QUEUE",49:"SYSTEM_EXT",50:"SYSTEM_EXT_DB",51:"SYSTEM_EXT_QUEUE",52:"CONTAINER",53:"CONTAINER_DB",54:"CONTAINER_QUEUE",55:"CONTAINER_EXT",56:"CONTAINER_EXT_DB",57:"CONTAINER_EXT_QUEUE",58:"COMPONENT",59:"COMPONENT_DB",60:"COMPONENT_QUEUE",61:"COMPONENT_EXT",62:"COMPONENT_EXT_DB",63:"COMPONENT_EXT_QUEUE",64:"REL",65:"BIREL",66:"REL_U",67:"REL_D",68:"REL_L",69:"REL_R",70:"REL_B",71:"REL_INDEX",72:"UPDATE_EL_STYLE",73:"UPDATE_REL_STYLE",74:"UPDATE_LAYOUT_CONFIG",76:"STR",77:"STR_KEY",78:"STR_VALUE",79:"ATTRIBUTE",80:"ATTRIBUTE_EMPTY"},productions_:[0,[3,1],[3,1],[5,1],[5,1],[5,1],[5,1],[4,1],[10,4],[10,4],[10,4],[10,4],[10,4],[13,1],[13,1],[13,2],[19,1],[19,2],[19,3],[21,1],[21,1],[21,2],[21,2],[21,1],[29,3],[30,3],[30,3],[30,4],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[31,1],[20,1],[20,2],[20,3],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,1],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[35,1],[35,2],[75,1],[75,2],[75,1],[75,1]],performAction:o(function(Be,Ue,Ge,Ne,We,j,ae){var U=j.length-1;switch(We){case 3:Ne.setDirection("TB");break;case 4:Ne.setDirection("BT");break;case 5:Ne.setDirection("RL");break;case 6:Ne.setDirection("LR");break;case 8:case 9:case 10:case 11:case 12:Ne.setC4Type(j[U-3]);break;case 19:Ne.setTitle(j[U].substring(6)),this.$=j[U].substring(6);break;case 20:Ne.setAccDescription(j[U].substring(15)),this.$=j[U].substring(15);break;case 21:this.$=j[U].trim(),Ne.setTitle(this.$);break;case 22:case 23:this.$=j[U].trim(),Ne.setAccDescription(this.$);break;case 28:j[U].splice(2,0,"ENTERPRISE"),Ne.addPersonOrSystemBoundary(...j[U]),this.$=j[U];break;case 29:j[U].splice(2,0,"SYSTEM"),Ne.addPersonOrSystemBoundary(...j[U]),this.$=j[U];break;case 30:Ne.addPersonOrSystemBoundary(...j[U]),this.$=j[U];break;case 31:j[U].splice(2,0,"CONTAINER"),Ne.addContainerBoundary(...j[U]),this.$=j[U];break;case 32:Ne.addDeploymentNode("node",...j[U]),this.$=j[U];break;case 33:Ne.addDeploymentNode("nodeL",...j[U]),this.$=j[U];break;case 34:Ne.addDeploymentNode("nodeR",...j[U]),this.$=j[U];break;case 35:Ne.popBoundaryParseStack();break;case 39:Ne.addPersonOrSystem("person",...j[U]),this.$=j[U];break;case 40:Ne.addPersonOrSystem("external_person",...j[U]),this.$=j[U];break;case 41:Ne.addPersonOrSystem("system",...j[U]),this.$=j[U];break;case 42:Ne.addPersonOrSystem("system_db",...j[U]),this.$=j[U];break;case 43:Ne.addPersonOrSystem("system_queue",...j[U]),this.$=j[U];break;case 44:Ne.addPersonOrSystem("external_system",...j[U]),this.$=j[U];break;case 45:Ne.addPersonOrSystem("external_system_db",...j[U]),this.$=j[U];break;case 46:Ne.addPersonOrSystem("external_system_queue",...j[U]),this.$=j[U];break;case 47:Ne.addContainer("container",...j[U]),this.$=j[U];break;case 48:Ne.addContainer("container_db",...j[U]),this.$=j[U];break;case 49:Ne.addContainer("container_queue",...j[U]),this.$=j[U];break;case 50:Ne.addContainer("external_container",...j[U]),this.$=j[U];break;case 51:Ne.addContainer("external_container_db",...j[U]),this.$=j[U];break;case 52:Ne.addContainer("external_container_queue",...j[U]),this.$=j[U];break;case 53:Ne.addComponent("component",...j[U]),this.$=j[U];break;case 54:Ne.addComponent("component_db",...j[U]),this.$=j[U];break;case 55:Ne.addComponent("component_queue",...j[U]),this.$=j[U];break;case 56:Ne.addComponent("external_component",...j[U]),this.$=j[U];break;case 57:Ne.addComponent("external_component_db",...j[U]),this.$=j[U];break;case 58:Ne.addComponent("external_component_queue",...j[U]),this.$=j[U];break;case 60:Ne.addRel("rel",...j[U]),this.$=j[U];break;case 61:Ne.addRel("birel",...j[U]),this.$=j[U];break;case 62:Ne.addRel("rel_u",...j[U]),this.$=j[U];break;case 63:Ne.addRel("rel_d",...j[U]),this.$=j[U];break;case 64:Ne.addRel("rel_l",...j[U]),this.$=j[U];break;case 65:Ne.addRel("rel_r",...j[U]),this.$=j[U];break;case 66:Ne.addRel("rel_b",...j[U]),this.$=j[U];break;case 67:j[U].splice(0,1),Ne.addRel("rel",...j[U]),this.$=j[U];break;case 68:Ne.updateElStyle("update_el_style",...j[U]),this.$=j[U];break;case 69:Ne.updateRelStyle("update_rel_style",...j[U]),this.$=j[U];break;case 70:Ne.updateLayoutConfig("update_layout_config",...j[U]),this.$=j[U];break;case 71:this.$=[j[U]];break;case 72:j[U].unshift(j[U-1]),this.$=j[U];break;case 73:case 75:this.$=j[U].trim();break;case 74:let ce={};ce[j[U-1].trim()]=j[U].trim(),this.$=ce;break;case 76:this.$="";break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],7:[1,6],8:[1,7],9:[1,8],10:4,11:[1,9],15:[1,10],16:[1,11],17:[1,12],18:[1,13]},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,7]},{1:[2,3]},{1:[2,4]},{1:[2,5]},{1:[2,6]},{12:[1,14]},{12:[1,15]},{12:[1,16]},{12:[1,17]},{12:[1,18]},{13:19,19:20,20:21,21:22,22:e,23:r,24:n,26:i,28:a,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:f,40:d,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:T,51:E,52:w,53:k,54:S,55:A,56:L,57:I,58:N,59:C,60:_,61:D,62:M,63:R,64:P,65:B,66:F,67:G,68:$,69:V,70:X,71:Q,72:H,73:ie,74:Y},{13:70,19:20,20:21,21:22,22:e,23:r,24:n,26:i,28:a,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:f,40:d,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:T,51:E,52:w,53:k,54:S,55:A,56:L,57:I,58:N,59:C,60:_,61:D,62:M,63:R,64:P,65:B,66:F,67:G,68:$,69:V,70:X,71:Q,72:H,73:ie,74:Y},{13:71,19:20,20:21,21:22,22:e,23:r,24:n,26:i,28:a,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:f,40:d,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:T,51:E,52:w,53:k,54:S,55:A,56:L,57:I,58:N,59:C,60:_,61:D,62:M,63:R,64:P,65:B,66:F,67:G,68:$,69:V,70:X,71:Q,72:H,73:ie,74:Y},{13:72,19:20,20:21,21:22,22:e,23:r,24:n,26:i,28:a,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:f,40:d,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:T,51:E,52:w,53:k,54:S,55:A,56:L,57:I,58:N,59:C,60:_,61:D,62:M,63:R,64:P,65:B,66:F,67:G,68:$,69:V,70:X,71:Q,72:H,73:ie,74:Y},{13:73,19:20,20:21,21:22,22:e,23:r,24:n,26:i,28:a,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:f,40:d,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:T,51:E,52:w,53:k,54:S,55:A,56:L,57:I,58:N,59:C,60:_,61:D,62:M,63:R,64:P,65:B,66:F,67:G,68:$,69:V,70:X,71:Q,72:H,73:ie,74:Y},{14:[1,74]},t(le,[2,13],{43:23,29:49,30:61,32:62,20:75,34:s,36:l,37:u,38:h,39:f,40:d,41:p,44:m,45:g,46:y,47:v,48:x,49:b,50:T,51:E,52:w,53:k,54:S,55:A,56:L,57:I,58:N,59:C,60:_,61:D,62:M,63:R,64:P,65:B,66:F,67:G,68:$,69:V,70:X,71:Q,72:H,73:ie,74:Y}),t(le,[2,14]),t(ee,[2,16],{12:[1,76]}),t(le,[2,36],{12:[1,77]}),t(J,[2,19]),t(J,[2,20]),{25:[1,78]},{27:[1,79]},t(J,[2,23]),{35:80,75:81,76:te,77:Z,79:xe,80:de},{35:86,75:81,76:te,77:Z,79:xe,80:de},{35:87,75:81,76:te,77:Z,79:xe,80:de},{35:88,75:81,76:te,77:Z,79:xe,80:de},{35:89,75:81,76:te,77:Z,79:xe,80:de},{35:90,75:81,76:te,77:Z,79:xe,80:de},{35:91,75:81,76:te,77:Z,79:xe,80:de},{35:92,75:81,76:te,77:Z,79:xe,80:de},{35:93,75:81,76:te,77:Z,79:xe,80:de},{35:94,75:81,76:te,77:Z,79:xe,80:de},{35:95,75:81,76:te,77:Z,79:xe,80:de},{35:96,75:81,76:te,77:Z,79:xe,80:de},{35:97,75:81,76:te,77:Z,79:xe,80:de},{35:98,75:81,76:te,77:Z,79:xe,80:de},{35:99,75:81,76:te,77:Z,79:xe,80:de},{35:100,75:81,76:te,77:Z,79:xe,80:de},{35:101,75:81,76:te,77:Z,79:xe,80:de},{35:102,75:81,76:te,77:Z,79:xe,80:de},{35:103,75:81,76:te,77:Z,79:xe,80:de},{35:104,75:81,76:te,77:Z,79:xe,80:de},t(Se,[2,59]),{35:105,75:81,76:te,77:Z,79:xe,80:de},{35:106,75:81,76:te,77:Z,79:xe,80:de},{35:107,75:81,76:te,77:Z,79:xe,80:de},{35:108,75:81,76:te,77:Z,79:xe,80:de},{35:109,75:81,76:te,77:Z,79:xe,80:de},{35:110,75:81,76:te,77:Z,79:xe,80:de},{35:111,75:81,76:te,77:Z,79:xe,80:de},{35:112,75:81,76:te,77:Z,79:xe,80:de},{35:113,75:81,76:te,77:Z,79:xe,80:de},{35:114,75:81,76:te,77:Z,79:xe,80:de},{35:115,75:81,76:te,77:Z,79:xe,80:de},{20:116,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:f,40:d,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:T,51:E,52:w,53:k,54:S,55:A,56:L,57:I,58:N,59:C,60:_,61:D,62:M,63:R,64:P,65:B,66:F,67:G,68:$,69:V,70:X,71:Q,72:H,73:ie,74:Y},{12:[1,118],33:[1,117]},{35:119,75:81,76:te,77:Z,79:xe,80:de},{35:120,75:81,76:te,77:Z,79:xe,80:de},{35:121,75:81,76:te,77:Z,79:xe,80:de},{35:122,75:81,76:te,77:Z,79:xe,80:de},{35:123,75:81,76:te,77:Z,79:xe,80:de},{35:124,75:81,76:te,77:Z,79:xe,80:de},{35:125,75:81,76:te,77:Z,79:xe,80:de},{14:[1,126]},{14:[1,127]},{14:[1,128]},{14:[1,129]},{1:[2,8]},t(le,[2,15]),t(ee,[2,17],{21:22,19:130,22:e,23:r,24:n,26:i,28:a}),t(le,[2,37],{19:20,20:21,21:22,43:23,29:49,30:61,32:62,13:131,22:e,23:r,24:n,26:i,28:a,34:s,36:l,37:u,38:h,39:f,40:d,41:p,44:m,45:g,46:y,47:v,48:x,49:b,50:T,51:E,52:w,53:k,54:S,55:A,56:L,57:I,58:N,59:C,60:_,61:D,62:M,63:R,64:P,65:B,66:F,67:G,68:$,69:V,70:X,71:Q,72:H,73:ie,74:Y}),t(J,[2,21]),t(J,[2,22]),t(Se,[2,39]),t(Me,[2,71],{75:81,35:132,76:te,77:Z,79:xe,80:de}),t(ke,[2,73]),{78:[1,133]},t(ke,[2,75]),t(ke,[2,76]),t(Se,[2,40]),t(Se,[2,41]),t(Se,[2,42]),t(Se,[2,43]),t(Se,[2,44]),t(Se,[2,45]),t(Se,[2,46]),t(Se,[2,47]),t(Se,[2,48]),t(Se,[2,49]),t(Se,[2,50]),t(Se,[2,51]),t(Se,[2,52]),t(Se,[2,53]),t(Se,[2,54]),t(Se,[2,55]),t(Se,[2,56]),t(Se,[2,57]),t(Se,[2,58]),t(Se,[2,60]),t(Se,[2,61]),t(Se,[2,62]),t(Se,[2,63]),t(Se,[2,64]),t(Se,[2,65]),t(Se,[2,66]),t(Se,[2,67]),t(Se,[2,68]),t(Se,[2,69]),t(Se,[2,70]),{31:134,42:[1,135]},{12:[1,136]},{33:[1,137]},t(we,[2,28]),t(we,[2,29]),t(we,[2,30]),t(we,[2,31]),t(we,[2,32]),t(we,[2,33]),t(we,[2,34]),{1:[2,9]},{1:[2,10]},{1:[2,11]},{1:[2,12]},t(ee,[2,18]),t(le,[2,38]),t(Me,[2,72]),t(ke,[2,74]),t(Se,[2,24]),t(Se,[2,35]),t(_e,[2,25]),t(_e,[2,26],{12:[1,138]}),t(_e,[2,27])],defaultActions:{2:[2,1],3:[2,2],4:[2,7],5:[2,3],6:[2,4],7:[2,5],8:[2,6],74:[2,8],126:[2,9],127:[2,10],128:[2,11],129:[2,12]},parseError:o(function(Be,Ue){if(Ue.recoverable)this.trace(Be);else{var Ge=new Error(Be);throw Ge.hash=Ue,Ge}},"parseError"),parse:o(function(Be){var Ue=this,Ge=[0],Ne=[],We=[null],j=[],ae=this.table,U="",ce=0,z=0,ne=0,se=2,be=1,pe=j.slice.call(arguments,1),me=Object.create(this.lexer),Re={yy:{}};for(var ge in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ge)&&(Re.yy[ge]=this.yy[ge]);me.setInput(Be,Re.yy),Re.yy.lexer=me,Re.yy.parser=this,typeof me.yylloc>"u"&&(me.yylloc={});var Ie=me.yylloc;j.push(Ie);var qe=me.options&&me.options.ranges;typeof Re.yy.parseError=="function"?this.parseError=Re.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Pe(dt){Ge.length=Ge.length-2*dt,We.length=We.length-dt,j.length=j.length-dt}o(Pe,"popStack");function Xe(){var dt;return dt=Ne.pop()||me.lex()||be,typeof dt!="number"&&(dt instanceof Array&&(Ne=dt,dt=Ne.pop()),dt=Ue.symbols_[dt]||dt),dt}o(Xe,"lex");for(var oe,et,he,ot,Dt,It,wt={},Rt,it,at,Ct;;){if(he=Ge[Ge.length-1],this.defaultActions[he]?ot=this.defaultActions[he]:((oe===null||typeof oe>"u")&&(oe=Xe()),ot=ae[he]&&ae[he][oe]),typeof ot>"u"||!ot.length||!ot[0]){var yt="";Ct=[];for(Rt in ae[he])this.terminals_[Rt]&&Rt>se&&Ct.push("'"+this.terminals_[Rt]+"'");me.showPosition?yt="Parse error on line "+(ce+1)+`: +`+me.showPosition()+` +Expecting `+Ct.join(", ")+", got '"+(this.terminals_[oe]||oe)+"'":yt="Parse error on line "+(ce+1)+": Unexpected "+(oe==be?"end of input":"'"+(this.terminals_[oe]||oe)+"'"),this.parseError(yt,{text:me.match,token:this.terminals_[oe]||oe,line:me.yylineno,loc:Ie,expected:Ct})}if(ot[0]instanceof Array&&ot.length>1)throw new Error("Parse Error: multiple actions possible at state: "+he+", token: "+oe);switch(ot[0]){case 1:Ge.push(oe),We.push(me.yytext),j.push(me.yylloc),Ge.push(ot[1]),oe=null,et?(oe=et,et=null):(z=me.yyleng,U=me.yytext,ce=me.yylineno,Ie=me.yylloc,ne>0&&ne--);break;case 2:if(it=this.productions_[ot[1]][1],wt.$=We[We.length-it],wt._$={first_line:j[j.length-(it||1)].first_line,last_line:j[j.length-1].last_line,first_column:j[j.length-(it||1)].first_column,last_column:j[j.length-1].last_column},qe&&(wt._$.range=[j[j.length-(it||1)].range[0],j[j.length-1].range[1]]),It=this.performAction.apply(wt,[U,z,ce,Re.yy,ot[1],We,j].concat(pe)),typeof It<"u")return It;it&&(Ge=Ge.slice(0,-1*it*2),We=We.slice(0,-1*it),j=j.slice(0,-1*it)),Ge.push(this.productions_[ot[1]][0]),We.push(wt.$),j.push(wt._$),at=ae[Ge[Ge.length-2]][Ge[Ge.length-1]],Ge.push(at);break;case 3:return!0}}return!0},"parse")},fe=(function(){var Te={EOF:1,parseError:o(function(Ue,Ge){if(this.yy.parser)this.yy.parser.parseError(Ue,Ge);else throw new Error(Ue)},"parseError"),setInput:o(function(Be,Ue){return this.yy=Ue||this.yy||{},this._input=Be,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var Be=this._input[0];this.yytext+=Be,this.yyleng++,this.offset++,this.match+=Be,this.matched+=Be;var Ue=Be.match(/(?:\r\n?|\n).*/g);return Ue?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),Be},"input"),unput:o(function(Be){var Ue=Be.length,Ge=Be.split(/(?:\r\n?|\n)/g);this._input=Be+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Ue),this.offset-=Ue;var Ne=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),Ge.length-1&&(this.yylineno-=Ge.length-1);var We=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:Ge?(Ge.length===Ne.length?this.yylloc.first_column:0)+Ne[Ne.length-Ge.length].length-Ge[0].length:this.yylloc.first_column-Ue},this.options.ranges&&(this.yylloc.range=[We[0],We[0]+this.yyleng-Ue]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(Be){this.unput(this.match.slice(Be))},"less"),pastInput:o(function(){var Be=this.matched.substr(0,this.matched.length-this.match.length);return(Be.length>20?"...":"")+Be.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var Be=this.match;return Be.length<20&&(Be+=this._input.substr(0,20-Be.length)),(Be.substr(0,20)+(Be.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var Be=this.pastInput(),Ue=new Array(Be.length+1).join("-");return Be+this.upcomingInput()+` +`+Ue+"^"},"showPosition"),test_match:o(function(Be,Ue){var Ge,Ne,We;if(this.options.backtrack_lexer&&(We={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(We.yylloc.range=this.yylloc.range.slice(0))),Ne=Be[0].match(/(?:\r\n?|\n).*/g),Ne&&(this.yylineno+=Ne.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Ne?Ne[Ne.length-1].length-Ne[Ne.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+Be[0].length},this.yytext+=Be[0],this.match+=Be[0],this.matches=Be,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(Be[0].length),this.matched+=Be[0],Ge=this.performAction.call(this,this.yy,this,Ue,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),Ge)return Ge;if(this._backtrack){for(var j in We)this[j]=We[j];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var Be,Ue,Ge,Ne;this._more||(this.yytext="",this.match="");for(var We=this._currentRules(),j=0;jUe[0].length)){if(Ue=Ge,Ne=j,this.options.backtrack_lexer){if(Be=this.test_match(Ge,We[j]),Be!==!1)return Be;if(this._backtrack){Ue=!1;continue}else return!1}else if(!this.options.flex)break}return Ue?(Be=this.test_match(Ue,We[Ne]),Be!==!1?Be:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var Ue=this.next();return Ue||this.lex()},"lex"),begin:o(function(Ue){this.conditionStack.push(Ue)},"begin"),popState:o(function(){var Ue=this.conditionStack.length-1;return Ue>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(Ue){return Ue=this.conditionStack.length-1-Math.abs(Ue||0),Ue>=0?this.conditionStack[Ue]:"INITIAL"},"topState"),pushState:o(function(Ue){this.begin(Ue)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:o(function(Ue,Ge,Ne,We){var j=We;switch(Ne){case 0:return 6;case 1:return 7;case 2:return 8;case 3:return 9;case 4:return 22;case 5:return 23;case 6:return this.begin("acc_title"),24;break;case 7:return this.popState(),"acc_title_value";break;case 8:return this.begin("acc_descr"),26;break;case 9:return this.popState(),"acc_descr_value";break;case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:break;case 14:c;break;case 15:return 12;case 16:break;case 17:return 11;case 18:return 15;case 19:return 16;case 20:return 17;case 21:return 18;case 22:return this.begin("person_ext"),45;break;case 23:return this.begin("person"),44;break;case 24:return this.begin("system_ext_queue"),51;break;case 25:return this.begin("system_ext_db"),50;break;case 26:return this.begin("system_ext"),49;break;case 27:return this.begin("system_queue"),48;break;case 28:return this.begin("system_db"),47;break;case 29:return this.begin("system"),46;break;case 30:return this.begin("boundary"),37;break;case 31:return this.begin("enterprise_boundary"),34;break;case 32:return this.begin("system_boundary"),36;break;case 33:return this.begin("container_ext_queue"),57;break;case 34:return this.begin("container_ext_db"),56;break;case 35:return this.begin("container_ext"),55;break;case 36:return this.begin("container_queue"),54;break;case 37:return this.begin("container_db"),53;break;case 38:return this.begin("container"),52;break;case 39:return this.begin("container_boundary"),38;break;case 40:return this.begin("component_ext_queue"),63;break;case 41:return this.begin("component_ext_db"),62;break;case 42:return this.begin("component_ext"),61;break;case 43:return this.begin("component_queue"),60;break;case 44:return this.begin("component_db"),59;break;case 45:return this.begin("component"),58;break;case 46:return this.begin("node"),39;break;case 47:return this.begin("node"),39;break;case 48:return this.begin("node_l"),40;break;case 49:return this.begin("node_r"),41;break;case 50:return this.begin("rel"),64;break;case 51:return this.begin("birel"),65;break;case 52:return this.begin("rel_u"),66;break;case 53:return this.begin("rel_u"),66;break;case 54:return this.begin("rel_d"),67;break;case 55:return this.begin("rel_d"),67;break;case 56:return this.begin("rel_l"),68;break;case 57:return this.begin("rel_l"),68;break;case 58:return this.begin("rel_r"),69;break;case 59:return this.begin("rel_r"),69;break;case 60:return this.begin("rel_b"),70;break;case 61:return this.begin("rel_index"),71;break;case 62:return this.begin("update_el_style"),72;break;case 63:return this.begin("update_rel_style"),73;break;case 64:return this.begin("update_layout_config"),74;break;case 65:return"EOF_IN_STRUCT";case 66:return this.begin("attribute"),"ATTRIBUTE_EMPTY";break;case 67:this.begin("attribute");break;case 68:this.popState(),this.popState();break;case 69:return 80;case 70:break;case 71:return 80;case 72:this.begin("string");break;case 73:this.popState();break;case 74:return"STR";case 75:this.begin("string_kv");break;case 76:return this.begin("string_kv_key"),"STR_KEY";break;case 77:this.popState(),this.begin("string_kv_value");break;case 78:return"STR_VALUE";case 79:this.popState(),this.popState();break;case 80:return"STR";case 81:return"LBRACE";case 82:return"RBRACE";case 83:return"SPACE";case 84:return"EOL";case 85:return 14}},"anonymous"),rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:title\s[^#\n;]+)/,/^(?:accDescription\s[^#\n;]+)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:C4Context\b)/,/^(?:C4Container\b)/,/^(?:C4Component\b)/,/^(?:C4Dynamic\b)/,/^(?:C4Deployment\b)/,/^(?:Person_Ext\b)/,/^(?:Person\b)/,/^(?:SystemQueue_Ext\b)/,/^(?:SystemDb_Ext\b)/,/^(?:System_Ext\b)/,/^(?:SystemQueue\b)/,/^(?:SystemDb\b)/,/^(?:System\b)/,/^(?:Boundary\b)/,/^(?:Enterprise_Boundary\b)/,/^(?:System_Boundary\b)/,/^(?:ContainerQueue_Ext\b)/,/^(?:ContainerDb_Ext\b)/,/^(?:Container_Ext\b)/,/^(?:ContainerQueue\b)/,/^(?:ContainerDb\b)/,/^(?:Container\b)/,/^(?:Container_Boundary\b)/,/^(?:ComponentQueue_Ext\b)/,/^(?:ComponentDb_Ext\b)/,/^(?:Component_Ext\b)/,/^(?:ComponentQueue\b)/,/^(?:ComponentDb\b)/,/^(?:Component\b)/,/^(?:Deployment_Node\b)/,/^(?:Node\b)/,/^(?:Node_L\b)/,/^(?:Node_R\b)/,/^(?:Rel\b)/,/^(?:BiRel\b)/,/^(?:Rel_Up\b)/,/^(?:Rel_U\b)/,/^(?:Rel_Down\b)/,/^(?:Rel_D\b)/,/^(?:Rel_Left\b)/,/^(?:Rel_L\b)/,/^(?:Rel_Right\b)/,/^(?:Rel_R\b)/,/^(?:Rel_Back\b)/,/^(?:RelIndex\b)/,/^(?:UpdateElementStyle\b)/,/^(?:UpdateRelStyle\b)/,/^(?:UpdateLayoutConfig\b)/,/^(?:$)/,/^(?:[(][ ]*[,])/,/^(?:[(])/,/^(?:[)])/,/^(?:,,)/,/^(?:,)/,/^(?:[ ]*["]["])/,/^(?:[ ]*["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:[ ]*[\$])/,/^(?:[^=]*)/,/^(?:[=][ ]*["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:[^,]+)/,/^(?:\{)/,/^(?:\})/,/^(?:[\s]+)/,/^(?:[\n\r]+)/,/^(?:$)/],conditions:{acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},string_kv_value:{rules:[78,79],inclusive:!1},string_kv_key:{rules:[77],inclusive:!1},string_kv:{rules:[76],inclusive:!1},string:{rules:[73,74],inclusive:!1},attribute:{rules:[68,69,70,71,72,75,80],inclusive:!1},update_layout_config:{rules:[65,66,67,68],inclusive:!1},update_rel_style:{rules:[65,66,67,68],inclusive:!1},update_el_style:{rules:[65,66,67,68],inclusive:!1},rel_b:{rules:[65,66,67,68],inclusive:!1},rel_r:{rules:[65,66,67,68],inclusive:!1},rel_l:{rules:[65,66,67,68],inclusive:!1},rel_d:{rules:[65,66,67,68],inclusive:!1},rel_u:{rules:[65,66,67,68],inclusive:!1},rel_bi:{rules:[],inclusive:!1},rel:{rules:[65,66,67,68],inclusive:!1},node_r:{rules:[65,66,67,68],inclusive:!1},node_l:{rules:[65,66,67,68],inclusive:!1},node:{rules:[65,66,67,68],inclusive:!1},index:{rules:[],inclusive:!1},rel_index:{rules:[65,66,67,68],inclusive:!1},component_ext_queue:{rules:[65,66,67,68],inclusive:!1},component_ext_db:{rules:[65,66,67,68],inclusive:!1},component_ext:{rules:[65,66,67,68],inclusive:!1},component_queue:{rules:[65,66,67,68],inclusive:!1},component_db:{rules:[65,66,67,68],inclusive:!1},component:{rules:[65,66,67,68],inclusive:!1},container_boundary:{rules:[65,66,67,68],inclusive:!1},container_ext_queue:{rules:[65,66,67,68],inclusive:!1},container_ext_db:{rules:[65,66,67,68],inclusive:!1},container_ext:{rules:[65,66,67,68],inclusive:!1},container_queue:{rules:[65,66,67,68],inclusive:!1},container_db:{rules:[65,66,67,68],inclusive:!1},container:{rules:[65,66,67,68],inclusive:!1},birel:{rules:[65,66,67,68],inclusive:!1},system_boundary:{rules:[65,66,67,68],inclusive:!1},enterprise_boundary:{rules:[65,66,67,68],inclusive:!1},boundary:{rules:[65,66,67,68],inclusive:!1},system_ext_queue:{rules:[65,66,67,68],inclusive:!1},system_ext_db:{rules:[65,66,67,68],inclusive:!1},system_ext:{rules:[65,66,67,68],inclusive:!1},system_queue:{rules:[65,66,67,68],inclusive:!1},system_db:{rules:[65,66,67,68],inclusive:!1},system:{rules:[65,66,67,68],inclusive:!1},person_ext:{rules:[65,66,67,68],inclusive:!1},person:{rules:[65,66,67,68],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,81,82,83,84,85],inclusive:!0}}};return Te})();$e.lexer=fe;function Ke(){this.yy={}}return o(Ke,"Parser"),Ke.prototype=$e,$e.Parser=Ke,new Ke})();F2.parser=F2;EX=F2});var G8e,V8e,Zr,Kc,Ti=O(()=>{"use strict";xt();G8e=o(function(t,e){for(let r of e)t.attr(r[0],r[1])},"d3Attrs"),V8e=o(function(t,e,r){let n=new Map;return r?(n.set("width","100%"),n.set("style",`max-width: ${e}px;`)):(n.set("height",t),n.set("width",e)),n},"calculateSvgSizeAttrs"),Zr=o(function(t,e,r,n){let i=V8e(e,r,n);G8e(t,i)},"configureSvgSize"),Kc=o(function(t,e,r,n){let i=e.node().getBBox(),a=i.width,s=i.height;K.info(`SVG bounds: ${a}x${s}`,i);let l=0,u=0;K.info(`Graph bounds: ${l}x${u}`,t),l=a+r*2,u=s+r*2,K.info(`Calculated bounds: ${l}x${u}`),Zr(e,u,l,n);let h=`${i.x-r} ${i.y-r} ${i.width+2*r} ${i.height+2*r}`;e.attr("viewBox",h)},"setupGraphViewbox")});var Pw,q8e,SX,CX,wD=O(()=>{"use strict";xt();Pw={},q8e=o((t,e,r)=>{let n="";return t in Pw&&Pw[t]?n=Pw[t](r):K.warn(`No theme found for ${t}`),` & { + font-family: ${r.fontFamily}; + font-size: ${r.fontSize}; + fill: ${r.textColor} + } + @keyframes edge-animation-frame { + from { + stroke-dashoffset: 0; + } + } + @keyframes dash { + to { + stroke-dashoffset: 0; + } + } + & .edge-animation-slow { + stroke-dasharray: 9,5 !important; + stroke-dashoffset: 900; + animation: dash 50s linear infinite; + stroke-linecap: round; + } + & .edge-animation-fast { + stroke-dasharray: 9,5 !important; + stroke-dashoffset: 900; + animation: dash 20s linear infinite; + stroke-linecap: round; + } + /* Classes common for multiple diagrams */ + + & .error-icon { + fill: ${r.errorBkgColor}; + } + & .error-text { + fill: ${r.errorTextColor}; + stroke: ${r.errorTextColor}; + } + + & .edge-thickness-normal { + stroke-width: 1px; + } + & .edge-thickness-thick { + stroke-width: 3.5px + } + & .edge-pattern-solid { + stroke-dasharray: 0; + } + & .edge-thickness-invisible { + stroke-width: 0; + fill: none; + } + & .edge-pattern-dashed{ + stroke-dasharray: 3; + } + .edge-pattern-dotted { + stroke-dasharray: 2; + } + + & .marker { + fill: ${r.lineColor}; + stroke: ${r.lineColor}; + } + & .marker.cross { + stroke: ${r.lineColor}; + } + + & svg { + font-family: ${r.fontFamily}; + font-size: ${r.fontSize}; + } + & p { + margin: 0 + } + + ${n} + + ${e} +`},"getStyles"),SX=o((t,e)=>{e!==void 0&&(Pw[t]=e)},"addStylesForDiagram"),CX=q8e});var $2={};vr($2,{clear:()=>_r,getAccDescription:()=>Br,getAccTitle:()=>Or,getDiagramTitle:()=>Fr,setAccDescription:()=>Pr,setAccTitle:()=>Lr,setDiagramTitle:()=>zr});var kD,ED,SD,CD,_r,Lr,Or,Pr,Br,zr,Fr,si=O(()=>{"use strict";Ur();$r();kD="",ED="",SD="",CD=o(t=>wr(t,Zt()),"sanitizeText"),_r=o(()=>{kD="",SD="",ED=""},"clear"),Lr=o(t=>{kD=CD(t).replace(/^\s+/g,"")},"setAccTitle"),Or=o(()=>kD,"getAccTitle"),Pr=o(t=>{SD=CD(t).replace(/\n\s+/g,` +`)},"setAccDescription"),Br=o(()=>SD,"getAccDescription"),zr=o(t=>{ED=CD(t)},"setDiagramTitle"),Fr=o(()=>ED,"getDiagramTitle")});var AX,U8e,ve,z2,Fw,G2,_D,W8e,Bw,$p,V2,AD,jt=O(()=>{"use strict";Fp();xt();$r();Ur();Ti();wD();si();AX=K,U8e=h2,ve=Zt,z2=ew,Fw=vf,G2=o(t=>wr(t,ve()),"sanitizeText"),_D=Kc,W8e=o(()=>$2,"getCommonDb"),Bw={},$p=o((t,e,r)=>{Bw[t]&&AX.warn(`Diagram with id ${t} already registered. Overwriting.`),Bw[t]=e,r&&bD(t,r),SX(t,e.styles),e.injectUtils?.(AX,U8e,ve,G2,_D,W8e(),()=>{})},"registerDiagram"),V2=o(t=>{if(t in Bw)return Bw[t];throw new AD(t)},"getDiagram"),AD=class extends Error{static{o(this,"DiagramNotFoundError")}constructor(e){super(`Diagram ${e} not found.`)}}});var ec,Ef,As,Jl,Qc,q2,DD,RD,$w,zw,_X,H8e,Y8e,j8e,X8e,K8e,Q8e,Z8e,J8e,eDe,tDe,rDe,nDe,iDe,aDe,sDe,oDe,lDe,DX,cDe,uDe,RX,hDe,fDe,dDe,pDe,Sf,mDe,gDe,yDe,vDe,xDe,U2,LD=O(()=>{"use strict";jt();Ur();si();ec=[],Ef=[""],As="global",Jl="",Qc=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],q2=[],DD="",RD=!1,$w=4,zw=2,H8e=o(function(){return _X},"getC4Type"),Y8e=o(function(t){_X=wr(t,ve())},"setC4Type"),j8e=o(function(t,e,r,n,i,a,s,l,u){if(t==null||e===void 0||e===null||r===void 0||r===null||n===void 0||n===null)return;let h={},f=q2.find(d=>d.from===e&&d.to===r);if(f?h=f:q2.push(h),h.type=t,h.from=e,h.to=r,h.label={text:n},i==null)h.techn={text:""};else if(typeof i=="object"){let[d,p]=Object.entries(i)[0];h[d]={text:p}}else h.techn={text:i};if(a==null)h.descr={text:""};else if(typeof a=="object"){let[d,p]=Object.entries(a)[0];h[d]={text:p}}else h.descr={text:a};if(typeof s=="object"){let[d,p]=Object.entries(s)[0];h[d]=p}else h.sprite=s;if(typeof l=="object"){let[d,p]=Object.entries(l)[0];h[d]=p}else h.tags=l;if(typeof u=="object"){let[d,p]=Object.entries(u)[0];h[d]=p}else h.link=u;h.wrap=Sf()},"addRel"),X8e=o(function(t,e,r,n,i,a,s){if(e===null||r===null)return;let l={},u=ec.find(h=>h.alias===e);if(u&&e===u.alias?l=u:(l.alias=e,ec.push(l)),r==null?l.label={text:""}:l.label={text:r},n==null)l.descr={text:""};else if(typeof n=="object"){let[h,f]=Object.entries(n)[0];l[h]={text:f}}else l.descr={text:n};if(typeof i=="object"){let[h,f]=Object.entries(i)[0];l[h]=f}else l.sprite=i;if(typeof a=="object"){let[h,f]=Object.entries(a)[0];l[h]=f}else l.tags=a;if(typeof s=="object"){let[h,f]=Object.entries(s)[0];l[h]=f}else l.link=s;l.typeC4Shape={text:t},l.parentBoundary=As,l.wrap=Sf()},"addPersonOrSystem"),K8e=o(function(t,e,r,n,i,a,s,l){if(e===null||r===null)return;let u={},h=ec.find(f=>f.alias===e);if(h&&e===h.alias?u=h:(u.alias=e,ec.push(u)),r==null?u.label={text:""}:u.label={text:r},n==null)u.techn={text:""};else if(typeof n=="object"){let[f,d]=Object.entries(n)[0];u[f]={text:d}}else u.techn={text:n};if(i==null)u.descr={text:""};else if(typeof i=="object"){let[f,d]=Object.entries(i)[0];u[f]={text:d}}else u.descr={text:i};if(typeof a=="object"){let[f,d]=Object.entries(a)[0];u[f]=d}else u.sprite=a;if(typeof s=="object"){let[f,d]=Object.entries(s)[0];u[f]=d}else u.tags=s;if(typeof l=="object"){let[f,d]=Object.entries(l)[0];u[f]=d}else u.link=l;u.wrap=Sf(),u.typeC4Shape={text:t},u.parentBoundary=As},"addContainer"),Q8e=o(function(t,e,r,n,i,a,s,l){if(e===null||r===null)return;let u={},h=ec.find(f=>f.alias===e);if(h&&e===h.alias?u=h:(u.alias=e,ec.push(u)),r==null?u.label={text:""}:u.label={text:r},n==null)u.techn={text:""};else if(typeof n=="object"){let[f,d]=Object.entries(n)[0];u[f]={text:d}}else u.techn={text:n};if(i==null)u.descr={text:""};else if(typeof i=="object"){let[f,d]=Object.entries(i)[0];u[f]={text:d}}else u.descr={text:i};if(typeof a=="object"){let[f,d]=Object.entries(a)[0];u[f]=d}else u.sprite=a;if(typeof s=="object"){let[f,d]=Object.entries(s)[0];u[f]=d}else u.tags=s;if(typeof l=="object"){let[f,d]=Object.entries(l)[0];u[f]=d}else u.link=l;u.wrap=Sf(),u.typeC4Shape={text:t},u.parentBoundary=As},"addComponent"),Z8e=o(function(t,e,r,n,i){if(t===null||e===null)return;let a={},s=Qc.find(l=>l.alias===t);if(s&&t===s.alias?a=s:(a.alias=t,Qc.push(a)),e==null?a.label={text:""}:a.label={text:e},r==null)a.type={text:"system"};else if(typeof r=="object"){let[l,u]=Object.entries(r)[0];a[l]={text:u}}else a.type={text:r};if(typeof n=="object"){let[l,u]=Object.entries(n)[0];a[l]=u}else a.tags=n;if(typeof i=="object"){let[l,u]=Object.entries(i)[0];a[l]=u}else a.link=i;a.parentBoundary=As,a.wrap=Sf(),Jl=As,As=t,Ef.push(Jl)},"addPersonOrSystemBoundary"),J8e=o(function(t,e,r,n,i){if(t===null||e===null)return;let a={},s=Qc.find(l=>l.alias===t);if(s&&t===s.alias?a=s:(a.alias=t,Qc.push(a)),e==null?a.label={text:""}:a.label={text:e},r==null)a.type={text:"container"};else if(typeof r=="object"){let[l,u]=Object.entries(r)[0];a[l]={text:u}}else a.type={text:r};if(typeof n=="object"){let[l,u]=Object.entries(n)[0];a[l]=u}else a.tags=n;if(typeof i=="object"){let[l,u]=Object.entries(i)[0];a[l]=u}else a.link=i;a.parentBoundary=As,a.wrap=Sf(),Jl=As,As=t,Ef.push(Jl)},"addContainerBoundary"),eDe=o(function(t,e,r,n,i,a,s,l){if(e===null||r===null)return;let u={},h=Qc.find(f=>f.alias===e);if(h&&e===h.alias?u=h:(u.alias=e,Qc.push(u)),r==null?u.label={text:""}:u.label={text:r},n==null)u.type={text:"node"};else if(typeof n=="object"){let[f,d]=Object.entries(n)[0];u[f]={text:d}}else u.type={text:n};if(i==null)u.descr={text:""};else if(typeof i=="object"){let[f,d]=Object.entries(i)[0];u[f]={text:d}}else u.descr={text:i};if(typeof s=="object"){let[f,d]=Object.entries(s)[0];u[f]=d}else u.tags=s;if(typeof l=="object"){let[f,d]=Object.entries(l)[0];u[f]=d}else u.link=l;u.nodeType=t,u.parentBoundary=As,u.wrap=Sf(),Jl=As,As=e,Ef.push(Jl)},"addDeploymentNode"),tDe=o(function(){As=Jl,Ef.pop(),Jl=Ef.pop(),Ef.push(Jl)},"popBoundaryParseStack"),rDe=o(function(t,e,r,n,i,a,s,l,u,h,f){let d=ec.find(p=>p.alias===e);if(!(d===void 0&&(d=Qc.find(p=>p.alias===e),d===void 0))){if(r!=null)if(typeof r=="object"){let[p,m]=Object.entries(r)[0];d[p]=m}else d.bgColor=r;if(n!=null)if(typeof n=="object"){let[p,m]=Object.entries(n)[0];d[p]=m}else d.fontColor=n;if(i!=null)if(typeof i=="object"){let[p,m]=Object.entries(i)[0];d[p]=m}else d.borderColor=i;if(a!=null)if(typeof a=="object"){let[p,m]=Object.entries(a)[0];d[p]=m}else d.shadowing=a;if(s!=null)if(typeof s=="object"){let[p,m]=Object.entries(s)[0];d[p]=m}else d.shape=s;if(l!=null)if(typeof l=="object"){let[p,m]=Object.entries(l)[0];d[p]=m}else d.sprite=l;if(u!=null)if(typeof u=="object"){let[p,m]=Object.entries(u)[0];d[p]=m}else d.techn=u;if(h!=null)if(typeof h=="object"){let[p,m]=Object.entries(h)[0];d[p]=m}else d.legendText=h;if(f!=null)if(typeof f=="object"){let[p,m]=Object.entries(f)[0];d[p]=m}else d.legendSprite=f}},"updateElStyle"),nDe=o(function(t,e,r,n,i,a,s){let l=q2.find(u=>u.from===e&&u.to===r);if(l!==void 0){if(n!=null)if(typeof n=="object"){let[u,h]=Object.entries(n)[0];l[u]=h}else l.textColor=n;if(i!=null)if(typeof i=="object"){let[u,h]=Object.entries(i)[0];l[u]=h}else l.lineColor=i;if(a!=null)if(typeof a=="object"){let[u,h]=Object.entries(a)[0];l[u]=parseInt(h)}else l.offsetX=parseInt(a);if(s!=null)if(typeof s=="object"){let[u,h]=Object.entries(s)[0];l[u]=parseInt(h)}else l.offsetY=parseInt(s)}},"updateRelStyle"),iDe=o(function(t,e,r){let n=$w,i=zw;if(typeof e=="object"){let a=Object.values(e)[0];n=parseInt(a)}else n=parseInt(e);if(typeof r=="object"){let a=Object.values(r)[0];i=parseInt(a)}else i=parseInt(r);n>=1&&($w=n),i>=1&&(zw=i)},"updateLayoutConfig"),aDe=o(function(){return $w},"getC4ShapeInRow"),sDe=o(function(){return zw},"getC4BoundaryInRow"),oDe=o(function(){return As},"getCurrentBoundaryParse"),lDe=o(function(){return Jl},"getParentBoundaryParse"),DX=o(function(t){return t==null?ec:ec.filter(e=>e.parentBoundary===t)},"getC4ShapeArray"),cDe=o(function(t){return ec.find(e=>e.alias===t)},"getC4Shape"),uDe=o(function(t){return Object.keys(DX(t))},"getC4ShapeKeys"),RX=o(function(t){return t==null?Qc:Qc.filter(e=>e.parentBoundary===t)},"getBoundaries"),hDe=RX,fDe=o(function(){return q2},"getRels"),dDe=o(function(){return DD},"getTitle"),pDe=o(function(t){RD=t},"setWrap"),Sf=o(function(){return RD},"autoWrap"),mDe=o(function(){ec=[],Qc=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],Jl="",As="global",Ef=[""],q2=[],Ef=[""],DD="",RD=!1,$w=4,zw=2},"clear"),gDe={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25},yDe={FILLED:0,OPEN:1},vDe={LEFTOF:0,RIGHTOF:1,OVER:2},xDe=o(function(t){DD=wr(t,ve())},"setTitle"),U2={addPersonOrSystem:X8e,addPersonOrSystemBoundary:Z8e,addContainer:K8e,addContainerBoundary:J8e,addComponent:Q8e,addDeploymentNode:eDe,popBoundaryParseStack:tDe,addRel:j8e,updateElStyle:rDe,updateRelStyle:nDe,updateLayoutConfig:iDe,autoWrap:Sf,setWrap:pDe,getC4ShapeArray:DX,getC4Shape:cDe,getC4ShapeKeys:uDe,getBoundaries:RX,getBoundarys:hDe,getCurrentBoundaryParse:oDe,getParentBoundaryParse:lDe,getRels:fDe,getTitle:dDe,getC4Type:H8e,getC4ShapeInRow:aDe,getC4BoundaryInRow:sDe,setAccTitle:Lr,getAccTitle:Or,getAccDescription:Br,setAccDescription:Pr,getConfig:o(()=>ve().c4,"getConfig"),clear:mDe,LINETYPE:gDe,ARROWTYPE:yDe,PLACEMENT:vDe,setTitle:xDe,setC4Type:Y8e}});function zp(t,e){return t==null||e==null?NaN:te?1:t>=e?0:NaN}var ND=O(()=>{"use strict";o(zp,"ascending")});function MD(t,e){return t==null||e==null?NaN:et?1:e>=t?0:NaN}var LX=O(()=>{"use strict";o(MD,"descending")});function Gp(t){let e,r,n;t.length!==2?(e=zp,r=o((l,u)=>zp(t(l),u),"compare2"),n=o((l,u)=>t(l)-u,"delta")):(e=t===zp||t===MD?t:bDe,r=t,n=t);function i(l,u,h=0,f=l.length){if(h>>1;r(l[d],u)<0?h=d+1:f=d}while(h>>1;r(l[d],u)<=0?h=d+1:f=d}while(hh&&n(l[d-1],u)>-n(l[d],u)?d-1:d}return o(s,"center"),{left:i,center:s,right:a}}function bDe(){return 0}var ID=O(()=>{"use strict";ND();LX();o(Gp,"bisector");o(bDe,"zero")});function OD(t){return t===null?NaN:+t}var NX=O(()=>{"use strict";o(OD,"number")});var MX,IX,TDe,wDe,PD,OX=O(()=>{"use strict";ND();ID();NX();MX=Gp(zp),IX=MX.right,TDe=MX.left,wDe=Gp(OD).center,PD=IX});function PX({_intern:t,_key:e},r){let n=e(r);return t.has(n)?t.get(n):r}function kDe({_intern:t,_key:e},r){let n=e(r);return t.has(n)?t.get(n):(t.set(n,r),r)}function EDe({_intern:t,_key:e},r){let n=e(r);return t.has(n)&&(r=t.get(n),t.delete(n)),r}function SDe(t){return t!==null&&typeof t=="object"?t.valueOf():t}var xg,BX=O(()=>{"use strict";xg=class extends Map{static{o(this,"InternMap")}constructor(e,r=SDe){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:r}}),e!=null)for(let[n,i]of e)this.set(n,i)}get(e){return super.get(PX(this,e))}has(e){return super.has(PX(this,e))}set(e,r){return super.set(kDe(this,e),r)}delete(e){return super.delete(EDe(this,e))}};o(PX,"intern_get");o(kDe,"intern_set");o(EDe,"intern_delete");o(SDe,"keyof")});function Gw(t,e,r){let n=(e-t)/Math.max(0,r),i=Math.floor(Math.log10(n)),a=n/Math.pow(10,i),s=a>=CDe?10:a>=ADe?5:a>=_De?2:1,l,u,h;return i<0?(h=Math.pow(10,-i)/s,l=Math.round(t*h),u=Math.round(e*h),l/he&&--u,h=-h):(h=Math.pow(10,i)*s,l=Math.round(t/h),u=Math.round(e/h),l*he&&--u),u0))return[];if(t===e)return[t];let n=e=i))return[];let l=a-i+1,u=new Array(l);if(n)if(s<0)for(let h=0;h{"use strict";CDe=Math.sqrt(50),ADe=Math.sqrt(10),_De=Math.sqrt(2);o(Gw,"tickSpec");o(Vw,"ticks");o(W2,"tickIncrement");o(bg,"tickStep")});function qw(t,e){let r;if(e===void 0)for(let n of t)n!=null&&(r=n)&&(r=n);else{let n=-1;for(let i of t)(i=e(i,++n,t))!=null&&(r=i)&&(r=i)}return r}var $X=O(()=>{"use strict";o(qw,"max")});function Uw(t,e){let r;if(e===void 0)for(let n of t)n!=null&&(r>n||r===void 0&&n>=n)&&(r=n);else{let n=-1;for(let i of t)(i=e(i,++n,t))!=null&&(r>i||r===void 0&&i>=i)&&(r=i)}return r}var zX=O(()=>{"use strict";o(Uw,"min")});function Ww(t,e,r){t=+t,e=+e,r=(i=arguments.length)<2?(e=t,t=0,1):i<3?1:+r;for(var n=-1,i=Math.max(0,Math.ceil((e-t)/r))|0,a=new Array(i);++n{"use strict";o(Ww,"range")});var Cf=O(()=>{"use strict";OX();ID();$X();zX();GX();FX();BX()});function BD(t){return t}var VX=O(()=>{"use strict";o(BD,"default")});function DDe(t){return"translate("+t+",0)"}function RDe(t){return"translate(0,"+t+")"}function LDe(t){return e=>+t(e)}function NDe(t,e){return e=Math.max(0,t.bandwidth()-e*2)/2,t.round()&&(e=Math.round(e)),r=>+t(r)+e}function MDe(){return!this.__axis}function UX(t,e){var r=[],n=null,i=null,a=6,s=6,l=3,u=typeof window<"u"&&window.devicePixelRatio>1?0:.5,h=t===Yw||t===Hw?-1:1,f=t===Hw||t===FD?"x":"y",d=t===Yw||t===$D?DDe:RDe;function p(m){var g=n??(e.ticks?e.ticks.apply(e,r):e.domain()),y=i??(e.tickFormat?e.tickFormat.apply(e,r):BD),v=Math.max(a,0)+l,x=e.range(),b=+x[0]+u,T=+x[x.length-1]+u,E=(e.bandwidth?NDe:LDe)(e.copy(),u),w=m.selection?m.selection():m,k=w.selectAll(".domain").data([null]),S=w.selectAll(".tick").data(g,e).order(),A=S.exit(),L=S.enter().append("g").attr("class","tick"),I=S.select("line"),N=S.select("text");k=k.merge(k.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),S=S.merge(L),I=I.merge(L.append("line").attr("stroke","currentColor").attr(f+"2",h*a)),N=N.merge(L.append("text").attr("fill","currentColor").attr(f,h*v).attr("dy",t===Yw?"0em":t===$D?"0.71em":"0.32em")),m!==w&&(k=k.transition(m),S=S.transition(m),I=I.transition(m),N=N.transition(m),A=A.transition(m).attr("opacity",qX).attr("transform",function(C){return isFinite(C=E(C))?d(C+u):this.getAttribute("transform")}),L.attr("opacity",qX).attr("transform",function(C){var _=this.parentNode.__axis;return d((_&&isFinite(_=_(C))?_:E(C))+u)})),A.remove(),k.attr("d",t===Hw||t===FD?s?"M"+h*s+","+b+"H"+u+"V"+T+"H"+h*s:"M"+u+","+b+"V"+T:s?"M"+b+","+h*s+"V"+u+"H"+T+"V"+h*s:"M"+b+","+u+"H"+T),S.attr("opacity",1).attr("transform",function(C){return d(E(C)+u)}),I.attr(f+"2",h*a),N.attr(f,h*v).text(y),w.filter(MDe).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===FD?"start":t===Hw?"end":"middle"),w.each(function(){this.__axis=E})}return o(p,"axis"),p.scale=function(m){return arguments.length?(e=m,p):e},p.ticks=function(){return r=Array.from(arguments),p},p.tickArguments=function(m){return arguments.length?(r=m==null?[]:Array.from(m),p):r.slice()},p.tickValues=function(m){return arguments.length?(n=m==null?null:Array.from(m),p):n&&n.slice()},p.tickFormat=function(m){return arguments.length?(i=m,p):i},p.tickSize=function(m){return arguments.length?(a=s=+m,p):a},p.tickSizeInner=function(m){return arguments.length?(a=+m,p):a},p.tickSizeOuter=function(m){return arguments.length?(s=+m,p):s},p.tickPadding=function(m){return arguments.length?(l=+m,p):l},p.offset=function(m){return arguments.length?(u=+m,p):u},p}function zD(t){return UX(Yw,t)}function GD(t){return UX($D,t)}var Yw,FD,$D,Hw,qX,WX=O(()=>{"use strict";VX();Yw=1,FD=2,$D=3,Hw=4,qX=1e-6;o(DDe,"translateX");o(RDe,"translateY");o(LDe,"number");o(NDe,"center");o(MDe,"entering");o(UX,"axis");o(zD,"axisTop");o(GD,"axisBottom")});var HX=O(()=>{"use strict";WX()});function jX(){for(var t=0,e=arguments.length,r={},n;t=0&&(n=r.slice(i+1),r=r.slice(0,i)),r&&!e.hasOwnProperty(r))throw new Error("unknown type: "+r);return{type:r,name:n}})}function PDe(t,e){for(var r=0,n=t.length,i;r{"use strict";IDe={value:o(()=>{},"value")};o(jX,"dispatch");o(jw,"Dispatch");o(ODe,"parseTypenames");jw.prototype=jX.prototype={constructor:jw,on:o(function(t,e){var r=this._,n=ODe(t+"",r),i,a=-1,s=n.length;if(arguments.length<2){for(;++a0)for(var r=new Array(i),n=0,i,a;n{"use strict";XX()});var Xw,UD,WD=O(()=>{"use strict";Xw="http://www.w3.org/1999/xhtml",UD={svg:"http://www.w3.org/2000/svg",xhtml:Xw,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"}});function Zc(t){var e=t+="",r=e.indexOf(":");return r>=0&&(e=t.slice(0,r))!=="xmlns"&&(t=t.slice(r+1)),UD.hasOwnProperty(e)?{space:UD[e],local:t}:t}var Kw=O(()=>{"use strict";WD();o(Zc,"default")});function BDe(t){return function(){var e=this.ownerDocument,r=this.namespaceURI;return r===Xw&&e.documentElement.namespaceURI===Xw?e.createElement(t):e.createElementNS(r,t)}}function FDe(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function H2(t){var e=Zc(t);return(e.local?FDe:BDe)(e)}var HD=O(()=>{"use strict";Kw();WD();o(BDe,"creatorInherit");o(FDe,"creatorFixed");o(H2,"default")});function $De(){}function Af(t){return t==null?$De:function(){return this.querySelector(t)}}var Qw=O(()=>{"use strict";o($De,"none");o(Af,"default")});function YD(t){typeof t!="function"&&(t=Af(t));for(var e=this._groups,r=e.length,n=new Array(r),i=0;i{"use strict";tc();Qw();o(YD,"default")});function jD(t){return t==null?[]:Array.isArray(t)?t:Array.from(t)}var QX=O(()=>{"use strict";o(jD,"array")});function zDe(){return[]}function Tg(t){return t==null?zDe:function(){return this.querySelectorAll(t)}}var XD=O(()=>{"use strict";o(zDe,"empty");o(Tg,"default")});function GDe(t){return function(){return jD(t.apply(this,arguments))}}function KD(t){typeof t=="function"?t=GDe(t):t=Tg(t);for(var e=this._groups,r=e.length,n=[],i=[],a=0;a{"use strict";tc();QX();XD();o(GDe,"arrayAll");o(KD,"default")});function wg(t){return function(){return this.matches(t)}}function Zw(t){return function(e){return e.matches(t)}}var Y2=O(()=>{"use strict";o(wg,"default");o(Zw,"childMatcher")});function qDe(t){return function(){return VDe.call(this.children,t)}}function UDe(){return this.firstElementChild}function QD(t){return this.select(t==null?UDe:qDe(typeof t=="function"?t:Zw(t)))}var VDe,JX=O(()=>{"use strict";Y2();VDe=Array.prototype.find;o(qDe,"childFind");o(UDe,"childFirst");o(QD,"default")});function HDe(){return Array.from(this.children)}function YDe(t){return function(){return WDe.call(this.children,t)}}function ZD(t){return this.selectAll(t==null?HDe:YDe(typeof t=="function"?t:Zw(t)))}var WDe,eK=O(()=>{"use strict";Y2();WDe=Array.prototype.filter;o(HDe,"children");o(YDe,"childrenFilter");o(ZD,"default")});function JD(t){typeof t!="function"&&(t=wg(t));for(var e=this._groups,r=e.length,n=new Array(r),i=0;i{"use strict";tc();Y2();o(JD,"default")});function j2(t){return new Array(t.length)}var eR=O(()=>{"use strict";o(j2,"default")});function tR(){return new Di(this._enter||this._groups.map(j2),this._parents)}function X2(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}var rR=O(()=>{"use strict";eR();tc();o(tR,"default");o(X2,"EnterNode");X2.prototype={constructor:X2,appendChild:o(function(t){return this._parent.insertBefore(t,this._next)},"appendChild"),insertBefore:o(function(t,e){return this._parent.insertBefore(t,e)},"insertBefore"),querySelector:o(function(t){return this._parent.querySelector(t)},"querySelector"),querySelectorAll:o(function(t){return this._parent.querySelectorAll(t)},"querySelectorAll")}});function nR(t){return function(){return t}}var rK=O(()=>{"use strict";o(nR,"default")});function jDe(t,e,r,n,i,a){for(var s=0,l,u=e.length,h=a.length;s=T&&(T=b+1);!(w=v[T])&&++T{"use strict";tc();rR();rK();o(jDe,"bindIndex");o(XDe,"bindKey");o(KDe,"datum");o(iR,"default");o(QDe,"arraylike")});function aR(){return new Di(this._exit||this._groups.map(j2),this._parents)}var iK=O(()=>{"use strict";eR();tc();o(aR,"default")});function sR(t,e,r){var n=this.enter(),i=this,a=this.exit();return typeof t=="function"?(n=t(n),n&&(n=n.selection())):n=n.append(t+""),e!=null&&(i=e(i),i&&(i=i.selection())),r==null?a.remove():r(a),n&&i?n.merge(i).order():i}var aK=O(()=>{"use strict";o(sR,"default")});function oR(t){for(var e=t.selection?t.selection():t,r=this._groups,n=e._groups,i=r.length,a=n.length,s=Math.min(i,a),l=new Array(i),u=0;u{"use strict";tc();o(oR,"default")});function lR(){for(var t=this._groups,e=-1,r=t.length;++e=0;)(s=n[i])&&(a&&s.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(s,a),a=s);return this}var oK=O(()=>{"use strict";o(lR,"default")});function cR(t){t||(t=ZDe);function e(d,p){return d&&p?t(d.__data__,p.__data__):!d-!p}o(e,"compareNode");for(var r=this._groups,n=r.length,i=new Array(n),a=0;ae?1:t>=e?0:NaN}var lK=O(()=>{"use strict";tc();o(cR,"default");o(ZDe,"ascending")});function uR(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}var cK=O(()=>{"use strict";o(uR,"default")});function hR(){return Array.from(this)}var uK=O(()=>{"use strict";o(hR,"default")});function fR(){for(var t=this._groups,e=0,r=t.length;e{"use strict";o(fR,"default")});function dR(){let t=0;for(let e of this)++t;return t}var fK=O(()=>{"use strict";o(dR,"default")});function pR(){return!this.node()}var dK=O(()=>{"use strict";o(pR,"default")});function mR(t){for(var e=this._groups,r=0,n=e.length;r{"use strict";o(mR,"default")});function JDe(t){return function(){this.removeAttribute(t)}}function eRe(t){return function(){this.removeAttributeNS(t.space,t.local)}}function tRe(t,e){return function(){this.setAttribute(t,e)}}function rRe(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function nRe(t,e){return function(){var r=e.apply(this,arguments);r==null?this.removeAttribute(t):this.setAttribute(t,r)}}function iRe(t,e){return function(){var r=e.apply(this,arguments);r==null?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,r)}}function gR(t,e){var r=Zc(t);if(arguments.length<2){var n=this.node();return r.local?n.getAttributeNS(r.space,r.local):n.getAttribute(r)}return this.each((e==null?r.local?eRe:JDe:typeof e=="function"?r.local?iRe:nRe:r.local?rRe:tRe)(r,e))}var mK=O(()=>{"use strict";Kw();o(JDe,"attrRemove");o(eRe,"attrRemoveNS");o(tRe,"attrConstant");o(rRe,"attrConstantNS");o(nRe,"attrFunction");o(iRe,"attrFunctionNS");o(gR,"default")});function K2(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}var yR=O(()=>{"use strict";o(K2,"default")});function aRe(t){return function(){this.style.removeProperty(t)}}function sRe(t,e,r){return function(){this.style.setProperty(t,e,r)}}function oRe(t,e,r){return function(){var n=e.apply(this,arguments);n==null?this.style.removeProperty(t):this.style.setProperty(t,n,r)}}function vR(t,e,r){return arguments.length>1?this.each((e==null?aRe:typeof e=="function"?oRe:sRe)(t,e,r??"")):_f(this.node(),t)}function _f(t,e){return t.style.getPropertyValue(e)||K2(t).getComputedStyle(t,null).getPropertyValue(e)}var xR=O(()=>{"use strict";yR();o(aRe,"styleRemove");o(sRe,"styleConstant");o(oRe,"styleFunction");o(vR,"default");o(_f,"styleValue")});function lRe(t){return function(){delete this[t]}}function cRe(t,e){return function(){this[t]=e}}function uRe(t,e){return function(){var r=e.apply(this,arguments);r==null?delete this[t]:this[t]=r}}function bR(t,e){return arguments.length>1?this.each((e==null?lRe:typeof e=="function"?uRe:cRe)(t,e)):this.node()[t]}var gK=O(()=>{"use strict";o(lRe,"propertyRemove");o(cRe,"propertyConstant");o(uRe,"propertyFunction");o(bR,"default")});function yK(t){return t.trim().split(/^|\s+/)}function TR(t){return t.classList||new vK(t)}function vK(t){this._node=t,this._names=yK(t.getAttribute("class")||"")}function xK(t,e){for(var r=TR(t),n=-1,i=e.length;++n{"use strict";o(yK,"classArray");o(TR,"classList");o(vK,"ClassList");vK.prototype={add:o(function(t){var e=this._names.indexOf(t);e<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},"add"),remove:o(function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},"remove"),contains:o(function(t){return this._names.indexOf(t)>=0},"contains")};o(xK,"classedAdd");o(bK,"classedRemove");o(hRe,"classedTrue");o(fRe,"classedFalse");o(dRe,"classedFunction");o(wR,"default")});function pRe(){this.textContent=""}function mRe(t){return function(){this.textContent=t}}function gRe(t){return function(){var e=t.apply(this,arguments);this.textContent=e??""}}function kR(t){return arguments.length?this.each(t==null?pRe:(typeof t=="function"?gRe:mRe)(t)):this.node().textContent}var wK=O(()=>{"use strict";o(pRe,"textRemove");o(mRe,"textConstant");o(gRe,"textFunction");o(kR,"default")});function yRe(){this.innerHTML=""}function vRe(t){return function(){this.innerHTML=t}}function xRe(t){return function(){var e=t.apply(this,arguments);this.innerHTML=e??""}}function ER(t){return arguments.length?this.each(t==null?yRe:(typeof t=="function"?xRe:vRe)(t)):this.node().innerHTML}var kK=O(()=>{"use strict";o(yRe,"htmlRemove");o(vRe,"htmlConstant");o(xRe,"htmlFunction");o(ER,"default")});function bRe(){this.nextSibling&&this.parentNode.appendChild(this)}function SR(){return this.each(bRe)}var EK=O(()=>{"use strict";o(bRe,"raise");o(SR,"default")});function TRe(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function CR(){return this.each(TRe)}var SK=O(()=>{"use strict";o(TRe,"lower");o(CR,"default")});function AR(t){var e=typeof t=="function"?t:H2(t);return this.select(function(){return this.appendChild(e.apply(this,arguments))})}var CK=O(()=>{"use strict";HD();o(AR,"default")});function wRe(){return null}function _R(t,e){var r=typeof t=="function"?t:H2(t),n=e==null?wRe:typeof e=="function"?e:Af(e);return this.select(function(){return this.insertBefore(r.apply(this,arguments),n.apply(this,arguments)||null)})}var AK=O(()=>{"use strict";HD();Qw();o(wRe,"constantNull");o(_R,"default")});function kRe(){var t=this.parentNode;t&&t.removeChild(this)}function DR(){return this.each(kRe)}var _K=O(()=>{"use strict";o(kRe,"remove");o(DR,"default")});function ERe(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function SRe(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function RR(t){return this.select(t?SRe:ERe)}var DK=O(()=>{"use strict";o(ERe,"selection_cloneShallow");o(SRe,"selection_cloneDeep");o(RR,"default")});function LR(t){return arguments.length?this.property("__data__",t):this.node().__data__}var RK=O(()=>{"use strict";o(LR,"default")});function CRe(t){return function(e){t.call(this,e,this.__data__)}}function ARe(t){return t.trim().split(/^|\s+/).map(function(e){var r="",n=e.indexOf(".");return n>=0&&(r=e.slice(n+1),e=e.slice(0,n)),{type:e,name:r}})}function _Re(t){return function(){var e=this.__on;if(e){for(var r=0,n=-1,i=e.length,a;r{"use strict";o(CRe,"contextListener");o(ARe,"parseTypenames");o(_Re,"onRemove");o(DRe,"onAdd");o(NR,"default")});function NK(t,e,r){var n=K2(t),i=n.CustomEvent;typeof i=="function"?i=new i(e,r):(i=n.document.createEvent("Event"),r?(i.initEvent(e,r.bubbles,r.cancelable),i.detail=r.detail):i.initEvent(e,!1,!1)),t.dispatchEvent(i)}function RRe(t,e){return function(){return NK(this,t,e)}}function LRe(t,e){return function(){return NK(this,t,e.apply(this,arguments))}}function MR(t,e){return this.each((typeof e=="function"?LRe:RRe)(t,e))}var MK=O(()=>{"use strict";yR();o(NK,"dispatchEvent");o(RRe,"dispatchConstant");o(LRe,"dispatchFunction");o(MR,"default")});function*IR(){for(var t=this._groups,e=0,r=t.length;e{"use strict";o(IR,"default")});function Di(t,e){this._groups=t,this._parents=e}function OK(){return new Di([[document.documentElement]],OR)}function NRe(){return this}var OR,hh,tc=O(()=>{"use strict";KX();ZX();JX();eK();tK();nK();rR();iK();aK();sK();oK();lK();cK();uK();hK();fK();dK();pK();mK();xR();gK();TK();wK();kK();EK();SK();CK();AK();_K();DK();RK();LK();MK();IK();OR=[null];o(Di,"Selection");o(OK,"selection");o(NRe,"selection_selection");Di.prototype=OK.prototype={constructor:Di,select:YD,selectAll:KD,selectChild:QD,selectChildren:ZD,filter:JD,data:iR,enter:tR,exit:aR,join:sR,merge:oR,selection:NRe,order:lR,sort:cR,call:uR,nodes:hR,node:fR,size:dR,empty:pR,each:mR,attr:gR,style:vR,property:bR,classed:wR,text:kR,html:ER,raise:SR,lower:CR,append:AR,insert:_R,remove:DR,clone:RR,datum:LR,on:NR,dispatch:MR,[Symbol.iterator]:IR};hh=OK});function je(t){return typeof t=="string"?new Di([[document.querySelector(t)]],[document.documentElement]):new Di([[t]],OR)}var PK=O(()=>{"use strict";tc();o(je,"default")});var rc=O(()=>{"use strict";Y2();Kw();PK();tc();Qw();XD();xR()});var BK=O(()=>{"use strict"});function Df(t,e,r){t.prototype=e.prototype=r,r.constructor=t}function kg(t,e){var r=Object.create(t.prototype);for(var n in e)r[n]=e[n];return r}var PR=O(()=>{"use strict";o(Df,"default");o(kg,"extend")});function Rf(){}function $K(){return this.rgb().formatHex()}function zRe(){return this.rgb().formatHex8()}function GRe(){return HK(this).formatHsl()}function zK(){return this.rgb().formatRgb()}function ic(t){var e,r;return t=(t+"").trim().toLowerCase(),(e=MRe.exec(t))?(r=e[1].length,e=parseInt(e[1],16),r===6?GK(e):r===3?new Na(e>>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):r===8?Jw(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):r===4?Jw(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=IRe.exec(t))?new Na(e[1],e[2],e[3],1):(e=ORe.exec(t))?new Na(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=PRe.exec(t))?Jw(e[1],e[2],e[3],e[4]):(e=BRe.exec(t))?Jw(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=FRe.exec(t))?UK(e[1],e[2]/100,e[3]/100,1):(e=$Re.exec(t))?UK(e[1],e[2]/100,e[3]/100,e[4]):FK.hasOwnProperty(t)?GK(FK[t]):t==="transparent"?new Na(NaN,NaN,NaN,0):null}function GK(t){return new Na(t>>16&255,t>>8&255,t&255,1)}function Jw(t,e,r,n){return n<=0&&(t=e=r=NaN),new Na(t,e,r,n)}function FR(t){return t instanceof Rf||(t=ic(t)),t?(t=t.rgb(),new Na(t.r,t.g,t.b,t.opacity)):new Na}function Sg(t,e,r,n){return arguments.length===1?FR(t):new Na(t,e,r,n??1)}function Na(t,e,r,n){this.r=+t,this.g=+e,this.b=+r,this.opacity=+n}function VK(){return`#${Vp(this.r)}${Vp(this.g)}${Vp(this.b)}`}function VRe(){return`#${Vp(this.r)}${Vp(this.g)}${Vp(this.b)}${Vp((isNaN(this.opacity)?1:this.opacity)*255)}`}function qK(){let t=r5(this.opacity);return`${t===1?"rgb(":"rgba("}${qp(this.r)}, ${qp(this.g)}, ${qp(this.b)}${t===1?")":`, ${t})`}`}function r5(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function qp(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function Vp(t){return t=qp(t),(t<16?"0":"")+t.toString(16)}function UK(t,e,r,n){return n<=0?t=e=r=NaN:r<=0||r>=1?t=e=NaN:e<=0&&(t=NaN),new nc(t,e,r,n)}function HK(t){if(t instanceof nc)return new nc(t.h,t.s,t.l,t.opacity);if(t instanceof Rf||(t=ic(t)),!t)return new nc;if(t instanceof nc)return t;t=t.rgb();var e=t.r/255,r=t.g/255,n=t.b/255,i=Math.min(e,r,n),a=Math.max(e,r,n),s=NaN,l=a-i,u=(a+i)/2;return l?(e===a?s=(r-n)/l+(r0&&u<1?0:s,new nc(s,l,u,t.opacity)}function YK(t,e,r,n){return arguments.length===1?HK(t):new nc(t,e,r,n??1)}function nc(t,e,r,n){this.h=+t,this.s=+e,this.l=+r,this.opacity=+n}function WK(t){return t=(t||0)%360,t<0?t+360:t}function e5(t){return Math.max(0,Math.min(1,t||0))}function BR(t,e,r){return(t<60?e+(r-e)*t/60:t<180?r:t<240?e+(r-e)*(240-t)/60:e)*255}var Q2,t5,Eg,Z2,Jc,MRe,IRe,ORe,PRe,BRe,FRe,$Re,FK,$R=O(()=>{"use strict";PR();o(Rf,"Color");Q2=.7,t5=1/Q2,Eg="\\s*([+-]?\\d+)\\s*",Z2="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Jc="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",MRe=/^#([0-9a-f]{3,8})$/,IRe=new RegExp(`^rgb\\(${Eg},${Eg},${Eg}\\)$`),ORe=new RegExp(`^rgb\\(${Jc},${Jc},${Jc}\\)$`),PRe=new RegExp(`^rgba\\(${Eg},${Eg},${Eg},${Z2}\\)$`),BRe=new RegExp(`^rgba\\(${Jc},${Jc},${Jc},${Z2}\\)$`),FRe=new RegExp(`^hsl\\(${Z2},${Jc},${Jc}\\)$`),$Re=new RegExp(`^hsla\\(${Z2},${Jc},${Jc},${Z2}\\)$`),FK={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Df(Rf,ic,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:$K,formatHex:$K,formatHex8:zRe,formatHsl:GRe,formatRgb:zK,toString:zK});o($K,"color_formatHex");o(zRe,"color_formatHex8");o(GRe,"color_formatHsl");o(zK,"color_formatRgb");o(ic,"color");o(GK,"rgbn");o(Jw,"rgba");o(FR,"rgbConvert");o(Sg,"rgb");o(Na,"Rgb");Df(Na,Sg,kg(Rf,{brighter(t){return t=t==null?t5:Math.pow(t5,t),new Na(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?Q2:Math.pow(Q2,t),new Na(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new Na(qp(this.r),qp(this.g),qp(this.b),r5(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:VK,formatHex:VK,formatHex8:VRe,formatRgb:qK,toString:qK}));o(VK,"rgb_formatHex");o(VRe,"rgb_formatHex8");o(qK,"rgb_formatRgb");o(r5,"clampa");o(qp,"clampi");o(Vp,"hex");o(UK,"hsla");o(HK,"hslConvert");o(YK,"hsl");o(nc,"Hsl");Df(nc,YK,kg(Rf,{brighter(t){return t=t==null?t5:Math.pow(t5,t),new nc(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Q2:Math.pow(Q2,t),new nc(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*e,i=2*r-n;return new Na(BR(t>=240?t-240:t+120,i,n),BR(t,i,n),BR(t<120?t+240:t-120,i,n),this.opacity)},clamp(){return new nc(WK(this.h),e5(this.s),e5(this.l),r5(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let t=r5(this.opacity);return`${t===1?"hsl(":"hsla("}${WK(this.h)}, ${e5(this.s)*100}%, ${e5(this.l)*100}%${t===1?")":`, ${t})`}`}}));o(WK,"clamph");o(e5,"clampt");o(BR,"hsl2rgb")});var jK,XK,KK=O(()=>{"use strict";jK=Math.PI/180,XK=180/Math.PI});function rQ(t){if(t instanceof eu)return new eu(t.l,t.a,t.b,t.opacity);if(t instanceof fh)return nQ(t);t instanceof Na||(t=FR(t));var e=qR(t.r),r=qR(t.g),n=qR(t.b),i=zR((.2225045*e+.7168786*r+.0606169*n)/ZK),a,s;return e===r&&r===n?a=s=i:(a=zR((.4360747*e+.3850649*r+.1430804*n)/QK),s=zR((.0139322*e+.0971045*r+.7141733*n)/JK)),new eu(116*i-16,500*(a-i),200*(i-s),t.opacity)}function UR(t,e,r,n){return arguments.length===1?rQ(t):new eu(t,e,r,n??1)}function eu(t,e,r,n){this.l=+t,this.a=+e,this.b=+r,this.opacity=+n}function zR(t){return t>qRe?Math.pow(t,1/3):t/tQ+eQ}function GR(t){return t>Cg?t*t*t:tQ*(t-eQ)}function VR(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function qR(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function URe(t){if(t instanceof fh)return new fh(t.h,t.c,t.l,t.opacity);if(t instanceof eu||(t=rQ(t)),t.a===0&&t.b===0)return new fh(NaN,0{"use strict";PR();$R();KK();n5=18,QK=.96422,ZK=1,JK=.82521,eQ=4/29,Cg=6/29,tQ=3*Cg*Cg,qRe=Cg*Cg*Cg;o(rQ,"labConvert");o(UR,"lab");o(eu,"Lab");Df(eu,UR,kg(Rf,{brighter(t){return new eu(this.l+n5*(t??1),this.a,this.b,this.opacity)},darker(t){return new eu(this.l-n5*(t??1),this.a,this.b,this.opacity)},rgb(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,r=isNaN(this.b)?t:t-this.b/200;return e=QK*GR(e),t=ZK*GR(t),r=JK*GR(r),new Na(VR(3.1338561*e-1.6168667*t-.4906146*r),VR(-.9787684*e+1.9161415*t+.033454*r),VR(.0719453*e-.2289914*t+1.4052427*r),this.opacity)}}));o(zR,"xyz2lab");o(GR,"lab2xyz");o(VR,"lrgb2rgb");o(qR,"rgb2lrgb");o(URe,"hclConvert");o(J2,"hcl");o(fh,"Hcl");o(nQ,"hcl2lab");Df(fh,J2,kg(Rf,{brighter(t){return new fh(this.h,this.c,this.l+n5*(t??1),this.opacity)},darker(t){return new fh(this.h,this.c,this.l-n5*(t??1),this.opacity)},rgb(){return nQ(this).rgb()}}))});var Ag=O(()=>{"use strict";$R();iQ()});function WR(t,e,r,n,i){var a=t*t,s=a*t;return((1-3*t+3*a-s)*e+(4-6*a+3*s)*r+(1+3*t+3*a-3*s)*n+s*i)/6}function HR(t){var e=t.length-1;return function(r){var n=r<=0?r=0:r>=1?(r=1,e-1):Math.floor(r*e),i=t[n],a=t[n+1],s=n>0?t[n-1]:2*i-a,l=n{"use strict";o(WR,"basis");o(HR,"default")});function jR(t){var e=t.length;return function(r){var n=Math.floor(((r%=1)<0?++r:r)*e),i=t[(n+e-1)%e],a=t[n%e],s=t[(n+1)%e],l=t[(n+2)%e];return WR((r-n/e)*e,i,a,s,l)}}var aQ=O(()=>{"use strict";YR();o(jR,"default")});var _g,XR=O(()=>{"use strict";_g=o(t=>()=>t,"default")});function sQ(t,e){return function(r){return t+r*e}}function WRe(t,e,r){return t=Math.pow(t,r),e=Math.pow(e,r)-t,r=1/r,function(n){return Math.pow(t+n*e,r)}}function oQ(t,e){var r=e-t;return r?sQ(t,r>180||r<-180?r-360*Math.round(r/360):r):_g(isNaN(t)?e:t)}function lQ(t){return(t=+t)==1?dh:function(e,r){return r-e?WRe(e,r,t):_g(isNaN(e)?r:e)}}function dh(t,e){var r=e-t;return r?sQ(t,r):_g(isNaN(t)?e:t)}var KR=O(()=>{"use strict";XR();o(sQ,"linear");o(WRe,"exponential");o(oQ,"hue");o(lQ,"gamma");o(dh,"nogamma")});function cQ(t){return function(e){var r=e.length,n=new Array(r),i=new Array(r),a=new Array(r),s,l;for(s=0;s{"use strict";Ag();YR();aQ();KR();Up=o((function t(e){var r=lQ(e);function n(i,a){var s=r((i=Sg(i)).r,(a=Sg(a)).r),l=r(i.g,a.g),u=r(i.b,a.b),h=dh(i.opacity,a.opacity);return function(f){return i.r=s(f),i.g=l(f),i.b=u(f),i.opacity=h(f),i+""}}return o(n,"rgb"),n.gamma=t,n}),"rgbGamma")(1);o(cQ,"rgbSpline");HRe=cQ(HR),YRe=cQ(jR)});function ZR(t,e){e||(e=[]);var r=t?Math.min(e.length,t.length):0,n=e.slice(),i;return function(a){for(i=0;i{"use strict";o(ZR,"default");o(uQ,"isNumberArray")});function fQ(t,e){var r=e?e.length:0,n=t?Math.min(r,t.length):0,i=new Array(n),a=new Array(r),s;for(s=0;s{"use strict";i5();o(fQ,"genericArray")});function JR(t,e){var r=new Date;return t=+t,e=+e,function(n){return r.setTime(t*(1-n)+e*n),r}}var pQ=O(()=>{"use strict";o(JR,"default")});function da(t,e){return t=+t,e=+e,function(r){return t*(1-r)+e*r}}var ex=O(()=>{"use strict";o(da,"default")});function eL(t,e){var r={},n={},i;(t===null||typeof t!="object")&&(t={}),(e===null||typeof e!="object")&&(e={});for(i in e)i in t?r[i]=Lf(t[i],e[i]):n[i]=e[i];return function(a){for(i in r)n[i]=r[i](a);return n}}var mQ=O(()=>{"use strict";i5();o(eL,"default")});function jRe(t){return function(){return t}}function XRe(t){return function(e){return t(e)+""}}function Dg(t,e){var r=rL.lastIndex=tL.lastIndex=0,n,i,a,s=-1,l=[],u=[];for(t=t+"",e=e+"";(n=rL.exec(t))&&(i=tL.exec(e));)(a=i.index)>r&&(a=e.slice(r,a),l[s]?l[s]+=a:l[++s]=a),(n=n[0])===(i=i[0])?l[s]?l[s]+=i:l[++s]=i:(l[++s]=null,u.push({i:s,x:da(n,i)})),r=tL.lastIndex;return r{"use strict";ex();rL=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,tL=new RegExp(rL.source,"g");o(jRe,"zero");o(XRe,"one");o(Dg,"default")});function Lf(t,e){var r=typeof e,n;return e==null||r==="boolean"?_g(e):(r==="number"?da:r==="string"?(n=ic(e))?(e=n,Up):Dg:e instanceof ic?Up:e instanceof Date?JR:uQ(e)?ZR:Array.isArray(e)?fQ:typeof e.valueOf!="function"&&typeof e.toString!="function"||isNaN(e)?eL:da)(t,e)}var i5=O(()=>{"use strict";Ag();QR();dQ();pQ();ex();mQ();nL();XR();hQ();o(Lf,"default")});function a5(t,e){return t=+t,e=+e,function(r){return Math.round(t*(1-r)+e*r)}}var gQ=O(()=>{"use strict";o(a5,"default")});function o5(t,e,r,n,i,a){var s,l,u;return(s=Math.sqrt(t*t+e*e))&&(t/=s,e/=s),(u=t*r+e*n)&&(r-=t*u,n-=e*u),(l=Math.sqrt(r*r+n*n))&&(r/=l,n/=l,u/=l),t*n{"use strict";yQ=180/Math.PI,s5={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};o(o5,"default")});function xQ(t){let e=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?s5:o5(e.a,e.b,e.c,e.d,e.e,e.f)}function bQ(t){return t==null?s5:(l5||(l5=document.createElementNS("http://www.w3.org/2000/svg","g")),l5.setAttribute("transform",t),(t=l5.transform.baseVal.consolidate())?(t=t.matrix,o5(t.a,t.b,t.c,t.d,t.e,t.f)):s5)}var l5,TQ=O(()=>{"use strict";vQ();o(xQ,"parseCss");o(bQ,"parseSvg")});function wQ(t,e,r,n){function i(h){return h.length?h.pop()+" ":""}o(i,"pop");function a(h,f,d,p,m,g){if(h!==d||f!==p){var y=m.push("translate(",null,e,null,r);g.push({i:y-4,x:da(h,d)},{i:y-2,x:da(f,p)})}else(d||p)&&m.push("translate("+d+e+p+r)}o(a,"translate");function s(h,f,d,p){h!==f?(h-f>180?f+=360:f-h>180&&(h+=360),p.push({i:d.push(i(d)+"rotate(",null,n)-2,x:da(h,f)})):f&&d.push(i(d)+"rotate("+f+n)}o(s,"rotate");function l(h,f,d,p){h!==f?p.push({i:d.push(i(d)+"skewX(",null,n)-2,x:da(h,f)}):f&&d.push(i(d)+"skewX("+f+n)}o(l,"skewX");function u(h,f,d,p,m,g){if(h!==d||f!==p){var y=m.push(i(m)+"scale(",null,",",null,")");g.push({i:y-4,x:da(h,d)},{i:y-2,x:da(f,p)})}else(d!==1||p!==1)&&m.push(i(m)+"scale("+d+","+p+")")}return o(u,"scale"),function(h,f){var d=[],p=[];return h=t(h),f=t(f),a(h.translateX,h.translateY,f.translateX,f.translateY,d,p),s(h.rotate,f.rotate,d,p),l(h.skewX,f.skewX,d,p),u(h.scaleX,h.scaleY,f.scaleX,f.scaleY,d,p),h=f=null,function(m){for(var g=-1,y=p.length,v;++g{"use strict";ex();TQ();o(wQ,"interpolateTransform");iL=wQ(xQ,"px, ","px)","deg)"),aL=wQ(bQ,", ",")",")")});function EQ(t){return function(e,r){var n=t((e=J2(e)).h,(r=J2(r)).h),i=dh(e.c,r.c),a=dh(e.l,r.l),s=dh(e.opacity,r.opacity);return function(l){return e.h=n(l),e.c=i(l),e.l=a(l),e.opacity=s(l),e+""}}}var sL,KRe,SQ=O(()=>{"use strict";Ag();KR();o(EQ,"hcl");sL=EQ(oQ),KRe=EQ(dh)});var Rg=O(()=>{"use strict";i5();ex();gQ();nL();kQ();QR();SQ()});function sx(){return Wp||(_Q(QRe),Wp=ix.now()+h5)}function QRe(){Wp=0}function ax(){this._call=this._time=this._next=null}function f5(t,e,r){var n=new ax;return n.restart(t,e,r),n}function DQ(){sx(),++Lg;for(var t=c5,e;t;)(e=Wp-t._time)>=0&&t._call.call(void 0,e),t=t._next;--Lg}function CQ(){Wp=(u5=ix.now())+h5,Lg=rx=0;try{DQ()}finally{Lg=0,JRe(),Wp=0}}function ZRe(){var t=ix.now(),e=t-u5;e>AQ&&(h5-=e,u5=t)}function JRe(){for(var t,e=c5,r,n=1/0;e;)e._call?(n>e._time&&(n=e._time),t=e,e=e._next):(r=e._next,e._next=null,e=t?t._next=r:c5=r);nx=t,oL(n)}function oL(t){if(!Lg){rx&&(rx=clearTimeout(rx));var e=t-Wp;e>24?(t<1/0&&(rx=setTimeout(CQ,t-ix.now()-h5)),tx&&(tx=clearInterval(tx))):(tx||(u5=ix.now(),tx=setInterval(ZRe,AQ)),Lg=1,_Q(CQ))}}var Lg,rx,tx,AQ,c5,nx,u5,Wp,h5,ix,_Q,lL=O(()=>{"use strict";Lg=0,rx=0,tx=0,AQ=1e3,u5=0,Wp=0,h5=0,ix=typeof performance=="object"&&performance.now?performance:Date,_Q=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};o(sx,"now");o(QRe,"clearNow");o(ax,"Timer");ax.prototype=f5.prototype={constructor:ax,restart:o(function(t,e,r){if(typeof t!="function")throw new TypeError("callback is not a function");r=(r==null?sx():+r)+(e==null?0:+e),!this._next&&nx!==this&&(nx?nx._next=this:c5=this,nx=this),this._call=t,this._time=r,oL()},"restart"),stop:o(function(){this._call&&(this._call=null,this._time=1/0,oL())},"stop")};o(f5,"timer");o(DQ,"timerFlush");o(CQ,"wake");o(ZRe,"poke");o(JRe,"nap");o(oL,"sleep")});function ox(t,e,r){var n=new ax;return e=e==null?0:+e,n.restart(i=>{n.stop(),t(i+e)},e,r),n}var RQ=O(()=>{"use strict";lL();o(ox,"default")});var d5=O(()=>{"use strict";lL();RQ()});function ph(t,e,r,n,i,a){var s=t.__transition;if(!s)t.__transition={};else if(r in s)return;rLe(t,r,{name:e,index:n,group:i,on:eLe,tween:tLe,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:MQ})}function cx(t,e){var r=ta(t,e);if(r.state>MQ)throw new Error("too late; already scheduled");return r}function Ma(t,e){var r=ta(t,e);if(r.state>p5)throw new Error("too late; already running");return r}function ta(t,e){var r=t.__transition;if(!r||!(r=r[e]))throw new Error("transition not found");return r}function rLe(t,e,r){var n=t.__transition,i;n[e]=r,r.timer=f5(a,0,r.time);function a(h){r.state=LQ,r.timer.restart(s,r.delay,r.time),r.delay<=h&&s(h-r.delay)}o(a,"schedule");function s(h){var f,d,p,m;if(r.state!==LQ)return u();for(f in n)if(m=n[f],m.name===r.name){if(m.state===p5)return ox(s);m.state===NQ?(m.state=lx,m.timer.stop(),m.on.call("interrupt",t,t.__data__,m.index,m.group),delete n[f]):+f{"use strict";qD();d5();eLe=VD("start","end","cancel","interrupt"),tLe=[],MQ=0,LQ=1,m5=2,p5=3,NQ=4,g5=5,lx=6;o(ph,"default");o(cx,"init");o(Ma,"set");o(ta,"get");o(rLe,"create")});function ux(t,e){var r=t.__transition,n,i,a=!0,s;if(r){e=e==null?null:e+"";for(s in r){if((n=r[s]).name!==e){a=!1;continue}i=n.state>m5&&n.state{"use strict";to();o(ux,"default")});function cL(t){return this.each(function(){ux(this,t)})}var OQ=O(()=>{"use strict";IQ();o(cL,"default")});function nLe(t,e){var r,n;return function(){var i=Ma(this,t),a=i.tween;if(a!==r){n=r=a;for(var s=0,l=n.length;s{"use strict";to();o(nLe,"tweenRemove");o(iLe,"tweenFunction");o(uL,"default");o(Ng,"tweenValue")});function fx(t,e){var r;return(typeof e=="number"?da:e instanceof ic?Up:(r=ic(e))?(e=r,Up):Dg)(t,e)}var hL=O(()=>{"use strict";Ag();Rg();o(fx,"default")});function aLe(t){return function(){this.removeAttribute(t)}}function sLe(t){return function(){this.removeAttributeNS(t.space,t.local)}}function oLe(t,e,r){var n,i=r+"",a;return function(){var s=this.getAttribute(t);return s===i?null:s===n?a:a=e(n=s,r)}}function lLe(t,e,r){var n,i=r+"",a;return function(){var s=this.getAttributeNS(t.space,t.local);return s===i?null:s===n?a:a=e(n=s,r)}}function cLe(t,e,r){var n,i,a;return function(){var s,l=r(this),u;return l==null?void this.removeAttribute(t):(s=this.getAttribute(t),u=l+"",s===u?null:s===n&&u===i?a:(i=u,a=e(n=s,l)))}}function uLe(t,e,r){var n,i,a;return function(){var s,l=r(this),u;return l==null?void this.removeAttributeNS(t.space,t.local):(s=this.getAttributeNS(t.space,t.local),u=l+"",s===u?null:s===n&&u===i?a:(i=u,a=e(n=s,l)))}}function fL(t,e){var r=Zc(t),n=r==="transform"?aL:fx;return this.attrTween(t,typeof e=="function"?(r.local?uLe:cLe)(r,n,Ng(this,"attr."+t,e)):e==null?(r.local?sLe:aLe)(r):(r.local?lLe:oLe)(r,n,e))}var PQ=O(()=>{"use strict";Rg();rc();hx();hL();o(aLe,"attrRemove");o(sLe,"attrRemoveNS");o(oLe,"attrConstant");o(lLe,"attrConstantNS");o(cLe,"attrFunction");o(uLe,"attrFunctionNS");o(fL,"default")});function hLe(t,e){return function(r){this.setAttribute(t,e.call(this,r))}}function fLe(t,e){return function(r){this.setAttributeNS(t.space,t.local,e.call(this,r))}}function dLe(t,e){var r,n;function i(){var a=e.apply(this,arguments);return a!==n&&(r=(n=a)&&fLe(t,a)),r}return o(i,"tween"),i._value=e,i}function pLe(t,e){var r,n;function i(){var a=e.apply(this,arguments);return a!==n&&(r=(n=a)&&hLe(t,a)),r}return o(i,"tween"),i._value=e,i}function dL(t,e){var r="attr."+t;if(arguments.length<2)return(r=this.tween(r))&&r._value;if(e==null)return this.tween(r,null);if(typeof e!="function")throw new Error;var n=Zc(t);return this.tween(r,(n.local?dLe:pLe)(n,e))}var BQ=O(()=>{"use strict";rc();o(hLe,"attrInterpolate");o(fLe,"attrInterpolateNS");o(dLe,"attrTweenNS");o(pLe,"attrTween");o(dL,"default")});function mLe(t,e){return function(){cx(this,t).delay=+e.apply(this,arguments)}}function gLe(t,e){return e=+e,function(){cx(this,t).delay=e}}function pL(t){var e=this._id;return arguments.length?this.each((typeof t=="function"?mLe:gLe)(e,t)):ta(this.node(),e).delay}var FQ=O(()=>{"use strict";to();o(mLe,"delayFunction");o(gLe,"delayConstant");o(pL,"default")});function yLe(t,e){return function(){Ma(this,t).duration=+e.apply(this,arguments)}}function vLe(t,e){return e=+e,function(){Ma(this,t).duration=e}}function mL(t){var e=this._id;return arguments.length?this.each((typeof t=="function"?yLe:vLe)(e,t)):ta(this.node(),e).duration}var $Q=O(()=>{"use strict";to();o(yLe,"durationFunction");o(vLe,"durationConstant");o(mL,"default")});function xLe(t,e){if(typeof e!="function")throw new Error;return function(){Ma(this,t).ease=e}}function gL(t){var e=this._id;return arguments.length?this.each(xLe(e,t)):ta(this.node(),e).ease}var zQ=O(()=>{"use strict";to();o(xLe,"easeConstant");o(gL,"default")});function bLe(t,e){return function(){var r=e.apply(this,arguments);if(typeof r!="function")throw new Error;Ma(this,t).ease=r}}function yL(t){if(typeof t!="function")throw new Error;return this.each(bLe(this._id,t))}var GQ=O(()=>{"use strict";to();o(bLe,"easeVarying");o(yL,"default")});function vL(t){typeof t!="function"&&(t=wg(t));for(var e=this._groups,r=e.length,n=new Array(r),i=0;i{"use strict";rc();Hp();o(vL,"default")});function xL(t){if(t._id!==this._id)throw new Error;for(var e=this._groups,r=t._groups,n=e.length,i=r.length,a=Math.min(n,i),s=new Array(n),l=0;l{"use strict";Hp();o(xL,"default")});function TLe(t){return(t+"").trim().split(/^|\s+/).every(function(e){var r=e.indexOf(".");return r>=0&&(e=e.slice(0,r)),!e||e==="start"})}function wLe(t,e,r){var n,i,a=TLe(e)?cx:Ma;return function(){var s=a(this,t),l=s.on;l!==n&&(i=(n=l).copy()).on(e,r),s.on=i}}function bL(t,e){var r=this._id;return arguments.length<2?ta(this.node(),r).on.on(t):this.each(wLe(r,t,e))}var UQ=O(()=>{"use strict";to();o(TLe,"start");o(wLe,"onFunction");o(bL,"default")});function kLe(t){return function(){var e=this.parentNode;for(var r in this.__transition)if(+r!==t)return;e&&e.removeChild(this)}}function TL(){return this.on("end.remove",kLe(this._id))}var WQ=O(()=>{"use strict";o(kLe,"removeFunction");o(TL,"default")});function wL(t){var e=this._name,r=this._id;typeof t!="function"&&(t=Af(t));for(var n=this._groups,i=n.length,a=new Array(i),s=0;s{"use strict";rc();Hp();to();o(wL,"default")});function kL(t){var e=this._name,r=this._id;typeof t!="function"&&(t=Tg(t));for(var n=this._groups,i=n.length,a=[],s=[],l=0;l{"use strict";rc();Hp();to();o(kL,"default")});function EL(){return new ELe(this._groups,this._parents)}var ELe,jQ=O(()=>{"use strict";rc();ELe=hh.prototype.constructor;o(EL,"default")});function SLe(t,e){var r,n,i;return function(){var a=_f(this,t),s=(this.style.removeProperty(t),_f(this,t));return a===s?null:a===r&&s===n?i:i=e(r=a,n=s)}}function XQ(t){return function(){this.style.removeProperty(t)}}function CLe(t,e,r){var n,i=r+"",a;return function(){var s=_f(this,t);return s===i?null:s===n?a:a=e(n=s,r)}}function ALe(t,e,r){var n,i,a;return function(){var s=_f(this,t),l=r(this),u=l+"";return l==null&&(u=l=(this.style.removeProperty(t),_f(this,t))),s===u?null:s===n&&u===i?a:(i=u,a=e(n=s,l))}}function _Le(t,e){var r,n,i,a="style."+e,s="end."+a,l;return function(){var u=Ma(this,t),h=u.on,f=u.value[a]==null?l||(l=XQ(e)):void 0;(h!==r||i!==f)&&(n=(r=h).copy()).on(s,i=f),u.on=n}}function SL(t,e,r){var n=(t+="")=="transform"?iL:fx;return e==null?this.styleTween(t,SLe(t,n)).on("end.style."+t,XQ(t)):typeof e=="function"?this.styleTween(t,ALe(t,n,Ng(this,"style."+t,e))).each(_Le(this._id,t)):this.styleTween(t,CLe(t,n,e),r).on("end.style."+t,null)}var KQ=O(()=>{"use strict";Rg();rc();to();hx();hL();o(SLe,"styleNull");o(XQ,"styleRemove");o(CLe,"styleConstant");o(ALe,"styleFunction");o(_Le,"styleMaybeRemove");o(SL,"default")});function DLe(t,e,r){return function(n){this.style.setProperty(t,e.call(this,n),r)}}function RLe(t,e,r){var n,i;function a(){var s=e.apply(this,arguments);return s!==i&&(n=(i=s)&&DLe(t,s,r)),n}return o(a,"tween"),a._value=e,a}function CL(t,e,r){var n="style."+(t+="");if(arguments.length<2)return(n=this.tween(n))&&n._value;if(e==null)return this.tween(n,null);if(typeof e!="function")throw new Error;return this.tween(n,RLe(t,e,r??""))}var QQ=O(()=>{"use strict";o(DLe,"styleInterpolate");o(RLe,"styleTween");o(CL,"default")});function LLe(t){return function(){this.textContent=t}}function NLe(t){return function(){var e=t(this);this.textContent=e??""}}function AL(t){return this.tween("text",typeof t=="function"?NLe(Ng(this,"text",t)):LLe(t==null?"":t+""))}var ZQ=O(()=>{"use strict";hx();o(LLe,"textConstant");o(NLe,"textFunction");o(AL,"default")});function MLe(t){return function(e){this.textContent=t.call(this,e)}}function ILe(t){var e,r;function n(){var i=t.apply(this,arguments);return i!==r&&(e=(r=i)&&MLe(i)),e}return o(n,"tween"),n._value=t,n}function _L(t){var e="text";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(t==null)return this.tween(e,null);if(typeof t!="function")throw new Error;return this.tween(e,ILe(t))}var JQ=O(()=>{"use strict";o(MLe,"textInterpolate");o(ILe,"textTween");o(_L,"default")});function DL(){for(var t=this._name,e=this._id,r=y5(),n=this._groups,i=n.length,a=0;a{"use strict";Hp();to();o(DL,"default")});function RL(){var t,e,r=this,n=r._id,i=r.size();return new Promise(function(a,s){var l={value:s},u={value:o(function(){--i===0&&a()},"value")};r.each(function(){var h=Ma(this,n),f=h.on;f!==t&&(e=(t=f).copy(),e._.cancel.push(l),e._.interrupt.push(l),e._.end.push(u)),h.on=e}),i===0&&a()})}var tZ=O(()=>{"use strict";to();o(RL,"default")});function _s(t,e,r,n){this._groups=t,this._parents=e,this._name=r,this._id=n}function rZ(t){return hh().transition(t)}function y5(){return++OLe}var OLe,mh,Hp=O(()=>{"use strict";rc();PQ();BQ();FQ();$Q();zQ();GQ();VQ();qQ();UQ();WQ();HQ();YQ();jQ();KQ();QQ();ZQ();JQ();eZ();hx();tZ();OLe=0;o(_s,"Transition");o(rZ,"transition");o(y5,"newId");mh=hh.prototype;_s.prototype=rZ.prototype={constructor:_s,select:wL,selectAll:kL,selectChild:mh.selectChild,selectChildren:mh.selectChildren,filter:vL,merge:xL,selection:EL,transition:DL,call:mh.call,nodes:mh.nodes,node:mh.node,size:mh.size,empty:mh.empty,each:mh.each,on:bL,attr:fL,attrTween:dL,style:SL,styleTween:CL,text:AL,textTween:_L,remove:TL,tween:uL,delay:pL,duration:mL,ease:gL,easeVarying:yL,end:RL,[Symbol.iterator]:mh[Symbol.iterator]}});function v5(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}var nZ=O(()=>{"use strict";o(v5,"cubicInOut")});var LL=O(()=>{"use strict";nZ()});function BLe(t,e){for(var r;!(r=t.__transition)||!(r=r[e]);)if(!(t=t.parentNode))throw new Error(`transition ${e} not found`);return r}function NL(t){var e,r;t instanceof _s?(e=t._id,t=t._name):(e=y5(),(r=PLe).time=sx(),t=t==null?null:t+"");for(var n=this._groups,i=n.length,a=0;a{"use strict";Hp();to();LL();d5();PLe={time:null,delay:0,duration:250,ease:v5};o(BLe,"inherit");o(NL,"default")});var aZ=O(()=>{"use strict";rc();OQ();iZ();hh.prototype.interrupt=cL;hh.prototype.transition=NL});var x5=O(()=>{"use strict";aZ()});var sZ=O(()=>{"use strict"});var oZ=O(()=>{"use strict"});var lZ=O(()=>{"use strict"});function cZ(t){return[+t[0],+t[1]]}function FLe(t){return[cZ(t[0]),cZ(t[1])]}function ML(t){return{type:t}}var akt,skt,okt,lkt,ckt,ukt,uZ=O(()=>{"use strict";x5();sZ();oZ();lZ();({abs:akt,max:skt,min:okt}=Math);o(cZ,"number1");o(FLe,"number2");lkt={name:"x",handles:["w","e"].map(ML),input:o(function(t,e){return t==null?null:[[+t[0],e[0][1]],[+t[1],e[1][1]]]},"input"),output:o(function(t){return t&&[t[0][0],t[1][0]]},"output")},ckt={name:"y",handles:["n","s"].map(ML),input:o(function(t,e){return t==null?null:[[e[0][0],+t[0]],[e[1][0],+t[1]]]},"input"),output:o(function(t){return t&&[t[0][1],t[1][1]]},"output")},ukt={name:"xy",handles:["n","w","e","s","nw","ne","sw","se"].map(ML),input:o(function(t){return t==null?null:FLe(t)},"input"),output:o(function(t){return t},"output")};o(ML,"type")});var hZ=O(()=>{"use strict";uZ()});function fZ(t){this._+=t[0];for(let e=1,r=t.length;e=0))throw new Error(`invalid digits: ${t}`);if(e>15)return fZ;let r=10**e;return function(n){this._+=n[0];for(let i=1,a=n.length;i{"use strict";IL=Math.PI,OL=2*IL,Yp=1e-6,$Le=OL-Yp;o(fZ,"append");o(zLe,"appendRound");jp=class{static{o(this,"Path")}constructor(e){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=e==null?fZ:zLe(e)}moveTo(e,r){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+r}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(e,r){this._append`L${this._x1=+e},${this._y1=+r}`}quadraticCurveTo(e,r,n,i){this._append`Q${+e},${+r},${this._x1=+n},${this._y1=+i}`}bezierCurveTo(e,r,n,i,a,s){this._append`C${+e},${+r},${+n},${+i},${this._x1=+a},${this._y1=+s}`}arcTo(e,r,n,i,a){if(e=+e,r=+r,n=+n,i=+i,a=+a,a<0)throw new Error(`negative radius: ${a}`);let s=this._x1,l=this._y1,u=n-e,h=i-r,f=s-e,d=l-r,p=f*f+d*d;if(this._x1===null)this._append`M${this._x1=e},${this._y1=r}`;else if(p>Yp)if(!(Math.abs(d*u-h*f)>Yp)||!a)this._append`L${this._x1=e},${this._y1=r}`;else{let m=n-s,g=i-l,y=u*u+h*h,v=m*m+g*g,x=Math.sqrt(y),b=Math.sqrt(p),T=a*Math.tan((IL-Math.acos((y+p-v)/(2*x*b)))/2),E=T/b,w=T/x;Math.abs(E-1)>Yp&&this._append`L${e+E*f},${r+E*d}`,this._append`A${a},${a},0,0,${+(d*m>f*g)},${this._x1=e+w*u},${this._y1=r+w*h}`}}arc(e,r,n,i,a,s){if(e=+e,r=+r,n=+n,s=!!s,n<0)throw new Error(`negative radius: ${n}`);let l=n*Math.cos(i),u=n*Math.sin(i),h=e+l,f=r+u,d=1^s,p=s?i-a:a-i;this._x1===null?this._append`M${h},${f}`:(Math.abs(this._x1-h)>Yp||Math.abs(this._y1-f)>Yp)&&this._append`L${h},${f}`,n&&(p<0&&(p=p%OL+OL),p>$Le?this._append`A${n},${n},0,1,${d},${e-l},${r-u}A${n},${n},0,1,${d},${this._x1=h},${this._y1=f}`:p>Yp&&this._append`A${n},${n},0,${+(p>=IL)},${d},${this._x1=e+n*Math.cos(a)},${this._y1=r+n*Math.sin(a)}`)}rect(e,r,n,i){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+r}h${n=+n}v${+i}h${-n}Z`}toString(){return this._}};o(dZ,"path");dZ.prototype=jp.prototype});var PL=O(()=>{"use strict";pZ()});var mZ=O(()=>{"use strict"});var gZ=O(()=>{"use strict"});var yZ=O(()=>{"use strict"});var vZ=O(()=>{"use strict"});var xZ=O(()=>{"use strict"});var bZ=O(()=>{"use strict"});var TZ=O(()=>{"use strict"});function BL(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function Xp(t,e){if((r=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var r,n=t.slice(0,r);return[n.length>1?n[0]+n.slice(2):n,+t.slice(r+1)]}var dx=O(()=>{"use strict";o(BL,"default");o(Xp,"formatDecimalParts")});function ac(t){return t=Xp(Math.abs(t)),t?t[1]:NaN}var px=O(()=>{"use strict";dx();o(ac,"default")});function FL(t,e){return function(r,n){for(var i=r.length,a=[],s=0,l=t[0],u=0;i>0&&l>0&&(u+l+1>n&&(l=Math.max(1,n-u)),a.push(r.substring(i-=l,i+l)),!((u+=l+1)>n));)l=t[s=(s+1)%t.length];return a.reverse().join(e)}}var wZ=O(()=>{"use strict";o(FL,"default")});function $L(t){return function(e){return e.replace(/[0-9]/g,function(r){return t[+r]})}}var kZ=O(()=>{"use strict";o($L,"default")});function Nf(t){if(!(e=GLe.exec(t)))throw new Error("invalid format: "+t);var e;return new b5({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}function b5(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?"":t.type+""}var GLe,zL=O(()=>{"use strict";GLe=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;o(Nf,"formatSpecifier");Nf.prototype=b5.prototype;o(b5,"FormatSpecifier");b5.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type}});function GL(t){e:for(var e=t.length,r=1,n=-1,i;r0&&(n=0);break}return n>0?t.slice(0,n)+t.slice(i+1):t}var EZ=O(()=>{"use strict";o(GL,"default")});function qL(t,e){var r=Xp(t,e);if(!r)return t+"";var n=r[0],i=r[1],a=i-(VL=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,s=n.length;return a===s?n:a>s?n+new Array(a-s+1).join("0"):a>0?n.slice(0,a)+"."+n.slice(a):"0."+new Array(1-a).join("0")+Xp(t,Math.max(0,e+a-1))[0]}var VL,UL=O(()=>{"use strict";dx();o(qL,"default")});function T5(t,e){var r=Xp(t,e);if(!r)return t+"";var n=r[0],i=r[1];return i<0?"0."+new Array(-i).join("0")+n:n.length>i+1?n.slice(0,i+1)+"."+n.slice(i+1):n+new Array(i-n.length+2).join("0")}var SZ=O(()=>{"use strict";dx();o(T5,"default")});var WL,CZ=O(()=>{"use strict";dx();UL();SZ();WL={"%":o((t,e)=>(t*100).toFixed(e),"%"),b:o(t=>Math.round(t).toString(2),"b"),c:o(t=>t+"","c"),d:BL,e:o((t,e)=>t.toExponential(e),"e"),f:o((t,e)=>t.toFixed(e),"f"),g:o((t,e)=>t.toPrecision(e),"g"),o:o(t=>Math.round(t).toString(8),"o"),p:o((t,e)=>T5(t*100,e),"p"),r:T5,s:qL,X:o(t=>Math.round(t).toString(16).toUpperCase(),"X"),x:o(t=>Math.round(t).toString(16),"x")}});function w5(t){return t}var AZ=O(()=>{"use strict";o(w5,"default")});function HL(t){var e=t.grouping===void 0||t.thousands===void 0?w5:FL(_Z.call(t.grouping,Number),t.thousands+""),r=t.currency===void 0?"":t.currency[0]+"",n=t.currency===void 0?"":t.currency[1]+"",i=t.decimal===void 0?".":t.decimal+"",a=t.numerals===void 0?w5:$L(_Z.call(t.numerals,String)),s=t.percent===void 0?"%":t.percent+"",l=t.minus===void 0?"\u2212":t.minus+"",u=t.nan===void 0?"NaN":t.nan+"";function h(d){d=Nf(d);var p=d.fill,m=d.align,g=d.sign,y=d.symbol,v=d.zero,x=d.width,b=d.comma,T=d.precision,E=d.trim,w=d.type;w==="n"?(b=!0,w="g"):WL[w]||(T===void 0&&(T=12),E=!0,w="g"),(v||p==="0"&&m==="=")&&(v=!0,p="0",m="=");var k=y==="$"?r:y==="#"&&/[boxX]/.test(w)?"0"+w.toLowerCase():"",S=y==="$"?n:/[%p]/.test(w)?s:"",A=WL[w],L=/[defgprs%]/.test(w);T=T===void 0?6:/[gprs]/.test(w)?Math.max(1,Math.min(21,T)):Math.max(0,Math.min(20,T));function I(N){var C=k,_=S,D,M,R;if(w==="c")_=A(N)+_,N="";else{N=+N;var P=N<0||1/N<0;if(N=isNaN(N)?u:A(Math.abs(N),T),E&&(N=GL(N)),P&&+N==0&&g!=="+"&&(P=!1),C=(P?g==="("?g:l:g==="-"||g==="("?"":g)+C,_=(w==="s"?DZ[8+VL/3]:"")+_+(P&&g==="("?")":""),L){for(D=-1,M=N.length;++DR||R>57){_=(R===46?i+N.slice(D+1):N.slice(D))+_,N=N.slice(0,D);break}}}b&&!v&&(N=e(N,1/0));var B=C.length+N.length+_.length,F=B>1)+C+N+_+F.slice(B);break;default:N=F+C+N+_;break}return a(N)}return o(I,"format"),I.toString=function(){return d+""},I}o(h,"newFormat");function f(d,p){var m=h((d=Nf(d),d.type="f",d)),g=Math.max(-8,Math.min(8,Math.floor(ac(p)/3)))*3,y=Math.pow(10,-g),v=DZ[8+g/3];return function(x){return m(y*x)+v}}return o(f,"formatPrefix"),{format:h,formatPrefix:f}}var _Z,DZ,RZ=O(()=>{"use strict";px();wZ();kZ();zL();EZ();CZ();UL();AZ();_Z=Array.prototype.map,DZ=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];o(HL,"default")});function YL(t){return k5=HL(t),tu=k5.format,E5=k5.formatPrefix,k5}var k5,tu,E5,LZ=O(()=>{"use strict";RZ();YL({thousands:",",grouping:[3],currency:["$",""]});o(YL,"defaultLocale")});function S5(t){return Math.max(0,-ac(Math.abs(t)))}var NZ=O(()=>{"use strict";px();o(S5,"default")});function C5(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(ac(e)/3)))*3-ac(Math.abs(t)))}var MZ=O(()=>{"use strict";px();o(C5,"default")});function A5(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,ac(e)-ac(t))+1}var IZ=O(()=>{"use strict";px();o(A5,"default")});var jL=O(()=>{"use strict";LZ();zL();NZ();MZ();IZ()});var OZ=O(()=>{"use strict"});function VLe(t){var e=0,r=t.children,n=r&&r.length;if(!n)e=1;else for(;--n>=0;)e+=r[n].value;t.value=e}function XL(){return this.eachAfter(VLe)}var PZ=O(()=>{"use strict";o(VLe,"count");o(XL,"default")});function KL(t,e){let r=-1;for(let n of this)t.call(e,n,++r,this);return this}var BZ=O(()=>{"use strict";o(KL,"default")});function QL(t,e){for(var r=this,n=[r],i,a,s=-1;r=n.pop();)if(t.call(e,r,++s,this),i=r.children)for(a=i.length-1;a>=0;--a)n.push(i[a]);return this}var FZ=O(()=>{"use strict";o(QL,"default")});function ZL(t,e){for(var r=this,n=[r],i=[],a,s,l,u=-1;r=n.pop();)if(i.push(r),a=r.children)for(s=0,l=a.length;s{"use strict";o(ZL,"default")});function JL(t,e){let r=-1;for(let n of this)if(t.call(e,n,++r,this))return n}var zZ=O(()=>{"use strict";o(JL,"default")});function e9(t){return this.eachAfter(function(e){for(var r=+t(e.data)||0,n=e.children,i=n&&n.length;--i>=0;)r+=n[i].value;e.value=r})}var GZ=O(()=>{"use strict";o(e9,"default")});function t9(t){return this.eachBefore(function(e){e.children&&e.children.sort(t)})}var VZ=O(()=>{"use strict";o(t9,"default")});function r9(t){for(var e=this,r=qLe(e,t),n=[e];e!==r;)e=e.parent,n.push(e);for(var i=n.length;t!==r;)n.splice(i,0,t),t=t.parent;return n}function qLe(t,e){if(t===e)return t;var r=t.ancestors(),n=e.ancestors(),i=null;for(t=r.pop(),e=n.pop();t===e;)i=t,t=r.pop(),e=n.pop();return i}var qZ=O(()=>{"use strict";o(r9,"default");o(qLe,"leastCommonAncestor")});function n9(){for(var t=this,e=[t];t=t.parent;)e.push(t);return e}var UZ=O(()=>{"use strict";o(n9,"default")});function i9(){return Array.from(this)}var WZ=O(()=>{"use strict";o(i9,"default")});function a9(){var t=[];return this.eachBefore(function(e){e.children||t.push(e)}),t}var HZ=O(()=>{"use strict";o(a9,"default")});function s9(){var t=this,e=[];return t.each(function(r){r!==t&&e.push({source:r.parent,target:r})}),e}var YZ=O(()=>{"use strict";o(s9,"default")});function*o9(){var t=this,e,r=[t],n,i,a;do for(e=r.reverse(),r=[];t=e.pop();)if(yield t,n=t.children)for(i=0,a=n.length;i{"use strict";o(o9,"default")});function Mg(t,e){t instanceof Map?(t=[void 0,t],e===void 0&&(e=HLe)):e===void 0&&(e=WLe);for(var r=new mx(t),n,i=[r],a,s,l,u;n=i.pop();)if((s=e(n.data))&&(u=(s=Array.from(s)).length))for(n.children=s,l=u-1;l>=0;--l)i.push(a=s[l]=new mx(s[l])),a.parent=n,a.depth=n.depth+1;return r.eachBefore(jLe)}function ULe(){return Mg(this).eachBefore(YLe)}function WLe(t){return t.children}function HLe(t){return Array.isArray(t)?t[1]:null}function YLe(t){t.data.value!==void 0&&(t.value=t.data.value),t.data=t.data.data}function jLe(t){var e=0;do t.height=e;while((t=t.parent)&&t.height<++e)}function mx(t){this.data=t,this.depth=this.height=0,this.parent=null}var XZ=O(()=>{"use strict";PZ();BZ();FZ();$Z();zZ();GZ();VZ();qZ();UZ();WZ();HZ();YZ();jZ();o(Mg,"hierarchy");o(ULe,"node_copy");o(WLe,"objectChildren");o(HLe,"mapChildren");o(YLe,"copyData");o(jLe,"computeHeight");o(mx,"Node");mx.prototype=Mg.prototype={constructor:mx,count:XL,each:KL,eachAfter:ZL,eachBefore:QL,find:JL,sum:e9,sort:t9,path:r9,ancestors:n9,descendants:i9,leaves:a9,links:s9,copy:ULe,[Symbol.iterator]:o9}});function KZ(t){if(typeof t!="function")throw new Error;return t}var QZ=O(()=>{"use strict";o(KZ,"required")});function Ig(){return 0}function Kp(t){return function(){return t}}var ZZ=O(()=>{"use strict";o(Ig,"constantZero");o(Kp,"default")});function l9(t){t.x0=Math.round(t.x0),t.y0=Math.round(t.y0),t.x1=Math.round(t.x1),t.y1=Math.round(t.y1)}var JZ=O(()=>{"use strict";o(l9,"default")});function c9(t,e,r,n,i){for(var a=t.children,s,l=-1,u=a.length,h=t.value&&(n-e)/t.value;++l{"use strict";o(c9,"default")});function u9(t,e,r,n,i){for(var a=t.children,s,l=-1,u=a.length,h=t.value&&(i-r)/t.value;++l{"use strict";o(u9,"default")});function KLe(t,e,r,n,i,a){for(var s=[],l=e.children,u,h,f=0,d=0,p=l.length,m,g,y=e.value,v,x,b,T,E,w,k;fb&&(b=h),k=v*v*w,T=Math.max(b/k,k/x),T>E){v-=h;break}E=T}s.push(u={value:v,dice:m{"use strict";eJ();tJ();XLe=(1+Math.sqrt(5))/2;o(KLe,"squarifyRatio");rJ=o((function t(e){function r(n,i,a,s,l){KLe(e,n,i,a,s,l)}return o(r,"squarify"),r.ratio=function(n){return t((n=+n)>1?n:1)},r}),"custom")(XLe)});function _5(){var t=rJ,e=!1,r=1,n=1,i=[0],a=Ig,s=Ig,l=Ig,u=Ig,h=Ig;function f(p){return p.x0=p.y0=0,p.x1=r,p.y1=n,p.eachBefore(d),i=[0],e&&p.eachBefore(l9),p}o(f,"treemap");function d(p){var m=i[p.depth],g=p.x0+m,y=p.y0+m,v=p.x1-m,x=p.y1-m;v{"use strict";JZ();nJ();QZ();ZZ();o(_5,"default")});var aJ=O(()=>{"use strict";XZ();iJ()});var sJ=O(()=>{"use strict"});var oJ=O(()=>{"use strict"});function Mf(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t);break}return this}var gx=O(()=>{"use strict";o(Mf,"initRange")});function Fo(){var t=new xg,e=[],r=[],n=h9;function i(a){let s=t.get(a);if(s===void 0){if(n!==h9)return n;t.set(a,s=e.push(a)-1)}return r[s%r.length]}return o(i,"scale"),i.domain=function(a){if(!arguments.length)return e.slice();e=[],t=new xg;for(let s of a)t.has(s)||t.set(s,e.push(s)-1);return i},i.range=function(a){return arguments.length?(r=Array.from(a),i):r.slice()},i.unknown=function(a){return arguments.length?(n=a,i):n},i.copy=function(){return Fo(e,r).unknown(n)},Mf.apply(i,arguments),i}var h9,f9=O(()=>{"use strict";Cf();gx();h9=Symbol("implicit");o(Fo,"ordinal")});function Og(){var t=Fo().unknown(void 0),e=t.domain,r=t.range,n=0,i=1,a,s,l=!1,u=0,h=0,f=.5;delete t.unknown;function d(){var p=e().length,m=i{"use strict";Cf();gx();f9();o(Og,"band")});function d9(t){return function(){return t}}var cJ=O(()=>{"use strict";o(d9,"constants")});function p9(t){return+t}var uJ=O(()=>{"use strict";o(p9,"number")});function Pg(t){return t}function m9(t,e){return(e-=t=+t)?function(r){return(r-t)/e}:d9(isNaN(e)?NaN:.5)}function QLe(t,e){var r;return t>e&&(r=t,t=e,e=r),function(n){return Math.max(t,Math.min(e,n))}}function ZLe(t,e,r){var n=t[0],i=t[1],a=e[0],s=e[1];return i2?JLe:ZLe,u=h=null,d}o(f,"rescale");function d(p){return p==null||isNaN(p=+p)?a:(u||(u=l(t.map(n),e,r)))(n(s(p)))}return o(d,"scale"),d.invert=function(p){return s(i((h||(h=l(e,t.map(n),da)))(p)))},d.domain=function(p){return arguments.length?(t=Array.from(p,p9),f()):t.slice()},d.range=function(p){return arguments.length?(e=Array.from(p),f()):e.slice()},d.rangeRound=function(p){return e=Array.from(p),r=a5,f()},d.clamp=function(p){return arguments.length?(s=p?!0:Pg,f()):s!==Pg},d.interpolate=function(p){return arguments.length?(r=p,f()):r},d.unknown=function(p){return arguments.length?(a=p,d):a},function(p,m){return n=p,i=m,f()}}function yx(){return e9e()(Pg,Pg)}var hJ,g9=O(()=>{"use strict";Cf();Rg();cJ();uJ();hJ=[0,1];o(Pg,"identity");o(m9,"normalize");o(QLe,"clamper");o(ZLe,"bimap");o(JLe,"polymap");o(D5,"copy");o(e9e,"transformer");o(yx,"continuous")});function y9(t,e,r,n){var i=bg(t,e,r),a;switch(n=Nf(n??",f"),n.type){case"s":{var s=Math.max(Math.abs(t),Math.abs(e));return n.precision==null&&!isNaN(a=C5(i,s))&&(n.precision=a),E5(n,s)}case"":case"e":case"g":case"p":case"r":{n.precision==null&&!isNaN(a=A5(i,Math.max(Math.abs(t),Math.abs(e))))&&(n.precision=a-(n.type==="e"));break}case"f":case"%":{n.precision==null&&!isNaN(a=S5(i))&&(n.precision=a-(n.type==="%")*2);break}}return tu(n)}var fJ=O(()=>{"use strict";Cf();jL();o(y9,"tickFormat")});function t9e(t){var e=t.domain;return t.ticks=function(r){var n=e();return Vw(n[0],n[n.length-1],r??10)},t.tickFormat=function(r,n){var i=e();return y9(i[0],i[i.length-1],r??10,n)},t.nice=function(r){r==null&&(r=10);var n=e(),i=0,a=n.length-1,s=n[i],l=n[a],u,h,f=10;for(l0;){if(h=W2(s,l,r),h===u)return n[i]=s,n[a]=l,e(n);if(h>0)s=Math.floor(s/h)*h,l=Math.ceil(l/h)*h;else if(h<0)s=Math.ceil(s*h)/h,l=Math.floor(l*h)/h;else break;u=h}return t},t}function sc(){var t=yx();return t.copy=function(){return D5(t,sc())},Mf.apply(t,arguments),t9e(t)}var dJ=O(()=>{"use strict";Cf();g9();gx();fJ();o(t9e,"linearish");o(sc,"linear")});function v9(t,e){t=t.slice();var r=0,n=t.length-1,i=t[r],a=t[n],s;return a{"use strict";o(v9,"nice")});function In(t,e,r,n){function i(a){return t(a=arguments.length===0?new Date:new Date(+a)),a}return o(i,"interval"),i.floor=a=>(t(a=new Date(+a)),a),i.ceil=a=>(t(a=new Date(a-1)),e(a,1),t(a),a),i.round=a=>{let s=i(a),l=i.ceil(a);return a-s(e(a=new Date(+a),s==null?1:Math.floor(s)),a),i.range=(a,s,l)=>{let u=[];if(a=i.ceil(a),l=l==null?1:Math.floor(l),!(a0))return u;let h;do u.push(h=new Date(+a)),e(a,l),t(a);while(hIn(s=>{if(s>=s)for(;t(s),!a(s);)s.setTime(s-1)},(s,l)=>{if(s>=s)if(l<0)for(;++l<=0;)for(;e(s,-1),!a(s););else for(;--l>=0;)for(;e(s,1),!a(s););}),r&&(i.count=(a,s)=>(x9.setTime(+a),b9.setTime(+s),t(x9),t(b9),Math.floor(r(x9,b9))),i.every=a=>(a=Math.floor(a),!isFinite(a)||!(a>0)?null:a>1?i.filter(n?s=>n(s)%a===0:s=>i.count(0,s)%a===0):i)),i}var x9,b9,gh=O(()=>{"use strict";x9=new Date,b9=new Date;o(In,"timeInterval")});var ru,mJ,T9=O(()=>{"use strict";gh();ru=In(()=>{},(t,e)=>{t.setTime(+t+e)},(t,e)=>e-t);ru.every=t=>(t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?In(e=>{e.setTime(Math.floor(e/t)*t)},(e,r)=>{e.setTime(+e+r*t)},(e,r)=>(r-e)/t):ru);mJ=ru.range});var $o,gJ,w9=O(()=>{"use strict";gh();$o=In(t=>{t.setTime(t-t.getMilliseconds())},(t,e)=>{t.setTime(+t+e*1e3)},(t,e)=>(e-t)/1e3,t=>t.getUTCSeconds()),gJ=$o.range});var yh,r9e,R5,n9e,k9=O(()=>{"use strict";gh();yh=In(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*1e3)},(t,e)=>{t.setTime(+t+e*6e4)},(t,e)=>(e-t)/6e4,t=>t.getMinutes()),r9e=yh.range,R5=In(t=>{t.setUTCSeconds(0,0)},(t,e)=>{t.setTime(+t+e*6e4)},(t,e)=>(e-t)/6e4,t=>t.getUTCMinutes()),n9e=R5.range});var vh,i9e,L5,a9e,E9=O(()=>{"use strict";gh();vh=In(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*1e3-t.getMinutes()*6e4)},(t,e)=>{t.setTime(+t+e*36e5)},(t,e)=>(e-t)/36e5,t=>t.getHours()),i9e=vh.range,L5=In(t=>{t.setUTCMinutes(0,0,0)},(t,e)=>{t.setTime(+t+e*36e5)},(t,e)=>(e-t)/36e5,t=>t.getUTCHours()),a9e=L5.range});var gl,s9e,xx,o9e,N5,l9e,S9=O(()=>{"use strict";gh();gl=In(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*6e4)/864e5,t=>t.getDate()-1),s9e=gl.range,xx=In(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/864e5,t=>t.getUTCDate()-1),o9e=xx.range,N5=In(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/864e5,t=>Math.floor(t/864e5)),l9e=N5.range});function Jp(t){return In(e=>{e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},(e,r)=>{e.setDate(e.getDate()+r*7)},(e,r)=>(r-e-(r.getTimezoneOffset()-e.getTimezoneOffset())*6e4)/6048e5)}function e0(t){return In(e=>{e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},(e,r)=>{e.setUTCDate(e.getUTCDate()+r*7)},(e,r)=>(r-e)/6048e5)}var oc,If,M5,I5,iu,O5,P5,vJ,c9e,u9e,h9e,f9e,d9e,p9e,t0,Bg,xJ,bJ,Of,TJ,wJ,kJ,m9e,g9e,y9e,v9e,x9e,b9e,C9=O(()=>{"use strict";gh();o(Jp,"timeWeekday");oc=Jp(0),If=Jp(1),M5=Jp(2),I5=Jp(3),iu=Jp(4),O5=Jp(5),P5=Jp(6),vJ=oc.range,c9e=If.range,u9e=M5.range,h9e=I5.range,f9e=iu.range,d9e=O5.range,p9e=P5.range;o(e0,"utcWeekday");t0=e0(0),Bg=e0(1),xJ=e0(2),bJ=e0(3),Of=e0(4),TJ=e0(5),wJ=e0(6),kJ=t0.range,m9e=Bg.range,g9e=xJ.range,y9e=bJ.range,v9e=Of.range,x9e=TJ.range,b9e=wJ.range});var xh,T9e,B5,w9e,A9=O(()=>{"use strict";gh();xh=In(t=>{t.setDate(1),t.setHours(0,0,0,0)},(t,e)=>{t.setMonth(t.getMonth()+e)},(t,e)=>e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12,t=>t.getMonth()),T9e=xh.range,B5=In(t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCMonth(t.getUTCMonth()+e)},(t,e)=>e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12,t=>t.getUTCMonth()),w9e=B5.range});var zo,k9e,lc,E9e,_9=O(()=>{"use strict";gh();zo=In(t=>{t.setMonth(0,1),t.setHours(0,0,0,0)},(t,e)=>{t.setFullYear(t.getFullYear()+e)},(t,e)=>e.getFullYear()-t.getFullYear(),t=>t.getFullYear());zo.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:In(e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},(e,r)=>{e.setFullYear(e.getFullYear()+r*t)});k9e=zo.range,lc=In(t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCFullYear(t.getUTCFullYear()+e)},(t,e)=>e.getUTCFullYear()-t.getUTCFullYear(),t=>t.getUTCFullYear());lc.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:In(e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,r)=>{e.setUTCFullYear(e.getUTCFullYear()+r*t)});E9e=lc.range});function SJ(t,e,r,n,i,a){let s=[[$o,1,1e3],[$o,5,5*1e3],[$o,15,15*1e3],[$o,30,30*1e3],[a,1,6e4],[a,5,5*6e4],[a,15,15*6e4],[a,30,30*6e4],[i,1,36e5],[i,3,3*36e5],[i,6,6*36e5],[i,12,12*36e5],[n,1,864e5],[n,2,2*864e5],[r,1,6048e5],[e,1,2592e6],[e,3,3*2592e6],[t,1,31536e6]];function l(h,f,d){let p=fv).right(s,p);if(m===s.length)return t.every(bg(h/31536e6,f/31536e6,d));if(m===0)return ru.every(Math.max(bg(h,f,d),1));let[g,y]=s[p/s[m-1][2]{"use strict";Cf();T9();w9();k9();E9();S9();C9();A9();_9();o(SJ,"ticker");[C9e,A9e]=SJ(lc,B5,t0,N5,L5,R5),[D9,R9]=SJ(zo,xh,oc,gl,vh,yh)});var F5=O(()=>{"use strict";T9();w9();k9();E9();S9();C9();A9();_9();CJ()});function L9(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function N9(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function bx(t,e,r){return{y:t,m:e,d:r,H:0,M:0,S:0,L:0}}function M9(t){var e=t.dateTime,r=t.date,n=t.time,i=t.periods,a=t.days,s=t.shortDays,l=t.months,u=t.shortMonths,h=Tx(i),f=wx(i),d=Tx(a),p=wx(a),m=Tx(s),g=wx(s),y=Tx(l),v=wx(l),x=Tx(u),b=wx(u),T={a:P,A:B,b:F,B:G,c:null,d:NJ,e:NJ,f:K9e,g:sNe,G:lNe,H:Y9e,I:j9e,j:X9e,L:BJ,m:Q9e,M:Z9e,p:$,q:V,Q:OJ,s:PJ,S:J9e,u:eNe,U:tNe,V:rNe,w:nNe,W:iNe,x:null,X:null,y:aNe,Y:oNe,Z:cNe,"%":IJ},E={a:X,A:Q,b:H,B:ie,c:null,d:MJ,e:MJ,f:dNe,g:kNe,G:SNe,H:uNe,I:hNe,j:fNe,L:$J,m:pNe,M:mNe,p:Y,q:le,Q:OJ,s:PJ,S:gNe,u:yNe,U:vNe,V:xNe,w:bNe,W:TNe,x:null,X:null,y:wNe,Y:ENe,Z:CNe,"%":IJ},w={a:I,A:N,b:C,B:_,c:D,d:RJ,e:RJ,f:q9e,g:DJ,G:_J,H:LJ,I:LJ,j:$9e,L:V9e,m:F9e,M:z9e,p:L,q:B9e,Q:W9e,s:H9e,S:G9e,u:N9e,U:M9e,V:I9e,w:L9e,W:O9e,x:M,X:R,y:DJ,Y:_J,Z:P9e,"%":U9e};T.x=k(r,T),T.X=k(n,T),T.c=k(e,T),E.x=k(r,E),E.X=k(n,E),E.c=k(e,E);function k(ee,J){return function(te){var Z=[],xe=-1,de=0,Se=ee.length,Me,ke,we;for(te instanceof Date||(te=new Date(+te));++xe53)return null;"w"in Z||(Z.w=1),"Z"in Z?(de=N9(bx(Z.y,0,1)),Se=de.getUTCDay(),de=Se>4||Se===0?Bg.ceil(de):Bg(de),de=xx.offset(de,(Z.V-1)*7),Z.y=de.getUTCFullYear(),Z.m=de.getUTCMonth(),Z.d=de.getUTCDate()+(Z.w+6)%7):(de=L9(bx(Z.y,0,1)),Se=de.getDay(),de=Se>4||Se===0?If.ceil(de):If(de),de=gl.offset(de,(Z.V-1)*7),Z.y=de.getFullYear(),Z.m=de.getMonth(),Z.d=de.getDate()+(Z.w+6)%7)}else("W"in Z||"U"in Z)&&("w"in Z||(Z.w="u"in Z?Z.u%7:"W"in Z?1:0),Se="Z"in Z?N9(bx(Z.y,0,1)).getUTCDay():L9(bx(Z.y,0,1)).getDay(),Z.m=0,Z.d="W"in Z?(Z.w+6)%7+Z.W*7-(Se+5)%7:Z.w+Z.U*7-(Se+6)%7);return"Z"in Z?(Z.H+=Z.Z/100|0,Z.M+=Z.Z%100,N9(Z)):L9(Z)}}o(S,"newParse");function A(ee,J,te,Z){for(var xe=0,de=J.length,Se=te.length,Me,ke;xe=Se)return-1;if(Me=J.charCodeAt(xe++),Me===37){if(Me=J.charAt(xe++),ke=w[Me in AJ?J.charAt(xe++):Me],!ke||(Z=ke(ee,te,Z))<0)return-1}else if(Me!=te.charCodeAt(Z++))return-1}return Z}o(A,"parseSpecifier");function L(ee,J,te){var Z=h.exec(J.slice(te));return Z?(ee.p=f.get(Z[0].toLowerCase()),te+Z[0].length):-1}o(L,"parsePeriod");function I(ee,J,te){var Z=m.exec(J.slice(te));return Z?(ee.w=g.get(Z[0].toLowerCase()),te+Z[0].length):-1}o(I,"parseShortWeekday");function N(ee,J,te){var Z=d.exec(J.slice(te));return Z?(ee.w=p.get(Z[0].toLowerCase()),te+Z[0].length):-1}o(N,"parseWeekday");function C(ee,J,te){var Z=x.exec(J.slice(te));return Z?(ee.m=b.get(Z[0].toLowerCase()),te+Z[0].length):-1}o(C,"parseShortMonth");function _(ee,J,te){var Z=y.exec(J.slice(te));return Z?(ee.m=v.get(Z[0].toLowerCase()),te+Z[0].length):-1}o(_,"parseMonth");function D(ee,J,te){return A(ee,e,J,te)}o(D,"parseLocaleDateTime");function M(ee,J,te){return A(ee,r,J,te)}o(M,"parseLocaleDate");function R(ee,J,te){return A(ee,n,J,te)}o(R,"parseLocaleTime");function P(ee){return s[ee.getDay()]}o(P,"formatShortWeekday");function B(ee){return a[ee.getDay()]}o(B,"formatWeekday");function F(ee){return u[ee.getMonth()]}o(F,"formatShortMonth");function G(ee){return l[ee.getMonth()]}o(G,"formatMonth");function $(ee){return i[+(ee.getHours()>=12)]}o($,"formatPeriod");function V(ee){return 1+~~(ee.getMonth()/3)}o(V,"formatQuarter");function X(ee){return s[ee.getUTCDay()]}o(X,"formatUTCShortWeekday");function Q(ee){return a[ee.getUTCDay()]}o(Q,"formatUTCWeekday");function H(ee){return u[ee.getUTCMonth()]}o(H,"formatUTCShortMonth");function ie(ee){return l[ee.getUTCMonth()]}o(ie,"formatUTCMonth");function Y(ee){return i[+(ee.getUTCHours()>=12)]}o(Y,"formatUTCPeriod");function le(ee){return 1+~~(ee.getUTCMonth()/3)}return o(le,"formatUTCQuarter"),{format:o(function(ee){var J=k(ee+="",T);return J.toString=function(){return ee},J},"format"),parse:o(function(ee){var J=S(ee+="",!1);return J.toString=function(){return ee},J},"parse"),utcFormat:o(function(ee){var J=k(ee+="",E);return J.toString=function(){return ee},J},"utcFormat"),utcParse:o(function(ee){var J=S(ee+="",!0);return J.toString=function(){return ee},J},"utcParse")}}function hn(t,e,r){var n=t<0?"-":"",i=(n?-t:t)+"",a=i.length;return n+(a[e.toLowerCase(),r]))}function L9e(t,e,r){var n=pa.exec(e.slice(r,r+1));return n?(t.w=+n[0],r+n[0].length):-1}function N9e(t,e,r){var n=pa.exec(e.slice(r,r+1));return n?(t.u=+n[0],r+n[0].length):-1}function M9e(t,e,r){var n=pa.exec(e.slice(r,r+2));return n?(t.U=+n[0],r+n[0].length):-1}function I9e(t,e,r){var n=pa.exec(e.slice(r,r+2));return n?(t.V=+n[0],r+n[0].length):-1}function O9e(t,e,r){var n=pa.exec(e.slice(r,r+2));return n?(t.W=+n[0],r+n[0].length):-1}function _J(t,e,r){var n=pa.exec(e.slice(r,r+4));return n?(t.y=+n[0],r+n[0].length):-1}function DJ(t,e,r){var n=pa.exec(e.slice(r,r+2));return n?(t.y=+n[0]+(+n[0]>68?1900:2e3),r+n[0].length):-1}function P9e(t,e,r){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(r,r+6));return n?(t.Z=n[1]?0:-(n[2]+(n[3]||"00")),r+n[0].length):-1}function B9e(t,e,r){var n=pa.exec(e.slice(r,r+1));return n?(t.q=n[0]*3-3,r+n[0].length):-1}function F9e(t,e,r){var n=pa.exec(e.slice(r,r+2));return n?(t.m=n[0]-1,r+n[0].length):-1}function RJ(t,e,r){var n=pa.exec(e.slice(r,r+2));return n?(t.d=+n[0],r+n[0].length):-1}function $9e(t,e,r){var n=pa.exec(e.slice(r,r+3));return n?(t.m=0,t.d=+n[0],r+n[0].length):-1}function LJ(t,e,r){var n=pa.exec(e.slice(r,r+2));return n?(t.H=+n[0],r+n[0].length):-1}function z9e(t,e,r){var n=pa.exec(e.slice(r,r+2));return n?(t.M=+n[0],r+n[0].length):-1}function G9e(t,e,r){var n=pa.exec(e.slice(r,r+2));return n?(t.S=+n[0],r+n[0].length):-1}function V9e(t,e,r){var n=pa.exec(e.slice(r,r+3));return n?(t.L=+n[0],r+n[0].length):-1}function q9e(t,e,r){var n=pa.exec(e.slice(r,r+6));return n?(t.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function U9e(t,e,r){var n=_9e.exec(e.slice(r,r+1));return n?r+n[0].length:-1}function W9e(t,e,r){var n=pa.exec(e.slice(r));return n?(t.Q=+n[0],r+n[0].length):-1}function H9e(t,e,r){var n=pa.exec(e.slice(r));return n?(t.s=+n[0],r+n[0].length):-1}function NJ(t,e){return hn(t.getDate(),e,2)}function Y9e(t,e){return hn(t.getHours(),e,2)}function j9e(t,e){return hn(t.getHours()%12||12,e,2)}function X9e(t,e){return hn(1+gl.count(zo(t),t),e,3)}function BJ(t,e){return hn(t.getMilliseconds(),e,3)}function K9e(t,e){return BJ(t,e)+"000"}function Q9e(t,e){return hn(t.getMonth()+1,e,2)}function Z9e(t,e){return hn(t.getMinutes(),e,2)}function J9e(t,e){return hn(t.getSeconds(),e,2)}function eNe(t){var e=t.getDay();return e===0?7:e}function tNe(t,e){return hn(oc.count(zo(t)-1,t),e,2)}function FJ(t){var e=t.getDay();return e>=4||e===0?iu(t):iu.ceil(t)}function rNe(t,e){return t=FJ(t),hn(iu.count(zo(t),t)+(zo(t).getDay()===4),e,2)}function nNe(t){return t.getDay()}function iNe(t,e){return hn(If.count(zo(t)-1,t),e,2)}function aNe(t,e){return hn(t.getFullYear()%100,e,2)}function sNe(t,e){return t=FJ(t),hn(t.getFullYear()%100,e,2)}function oNe(t,e){return hn(t.getFullYear()%1e4,e,4)}function lNe(t,e){var r=t.getDay();return t=r>=4||r===0?iu(t):iu.ceil(t),hn(t.getFullYear()%1e4,e,4)}function cNe(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+hn(e/60|0,"0",2)+hn(e%60,"0",2)}function MJ(t,e){return hn(t.getUTCDate(),e,2)}function uNe(t,e){return hn(t.getUTCHours(),e,2)}function hNe(t,e){return hn(t.getUTCHours()%12||12,e,2)}function fNe(t,e){return hn(1+xx.count(lc(t),t),e,3)}function $J(t,e){return hn(t.getUTCMilliseconds(),e,3)}function dNe(t,e){return $J(t,e)+"000"}function pNe(t,e){return hn(t.getUTCMonth()+1,e,2)}function mNe(t,e){return hn(t.getUTCMinutes(),e,2)}function gNe(t,e){return hn(t.getUTCSeconds(),e,2)}function yNe(t){var e=t.getUTCDay();return e===0?7:e}function vNe(t,e){return hn(t0.count(lc(t)-1,t),e,2)}function zJ(t){var e=t.getUTCDay();return e>=4||e===0?Of(t):Of.ceil(t)}function xNe(t,e){return t=zJ(t),hn(Of.count(lc(t),t)+(lc(t).getUTCDay()===4),e,2)}function bNe(t){return t.getUTCDay()}function TNe(t,e){return hn(Bg.count(lc(t)-1,t),e,2)}function wNe(t,e){return hn(t.getUTCFullYear()%100,e,2)}function kNe(t,e){return t=zJ(t),hn(t.getUTCFullYear()%100,e,2)}function ENe(t,e){return hn(t.getUTCFullYear()%1e4,e,4)}function SNe(t,e){var r=t.getUTCDay();return t=r>=4||r===0?Of(t):Of.ceil(t),hn(t.getUTCFullYear()%1e4,e,4)}function CNe(){return"+0000"}function IJ(){return"%"}function OJ(t){return+t}function PJ(t){return Math.floor(+t/1e3)}var AJ,pa,_9e,D9e,GJ=O(()=>{"use strict";F5();o(L9,"localDate");o(N9,"utcDate");o(bx,"newDate");o(M9,"formatLocale");AJ={"-":"",_:" ",0:"0"},pa=/^\s*\d+/,_9e=/^%/,D9e=/[\\^$*+?|[\]().{}]/g;o(hn,"pad");o(R9e,"requote");o(Tx,"formatRe");o(wx,"formatLookup");o(L9e,"parseWeekdayNumberSunday");o(N9e,"parseWeekdayNumberMonday");o(M9e,"parseWeekNumberSunday");o(I9e,"parseWeekNumberISO");o(O9e,"parseWeekNumberMonday");o(_J,"parseFullYear");o(DJ,"parseYear");o(P9e,"parseZone");o(B9e,"parseQuarter");o(F9e,"parseMonthNumber");o(RJ,"parseDayOfMonth");o($9e,"parseDayOfYear");o(LJ,"parseHour24");o(z9e,"parseMinutes");o(G9e,"parseSeconds");o(V9e,"parseMilliseconds");o(q9e,"parseMicroseconds");o(U9e,"parseLiteralPercent");o(W9e,"parseUnixTimestamp");o(H9e,"parseUnixTimestampSeconds");o(NJ,"formatDayOfMonth");o(Y9e,"formatHour24");o(j9e,"formatHour12");o(X9e,"formatDayOfYear");o(BJ,"formatMilliseconds");o(K9e,"formatMicroseconds");o(Q9e,"formatMonthNumber");o(Z9e,"formatMinutes");o(J9e,"formatSeconds");o(eNe,"formatWeekdayNumberMonday");o(tNe,"formatWeekNumberSunday");o(FJ,"dISO");o(rNe,"formatWeekNumberISO");o(nNe,"formatWeekdayNumberSunday");o(iNe,"formatWeekNumberMonday");o(aNe,"formatYear");o(sNe,"formatYearISO");o(oNe,"formatFullYear");o(lNe,"formatFullYearISO");o(cNe,"formatZone");o(MJ,"formatUTCDayOfMonth");o(uNe,"formatUTCHour24");o(hNe,"formatUTCHour12");o(fNe,"formatUTCDayOfYear");o($J,"formatUTCMilliseconds");o(dNe,"formatUTCMicroseconds");o(pNe,"formatUTCMonthNumber");o(mNe,"formatUTCMinutes");o(gNe,"formatUTCSeconds");o(yNe,"formatUTCWeekdayNumberMonday");o(vNe,"formatUTCWeekNumberSunday");o(zJ,"UTCdISO");o(xNe,"formatUTCWeekNumberISO");o(bNe,"formatUTCWeekdayNumberSunday");o(TNe,"formatUTCWeekNumberMonday");o(wNe,"formatUTCYear");o(kNe,"formatUTCYearISO");o(ENe,"formatUTCFullYear");o(SNe,"formatUTCFullYearISO");o(CNe,"formatUTCZone");o(IJ,"formatLiteralPercent");o(OJ,"formatUnixTimestamp");o(PJ,"formatUnixTimestampSeconds")});function I9(t){return Fg=M9(t),r0=Fg.format,VJ=Fg.parse,qJ=Fg.utcFormat,UJ=Fg.utcParse,Fg}var Fg,r0,VJ,qJ,UJ,WJ=O(()=>{"use strict";GJ();I9({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});o(I9,"defaultLocale")});var O9=O(()=>{"use strict";WJ()});function ANe(t){return new Date(t)}function _Ne(t){return t instanceof Date?+t:+new Date(+t)}function HJ(t,e,r,n,i,a,s,l,u,h){var f=yx(),d=f.invert,p=f.domain,m=h(".%L"),g=h(":%S"),y=h("%I:%M"),v=h("%I %p"),x=h("%a %d"),b=h("%b %d"),T=h("%B"),E=h("%Y");function w(k){return(u(k){"use strict";F5();O9();g9();gx();pJ();o(ANe,"date");o(_Ne,"number");o(HJ,"calendar");o($5,"time")});var jJ=O(()=>{"use strict";lJ();dJ();f9();YJ()});function P9(t){for(var e=t.length/6|0,r=new Array(e),n=0;n{"use strict";o(P9,"default")});var B9,KJ=O(()=>{"use strict";XJ();B9=P9("4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab")});var QJ=O(()=>{"use strict";KJ()});function ei(t){return o(function(){return t},"constant")}var z5=O(()=>{"use strict";o(ei,"default")});function JJ(t){return t>1?0:t<-1?$g:Math.acos(t)}function $9(t){return t>=1?kx:t<=-1?-kx:Math.asin(t)}var F9,Ia,Pf,ZJ,G5,cc,n0,ma,$g,kx,zg,V5=O(()=>{"use strict";F9=Math.abs,Ia=Math.atan2,Pf=Math.cos,ZJ=Math.max,G5=Math.min,cc=Math.sin,n0=Math.sqrt,ma=1e-12,$g=Math.PI,kx=$g/2,zg=2*$g;o(JJ,"acos");o($9,"asin")});function q5(t){let e=3;return t.digits=function(r){if(!arguments.length)return e;if(r==null)e=null;else{let n=Math.floor(r);if(!(n>=0))throw new RangeError(`invalid digits: ${r}`);e=n}return t},()=>new jp(e)}var z9=O(()=>{"use strict";PL();o(q5,"withPath")});function DNe(t){return t.innerRadius}function RNe(t){return t.outerRadius}function LNe(t){return t.startAngle}function NNe(t){return t.endAngle}function MNe(t){return t&&t.padAngle}function INe(t,e,r,n,i,a,s,l){var u=r-t,h=n-e,f=s-i,d=l-a,p=d*u-f*h;if(!(p*pD*D+M*M&&(A=I,L=N),{cx:A,cy:L,x01:-f,y01:-d,x11:A*(i/w-1),y11:L*(i/w-1)}}function uc(){var t=DNe,e=RNe,r=ei(0),n=null,i=LNe,a=NNe,s=MNe,l=null,u=q5(h);function h(){var f,d,p=+t.apply(this,arguments),m=+e.apply(this,arguments),g=i.apply(this,arguments)-kx,y=a.apply(this,arguments)-kx,v=F9(y-g),x=y>g;if(l||(l=f=u()),mma))l.moveTo(0,0);else if(v>zg-ma)l.moveTo(m*Pf(g),m*cc(g)),l.arc(0,0,m,g,y,!x),p>ma&&(l.moveTo(p*Pf(y),p*cc(y)),l.arc(0,0,p,y,g,x));else{var b=g,T=y,E=g,w=y,k=v,S=v,A=s.apply(this,arguments)/2,L=A>ma&&(n?+n.apply(this,arguments):n0(p*p+m*m)),I=G5(F9(m-p)/2,+r.apply(this,arguments)),N=I,C=I,_,D;if(L>ma){var M=$9(L/p*cc(A)),R=$9(L/m*cc(A));(k-=M*2)>ma?(M*=x?1:-1,E+=M,w-=M):(k=0,E=w=(g+y)/2),(S-=R*2)>ma?(R*=x?1:-1,b+=R,T-=R):(S=0,b=T=(g+y)/2)}var P=m*Pf(b),B=m*cc(b),F=p*Pf(w),G=p*cc(w);if(I>ma){var $=m*Pf(T),V=m*cc(T),X=p*Pf(E),Q=p*cc(E),H;if(v<$g)if(H=INe(P,B,X,Q,$,V,F,G)){var ie=P-H[0],Y=B-H[1],le=$-H[0],ee=V-H[1],J=1/cc(JJ((ie*le+Y*ee)/(n0(ie*ie+Y*Y)*n0(le*le+ee*ee)))/2),te=n0(H[0]*H[0]+H[1]*H[1]);N=G5(I,(p-te)/(J-1)),C=G5(I,(m-te)/(J+1))}else N=C=0}S>ma?C>ma?(_=U5(X,Q,P,B,m,C,x),D=U5($,V,F,G,m,C,x),l.moveTo(_.cx+_.x01,_.cy+_.y01),Cma)||!(k>ma)?l.lineTo(F,G):N>ma?(_=U5(F,G,$,V,p,-N,x),D=U5(P,B,X,Q,p,-N,x),l.lineTo(_.cx+_.x01,_.cy+_.y01),N{"use strict";z5();V5();z9();o(DNe,"arcInnerRadius");o(RNe,"arcOuterRadius");o(LNe,"arcStartAngle");o(NNe,"arcEndAngle");o(MNe,"arcPadAngle");o(INe,"intersect");o(U5,"cornerTangents");o(uc,"default")});function Ex(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}var j6t,G9=O(()=>{"use strict";j6t=Array.prototype.slice;o(Ex,"default")});function tee(t){this._context=t}function au(t){return new tee(t)}var V9=O(()=>{"use strict";o(tee,"Linear");tee.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._point=0},"lineStart"),lineEnd:o(function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e);break}},"point")};o(au,"default")});function ree(t){return t[0]}function nee(t){return t[1]}var iee=O(()=>{"use strict";o(ree,"x");o(nee,"y")});function hc(t,e){var r=ei(!0),n=null,i=au,a=null,s=q5(l);t=typeof t=="function"?t:t===void 0?ree:ei(t),e=typeof e=="function"?e:e===void 0?nee:ei(e);function l(u){var h,f=(u=Ex(u)).length,d,p=!1,m;for(n==null&&(a=i(m=s())),h=0;h<=f;++h)!(h{"use strict";G9();z5();V9();z9();iee();o(hc,"default")});function q9(t,e){return et?1:e>=t?0:NaN}var see=O(()=>{"use strict";o(q9,"default")});function U9(t){return t}var oee=O(()=>{"use strict";o(U9,"default")});function W5(){var t=U9,e=q9,r=null,n=ei(0),i=ei(zg),a=ei(0);function s(l){var u,h=(l=Ex(l)).length,f,d,p=0,m=new Array(h),g=new Array(h),y=+n.apply(this,arguments),v=Math.min(zg,Math.max(-zg,i.apply(this,arguments)-y)),x,b=Math.min(Math.abs(v)/h,a.apply(this,arguments)),T=b*(v<0?-1:1),E;for(u=0;u0&&(p+=E);for(e!=null?m.sort(function(w,k){return e(g[w],g[k])}):r!=null&&m.sort(function(w,k){return r(l[w],l[k])}),u=0,d=p?(v-h*T)/p:0;u0?E*d:0)+T,g[f]={data:l[f],index:u,value:E,startAngle:y,endAngle:x,padAngle:b};return g}return o(s,"pie"),s.value=function(l){return arguments.length?(t=typeof l=="function"?l:ei(+l),s):t},s.sortValues=function(l){return arguments.length?(e=l,r=null,s):e},s.sort=function(l){return arguments.length?(r=l,e=null,s):r},s.startAngle=function(l){return arguments.length?(n=typeof l=="function"?l:ei(+l),s):n},s.endAngle=function(l){return arguments.length?(i=typeof l=="function"?l:ei(+l),s):i},s.padAngle=function(l){return arguments.length?(a=typeof l=="function"?l:ei(+l),s):a},s}var lee=O(()=>{"use strict";G9();z5();see();oee();V5();o(W5,"default")});function Sx(t){return new H5(t,!0)}function Cx(t){return new H5(t,!1)}var H5,cee=O(()=>{"use strict";H5=class{static{o(this,"Bump")}constructor(e,r){this._context=e,this._x=r}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(e,r){switch(e=+e,r=+r,this._point){case 0:{this._point=1,this._line?this._context.lineTo(e,r):this._context.moveTo(e,r);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+e)/2,this._y0,this._x0,r,e,r):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+r)/2,e,this._y0,e,r);break}}this._x0=e,this._y0=r}};o(Sx,"bumpX");o(Cx,"bumpY")});function Go(){}var Ax=O(()=>{"use strict";o(Go,"default")});function Gg(t,e,r){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+r)/6)}function _x(t){this._context=t}function fc(t){return new _x(t)}var Dx=O(()=>{"use strict";o(Gg,"point");o(_x,"Basis");_x.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 3:Gg(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Gg(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e},"point")};o(fc,"default")});function uee(t){this._context=t}function Y5(t){return new uee(t)}var hee=O(()=>{"use strict";Ax();Dx();o(uee,"BasisClosed");uee.prototype={areaStart:Go,areaEnd:Go,lineStart:o(function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},"lineEnd"),point:o(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:Gg(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e},"point")};o(Y5,"default")});function fee(t){this._context=t}function j5(t){return new fee(t)}var dee=O(()=>{"use strict";Dx();o(fee,"BasisOpen");fee.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},"lineStart"),lineEnd:o(function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var r=(this._x0+4*this._x1+t)/6,n=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(r,n):this._context.moveTo(r,n);break;case 3:this._point=4;default:Gg(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e},"point")};o(j5,"default")});function pee(t,e){this._basis=new _x(t),this._beta=e}var W9,mee=O(()=>{"use strict";Dx();o(pee,"Bundle");pee.prototype={lineStart:o(function(){this._x=[],this._y=[],this._basis.lineStart()},"lineStart"),lineEnd:o(function(){var t=this._x,e=this._y,r=t.length-1;if(r>0)for(var n=t[0],i=e[0],a=t[r]-n,s=e[r]-i,l=-1,u;++l<=r;)u=l/r,this._basis.point(this._beta*t[l]+(1-this._beta)*(n+u*a),this._beta*e[l]+(1-this._beta)*(i+u*s));this._x=this._y=null,this._basis.lineEnd()},"lineEnd"),point:o(function(t,e){this._x.push(+t),this._y.push(+e)},"point")};W9=o((function t(e){function r(n){return e===1?new _x(n):new pee(n,e)}return o(r,"bundle"),r.beta=function(n){return t(+n)},r}),"custom")(.85)});function Vg(t,e,r){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-e),t._y2+t._k*(t._y1-r),t._x2,t._y2)}function X5(t,e){this._context=t,this._k=(1-e)/6}var Rx,Lx=O(()=>{"use strict";o(Vg,"point");o(X5,"Cardinal");X5.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:Vg(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2,this._x1=t,this._y1=e;break;case 2:this._point=3;default:Vg(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e},"point")};Rx=o((function t(e){function r(n){return new X5(n,e)}return o(r,"cardinal"),r.tension=function(n){return t(+n)},r}),"custom")(0)});function K5(t,e){this._context=t,this._k=(1-e)/6}var H9,Y9=O(()=>{"use strict";Ax();Lx();o(K5,"CardinalClosed");K5.prototype={areaStart:Go,areaEnd:Go,lineStart:o(function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},"lineEnd"),point:o(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:Vg(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e},"point")};H9=o((function t(e){function r(n){return new K5(n,e)}return o(r,"cardinal"),r.tension=function(n){return t(+n)},r}),"custom")(0)});function Q5(t,e){this._context=t,this._k=(1-e)/6}var j9,X9=O(()=>{"use strict";Lx();o(Q5,"CardinalOpen");Q5.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},"lineStart"),lineEnd:o(function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Vg(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e},"point")};j9=o((function t(e){function r(n){return new Q5(n,e)}return o(r,"cardinal"),r.tension=function(n){return t(+n)},r}),"custom")(0)});function Nx(t,e,r){var n=t._x1,i=t._y1,a=t._x2,s=t._y2;if(t._l01_a>ma){var l=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,u=3*t._l01_a*(t._l01_a+t._l12_a);n=(n*l-t._x0*t._l12_2a+t._x2*t._l01_2a)/u,i=(i*l-t._y0*t._l12_2a+t._y2*t._l01_2a)/u}if(t._l23_a>ma){var h=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,f=3*t._l23_a*(t._l23_a+t._l12_a);a=(a*h+t._x1*t._l23_2a-e*t._l12_2a)/f,s=(s*h+t._y1*t._l23_2a-r*t._l12_2a)/f}t._context.bezierCurveTo(n,i,a,s,t._x2,t._y2)}function gee(t,e){this._context=t,this._alpha=e}var Mx,Z5=O(()=>{"use strict";V5();Lx();o(Nx,"point");o(gee,"CatmullRom");gee.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,n=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+n*n,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3;default:Nx(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e},"point")};Mx=o((function t(e){function r(n){return e?new gee(n,e):new X5(n,0)}return o(r,"catmullRom"),r.alpha=function(n){return t(+n)},r}),"custom")(.5)});function yee(t,e){this._context=t,this._alpha=e}var K9,vee=O(()=>{"use strict";Y9();Ax();Z5();o(yee,"CatmullRomClosed");yee.prototype={areaStart:Go,areaEnd:Go,lineStart:o(function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},"lineEnd"),point:o(function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,n=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+n*n,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:Nx(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e},"point")};K9=o((function t(e){function r(n){return e?new yee(n,e):new K5(n,0)}return o(r,"catmullRom"),r.alpha=function(n){return t(+n)},r}),"custom")(.5)});function xee(t,e){this._context=t,this._alpha=e}var Q9,bee=O(()=>{"use strict";X9();Z5();o(xee,"CatmullRomOpen");xee.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},"lineStart"),lineEnd:o(function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,n=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+n*n,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Nx(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e},"point")};Q9=o((function t(e){function r(n){return e?new xee(n,e):new Q5(n,0)}return o(r,"catmullRom"),r.alpha=function(n){return t(+n)},r}),"custom")(.5)});function Tee(t){this._context=t}function J5(t){return new Tee(t)}var wee=O(()=>{"use strict";Ax();o(Tee,"LinearClosed");Tee.prototype={areaStart:Go,areaEnd:Go,lineStart:o(function(){this._point=0},"lineStart"),lineEnd:o(function(){this._point&&this._context.closePath()},"lineEnd"),point:o(function(t,e){t=+t,e=+e,this._point?this._context.lineTo(t,e):(this._point=1,this._context.moveTo(t,e))},"point")};o(J5,"default")});function kee(t){return t<0?-1:1}function Eee(t,e,r){var n=t._x1-t._x0,i=e-t._x1,a=(t._y1-t._y0)/(n||i<0&&-0),s=(r-t._y1)/(i||n<0&&-0),l=(a*i+s*n)/(n+i);return(kee(a)+kee(s))*Math.min(Math.abs(a),Math.abs(s),.5*Math.abs(l))||0}function See(t,e){var r=t._x1-t._x0;return r?(3*(t._y1-t._y0)/r-e)/2:e}function Z9(t,e,r){var n=t._x0,i=t._y0,a=t._x1,s=t._y1,l=(a-n)/3;t._context.bezierCurveTo(n+l,i+l*e,a-l,s-l*r,a,s)}function ek(t){this._context=t}function Cee(t){this._context=new Aee(t)}function Aee(t){this._context=t}function Ix(t){return new ek(t)}function Ox(t){return new Cee(t)}var _ee=O(()=>{"use strict";o(kee,"sign");o(Eee,"slope3");o(See,"slope2");o(Z9,"point");o(ek,"MonotoneX");ek.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:Z9(this,this._t0,See(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){var r=NaN;if(t=+t,e=+e,!(t===this._x1&&e===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,Z9(this,See(this,r=Eee(this,t,e)),r);break;default:Z9(this,this._t0,r=Eee(this,t,e));break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=r}},"point")};o(Cee,"MonotoneY");(Cee.prototype=Object.create(ek.prototype)).point=function(t,e){ek.prototype.point.call(this,e,t)};o(Aee,"ReflectContext");Aee.prototype={moveTo:o(function(t,e){this._context.moveTo(e,t)},"moveTo"),closePath:o(function(){this._context.closePath()},"closePath"),lineTo:o(function(t,e){this._context.lineTo(e,t)},"lineTo"),bezierCurveTo:o(function(t,e,r,n,i,a){this._context.bezierCurveTo(e,t,n,r,a,i)},"bezierCurveTo")};o(Ix,"monotoneX");o(Ox,"monotoneY")});function Ree(t){this._context=t}function Dee(t){var e,r=t.length-1,n,i=new Array(r),a=new Array(r),s=new Array(r);for(i[0]=0,a[0]=2,s[0]=t[0]+2*t[1],e=1;e=0;--e)i[e]=(s[e]-i[e+1])/a[e];for(a[r-1]=(t[r]+i[r-1])/2,e=0;e{"use strict";o(Ree,"Natural");Ree.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x=[],this._y=[]},"lineStart"),lineEnd:o(function(){var t=this._x,e=this._y,r=t.length;if(r)if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),r===2)this._context.lineTo(t[1],e[1]);else for(var n=Dee(t),i=Dee(e),a=0,s=1;s{"use strict";o(tk,"Step");tk.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x=this._y=NaN,this._point=0},"lineStart"),lineEnd:o(function(){0=0&&(this._t=1-this._t,this._line=1-this._line)},"lineEnd"),point:o(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var r=this._x*(1-this._t)+t*this._t;this._context.lineTo(r,this._y),this._context.lineTo(r,e)}break}}this._x=t,this._y=e},"point")};o(Ug,"default");o(Px,"stepBefore");o(Bx,"stepAfter")});var Mee=O(()=>{"use strict";eee();aee();lee();hee();dee();Dx();cee();mee();Y9();X9();Lx();vee();bee();Z5();wee();V9();_ee();Lee();Nee()});var Iee=O(()=>{"use strict"});var Oee=O(()=>{"use strict"});function Bf(t,e,r){this.k=t,this.x=e,this.y=r}function eN(t){for(;!t.__zoom;)if(!(t=t.parentNode))return J9;return t.__zoom}var J9,tN=O(()=>{"use strict";o(Bf,"Transform");Bf.prototype={constructor:Bf,scale:o(function(t){return t===1?this:new Bf(this.k*t,this.x,this.y)},"scale"),translate:o(function(t,e){return t===0&e===0?this:new Bf(this.k,this.x+this.k*t,this.y+this.k*e)},"translate"),apply:o(function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},"apply"),applyX:o(function(t){return t*this.k+this.x},"applyX"),applyY:o(function(t){return t*this.k+this.y},"applyY"),invert:o(function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},"invert"),invertX:o(function(t){return(t-this.x)/this.k},"invertX"),invertY:o(function(t){return(t-this.y)/this.k},"invertY"),rescaleX:o(function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},"rescaleX"),rescaleY:o(function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},"rescaleY"),toString:o(function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"},"toString")};J9=new Bf(1,0,0);eN.prototype=Bf.prototype;o(eN,"transform")});var Pee=O(()=>{"use strict"});var Bee=O(()=>{"use strict";x5();Iee();Oee();tN();Pee()});var Fee=O(()=>{"use strict";Bee();tN()});var Ar=O(()=>{"use strict";Cf();HX();hZ();mZ();Ag();gZ();yZ();qD();BK();vZ();LL();xZ();TZ();jL();OZ();aJ();Rg();PL();sJ();bZ();oJ();jJ();QJ();rc();Mee();F5();O9();d5();x5();Fee()});var $ee=nr(ga=>{"use strict";Object.defineProperty(ga,"__esModule",{value:!0});ga.BLANK_URL=ga.relativeFirstCharacters=ga.whitespaceEscapeCharsRegex=ga.urlSchemeRegex=ga.ctrlCharactersRegex=ga.htmlCtrlEntityRegex=ga.htmlEntitiesRegex=ga.invalidProtocolRegex=void 0;ga.invalidProtocolRegex=/^([^\w]*)(javascript|data|vbscript)/im;ga.htmlEntitiesRegex=/&#(\w+)(^\w|;)?/g;ga.htmlCtrlEntityRegex=/&(newline|tab);/gi;ga.ctrlCharactersRegex=/[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim;ga.urlSchemeRegex=/^.+(:|:)/gim;ga.whitespaceEscapeCharsRegex=/(\\|%5[cC])((%(6[eE]|72|74))|[nrt])/g;ga.relativeFirstCharacters=[".","/"];ga.BLANK_URL="about:blank"});var Wg=nr(rk=>{"use strict";Object.defineProperty(rk,"__esModule",{value:!0});rk.sanitizeUrl=void 0;var Ja=$ee();function ONe(t){return Ja.relativeFirstCharacters.indexOf(t[0])>-1}o(ONe,"isRelativeUrlWithoutProtocol");function PNe(t){var e=t.replace(Ja.ctrlCharactersRegex,"");return e.replace(Ja.htmlEntitiesRegex,function(r,n){return String.fromCharCode(n)})}o(PNe,"decodeHtmlCharacters");function BNe(t){return URL.canParse(t)}o(BNe,"isValidUrl");function zee(t){try{return decodeURIComponent(t)}catch{return t}}o(zee,"decodeURI");function FNe(t){if(!t)return Ja.BLANK_URL;var e,r=zee(t.trim());do r=PNe(r).replace(Ja.htmlCtrlEntityRegex,"").replace(Ja.ctrlCharactersRegex,"").replace(Ja.whitespaceEscapeCharsRegex,"").trim(),r=zee(r),e=r.match(Ja.ctrlCharactersRegex)||r.match(Ja.htmlEntitiesRegex)||r.match(Ja.htmlCtrlEntityRegex)||r.match(Ja.whitespaceEscapeCharsRegex);while(e&&e.length>0);var n=r;if(!n)return Ja.BLANK_URL;if(ONe(n))return n;var i=n.trimStart(),a=i.match(Ja.urlSchemeRegex);if(!a)return n;var s=a[0].toLowerCase().trim();if(Ja.invalidProtocolRegex.test(s))return Ja.BLANK_URL;var l=i.replace(/\\/g,"/");if(s==="mailto:"||s.includes("://"))return l;if(s==="http:"||s==="https:"){if(!BNe(l))return Ja.BLANK_URL;var u=new URL(l);return u.protocol=u.protocol.toLowerCase(),u.hostname=u.hostname.toLowerCase(),u.toString()}return l}o(FNe,"sanitizeUrl");rk.sanitizeUrl=FNe});var rN,i0,nk,Gee,ik,ak,Oa,Fx,sk,a0=O(()=>{"use strict";rN=Ra(Wg(),1);Ar();Ur();i0=o((t,e)=>{let r=t.append("rect");if(r.attr("x",e.x),r.attr("y",e.y),r.attr("fill",e.fill),r.attr("stroke",e.stroke),r.attr("width",e.width),r.attr("height",e.height),e.name&&r.attr("name",e.name),e.rx&&r.attr("rx",e.rx),e.ry&&r.attr("ry",e.ry),e.attrs!==void 0)for(let n in e.attrs)r.attr(n,e.attrs[n]);return e.class&&r.attr("class",e.class),r},"drawRect"),nk=o((t,e)=>{let r={x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,stroke:e.stroke,class:"rect"};i0(t,r).lower()},"drawBackgroundRect"),Gee=o((t,e)=>{let r=e.text.replace(Ip," "),n=t.append("text");n.attr("x",e.x),n.attr("y",e.y),n.attr("class","legend"),n.style("text-anchor",e.anchor),e.class&&n.attr("class",e.class);let i=n.append("tspan");return i.attr("x",e.x+e.textMargin*2),i.text(r),n},"drawText"),ik=o((t,e,r,n)=>{let i=t.append("image");i.attr("x",e),i.attr("y",r);let a=(0,rN.sanitizeUrl)(n);i.attr("xlink:href",a)},"drawImage"),ak=o((t,e,r,n)=>{let i=t.append("use");i.attr("x",e),i.attr("y",r);let a=(0,rN.sanitizeUrl)(n);i.attr("xlink:href",`#${a}`)},"drawEmbeddedImage"),Oa=o(()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),"getNoteRect"),Fx=o(()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0}),"getTextObj"),sk=o(()=>{let t=je(".mermaidTooltip");return t.empty()&&(t=je("body").append("div").attr("class","mermaidTooltip").style("opacity",0).style("position","absolute").style("text-align","center").style("max-width","200px").style("padding","2px").style("font-size","12px").style("background","#ffffde").style("border","1px solid #333").style("border-radius","2px").style("pointer-events","none").style("z-index","100")),t},"createTooltip")});var Vee,nN,qee,$Ne,zNe,GNe,VNe,qNe,UNe,WNe,HNe,YNe,jNe,XNe,KNe,bh,dc,Uee=O(()=>{"use strict";Ur();a0();Vee=Ra(Wg(),1),nN=o(function(t,e){return i0(t,e)},"drawRect"),qee=o(function(t,e,r,n,i,a){let s=t.append("image");s.attr("width",e),s.attr("height",r),s.attr("x",n),s.attr("y",i);let l=a.startsWith("data:image/png;base64")?a:(0,Vee.sanitizeUrl)(a);s.attr("xlink:href",l)},"drawImage"),$Ne=o((t,e,r)=>{let n=t.append("g"),i=0;for(let a of e){let s=a.textColor?a.textColor:"#444444",l=a.lineColor?a.lineColor:"#444444",u=a.offsetX?parseInt(a.offsetX):0,h=a.offsetY?parseInt(a.offsetY):0,f="";if(i===0){let p=n.append("line");p.attr("x1",a.startPoint.x),p.attr("y1",a.startPoint.y),p.attr("x2",a.endPoint.x),p.attr("y2",a.endPoint.y),p.attr("stroke-width","1"),p.attr("stroke",l),p.style("fill","none"),a.type!=="rel_b"&&p.attr("marker-end","url("+f+"#arrowhead)"),(a.type==="birel"||a.type==="rel_b")&&p.attr("marker-start","url("+f+"#arrowend)"),i=-1}else{let p=n.append("path");p.attr("fill","none").attr("stroke-width","1").attr("stroke",l).attr("d","Mstartx,starty Qcontrolx,controly stopx,stopy ".replaceAll("startx",a.startPoint.x).replaceAll("starty",a.startPoint.y).replaceAll("controlx",a.startPoint.x+(a.endPoint.x-a.startPoint.x)/2-(a.endPoint.x-a.startPoint.x)/4).replaceAll("controly",a.startPoint.y+(a.endPoint.y-a.startPoint.y)/2).replaceAll("stopx",a.endPoint.x).replaceAll("stopy",a.endPoint.y)),a.type!=="rel_b"&&p.attr("marker-end","url("+f+"#arrowhead)"),(a.type==="birel"||a.type==="rel_b")&&p.attr("marker-start","url("+f+"#arrowend)")}let d=r.messageFont();bh(r)(a.label.text,n,Math.min(a.startPoint.x,a.endPoint.x)+Math.abs(a.endPoint.x-a.startPoint.x)/2+u,Math.min(a.startPoint.y,a.endPoint.y)+Math.abs(a.endPoint.y-a.startPoint.y)/2+h,a.label.width,a.label.height,{fill:s},d),a.techn&&a.techn.text!==""&&(d=r.messageFont(),bh(r)("["+a.techn.text+"]",n,Math.min(a.startPoint.x,a.endPoint.x)+Math.abs(a.endPoint.x-a.startPoint.x)/2+u,Math.min(a.startPoint.y,a.endPoint.y)+Math.abs(a.endPoint.y-a.startPoint.y)/2+r.messageFontSize+5+h,Math.max(a.label.width,a.techn.width),a.techn.height,{fill:s,"font-style":"italic"},d))}},"drawRels"),zNe=o(function(t,e,r){let n=t.append("g"),i=e.bgColor?e.bgColor:"none",a=e.borderColor?e.borderColor:"#444444",s=e.fontColor?e.fontColor:"black",l={"stroke-width":1,"stroke-dasharray":"7.0,7.0"};e.nodeType&&(l={"stroke-width":1});let u={x:e.x,y:e.y,fill:i,stroke:a,width:e.width,height:e.height,rx:2.5,ry:2.5,attrs:l};nN(n,u);let h=r.boundaryFont();h.fontWeight="bold",h.fontSize=h.fontSize+2,h.fontColor=s,bh(r)(e.label.text,n,e.x,e.y+e.label.Y,e.width,e.height,{fill:"#444444"},h),e.type&&e.type.text!==""&&(h=r.boundaryFont(),h.fontColor=s,bh(r)(e.type.text,n,e.x,e.y+e.type.Y,e.width,e.height,{fill:"#444444"},h)),e.descr&&e.descr.text!==""&&(h=r.boundaryFont(),h.fontSize=h.fontSize-2,h.fontColor=s,bh(r)(e.descr.text,n,e.x,e.y+e.descr.Y,e.width,e.height,{fill:"#444444"},h))},"drawBoundary"),GNe=o(function(t,e,r){let n=e.bgColor?e.bgColor:r[e.typeC4Shape.text+"_bg_color"],i=e.borderColor?e.borderColor:r[e.typeC4Shape.text+"_border_color"],a=e.fontColor?e.fontColor:"#FFFFFF",s="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";switch(e.typeC4Shape.text){case"person":s="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";break;case"external_person":s="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII=";break}let l=t.append("g");l.attr("class","person-man");let u=Oa();switch(e.typeC4Shape.text){case"person":case"external_person":case"system":case"external_system":case"container":case"external_container":case"component":case"external_component":u.x=e.x,u.y=e.y,u.fill=n,u.width=e.width,u.height=e.height,u.stroke=i,u.rx=2.5,u.ry=2.5,u.attrs={"stroke-width":.5},nN(l,u);break;case"system_db":case"external_system_db":case"container_db":case"external_container_db":case"component_db":case"external_component_db":l.append("path").attr("fill",n).attr("stroke-width","0.5").attr("stroke",i).attr("d","Mstartx,startyc0,-10 half,-10 half,-10c0,0 half,0 half,10l0,heightc0,10 -half,10 -half,10c0,0 -half,0 -half,-10l0,-height".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("half",e.width/2).replaceAll("height",e.height)),l.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",i).attr("d","Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("half",e.width/2));break;case"system_queue":case"external_system_queue":case"container_queue":case"external_container_queue":case"component_queue":case"external_component_queue":l.append("path").attr("fill",n).attr("stroke-width","0.5").attr("stroke",i).attr("d","Mstartx,startylwidth,0c5,0 5,half 5,halfc0,0 0,half -5,halfl-width,0c-5,0 -5,-half -5,-halfc0,0 0,-half 5,-half".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("width",e.width).replaceAll("half",e.height/2)),l.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",i).attr("d","Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half".replaceAll("startx",e.x+e.width).replaceAll("starty",e.y).replaceAll("half",e.height/2));break}let h=KNe(r,e.typeC4Shape.text);switch(l.append("text").attr("fill",a).attr("font-family",h.fontFamily).attr("font-size",h.fontSize-2).attr("font-style","italic").attr("lengthAdjust","spacing").attr("textLength",e.typeC4Shape.width).attr("x",e.x+e.width/2-e.typeC4Shape.width/2).attr("y",e.y+e.typeC4Shape.Y).text("<<"+e.typeC4Shape.text+">>"),e.typeC4Shape.text){case"person":case"external_person":qee(l,48,48,e.x+e.width/2-24,e.y+e.image.Y,s);break}let f=r[e.typeC4Shape.text+"Font"]();return f.fontWeight="bold",f.fontSize=f.fontSize+2,f.fontColor=a,bh(r)(e.label.text,l,e.x,e.y+e.label.Y,e.width,e.height,{fill:a},f),f=r[e.typeC4Shape.text+"Font"](),f.fontColor=a,e.techn&&e.techn?.text!==""?bh(r)(e.techn.text,l,e.x,e.y+e.techn.Y,e.width,e.height,{fill:a,"font-style":"italic"},f):e.type&&e.type.text!==""&&bh(r)(e.type.text,l,e.x,e.y+e.type.Y,e.width,e.height,{fill:a,"font-style":"italic"},f),e.descr&&e.descr.text!==""&&(f=r.personFont(),f.fontColor=a,bh(r)(e.descr.text,l,e.x,e.y+e.descr.Y,e.width,e.height,{fill:a},f)),e.height},"drawC4Shape"),VNe=o(function(t){t.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},"insertDatabaseIcon"),qNe=o(function(t){t.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},"insertComputerIcon"),UNe=o(function(t){t.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},"insertClockIcon"),WNe=o(function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z")},"insertArrowHead"),HNe=o(function(t){t.append("defs").append("marker").attr("id","arrowend").attr("refX",1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 10 0 L 0 5 L 10 10 z")},"insertArrowEnd"),YNe=o(function(t){t.append("defs").append("marker").attr("id","filled-head").attr("refX",18).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"insertArrowFilledHead"),jNe=o(function(t){t.append("defs").append("marker").attr("id","sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)},"insertDynamicNumber"),XNe=o(function(t){let r=t.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",16).attr("refY",4);r.append("path").attr("fill","black").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 9,2 V 6 L16,4 Z"),r.append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 0,1 L 6,7 M 6,1 L 0,7")},"insertArrowCrossHead"),KNe=o((t,e)=>({fontFamily:t[e+"FontFamily"],fontSize:t[e+"FontSize"],fontWeight:t[e+"FontWeight"]}),"getC4ShapeFont"),bh=(function(){function t(i,a,s,l,u,h,f){let d=a.append("text").attr("x",s+u/2).attr("y",l+h/2+5).style("text-anchor","middle").text(i);n(d,f)}o(t,"byText");function e(i,a,s,l,u,h,f,d){let{fontSize:p,fontFamily:m,fontWeight:g}=d,y=i.split(st.lineBreakRegex);for(let v=0;v{"use strict";QNe=typeof global=="object"&&global&&global.Object===Object&&global,lk=QNe});var ZNe,JNe,Ri,yl=O(()=>{"use strict";iN();ZNe=typeof self=="object"&&self&&self.Object===Object&&self,JNe=lk||ZNe||Function("return this")(),Ri=JNe});var eMe,ya,s0=O(()=>{"use strict";yl();eMe=Ri.Symbol,ya=eMe});function nMe(t){var e=tMe.call(t,$x),r=t[$x];try{t[$x]=void 0;var n=!0}catch{}var i=rMe.call(t);return n&&(e?t[$x]=r:delete t[$x]),i}var Wee,tMe,rMe,$x,Hee,Yee=O(()=>{"use strict";s0();Wee=Object.prototype,tMe=Wee.hasOwnProperty,rMe=Wee.toString,$x=ya?ya.toStringTag:void 0;o(nMe,"getRawTag");Hee=nMe});function sMe(t){return aMe.call(t)}var iMe,aMe,jee,Xee=O(()=>{"use strict";iMe=Object.prototype,aMe=iMe.toString;o(sMe,"objectToString");jee=sMe});function cMe(t){return t==null?t===void 0?lMe:oMe:Kee&&Kee in Object(t)?Hee(t):jee(t)}var oMe,lMe,Kee,Pa,Th=O(()=>{"use strict";s0();Yee();Xee();oMe="[object Null]",lMe="[object Undefined]",Kee=ya?ya.toStringTag:void 0;o(cMe,"baseGetTag");Pa=cMe});function uMe(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}var On,Vo=O(()=>{"use strict";o(uMe,"isObject");On=uMe});function mMe(t){if(!On(t))return!1;var e=Pa(t);return e==fMe||e==dMe||e==hMe||e==pMe}var hMe,fMe,dMe,pMe,Vi,zx=O(()=>{"use strict";Th();Vo();hMe="[object AsyncFunction]",fMe="[object Function]",dMe="[object GeneratorFunction]",pMe="[object Proxy]";o(mMe,"isFunction");Vi=mMe});var gMe,ck,Qee=O(()=>{"use strict";yl();gMe=Ri["__core-js_shared__"],ck=gMe});function yMe(t){return!!Zee&&Zee in t}var Zee,Jee,ete=O(()=>{"use strict";Qee();Zee=(function(){var t=/[^.]+$/.exec(ck&&ck.keys&&ck.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""})();o(yMe,"isMasked");Jee=yMe});function bMe(t){if(t!=null){try{return xMe.call(t)}catch{}try{return t+""}catch{}}return""}var vMe,xMe,wh,aN=O(()=>{"use strict";vMe=Function.prototype,xMe=vMe.toString;o(bMe,"toSource");wh=bMe});function _Me(t){if(!On(t)||Jee(t))return!1;var e=Vi(t)?AMe:wMe;return e.test(wh(t))}var TMe,wMe,kMe,EMe,SMe,CMe,AMe,tte,rte=O(()=>{"use strict";zx();ete();Vo();aN();TMe=/[\\^$.*+?()[\]{}|]/g,wMe=/^\[object .+?Constructor\]$/,kMe=Function.prototype,EMe=Object.prototype,SMe=kMe.toString,CMe=EMe.hasOwnProperty,AMe=RegExp("^"+SMe.call(CMe).replace(TMe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");o(_Me,"baseIsNative");tte=_Me});function DMe(t,e){return t?.[e]}var nte,ite=O(()=>{"use strict";o(DMe,"getValue");nte=DMe});function RMe(t,e){var r=nte(t,e);return tte(r)?r:void 0}var ro,Ff=O(()=>{"use strict";rte();ite();o(RMe,"getNative");ro=RMe});var LMe,kh,Gx=O(()=>{"use strict";Ff();LMe=ro(Object,"create"),kh=LMe});function NMe(){this.__data__=kh?kh(null):{},this.size=0}var ate,ste=O(()=>{"use strict";Gx();o(NMe,"hashClear");ate=NMe});function MMe(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var ote,lte=O(()=>{"use strict";o(MMe,"hashDelete");ote=MMe});function BMe(t){var e=this.__data__;if(kh){var r=e[t];return r===IMe?void 0:r}return PMe.call(e,t)?e[t]:void 0}var IMe,OMe,PMe,cte,ute=O(()=>{"use strict";Gx();IMe="__lodash_hash_undefined__",OMe=Object.prototype,PMe=OMe.hasOwnProperty;o(BMe,"hashGet");cte=BMe});function zMe(t){var e=this.__data__;return kh?e[t]!==void 0:$Me.call(e,t)}var FMe,$Me,hte,fte=O(()=>{"use strict";Gx();FMe=Object.prototype,$Me=FMe.hasOwnProperty;o(zMe,"hashHas");hte=zMe});function VMe(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=kh&&e===void 0?GMe:e,this}var GMe,dte,pte=O(()=>{"use strict";Gx();GMe="__lodash_hash_undefined__";o(VMe,"hashSet");dte=VMe});function Hg(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e{"use strict";ste();lte();ute();fte();pte();o(Hg,"Hash");Hg.prototype.clear=ate;Hg.prototype.delete=ote;Hg.prototype.get=cte;Hg.prototype.has=hte;Hg.prototype.set=dte;sN=Hg});function qMe(){this.__data__=[],this.size=0}var gte,yte=O(()=>{"use strict";o(qMe,"listCacheClear");gte=qMe});function UMe(t,e){return t===e||t!==t&&e!==e}var vl,o0=O(()=>{"use strict";o(UMe,"eq");vl=UMe});function WMe(t,e){for(var r=t.length;r--;)if(vl(t[r][0],e))return r;return-1}var $f,Vx=O(()=>{"use strict";o0();o(WMe,"assocIndexOf");$f=WMe});function jMe(t){var e=this.__data__,r=$f(e,t);if(r<0)return!1;var n=e.length-1;return r==n?e.pop():YMe.call(e,r,1),--this.size,!0}var HMe,YMe,vte,xte=O(()=>{"use strict";Vx();HMe=Array.prototype,YMe=HMe.splice;o(jMe,"listCacheDelete");vte=jMe});function XMe(t){var e=this.__data__,r=$f(e,t);return r<0?void 0:e[r][1]}var bte,Tte=O(()=>{"use strict";Vx();o(XMe,"listCacheGet");bte=XMe});function KMe(t){return $f(this.__data__,t)>-1}var wte,kte=O(()=>{"use strict";Vx();o(KMe,"listCacheHas");wte=KMe});function QMe(t,e){var r=this.__data__,n=$f(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this}var Ete,Ste=O(()=>{"use strict";Vx();o(QMe,"listCacheSet");Ete=QMe});function Yg(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e{"use strict";yte();xte();Tte();kte();Ste();o(Yg,"ListCache");Yg.prototype.clear=gte;Yg.prototype.delete=vte;Yg.prototype.get=bte;Yg.prototype.has=wte;Yg.prototype.set=Ete;zf=Yg});var ZMe,Gf,uk=O(()=>{"use strict";Ff();yl();ZMe=ro(Ri,"Map"),Gf=ZMe});function JMe(){this.size=0,this.__data__={hash:new sN,map:new(Gf||zf),string:new sN}}var Cte,Ate=O(()=>{"use strict";mte();qx();uk();o(JMe,"mapCacheClear");Cte=JMe});function eIe(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}var _te,Dte=O(()=>{"use strict";o(eIe,"isKeyable");_te=eIe});function tIe(t,e){var r=t.__data__;return _te(e)?r[typeof e=="string"?"string":"hash"]:r.map}var Vf,Ux=O(()=>{"use strict";Dte();o(tIe,"getMapData");Vf=tIe});function rIe(t){var e=Vf(this,t).delete(t);return this.size-=e?1:0,e}var Rte,Lte=O(()=>{"use strict";Ux();o(rIe,"mapCacheDelete");Rte=rIe});function nIe(t){return Vf(this,t).get(t)}var Nte,Mte=O(()=>{"use strict";Ux();o(nIe,"mapCacheGet");Nte=nIe});function iIe(t){return Vf(this,t).has(t)}var Ite,Ote=O(()=>{"use strict";Ux();o(iIe,"mapCacheHas");Ite=iIe});function aIe(t,e){var r=Vf(this,t),n=r.size;return r.set(t,e),this.size+=r.size==n?0:1,this}var Pte,Bte=O(()=>{"use strict";Ux();o(aIe,"mapCacheSet");Pte=aIe});function jg(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e{"use strict";Ate();Lte();Mte();Ote();Bte();o(jg,"MapCache");jg.prototype.clear=Cte;jg.prototype.delete=Rte;jg.prototype.get=Nte;jg.prototype.has=Ite;jg.prototype.set=Pte;l0=jg});function oN(t,e){if(typeof t!="function"||e!=null&&typeof e!="function")throw new TypeError(sIe);var r=o(function(){var n=arguments,i=e?e.apply(this,n):n[0],a=r.cache;if(a.has(i))return a.get(i);var s=t.apply(this,n);return r.cache=a.set(i,s)||a,s},"memoized");return r.cache=new(oN.Cache||l0),r}var sIe,Xg,lN=O(()=>{"use strict";hk();sIe="Expected a function";o(oN,"memoize");oN.Cache=l0;Xg=oN});function oIe(){this.__data__=new zf,this.size=0}var Fte,$te=O(()=>{"use strict";qx();o(oIe,"stackClear");Fte=oIe});function lIe(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r}var zte,Gte=O(()=>{"use strict";o(lIe,"stackDelete");zte=lIe});function cIe(t){return this.__data__.get(t)}var Vte,qte=O(()=>{"use strict";o(cIe,"stackGet");Vte=cIe});function uIe(t){return this.__data__.has(t)}var Ute,Wte=O(()=>{"use strict";o(uIe,"stackHas");Ute=uIe});function fIe(t,e){var r=this.__data__;if(r instanceof zf){var n=r.__data__;if(!Gf||n.length{"use strict";qx();uk();hk();hIe=200;o(fIe,"stackSet");Hte=fIe});function Kg(t){var e=this.__data__=new zf(t);this.size=e.size}var su,Wx=O(()=>{"use strict";qx();$te();Gte();qte();Wte();Yte();o(Kg,"Stack");Kg.prototype.clear=Fte;Kg.prototype.delete=zte;Kg.prototype.get=Vte;Kg.prototype.has=Ute;Kg.prototype.set=Hte;su=Kg});var dIe,Qg,cN=O(()=>{"use strict";Ff();dIe=(function(){try{var t=ro(Object,"defineProperty");return t({},"",{}),t}catch{}})(),Qg=dIe});function pIe(t,e,r){e=="__proto__"&&Qg?Qg(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r}var ou,Zg=O(()=>{"use strict";cN();o(pIe,"baseAssignValue");ou=pIe});function mIe(t,e,r){(r!==void 0&&!vl(t[e],r)||r===void 0&&!(e in t))&&ou(t,e,r)}var Hx,uN=O(()=>{"use strict";Zg();o0();o(mIe,"assignMergeValue");Hx=mIe});function gIe(t){return function(e,r,n){for(var i=-1,a=Object(e),s=n(e),l=s.length;l--;){var u=s[t?l:++i];if(r(a[u],u,a)===!1)break}return e}}var jte,Xte=O(()=>{"use strict";o(gIe,"createBaseFor");jte=gIe});var yIe,Jg,fk=O(()=>{"use strict";Xte();yIe=jte(),Jg=yIe});function xIe(t,e){if(e)return t.slice();var r=t.length,n=Zte?Zte(r):new t.constructor(r);return t.copy(n),n}var Jte,Kte,vIe,Qte,Zte,dk,hN=O(()=>{"use strict";yl();Jte=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Kte=Jte&&typeof module=="object"&&module&&!module.nodeType&&module,vIe=Kte&&Kte.exports===Jte,Qte=vIe?Ri.Buffer:void 0,Zte=Qte?Qte.allocUnsafe:void 0;o(xIe,"cloneBuffer");dk=xIe});var bIe,e1,fN=O(()=>{"use strict";yl();bIe=Ri.Uint8Array,e1=bIe});function TIe(t){var e=new t.constructor(t.byteLength);return new e1(e).set(new e1(t)),e}var t1,pk=O(()=>{"use strict";fN();o(TIe,"cloneArrayBuffer");t1=TIe});function wIe(t,e){var r=e?t1(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)}var mk,dN=O(()=>{"use strict";pk();o(wIe,"cloneTypedArray");mk=wIe});function kIe(t,e){var r=-1,n=t.length;for(e||(e=Array(n));++r{"use strict";o(kIe,"copyArray");gk=kIe});var ere,EIe,tre,rre=O(()=>{"use strict";Vo();ere=Object.create,EIe=(function(){function t(){}return o(t,"object"),function(e){if(!On(e))return{};if(ere)return ere(e);t.prototype=e;var r=new t;return t.prototype=void 0,r}})(),tre=EIe});function SIe(t,e){return function(r){return t(e(r))}}var yk,mN=O(()=>{"use strict";o(SIe,"overArg");yk=SIe});var CIe,r1,vk=O(()=>{"use strict";mN();CIe=yk(Object.getPrototypeOf,Object),r1=CIe});function _Ie(t){var e=t&&t.constructor,r=typeof e=="function"&&e.prototype||AIe;return t===r}var AIe,lu,n1=O(()=>{"use strict";AIe=Object.prototype;o(_Ie,"isPrototype");lu=_Ie});function DIe(t){return typeof t.constructor=="function"&&!lu(t)?tre(r1(t)):{}}var xk,gN=O(()=>{"use strict";rre();vk();n1();o(DIe,"initCloneObject");xk=DIe});function RIe(t){return t!=null&&typeof t=="object"}var wi,xl=O(()=>{"use strict";o(RIe,"isObjectLike");wi=RIe});function NIe(t){return wi(t)&&Pa(t)==LIe}var LIe,yN,nre=O(()=>{"use strict";Th();xl();LIe="[object Arguments]";o(NIe,"baseIsArguments");yN=NIe});var ire,MIe,IIe,OIe,pc,i1=O(()=>{"use strict";nre();xl();ire=Object.prototype,MIe=ire.hasOwnProperty,IIe=ire.propertyIsEnumerable,OIe=yN((function(){return arguments})())?yN:function(t){return wi(t)&&MIe.call(t,"callee")&&!IIe.call(t,"callee")},pc=OIe});var PIe,zt,oi=O(()=>{"use strict";PIe=Array.isArray,zt=PIe});function FIe(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=BIe}var BIe,a1,bk=O(()=>{"use strict";BIe=9007199254740991;o(FIe,"isLength");a1=FIe});function $Ie(t){return t!=null&&a1(t.length)&&!Vi(t)}var Li,bl=O(()=>{"use strict";zx();bk();o($Ie,"isArrayLike");Li=$Ie});function zIe(t){return wi(t)&&Li(t)}var c0,Tk=O(()=>{"use strict";bl();xl();o(zIe,"isArrayLikeObject");c0=zIe});function GIe(){return!1}var are,sre=O(()=>{"use strict";o(GIe,"stubFalse");are=GIe});var cre,ore,VIe,lre,qIe,UIe,mc,s1=O(()=>{"use strict";yl();sre();cre=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ore=cre&&typeof module=="object"&&module&&!module.nodeType&&module,VIe=ore&&ore.exports===cre,lre=VIe?Ri.Buffer:void 0,qIe=lre?lre.isBuffer:void 0,UIe=qIe||are,mc=UIe});function KIe(t){if(!wi(t)||Pa(t)!=WIe)return!1;var e=r1(t);if(e===null)return!0;var r=jIe.call(e,"constructor")&&e.constructor;return typeof r=="function"&&r instanceof r&&ure.call(r)==XIe}var WIe,HIe,YIe,ure,jIe,XIe,hre,fre=O(()=>{"use strict";Th();vk();xl();WIe="[object Object]",HIe=Function.prototype,YIe=Object.prototype,ure=HIe.toString,jIe=YIe.hasOwnProperty,XIe=ure.call(Object);o(KIe,"isPlainObject");hre=KIe});function TOe(t){return wi(t)&&a1(t.length)&&!!ti[Pa(t)]}var QIe,ZIe,JIe,eOe,tOe,rOe,nOe,iOe,aOe,sOe,oOe,lOe,cOe,uOe,hOe,fOe,dOe,pOe,mOe,gOe,yOe,vOe,xOe,bOe,ti,dre,pre=O(()=>{"use strict";Th();bk();xl();QIe="[object Arguments]",ZIe="[object Array]",JIe="[object Boolean]",eOe="[object Date]",tOe="[object Error]",rOe="[object Function]",nOe="[object Map]",iOe="[object Number]",aOe="[object Object]",sOe="[object RegExp]",oOe="[object Set]",lOe="[object String]",cOe="[object WeakMap]",uOe="[object ArrayBuffer]",hOe="[object DataView]",fOe="[object Float32Array]",dOe="[object Float64Array]",pOe="[object Int8Array]",mOe="[object Int16Array]",gOe="[object Int32Array]",yOe="[object Uint8Array]",vOe="[object Uint8ClampedArray]",xOe="[object Uint16Array]",bOe="[object Uint32Array]",ti={};ti[fOe]=ti[dOe]=ti[pOe]=ti[mOe]=ti[gOe]=ti[yOe]=ti[vOe]=ti[xOe]=ti[bOe]=!0;ti[QIe]=ti[ZIe]=ti[uOe]=ti[JIe]=ti[hOe]=ti[eOe]=ti[tOe]=ti[rOe]=ti[nOe]=ti[iOe]=ti[aOe]=ti[sOe]=ti[oOe]=ti[lOe]=ti[cOe]=!1;o(TOe,"baseIsTypedArray");dre=TOe});function wOe(t){return function(e){return t(e)}}var Tl,u0=O(()=>{"use strict";o(wOe,"baseUnary");Tl=wOe});var mre,Yx,kOe,vN,EOe,wl,jx=O(()=>{"use strict";iN();mre=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Yx=mre&&typeof module=="object"&&module&&!module.nodeType&&module,kOe=Yx&&Yx.exports===mre,vN=kOe&&lk.process,EOe=(function(){try{var t=Yx&&Yx.require&&Yx.require("util").types;return t||vN&&vN.binding&&vN.binding("util")}catch{}})(),wl=EOe});var gre,SOe,qf,Xx=O(()=>{"use strict";pre();u0();jx();gre=wl&&wl.isTypedArray,SOe=gre?Tl(gre):dre,qf=SOe});function COe(t,e){if(!(e==="constructor"&&typeof t[e]=="function")&&e!="__proto__")return t[e]}var Kx,xN=O(()=>{"use strict";o(COe,"safeGet");Kx=COe});function DOe(t,e,r){var n=t[e];(!(_Oe.call(t,e)&&vl(n,r))||r===void 0&&!(e in t))&&ou(t,e,r)}var AOe,_Oe,cu,o1=O(()=>{"use strict";Zg();o0();AOe=Object.prototype,_Oe=AOe.hasOwnProperty;o(DOe,"assignValue");cu=DOe});function ROe(t,e,r,n){var i=!r;r||(r={});for(var a=-1,s=e.length;++a{"use strict";o1();Zg();o(ROe,"copyObject");kl=ROe});function LOe(t,e){for(var r=-1,n=Array(t);++r{"use strict";o(LOe,"baseTimes");yre=LOe});function IOe(t,e){var r=typeof t;return e=e??NOe,!!e&&(r=="number"||r!="symbol"&&MOe.test(t))&&t>-1&&t%1==0&&t{"use strict";NOe=9007199254740991,MOe=/^(?:0|[1-9]\d*)$/;o(IOe,"isIndex");Uf=IOe});function BOe(t,e){var r=zt(t),n=!r&&pc(t),i=!r&&!n&&mc(t),a=!r&&!n&&!i&&qf(t),s=r||n||i||a,l=s?yre(t.length,String):[],u=l.length;for(var h in t)(e||POe.call(t,h))&&!(s&&(h=="length"||i&&(h=="offset"||h=="parent")||a&&(h=="buffer"||h=="byteLength"||h=="byteOffset")||Uf(h,u)))&&l.push(h);return l}var OOe,POe,wk,bN=O(()=>{"use strict";vre();i1();oi();s1();Qx();Xx();OOe=Object.prototype,POe=OOe.hasOwnProperty;o(BOe,"arrayLikeKeys");wk=BOe});function FOe(t){var e=[];if(t!=null)for(var r in Object(t))e.push(r);return e}var xre,bre=O(()=>{"use strict";o(FOe,"nativeKeysIn");xre=FOe});function GOe(t){if(!On(t))return xre(t);var e=lu(t),r=[];for(var n in t)n=="constructor"&&(e||!zOe.call(t,n))||r.push(n);return r}var $Oe,zOe,Tre,wre=O(()=>{"use strict";Vo();n1();bre();$Oe=Object.prototype,zOe=$Oe.hasOwnProperty;o(GOe,"baseKeysIn");Tre=GOe});function VOe(t){return Li(t)?wk(t,!0):Tre(t)}var no,Wf=O(()=>{"use strict";bN();wre();bl();o(VOe,"keysIn");no=VOe});function qOe(t){return kl(t,no(t))}var kre,Ere=O(()=>{"use strict";h0();Wf();o(qOe,"toPlainObject");kre=qOe});function UOe(t,e,r,n,i,a,s){var l=Kx(t,r),u=Kx(e,r),h=s.get(u);if(h){Hx(t,r,h);return}var f=a?a(l,u,r+"",t,e,s):void 0,d=f===void 0;if(d){var p=zt(u),m=!p&&mc(u),g=!p&&!m&&qf(u);f=u,p||m||g?zt(l)?f=l:c0(l)?f=gk(l):m?(d=!1,f=dk(u,!0)):g?(d=!1,f=mk(u,!0)):f=[]:hre(u)||pc(u)?(f=l,pc(l)?f=kre(l):(!On(l)||Vi(l))&&(f=xk(u))):d=!1}d&&(s.set(u,f),i(f,u,n,a,s),s.delete(u)),Hx(t,r,f)}var Sre,Cre=O(()=>{"use strict";uN();hN();dN();pN();gN();i1();oi();Tk();s1();zx();Vo();fre();Xx();xN();Ere();o(UOe,"baseMergeDeep");Sre=UOe});function Are(t,e,r,n,i){t!==e&&Jg(e,function(a,s){if(i||(i=new su),On(a))Sre(t,e,s,r,Are,n,i);else{var l=n?n(Kx(t,s),a,s+"",t,e,i):void 0;l===void 0&&(l=a),Hx(t,s,l)}},no)}var _re,Dre=O(()=>{"use strict";Wx();uN();fk();Cre();Vo();Wf();xN();o(Are,"baseMerge");_re=Are});function WOe(t){return t}var va,Eh=O(()=>{"use strict";o(WOe,"identity");va=WOe});function HOe(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)}var Rre,Lre=O(()=>{"use strict";o(HOe,"apply");Rre=HOe});function YOe(t,e,r){return e=Nre(e===void 0?t.length-1:e,0),function(){for(var n=arguments,i=-1,a=Nre(n.length-e,0),s=Array(a);++i{"use strict";Lre();Nre=Math.max;o(YOe,"overRest");kk=YOe});function jOe(t){return function(){return t}}var io,wN=O(()=>{"use strict";o(jOe,"constant");io=jOe});var XOe,Mre,Ire=O(()=>{"use strict";wN();cN();Eh();XOe=Qg?function(t,e){return Qg(t,"toString",{configurable:!0,enumerable:!1,value:io(e),writable:!0})}:va,Mre=XOe});function JOe(t){var e=0,r=0;return function(){var n=ZOe(),i=QOe-(n-r);if(r=n,i>0){if(++e>=KOe)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}var KOe,QOe,ZOe,Ore,Pre=O(()=>{"use strict";KOe=800,QOe=16,ZOe=Date.now;o(JOe,"shortOut");Ore=JOe});var ePe,Ek,kN=O(()=>{"use strict";Ire();Pre();ePe=Ore(Mre),Ek=ePe});function tPe(t,e){return Ek(kk(t,e,va),t+"")}var uu,l1=O(()=>{"use strict";Eh();TN();kN();o(tPe,"baseRest");uu=tPe});function rPe(t,e,r){if(!On(r))return!1;var n=typeof e;return(n=="number"?Li(r)&&Uf(e,r.length):n=="string"&&e in r)?vl(r[e],t):!1}var qo,f0=O(()=>{"use strict";o0();bl();Qx();Vo();o(rPe,"isIterateeCall");qo=rPe});function nPe(t){return uu(function(e,r){var n=-1,i=r.length,a=i>1?r[i-1]:void 0,s=i>2?r[2]:void 0;for(a=t.length>3&&typeof a=="function"?(i--,a):void 0,s&&qo(r[0],r[1],s)&&(a=i<3?void 0:a,i=1),e=Object(e);++n{"use strict";l1();f0();o(nPe,"createAssigner");Sk=nPe});var iPe,Hf,SN=O(()=>{"use strict";Dre();EN();iPe=Sk(function(t,e,r){_re(t,e,r)}),Hf=iPe});function _N(t,e){if(!t)return e;let r=`curve${t.charAt(0).toUpperCase()+t.slice(1)}`;return aPe[r]??e}function cPe(t,e){let r=t.trim();if(r)return e.securityLevel!=="loose"?(0,$re.sanitizeUrl)(r):r}function Vre(t,e){return!t||!e?0:Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function hPe(t){let e,r=0;t.forEach(i=>{r+=Vre(i,e),e=i});let n=r/2;return DN(t,n)}function fPe(t){return t.length===1?t[0]:hPe(t)}function pPe(t,e,r){let n=structuredClone(r);K.info("our points",n),e!=="start_left"&&e!=="start_right"&&n.reverse();let i=25+t,a=DN(n,i),s=10+t*.5,l=Math.atan2(n[0].y-a.y,n[0].x-a.x),u={x:0,y:0};return e==="start_left"?(u.x=Math.sin(l+Math.PI)*s+(n[0].x+a.x)/2,u.y=-Math.cos(l+Math.PI)*s+(n[0].y+a.y)/2):e==="end_right"?(u.x=Math.sin(l-Math.PI)*s+(n[0].x+a.x)/2-5,u.y=-Math.cos(l-Math.PI)*s+(n[0].y+a.y)/2-5):e==="end_left"?(u.x=Math.sin(l)*s+(n[0].x+a.x)/2-5,u.y=-Math.cos(l)*s+(n[0].y+a.y)/2-5):(u.x=Math.sin(l)*s+(n[0].x+a.x)/2,u.y=-Math.cos(l)*s+(n[0].y+a.y)/2),u}function RN(t){let e="",r="";for(let n of t)n!==void 0&&(n.startsWith("color:")||n.startsWith("text-align:")?r=r+n+";":e=e+n+";");return{style:e,labelStyle:r}}function mPe(t){let e="",r="0123456789abcdef",n=r.length;for(let i=0;iMath.round(parseFloat(a)).toString());return i.includes(r.toString())||i.includes(n.toString())}var $re,AN,aPe,sPe,oPe,zre,Gre,lPe,uPe,Bre,DN,dPe,Fre,LN,NN,gPe,yPe,MN,vPe,IN,CN,Ck,xPe,bPe,Uo,Xt,qre,ao,hu,ar=O(()=>{"use strict";$re=Ra(Wg(),1);Ar();Ur();p8();xt();Fp();sg();lN();SN();Ow();AN="\u200B",aPe={curveBasis:fc,curveBasisClosed:Y5,curveBasisOpen:j5,curveBumpX:Sx,curveBumpY:Cx,curveBundle:W9,curveCardinalClosed:H9,curveCardinalOpen:j9,curveCardinal:Rx,curveCatmullRomClosed:K9,curveCatmullRomOpen:Q9,curveCatmullRom:Mx,curveLinear:au,curveLinearClosed:J5,curveMonotoneX:Ix,curveMonotoneY:Ox,curveNatural:qg,curveStep:Ug,curveStepAfter:Bx,curveStepBefore:Px},sPe=/\s*(?:(\w+)(?=:):|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,oPe=o(function(t,e){let r=zre(t,/(?:init\b)|(?:initialize\b)/),n={};if(Array.isArray(r)){let s=r.map(l=>l.args);cg(s),n=Vn(n,[...s])}else n=r.args;if(!n)return;let i=vg(t,e),a="config";return n[a]!==void 0&&(i==="flowchart-v2"&&(i="flowchart"),n[i]=n[a],delete n[a]),n},"detectInit"),zre=o(function(t,e=null){try{let r=new RegExp(`[%]{2}(?![{]${sPe.source})(?=[}][%]{2}).* +`,"ig");t=t.trim().replace(r,"").replace(/'/gm,'"'),K.debug(`Detecting diagram directive${e!==null?" type:"+e:""} based on the text:${t}`);let n,i=[];for(;(n=Bp.exec(t))!==null;)if(n.index===Bp.lastIndex&&Bp.lastIndex++,n&&!e||e&&n[1]?.match(e)||e&&n[2]?.match(e)){let a=n[1]?n[1]:n[2],s=n[3]?n[3].trim():n[4]?JSON.parse(n[4].trim()):null;i.push({type:a,args:s})}return i.length===0?{type:t,args:null}:i.length===1?i[0]:i}catch(r){return K.error(`ERROR: ${r.message} - Unable to parse directive type: '${e}' based on the text: '${t}'`),{type:void 0,args:null}}},"detectDirective"),Gre=o(function(t){return t.replace(Bp,"")},"removeDirectives"),lPe=o(function(t,e){for(let[r,n]of e.entries())if(n.match(t))return r;return-1},"isSubstringInArray");o(_N,"interpolateToCurve");o(cPe,"formatUrl");uPe=o((t,...e)=>{let r=t.split("."),n=r.length-1,i=r[n],a=window;for(let s=0;s{let r=Math.pow(10,e);return Math.round(t*r)/r},"roundNumber"),DN=o((t,e)=>{let r,n=e;for(let i of t){if(r){let a=Vre(i,r);if(a===0)return r;if(a=1)return{x:i.x,y:i.y};if(s>0&&s<1)return{x:Bre((1-s)*r.x+s*i.x,5),y:Bre((1-s)*r.y+s*i.y,5)}}}r=i}throw new Error("Could not find a suitable point for the given distance")},"calculatePoint"),dPe=o((t,e,r)=>{K.info(`our points ${JSON.stringify(e)}`),e[0]!==r&&(e=e.reverse());let i=DN(e,25),a=t?10:5,s=Math.atan2(e[0].y-i.y,e[0].x-i.x),l={x:0,y:0};return l.x=Math.sin(s)*a+(e[0].x+i.x)/2,l.y=-Math.cos(s)*a+(e[0].y+i.y)/2,l},"calcCardinalityPosition");o(pPe,"calcTerminalLabelPosition");o(RN,"getStylesFromArray");Fre=0,LN=o(()=>(Fre++,"id-"+Math.random().toString(36).substr(2,12)+"-"+Fre),"generateId");o(mPe,"makeRandomHex");NN=o(t=>mPe(t.length),"random"),gPe=o(function(){return{x:0,y:0,fill:void 0,anchor:"start",style:"#666",width:100,height:100,textMargin:0,rx:0,ry:0,valign:void 0,text:""}},"getTextObj"),yPe=o(function(t,e){let r=e.text.replace(st.lineBreakRegex," "),[,n]=Uo(e.fontSize),i=t.append("text");i.attr("x",e.x),i.attr("y",e.y),i.style("text-anchor",e.anchor),i.style("font-family",e.fontFamily),i.style("font-size",n),i.style("font-weight",e.fontWeight),i.attr("fill",e.fill),e.class!==void 0&&i.attr("class",e.class);let a=i.append("tspan");return a.attr("x",e.x+e.textMargin*2),a.attr("fill",e.fill),a.text(r),i},"drawSimpleText"),MN=Xg((t,e,r)=>{if(!t||(r=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",joinWith:"
"},r),st.lineBreakRegex.test(t)))return t;let n=t.split(" ").filter(Boolean),i=[],a="";return n.forEach((s,l)=>{let u=xa(`${s} `,r),h=xa(a,r);if(u>e){let{hyphenatedStrings:p,remainingWord:m}=vPe(s,e,"-",r);i.push(a,...p),a=m}else h+u>=e?(i.push(a),a=s):a=[a,s].filter(Boolean).join(" ");l+1===n.length&&i.push(a)}),i.filter(s=>s!=="").join(r.joinWith)},(t,e,r)=>`${t}${e}${r.fontSize}${r.fontWeight}${r.fontFamily}${r.joinWith}`),vPe=Xg((t,e,r="-",n)=>{n=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:0},n);let i=[...t],a=[],s="";return i.forEach((l,u)=>{let h=`${s}${l}`;if(xa(h,n)>=e){let d=u+1,p=i.length===d,m=`${h}${r}`;a.push(p?h:m),s=""}else s=h}),{hyphenatedStrings:a,remainingWord:s}},(t,e,r="-",n)=>`${t}${e}${r}${n.fontSize}${n.fontWeight}${n.fontFamily}`);o(Ak,"calculateTextHeight");o(xa,"calculateTextWidth");IN=Xg((t,e)=>{let{fontSize:r=12,fontFamily:n="Arial",fontWeight:i=400}=e;if(!t)return{width:0,height:0};let[,a]=Uo(r),s=["sans-serif",n],l=t.split(st.lineBreakRegex),u=[],h=je("body");if(!h.remove)return{width:0,height:0,lineHeight:0};let f=h.append("svg");for(let p of s){let m=0,g={width:0,height:0,lineHeight:0};for(let y of l){let v=gPe();v.text=y||AN;let x=yPe(f,v).style("font-size",a).style("font-weight",i).style("font-family",p),b=(x._groups||x)[0][0].getBBox();if(b.width===0&&b.height===0)throw new Error("svg element not in render tree");g.width=Math.round(Math.max(g.width,b.width)),m=Math.round(b.height),g.height+=m,g.lineHeight=Math.round(Math.max(g.lineHeight,m))}u.push(g)}f.remove();let d=isNaN(u[1].height)||isNaN(u[1].width)||isNaN(u[1].lineHeight)||u[0].height>u[1].height&&u[0].width>u[1].width&&u[0].lineHeight>u[1].lineHeight?0:1;return u[d]},(t,e)=>`${t}${e.fontSize}${e.fontWeight}${e.fontFamily}`),CN=class{constructor(e=!1,r){this.count=0;this.count=r?r.length:0,this.next=e?()=>this.count++:()=>Date.now()}static{o(this,"InitIDGenerator")}},xPe=o(function(t){return Ck=Ck||document.createElement("div"),t=escape(t).replace(/%26/g,"&").replace(/%23/g,"#").replace(/%3B/g,";"),Ck.innerHTML=t,unescape(Ck.textContent)},"entityDecode");o(ON,"isDetailedError");bPe=o((t,e,r,n)=>{if(!n)return;let i=t.node()?.getBBox();i&&t.append("text").text(n).attr("text-anchor","middle").attr("x",i.x+i.width/2).attr("y",-r).attr("class",e)},"insertTitle"),Uo=o(t=>{if(typeof t=="number")return[t,t+"px"];let e=parseInt(t??"",10);return Number.isNaN(e)?[void 0,void 0]:t===String(e)?[e,t+"px"]:[e,t]},"parseFontSize");o(Pn,"cleanAndMerge");Xt={assignWithDepth:Vn,wrapLabel:MN,calculateTextHeight:Ak,calculateTextWidth:xa,calculateTextDimensions:IN,cleanAndMerge:Pn,detectInit:oPe,detectDirective:zre,isSubstringInArray:lPe,interpolateToCurve:_N,calcLabelPosition:fPe,calcCardinalityPosition:dPe,calcTerminalLabelPosition:pPe,formatUrl:cPe,getStylesFromArray:RN,generateId:LN,random:NN,runFunc:uPe,entityDecode:xPe,insertTitle:bPe,isLabelCoordinateInPath:TPe,parseFontSize:Uo,InitIDGenerator:CN},qre=o(function(t){let e=t;return e=e.replace(/style.*:\S*#.*;/g,function(r){return r.substring(0,r.length-1)}),e=e.replace(/classDef.*:\S*#.*;/g,function(r){return r.substring(0,r.length-1)}),e=e.replace(/#\w+;/g,function(r){let n=r.substring(1,r.length-1);return/^\+?\d+$/.test(n)?"\uFB02\xB0\xB0"+n+"\xB6\xDF":"\uFB02\xB0"+n+"\xB6\xDF"}),e},"encodeEntities"),ao=o(function(t){return t.replace(/fl°°/g,"&#").replace(/fl°/g,"&").replace(/¶ß/g,";")},"decodeEntities"),hu=o((t,e,{counter:r=0,prefix:n,suffix:i},a)=>a||`${n?`${n}_`:""}${t}_${e}_${r}${i?`_${i}`:""}`,"getEdgeId");o(Bn,"handleUndefinedAttr");o(TPe,"isLabelCoordinateInPath")});function gc(t,e,r,n,i){if(!e[t].width)if(r)e[t].text=MN(e[t].text,i,n),e[t].textLines=e[t].text.split(st.lineBreakRegex).length,e[t].width=i,e[t].height=Ak(e[t].text,n);else{let a=e[t].text.split(st.lineBreakRegex);e[t].textLines=a.length;let s=0;e[t].height=0,e[t].width=0;for(let l of a)e[t].width=Math.max(xa(l,n),e[t].width),s=Ak(l,n),e[t].height=e[t].height+s}}function jre(t,e,r,n,i){let a=new Lk(i);a.data.widthLimit=r.data.widthLimit/Math.min(PN,n.length);for(let[s,l]of n.entries()){let u=0;l.image={width:0,height:0,Y:0},l.sprite&&(l.image.width=48,l.image.height=48,l.image.Y=u,u=l.image.Y+l.image.height);let h=l.wrap&&Jt.wrap,f=_k(Jt);if(f.fontSize=f.fontSize+2,f.fontWeight="bold",gc("label",l,h,f,a.data.widthLimit),l.label.Y=u+8,u=l.label.Y+l.label.height,l.type&&l.type.text!==""){l.type.text="["+l.type.text+"]";let g=_k(Jt);gc("type",l,h,g,a.data.widthLimit),l.type.Y=u+5,u=l.type.Y+l.type.height}if(l.descr&&l.descr.text!==""){let g=_k(Jt);g.fontSize=g.fontSize-2,gc("descr",l,h,g,a.data.widthLimit),l.descr.Y=u+20,u=l.descr.Y+l.descr.height}if(s==0||s%PN===0){let g=r.data.startx+Jt.diagramMarginX,y=r.data.stopy+Jt.diagramMarginY+u;a.setData(g,g,y,y)}else{let g=a.data.stopx!==a.data.startx?a.data.stopx+Jt.diagramMarginX:a.data.startx,y=a.data.starty;a.setData(g,g,y,y)}a.name=l.alias;let d=i.db.getC4ShapeArray(l.alias),p=i.db.getC4ShapeKeys(l.alias);p.length>0&&Yre(a,t,d,p),e=l.alias;let m=i.db.getBoundaries(e);m.length>0&&jre(t,e,a,m,i),l.alias!=="global"&&Hre(t,l,a),r.data.stopy=Math.max(a.data.stopy+Jt.c4ShapeMargin,r.data.stopy),r.data.stopx=Math.max(a.data.stopx+Jt.c4ShapeMargin,r.data.stopx),Dk=Math.max(Dk,r.data.stopx),Rk=Math.max(Rk,r.data.stopy)}}var Dk,Rk,Wre,PN,Jt,Lk,BN,Zx,_k,wPe,Hre,Yre,so,Ure,kPe,EPe,SPe,FN,Xre=O(()=>{"use strict";Ar();Uee();xt();TD();Ur();LD();jt();sg();ar();Ti();Dk=0,Rk=0,Wre=4,PN=2;F2.yy=U2;Jt={},Lk=class{static{o(this,"Bounds")}constructor(e){this.name="",this.data={},this.data.startx=void 0,this.data.stopx=void 0,this.data.starty=void 0,this.data.stopy=void 0,this.data.widthLimit=void 0,this.nextData={},this.nextData.startx=void 0,this.nextData.stopx=void 0,this.nextData.starty=void 0,this.nextData.stopy=void 0,this.nextData.cnt=0,BN(e.db.getConfig())}setData(e,r,n,i){this.nextData.startx=this.data.startx=e,this.nextData.stopx=this.data.stopx=r,this.nextData.starty=this.data.starty=n,this.nextData.stopy=this.data.stopy=i}updateVal(e,r,n,i){e[r]===void 0?e[r]=n:e[r]=i(n,e[r])}insert(e){this.nextData.cnt=this.nextData.cnt+1;let r=this.nextData.startx===this.nextData.stopx?this.nextData.stopx+e.margin:this.nextData.stopx+e.margin*2,n=r+e.width,i=this.nextData.starty+e.margin*2,a=i+e.height;(r>=this.data.widthLimit||n>=this.data.widthLimit||this.nextData.cnt>Wre)&&(r=this.nextData.startx+e.margin+Jt.nextLinePaddingX,i=this.nextData.stopy+e.margin*2,this.nextData.stopx=n=r+e.width,this.nextData.starty=this.nextData.stopy,this.nextData.stopy=a=i+e.height,this.nextData.cnt=1),e.x=r,e.y=i,this.updateVal(this.data,"startx",r,Math.min),this.updateVal(this.data,"starty",i,Math.min),this.updateVal(this.data,"stopx",n,Math.max),this.updateVal(this.data,"stopy",a,Math.max),this.updateVal(this.nextData,"startx",r,Math.min),this.updateVal(this.nextData,"starty",i,Math.min),this.updateVal(this.nextData,"stopx",n,Math.max),this.updateVal(this.nextData,"stopy",a,Math.max)}init(e){this.name="",this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,widthLimit:void 0},this.nextData={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,cnt:0},BN(e.db.getConfig())}bumpLastMargin(e){this.data.stopx+=e,this.data.stopy+=e}},BN=o(function(t){Vn(Jt,t),t.fontFamily&&(Jt.personFontFamily=Jt.systemFontFamily=Jt.messageFontFamily=t.fontFamily),t.fontSize&&(Jt.personFontSize=Jt.systemFontSize=Jt.messageFontSize=t.fontSize),t.fontWeight&&(Jt.personFontWeight=Jt.systemFontWeight=Jt.messageFontWeight=t.fontWeight)},"setConf"),Zx=o((t,e)=>({fontFamily:t[e+"FontFamily"],fontSize:t[e+"FontSize"],fontWeight:t[e+"FontWeight"]}),"c4ShapeFont"),_k=o(t=>({fontFamily:t.boundaryFontFamily,fontSize:t.boundaryFontSize,fontWeight:t.boundaryFontWeight}),"boundaryFont"),wPe=o(t=>({fontFamily:t.messageFontFamily,fontSize:t.messageFontSize,fontWeight:t.messageFontWeight}),"messageFont");o(gc,"calcC4ShapeTextWH");Hre=o(function(t,e,r){e.x=r.data.startx,e.y=r.data.starty,e.width=r.data.stopx-r.data.startx,e.height=r.data.stopy-r.data.starty,e.label.y=Jt.c4ShapeMargin-35;let n=e.wrap&&Jt.wrap,i=_k(Jt);i.fontSize=i.fontSize+2,i.fontWeight="bold";let a=xa(e.label.text,i);gc("label",e,n,i,a),dc.drawBoundary(t,e,Jt)},"drawBoundary"),Yre=o(function(t,e,r,n){let i=0;for(let a of n){i=0;let s=r[a],l=Zx(Jt,s.typeC4Shape.text);switch(l.fontSize=l.fontSize-2,s.typeC4Shape.width=xa("\xAB"+s.typeC4Shape.text+"\xBB",l),s.typeC4Shape.height=l.fontSize+2,s.typeC4Shape.Y=Jt.c4ShapePadding,i=s.typeC4Shape.Y+s.typeC4Shape.height-4,s.image={width:0,height:0,Y:0},s.typeC4Shape.text){case"person":case"external_person":s.image.width=48,s.image.height=48,s.image.Y=i,i=s.image.Y+s.image.height;break}s.sprite&&(s.image.width=48,s.image.height=48,s.image.Y=i,i=s.image.Y+s.image.height);let u=s.wrap&&Jt.wrap,h=Jt.width-Jt.c4ShapePadding*2,f=Zx(Jt,s.typeC4Shape.text);if(f.fontSize=f.fontSize+2,f.fontWeight="bold",gc("label",s,u,f,h),s.label.Y=i+8,i=s.label.Y+s.label.height,s.type&&s.type.text!==""){s.type.text="["+s.type.text+"]";let m=Zx(Jt,s.typeC4Shape.text);gc("type",s,u,m,h),s.type.Y=i+5,i=s.type.Y+s.type.height}else if(s.techn&&s.techn.text!==""){s.techn.text="["+s.techn.text+"]";let m=Zx(Jt,s.techn.text);gc("techn",s,u,m,h),s.techn.Y=i+5,i=s.techn.Y+s.techn.height}let d=i,p=s.label.width;if(s.descr&&s.descr.text!==""){let m=Zx(Jt,s.typeC4Shape.text);gc("descr",s,u,m,h),s.descr.Y=i+20,i=s.descr.Y+s.descr.height,p=Math.max(s.label.width,s.descr.width),d=i-s.descr.textLines*5}p=p+Jt.c4ShapePadding,s.width=Math.max(s.width||Jt.width,p,Jt.width),s.height=Math.max(s.height||Jt.height,d,Jt.height),s.margin=s.margin||Jt.c4ShapeMargin,t.insert(s),dc.drawC4Shape(e,s,Jt)}t.bumpLastMargin(Jt.c4ShapeMargin)},"drawC4ShapeArray"),so=class{static{o(this,"Point")}constructor(e,r){this.x=e,this.y=r}},Ure=o(function(t,e){let r=t.x,n=t.y,i=e.x,a=e.y,s=r+t.width/2,l=n+t.height/2,u=Math.abs(r-i),h=Math.abs(n-a),f=h/u,d=t.height/t.width,p=null;return n==a&&ri?p=new so(r,l):r==i&&na&&(p=new so(s,n)),r>i&&n=f?p=new so(r,l+f*t.width/2):p=new so(s-u/h*t.height/2,n+t.height):r=f?p=new so(r+t.width,l+f*t.width/2):p=new so(s+u/h*t.height/2,n+t.height):ra?d>=f?p=new so(r+t.width,l-f*t.width/2):p=new so(s+t.height/2*u/h,n):r>i&&n>a&&(d>=f?p=new so(r,l-t.width/2*f):p=new so(s-t.height/2*u/h,n)),p},"getIntersectPoint"),kPe=o(function(t,e){let r={x:0,y:0};r.x=e.x+e.width/2,r.y=e.y+e.height/2;let n=Ure(t,r);r.x=t.x+t.width/2,r.y=t.y+t.height/2;let i=Ure(e,r);return{startPoint:n,endPoint:i}},"getIntersectPoints"),EPe=o(function(t,e,r,n){let i=0;for(let a of e){i=i+1;let s=a.wrap&&Jt.wrap,l=wPe(Jt);n.db.getC4Type()==="C4Dynamic"&&(a.label.text=i+": "+a.label.text);let h=xa(a.label.text,l);gc("label",a,s,l,h),a.techn&&a.techn.text!==""&&(h=xa(a.techn.text,l),gc("techn",a,s,l,h)),a.descr&&a.descr.text!==""&&(h=xa(a.descr.text,l),gc("descr",a,s,l,h));let f=r(a.from),d=r(a.to),p=kPe(f,d);a.startPoint=p.startPoint,a.endPoint=p.endPoint}dc.drawRels(t,e,Jt)},"drawRels");o(jre,"drawInsideBoundary");SPe=o(function(t,e,r,n){Jt=ve().c4;let i=ve().securityLevel,a;i==="sandbox"&&(a=je("#i"+e));let s=i==="sandbox"?je(a.nodes()[0].contentDocument.body):je("body"),l=n.db;n.db.setWrap(Jt.wrap),Wre=l.getC4ShapeInRow(),PN=l.getC4BoundaryInRow(),K.debug(`C:${JSON.stringify(Jt,null,2)}`);let u=i==="sandbox"?s.select(`[id="${e}"]`):je(`[id="${e}"]`);dc.insertComputerIcon(u),dc.insertDatabaseIcon(u),dc.insertClockIcon(u);let h=new Lk(n);h.setData(Jt.diagramMarginX,Jt.diagramMarginX,Jt.diagramMarginY,Jt.diagramMarginY),h.data.widthLimit=screen.availWidth,Dk=Jt.diagramMarginX,Rk=Jt.diagramMarginY;let f=n.db.getTitle(),d=n.db.getBoundaries("");jre(u,"",h,d,n),dc.insertArrowHead(u),dc.insertArrowEnd(u),dc.insertArrowCrossHead(u),dc.insertArrowFilledHead(u),EPe(u,n.db.getRels(),n.db.getC4Shape,n),h.data.stopx=Dk,h.data.stopy=Rk;let p=h.data,g=p.stopy-p.starty+2*Jt.diagramMarginY,v=p.stopx-p.startx+2*Jt.diagramMarginX;f&&u.append("text").text(f).attr("x",(p.stopx-p.startx)/2-4*Jt.diagramMarginX).attr("y",p.starty+Jt.diagramMarginY),Zr(u,g,v,Jt.useMaxWidth);let x=f?60:0;u.attr("viewBox",p.startx-Jt.diagramMarginX+" -"+(Jt.diagramMarginY+x)+" "+v+" "+(g+x)),K.debug("models:",p)},"draw"),FN={drawPersonOrSystemArray:Yre,drawBoundary:Hre,setConf:BN,draw:SPe}});var CPe,Kre,Qre=O(()=>{"use strict";CPe=o(t=>`.person { + stroke: ${t.personBorder}; + fill: ${t.personBkg}; + } +`,"getStyles"),Kre=CPe});var Zre={};vr(Zre,{diagram:()=>APe});var APe,Jre=O(()=>{"use strict";TD();LD();Xre();Qre();APe={parser:EX,db:U2,renderer:FN,styles:Kre,init:o(({c4:t,wrap:e})=>{FN.setConf(t),U2.setWrap(e)},"init")}});function gne(t){return typeof t>"u"||t===null}function LPe(t){return typeof t=="object"&&t!==null}function NPe(t){return Array.isArray(t)?t:gne(t)?[]:[t]}function MPe(t,e){var r,n,i,a;if(e)for(a=Object.keys(e),r=0,n=a.length;rl&&(a=" ... ",e=n-l+a.length),r-n>l&&(s=" ...",r=n+l-s.length),{str:a+t.slice(e,r).replace(/\t/g,"\u2192")+s,pos:n-e+a.length}}function zN(t,e){return ra.repeat(" ",e-t.length)+t}function VPe(t,e){if(e=Object.create(e||null),!t.buffer)return null;e.maxLength||(e.maxLength=79),typeof e.indent!="number"&&(e.indent=1),typeof e.linesBefore!="number"&&(e.linesBefore=3),typeof e.linesAfter!="number"&&(e.linesAfter=2);for(var r=/\r?\n|\r|\0/g,n=[0],i=[],a,s=-1;a=r.exec(t.buffer);)i.push(a.index),n.push(a.index+a[0].length),t.position<=a.index&&s<0&&(s=n.length-2);s<0&&(s=n.length-1);var l="",u,h,f=Math.min(t.line+e.linesAfter,i.length).toString().length,d=e.maxLength-(e.indent+f+3);for(u=1;u<=e.linesBefore&&!(s-u<0);u++)h=$N(t.buffer,n[s-u],i[s-u],t.position-(n[s]-n[s-u]),d),l=ra.repeat(" ",e.indent)+zN((t.line-u+1).toString(),f)+" | "+h.str+` +`+l;for(h=$N(t.buffer,n[s],i[s],t.position,d),l+=ra.repeat(" ",e.indent)+zN((t.line+1).toString(),f)+" | "+h.str+` +`,l+=ra.repeat("-",e.indent+f+3+h.pos)+`^ +`,u=1;u<=e.linesAfter&&!(s+u>=i.length);u++)h=$N(t.buffer,n[s+u],i[s+u],t.position-(n[s]-n[s+u]),d),l+=ra.repeat(" ",e.indent)+zN((t.line+u+1).toString(),f)+" | "+h.str+` +`;return l.replace(/\n$/,"")}function HPe(t){var e={};return t!==null&&Object.keys(t).forEach(function(r){t[r].forEach(function(n){e[String(n)]=r})}),e}function YPe(t,e){if(e=e||{},Object.keys(e).forEach(function(r){if(UPe.indexOf(r)===-1)throw new oo('Unknown option "'+r+'" is met in definition of "'+t+'" YAML type.')}),this.options=e,this.tag=t,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(r){return r},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.representName=e.representName||null,this.defaultStyle=e.defaultStyle||null,this.multi=e.multi||!1,this.styleAliases=HPe(e.styleAliases||null),WPe.indexOf(this.kind)===-1)throw new oo('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')}function tne(t,e){var r=[];return t[e].forEach(function(n){var i=r.length;r.forEach(function(a,s){a.tag===n.tag&&a.kind===n.kind&&a.multi===n.multi&&(i=s)}),r[i]=n}),r}function jPe(){var t={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}},e,r;function n(i){i.multi?(t.multi[i.kind].push(i),t.multi.fallback.push(i)):t[i.kind][i.tag]=t.fallback[i.tag]=i}for(o(n,"collectType"),e=0,r=arguments.length;e=0&&(e=e.slice(1)),e===".inf"?r===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:r*parseFloat(e,10)}function xBe(t,e){var r;if(isNaN(t))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===t)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===t)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(ra.isNegativeZero(t))return"-0.0";return r=t.toString(10),vBe.test(r)?r.replace("e",".e"):r}function bBe(t){return Object.prototype.toString.call(t)==="[object Number]"&&(t%1!==0||ra.isNegativeZero(t))}function kBe(t){return t===null?!1:xne.exec(t)!==null||bne.exec(t)!==null}function EBe(t){var e,r,n,i,a,s,l,u=0,h=null,f,d,p;if(e=xne.exec(t),e===null&&(e=bne.exec(t)),e===null)throw new Error("Date resolve error");if(r=+e[1],n=+e[2]-1,i=+e[3],!e[4])return new Date(Date.UTC(r,n,i));if(a=+e[4],s=+e[5],l=+e[6],e[7]){for(u=e[7].slice(0,3);u.length<3;)u+="0";u=+u}return e[9]&&(f=+e[10],d=+(e[11]||0),h=(f*60+d)*6e4,e[9]==="-"&&(h=-h)),p=new Date(Date.UTC(r,n,i,a,s,l,u)),h&&p.setTime(p.getTime()-h),p}function SBe(t){return t.toISOString()}function ABe(t){return t==="<<"||t===null}function DBe(t){if(t===null)return!1;var e,r,n=0,i=t.length,a=YN;for(r=0;r64)){if(e<0)return!1;n+=6}return n%8===0}function RBe(t){var e,r,n=t.replace(/[\r\n=]/g,""),i=n.length,a=YN,s=0,l=[];for(e=0;e>16&255),l.push(s>>8&255),l.push(s&255)),s=s<<6|a.indexOf(n.charAt(e));return r=i%4*6,r===0?(l.push(s>>16&255),l.push(s>>8&255),l.push(s&255)):r===18?(l.push(s>>10&255),l.push(s>>2&255)):r===12&&l.push(s>>4&255),new Uint8Array(l)}function LBe(t){var e="",r=0,n,i,a=t.length,s=YN;for(n=0;n>18&63],e+=s[r>>12&63],e+=s[r>>6&63],e+=s[r&63]),r=(r<<8)+t[n];return i=a%3,i===0?(e+=s[r>>18&63],e+=s[r>>12&63],e+=s[r>>6&63],e+=s[r&63]):i===2?(e+=s[r>>10&63],e+=s[r>>4&63],e+=s[r<<2&63],e+=s[64]):i===1&&(e+=s[r>>2&63],e+=s[r<<4&63],e+=s[64],e+=s[64]),e}function NBe(t){return Object.prototype.toString.call(t)==="[object Uint8Array]"}function PBe(t){if(t===null)return!0;var e=[],r,n,i,a,s,l=t;for(r=0,n=l.length;r>10)+55296,(t-65536&1023)+56320)}function Cne(t,e,r){e==="__proto__"?Object.defineProperty(t,e,{configurable:!0,enumerable:!0,writable:!0,value:r}):t[e]=r}function tFe(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||Tne,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=t.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function Dne(t,e){var r={name:t.filename,buffer:t.input.slice(0,-1),position:t.position,line:t.line,column:t.position-t.lineStart};return r.snippet=qPe(r),new oo(e,r)}function sr(t,e){throw Dne(t,e)}function Ik(t,e){t.onWarning&&t.onWarning.call(null,Dne(t,e))}function Yf(t,e,r,n){var i,a,s,l;if(e1&&(t.result+=ra.repeat(` +`,e-1))}function rFe(t,e,r){var n,i,a,s,l,u,h,f,d=t.kind,p=t.result,m;if(m=t.input.charCodeAt(t.position),lo(m)||u1(m)||m===35||m===38||m===42||m===33||m===124||m===62||m===39||m===34||m===37||m===64||m===96||(m===63||m===45)&&(i=t.input.charCodeAt(t.position+1),lo(i)||r&&u1(i)))return!1;for(t.kind="scalar",t.result="",a=s=t.position,l=!1;m!==0;){if(m===58){if(i=t.input.charCodeAt(t.position+1),lo(i)||r&&u1(i))break}else if(m===35){if(n=t.input.charCodeAt(t.position-1),lo(n))break}else{if(t.position===t.lineStart&&Bk(t)||r&&u1(m))break;if(fu(m))if(u=t.line,h=t.lineStart,f=t.lineIndent,qi(t,!1,-1),t.lineIndent>=e){l=!0,m=t.input.charCodeAt(t.position);continue}else{t.position=s,t.line=u,t.lineStart=h,t.lineIndent=f;break}}l&&(Yf(t,a,s,!1),XN(t,t.line-u),a=s=t.position,l=!1),p0(m)||(s=t.position+1),m=t.input.charCodeAt(++t.position)}return Yf(t,a,s,!1),t.result?!0:(t.kind=d,t.result=p,!1)}function nFe(t,e){var r,n,i;if(r=t.input.charCodeAt(t.position),r!==39)return!1;for(t.kind="scalar",t.result="",t.position++,n=i=t.position;(r=t.input.charCodeAt(t.position))!==0;)if(r===39)if(Yf(t,n,t.position,!0),r=t.input.charCodeAt(++t.position),r===39)n=t.position,t.position++,i=t.position;else return!0;else fu(r)?(Yf(t,n,i,!0),XN(t,qi(t,!1,e)),n=i=t.position):t.position===t.lineStart&&Bk(t)?sr(t,"unexpected end of the document within a single quoted scalar"):(t.position++,i=t.position);sr(t,"unexpected end of the stream within a single quoted scalar")}function iFe(t,e){var r,n,i,a,s,l;if(l=t.input.charCodeAt(t.position),l!==34)return!1;for(t.kind="scalar",t.result="",t.position++,r=n=t.position;(l=t.input.charCodeAt(t.position))!==0;){if(l===34)return Yf(t,r,t.position,!0),t.position++,!0;if(l===92){if(Yf(t,r,t.position,!0),l=t.input.charCodeAt(++t.position),fu(l))qi(t,!1,e);else if(l<256&&Ane[l])t.result+=_ne[l],t.position++;else if((s=ZBe(l))>0){for(i=s,a=0;i>0;i--)l=t.input.charCodeAt(++t.position),(s=QBe(l))>=0?a=(a<<4)+s:sr(t,"expected hexadecimal character");t.result+=eFe(a),t.position++}else sr(t,"unknown escape sequence");r=n=t.position}else fu(l)?(Yf(t,r,n,!0),XN(t,qi(t,!1,e)),r=n=t.position):t.position===t.lineStart&&Bk(t)?sr(t,"unexpected end of the document within a double quoted scalar"):(t.position++,n=t.position)}sr(t,"unexpected end of the stream within a double quoted scalar")}function aFe(t,e){var r=!0,n,i,a,s=t.tag,l,u=t.anchor,h,f,d,p,m,g=Object.create(null),y,v,x,b;if(b=t.input.charCodeAt(t.position),b===91)f=93,m=!1,l=[];else if(b===123)f=125,m=!0,l={};else return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=l),b=t.input.charCodeAt(++t.position);b!==0;){if(qi(t,!0,e),b=t.input.charCodeAt(t.position),b===f)return t.position++,t.tag=s,t.anchor=u,t.kind=m?"mapping":"sequence",t.result=l,!0;r?b===44&&sr(t,"expected the node content, but found ','"):sr(t,"missed comma between flow collection entries"),v=y=x=null,d=p=!1,b===63&&(h=t.input.charCodeAt(t.position+1),lo(h)&&(d=p=!0,t.position++,qi(t,!0,e))),n=t.line,i=t.lineStart,a=t.position,f1(t,e,Nk,!1,!0),v=t.tag,y=t.result,qi(t,!0,e),b=t.input.charCodeAt(t.position),(p||t.line===n)&&b===58&&(d=!0,b=t.input.charCodeAt(++t.position),qi(t,!0,e),f1(t,e,Nk,!1,!0),x=t.result),m?h1(t,l,g,v,y,x,n,i,a):d?l.push(h1(t,null,g,v,y,x,n,i,a)):l.push(y),qi(t,!0,e),b=t.input.charCodeAt(t.position),b===44?(r=!0,b=t.input.charCodeAt(++t.position)):r=!1}sr(t,"unexpected end of the stream within a flow collection")}function sFe(t,e){var r,n,i=GN,a=!1,s=!1,l=e,u=0,h=!1,f,d;if(d=t.input.charCodeAt(t.position),d===124)n=!1;else if(d===62)n=!0;else return!1;for(t.kind="scalar",t.result="";d!==0;)if(d=t.input.charCodeAt(++t.position),d===43||d===45)GN===i?i=d===43?rne:YBe:sr(t,"repeat of a chomping mode identifier");else if((f=JBe(d))>=0)f===0?sr(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):s?sr(t,"repeat of an indentation width identifier"):(l=e+f-1,s=!0);else break;if(p0(d)){do d=t.input.charCodeAt(++t.position);while(p0(d));if(d===35)do d=t.input.charCodeAt(++t.position);while(!fu(d)&&d!==0)}for(;d!==0;){for(jN(t),t.lineIndent=0,d=t.input.charCodeAt(t.position);(!s||t.lineIndentl&&(l=t.lineIndent),fu(d)){u++;continue}if(t.lineIndente)&&u!==0)sr(t,"bad indentation of a sequence entry");else if(t.lineIndente)&&(v&&(s=t.line,l=t.lineStart,u=t.position),f1(t,e,Mk,!0,i)&&(v?g=t.result:y=t.result),v||(h1(t,d,p,m,g,y,s,l,u),m=g=y=null),qi(t,!0,-1),b=t.input.charCodeAt(t.position)),(t.line===a||t.lineIndent>e)&&b!==0)sr(t,"bad indentation of a mapping entry");else if(t.lineIndente?u=1:t.lineIndent===e?u=0:t.lineIndente?u=1:t.lineIndent===e?u=0:t.lineIndent tag; it should be "scalar", not "'+t.kind+'"'),d=0,p=t.implicitTypes.length;d"),t.result!==null&&g.kind!==t.kind&&sr(t,"unacceptable node kind for !<"+t.tag+'> tag; it should be "'+g.kind+'", not "'+t.kind+'"'),g.resolve(t.result,t.tag)?(t.result=g.construct(t.result,t.tag),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):sr(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")}return t.listener!==null&&t.listener("close",t),t.tag!==null||t.anchor!==null||f}function hFe(t){var e=t.position,r,n,i,a=!1,s;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap=Object.create(null),t.anchorMap=Object.create(null);(s=t.input.charCodeAt(t.position))!==0&&(qi(t,!0,-1),s=t.input.charCodeAt(t.position),!(t.lineIndent>0||s!==37));){for(a=!0,s=t.input.charCodeAt(++t.position),r=t.position;s!==0&&!lo(s);)s=t.input.charCodeAt(++t.position);for(n=t.input.slice(r,t.position),i=[],n.length<1&&sr(t,"directive name must not be less than one character in length");s!==0;){for(;p0(s);)s=t.input.charCodeAt(++t.position);if(s===35){do s=t.input.charCodeAt(++t.position);while(s!==0&&!fu(s));break}if(fu(s))break;for(r=t.position;s!==0&&!lo(s);)s=t.input.charCodeAt(++t.position);i.push(t.input.slice(r,t.position))}s!==0&&jN(t),jf.call(ane,n)?ane[n](t,n,i):Ik(t,'unknown document directive "'+n+'"')}if(qi(t,!0,-1),t.lineIndent===0&&t.input.charCodeAt(t.position)===45&&t.input.charCodeAt(t.position+1)===45&&t.input.charCodeAt(t.position+2)===45?(t.position+=3,qi(t,!0,-1)):a&&sr(t,"directives end mark is expected"),f1(t,t.lineIndent-1,Mk,!1,!0),qi(t,!0,-1),t.checkLineBreaks&&XBe.test(t.input.slice(e,t.position))&&Ik(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&Bk(t)){t.input.charCodeAt(t.position)===46&&(t.position+=3,qi(t,!0,-1));return}if(t.position"u"&&(r=e,e=null);var n=Rne(t,r);if(typeof e!="function")return n;for(var i=0,a=n.length;i=55296&&r<=56319&&e+1=56320&&n<=57343)?(r-55296)*1024+n-56320+65536:r}function $ne(t){var e=/^\n* /;return e.test(t)}function GFe(t,e,r,n,i,a,s,l){var u,h=0,f=null,d=!1,p=!1,m=n!==-1,g=-1,y=$Fe(Jx(t,0))&&zFe(Jx(t,t.length-1));if(e||s)for(u=0;u=65536?u+=2:u++){if(h=Jx(t,u),!nb(h))return c1;y=y&&une(h,f,l),f=h}else{for(u=0;u=65536?u+=2:u++){if(h=Jx(t,u),h===tb)d=!0,m&&(p=p||u-g-1>n&&t[g+1]!==" ",g=u);else if(!nb(h))return c1;y=y&&une(h,f,l),f=h}p=p||m&&u-g-1>n&&t[g+1]!==" "}return!d&&!p?y&&!s&&!i(t)?zne:a===rb?c1:WN:r>9&&$ne(t)?c1:s?a===rb?c1:WN:p?Vne:Gne}function VFe(t,e,r,n,i){t.dump=(function(){if(e.length===0)return t.quotingType===rb?'""':"''";if(!t.noCompatMode&&(NFe.indexOf(e)!==-1||MFe.test(e)))return t.quotingType===rb?'"'+e+'"':"'"+e+"'";var a=t.indent*Math.max(1,r),s=t.lineWidth===-1?-1:Math.max(Math.min(t.lineWidth,40),t.lineWidth-a),l=n||t.flowLevel>-1&&r>=t.flowLevel;function u(h){return FFe(t,h)}switch(o(u,"testAmbiguity"),GFe(e,l,t.indent,s,u,t.quotingType,t.forceQuotes&&!n,i)){case zne:return e;case WN:return"'"+e.replace(/'/g,"''")+"'";case Gne:return"|"+hne(e,t.indent)+fne(lne(e,a));case Vne:return">"+hne(e,t.indent)+fne(lne(qFe(e,s),a));case c1:return'"'+UFe(e)+'"';default:throw new oo("impossible error: invalid scalar style")}})()}function hne(t,e){var r=$ne(t)?String(e):"",n=t[t.length-1]===` +`,i=n&&(t[t.length-2]===` +`||t===` +`),a=i?"+":n?"":"-";return r+a+` +`}function fne(t){return t[t.length-1]===` +`?t.slice(0,-1):t}function qFe(t,e){for(var r=/(\n+)([^\n]*)/g,n=(function(){var h=t.indexOf(` +`);return h=h!==-1?h:t.length,r.lastIndex=h,dne(t.slice(0,h),e)})(),i=t[0]===` +`||t[0]===" ",a,s;s=r.exec(t);){var l=s[1],u=s[2];a=u[0]===" ",n+=l+(!i&&!a&&u!==""?` +`:"")+dne(u,e),i=a}return n}function dne(t,e){if(t===""||t[0]===" ")return t;for(var r=/ [^ ]/g,n,i=0,a,s=0,l=0,u="";n=r.exec(t);)l=n.index,l-i>e&&(a=s>i?s:l,u+=` +`+t.slice(i,a),i=a+1),s=l;return u+=` +`,t.length-i>e&&s>i?u+=t.slice(i,s)+` +`+t.slice(s+1):u+=t.slice(i),u.slice(1)}function UFe(t){for(var e="",r=0,n,i=0;i=65536?i+=2:i++)r=Jx(t,i),n=ts[r],!n&&nb(r)?(e+=t[i],r>=65536&&(e+=t[i+1])):e+=n||OFe(r);return e}function WFe(t,e,r){var n="",i=t.tag,a,s,l;for(a=0,s=r.length;a"u"&&Sh(t,e,null,!1,!1))&&(n!==""&&(n+=","+(t.condenseFlow?"":" ")),n+=t.dump);t.tag=i,t.dump="["+n+"]"}function pne(t,e,r,n){var i="",a=t.tag,s,l,u;for(s=0,l=r.length;s"u"&&Sh(t,e+1,null,!0,!0,!1,!0))&&((!n||i!=="")&&(i+=UN(t,e)),t.dump&&tb===t.dump.charCodeAt(0)?i+="-":i+="- ",i+=t.dump);t.tag=a,t.dump=i||"[]"}function HFe(t,e,r){var n="",i=t.tag,a=Object.keys(r),s,l,u,h,f;for(s=0,l=a.length;s1024&&(f+="? "),f+=t.dump+(t.condenseFlow?'"':"")+":"+(t.condenseFlow?"":" "),Sh(t,e,h,!1,!1)&&(f+=t.dump,n+=f));t.tag=i,t.dump="{"+n+"}"}function YFe(t,e,r,n){var i="",a=t.tag,s=Object.keys(r),l,u,h,f,d,p;if(t.sortKeys===!0)s.sort();else if(typeof t.sortKeys=="function")s.sort(t.sortKeys);else if(t.sortKeys)throw new oo("sortKeys must be a boolean or a function");for(l=0,u=s.length;l1024,d&&(t.dump&&tb===t.dump.charCodeAt(0)?p+="?":p+="? "),p+=t.dump,d&&(p+=UN(t,e)),Sh(t,e+1,f,!0,d)&&(t.dump&&tb===t.dump.charCodeAt(0)?p+=":":p+=": ",p+=t.dump,i+=p));t.tag=a,t.dump=i||"{}"}function mne(t,e,r){var n,i,a,s,l,u;for(i=r?t.explicitTypes:t.implicitTypes,a=0,s=i.length;a tag resolver accepts not "'+u+'" style');t.dump=n}return!0}return!1}function Sh(t,e,r,n,i,a,s){t.tag=null,t.dump=r,mne(t,r,!1)||mne(t,r,!0);var l=Nne.call(t.dump),u=n,h;n&&(n=t.flowLevel<0||t.flowLevel>e);var f=l==="[object Object]"||l==="[object Array]",d,p;if(f&&(d=t.duplicates.indexOf(r),p=d!==-1),(t.tag!==null&&t.tag!=="?"||p||t.indent!==2&&e>0)&&(i=!1),p&&t.usedDuplicates[d])t.dump="*ref_"+d;else{if(f&&p&&!t.usedDuplicates[d]&&(t.usedDuplicates[d]=!0),l==="[object Object]")n&&Object.keys(t.dump).length!==0?(YFe(t,e,t.dump,i),p&&(t.dump="&ref_"+d+t.dump)):(HFe(t,e,t.dump),p&&(t.dump="&ref_"+d+" "+t.dump));else if(l==="[object Array]")n&&t.dump.length!==0?(t.noArrayIndent&&!s&&e>0?pne(t,e-1,t.dump,i):pne(t,e,t.dump,i),p&&(t.dump="&ref_"+d+t.dump)):(WFe(t,e,t.dump),p&&(t.dump="&ref_"+d+" "+t.dump));else if(l==="[object String]")t.tag!=="?"&&VFe(t,t.dump,e,a,u);else{if(l==="[object Undefined]")return!1;if(t.skipInvalid)return!1;throw new oo("unacceptable kind of an object to dump "+l)}t.tag!==null&&t.tag!=="?"&&(h=encodeURI(t.tag[0]==="!"?t.tag.slice(1):t.tag).replace(/!/g,"%21"),t.tag[0]==="!"?h="!"+h:h.slice(0,18)==="tag:yaml.org,2002:"?h="!!"+h.slice(18):h="!<"+h+">",t.dump=h+" "+t.dump)}return!0}function jFe(t,e){var r=[],n=[],i,a;for(HN(t,r,n),i=0,a=n.length;i{"use strict";o(gne,"isNothing");o(LPe,"isObject");o(NPe,"toArray");o(MPe,"extend");o(IPe,"repeat");o(OPe,"isNegativeZero");PPe=gne,BPe=LPe,FPe=NPe,$Pe=IPe,zPe=OPe,GPe=MPe,ra={isNothing:PPe,isObject:BPe,toArray:FPe,repeat:$Pe,isNegativeZero:zPe,extend:GPe};o(yne,"formatError");o(eb,"YAMLException$1");eb.prototype=Object.create(Error.prototype);eb.prototype.constructor=eb;eb.prototype.toString=o(function(e){return this.name+": "+yne(this,e)},"toString");oo=eb;o($N,"getLine");o(zN,"padStart");o(VPe,"makeSnippet");qPe=VPe,UPe=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],WPe=["scalar","sequence","mapping"];o(HPe,"compileStyleAliases");o(YPe,"Type$1");es=YPe;o(tne,"compileList");o(jPe,"compileMap");o(VN,"Schema$1");VN.prototype.extend=o(function(e){var r=[],n=[];if(e instanceof es)n.push(e);else if(Array.isArray(e))n=n.concat(e);else if(e&&(Array.isArray(e.implicit)||Array.isArray(e.explicit)))e.implicit&&(r=r.concat(e.implicit)),e.explicit&&(n=n.concat(e.explicit));else throw new oo("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");r.forEach(function(a){if(!(a instanceof es))throw new oo("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(a.loadKind&&a.loadKind!=="scalar")throw new oo("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(a.multi)throw new oo("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")}),n.forEach(function(a){if(!(a instanceof es))throw new oo("Specified list of YAML types (or a single Type object) contains a non-Type object.")});var i=Object.create(VN.prototype);return i.implicit=(this.implicit||[]).concat(r),i.explicit=(this.explicit||[]).concat(n),i.compiledImplicit=tne(i,"implicit"),i.compiledExplicit=tne(i,"explicit"),i.compiledTypeMap=jPe(i.compiledImplicit,i.compiledExplicit),i},"extend");XPe=VN,KPe=new es("tag:yaml.org,2002:str",{kind:"scalar",construct:o(function(t){return t!==null?t:""},"construct")}),QPe=new es("tag:yaml.org,2002:seq",{kind:"sequence",construct:o(function(t){return t!==null?t:[]},"construct")}),ZPe=new es("tag:yaml.org,2002:map",{kind:"mapping",construct:o(function(t){return t!==null?t:{}},"construct")}),JPe=new XPe({explicit:[KPe,QPe,ZPe]});o(eBe,"resolveYamlNull");o(tBe,"constructYamlNull");o(rBe,"isNull");nBe=new es("tag:yaml.org,2002:null",{kind:"scalar",resolve:eBe,construct:tBe,predicate:rBe,represent:{canonical:o(function(){return"~"},"canonical"),lowercase:o(function(){return"null"},"lowercase"),uppercase:o(function(){return"NULL"},"uppercase"),camelcase:o(function(){return"Null"},"camelcase"),empty:o(function(){return""},"empty")},defaultStyle:"lowercase"});o(iBe,"resolveYamlBoolean");o(aBe,"constructYamlBoolean");o(sBe,"isBoolean");oBe=new es("tag:yaml.org,2002:bool",{kind:"scalar",resolve:iBe,construct:aBe,predicate:sBe,represent:{lowercase:o(function(t){return t?"true":"false"},"lowercase"),uppercase:o(function(t){return t?"TRUE":"FALSE"},"uppercase"),camelcase:o(function(t){return t?"True":"False"},"camelcase")},defaultStyle:"lowercase"});o(lBe,"isHexCode");o(cBe,"isOctCode");o(uBe,"isDecCode");o(hBe,"resolveYamlInteger");o(fBe,"constructYamlInteger");o(dBe,"isInteger");pBe=new es("tag:yaml.org,2002:int",{kind:"scalar",resolve:hBe,construct:fBe,predicate:dBe,represent:{binary:o(function(t){return t>=0?"0b"+t.toString(2):"-0b"+t.toString(2).slice(1)},"binary"),octal:o(function(t){return t>=0?"0o"+t.toString(8):"-0o"+t.toString(8).slice(1)},"octal"),decimal:o(function(t){return t.toString(10)},"decimal"),hexadecimal:o(function(t){return t>=0?"0x"+t.toString(16).toUpperCase():"-0x"+t.toString(16).toUpperCase().slice(1)},"hexadecimal")},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),mBe=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");o(gBe,"resolveYamlFloat");o(yBe,"constructYamlFloat");vBe=/^[-+]?[0-9]+e/;o(xBe,"representYamlFloat");o(bBe,"isFloat");TBe=new es("tag:yaml.org,2002:float",{kind:"scalar",resolve:gBe,construct:yBe,predicate:bBe,represent:xBe,defaultStyle:"lowercase"}),vne=JPe.extend({implicit:[nBe,oBe,pBe,TBe]}),wBe=vne,xne=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),bne=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");o(kBe,"resolveYamlTimestamp");o(EBe,"constructYamlTimestamp");o(SBe,"representYamlTimestamp");CBe=new es("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:kBe,construct:EBe,instanceOf:Date,represent:SBe});o(ABe,"resolveYamlMerge");_Be=new es("tag:yaml.org,2002:merge",{kind:"scalar",resolve:ABe}),YN=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;o(DBe,"resolveYamlBinary");o(RBe,"constructYamlBinary");o(LBe,"representYamlBinary");o(NBe,"isBinary");MBe=new es("tag:yaml.org,2002:binary",{kind:"scalar",resolve:DBe,construct:RBe,predicate:NBe,represent:LBe}),IBe=Object.prototype.hasOwnProperty,OBe=Object.prototype.toString;o(PBe,"resolveYamlOmap");o(BBe,"constructYamlOmap");FBe=new es("tag:yaml.org,2002:omap",{kind:"sequence",resolve:PBe,construct:BBe}),$Be=Object.prototype.toString;o(zBe,"resolveYamlPairs");o(GBe,"constructYamlPairs");VBe=new es("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:zBe,construct:GBe}),qBe=Object.prototype.hasOwnProperty;o(UBe,"resolveYamlSet");o(WBe,"constructYamlSet");HBe=new es("tag:yaml.org,2002:set",{kind:"mapping",resolve:UBe,construct:WBe}),Tne=wBe.extend({implicit:[CBe,_Be],explicit:[MBe,FBe,VBe,HBe]}),jf=Object.prototype.hasOwnProperty,Nk=1,wne=2,kne=3,Mk=4,GN=1,YBe=2,rne=3,jBe=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,XBe=/[\x85\u2028\u2029]/,KBe=/[,\[\]\{\}]/,Ene=/^(?:!|!!|![a-z\-]+!)$/i,Sne=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;o(nne,"_class");o(fu,"is_EOL");o(p0,"is_WHITE_SPACE");o(lo,"is_WS_OR_EOL");o(u1,"is_FLOW_INDICATOR");o(QBe,"fromHexCode");o(ZBe,"escapedHexLen");o(JBe,"fromDecimalCode");o(ine,"simpleEscapeSequence");o(eFe,"charFromCodepoint");o(Cne,"setProperty");Ane=new Array(256),_ne=new Array(256);for(d0=0;d0<256;d0++)Ane[d0]=ine(d0)?1:0,_ne[d0]=ine(d0);o(tFe,"State$1");o(Dne,"generateError");o(sr,"throwError");o(Ik,"throwWarning");ane={YAML:o(function(e,r,n){var i,a,s;e.version!==null&&sr(e,"duplication of %YAML directive"),n.length!==1&&sr(e,"YAML directive accepts exactly one argument"),i=/^([0-9]+)\.([0-9]+)$/.exec(n[0]),i===null&&sr(e,"ill-formed argument of the YAML directive"),a=parseInt(i[1],10),s=parseInt(i[2],10),a!==1&&sr(e,"unacceptable YAML version of the document"),e.version=n[0],e.checkLineBreaks=s<2,s!==1&&s!==2&&Ik(e,"unsupported YAML version of the document")},"handleYamlDirective"),TAG:o(function(e,r,n){var i,a;n.length!==2&&sr(e,"TAG directive accepts exactly two arguments"),i=n[0],a=n[1],Ene.test(i)||sr(e,"ill-formed tag handle (first argument) of the TAG directive"),jf.call(e.tagMap,i)&&sr(e,'there is a previously declared suffix for "'+i+'" tag handle'),Sne.test(a)||sr(e,"ill-formed tag prefix (second argument) of the TAG directive");try{a=decodeURIComponent(a)}catch{sr(e,"tag prefix is malformed: "+a)}e.tagMap[i]=a},"handleTagDirective")};o(Yf,"captureSegment");o(sne,"mergeMappings");o(h1,"storeMappingPair");o(jN,"readLineBreak");o(qi,"skipSeparationSpace");o(Bk,"testDocumentSeparator");o(XN,"writeFoldedLines");o(rFe,"readPlainScalar");o(nFe,"readSingleQuotedScalar");o(iFe,"readDoubleQuotedScalar");o(aFe,"readFlowCollection");o(sFe,"readBlockScalar");o(one,"readBlockSequence");o(oFe,"readBlockMapping");o(lFe,"readTagProperty");o(cFe,"readAnchorProperty");o(uFe,"readAlias");o(f1,"composeNode");o(hFe,"readDocument");o(Rne,"loadDocuments");o(fFe,"loadAll$1");o(dFe,"load$1");pFe=fFe,mFe=dFe,Lne={loadAll:pFe,load:mFe},Nne=Object.prototype.toString,Mne=Object.prototype.hasOwnProperty,KN=65279,gFe=9,tb=10,yFe=13,vFe=32,xFe=33,bFe=34,qN=35,TFe=37,wFe=38,kFe=39,EFe=42,Ine=44,SFe=45,Ok=58,CFe=61,AFe=62,_Fe=63,DFe=64,One=91,Pne=93,RFe=96,Bne=123,LFe=124,Fne=125,ts={};ts[0]="\\0";ts[7]="\\a";ts[8]="\\b";ts[9]="\\t";ts[10]="\\n";ts[11]="\\v";ts[12]="\\f";ts[13]="\\r";ts[27]="\\e";ts[34]='\\"';ts[92]="\\\\";ts[133]="\\N";ts[160]="\\_";ts[8232]="\\L";ts[8233]="\\P";NFe=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"],MFe=/^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/;o(IFe,"compileStyleMap");o(OFe,"encodeHex");PFe=1,rb=2;o(BFe,"State");o(lne,"indentString");o(UN,"generateNextLine");o(FFe,"testImplicitResolving");o(Pk,"isWhitespace");o(nb,"isPrintable");o(cne,"isNsCharOrWhitespace");o(une,"isPlainSafe");o($Fe,"isPlainSafeFirst");o(zFe,"isPlainSafeLast");o(Jx,"codePointAt");o($ne,"needIndentIndicator");zne=1,WN=2,Gne=3,Vne=4,c1=5;o(GFe,"chooseScalarStyle");o(VFe,"writeScalar");o(hne,"blockHeader");o(fne,"dropEndingNewline");o(qFe,"foldString");o(dne,"foldLine");o(UFe,"escapeString");o(WFe,"writeFlowSequence");o(pne,"writeBlockSequence");o(HFe,"writeFlowMapping");o(YFe,"writeBlockMapping");o(mne,"detectType");o(Sh,"writeNode");o(jFe,"getDuplicateReferences");o(HN,"inspectNode");o(XFe,"dump$1");KFe=XFe,QFe={dump:KFe};o(QN,"renamed");Xf=vne,Kf=Lne.load,EMt=Lne.loadAll,SMt=QFe.dump,CMt=QN("safeLoad","load"),AMt=QN("safeLoadAll","loadAll"),_Mt=QN("safeDump","dump")});function tM(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}function jne(t){g0=t}function bn(t,e=""){let r=typeof t=="string"?t:t.source,n={replace:o((i,a)=>{let s=typeof a=="string"?a:a.source;return s=s.replace(Ds.caret,"$1"),r=r.replace(i,s),n},"replace"),getRegex:o(()=>new RegExp(r,e),"getRegex")};return n}function du(t,e){if(e){if(Ds.escapeTest.test(t))return t.replace(Ds.escapeReplace,Une)}else if(Ds.escapeTestNoEncode.test(t))return t.replace(Ds.escapeReplaceNoEncode,Une);return t}function Wne(t){try{t=encodeURI(t).replace(Ds.percentDecode,"%")}catch{return null}return t}function Hne(t,e){let r=t.replace(Ds.findPipe,(a,s,l)=>{let u=!1,h=s;for(;--h>=0&&l[h]==="\\";)u=!u;return u?"|":" |"}),n=r.split(Ds.splitPipe),i=0;if(n[0].trim()||n.shift(),n.length>0&&!n.at(-1)?.trim()&&n.pop(),e)if(n.length>e)n.splice(e);else for(;n.length0?-2:-1}function Yne(t,e,r,n,i){let a=e.href,s=e.title||null,l=t[1].replace(i.other.outputLinkReplace,"$1");n.state.inLink=!0;let u={type:t[0].charAt(0)==="!"?"image":"link",raw:r,href:a,title:s,text:l,tokens:n.inlineTokens(l)};return n.state.inLink=!1,u}function N$e(t,e,r){let n=t.match(r.other.indentCodeCompensation);if(n===null)return e;let i=n[1];return e.split(` +`).map(a=>{let s=a.match(r.other.beginningSpace);if(s===null)return a;let[l]=s;return l.length>=i.length?a.slice(i.length):a}).join(` +`)}function yn(t,e){return m0.parse(t,e)}var g0,lb,Ds,ZFe,JFe,e$e,cb,t$e,rM,Xne,Kne,r$e,nM,n$e,iM,i$e,a$e,qk,aM,s$e,Qne,o$e,sM,qne,l$e,c$e,u$e,h$e,Zne,f$e,Uk,oM,Jne,d$e,eie,p$e,m$e,g$e,tie,y$e,v$e,rie,x$e,b$e,T$e,w$e,k$e,E$e,S$e,zk,C$e,nie,iie,A$e,lM,_$e,ZN,D$e,$k,ab,R$e,Une,Gk,Ch,Vk,cM,Ah,ob,M$e,m0,RMt,LMt,NMt,MMt,IMt,OMt,PMt,aie=O(()=>{"use strict";o(tM,"L");g0=tM();o(jne,"G");lb={exec:o(()=>null,"exec")};o(bn,"h");Ds={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:o(t=>new RegExp(`^( {0,3}${t})((?:[ ][^\\n]*)?(?:\\n|$))`),"listItemRegex"),nextBulletRegex:o(t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),"nextBulletRegex"),hrRegex:o(t=>new RegExp(`^ {0,${Math.min(3,t-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),"hrRegex"),fencesBeginRegex:o(t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:\`\`\`|~~~)`),"fencesBeginRegex"),headingBeginRegex:o(t=>new RegExp(`^ {0,${Math.min(3,t-1)}}#`),"headingBeginRegex"),htmlBeginRegex:o(t=>new RegExp(`^ {0,${Math.min(3,t-1)}}<(?:[a-z].*>|!--)`,"i"),"htmlBeginRegex")},ZFe=/^(?:[ \t]*(?:\n|$))+/,JFe=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,e$e=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,cb=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,t$e=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,rM=/(?:[*+-]|\d{1,9}[.)])/,Xne=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,Kne=bn(Xne).replace(/bull/g,rM).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),r$e=bn(Xne).replace(/bull/g,rM).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),nM=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,n$e=/^[^\n]+/,iM=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,i$e=bn(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",iM).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),a$e=bn(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,rM).getRegex(),qk="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",aM=/|$))/,s$e=bn("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",aM).replace("tag",qk).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Qne=bn(nM).replace("hr",cb).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",qk).getRegex(),o$e=bn(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",Qne).getRegex(),sM={blockquote:o$e,code:JFe,def:i$e,fences:e$e,heading:t$e,hr:cb,html:s$e,lheading:Kne,list:a$e,newline:ZFe,paragraph:Qne,table:lb,text:n$e},qne=bn("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",cb).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",qk).getRegex(),l$e={...sM,lheading:r$e,table:qne,paragraph:bn(nM).replace("hr",cb).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",qne).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",qk).getRegex()},c$e={...sM,html:bn(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",aM).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:lb,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:bn(nM).replace("hr",cb).replace("heading",` *#{1,6} *[^ +]`).replace("lheading",Kne).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},u$e=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,h$e=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,Zne=/^( {2,}|\\)\n(?!\s*$)/,f$e=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\]*?>/g,tie=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,y$e=bn(tie,"u").replace(/punct/g,Uk).getRegex(),v$e=bn(tie,"u").replace(/punct/g,eie).getRegex(),rie="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",x$e=bn(rie,"gu").replace(/notPunctSpace/g,Jne).replace(/punctSpace/g,oM).replace(/punct/g,Uk).getRegex(),b$e=bn(rie,"gu").replace(/notPunctSpace/g,m$e).replace(/punctSpace/g,p$e).replace(/punct/g,eie).getRegex(),T$e=bn("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,Jne).replace(/punctSpace/g,oM).replace(/punct/g,Uk).getRegex(),w$e=bn(/\\(punct)/,"gu").replace(/punct/g,Uk).getRegex(),k$e=bn(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),E$e=bn(aM).replace("(?:-->|$)","-->").getRegex(),S$e=bn("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",E$e).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),zk=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`[^`]*`|[^\[\]\\`])*?/,C$e=bn(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",zk).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),nie=bn(/^!?\[(label)\]\[(ref)\]/).replace("label",zk).replace("ref",iM).getRegex(),iie=bn(/^!?\[(ref)\](?:\[\])?/).replace("ref",iM).getRegex(),A$e=bn("reflink|nolink(?!\\()","g").replace("reflink",nie).replace("nolink",iie).getRegex(),lM={_backpedal:lb,anyPunctuation:w$e,autolink:k$e,blockSkip:g$e,br:Zne,code:h$e,del:lb,emStrongLDelim:y$e,emStrongRDelimAst:x$e,emStrongRDelimUnd:T$e,escape:u$e,link:C$e,nolink:iie,punctuation:d$e,reflink:nie,reflinkSearch:A$e,tag:S$e,text:f$e,url:lb},_$e={...lM,link:bn(/^!?\[(label)\]\((.*?)\)/).replace("label",zk).getRegex(),reflink:bn(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",zk).getRegex()},ZN={...lM,emStrongRDelimAst:b$e,emStrongLDelim:v$e,url:bn(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\":">",'"':""","'":"'"},Une=o(t=>R$e[t],"ke");o(du,"w");o(Wne,"J");o(Hne,"V");o(sb,"z");o(L$e,"ge");o(Yne,"fe");o(N$e,"Je");Gk=class{static{o(this,"y")}options;rules;lexer;constructor(t){this.options=t||g0}space(t){let e=this.rules.block.newline.exec(t);if(e&&e[0].length>0)return{type:"space",raw:e[0]}}code(t){let e=this.rules.block.code.exec(t);if(e){let r=e[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:e[0],codeBlockStyle:"indented",text:this.options.pedantic?r:sb(r,` +`)}}}fences(t){let e=this.rules.block.fences.exec(t);if(e){let r=e[0],n=N$e(r,e[3]||"",this.rules);return{type:"code",raw:r,lang:e[2]?e[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):e[2],text:n}}}heading(t){let e=this.rules.block.heading.exec(t);if(e){let r=e[2].trim();if(this.rules.other.endingHash.test(r)){let n=sb(r,"#");(this.options.pedantic||!n||this.rules.other.endingSpaceChar.test(n))&&(r=n.trim())}return{type:"heading",raw:e[0],depth:e[1].length,text:r,tokens:this.lexer.inline(r)}}}hr(t){let e=this.rules.block.hr.exec(t);if(e)return{type:"hr",raw:sb(e[0],` +`)}}blockquote(t){let e=this.rules.block.blockquote.exec(t);if(e){let r=sb(e[0],` +`).split(` +`),n="",i="",a=[];for(;r.length>0;){let s=!1,l=[],u;for(u=0;u1,i={type:"list",raw:"",ordered:n,start:n?+r.slice(0,-1):"",loose:!1,items:[]};r=n?`\\d{1,9}\\${r.slice(-1)}`:`\\${r}`,this.options.pedantic&&(r=n?r:"[*+-]");let a=this.rules.other.listItemRegex(r),s=!1;for(;t;){let u=!1,h="",f="";if(!(e=a.exec(t))||this.rules.block.hr.test(t))break;h=e[0],t=t.substring(h.length);let d=e[2].split(` +`,1)[0].replace(this.rules.other.listReplaceTabs,x=>" ".repeat(3*x.length)),p=t.split(` +`,1)[0],m=!d.trim(),g=0;if(this.options.pedantic?(g=2,f=d.trimStart()):m?g=e[1].length+1:(g=e[2].search(this.rules.other.nonSpaceChar),g=g>4?1:g,f=d.slice(g),g+=e[1].length),m&&this.rules.other.blankLine.test(p)&&(h+=p+` +`,t=t.substring(p.length+1),u=!0),!u){let x=this.rules.other.nextBulletRegex(g),b=this.rules.other.hrRegex(g),T=this.rules.other.fencesBeginRegex(g),E=this.rules.other.headingBeginRegex(g),w=this.rules.other.htmlBeginRegex(g);for(;t;){let k=t.split(` +`,1)[0],S;if(p=k,this.options.pedantic?(p=p.replace(this.rules.other.listReplaceNesting," "),S=p):S=p.replace(this.rules.other.tabCharGlobal," "),T.test(p)||E.test(p)||w.test(p)||x.test(p)||b.test(p))break;if(S.search(this.rules.other.nonSpaceChar)>=g||!p.trim())f+=` +`+S.slice(g);else{if(m||d.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||T.test(d)||E.test(d)||b.test(d))break;f+=` +`+p}!m&&!p.trim()&&(m=!0),h+=k+` +`,t=t.substring(k.length+1),d=S.slice(g)}}i.loose||(s?i.loose=!0:this.rules.other.doubleBlankLine.test(h)&&(s=!0));let y=null,v;this.options.gfm&&(y=this.rules.other.listIsTask.exec(f),y&&(v=y[0]!=="[ ] ",f=f.replace(this.rules.other.listReplaceTask,""))),i.items.push({type:"list_item",raw:h,task:!!y,checked:v,loose:!1,text:f,tokens:[]}),i.raw+=h}let l=i.items.at(-1);if(l)l.raw=l.raw.trimEnd(),l.text=l.text.trimEnd();else return;i.raw=i.raw.trimEnd();for(let u=0;ud.type==="space"),f=h.length>0&&h.some(d=>this.rules.other.anyLine.test(d.raw));i.loose=f}if(i.loose)for(let u=0;u({text:l,tokens:this.lexer.inline(l),header:!1,align:a.align[u]})));return a}}lheading(t){let e=this.rules.block.lheading.exec(t);if(e)return{type:"heading",raw:e[0],depth:e[2].charAt(0)==="="?1:2,text:e[1],tokens:this.lexer.inline(e[1])}}paragraph(t){let e=this.rules.block.paragraph.exec(t);if(e){let r=e[1].charAt(e[1].length-1)===` +`?e[1].slice(0,-1):e[1];return{type:"paragraph",raw:e[0],text:r,tokens:this.lexer.inline(r)}}}text(t){let e=this.rules.block.text.exec(t);if(e)return{type:"text",raw:e[0],text:e[0],tokens:this.lexer.inline(e[0])}}escape(t){let e=this.rules.inline.escape.exec(t);if(e)return{type:"escape",raw:e[0],text:e[1]}}tag(t){let e=this.rules.inline.tag.exec(t);if(e)return!this.lexer.state.inLink&&this.rules.other.startATag.test(e[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(e[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(e[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(e[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:e[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:e[0]}}link(t){let e=this.rules.inline.link.exec(t);if(e){let r=e[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(r)){if(!this.rules.other.endAngleBracket.test(r))return;let a=sb(r.slice(0,-1),"\\");if((r.length-a.length)%2===0)return}else{let a=L$e(e[2],"()");if(a===-2)return;if(a>-1){let s=(e[0].indexOf("!")===0?5:4)+e[1].length+a;e[2]=e[2].substring(0,a),e[0]=e[0].substring(0,s).trim(),e[3]=""}}let n=e[2],i="";if(this.options.pedantic){let a=this.rules.other.pedanticHrefTitle.exec(n);a&&(n=a[1],i=a[3])}else i=e[3]?e[3].slice(1,-1):"";return n=n.trim(),this.rules.other.startAngleBracket.test(n)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(r)?n=n.slice(1):n=n.slice(1,-1)),Yne(e,{href:n&&n.replace(this.rules.inline.anyPunctuation,"$1"),title:i&&i.replace(this.rules.inline.anyPunctuation,"$1")},e[0],this.lexer,this.rules)}}reflink(t,e){let r;if((r=this.rules.inline.reflink.exec(t))||(r=this.rules.inline.nolink.exec(t))){let n=(r[2]||r[1]).replace(this.rules.other.multipleSpaceGlobal," "),i=e[n.toLowerCase()];if(!i){let a=r[0].charAt(0);return{type:"text",raw:a,text:a}}return Yne(r,i,r[0],this.lexer,this.rules)}}emStrong(t,e,r=""){let n=this.rules.inline.emStrongLDelim.exec(t);if(!(!n||n[3]&&r.match(this.rules.other.unicodeAlphaNumeric))&&(!(n[1]||n[2])||!r||this.rules.inline.punctuation.exec(r))){let i=[...n[0]].length-1,a,s,l=i,u=0,h=n[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(h.lastIndex=0,e=e.slice(-1*t.length+i);(n=h.exec(e))!=null;){if(a=n[1]||n[2]||n[3]||n[4]||n[5]||n[6],!a)continue;if(s=[...a].length,n[3]||n[4]){l+=s;continue}else if((n[5]||n[6])&&i%3&&!((i+s)%3)){u+=s;continue}if(l-=s,l>0)continue;s=Math.min(s,s+l+u);let f=[...n[0]][0].length,d=t.slice(0,i+n.index+f+s);if(Math.min(i,s)%2){let m=d.slice(1,-1);return{type:"em",raw:d,text:m,tokens:this.lexer.inlineTokens(m)}}let p=d.slice(2,-2);return{type:"strong",raw:d,text:p,tokens:this.lexer.inlineTokens(p)}}}}codespan(t){let e=this.rules.inline.code.exec(t);if(e){let r=e[2].replace(this.rules.other.newLineCharGlobal," "),n=this.rules.other.nonSpaceChar.test(r),i=this.rules.other.startingSpaceChar.test(r)&&this.rules.other.endingSpaceChar.test(r);return n&&i&&(r=r.substring(1,r.length-1)),{type:"codespan",raw:e[0],text:r}}}br(t){let e=this.rules.inline.br.exec(t);if(e)return{type:"br",raw:e[0]}}del(t){let e=this.rules.inline.del.exec(t);if(e)return{type:"del",raw:e[0],text:e[2],tokens:this.lexer.inlineTokens(e[2])}}autolink(t){let e=this.rules.inline.autolink.exec(t);if(e){let r,n;return e[2]==="@"?(r=e[1],n="mailto:"+r):(r=e[1],n=r),{type:"link",raw:e[0],text:r,href:n,tokens:[{type:"text",raw:r,text:r}]}}}url(t){let e;if(e=this.rules.inline.url.exec(t)){let r,n;if(e[2]==="@")r=e[0],n="mailto:"+r;else{let i;do i=e[0],e[0]=this.rules.inline._backpedal.exec(e[0])?.[0]??"";while(i!==e[0]);r=e[0],e[1]==="www."?n="http://"+e[0]:n=e[0]}return{type:"link",raw:e[0],text:r,href:n,tokens:[{type:"text",raw:r,text:r}]}}}inlineText(t){let e=this.rules.inline.text.exec(t);if(e){let r=this.lexer.state.inRawBlock;return{type:"text",raw:e[0],text:e[0],escaped:r}}}},Ch=class JN{static{o(this,"l")}tokens;options;state;tokenizer;inlineQueue;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||g0,this.options.tokenizer=this.options.tokenizer||new Gk,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let r={other:Ds,block:$k.normal,inline:ab.normal};this.options.pedantic?(r.block=$k.pedantic,r.inline=ab.pedantic):this.options.gfm&&(r.block=$k.gfm,this.options.breaks?r.inline=ab.breaks:r.inline=ab.gfm),this.tokenizer.rules=r}static get rules(){return{block:$k,inline:ab}}static lex(e,r){return new JN(r).lex(e)}static lexInline(e,r){return new JN(r).inlineTokens(e)}lex(e){e=e.replace(Ds.carriageReturn,` +`),this.blockTokens(e,this.tokens);for(let r=0;r(i=s.call({lexer:this},e,r))?(e=e.substring(i.raw.length),r.push(i),!0):!1))continue;if(i=this.tokenizer.space(e)){e=e.substring(i.raw.length);let s=r.at(-1);i.raw.length===1&&s!==void 0?s.raw+=` +`:r.push(i);continue}if(i=this.tokenizer.code(e)){e=e.substring(i.raw.length);let s=r.at(-1);s?.type==="paragraph"||s?.type==="text"?(s.raw+=(s.raw.endsWith(` +`)?"":` +`)+i.raw,s.text+=` +`+i.text,this.inlineQueue.at(-1).src=s.text):r.push(i);continue}if(i=this.tokenizer.fences(e)){e=e.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.heading(e)){e=e.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.hr(e)){e=e.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.blockquote(e)){e=e.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.list(e)){e=e.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.html(e)){e=e.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.def(e)){e=e.substring(i.raw.length);let s=r.at(-1);s?.type==="paragraph"||s?.type==="text"?(s.raw+=(s.raw.endsWith(` +`)?"":` +`)+i.raw,s.text+=` +`+i.raw,this.inlineQueue.at(-1).src=s.text):this.tokens.links[i.tag]||(this.tokens.links[i.tag]={href:i.href,title:i.title},r.push(i));continue}if(i=this.tokenizer.table(e)){e=e.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.lheading(e)){e=e.substring(i.raw.length),r.push(i);continue}let a=e;if(this.options.extensions?.startBlock){let s=1/0,l=e.slice(1),u;this.options.extensions.startBlock.forEach(h=>{u=h.call({lexer:this},l),typeof u=="number"&&u>=0&&(s=Math.min(s,u))}),s<1/0&&s>=0&&(a=e.substring(0,s+1))}if(this.state.top&&(i=this.tokenizer.paragraph(a))){let s=r.at(-1);n&&s?.type==="paragraph"?(s.raw+=(s.raw.endsWith(` +`)?"":` +`)+i.raw,s.text+=` +`+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=s.text):r.push(i),n=a.length!==e.length,e=e.substring(i.raw.length);continue}if(i=this.tokenizer.text(e)){e=e.substring(i.raw.length);let s=r.at(-1);s?.type==="text"?(s.raw+=(s.raw.endsWith(` +`)?"":` +`)+i.raw,s.text+=` +`+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=s.text):r.push(i);continue}if(e){let s="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(s);break}else throw new Error(s)}}return this.state.top=!0,r}inline(e,r=[]){return this.inlineQueue.push({src:e,tokens:r}),r}inlineTokens(e,r=[]){let n=e,i=null;if(this.tokens.links){let l=Object.keys(this.tokens.links);if(l.length>0)for(;(i=this.tokenizer.rules.inline.reflinkSearch.exec(n))!=null;)l.includes(i[0].slice(i[0].lastIndexOf("[")+1,-1))&&(n=n.slice(0,i.index)+"["+"a".repeat(i[0].length-2)+"]"+n.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(i=this.tokenizer.rules.inline.anyPunctuation.exec(n))!=null;)n=n.slice(0,i.index)+"++"+n.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;(i=this.tokenizer.rules.inline.blockSkip.exec(n))!=null;)n=n.slice(0,i.index)+"["+"a".repeat(i[0].length-2)+"]"+n.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);n=this.options.hooks?.emStrongMask?.call({lexer:this},n)??n;let a=!1,s="";for(;e;){a||(s=""),a=!1;let l;if(this.options.extensions?.inline?.some(h=>(l=h.call({lexer:this},e,r))?(e=e.substring(l.raw.length),r.push(l),!0):!1))continue;if(l=this.tokenizer.escape(e)){e=e.substring(l.raw.length),r.push(l);continue}if(l=this.tokenizer.tag(e)){e=e.substring(l.raw.length),r.push(l);continue}if(l=this.tokenizer.link(e)){e=e.substring(l.raw.length),r.push(l);continue}if(l=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(l.raw.length);let h=r.at(-1);l.type==="text"&&h?.type==="text"?(h.raw+=l.raw,h.text+=l.text):r.push(l);continue}if(l=this.tokenizer.emStrong(e,n,s)){e=e.substring(l.raw.length),r.push(l);continue}if(l=this.tokenizer.codespan(e)){e=e.substring(l.raw.length),r.push(l);continue}if(l=this.tokenizer.br(e)){e=e.substring(l.raw.length),r.push(l);continue}if(l=this.tokenizer.del(e)){e=e.substring(l.raw.length),r.push(l);continue}if(l=this.tokenizer.autolink(e)){e=e.substring(l.raw.length),r.push(l);continue}if(!this.state.inLink&&(l=this.tokenizer.url(e))){e=e.substring(l.raw.length),r.push(l);continue}let u=e;if(this.options.extensions?.startInline){let h=1/0,f=e.slice(1),d;this.options.extensions.startInline.forEach(p=>{d=p.call({lexer:this},f),typeof d=="number"&&d>=0&&(h=Math.min(h,d))}),h<1/0&&h>=0&&(u=e.substring(0,h+1))}if(l=this.tokenizer.inlineText(u)){e=e.substring(l.raw.length),l.raw.slice(-1)!=="_"&&(s=l.raw.slice(-1)),a=!0;let h=r.at(-1);h?.type==="text"?(h.raw+=l.raw,h.text+=l.text):r.push(l);continue}if(e){let h="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(h);break}else throw new Error(h)}}return r}},Vk=class{static{o(this,"P")}options;parser;constructor(t){this.options=t||g0}space(t){return""}code({text:t,lang:e,escaped:r}){let n=(e||"").match(Ds.notSpaceStart)?.[0],i=t.replace(Ds.endingNewline,"")+` +`;return n?'
'+(r?i:du(i,!0))+`
+`:"
"+(r?i:du(i,!0))+`
+`}blockquote({tokens:t}){return`
+${this.parser.parse(t)}
+`}html({text:t}){return t}def(t){return""}heading({tokens:t,depth:e}){return`${this.parser.parseInline(t)} +`}hr(t){return`
+`}list(t){let e=t.ordered,r=t.start,n="";for(let s=0;s +`+n+" +`}listitem(t){let e="";if(t.task){let r=this.checkbox({checked:!!t.checked});t.loose?t.tokens[0]?.type==="paragraph"?(t.tokens[0].text=r+" "+t.tokens[0].text,t.tokens[0].tokens&&t.tokens[0].tokens.length>0&&t.tokens[0].tokens[0].type==="text"&&(t.tokens[0].tokens[0].text=r+" "+du(t.tokens[0].tokens[0].text),t.tokens[0].tokens[0].escaped=!0)):t.tokens.unshift({type:"text",raw:r+" ",text:r+" ",escaped:!0}):e+=r+" "}return e+=this.parser.parse(t.tokens,!!t.loose),`
  • ${e}
  • +`}checkbox({checked:t}){return"'}paragraph({tokens:t}){return`

    ${this.parser.parseInline(t)}

    +`}table(t){let e="",r="";for(let i=0;i${n}`),` + +`+e+` +`+n+`
    +`}tablerow({text:t}){return` +${t} +`}tablecell(t){let e=this.parser.parseInline(t.tokens),r=t.header?"th":"td";return(t.align?`<${r} align="${t.align}">`:`<${r}>`)+e+` +`}strong({tokens:t}){return`${this.parser.parseInline(t)}`}em({tokens:t}){return`${this.parser.parseInline(t)}`}codespan({text:t}){return`${du(t,!0)}`}br(t){return"
    "}del({tokens:t}){return`${this.parser.parseInline(t)}`}link({href:t,title:e,tokens:r}){let n=this.parser.parseInline(r),i=Wne(t);if(i===null)return n;t=i;let a='
    ",a}image({href:t,title:e,text:r,tokens:n}){n&&(r=this.parser.parseInline(n,this.parser.textRenderer));let i=Wne(t);if(i===null)return du(r);t=i;let a=`${r}{let s=i[a].flat(1/0);r=r.concat(this.walkTokens(s,e))}):i.tokens&&(r=r.concat(this.walkTokens(i.tokens,e)))}}return r}use(...t){let e=this.defaults.extensions||{renderers:{},childTokens:{}};return t.forEach(r=>{let n={...r};if(n.async=this.defaults.async||n.async||!1,r.extensions&&(r.extensions.forEach(i=>{if(!i.name)throw new Error("extension name required");if("renderer"in i){let a=e.renderers[i.name];a?e.renderers[i.name]=function(...s){let l=i.renderer.apply(this,s);return l===!1&&(l=a.apply(this,s)),l}:e.renderers[i.name]=i.renderer}if("tokenizer"in i){if(!i.level||i.level!=="block"&&i.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let a=e[i.level];a?a.unshift(i.tokenizer):e[i.level]=[i.tokenizer],i.start&&(i.level==="block"?e.startBlock?e.startBlock.push(i.start):e.startBlock=[i.start]:i.level==="inline"&&(e.startInline?e.startInline.push(i.start):e.startInline=[i.start]))}"childTokens"in i&&i.childTokens&&(e.childTokens[i.name]=i.childTokens)}),n.extensions=e),r.renderer){let i=this.defaults.renderer||new Vk(this.defaults);for(let a in r.renderer){if(!(a in i))throw new Error(`renderer '${a}' does not exist`);if(["options","parser"].includes(a))continue;let s=a,l=r.renderer[s],u=i[s];i[s]=(...h)=>{let f=l.apply(i,h);return f===!1&&(f=u.apply(i,h)),f||""}}n.renderer=i}if(r.tokenizer){let i=this.defaults.tokenizer||new Gk(this.defaults);for(let a in r.tokenizer){if(!(a in i))throw new Error(`tokenizer '${a}' does not exist`);if(["options","rules","lexer"].includes(a))continue;let s=a,l=r.tokenizer[s],u=i[s];i[s]=(...h)=>{let f=l.apply(i,h);return f===!1&&(f=u.apply(i,h)),f}}n.tokenizer=i}if(r.hooks){let i=this.defaults.hooks||new ob;for(let a in r.hooks){if(!(a in i))throw new Error(`hook '${a}' does not exist`);if(["options","block"].includes(a))continue;let s=a,l=r.hooks[s],u=i[s];ob.passThroughHooks.has(a)?i[s]=h=>{if(this.defaults.async&&ob.passThroughHooksRespectAsync.has(a))return Promise.resolve(l.call(i,h)).then(d=>u.call(i,d));let f=l.call(i,h);return u.call(i,f)}:i[s]=(...h)=>{let f=l.apply(i,h);return f===!1&&(f=u.apply(i,h)),f}}n.hooks=i}if(r.walkTokens){let i=this.defaults.walkTokens,a=r.walkTokens;n.walkTokens=function(s){let l=[];return l.push(a.call(this,s)),i&&(l=l.concat(i.call(this,s))),l}}this.defaults={...this.defaults,...n}}),this}setOptions(t){return this.defaults={...this.defaults,...t},this}lexer(t,e){return Ch.lex(t,e??this.defaults)}parser(t,e){return Ah.parse(t,e??this.defaults)}parseMarkdown(t){return(e,r)=>{let n={...r},i={...this.defaults,...n},a=this.onError(!!i.silent,!!i.async);if(this.defaults.async===!0&&n.async===!1)return a(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof e>"u"||e===null)return a(new Error("marked(): input parameter is undefined or null"));if(typeof e!="string")return a(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected"));i.hooks&&(i.hooks.options=i,i.hooks.block=t);let s=i.hooks?i.hooks.provideLexer():t?Ch.lex:Ch.lexInline,l=i.hooks?i.hooks.provideParser():t?Ah.parse:Ah.parseInline;if(i.async)return Promise.resolve(i.hooks?i.hooks.preprocess(e):e).then(u=>s(u,i)).then(u=>i.hooks?i.hooks.processAllTokens(u):u).then(u=>i.walkTokens?Promise.all(this.walkTokens(u,i.walkTokens)).then(()=>u):u).then(u=>l(u,i)).then(u=>i.hooks?i.hooks.postprocess(u):u).catch(a);try{i.hooks&&(e=i.hooks.preprocess(e));let u=s(e,i);i.hooks&&(u=i.hooks.processAllTokens(u)),i.walkTokens&&this.walkTokens(u,i.walkTokens);let h=l(u,i);return i.hooks&&(h=i.hooks.postprocess(h)),h}catch(u){return a(u)}}}onError(t,e){return r=>{if(r.message+=` +Please report this to https://github.com/markedjs/marked.`,t){let n="

    An error occurred:

    "+du(r.message+"",!0)+"
    ";return e?Promise.resolve(n):n}if(e)return Promise.reject(r);throw r}}},m0=new M$e;o(yn,"d");yn.options=yn.setOptions=function(t){return m0.setOptions(t),yn.defaults=m0.defaults,jne(yn.defaults),yn};yn.getDefaults=tM;yn.defaults=g0;yn.use=function(...t){return m0.use(...t),yn.defaults=m0.defaults,jne(yn.defaults),yn};yn.walkTokens=function(t,e){return m0.walkTokens(t,e)};yn.parseInline=m0.parseInline;yn.Parser=Ah;yn.parser=Ah.parse;yn.Renderer=Vk;yn.TextRenderer=cM;yn.Lexer=Ch;yn.lexer=Ch.lex;yn.Tokenizer=Gk;yn.Hooks=ob;yn.parse=yn;RMt=yn.options,LMt=yn.setOptions,NMt=yn.use,MMt=yn.walkTokens,IMt=yn.parseInline,OMt=Ah.parse,PMt=Ch.lex});function I$e(t,{markdownAutoWrap:e}){let n=t.replace(//g,` +`).replace(/\n{2,}/g,` +`);return Mw(n)}function sie(t){return t.split(/\\n|\n|/gi).map(e=>e.trim().match(/<[^>]+>|[^\s<>]+/g)?.map(r=>({content:r,type:"normal"}))??[])}function oie(t,e={}){let r=I$e(t,e),n=yn.lexer(r),i=[[]],a=0;function s(l,u="normal"){l.type==="text"?l.text.split(` +`).forEach((f,d)=>{d!==0&&(a++,i.push([])),f.split(" ").forEach(p=>{p=p.replace(/'/g,"'"),p&&i[a].push({content:p,type:u})})}):l.type==="strong"||l.type==="em"?l.tokens.forEach(h=>{s(h,l.type)}):l.type==="html"&&i[a].push({content:l.text,type:"normal"})}return o(s,"processNode"),n.forEach(l=>{l.type==="paragraph"?l.tokens?.forEach(u=>{s(u)}):l.type==="html"?i[a].push({content:l.text,type:"normal"}):i[a].push({content:l.raw,type:"normal"})}),i}function lie(t){return t?`

    ${t.replace(/\\n|\n/g,"
    ")}

    `:""}function cie(t,{markdownAutoWrap:e}={}){let r=yn.lexer(t);function n(i){return i.type==="text"?e===!1?i.text.replace(/\n */g,"
    ").replace(/ /g," "):i.text.replace(/\n */g,"
    "):i.type==="strong"?`${i.tokens?.map(n).join("")}`:i.type==="em"?`${i.tokens?.map(n).join("")}`:i.type==="paragraph"?`

    ${i.tokens?.map(n).join("")}

    `:i.type==="space"?"":i.type==="html"?`${i.text}`:i.type==="escape"?i.text:(K.warn(`Unsupported markdown: ${i.type}`),i.raw)}return o(n,"output"),r.map(n).join("")}var uie=O(()=>{"use strict";aie();vD();xt();o(I$e,"preprocessMarkdown");o(sie,"nonMarkdownToLines");o(oie,"markdownToLines");o(lie,"nonMarkdownToHTML");o(cie,"markdownToHTML")});function O$e(t){return Intl.Segmenter?[...new Intl.Segmenter().segment(t)].map(e=>e.segment):[...t]}function P$e(t,e){let r=O$e(e.content);return hie(t,[],r,e.type)}function hie(t,e,r,n){if(r.length===0)return[{content:e.join(""),type:n},{content:"",type:n}];let[i,...a]=r,s=[...e,i];return t([{content:s.join(""),type:n}])?hie(t,s,a,n):(e.length===0&&i&&(e.push(i),r.shift()),[{content:e.join(""),type:n},{content:r.join(""),type:n}])}function fie(t,e){if(t.some(({content:r})=>r.includes(` +`)))throw new Error("splitLineToFitWidth does not support newlines in the line");return uM(t,e)}function uM(t,e,r=[],n=[]){if(t.length===0)return n.length>0&&r.push(n),r.length>0?r:[];let i="";t[0].content===" "&&(i=" ",t.shift());let a=t.shift()??{content:" ",type:"normal"},s=[...n];if(i!==""&&s.push({content:i,type:"normal"}),s.push(a),e(s))return uM(t,e,r,s);if(n.length>0)r.push(n),t.unshift(a);else if(a.content){let[l,u]=P$e(e,a);r.push([l]),u.content&&t.unshift(u)}return uM(t,e,r)}var die=O(()=>{"use strict";o(O$e,"splitTextToChars");o(P$e,"splitWordToFitWidth");o(hie,"splitWordToFitWidthRecursion");o(fie,"splitLineToFitWidth");o(uM,"splitLineToFitWidthRecursion")});function pie(t,e){e&&t.attr("style",e)}async function B$e(t,e,r,n,i=!1,a=Zt()){let s=t.append("foreignObject");s.attr("width",`${Math.min(10*r,mie)}px`),s.attr("height",`${Math.min(10*r,mie)}px`);let l=s.append("xhtml:div"),u=Jn(e.label)?await gg(e.label.replace(st.lineBreakRegex,` +`),a):wr(e.label,a),h=e.isNode?"nodeLabel":"edgeLabel",f=l.append("span");f.html(u),pie(f,e.labelStyle),f.attr("class",`${h} ${n}`),pie(l,e.labelStyle),l.style("display","table-cell"),l.style("white-space","nowrap"),l.style("line-height","1.5"),r!==Number.POSITIVE_INFINITY&&(l.style("max-width",r+"px"),l.style("text-align","center")),l.attr("xmlns","http://www.w3.org/1999/xhtml"),i&&l.attr("class","labelBkg");let d=l.node().getBoundingClientRect();return d.width===r&&(l.style("display","table"),l.style("white-space","break-spaces"),l.style("width",r+"px"),d=l.node().getBoundingClientRect()),s.node()}function hM(t,e,r,n=!1){let i=t.append("tspan").attr("class","text-outer-tspan").attr("x",0).attr("y",e*r-.1+"em").attr("dy",r+"em");return n&&i.attr("text-anchor","middle"),i}function F$e(t,e,r){let n=t.append("text"),i=hM(n,1,e);fM(i,r);let a=i.node().getComputedTextLength();return n.remove(),a}function gie(t,e,r){let n=t.append("text"),i=hM(n,1,e);fM(i,[{content:r,type:"normal"}]);let a=i.node()?.getBoundingClientRect();return a&&n.remove(),a}function $$e(t,e,r,n=!1,i=!1){let s=e.append("g"),l=s.insert("rect").attr("class","background").attr("style","stroke: none"),u=s.append("text").attr("y","-10.1");i&&u.attr("text-anchor","middle");let h=0;for(let f of r){let d=o(m=>F$e(s,1.1,m)<=t,"checkWidth"),p=d(f)?[f]:fie(f,d);for(let m of p){let g=hM(u,h,1.1,i);fM(g,m),h++}}if(n){let f=u.node().getBBox(),d=2;return l.attr("x",f.x-d).attr("y",f.y-d).attr("width",f.width+2*d).attr("height",f.height+2*d),s.node()}else return u.node()}function fM(t,e){t.text(""),e.forEach((r,n)=>{let i=t.append("tspan").attr("font-style",r.type==="em"?"italic":"normal").attr("class","text-inner-tspan").attr("font-weight",r.type==="strong"?"bold":"normal");n===0?i.text(r.content):i.text(" "+r.content)})}async function z$e(t,e={}){let r=[];t.replace(/(fa[bklrs]?):fa-([\w-]+)/g,(i,a,s)=>(r.push((async()=>{let l=`${a}:${s}`;return await TX(l)?await eo(l,void 0,{class:"label-icon"}):``})()),i));let n=await Promise.all(r);return t.replace(/(fa[bklrs]?):fa-([\w-]+)/g,()=>n.shift()??"")}var mie,Fn,co=O(()=>{"use strict";Ar();Ur();xt();uie();ar();Xc();die();$r();o(pie,"applyStyle");mie=16384;o(B$e,"addHtmlSpan");o(hM,"createTspan");o(F$e,"computeWidthOfText");o(gie,"computeDimensionOfText");o($$e,"createFormattedText");o(fM,"updateTextContentAndStyles");o(z$e,"replaceIconSubstring");Fn=o(async(t,e="",{style:r="",isTitle:n=!1,classes:i="",useHtmlLabels:a=!0,markdown:s=!0,isNode:l=!0,width:u=200,addSvgBackground:h=!1}={},f)=>{if(K.debug("XYZ createText",e,r,n,i,a,l,"addSvgBackground: ",h),a){let d=s?cie(e,f):lie(e),p=await z$e(ao(d),f),m=e.replace(/\\\\/g,"\\"),g={isNode:l,label:Jn(e)?m:p,labelStyle:r.replace("fill:","color:")};return await B$e(t,g,u,i,h,f)}else{let d=e.replace(//g,"
    "),p=s?oie(d.replace("
    ","
    "),f):sie(d),m=$$e(u,t,p,e?h:!1,!l);if(l){/stroke:/.exec(r)&&(r=r.replace("stroke:","lineColor:"));let g=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/color:/g,"fill:");je(m).attr("style",g)}else{let g=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/background:/g,"fill:");je(m).select("rect").attr("style",g.replace(/background:/g,"fill:"));let y=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/color:/g,"fill:");je(m).select("text").attr("style",y)}return n?je(m).selectAll("tspan.text-outer-tspan").classed("title-row",!0):je(m).selectAll("tspan.text-outer-tspan").classed("row",!0),m}},"createText")});async function Wk(t,e){let r=t.getElementsByTagName("img");if(!r||r.length===0)return;let n=e.replace(/]*>/g,"").trim()==="";await Promise.all([...r].map(i=>new Promise(a=>{function s(){if(i.style.display="flex",i.style.flexDirection="column",n){let l=ve().fontSize?ve().fontSize:window.getComputedStyle(document.body).fontSize,u=5,[h=gr.fontSize]=Uo(l),f=h*u+"px";i.style.minWidth=f,i.style.maxWidth=f}else i.style.width="100%";a(i)}o(s,"setupImage"),setTimeout(()=>{i.complete&&s()}),i.addEventListener("error",s),i.addEventListener("load",s)})))}var dM=O(()=>{"use strict";jt();La();ar();o(Wk,"configureLabelImages")});function er(t){let e=t.map((r,n)=>`${n===0?"M":"L"}${r.x},${r.y}`);return e.push("Z"),e.join(" ")}function El(t,e,r,n,i,a){let s=[],u=r-t,h=n-e,f=u/a,d=2*Math.PI/f,p=e+h/2;for(let m=0;m<=50;m++){let g=m/50,y=t+g*u,v=p+i*Math.sin(d*(y-t));s.push({x:y,y:v})}return s}function y0(t,e,r,n,i,a){let s=[],l=i*Math.PI/180,f=(a*Math.PI/180-l)/(n-1);for(let d=0;d{"use strict";co();jt();$r();Ar();Ur();ar();dM();pt=o(async(t,e,r)=>{let n,i=e.useHtmlLabels||Xs(ve()?.htmlLabels);r?n=r:n="node default";let a=t.insert("g").attr("class",n).attr("id",e.domId||e.id),s=a.insert("g").attr("class","label").attr("style",Bn(e.labelStyle)),l;e.label===void 0?l="":l=typeof e.label=="string"?e.label:e.label[0];let u=!!e.icon||!!e.img,h=e.labelType==="markdown",f=await Fn(s,wr(ao(l),ve()),{useHtmlLabels:i,width:e.width||ve().flowchart?.wrappingWidth,cssClasses:h?"markdown-node-label":void 0,style:e.labelStyle,addSvgBackground:u,markdown:h},ve()),d=f.getBBox(),p=(e?.padding??0)/2;if(i){let m=f.children[0],g=je(f);await Wk(m,l),d=m.getBoundingClientRect(),g.attr("width",d.width),g.attr("height",d.height)}return i?s.attr("transform","translate("+-d.width/2+", "+-d.height/2+")"):s.attr("transform","translate(0, "+-d.height/2+")"),e.centerLabel&&s.attr("transform","translate("+-d.width/2+", "+-d.height/2+")"),s.insert("rect",":first-child"),{shapeSvg:a,bbox:d,halfPadding:p,label:s}},"labelHelper"),Hk=o(async(t,e,r)=>{let n=r.useHtmlLabels??Sr(ve()),i=t.insert("g").attr("class","label").attr("style",r.labelStyle||""),a=await Fn(i,wr(ao(e),ve()),{useHtmlLabels:n,width:r.width||ve()?.flowchart?.wrappingWidth,style:r.labelStyle,addSvgBackground:!!r.icon||!!r.img}),s=a.getBBox(),l=r.padding/2;if(Sr(ve())){let u=a.children[0],h=je(a);s=u.getBoundingClientRect(),h.attr("width",s.width),h.attr("height",s.height)}return n?i.attr("transform","translate("+-s.width/2+", "+-s.height/2+")"):i.attr("transform","translate(0, "+-s.height/2+")"),r.centerLabel&&i.attr("transform","translate("+-s.width/2+", "+-s.height/2+")"),i.insert("rect",":first-child"),{shapeSvg:t,bbox:s,halfPadding:l,label:i}},"insertLabel"),rt=o((t,e)=>{let r=e.node().getBBox();t.width=r.width,t.height=r.height},"updateNodeBounds"),ht=o((t,e)=>(t.look==="handDrawn"?"rough-node":"node")+" "+t.cssClasses+" "+(e||""),"getNodeClasses");o(er,"createPathFromPoints");o(El,"generateFullSineWavePoints");o(y0,"generateCirclePoints")});function G$e(t,e){return t.intersect(e)}var yie,vie=O(()=>{"use strict";o(G$e,"intersectNode");yie=G$e});function V$e(t,e,r,n){var i=t.x,a=t.y,s=i-n.x,l=a-n.y,u=Math.sqrt(e*e*l*l+r*r*s*s),h=Math.abs(e*r*s/u);n.x{"use strict";o(V$e,"intersectEllipse");Yk=V$e});function q$e(t,e,r){return Yk(t,e,e,r)}var xie,bie=O(()=>{"use strict";pM();o(q$e,"intersectCircle");xie=q$e});function U$e(t,e,r,n){{let i=e.y-t.y,a=t.x-e.x,s=e.x*t.y-t.x*e.y,l=i*r.x+a*r.y+s,u=i*n.x+a*n.y+s,h=1e-6;if(l!==0&&u!==0&&Tie(l,u))return;let f=n.y-r.y,d=r.x-n.x,p=n.x*r.y-r.x*n.y,m=f*t.x+d*t.y+p,g=f*e.x+d*e.y+p;if(Math.abs(m)0}var wie,kie=O(()=>{"use strict";o(U$e,"intersectLine");o(Tie,"sameSign");wie=U$e});function W$e(t,e,r){let n=t.x,i=t.y,a=[],s=Number.POSITIVE_INFINITY,l=Number.POSITIVE_INFINITY;typeof e.forEach=="function"?e.forEach(function(f){s=Math.min(s,f.x),l=Math.min(l,f.y)}):(s=Math.min(s,e.x),l=Math.min(l,e.y));let u=n-t.width/2-s,h=i-t.height/2-l;for(let f=0;f1&&a.sort(function(f,d){let p=f.x-r.x,m=f.y-r.y,g=Math.sqrt(p*p+m*m),y=d.x-r.x,v=d.y-r.y,x=Math.sqrt(y*y+v*v);return g{"use strict";kie();o(W$e,"intersectPolygon");Eie=W$e});var H$e,Qf,mM=O(()=>{"use strict";H$e=o((t,e)=>{var r=t.x,n=t.y,i=e.x-r,a=e.y-n,s=t.width/2,l=t.height/2,u,h;return Math.abs(a)*s>Math.abs(i)*l?(a<0&&(l=-l),u=a===0?0:l*i/a,h=l):(i<0&&(s=-s),u=s,h=i===0?0:s*a/i),{x:r+u,y:n+h}},"intersectRect"),Qf=H$e});var Qe,Yt=O(()=>{"use strict";vie();bie();pM();Sie();mM();Qe={node:yie,circle:xie,ellipse:Yk,polygon:Eie,rect:Qf}});var Cie,pu,Y$e,ub,Ze,nt,j$e,Ut=O(()=>{"use strict";jt();Cie=o(t=>{let{handDrawnSeed:e}=ve();return{fill:t,hachureAngle:120,hachureGap:4,fillWeight:2,roughness:.7,stroke:t,seed:e}},"solidStateFill"),pu=o(t=>{let e=Y$e([...t.cssCompiledStyles||[],...t.cssStyles||[],...t.labelStyle||[]]);return{stylesMap:e,stylesArray:[...e]}},"compileStyles"),Y$e=o(t=>{let e=new Map;return t.forEach(r=>{let[n,i]=r.split(":");e.set(n.trim(),i?.trim())}),e},"styles2Map"),ub=o(t=>t==="color"||t==="font-size"||t==="font-family"||t==="font-weight"||t==="font-style"||t==="text-decoration"||t==="text-align"||t==="text-transform"||t==="line-height"||t==="letter-spacing"||t==="word-spacing"||t==="text-shadow"||t==="text-overflow"||t==="white-space"||t==="word-wrap"||t==="word-break"||t==="overflow-wrap"||t==="hyphens","isLabelStyle"),Ze=o(t=>{let{stylesArray:e}=pu(t),r=[],n=[],i=[],a=[];return e.forEach(s=>{let l=s[0];ub(l)?r.push(s.join(":")+" !important"):(n.push(s.join(":")+" !important"),l.includes("stroke")&&i.push(s.join(":")+" !important"),l==="fill"&&a.push(s.join(":")+" !important"))}),{labelStyles:r.join(";"),nodeStyles:n.join(";"),stylesArray:e,borderStyles:i,backgroundStyles:a}},"styles2String"),nt=o((t,e)=>{let{themeVariables:r,handDrawnSeed:n}=ve(),{nodeBorder:i,mainBkg:a}=r,{stylesMap:s}=pu(t);return Object.assign({roughness:.7,fill:s.get("fill")||a,fillStyle:"hachure",fillWeight:4,hachureGap:5.2,stroke:s.get("stroke")||i,seed:n,strokeWidth:s.get("stroke-width")?.replace("px","")||1.3,fillLineDash:[0,0],strokeLineDash:j$e(s.get("stroke-dasharray"))},e)},"userNodeOverrides"),j$e=o(t=>{if(!t)return[0,0];let e=t.trim().split(/\s+/).map(Number);if(e.length===1){let i=isNaN(e[0])?0:e[0];return[i,i]}let r=isNaN(e[0])?0:e[0],n=isNaN(e[1])?0:e[1];return[r,n]},"getStrokeDashArray")});function gM(t,e,r){if(t&&t.length){let[n,i]=e,a=Math.PI/180*r,s=Math.cos(a),l=Math.sin(a);for(let u of t){let[h,f]=u;u[0]=(h-n)*s-(f-i)*l+n,u[1]=(h-n)*l+(f-i)*s+i}}}function X$e(t,e){return t[0]===e[0]&&t[1]===e[1]}function K$e(t,e,r,n=1){let i=r,a=Math.max(e,.1),s=t[0]&&t[0][0]&&typeof t[0][0]=="number"?[t]:t,l=[0,0];if(i)for(let h of s)gM(h,l,i);let u=(function(h,f,d){let p=[];for(let b of h){let T=[...b];X$e(T[0],T[T.length-1])||T.push([T[0][0],T[0][1]]),T.length>2&&p.push(T)}let m=[];f=Math.max(f,.1);let g=[];for(let b of p)for(let T=0;Tb.yminT.ymin?1:b.xT.x?1:b.ymax===T.ymax?0:(b.ymax-T.ymax)/Math.abs(b.ymax-T.ymax))),!g.length)return m;let y=[],v=g[0].ymin,x=0;for(;y.length||g.length;){if(g.length){let b=-1;for(let T=0;Tv);T++)b=T;g.splice(0,b+1).forEach((T=>{y.push({s:v,edge:T})}))}if(y=y.filter((b=>!(b.edge.ymax<=v))),y.sort(((b,T)=>b.edge.x===T.edge.x?0:(b.edge.x-T.edge.x)/Math.abs(b.edge.x-T.edge.x))),(d!==1||x%f==0)&&y.length>1)for(let b=0;b=y.length)break;let E=y[b].edge,w=y[T].edge;m.push([[Math.round(E.x),v],[Math.round(w.x),v]])}v+=d,y.forEach((b=>{b.edge.x=b.edge.x+d*b.edge.islope})),x++}return m})(s,a,n);if(i){for(let h of s)gM(h,l,-i);(function(h,f,d){let p=[];h.forEach((m=>p.push(...m))),gM(p,f,d)})(u,l,-i)}return u}function pb(t,e){var r;let n=e.hachureAngle+90,i=e.hachureGap;i<0&&(i=4*e.strokeWidth),i=Math.round(Math.max(i,.1));let a=1;return e.roughness>=1&&(((r=e.randomizer)===null||r===void 0?void 0:r.next())||Math.random())>.7&&(a=i),K$e(t,i,n,a||1)}function rE(t){let e=t[0],r=t[1];return Math.sqrt(Math.pow(e[0]-r[0],2)+Math.pow(e[1]-r[1],2))}function vM(t,e){return t.type===e}function NM(t){let e=[],r=(function(s){let l=new Array;for(;s!=="";)if(s.match(/^([ \t\r\n,]+)/))s=s.substr(RegExp.$1.length);else if(s.match(/^([aAcChHlLmMqQsStTvVzZ])/))l[l.length]={type:Q$e,text:RegExp.$1},s=s.substr(RegExp.$1.length);else{if(!s.match(/^(([-+]?[0-9]+(\.[0-9]*)?|[-+]?\.[0-9]+)([eE][-+]?[0-9]+)?)/))return[];l[l.length]={type:yM,text:`${parseFloat(RegExp.$1)}`},s=s.substr(RegExp.$1.length)}return l[l.length]={type:Aie,text:""},l})(t),n="BOD",i=0,a=r[i];for(;!vM(a,Aie);){let s=0,l=[];if(n==="BOD"){if(a.text!=="M"&&a.text!=="m")return NM("M0,0"+t);i++,s=jk[a.text],n=a.text}else vM(a,yM)?s=jk[n]:(i++,s=jk[a.text],n=a.text);if(!(i+sf%2?h+r:h+e));a.push({key:"C",data:u}),e=u[4],r=u[5];break}case"Q":a.push({key:"Q",data:[...l]}),e=l[2],r=l[3];break;case"q":{let u=l.map(((h,f)=>f%2?h+r:h+e));a.push({key:"Q",data:u}),e=u[2],r=u[3];break}case"A":a.push({key:"A",data:[...l]}),e=l[5],r=l[6];break;case"a":e+=l[5],r+=l[6],a.push({key:"A",data:[l[0],l[1],l[2],l[3],l[4],e,r]});break;case"H":a.push({key:"H",data:[...l]}),e=l[0];break;case"h":e+=l[0],a.push({key:"H",data:[e]});break;case"V":a.push({key:"V",data:[...l]}),r=l[0];break;case"v":r+=l[0],a.push({key:"V",data:[r]});break;case"S":a.push({key:"S",data:[...l]}),e=l[2],r=l[3];break;case"s":{let u=l.map(((h,f)=>f%2?h+r:h+e));a.push({key:"S",data:u}),e=u[2],r=u[3];break}case"T":a.push({key:"T",data:[...l]}),e=l[0],r=l[1];break;case"t":e+=l[0],r+=l[1],a.push({key:"T",data:[e,r]});break;case"Z":case"z":a.push({key:"Z",data:[]}),e=n,r=i}return a}function Pie(t){let e=[],r="",n=0,i=0,a=0,s=0,l=0,u=0;for(let{key:h,data:f}of t){switch(h){case"M":e.push({key:"M",data:[...f]}),[n,i]=f,[a,s]=f;break;case"C":e.push({key:"C",data:[...f]}),n=f[4],i=f[5],l=f[2],u=f[3];break;case"L":e.push({key:"L",data:[...f]}),[n,i]=f;break;case"H":n=f[0],e.push({key:"L",data:[n,i]});break;case"V":i=f[0],e.push({key:"L",data:[n,i]});break;case"S":{let d=0,p=0;r==="C"||r==="S"?(d=n+(n-l),p=i+(i-u)):(d=n,p=i),e.push({key:"C",data:[d,p,...f]}),l=f[0],u=f[1],n=f[2],i=f[3];break}case"T":{let[d,p]=f,m=0,g=0;r==="Q"||r==="T"?(m=n+(n-l),g=i+(i-u)):(m=n,g=i);let y=n+2*(m-n)/3,v=i+2*(g-i)/3,x=d+2*(m-d)/3,b=p+2*(g-p)/3;e.push({key:"C",data:[y,v,x,b,d,p]}),l=m,u=g,n=d,i=p;break}case"Q":{let[d,p,m,g]=f,y=n+2*(d-n)/3,v=i+2*(p-i)/3,x=m+2*(d-m)/3,b=g+2*(p-g)/3;e.push({key:"C",data:[y,v,x,b,m,g]}),l=d,u=p,n=m,i=g;break}case"A":{let d=Math.abs(f[0]),p=Math.abs(f[1]),m=f[2],g=f[3],y=f[4],v=f[5],x=f[6];d===0||p===0?(e.push({key:"C",data:[n,i,v,x,v,x]}),n=v,i=x):(n!==v||i!==x)&&(Bie(n,i,v,x,d,p,m,g,y).forEach((function(b){e.push({key:"C",data:b})})),n=v,i=x);break}case"Z":e.push({key:"Z",data:[]}),n=a,i=s}r=h}return e}function hb(t,e,r){return[t*Math.cos(r)-e*Math.sin(r),t*Math.sin(r)+e*Math.cos(r)]}function Bie(t,e,r,n,i,a,s,l,u,h){let f=(d=s,Math.PI*d/180);var d;let p=[],m=0,g=0,y=0,v=0;if(h)[m,g,y,v]=h;else{[t,e]=hb(t,e,-f),[r,n]=hb(r,n,-f);let _=(t-r)/2,D=(e-n)/2,M=_*_/(i*i)+D*D/(a*a);M>1&&(M=Math.sqrt(M),i*=M,a*=M);let R=i*i,P=a*a,B=R*P-R*D*D-P*_*_,F=R*D*D+P*_*_,G=(l===u?-1:1)*Math.sqrt(Math.abs(B/F));y=G*i*D/a+(t+r)/2,v=G*-a*_/i+(e+n)/2,m=Math.asin(parseFloat(((e-v)/a).toFixed(9))),g=Math.asin(parseFloat(((n-v)/a).toFixed(9))),tg&&(m-=2*Math.PI),!u&&g>m&&(g-=2*Math.PI)}let x=g-m;if(Math.abs(x)>120*Math.PI/180){let _=g,D=r,M=n;g=u&&g>m?m+120*Math.PI/180*1:m+120*Math.PI/180*-1,p=Bie(r=y+i*Math.cos(g),n=v+a*Math.sin(g),D,M,i,a,s,0,u,[g,_,y,v])}x=g-m;let b=Math.cos(m),T=Math.sin(m),E=Math.cos(g),w=Math.sin(g),k=Math.tan(x/4),S=4/3*i*k,A=4/3*a*k,L=[t,e],I=[t+S*T,e-A*b],N=[r+S*w,n-A*E],C=[r,n];if(I[0]=2*L[0]-I[0],I[1]=2*L[1]-I[1],h)return[I,N,C].concat(p);{p=[I,N,C].concat(p);let _=[];for(let D=0;D2){let i=[];for(let a=0;a2*Math.PI&&(m=0,g=2*Math.PI);let y=2*Math.PI/u.curveStepCount,v=Math.min(y/2,(g-m)/2),x=Mie(v,h,f,d,p,m,g,1,u);if(!u.disableMultiStroke){let b=Mie(v,h,f,d,p,m,g,1.5,u);x.push(...b)}return s&&(l?x.push(...Zf(h,f,h+d*Math.cos(m),f+p*Math.sin(m),u),...Zf(h,f,h+d*Math.cos(g),f+p*Math.sin(g),u)):x.push({op:"lineTo",data:[h,f]},{op:"lineTo",data:[h+d*Math.cos(m),f+p*Math.sin(m)]})),{type:"path",ops:x}}function Rie(t,e){let r=Pie(Oie(NM(t))),n=[],i=[0,0],a=[0,0];for(let{key:s,data:l}of r)switch(s){case"M":a=[l[0],l[1]],i=[l[0],l[1]];break;case"L":n.push(...Zf(a[0],a[1],l[0],l[1],e)),a=[l[0],l[1]];break;case"C":{let[u,h,f,d,p,m]=l;n.push(...eze(u,h,f,d,p,m,a,e)),a=[p,m];break}case"Z":n.push(...Zf(a[0],a[1],i[0],i[1],e)),a=[i[0],i[1]]}return{type:"path",ops:n}}function xM(t,e){let r=[];for(let n of t)if(n.length){let i=e.maxRandomnessOffset||0,a=n.length;if(a>2){r.push({op:"move",data:[n[0][0]+yr(i,e),n[0][1]+yr(i,e)]});for(let s=1;s500?.4:-.0016668*u+1.233334;let f=i.maxRandomnessOffset||0;f*f*100>l&&(f=u/10);let d=f/2,p=.2+.2*zie(i),m=i.bowing*i.maxRandomnessOffset*(n-e)/200,g=i.bowing*i.maxRandomnessOffset*(t-r)/200;m=yr(m,i,h),g=yr(g,i,h);let y=[],v=o(()=>yr(d,i,h),"M"),x=o(()=>yr(f,i,h),"k"),b=i.preserveVertices;return a&&(s?y.push({op:"move",data:[t+(b?0:v()),e+(b?0:v())]}):y.push({op:"move",data:[t+(b?0:yr(f,i,h)),e+(b?0:yr(f,i,h))]})),s?y.push({op:"bcurveTo",data:[m+t+(r-t)*p+v(),g+e+(n-e)*p+v(),m+t+2*(r-t)*p+v(),g+e+2*(n-e)*p+v(),r+(b?0:v()),n+(b?0:v())]}):y.push({op:"bcurveTo",data:[m+t+(r-t)*p+x(),g+e+(n-e)*p+x(),m+t+2*(r-t)*p+x(),g+e+2*(n-e)*p+x(),r+(b?0:x()),n+(b?0:x())]}),y}function Xk(t,e,r){if(!t.length)return[];let n=[];n.push([t[0][0]+yr(e,r),t[0][1]+yr(e,r)]),n.push([t[0][0]+yr(e,r),t[0][1]+yr(e,r)]);for(let i=1;i3){let a=[],s=1-r.curveTightness;i.push({op:"move",data:[t[1][0],t[1][1]]});for(let l=1;l+21&&i.push(l)):i.push(l),i.push(t[e+3])}else{let u=t[e+0],h=t[e+1],f=t[e+2],d=t[e+3],p=v0(u,h,.5),m=v0(h,f,.5),g=v0(f,d,.5),y=v0(p,m,.5),v=v0(m,g,.5),x=v0(y,v,.5);DM([u,p,y,x],0,r,i),DM([x,v,g,d],0,r,i)}var a,s;return i}function rze(t,e){return tE(t,0,t.length,e)}function tE(t,e,r,n,i){let a=i||[],s=t[e],l=t[r-1],u=0,h=1;for(let f=e+1;fu&&(u=d,h=f)}return Math.sqrt(u)>n?(tE(t,e,h+1,n,a),tE(t,h,r,n,a)):(a.length||a.push(s),a.push(l)),a}function bM(t,e=.15,r){let n=[],i=(t.length-1)/3;for(let a=0;a0?tE(n,0,n.length,r):n}var db,TM,wM,kM,EM,SM,uo,CM,Q$e,yM,Aie,jk,Z$e,Wo,p1,RM,Kk,LM,Je,Wt=O(()=>{"use strict";o(gM,"t");o(X$e,"e");o(K$e,"s");o(pb,"n");db=class{static{o(this,"o")}constructor(e){this.helper=e}fillPolygons(e,r){return this._fillPolygons(e,r)}_fillPolygons(e,r){let n=pb(e,r);return{type:"fillSketch",ops:this.renderLines(n,r)}}renderLines(e,r){let n=[];for(let i of e)n.push(...this.helper.doubleLineOps(i[0][0],i[0][1],i[1][0],i[1][1],r));return n}};o(rE,"a");TM=class extends db{static{o(this,"h")}fillPolygons(e,r){let n=r.hachureGap;n<0&&(n=4*r.strokeWidth),n=Math.max(n,.1);let i=pb(e,Object.assign({},r,{hachureGap:n})),a=Math.PI/180*r.hachureAngle,s=[],l=.5*n*Math.cos(a),u=.5*n*Math.sin(a);for(let[h,f]of i)rE([h,f])&&s.push([[h[0]-l,h[1]+u],[...f]],[[h[0]+l,h[1]-u],[...f]]);return{type:"fillSketch",ops:this.renderLines(s,r)}}},wM=class extends db{static{o(this,"r")}fillPolygons(e,r){let n=this._fillPolygons(e,r),i=Object.assign({},r,{hachureAngle:r.hachureAngle+90}),a=this._fillPolygons(e,i);return n.ops=n.ops.concat(a.ops),n}},kM=class{static{o(this,"i")}constructor(e){this.helper=e}fillPolygons(e,r){let n=pb(e,r=Object.assign({},r,{hachureAngle:0}));return this.dotsOnLines(n,r)}dotsOnLines(e,r){let n=[],i=r.hachureGap;i<0&&(i=4*r.strokeWidth),i=Math.max(i,.1);let a=r.fillWeight;a<0&&(a=r.strokeWidth/2);let s=i/4;for(let l of e){let u=rE(l),h=u/i,f=Math.ceil(h)-1,d=u-f*i,p=(l[0][0]+l[1][0])/2-i/4,m=Math.min(l[0][1],l[1][1]);for(let g=0;g{let l=rE(s),u=Math.floor(l/(n+i)),h=(l+i-u*(n+i))/2,f=s[0],d=s[1];f[0]>d[0]&&(f=s[1],d=s[0]);let p=Math.atan((d[1]-f[1])/(d[0]-f[0]));for(let m=0;m{let s=rE(a),l=Math.round(s/(2*r)),u=a[0],h=a[1];u[0]>h[0]&&(u=a[1],h=a[0]);let f=Math.atan((h[1]-u[1])/(h[0]-u[0]));for(let d=0;d2*Math.PI&&(S=0,A=2*Math.PI);let L=(A-S)/b.curveStepCount,I=[];for(let N=S;N<=A;N+=L)I.push([T+w*Math.cos(N),E+k*Math.sin(N)]);return I.push([T+w*Math.cos(A),E+k*Math.sin(A)]),I.push([T,E]),d1([I],b)})(e,r,n,i,a,s,h));return h.stroke!==Wo&&f.push(d),this._d("arc",f,h)}curve(e,r){let n=this._o(r),i=[],a=_ie(e,n);if(n.fill&&n.fill!==Wo)if(n.fillStyle==="solid"){let s=_ie(e,Object.assign(Object.assign({},n),{disableMultiStroke:!0,roughness:n.roughness?n.roughness+n.fillShapeRoughnessGain:0}));i.push({type:"fillPath",ops:this._mergedShape(s.ops)})}else{let s=[],l=e;if(l.length){let u=typeof l[0][0]=="number"?[l]:l;for(let h of u)h.length<3?s.push(...h):h.length===3?s.push(...bM(Iie([h[0],h[0],h[1],h[2]]),10,(1+n.roughness)/2)):s.push(...bM(Iie(h),10,(1+n.roughness)/2))}s.length&&i.push(d1([s],n))}return n.stroke!==Wo&&i.push(a),this._d("curve",i,n)}polygon(e,r){let n=this._o(r),i=[],a=Qk(e,!0,n);return n.fill&&(n.fillStyle==="solid"?i.push(xM([e],n)):i.push(d1([e],n))),n.stroke!==Wo&&i.push(a),this._d("polygon",i,n)}path(e,r){let n=this._o(r),i=[];if(!e)return this._d("path",i,n);e=(e||"").replace(/\n/g," ").replace(/(-\s)/g,"-").replace("/(ss)/g"," ");let a=n.fill&&n.fill!=="transparent"&&n.fill!==Wo,s=n.stroke!==Wo,l=!!(n.simplification&&n.simplification<1),u=(function(f,d,p){let m=Pie(Oie(NM(f))),g=[],y=[],v=[0,0],x=[],b=o(()=>{x.length>=4&&y.push(...bM(x,d)),x=[]},"i"),T=o(()=>{b(),y.length&&(g.push(y),y=[])},"c");for(let{key:w,data:k}of m)switch(w){case"M":T(),v=[k[0],k[1]],y.push(v);break;case"L":b(),y.push([k[0],k[1]]);break;case"C":if(!x.length){let S=y.length?y[y.length-1]:v;x.push([S[0],S[1]])}x.push([k[0],k[1]]),x.push([k[2],k[3]]),x.push([k[4],k[5]]);break;case"Z":b(),y.push([v[0],v[1]])}if(T(),!p)return g;let E=[];for(let w of g){let k=rze(w,p);k.length&&E.push(k)}return E})(e,1,l?4-4*(n.simplification||1):(1+n.roughness)/2),h=Rie(e,n);if(a)if(n.fillStyle==="solid")if(u.length===1){let f=Rie(e,Object.assign(Object.assign({},n),{disableMultiStroke:!0,roughness:n.roughness?n.roughness+n.fillShapeRoughnessGain:0}));i.push({type:"fillPath",ops:this._mergedShape(f.ops)})}else i.push(xM(u,n));else i.push(d1(u,n));return s&&(l?u.forEach((f=>{i.push(Qk(f,!1,n))})):i.push(h)),this._d("path",i,n)}opsToPath(e,r){let n="";for(let i of e.ops){let a=typeof r=="number"&&r>=0?i.data.map((s=>+s.toFixed(r))):i.data;switch(i.op){case"move":n+=`M${a[0]} ${a[1]} `;break;case"bcurveTo":n+=`C${a[0]} ${a[1]}, ${a[2]} ${a[3]}, ${a[4]} ${a[5]} `;break;case"lineTo":n+=`L${a[0]} ${a[1]} `}}return n.trim()}toPaths(e){let r=e.sets||[],n=e.options||this.defaultOptions,i=[];for(let a of r){let s=null;switch(a.type){case"path":s={d:this.opsToPath(a),stroke:n.stroke,strokeWidth:n.strokeWidth,fill:Wo};break;case"fillPath":s={d:this.opsToPath(a),stroke:Wo,strokeWidth:0,fill:n.fill||Wo};break;case"fillSketch":s=this.fillSketch(a,n)}s&&i.push(s)}return i}fillSketch(e,r){let n=r.fillWeight;return n<0&&(n=r.strokeWidth/2),{d:this.opsToPath(e),stroke:r.fill||Wo,strokeWidth:n,fill:Wo}}_mergedShape(e){return e.filter(((r,n)=>n===0||r.op!=="move"))}},RM=class{static{o(this,"st")}constructor(e,r){this.canvas=e,this.ctx=this.canvas.getContext("2d"),this.gen=new p1(r)}draw(e){let r=e.sets||[],n=e.options||this.getDefaultOptions(),i=this.ctx,a=e.options.fixedDecimalPlaceDigits;for(let s of r)switch(s.type){case"path":i.save(),i.strokeStyle=n.stroke==="none"?"transparent":n.stroke,i.lineWidth=n.strokeWidth,n.strokeLineDash&&i.setLineDash(n.strokeLineDash),n.strokeLineDashOffset&&(i.lineDashOffset=n.strokeLineDashOffset),this._drawToContext(i,s,a),i.restore();break;case"fillPath":{i.save(),i.fillStyle=n.fill||"";let l=e.shape==="curve"||e.shape==="polygon"||e.shape==="path"?"evenodd":"nonzero";this._drawToContext(i,s,a,l),i.restore();break}case"fillSketch":this.fillSketch(i,s,n)}}fillSketch(e,r,n){let i=n.fillWeight;i<0&&(i=n.strokeWidth/2),e.save(),n.fillLineDash&&e.setLineDash(n.fillLineDash),n.fillLineDashOffset&&(e.lineDashOffset=n.fillLineDashOffset),e.strokeStyle=n.fill||"",e.lineWidth=i,this._drawToContext(e,r,n.fixedDecimalPlaceDigits),e.restore()}_drawToContext(e,r,n,i="nonzero"){e.beginPath();for(let a of r.ops){let s=typeof n=="number"&&n>=0?a.data.map((l=>+l.toFixed(n))):a.data;switch(a.op){case"move":e.moveTo(s[0],s[1]);break;case"bcurveTo":e.bezierCurveTo(s[0],s[1],s[2],s[3],s[4],s[5]);break;case"lineTo":e.lineTo(s[0],s[1])}}r.type==="fillPath"?e.fill(i):e.stroke()}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}line(e,r,n,i,a){let s=this.gen.line(e,r,n,i,a);return this.draw(s),s}rectangle(e,r,n,i,a){let s=this.gen.rectangle(e,r,n,i,a);return this.draw(s),s}ellipse(e,r,n,i,a){let s=this.gen.ellipse(e,r,n,i,a);return this.draw(s),s}circle(e,r,n,i){let a=this.gen.circle(e,r,n,i);return this.draw(a),a}linearPath(e,r){let n=this.gen.linearPath(e,r);return this.draw(n),n}polygon(e,r){let n=this.gen.polygon(e,r);return this.draw(n),n}arc(e,r,n,i,a,s,l=!1,u){let h=this.gen.arc(e,r,n,i,a,s,l,u);return this.draw(h),h}curve(e,r){let n=this.gen.curve(e,r);return this.draw(n),n}path(e,r){let n=this.gen.path(e,r);return this.draw(n),n}},Kk="http://www.w3.org/2000/svg",LM=class{static{o(this,"ot")}constructor(e,r){this.svg=e,this.gen=new p1(r)}draw(e){let r=e.sets||[],n=e.options||this.getDefaultOptions(),i=this.svg.ownerDocument||window.document,a=i.createElementNS(Kk,"g"),s=e.options.fixedDecimalPlaceDigits;for(let l of r){let u=null;switch(l.type){case"path":u=i.createElementNS(Kk,"path"),u.setAttribute("d",this.opsToPath(l,s)),u.setAttribute("stroke",n.stroke),u.setAttribute("stroke-width",n.strokeWidth+""),u.setAttribute("fill","none"),n.strokeLineDash&&u.setAttribute("stroke-dasharray",n.strokeLineDash.join(" ").trim()),n.strokeLineDashOffset&&u.setAttribute("stroke-dashoffset",`${n.strokeLineDashOffset}`);break;case"fillPath":u=i.createElementNS(Kk,"path"),u.setAttribute("d",this.opsToPath(l,s)),u.setAttribute("stroke","none"),u.setAttribute("stroke-width","0"),u.setAttribute("fill",n.fill||""),e.shape!=="curve"&&e.shape!=="polygon"||u.setAttribute("fill-rule","evenodd");break;case"fillSketch":u=this.fillSketch(i,l,n)}u&&a.appendChild(u)}return a}fillSketch(e,r,n){let i=n.fillWeight;i<0&&(i=n.strokeWidth/2);let a=e.createElementNS(Kk,"path");return a.setAttribute("d",this.opsToPath(r,n.fixedDecimalPlaceDigits)),a.setAttribute("stroke",n.fill||""),a.setAttribute("stroke-width",i+""),a.setAttribute("fill","none"),n.fillLineDash&&a.setAttribute("stroke-dasharray",n.fillLineDash.join(" ").trim()),n.fillLineDashOffset&&a.setAttribute("stroke-dashoffset",`${n.fillLineDashOffset}`),a}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}opsToPath(e,r){return this.gen.opsToPath(e,r)}line(e,r,n,i,a){let s=this.gen.line(e,r,n,i,a);return this.draw(s)}rectangle(e,r,n,i,a){let s=this.gen.rectangle(e,r,n,i,a);return this.draw(s)}ellipse(e,r,n,i,a){let s=this.gen.ellipse(e,r,n,i,a);return this.draw(s)}circle(e,r,n,i){let a=this.gen.circle(e,r,n,i);return this.draw(a)}linearPath(e,r){let n=this.gen.linearPath(e,r);return this.draw(n)}polygon(e,r){let n=this.gen.polygon(e,r);return this.draw(n)}arc(e,r,n,i,a,s,l=!1,u){let h=this.gen.arc(e,r,n,i,a,s,l,u);return this.draw(h)}curve(e,r){let n=this.gen.curve(e,r);return this.draw(n)}path(e,r){let n=this.gen.path(e,r);return this.draw(n)}},Je={canvas:o((t,e)=>new RM(t,e),"canvas"),svg:o((t,e)=>new LM(t,e),"svg"),generator:o(t=>new p1(t),"generator"),newSeed:o(()=>p1.newSeed(),"newSeed")}});function Gie(t,e){let{labelStyles:r}=Ze(e);e.labelStyle=r;let n=ht(e),i=n;n||(i="anchor");let a=t.insert("g").attr("class",i).attr("id",e.domId||e.id),s=1,{cssStyles:l}=e,u=Je.svg(a),h=nt(e,{fill:"black",stroke:"none",fillStyle:"solid"});e.look!=="handDrawn"&&(h.roughness=0);let f=u.circle(0,0,s*2,h),d=a.insert(()=>f,":first-child");return d.attr("class","anchor").attr("style",Bn(l)),rt(e,d),e.intersect=function(p){return K.info("Circle intersect",e,s,p),Qe.circle(e,s,p)},a}var Vie=O(()=>{"use strict";xt();$t();Yt();Ut();Wt();ar();o(Gie,"anchor")});function qie(t,e,r,n,i,a,s){let u=(t+r)/2,h=(e+n)/2,f=Math.atan2(n-e,r-t),d=(r-t)/2,p=(n-e)/2,m=d/i,g=p/a,y=Math.sqrt(m**2+g**2);if(y>1)throw new Error("The given radii are too small to create an arc between the points.");let v=Math.sqrt(1-y**2),x=u+v*a*Math.sin(f)*(s?-1:1),b=h-v*i*Math.cos(f)*(s?-1:1),T=Math.atan2((e-b)/a,(t-x)/i),w=Math.atan2((n-b)/a,(r-x)/i)-T;s&&w<0&&(w+=2*Math.PI),!s&&w>0&&(w-=2*Math.PI);let k=[];for(let S=0;S<20;S++){let A=S/19,L=T+A*w,I=x+i*Math.cos(L),N=b+a*Math.sin(L);k.push({x:I,y:N})}return k}async function Uie(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await pt(t,e,ht(e)),s=a.width+e.padding+20,l=a.height+e.padding,u=l/2,h=u/(2.5+l/50),{cssStyles:f}=e,d=[{x:s/2,y:-l/2},{x:-s/2,y:-l/2},...qie(-s/2,-l/2,-s/2,l/2,h,u,!1),{x:s/2,y:l/2},...qie(s/2,l/2,s/2,-l/2,h,u,!0)],p=Je.svg(i),m=nt(e,{});e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=er(d),y=p.path(g,m),v=i.insert(()=>y,":first-child");return v.attr("class","basic label-container"),f&&e.look!=="handDrawn"&&v.selectAll("path").attr("style",f),n&&e.look!=="handDrawn"&&v.selectAll("path").attr("style",n),v.attr("transform",`translate(${h/2}, 0)`),rt(e,v),e.intersect=function(x){return Qe.polygon(e,d,x)},i}var Wie=O(()=>{"use strict";$t();Yt();Ut();Wt();o(qie,"generateArcPoints");o(Uie,"bowTieRect")});function rs(t,e,r,n){return t.insert("polygon",":first-child").attr("points",n.map(function(i){return i.x+","+i.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-e/2+","+r/2+")")}var _h=O(()=>{"use strict";o(rs,"insertPolygonShape")});async function Hie(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await pt(t,e,ht(e)),s=a.height+e.padding,l=12,u=a.width+e.padding+l,h=0,f=u,d=-s,p=0,m=[{x:h+l,y:d},{x:f,y:d},{x:f,y:p},{x:h,y:p},{x:h,y:d+l},{x:h+l,y:d}],g,{cssStyles:y}=e;if(e.look==="handDrawn"){let v=Je.svg(i),x=nt(e,{}),b=er(m),T=v.path(b,x);g=i.insert(()=>T,":first-child").attr("transform",`translate(${-u/2}, ${s/2})`),y&&g.attr("style",y)}else g=rs(i,u,s,m);return n&&g.attr("style",n),rt(e,g),e.intersect=function(v){return Qe.polygon(e,m,v)},i}var Yie=O(()=>{"use strict";$t();Yt();Ut();Wt();_h();$t();o(Hie,"card")});function jie(t,e){let{nodeStyles:r}=Ze(e);e.label="";let n=t.insert("g").attr("class",ht(e)).attr("id",e.domId??e.id),{cssStyles:i}=e,a=Math.max(28,e.width??0),s=[{x:0,y:a/2},{x:a/2,y:0},{x:0,y:-a/2},{x:-a/2,y:0}],l=Je.svg(n),u=nt(e,{});e.look!=="handDrawn"&&(u.roughness=0,u.fillStyle="solid");let h=er(s),f=l.path(h,u),d=n.insert(()=>f,":first-child");return i&&e.look!=="handDrawn"&&d.selectAll("path").attr("style",i),r&&e.look!=="handDrawn"&&d.selectAll("path").attr("style",r),e.width=28,e.height=28,e.intersect=function(p){return Qe.polygon(e,s,p)},n}var Xie=O(()=>{"use strict";Yt();Wt();Ut();$t();o(jie,"choice")});async function nE(t,e,r){let{labelStyles:n,nodeStyles:i}=Ze(e);e.labelStyle=n;let{shapeSvg:a,bbox:s,halfPadding:l}=await pt(t,e,ht(e)),u=r?.padding??l,h=s.width/2+u,f,{cssStyles:d}=e;if(e.look==="handDrawn"){let p=Je.svg(a),m=nt(e,{}),g=p.circle(0,0,h*2,m);f=a.insert(()=>g,":first-child"),f.attr("class","basic label-container").attr("style",Bn(d))}else f=a.insert("circle",":first-child").attr("class","basic label-container").attr("style",i).attr("r",h).attr("cx",0).attr("cy",0);return rt(e,f),e.calcIntersect=function(p,m){let g=p.width/2;return Qe.circle(p,g,m)},e.intersect=function(p){return K.info("Circle intersect",e,h,p),Qe.circle(e,h,p)},a}var MM=O(()=>{"use strict";Wt();xt();ar();Yt();Ut();$t();o(nE,"circle")});function nze(t){let e=Math.cos(Math.PI/4),r=Math.sin(Math.PI/4),n=t*2,i={x:n/2*e,y:n/2*r},a={x:-(n/2)*e,y:n/2*r},s={x:-(n/2)*e,y:-(n/2)*r},l={x:n/2*e,y:-(n/2)*r};return`M ${a.x},${a.y} L ${l.x},${l.y} + M ${i.x},${i.y} L ${s.x},${s.y}`}function Kie(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r,e.label="";let i=t.insert("g").attr("class",ht(e)).attr("id",e.domId??e.id),a=Math.max(30,e?.width??0),{cssStyles:s}=e,l=Je.svg(i),u=nt(e,{});e.look!=="handDrawn"&&(u.roughness=0,u.fillStyle="solid");let h=l.circle(0,0,a*2,u),f=nze(a),d=l.path(f,u),p=i.insert(()=>h,":first-child");return p.insert(()=>d),s&&e.look!=="handDrawn"&&p.selectAll("path").attr("style",s),n&&e.look!=="handDrawn"&&p.selectAll("path").attr("style",n),rt(e,p),e.intersect=function(m){return K.info("crossedCircle intersect",e,{radius:a,point:m}),Qe.circle(e,a,m)},i}var Qie=O(()=>{"use strict";xt();$t();Ut();Wt();Yt();o(nze,"createLine");o(Kie,"crossedCircle")});function Jf(t,e,r,n=100,i=0,a=180){let s=[],l=i*Math.PI/180,f=(a*Math.PI/180-l)/(n-1);for(let d=0;dT,":first-child").attr("stroke-opacity",0),E.insert(()=>x,":first-child"),E.attr("class","text"),f&&e.look!=="handDrawn"&&E.selectAll("path").attr("style",f),n&&e.look!=="handDrawn"&&E.selectAll("path").attr("style",n),E.attr("transform",`translate(${h}, 0)`),s.attr("transform",`translate(${-l/2+h-(a.x-(a.left??0))},${-u/2+(e.padding??0)/2-(a.y-(a.top??0))})`),rt(e,E),e.intersect=function(w){return Qe.polygon(e,p,w)},i}var Jie=O(()=>{"use strict";$t();Yt();Ut();Wt();o(Jf,"generateCirclePoints");o(Zie,"curlyBraceLeft")});function ed(t,e,r,n=100,i=0,a=180){let s=[],l=i*Math.PI/180,f=(a*Math.PI/180-l)/(n-1);for(let d=0;dT,":first-child").attr("stroke-opacity",0),E.insert(()=>x,":first-child"),E.attr("class","text"),f&&e.look!=="handDrawn"&&E.selectAll("path").attr("style",f),n&&e.look!=="handDrawn"&&E.selectAll("path").attr("style",n),E.attr("transform",`translate(${-h}, 0)`),s.attr("transform",`translate(${-l/2+(e.padding??0)/2-(a.x-(a.left??0))},${-u/2+(e.padding??0)/2-(a.y-(a.top??0))})`),rt(e,E),e.intersect=function(w){return Qe.polygon(e,p,w)},i}var tae=O(()=>{"use strict";$t();Yt();Ut();Wt();o(ed,"generateCirclePoints");o(eae,"curlyBraceRight")});function ns(t,e,r,n=100,i=0,a=180){let s=[],l=i*Math.PI/180,f=(a*Math.PI/180-l)/(n-1);for(let d=0;dS,":first-child").attr("stroke-opacity",0),A.insert(()=>b,":first-child"),A.insert(()=>w,":first-child"),A.attr("class","text"),f&&e.look!=="handDrawn"&&A.selectAll("path").attr("style",f),n&&e.look!=="handDrawn"&&A.selectAll("path").attr("style",n),A.attr("transform",`translate(${h-h/4}, 0)`),s.attr("transform",`translate(${-l/2+(e.padding??0)/2-(a.x-(a.left??0))},${-u/2+(e.padding??0)/2-(a.y-(a.top??0))})`),rt(e,A),e.intersect=function(L){return Qe.polygon(e,m,L)},i}var nae=O(()=>{"use strict";$t();Yt();Ut();Wt();o(ns,"generateCirclePoints");o(rae,"curlyBraces")});async function iae(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await pt(t,e,ht(e)),s=80,l=20,u=Math.max(s,(a.width+(e.padding??0)*2)*1.25,e?.width??0),h=Math.max(l,a.height+(e.padding??0)*2,e?.height??0),f=h/2,{cssStyles:d}=e,p=Je.svg(i),m=nt(e,{});e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=u,y=h,v=g-f,x=y/4,b=[{x:v,y:0},{x,y:0},{x:0,y:y/2},{x,y},{x:v,y},...y0(-v,-y/2,f,50,270,90)],T=er(b),E=p.path(T,m),w=i.insert(()=>E,":first-child");return w.attr("class","basic label-container"),d&&e.look!=="handDrawn"&&w.selectChildren("path").attr("style",d),n&&e.look!=="handDrawn"&&w.selectChildren("path").attr("style",n),w.attr("transform",`translate(${-u/2}, ${-h/2})`),rt(e,w),e.intersect=function(k){return Qe.polygon(e,b,k)},i}var aae=O(()=>{"use strict";$t();Yt();Ut();Wt();o(iae,"curvedTrapezoid")});async function sae(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await pt(t,e,ht(e)),l=Math.max(a.width+e.padding,e.width??0),u=l/2,h=u/(2.5+l/50),f=Math.max(a.height+h+e.padding,e.height??0),d,{cssStyles:p}=e;if(e.look==="handDrawn"){let m=Je.svg(i),g=aze(0,0,l,f,u,h),y=sze(0,h,l,f,u,h),v=m.path(g,nt(e,{})),x=m.path(y,nt(e,{fill:"none"}));d=i.insert(()=>x,":first-child"),d=i.insert(()=>v,":first-child"),d.attr("class","basic label-container"),p&&d.attr("style",p)}else{let m=ize(0,0,l,f,u,h);d=i.insert("path",":first-child").attr("d",m).attr("class","basic label-container").attr("style",Bn(p)).attr("style",n)}return d.attr("label-offset-y",h),d.attr("transform",`translate(${-l/2}, ${-(f/2+h)})`),rt(e,d),s.attr("transform",`translate(${-(a.width/2)-(a.x-(a.left??0))}, ${-(a.height/2)+(e.padding??0)/1.5-(a.y-(a.top??0))})`),e.intersect=function(m){let g=Qe.rect(e,m),y=g.x-(e.x??0);if(u!=0&&(Math.abs(y)<(e.width??0)/2||Math.abs(y)==(e.width??0)/2&&Math.abs(g.y-(e.y??0))>(e.height??0)/2-h)){let v=h*h*(1-y*y/(u*u));v>0&&(v=Math.sqrt(v)),v=h-v,m.y-(e.y??0)>0&&(v=-v),g.y+=v}return g},i}var ize,aze,sze,oae=O(()=>{"use strict";$t();Yt();Ut();Wt();ar();ize=o((t,e,r,n,i,a)=>[`M${t},${e+a}`,`a${i},${a} 0,0,0 ${r},0`,`a${i},${a} 0,0,0 ${-r},0`,`l0,${n}`,`a${i},${a} 0,0,0 ${r},0`,`l0,${-n}`].join(" "),"createCylinderPathD"),aze=o((t,e,r,n,i,a)=>[`M${t},${e+a}`,`M${t+r},${e+a}`,`a${i},${a} 0,0,0 ${-r},0`,`l0,${n}`,`a${i},${a} 0,0,0 ${r},0`,`l0,${-n}`].join(" "),"createOuterCylinderPathD"),sze=o((t,e,r,n,i,a)=>[`M${t-r/2},${-n/2}`,`a${i},${a} 0,0,0 ${r},0`].join(" "),"createInnerCylinderPathD");o(sae,"cylinder")});async function lae(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await pt(t,e,ht(e)),l=a.width+e.padding,u=a.height+e.padding,h=u*.2,f=-l/2,d=-u/2-h/2,{cssStyles:p}=e,m=Je.svg(i),g=nt(e,{});e.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let y=[{x:f,y:d+h},{x:-f,y:d+h},{x:-f,y:-d},{x:f,y:-d},{x:f,y:d},{x:-f,y:d},{x:-f,y:d+h}],v=m.polygon(y.map(b=>[b.x,b.y]),g),x=i.insert(()=>v,":first-child");return x.attr("class","basic label-container"),p&&e.look!=="handDrawn"&&x.selectAll("path").attr("style",p),n&&e.look!=="handDrawn"&&x.selectAll("path").attr("style",n),s.attr("transform",`translate(${f+(e.padding??0)/2-(a.x-(a.left??0))}, ${d+h+(e.padding??0)/2-(a.y-(a.top??0))})`),rt(e,x),e.intersect=function(b){return Qe.rect(e,b)},i}var cae=O(()=>{"use strict";$t();Yt();Ut();Wt();o(lae,"dividedRectangle")});async function uae(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,halfPadding:s}=await pt(t,e,ht(e)),u=a.width/2+s+5,h=a.width/2+s,f,{cssStyles:d}=e;if(e.look==="handDrawn"){let p=Je.svg(i),m=nt(e,{roughness:.2,strokeWidth:2.5}),g=nt(e,{roughness:.2,strokeWidth:1.5}),y=p.circle(0,0,u*2,m),v=p.circle(0,0,h*2,g);f=i.insert("g",":first-child"),f.attr("class",Bn(e.cssClasses)).attr("style",Bn(d)),f.node()?.appendChild(y),f.node()?.appendChild(v)}else{f=i.insert("g",":first-child");let p=f.insert("circle",":first-child"),m=f.insert("circle");f.attr("class","basic label-container").attr("style",n),p.attr("class","outer-circle").attr("style",n).attr("r",u).attr("cx",0).attr("cy",0),m.attr("class","inner-circle").attr("style",n).attr("r",h).attr("cx",0).attr("cy",0)}return rt(e,f),e.intersect=function(p){return K.info("DoubleCircle intersect",e,u,p),Qe.circle(e,u,p)},i}var hae=O(()=>{"use strict";xt();$t();Yt();Ut();Wt();ar();o(uae,"doublecircle")});function fae(t,e,{config:{themeVariables:r}}){let{labelStyles:n,nodeStyles:i}=Ze(e);e.label="",e.labelStyle=n;let a=t.insert("g").attr("class",ht(e)).attr("id",e.domId??e.id),s=7,{cssStyles:l}=e,u=Je.svg(a),{nodeBorder:h}=r,f=nt(e,{fillStyle:"solid"});e.look!=="handDrawn"&&(f.roughness=0);let d=u.circle(0,0,s*2,f),p=a.insert(()=>d,":first-child");return p.selectAll("path").attr("style",`fill: ${h} !important;`),l&&l.length>0&&e.look!=="handDrawn"&&p.selectAll("path").attr("style",l),i&&e.look!=="handDrawn"&&p.selectAll("path").attr("style",i),rt(e,p),e.intersect=function(m){return K.info("filledCircle intersect",e,{radius:s,point:m}),Qe.circle(e,s,m)},a}var dae=O(()=>{"use strict";Wt();xt();Yt();Ut();$t();o(fae,"filledCircle")});async function pae(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await pt(t,e,ht(e)),l=a.width+(e.padding??0),u=l+a.height,h=l+a.height,f=[{x:0,y:-u},{x:h,y:-u},{x:h/2,y:0}],{cssStyles:d}=e,p=Je.svg(i),m=nt(e,{});e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=er(f),y=p.path(g,m),v=i.insert(()=>y,":first-child").attr("transform",`translate(${-u/2}, ${u/2})`);return d&&e.look!=="handDrawn"&&v.selectChildren("path").attr("style",d),n&&e.look!=="handDrawn"&&v.selectChildren("path").attr("style",n),e.width=l,e.height=u,rt(e,v),s.attr("transform",`translate(${-a.width/2-(a.x-(a.left??0))}, ${-u/2+(e.padding??0)/2+(a.y-(a.top??0))})`),e.intersect=function(x){return K.info("Triangle intersect",e,f,x),Qe.polygon(e,f,x)},i}var mae=O(()=>{"use strict";xt();$t();Yt();Ut();Wt();$t();o(pae,"flippedTriangle")});function gae(t,e,{dir:r,config:{state:n,themeVariables:i}}){let{nodeStyles:a}=Ze(e);e.label="";let s=t.insert("g").attr("class",ht(e)).attr("id",e.domId??e.id),{cssStyles:l}=e,u=Math.max(70,e?.width??0),h=Math.max(10,e?.height??0);r==="LR"&&(u=Math.max(10,e?.width??0),h=Math.max(70,e?.height??0));let f=-1*u/2,d=-1*h/2,p=Je.svg(s),m=nt(e,{stroke:i.lineColor,fill:i.lineColor});e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=p.rectangle(f,d,u,h,m),y=s.insert(()=>g,":first-child");l&&e.look!=="handDrawn"&&y.selectAll("path").attr("style",l),a&&e.look!=="handDrawn"&&y.selectAll("path").attr("style",a),rt(e,y);let v=n?.padding??0;return e.width&&e.height&&(e.width+=v/2||0,e.height+=v/2||0),e.intersect=function(x){return Qe.rect(e,x)},s}var yae=O(()=>{"use strict";Wt();Yt();Ut();$t();o(gae,"forkJoin")});async function vae(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let i=80,a=50,{shapeSvg:s,bbox:l}=await pt(t,e,ht(e)),u=Math.max(i,l.width+(e.padding??0)*2,e?.width??0),h=Math.max(a,l.height+(e.padding??0)*2,e?.height??0),f=h/2,{cssStyles:d}=e,p=Je.svg(s),m=nt(e,{});e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=[{x:-u/2,y:-h/2},{x:u/2-f,y:-h/2},...y0(-u/2+f,0,f,50,90,270),{x:u/2-f,y:h/2},{x:-u/2,y:h/2}],y=er(g),v=p.path(y,m),x=s.insert(()=>v,":first-child");return x.attr("class","basic label-container"),d&&e.look!=="handDrawn"&&x.selectChildren("path").attr("style",d),n&&e.look!=="handDrawn"&&x.selectChildren("path").attr("style",n),rt(e,x),e.intersect=function(b){return K.info("Pill intersect",e,{radius:f,point:b}),Qe.polygon(e,g,b)},s}var xae=O(()=>{"use strict";xt();$t();Yt();Ut();Wt();o(vae,"halfRoundedRectangle")});async function bae(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await pt(t,e,ht(e)),s=4,l=a.height+e.padding,u=l/s,h=a.width+2*u+e.padding,f=[{x:u,y:0},{x:h-u,y:0},{x:h,y:-l/2},{x:h-u,y:-l},{x:u,y:-l},{x:0,y:-l/2}],d,{cssStyles:p}=e;if(e.look==="handDrawn"){let m=Je.svg(i),g=nt(e,{}),y=oze(0,0,h,l,u),v=m.path(y,g);d=i.insert(()=>v,":first-child").attr("transform",`translate(${-h/2}, ${l/2})`),p&&d.attr("style",p)}else d=rs(i,h,l,f);return n&&d.attr("style",n),e.width=h,e.height=l,rt(e,d),e.intersect=function(m){return Qe.polygon(e,f,m)},i}var oze,Tae=O(()=>{"use strict";$t();Yt();Ut();Wt();_h();oze=o((t,e,r,n,i)=>[`M${t+i},${e}`,`L${t+r-i},${e}`,`L${t+r},${e-n/2}`,`L${t+r-i},${e-n}`,`L${t+i},${e-n}`,`L${t},${e-n/2}`,"Z"].join(" "),"createHexagonPathD");o(bae,"hexagon")});async function wae(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.label="",e.labelStyle=r;let{shapeSvg:i}=await pt(t,e,ht(e)),a=Math.max(30,e?.width??0),s=Math.max(30,e?.height??0),{cssStyles:l}=e,u=Je.svg(i),h=nt(e,{});e.look!=="handDrawn"&&(h.roughness=0,h.fillStyle="solid");let f=[{x:0,y:0},{x:a,y:0},{x:0,y:s},{x:a,y:s}],d=er(f),p=u.path(d,h),m=i.insert(()=>p,":first-child");return m.attr("class","basic label-container"),l&&e.look!=="handDrawn"&&m.selectChildren("path").attr("style",l),n&&e.look!=="handDrawn"&&m.selectChildren("path").attr("style",n),m.attr("transform",`translate(${-a/2}, ${-s/2})`),rt(e,m),e.intersect=function(g){return K.info("Pill intersect",e,{points:f}),Qe.polygon(e,f,g)},i}var kae=O(()=>{"use strict";xt();$t();Yt();Ut();Wt();o(wae,"hourglass")});async function Eae(t,e,{config:{themeVariables:r,flowchart:n}}){let{labelStyles:i}=Ze(e);e.labelStyle=i;let a=e.assetHeight??48,s=e.assetWidth??48,l=Math.max(a,s),u=n?.wrappingWidth;e.width=Math.max(l,u??0);let{shapeSvg:h,bbox:f,label:d}=await pt(t,e,"icon-shape default"),p=e.pos==="t",m=l,g=l,{nodeBorder:y}=r,{stylesMap:v}=pu(e),x=-g/2,b=-m/2,T=e.label?8:0,E=Je.svg(h),w=nt(e,{stroke:"none",fill:"none"});e.look!=="handDrawn"&&(w.roughness=0,w.fillStyle="solid");let k=E.rectangle(x,b,g,m,w),S=Math.max(g,f.width),A=m+f.height+T,L=E.rectangle(-S/2,-A/2,S,A,{...w,fill:"transparent",stroke:"none"}),I=h.insert(()=>k,":first-child"),N=h.insert(()=>L);if(e.icon){let C=h.append("g");C.html(`${await eo(e.icon,{height:l,width:l,fallbackPrefix:""})}`);let _=C.node().getBBox(),D=_.width,M=_.height,R=_.x,P=_.y;C.attr("transform",`translate(${-D/2-R},${p?f.height/2+T/2-M/2-P:-f.height/2-T/2-M/2-P})`),C.attr("style",`color: ${v.get("stroke")??y};`)}return d.attr("transform",`translate(${-f.width/2-(f.x-(f.left??0))},${p?-A/2:A/2-f.height})`),I.attr("transform",`translate(0,${p?f.height/2+T/2:-f.height/2-T/2})`),rt(e,N),e.intersect=function(C){if(K.info("iconSquare intersect",e,C),!e.label)return Qe.rect(e,C);let _=e.x??0,D=e.y??0,M=e.height??0,R=[];return p?R=[{x:_-f.width/2,y:D-M/2},{x:_+f.width/2,y:D-M/2},{x:_+f.width/2,y:D-M/2+f.height+T},{x:_+g/2,y:D-M/2+f.height+T},{x:_+g/2,y:D+M/2},{x:_-g/2,y:D+M/2},{x:_-g/2,y:D-M/2+f.height+T},{x:_-f.width/2,y:D-M/2+f.height+T}]:R=[{x:_-g/2,y:D-M/2},{x:_+g/2,y:D-M/2},{x:_+g/2,y:D-M/2+m},{x:_+f.width/2,y:D-M/2+m},{x:_+f.width/2/2,y:D+M/2},{x:_-f.width/2,y:D+M/2},{x:_-f.width/2,y:D-M/2+m},{x:_-g/2,y:D-M/2+m}],Qe.polygon(e,R,C)},h}var Sae=O(()=>{"use strict";Wt();xt();Xc();Yt();Ut();$t();o(Eae,"icon")});async function Cae(t,e,{config:{themeVariables:r,flowchart:n}}){let{labelStyles:i}=Ze(e);e.labelStyle=i;let a=e.assetHeight??48,s=e.assetWidth??48,l=Math.max(a,s),u=n?.wrappingWidth;e.width=Math.max(l,u??0);let{shapeSvg:h,bbox:f,label:d}=await pt(t,e,"icon-shape default"),p=20,m=e.label?8:0,g=e.pos==="t",{nodeBorder:y,mainBkg:v}=r,{stylesMap:x}=pu(e),b=Je.svg(h),T=nt(e,{});e.look!=="handDrawn"&&(T.roughness=0,T.fillStyle="solid");let E=x.get("fill");T.stroke=E??v;let w=h.append("g");e.icon&&w.html(`${await eo(e.icon,{height:l,width:l,fallbackPrefix:""})}`);let k=w.node().getBBox(),S=k.width,A=k.height,L=k.x,I=k.y,N=Math.max(S,A)*Math.SQRT2+p*2,C=b.circle(0,0,N,T),_=Math.max(N,f.width),D=N+f.height+m,M=b.rectangle(-_/2,-D/2,_,D,{...T,fill:"transparent",stroke:"none"}),R=h.insert(()=>C,":first-child"),P=h.insert(()=>M);return w.attr("transform",`translate(${-S/2-L},${g?f.height/2+m/2-A/2-I:-f.height/2-m/2-A/2-I})`),w.attr("style",`color: ${x.get("stroke")??y};`),d.attr("transform",`translate(${-f.width/2-(f.x-(f.left??0))},${g?-D/2:D/2-f.height})`),R.attr("transform",`translate(0,${g?f.height/2+m/2:-f.height/2-m/2})`),rt(e,P),e.intersect=function(B){return K.info("iconSquare intersect",e,B),Qe.rect(e,B)},h}var Aae=O(()=>{"use strict";Wt();xt();Xc();Yt();Ut();$t();o(Cae,"iconCircle")});var ho,x0=O(()=>{"use strict";ho=o((t,e,r,n,i)=>["M",t+i,e,"H",t+r-i,"A",i,i,0,0,1,t+r,e+i,"V",e+n-i,"A",i,i,0,0,1,t+r-i,e+n,"H",t+i,"A",i,i,0,0,1,t,e+n-i,"V",e+i,"A",i,i,0,0,1,t+i,e,"Z"].join(" "),"createRoundedRectPathD")});async function _ae(t,e,{config:{themeVariables:r,flowchart:n}}){let{labelStyles:i}=Ze(e);e.labelStyle=i;let a=e.assetHeight??48,s=e.assetWidth??48,l=Math.max(a,s),u=n?.wrappingWidth;e.width=Math.max(l,u??0);let{shapeSvg:h,bbox:f,halfPadding:d,label:p}=await pt(t,e,"icon-shape default"),m=e.pos==="t",g=l+d*2,y=l+d*2,{nodeBorder:v,mainBkg:x}=r,{stylesMap:b}=pu(e),T=-y/2,E=-g/2,w=e.label?8:0,k=Je.svg(h),S=nt(e,{});e.look!=="handDrawn"&&(S.roughness=0,S.fillStyle="solid");let A=b.get("fill");S.stroke=A??x;let L=k.path(ho(T,E,y,g,5),S),I=Math.max(y,f.width),N=g+f.height+w,C=k.rectangle(-I/2,-N/2,I,N,{...S,fill:"transparent",stroke:"none"}),_=h.insert(()=>L,":first-child").attr("class","icon-shape2"),D=h.insert(()=>C);if(e.icon){let M=h.append("g");M.html(`${await eo(e.icon,{height:l,width:l,fallbackPrefix:""})}`);let R=M.node().getBBox(),P=R.width,B=R.height,F=R.x,G=R.y;M.attr("transform",`translate(${-P/2-F},${m?f.height/2+w/2-B/2-G:-f.height/2-w/2-B/2-G})`),M.attr("style",`color: ${b.get("stroke")??v};`)}return p.attr("transform",`translate(${-f.width/2-(f.x-(f.left??0))},${m?-N/2:N/2-f.height})`),_.attr("transform",`translate(0,${m?f.height/2+w/2:-f.height/2-w/2})`),rt(e,D),e.intersect=function(M){if(K.info("iconSquare intersect",e,M),!e.label)return Qe.rect(e,M);let R=e.x??0,P=e.y??0,B=e.height??0,F=[];return m?F=[{x:R-f.width/2,y:P-B/2},{x:R+f.width/2,y:P-B/2},{x:R+f.width/2,y:P-B/2+f.height+w},{x:R+y/2,y:P-B/2+f.height+w},{x:R+y/2,y:P+B/2},{x:R-y/2,y:P+B/2},{x:R-y/2,y:P-B/2+f.height+w},{x:R-f.width/2,y:P-B/2+f.height+w}]:F=[{x:R-y/2,y:P-B/2},{x:R+y/2,y:P-B/2},{x:R+y/2,y:P-B/2+g},{x:R+f.width/2,y:P-B/2+g},{x:R+f.width/2/2,y:P+B/2},{x:R-f.width/2,y:P+B/2},{x:R-f.width/2,y:P-B/2+g},{x:R-y/2,y:P-B/2+g}],Qe.polygon(e,F,M)},h}var Dae=O(()=>{"use strict";Wt();xt();Xc();Yt();Ut();x0();$t();o(_ae,"iconRounded")});async function Rae(t,e,{config:{themeVariables:r,flowchart:n}}){let{labelStyles:i}=Ze(e);e.labelStyle=i;let a=e.assetHeight??48,s=e.assetWidth??48,l=Math.max(a,s),u=n?.wrappingWidth;e.width=Math.max(l,u??0);let{shapeSvg:h,bbox:f,halfPadding:d,label:p}=await pt(t,e,"icon-shape default"),m=e.pos==="t",g=l+d*2,y=l+d*2,{nodeBorder:v,mainBkg:x}=r,{stylesMap:b}=pu(e),T=-y/2,E=-g/2,w=e.label?8:0,k=Je.svg(h),S=nt(e,{});e.look!=="handDrawn"&&(S.roughness=0,S.fillStyle="solid");let A=b.get("fill");S.stroke=A??x;let L=k.path(ho(T,E,y,g,.1),S),I=Math.max(y,f.width),N=g+f.height+w,C=k.rectangle(-I/2,-N/2,I,N,{...S,fill:"transparent",stroke:"none"}),_=h.insert(()=>L,":first-child"),D=h.insert(()=>C);if(e.icon){let M=h.append("g");M.html(`${await eo(e.icon,{height:l,width:l,fallbackPrefix:""})}`);let R=M.node().getBBox(),P=R.width,B=R.height,F=R.x,G=R.y;M.attr("transform",`translate(${-P/2-F},${m?f.height/2+w/2-B/2-G:-f.height/2-w/2-B/2-G})`),M.attr("style",`color: ${b.get("stroke")??v};`)}return p.attr("transform",`translate(${-f.width/2-(f.x-(f.left??0))},${m?-N/2:N/2-f.height})`),_.attr("transform",`translate(0,${m?f.height/2+w/2:-f.height/2-w/2})`),rt(e,D),e.intersect=function(M){if(K.info("iconSquare intersect",e,M),!e.label)return Qe.rect(e,M);let R=e.x??0,P=e.y??0,B=e.height??0,F=[];return m?F=[{x:R-f.width/2,y:P-B/2},{x:R+f.width/2,y:P-B/2},{x:R+f.width/2,y:P-B/2+f.height+w},{x:R+y/2,y:P-B/2+f.height+w},{x:R+y/2,y:P+B/2},{x:R-y/2,y:P+B/2},{x:R-y/2,y:P-B/2+f.height+w},{x:R-f.width/2,y:P-B/2+f.height+w}]:F=[{x:R-y/2,y:P-B/2},{x:R+y/2,y:P-B/2},{x:R+y/2,y:P-B/2+g},{x:R+f.width/2,y:P-B/2+g},{x:R+f.width/2/2,y:P+B/2},{x:R-f.width/2,y:P+B/2},{x:R-f.width/2,y:P-B/2+g},{x:R-y/2,y:P-B/2+g}],Qe.polygon(e,F,M)},h}var Lae=O(()=>{"use strict";Wt();xt();Xc();Yt();x0();Ut();$t();o(Rae,"iconSquare")});async function Nae(t,e,{config:{flowchart:r}}){let n=new Image;n.src=e?.img??"",await n.decode();let i=Number(n.naturalWidth.toString().replace("px","")),a=Number(n.naturalHeight.toString().replace("px",""));e.imageAspectRatio=i/a;let{labelStyles:s}=Ze(e);e.labelStyle=s;let l=r?.wrappingWidth;e.defaultWidth=r?.wrappingWidth;let u=Math.max(e.label?l??0:0,e?.assetWidth??i),h=e.constraint==="on"&&e?.assetHeight?e.assetHeight*e.imageAspectRatio:u,f=e.constraint==="on"?h/e.imageAspectRatio:e?.assetHeight??a;e.width=Math.max(h,l??0);let{shapeSvg:d,bbox:p,label:m}=await pt(t,e,"image-shape default"),g=e.pos==="t",y=-h/2,v=-f/2,x=e.label?8:0,b=Je.svg(d),T=nt(e,{});e.look!=="handDrawn"&&(T.roughness=0,T.fillStyle="solid");let E=b.rectangle(y,v,h,f,T),w=Math.max(h,p.width),k=f+p.height+x,S=b.rectangle(-w/2,-k/2,w,k,{...T,fill:"none",stroke:"none"}),A=d.insert(()=>E,":first-child"),L=d.insert(()=>S);if(e.img){let I=d.append("image");I.attr("href",e.img),I.attr("width",h),I.attr("height",f),I.attr("preserveAspectRatio","none"),I.attr("transform",`translate(${-h/2},${g?k/2-f:-k/2})`)}return m.attr("transform",`translate(${-p.width/2-(p.x-(p.left??0))},${g?-f/2-p.height/2-x/2:f/2-p.height/2+x/2})`),A.attr("transform",`translate(0,${g?p.height/2+x/2:-p.height/2-x/2})`),rt(e,L),e.intersect=function(I){if(K.info("iconSquare intersect",e,I),!e.label)return Qe.rect(e,I);let N=e.x??0,C=e.y??0,_=e.height??0,D=[];return g?D=[{x:N-p.width/2,y:C-_/2},{x:N+p.width/2,y:C-_/2},{x:N+p.width/2,y:C-_/2+p.height+x},{x:N+h/2,y:C-_/2+p.height+x},{x:N+h/2,y:C+_/2},{x:N-h/2,y:C+_/2},{x:N-h/2,y:C-_/2+p.height+x},{x:N-p.width/2,y:C-_/2+p.height+x}]:D=[{x:N-h/2,y:C-_/2},{x:N+h/2,y:C-_/2},{x:N+h/2,y:C-_/2+f},{x:N+p.width/2,y:C-_/2+f},{x:N+p.width/2/2,y:C+_/2},{x:N-p.width/2,y:C+_/2},{x:N-p.width/2,y:C-_/2+f},{x:N-h/2,y:C-_/2+f}],Qe.polygon(e,D,I)},d}var Mae=O(()=>{"use strict";Wt();xt();Yt();Ut();$t();o(Nae,"imageSquare")});async function Iae(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await pt(t,e,ht(e)),s=Math.max(a.width+(e.padding??0)*2,e?.width??0),l=Math.max(a.height+(e.padding??0)*2,e?.height??0),u=[{x:0,y:0},{x:s,y:0},{x:s+3*l/6,y:-l},{x:-3*l/6,y:-l}],h,{cssStyles:f}=e;if(e.look==="handDrawn"){let d=Je.svg(i),p=nt(e,{}),m=er(u),g=d.path(m,p);h=i.insert(()=>g,":first-child").attr("transform",`translate(${-s/2}, ${l/2})`),f&&h.attr("style",f)}else h=rs(i,s,l,u);return n&&h.attr("style",n),e.width=s,e.height=l,rt(e,h),e.intersect=function(d){return Qe.polygon(e,u,d)},i}var Oae=O(()=>{"use strict";$t();Yt();Ut();Wt();_h();o(Iae,"inv_trapezoid")});async function Dh(t,e,r){let{labelStyles:n,nodeStyles:i}=Ze(e);e.labelStyle=n;let{shapeSvg:a,bbox:s}=await pt(t,e,ht(e)),l=Math.max(s.width+r.labelPaddingX*2,e?.width||0),u=Math.max(s.height+r.labelPaddingY*2,e?.height||0),h=-l/2,f=-u/2,d,{rx:p,ry:m}=e,{cssStyles:g}=e;if(r?.rx&&r.ry&&(p=r.rx,m=r.ry),e.look==="handDrawn"){let y=Je.svg(a),v=nt(e,{}),x=p||m?y.path(ho(h,f,l,u,p||0),v):y.rectangle(h,f,l,u,v);d=a.insert(()=>x,":first-child"),d.attr("class","basic label-container").attr("style",Bn(g))}else d=a.insert("rect",":first-child"),d.attr("class","basic label-container").attr("style",i).attr("rx",Bn(p)).attr("ry",Bn(m)).attr("x",h).attr("y",f).attr("width",l).attr("height",u);return rt(e,d),e.calcIntersect=function(y,v){return Qe.rect(y,v)},e.intersect=function(y){return Qe.rect(e,y)},a}var m1=O(()=>{"use strict";$t();Yt();x0();Ut();Wt();ar();o(Dh,"drawRect")});async function Pae(t,e){let{shapeSvg:r,bbox:n,label:i}=await pt(t,e,"label"),a=r.insert("rect",":first-child");return a.attr("width",.1).attr("height",.1),r.attr("class","label edgeLabel"),i.attr("transform",`translate(${-(n.width/2)-(n.x-(n.left??0))}, ${-(n.height/2)-(n.y-(n.top??0))})`),rt(e,a),e.intersect=function(u){return Qe.rect(e,u)},r}var Bae=O(()=>{"use strict";m1();$t();Yt();o(Pae,"labelRect")});async function Fae(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await pt(t,e,ht(e)),s=Math.max(a.width+(e.padding??0),e?.width??0),l=Math.max(a.height+(e.padding??0),e?.height??0),u=[{x:0,y:0},{x:s+3*l/6,y:0},{x:s,y:-l},{x:-(3*l)/6,y:-l}],h,{cssStyles:f}=e;if(e.look==="handDrawn"){let d=Je.svg(i),p=nt(e,{}),m=er(u),g=d.path(m,p);h=i.insert(()=>g,":first-child").attr("transform",`translate(${-s/2}, ${l/2})`),f&&h.attr("style",f)}else h=rs(i,s,l,u);return n&&h.attr("style",n),e.width=s,e.height=l,rt(e,h),e.intersect=function(d){return Qe.polygon(e,u,d)},i}var $ae=O(()=>{"use strict";$t();Yt();Ut();Wt();_h();o(Fae,"lean_left")});async function zae(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await pt(t,e,ht(e)),s=Math.max(a.width+(e.padding??0),e?.width??0),l=Math.max(a.height+(e.padding??0),e?.height??0),u=[{x:-3*l/6,y:0},{x:s,y:0},{x:s+3*l/6,y:-l},{x:0,y:-l}],h,{cssStyles:f}=e;if(e.look==="handDrawn"){let d=Je.svg(i),p=nt(e,{}),m=er(u),g=d.path(m,p);h=i.insert(()=>g,":first-child").attr("transform",`translate(${-s/2}, ${l/2})`),f&&h.attr("style",f)}else h=rs(i,s,l,u);return n&&h.attr("style",n),e.width=s,e.height=l,rt(e,h),e.intersect=function(d){return Qe.polygon(e,u,d)},i}var Gae=O(()=>{"use strict";$t();Yt();Ut();Wt();_h();o(zae,"lean_right")});function Vae(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.label="",e.labelStyle=r;let i=t.insert("g").attr("class",ht(e)).attr("id",e.domId??e.id),{cssStyles:a}=e,s=Math.max(35,e?.width??0),l=Math.max(35,e?.height??0),u=7,h=[{x:s,y:0},{x:0,y:l+u/2},{x:s-2*u,y:l+u/2},{x:0,y:2*l},{x:s,y:l-u/2},{x:2*u,y:l-u/2}],f=Je.svg(i),d=nt(e,{});e.look!=="handDrawn"&&(d.roughness=0,d.fillStyle="solid");let p=er(h),m=f.path(p,d),g=i.insert(()=>m,":first-child");return a&&e.look!=="handDrawn"&&g.selectAll("path").attr("style",a),n&&e.look!=="handDrawn"&&g.selectAll("path").attr("style",n),g.attr("transform",`translate(-${s/2},${-l})`),rt(e,g),e.intersect=function(y){return K.info("lightningBolt intersect",e,y),Qe.polygon(e,h,y)},i}var qae=O(()=>{"use strict";xt();$t();Ut();Wt();Yt();$t();o(Vae,"lightningBolt")});async function Uae(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await pt(t,e,ht(e)),l=Math.max(a.width+(e.padding??0),e.width??0),u=l/2,h=u/(2.5+l/50),f=Math.max(a.height+h+(e.padding??0),e.height??0),d=f*.1,p,{cssStyles:m}=e;if(e.look==="handDrawn"){let g=Je.svg(i),y=cze(0,0,l,f,u,h,d),v=uze(0,h,l,f,u,h),x=nt(e,{}),b=g.path(y,x),T=g.path(v,x);i.insert(()=>T,":first-child").attr("class","line"),p=i.insert(()=>b,":first-child"),p.attr("class","basic label-container"),m&&p.attr("style",m)}else{let g=lze(0,0,l,f,u,h,d);p=i.insert("path",":first-child").attr("d",g).attr("class","basic label-container").attr("style",Bn(m)).attr("style",n)}return p.attr("label-offset-y",h),p.attr("transform",`translate(${-l/2}, ${-(f/2+h)})`),rt(e,p),s.attr("transform",`translate(${-(a.width/2)-(a.x-(a.left??0))}, ${-(a.height/2)+h-(a.y-(a.top??0))})`),e.intersect=function(g){let y=Qe.rect(e,g),v=y.x-(e.x??0);if(u!=0&&(Math.abs(v)<(e.width??0)/2||Math.abs(v)==(e.width??0)/2&&Math.abs(y.y-(e.y??0))>(e.height??0)/2-h)){let x=h*h*(1-v*v/(u*u));x>0&&(x=Math.sqrt(x)),x=h-x,g.y-(e.y??0)>0&&(x=-x),y.y+=x}return y},i}var lze,cze,uze,Wae=O(()=>{"use strict";$t();Yt();Ut();Wt();ar();lze=o((t,e,r,n,i,a,s)=>[`M${t},${e+a}`,`a${i},${a} 0,0,0 ${r},0`,`a${i},${a} 0,0,0 ${-r},0`,`l0,${n}`,`a${i},${a} 0,0,0 ${r},0`,`l0,${-n}`,`M${t},${e+a+s}`,`a${i},${a} 0,0,0 ${r},0`].join(" "),"createCylinderPathD"),cze=o((t,e,r,n,i,a,s)=>[`M${t},${e+a}`,`M${t+r},${e+a}`,`a${i},${a} 0,0,0 ${-r},0`,`l0,${n}`,`a${i},${a} 0,0,0 ${r},0`,`l0,${-n}`,`M${t},${e+a+s}`,`a${i},${a} 0,0,0 ${r},0`].join(" "),"createOuterCylinderPathD"),uze=o((t,e,r,n,i,a)=>[`M${t-r/2},${-n/2}`,`a${i},${a} 0,0,0 ${r},0`].join(" "),"createInnerCylinderPathD");o(Uae,"linedCylinder")});async function Hae(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await pt(t,e,ht(e)),l=Math.max(a.width+(e.padding??0)*2,e?.width??0),u=Math.max(a.height+(e.padding??0)*2,e?.height??0),h=u/4,f=u+h,{cssStyles:d}=e,p=Je.svg(i),m=nt(e,{});e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=[{x:-l/2-l/2*.1,y:-f/2},{x:-l/2-l/2*.1,y:f/2},...El(-l/2-l/2*.1,f/2,l/2+l/2*.1,f/2,h,.8),{x:l/2+l/2*.1,y:-f/2},{x:-l/2-l/2*.1,y:-f/2},{x:-l/2,y:-f/2},{x:-l/2,y:f/2*1.1},{x:-l/2,y:-f/2}],y=p.polygon(g.map(x=>[x.x,x.y]),m),v=i.insert(()=>y,":first-child");return v.attr("class","basic label-container"),d&&e.look!=="handDrawn"&&v.selectAll("path").attr("style",d),n&&e.look!=="handDrawn"&&v.selectAll("path").attr("style",n),v.attr("transform",`translate(0,${-h/2})`),s.attr("transform",`translate(${-l/2+(e.padding??0)+l/2*.1/2-(a.x-(a.left??0))},${-u/2+(e.padding??0)-h/2-(a.y-(a.top??0))})`),rt(e,v),e.intersect=function(x){return Qe.polygon(e,g,x)},i}var Yae=O(()=>{"use strict";$t();Yt();Wt();Ut();o(Hae,"linedWaveEdgedRect")});async function jae(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await pt(t,e,ht(e)),l=Math.max(a.width+(e.padding??0)*2,e?.width??0),u=Math.max(a.height+(e.padding??0)*2,e?.height??0),h=5,f=-l/2,d=-u/2,{cssStyles:p}=e,m=Je.svg(i),g=nt(e,{}),y=[{x:f-h,y:d+h},{x:f-h,y:d+u+h},{x:f+l-h,y:d+u+h},{x:f+l-h,y:d+u},{x:f+l,y:d+u},{x:f+l,y:d+u-h},{x:f+l+h,y:d+u-h},{x:f+l+h,y:d-h},{x:f+h,y:d-h},{x:f+h,y:d},{x:f,y:d},{x:f,y:d+h}],v=[{x:f,y:d+h},{x:f+l-h,y:d+h},{x:f+l-h,y:d+u},{x:f+l,y:d+u},{x:f+l,y:d},{x:f,y:d}];e.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let x=er(y),b=m.path(x,g),T=er(v),E=m.path(T,{...g,fill:"none"}),w=i.insert(()=>E,":first-child");return w.insert(()=>b,":first-child"),w.attr("class","basic label-container"),p&&e.look!=="handDrawn"&&w.selectAll("path").attr("style",p),n&&e.look!=="handDrawn"&&w.selectAll("path").attr("style",n),s.attr("transform",`translate(${-(a.width/2)-h-(a.x-(a.left??0))}, ${-(a.height/2)+h-(a.y-(a.top??0))})`),rt(e,w),e.intersect=function(k){return Qe.polygon(e,y,k)},i}var Xae=O(()=>{"use strict";$t();Ut();Wt();Yt();o(jae,"multiRect")});async function Kae(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await pt(t,e,ht(e)),l=Math.max(a.width+(e.padding??0)*2,e?.width??0),u=Math.max(a.height+(e.padding??0)*2,e?.height??0),h=u/4,f=u+h,d=-l/2,p=-f/2,m=5,{cssStyles:g}=e,y=El(d-m,p+f+m,d+l-m,p+f+m,h,.8),v=y?.[y.length-1],x=[{x:d-m,y:p+m},{x:d-m,y:p+f+m},...y,{x:d+l-m,y:v.y-m},{x:d+l,y:v.y-m},{x:d+l,y:v.y-2*m},{x:d+l+m,y:v.y-2*m},{x:d+l+m,y:p-m},{x:d+m,y:p-m},{x:d+m,y:p},{x:d,y:p},{x:d,y:p+m}],b=[{x:d,y:p+m},{x:d+l-m,y:p+m},{x:d+l-m,y:v.y-m},{x:d+l,y:v.y-m},{x:d+l,y:p},{x:d,y:p}],T=Je.svg(i),E=nt(e,{});e.look!=="handDrawn"&&(E.roughness=0,E.fillStyle="solid");let w=er(x),k=T.path(w,E),S=er(b),A=T.path(S,E),L=i.insert(()=>k,":first-child");return L.insert(()=>A),L.attr("class","basic label-container"),g&&e.look!=="handDrawn"&&L.selectAll("path").attr("style",g),n&&e.look!=="handDrawn"&&L.selectAll("path").attr("style",n),L.attr("transform",`translate(0,${-h/2})`),s.attr("transform",`translate(${-(a.width/2)-m-(a.x-(a.left??0))}, ${-(a.height/2)+m-h/2-(a.y-(a.top??0))})`),rt(e,L),e.intersect=function(I){return Qe.polygon(e,x,I)},i}var Qae=O(()=>{"use strict";$t();Yt();Wt();Ut();o(Kae,"multiWaveEdgedRectangle")});async function Zae(t,e,{config:{themeVariables:r}}){let{labelStyles:n,nodeStyles:i}=Ze(e);e.labelStyle=n,e.useHtmlLabels||Sr(Zt())||(e.centerLabel=!0);let{shapeSvg:s,bbox:l,label:u}=await pt(t,e,ht(e)),h=Math.max(l.width+(e.padding??0)*2,e?.width??0),f=Math.max(l.height+(e.padding??0)*2,e?.height??0),d=-h/2,p=-f/2,{cssStyles:m}=e,g=Je.svg(s),y=nt(e,{fill:r.noteBkgColor,stroke:r.noteBorderColor});e.look!=="handDrawn"&&(y.roughness=0,y.fillStyle="solid");let v=g.rectangle(d,p,h,f,y),x=s.insert(()=>v,":first-child");return x.attr("class","basic label-container"),m&&e.look!=="handDrawn"&&x.selectAll("path").attr("style",m),i&&e.look!=="handDrawn"&&x.selectAll("path").attr("style",i),u.attr("transform",`translate(${-l.width/2-(l.x-(l.left??0))}, ${-(l.height/2)-(l.y-(l.top??0))})`),rt(e,x),e.intersect=function(b){return Qe.rect(e,b)},s}var Jae=O(()=>{"use strict";Wt();Yt();Ut();$t();$r();$r();o(Zae,"note")});async function ese(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await pt(t,e,ht(e)),s=a.width+e.padding,l=a.height+e.padding,u=s+l,h=.5,f=[{x:u/2,y:0},{x:u,y:-u/2},{x:u/2,y:-u},{x:0,y:-u/2}],d,{cssStyles:p}=e;if(e.look==="handDrawn"){let m=Je.svg(i),g=nt(e,{}),y=hze(0,0,u),v=m.path(y,g);d=i.insert(()=>v,":first-child").attr("transform",`translate(${-u/2+h}, ${u/2})`),p&&d.attr("style",p)}else d=rs(i,u,u,f),d.attr("transform",`translate(${-u/2+h}, ${u/2})`);return n&&d.attr("style",n),rt(e,d),e.calcIntersect=function(m,g){let y=m.width,v=[{x:y/2,y:0},{x:y,y:-y/2},{x:y/2,y:-y},{x:0,y:-y/2}],x=Qe.polygon(m,v,g);return{x:x.x-.5,y:x.y-.5}},e.intersect=function(m){return this.calcIntersect(e,m)},i}var hze,tse=O(()=>{"use strict";$t();Yt();Ut();Wt();_h();hze=o((t,e,r)=>[`M${t+r/2},${e}`,`L${t+r},${e-r/2}`,`L${t+r/2},${e-r}`,`L${t},${e-r/2}`,"Z"].join(" "),"createDecisionBoxPathD");o(ese,"question")});async function rse(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await pt(t,e,ht(e)),l=Math.max(a.width+(e.padding??0),e?.width??0),u=Math.max(a.height+(e.padding??0),e?.height??0),h=-l/2,f=-u/2,d=f/2,p=[{x:h+d,y:f},{x:h,y:0},{x:h+d,y:-f},{x:-h,y:-f},{x:-h,y:f}],{cssStyles:m}=e,g=Je.svg(i),y=nt(e,{});e.look!=="handDrawn"&&(y.roughness=0,y.fillStyle="solid");let v=er(p),x=g.path(v,y),b=i.insert(()=>x,":first-child");return b.attr("class","basic label-container"),m&&e.look!=="handDrawn"&&b.selectAll("path").attr("style",m),n&&e.look!=="handDrawn"&&b.selectAll("path").attr("style",n),b.attr("transform",`translate(${-d/2},0)`),s.attr("transform",`translate(${-d/2-a.width/2-(a.x-(a.left??0))}, ${-(a.height/2)-(a.y-(a.top??0))})`),rt(e,b),e.intersect=function(T){return Qe.polygon(e,p,T)},i}var nse=O(()=>{"use strict";$t();Yt();Ut();Wt();o(rse,"rect_left_inv_arrow")});var fze,yc,iE=O(()=>{"use strict";$r();jt();co();fze=o(async(t,e,r,n=!1,i=!1)=>{let a=e||"";typeof a=="object"&&(a=a[0]);let s=ve(),l=Sr(s);return await Fn(t,a,{style:r,isTitle:n,useHtmlLabels:l,markdown:!1,isNode:i,width:Number.POSITIVE_INFINITY},s)},"createLabel"),yc=fze});async function ise(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let i;e.cssClasses?i="node "+e.cssClasses:i="node default";let a=t.insert("g").attr("class",i).attr("id",e.domId||e.id),s=a.insert("g"),l=a.insert("g").attr("class","label").attr("style",n),u=e.description,h=e.label,f=await yc(l,h,e.labelStyle,!0,!0),d={width:0,height:0};if(Sr(ve())){let A=f.children[0],L=je(f);d=A.getBoundingClientRect(),L.attr("width",d.width),L.attr("height",d.height)}K.info("Text 2",u);let p=u||[],m=f.getBBox(),g=await yc(l,Array.isArray(p)?p.join("
    "):p,e.labelStyle,!0,!0),y=g.children[0],v=je(g);d=y.getBoundingClientRect(),v.attr("width",d.width),v.attr("height",d.height);let x=(e.padding||0)/2;je(g).attr("transform","translate( "+(d.width>m.width?0:(m.width-d.width)/2)+", "+(m.height+x+5)+")"),je(f).attr("transform","translate( "+(d.width(K.debug("Rough node insert CXC",I),N),":first-child"),k=a.insert(()=>(K.debug("Rough node insert CXC",I),I),":first-child")}else k=s.insert("rect",":first-child"),S=s.insert("line"),k.attr("class","outer title-state").attr("style",n).attr("x",-d.width/2-x).attr("y",-d.height/2-x).attr("width",d.width+(e.padding||0)).attr("height",d.height+(e.padding||0)),S.attr("class","divider").attr("x1",-d.width/2-x).attr("x2",d.width/2+x).attr("y1",-d.height/2-x+m.height+x).attr("y2",-d.height/2-x+m.height+x);return rt(e,k),e.intersect=function(A){return Qe.rect(e,A)},a}var ase=O(()=>{"use strict";Ar();$t();iE();Yt();Ut();Wt();jt();x0();xt();$r();o(ise,"rectWithTitle")});async function sse(t,e){let r={rx:5,ry:5,classes:"",labelPaddingX:(e?.padding||0)*1,labelPaddingY:(e?.padding||0)*1};return Dh(t,e,r)}var ose=O(()=>{"use strict";m1();o(sse,"roundedRect")});async function lse(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await pt(t,e,ht(e)),l=e?.padding??0,u=Math.max(a.width+(e.padding??0)*2,e?.width??0),h=Math.max(a.height+(e.padding??0)*2,e?.height??0),f=-a.width/2-l,d=-a.height/2-l,{cssStyles:p}=e,m=Je.svg(i),g=nt(e,{});e.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let y=[{x:f,y:d},{x:f+u+8,y:d},{x:f+u+8,y:d+h},{x:f-8,y:d+h},{x:f-8,y:d},{x:f,y:d},{x:f,y:d+h}],v=m.polygon(y.map(b=>[b.x,b.y]),g),x=i.insert(()=>v,":first-child");return x.attr("class","basic label-container").attr("style",Bn(p)),n&&e.look!=="handDrawn"&&x.selectAll("path").attr("style",n),p&&e.look!=="handDrawn"&&x.selectAll("path").attr("style",n),s.attr("transform",`translate(${-u/2+4+(e.padding??0)-(a.x-(a.left??0))},${-h/2+(e.padding??0)-(a.y-(a.top??0))})`),rt(e,x),e.intersect=function(b){return Qe.rect(e,b)},i}var cse=O(()=>{"use strict";$t();Yt();Ut();Wt();ar();o(lse,"shadedProcess")});async function use(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await pt(t,e,ht(e)),l=Math.max(a.width+(e.padding??0)*2,e?.width??0),u=Math.max(a.height+(e.padding??0)*2,e?.height??0),h=-l/2,f=-u/2,{cssStyles:d}=e,p=Je.svg(i),m=nt(e,{});e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=[{x:h,y:f},{x:h,y:f+u},{x:h+l,y:f+u},{x:h+l,y:f-u/2}],y=er(g),v=p.path(y,m),x=i.insert(()=>v,":first-child");return x.attr("class","basic label-container"),d&&e.look!=="handDrawn"&&x.selectChildren("path").attr("style",d),n&&e.look!=="handDrawn"&&x.selectChildren("path").attr("style",n),x.attr("transform",`translate(0, ${u/4})`),s.attr("transform",`translate(${-l/2+(e.padding??0)-(a.x-(a.left??0))}, ${-u/4+(e.padding??0)-(a.y-(a.top??0))})`),rt(e,x),e.intersect=function(b){return Qe.polygon(e,g,b)},i}var hse=O(()=>{"use strict";$t();Yt();Ut();Wt();o(use,"slopedRect")});async function fse(t,e){let r={rx:0,ry:0,classes:"",labelPaddingX:e.labelPaddingX??(e?.padding||0)*2,labelPaddingY:(e?.padding||0)*1};return Dh(t,e,r)}var dse=O(()=>{"use strict";m1();o(fse,"squareRect")});async function pse(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await pt(t,e,ht(e)),s=a.height+e.padding,l=a.width+s/4+e.padding,u=s/2,{cssStyles:h}=e,f=Je.svg(i),d=nt(e,{});e.look!=="handDrawn"&&(d.roughness=0,d.fillStyle="solid");let p=[{x:-l/2+u,y:-s/2},{x:l/2-u,y:-s/2},...y0(-l/2+u,0,u,50,90,270),{x:l/2-u,y:s/2},...y0(l/2-u,0,u,50,270,450)],m=er(p),g=f.path(m,d),y=i.insert(()=>g,":first-child");return y.attr("class","basic label-container outer-path"),h&&e.look!=="handDrawn"&&y.selectChildren("path").attr("style",h),n&&e.look!=="handDrawn"&&y.selectChildren("path").attr("style",n),rt(e,y),e.intersect=function(v){return Qe.polygon(e,p,v)},i}var mse=O(()=>{"use strict";$t();Yt();Ut();Wt();o(pse,"stadium")});async function gse(t,e){return Dh(t,e,{rx:5,ry:5,classes:"flowchart-node"})}var yse=O(()=>{"use strict";m1();o(gse,"state")});function vse(t,e,{config:{themeVariables:r}}){let{labelStyles:n,nodeStyles:i}=Ze(e);e.labelStyle=n;let{cssStyles:a}=e,{lineColor:s,stateBorder:l,nodeBorder:u}=r,h=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),f=Je.svg(h),d=nt(e,{});e.look!=="handDrawn"&&(d.roughness=0,d.fillStyle="solid");let p=f.circle(0,0,14,{...d,stroke:s,strokeWidth:2}),m=l??u,g=f.circle(0,0,5,{...d,fill:m,stroke:m,strokeWidth:2,fillStyle:"solid"}),y=h.insert(()=>p,":first-child");return y.insert(()=>g),a&&y.selectAll("path").attr("style",a),i&&y.selectAll("path").attr("style",i),rt(e,y),e.intersect=function(v){return Qe.circle(e,7,v)},h}var xse=O(()=>{"use strict";Wt();Yt();Ut();$t();o(vse,"stateEnd")});function bse(t,e,{config:{themeVariables:r}}){let{lineColor:n}=r,i=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),a;if(e.look==="handDrawn"){let l=Je.svg(i).circle(0,0,14,Cie(n));a=i.insert(()=>l),a.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14)}else a=i.insert("circle",":first-child"),a.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14);return rt(e,a),e.intersect=function(s){return Qe.circle(e,7,s)},i}var Tse=O(()=>{"use strict";Wt();Yt();Ut();$t();o(bse,"stateStart")});async function wse(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await pt(t,e,ht(e)),s=(e?.padding||0)/2,l=a.width+e.padding,u=a.height+e.padding,h=-a.width/2-s,f=-a.height/2-s,d=[{x:0,y:0},{x:l,y:0},{x:l,y:-u},{x:0,y:-u},{x:0,y:0},{x:-8,y:0},{x:l+8,y:0},{x:l+8,y:-u},{x:-8,y:-u},{x:-8,y:0}];if(e.look==="handDrawn"){let p=Je.svg(i),m=nt(e,{}),g=p.rectangle(h-8,f,l+16,u,m),y=p.line(h,f,h,f+u,m),v=p.line(h+l,f,h+l,f+u,m);i.insert(()=>y,":first-child"),i.insert(()=>v,":first-child");let x=i.insert(()=>g,":first-child"),{cssStyles:b}=e;x.attr("class","basic label-container").attr("style",Bn(b)),rt(e,x)}else{let p=rs(i,l,u,d);n&&p.attr("style",n),rt(e,p)}return e.intersect=function(p){return Qe.polygon(e,d,p)},i}var kse=O(()=>{"use strict";$t();Yt();Ut();Wt();_h();ar();o(wse,"subroutine")});async function Ese(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await pt(t,e,ht(e)),s=Math.max(a.width+(e.padding??0)*2,e?.width??0),l=Math.max(a.height+(e.padding??0)*2,e?.height??0),u=-s/2,h=-l/2,f=.2*l,d=.2*l,{cssStyles:p}=e,m=Je.svg(i),g=nt(e,{}),y=[{x:u-f/2,y:h},{x:u+s+f/2,y:h},{x:u+s+f/2,y:h+l},{x:u-f/2,y:h+l}],v=[{x:u+s-f/2,y:h+l},{x:u+s+f/2,y:h+l},{x:u+s+f/2,y:h+l-d}];e.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let x=er(y),b=m.path(x,g),T=er(v),E=m.path(T,{...g,fillStyle:"solid"}),w=i.insert(()=>E,":first-child");return w.insert(()=>b,":first-child"),w.attr("class","basic label-container"),p&&e.look!=="handDrawn"&&w.selectAll("path").attr("style",p),n&&e.look!=="handDrawn"&&w.selectAll("path").attr("style",n),rt(e,w),e.intersect=function(k){return Qe.polygon(e,y,k)},i}var Sse=O(()=>{"use strict";$t();Ut();Wt();Yt();o(Ese,"taggedRect")});async function Cse(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await pt(t,e,ht(e)),l=Math.max(a.width+(e.padding??0)*2,e?.width??0),u=Math.max(a.height+(e.padding??0)*2,e?.height??0),h=u/4,f=.2*l,d=.2*u,p=u+h,{cssStyles:m}=e,g=Je.svg(i),y=nt(e,{});e.look!=="handDrawn"&&(y.roughness=0,y.fillStyle="solid");let v=[{x:-l/2-l/2*.1,y:p/2},...El(-l/2-l/2*.1,p/2,l/2+l/2*.1,p/2,h,.8),{x:l/2+l/2*.1,y:-p/2},{x:-l/2-l/2*.1,y:-p/2}],x=-l/2+l/2*.1,b=-p/2-d*.4,T=[{x:x+l-f,y:(b+u)*1.4},{x:x+l,y:b+u-d},{x:x+l,y:(b+u)*.9},...El(x+l,(b+u)*1.3,x+l-f,(b+u)*1.5,-u*.03,.5)],E=er(v),w=g.path(E,y),k=er(T),S=g.path(k,{...y,fillStyle:"solid"}),A=i.insert(()=>S,":first-child");return A.insert(()=>w,":first-child"),A.attr("class","basic label-container"),m&&e.look!=="handDrawn"&&A.selectAll("path").attr("style",m),n&&e.look!=="handDrawn"&&A.selectAll("path").attr("style",n),A.attr("transform",`translate(0,${-h/2})`),s.attr("transform",`translate(${-l/2+(e.padding??0)-(a.x-(a.left??0))},${-u/2+(e.padding??0)-h/2-(a.y-(a.top??0))})`),rt(e,A),e.intersect=function(L){return Qe.polygon(e,v,L)},i}var Ase=O(()=>{"use strict";$t();Yt();Wt();Ut();o(Cse,"taggedWaveEdgedRectangle")});async function _se(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await pt(t,e,ht(e)),s=Math.max(a.width+e.padding,e?.width||0),l=Math.max(a.height+e.padding,e?.height||0),u=-s/2,h=-l/2,f=i.insert("rect",":first-child");return f.attr("class","text").attr("style",n).attr("rx",0).attr("ry",0).attr("x",u).attr("y",h).attr("width",s).attr("height",l),rt(e,f),e.intersect=function(d){return Qe.rect(e,d)},i}var Dse=O(()=>{"use strict";$t();Yt();Ut();o(_se,"text")});async function Rse(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s,halfPadding:l}=await pt(t,e,ht(e)),u=e.look==="neo"?l*2:l,h=a.height+u,f=h/2,d=f/(2.5+h/50),p=a.width+d+u,{cssStyles:m}=e,g;if(e.look==="handDrawn"){let y=Je.svg(i),v=pze(0,0,p,h,d,f),x=mze(0,0,p,h,d,f),b=y.path(v,nt(e,{})),T=y.path(x,nt(e,{fill:"none"}));g=i.insert(()=>T,":first-child"),g=i.insert(()=>b,":first-child"),g.attr("class","basic label-container"),m&&g.attr("style",m)}else{let y=dze(0,0,p,h,d,f);g=i.insert("path",":first-child").attr("d",y).attr("class","basic label-container").attr("style",Bn(m)).attr("style",n),g.attr("class","basic label-container"),m&&g.selectAll("path").attr("style",m),n&&g.selectAll("path").attr("style",n)}return g.attr("label-offset-x",d),g.attr("transform",`translate(${-p/2}, ${h/2} )`),s.attr("transform",`translate(${-(a.width/2)-d-(a.x-(a.left??0))}, ${-(a.height/2)-(a.y-(a.top??0))})`),rt(e,g),e.intersect=function(y){let v=Qe.rect(e,y),x=v.y-(e.y??0);if(f!=0&&(Math.abs(x)<(e.height??0)/2||Math.abs(x)==(e.height??0)/2&&Math.abs(v.x-(e.x??0))>(e.width??0)/2-d)){let b=d*d*(1-x*x/(f*f));b!=0&&(b=Math.sqrt(Math.abs(b))),b=d-b,y.x-(e.x??0)>0&&(b=-b),v.x+=b}return v},i}var dze,pze,mze,Lse=O(()=>{"use strict";$t();Ut();Wt();Yt();ar();dze=o((t,e,r,n,i,a)=>`M${t},${e} + a${i},${a} 0,0,1 0,${-n} + l${r},0 + a${i},${a} 0,0,1 0,${n} + M${r},${-n} + a${i},${a} 0,0,0 0,${n} + l${-r},0`,"createCylinderPathD"),pze=o((t,e,r,n,i,a)=>[`M${t},${e}`,`M${t+r},${e}`,`a${i},${a} 0,0,0 0,${-n}`,`l${-r},0`,`a${i},${a} 0,0,0 0,${n}`,`l${r},0`].join(" "),"createOuterCylinderPathD"),mze=o((t,e,r,n,i,a)=>[`M${t+r/2},${-n/2}`,`a${i},${a} 0,0,0 0,${n}`].join(" "),"createInnerCylinderPathD");o(Rse,"tiltedCylinder")});async function Nse(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await pt(t,e,ht(e)),s=a.width+e.padding,l=a.height+e.padding,u=[{x:-3*l/6,y:0},{x:s+3*l/6,y:0},{x:s,y:-l},{x:0,y:-l}],h,{cssStyles:f}=e;if(e.look==="handDrawn"){let d=Je.svg(i),p=nt(e,{}),m=er(u),g=d.path(m,p);h=i.insert(()=>g,":first-child").attr("transform",`translate(${-s/2}, ${l/2})`),f&&h.attr("style",f)}else h=rs(i,s,l,u);return n&&h.attr("style",n),e.width=s,e.height=l,rt(e,h),e.intersect=function(d){return Qe.polygon(e,u,d)},i}var Mse=O(()=>{"use strict";$t();Yt();Ut();Wt();_h();o(Nse,"trapezoid")});async function Ise(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await pt(t,e,ht(e)),s=60,l=20,u=Math.max(s,a.width+(e.padding??0)*2,e?.width??0),h=Math.max(l,a.height+(e.padding??0)*2,e?.height??0),{cssStyles:f}=e,d=Je.svg(i),p=nt(e,{});e.look!=="handDrawn"&&(p.roughness=0,p.fillStyle="solid");let m=[{x:-u/2*.8,y:-h/2},{x:u/2*.8,y:-h/2},{x:u/2,y:-h/2*.6},{x:u/2,y:h/2},{x:-u/2,y:h/2},{x:-u/2,y:-h/2*.6}],g=er(m),y=d.path(g,p),v=i.insert(()=>y,":first-child");return v.attr("class","basic label-container"),f&&e.look!=="handDrawn"&&v.selectChildren("path").attr("style",f),n&&e.look!=="handDrawn"&&v.selectChildren("path").attr("style",n),rt(e,v),e.intersect=function(x){return Qe.polygon(e,m,x)},i}var Ose=O(()=>{"use strict";$t();Yt();Ut();Wt();o(Ise,"trapezoidalPentagon")});async function Pse(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await pt(t,e,ht(e)),l=e.useHtmlLabels||Sr(ve()),u=a.width+(e.padding??0),h=u+a.height,f=u+a.height,d=[{x:0,y:0},{x:f,y:0},{x:f/2,y:-h}],{cssStyles:p}=e,m=Je.svg(i),g=nt(e,{});e.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let y=er(d),v=m.path(y,g),x=i.insert(()=>v,":first-child").attr("transform",`translate(${-h/2}, ${h/2})`);return p&&e.look!=="handDrawn"&&x.selectChildren("path").attr("style",p),n&&e.look!=="handDrawn"&&x.selectChildren("path").attr("style",n),e.width=u,e.height=h,rt(e,x),s.attr("transform",`translate(${-a.width/2-(a.x-(a.left??0))}, ${h/2-(a.height+(e.padding??0)/(l?2:1)-(a.y-(a.top??0)))})`),e.intersect=function(b){return K.info("Triangle intersect",e,d,b),Qe.polygon(e,d,b)},i}var Bse=O(()=>{"use strict";xt();$t();Yt();Ut();Wt();$t();jt();$r();o(Pse,"triangle")});async function Fse(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await pt(t,e,ht(e)),l=Math.max(a.width+(e.padding??0)*2,e?.width??0),u=Math.max(a.height+(e.padding??0)*2,e?.height??0),h=u/8,f=u+h,{cssStyles:d}=e,m=70-l,g=m>0?m/2:0,y=Je.svg(i),v=nt(e,{});e.look!=="handDrawn"&&(v.roughness=0,v.fillStyle="solid");let x=[{x:-l/2-g,y:f/2},...El(-l/2-g,f/2,l/2+g,f/2,h,.8),{x:l/2+g,y:-f/2},{x:-l/2-g,y:-f/2}],b=er(x),T=y.path(b,v),E=i.insert(()=>T,":first-child");return E.attr("class","basic label-container"),d&&e.look!=="handDrawn"&&E.selectAll("path").attr("style",d),n&&e.look!=="handDrawn"&&E.selectAll("path").attr("style",n),E.attr("transform",`translate(0,${-h/2})`),s.attr("transform",`translate(${-l/2+(e.padding??0)-(a.x-(a.left??0))},${-u/2+(e.padding??0)-h-(a.y-(a.top??0))})`),rt(e,E),e.intersect=function(w){return Qe.polygon(e,x,w)},i}var $se=O(()=>{"use strict";$t();Yt();Wt();Ut();o(Fse,"waveEdgedRectangle")});async function zse(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await pt(t,e,ht(e)),s=100,l=50,u=Math.max(a.width+(e.padding??0)*2,e?.width??0),h=Math.max(a.height+(e.padding??0)*2,e?.height??0),f=u/h,d=u,p=h;d>p*f?p=d/f:d=p*f,d=Math.max(d,s),p=Math.max(p,l);let m=Math.min(p*.2,p/4),g=p+m*2,{cssStyles:y}=e,v=Je.svg(i),x=nt(e,{});e.look!=="handDrawn"&&(x.roughness=0,x.fillStyle="solid");let b=[{x:-d/2,y:g/2},...El(-d/2,g/2,d/2,g/2,m,1),{x:d/2,y:-g/2},...El(d/2,-g/2,-d/2,-g/2,m,-1)],T=er(b),E=v.path(T,x),w=i.insert(()=>E,":first-child");return w.attr("class","basic label-container"),y&&e.look!=="handDrawn"&&w.selectAll("path").attr("style",y),n&&e.look!=="handDrawn"&&w.selectAll("path").attr("style",n),rt(e,w),e.intersect=function(k){return Qe.polygon(e,b,k)},i}var Gse=O(()=>{"use strict";$t();Yt();Ut();Wt();o(zse,"waveRectangle")});async function Vse(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await pt(t,e,ht(e)),l=Math.max(a.width+(e.padding??0)*2,e?.width??0),u=Math.max(a.height+(e.padding??0)*2,e?.height??0),h=5,f=-l/2,d=-u/2,{cssStyles:p}=e,m=Je.svg(i),g=nt(e,{}),y=[{x:f-h,y:d-h},{x:f-h,y:d+u},{x:f+l,y:d+u},{x:f+l,y:d-h}],v=`M${f-h},${d-h} L${f+l},${d-h} L${f+l},${d+u} L${f-h},${d+u} L${f-h},${d-h} + M${f-h},${d} L${f+l},${d} + M${f},${d-h} L${f},${d+u}`;e.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let x=m.path(v,g),b=i.insert(()=>x,":first-child");return b.attr("transform",`translate(${h/2}, ${h/2})`),b.attr("class","basic label-container"),p&&e.look!=="handDrawn"&&b.selectAll("path").attr("style",p),n&&e.look!=="handDrawn"&&b.selectAll("path").attr("style",n),s.attr("transform",`translate(${-(a.width/2)+h/2-(a.x-(a.left??0))}, ${-(a.height/2)+h/2-(a.y-(a.top??0))})`),rt(e,b),e.intersect=function(T){return Qe.polygon(e,y,T)},i}var qse=O(()=>{"use strict";$t();Ut();Wt();Yt();o(Vse,"windowPane")});async function IM(t,e){let r=e;if(r.alias&&(e.label=r.alias),e.look==="handDrawn"){let{themeVariables:V}=Zt(),{background:X}=V,Q={...e,id:e.id+"-background",look:"default",cssStyles:["stroke: none",`fill: ${X}`]};await IM(t,Q)}let n=Zt();e.useHtmlLabels=n.htmlLabels;let i=n.er?.diagramPadding??10,a=n.er?.entityPadding??6,{cssStyles:s}=e,{labelStyles:l,nodeStyles:u}=Ze(e);if(r.attributes.length===0&&e.label){let V={rx:0,ry:0,labelPaddingX:i,labelPaddingY:i*1.5,classes:""};xa(e.label,n)+V.labelPaddingX*20){let V=d.width+i*2-(y+v+x+b);y+=V/w,v+=V/w,x>0&&(x+=V/w),b>0&&(b+=V/w)}let S=y+v+x+b,A=Je.svg(f),L=nt(e,{});e.look!=="handDrawn"&&(L.roughness=0,L.fillStyle="solid");let I=0;g.length>0&&(I=g.reduce((V,X)=>V+(X?.rowHeight??0),0));let N=Math.max(k.width+i*2,e?.width||0,S),C=Math.max((I??0)+d.height,e?.height||0),_=-N/2,D=-C/2;f.selectAll("g:not(:first-child)").each((V,X,Q)=>{let H=je(Q[X]),ie=H.attr("transform"),Y=0,le=0;if(ie){let J=RegExp(/translate\(([^,]+),([^)]+)\)/).exec(ie);J&&(Y=parseFloat(J[1]),le=parseFloat(J[2]),H.attr("class").includes("attribute-name")?Y+=y:H.attr("class").includes("attribute-keys")?Y+=y+v:H.attr("class").includes("attribute-comment")&&(Y+=y+v+x))}H.attr("transform",`translate(${_+i/2+Y}, ${le+D+d.height+a/2})`)}),f.select(".name").attr("transform","translate("+-d.width/2+", "+(D+a/2)+")");let M=A.rectangle(_,D,N,C,L),R=f.insert(()=>M,":first-child").attr("style",s.join("")),{themeVariables:P}=Zt(),{rowEven:B,rowOdd:F,nodeBorder:G}=P;m.push(0);for(let[V,X]of g.entries()){let H=(V+1)%2===0&&X.yOffset!==0,ie=A.rectangle(_,d.height+D+X?.yOffset,N,X?.rowHeight,{...L,fill:H?B:F,stroke:G});f.insert(()=>ie,"g.label").attr("style",s.join("")).attr("class",`row-rect-${H?"even":"odd"}`)}let $=A.line(_,d.height+D,N+_,d.height+D,L);f.insert(()=>$).attr("class","divider"),$=A.line(y+_,d.height+D,y+_,C+D,L),f.insert(()=>$).attr("class","divider"),T&&($=A.line(y+v+_,d.height+D,y+v+_,C+D,L),f.insert(()=>$).attr("class","divider")),E&&($=A.line(y+v+x+_,d.height+D,y+v+x+_,C+D,L),f.insert(()=>$).attr("class","divider"));for(let V of m)$=A.line(_,d.height+D+V,N+_,d.height+D+V,L),f.insert(()=>$).attr("class","divider");if(rt(e,R),u&&e.look!=="handDrawn"){let X=u.split(";")?.filter(Q=>Q.includes("stroke"))?.map(Q=>`${Q}`).join("; ");f.selectAll("path").attr("style",X??""),f.selectAll(".row-rect-even path").attr("style",u)}return e.intersect=function(V){return Qe.rect(e,V)},f}async function mb(t,e,r,n=0,i=0,a=[],s=""){let l=t.insert("g").attr("class",`label ${a.join(" ")}`).attr("transform",`translate(${n}, ${i})`).attr("style",s);e!==jc(e)&&(e=jc(e),e=e.replaceAll("<","<").replaceAll(">",">"));let u=l.node().appendChild(await Fn(l,e,{width:xa(e,r)+100,style:s,useHtmlLabels:r.htmlLabels},r));if(e.includes("<")||e.includes(">")){let f=u.children[0];for(f.textContent=f.textContent.replaceAll("<","<").replaceAll(">",">");f.childNodes[0];)f=f.childNodes[0],f.textContent=f.textContent.replaceAll("<","<").replaceAll(">",">")}let h=u.getBBox();if(Xs(r.htmlLabels)){let f=u.children[0];f.style.textAlign="start";let d=je(u);h=f.getBoundingClientRect(),d.attr("width",h.width),d.attr("height",h.height)}return h}var Use=O(()=>{"use strict";$t();Yt();Ut();Wt();m1();$r();co();Ur();Ar();ar();o(IM,"erBox");o(mb,"addText")});async function Wse(t,e,r,n,i=r.class.padding??12){let a=n?0:3,s=t.insert("g").attr("class",ht(e)).attr("id",e.domId||e.id),l=null,u=null,h=null,f=null,d=0,p=0,m=0;if(l=s.insert("g").attr("class","annotation-group text"),e.annotations.length>0){let b=e.annotations[0];await aE(l,{text:`\xAB${b}\xBB`},0),d=l.node().getBBox().height}u=s.insert("g").attr("class","label-group text"),await aE(u,e,0,["font-weight: bolder"]);let g=u.node().getBBox();p=g.height,h=s.insert("g").attr("class","members-group text");let y=0;for(let b of e.members){let T=await aE(h,b,y,[b.parseClassifier()]);y+=T+a}m=h.node().getBBox().height,m<=0&&(m=i/2),f=s.insert("g").attr("class","methods-group text");let v=0;for(let b of e.methods){let T=await aE(f,b,v,[b.parseClassifier()]);v+=T+a}let x=s.node().getBBox();if(l!==null){let b=l.node().getBBox();l.attr("transform",`translate(${-b.width/2})`)}return u.attr("transform",`translate(${-g.width/2}, ${d})`),x=s.node().getBBox(),h.attr("transform",`translate(0, ${d+p+i*2})`),x=s.node().getBBox(),f.attr("transform",`translate(0, ${d+p+(m?m+i*4:i*2)})`),x=s.node().getBBox(),{shapeSvg:s,bbox:x}}async function aE(t,e,r,n=[]){let i=t.insert("g").attr("class","label").attr("style",n.join("; ")),a=Zt(),s="useHtmlLabels"in e?e.useHtmlLabels:Xs(a.htmlLabels)??!0,l="";"text"in e?l=e.text:l=e.label,!s&&l.startsWith("\\")&&(l=l.substring(1)),Jn(l)&&(s=!0);let u=await Fn(i,G2(ao(l)),{width:xa(l,a)+50,classes:"markdown-node-label",useHtmlLabels:s},a),h,f=1;if(s){let d=u.children[0],p=je(u);f=d.innerHTML.split("
    ").length,d.innerHTML.includes("")&&(f+=d.innerHTML.split("").length-1);let m=d.getElementsByTagName("img");if(m){let g=l.replace(/]*>/g,"").trim()==="";await Promise.all([...m].map(y=>new Promise(v=>{function x(){if(y.style.display="flex",y.style.flexDirection="column",g){let b=a.fontSize?.toString()??window.getComputedStyle(document.body).fontSize,E=parseInt(b,10)*5+"px";y.style.minWidth=E,y.style.maxWidth=E}else y.style.width="100%";v(y)}o(x,"setupImage"),setTimeout(()=>{y.complete&&x()}),y.addEventListener("error",x),y.addEventListener("load",x)})))}h=d.getBoundingClientRect(),p.attr("width",h.width),p.attr("height",h.height)}else{n.includes("font-weight: bolder")&&je(u).selectAll("tspan").attr("font-weight",""),f=u.children.length;let d=u.children[0];(u.textContent===""||u.textContent.includes(">"))&&(d.textContent=l[0]+l.substring(1).replaceAll(">",">").replaceAll("<","<").trim(),l[1]===" "&&(d.textContent=d.textContent[0]+" "+d.textContent.substring(1))),d.textContent==="undefined"&&(d.textContent=""),h=u.getBBox()}return i.attr("transform","translate(0,"+(-h.height/(2*f)+r)+")"),h.height}var Hse=O(()=>{"use strict";Ar();$r();$t();ar();jt();co();Ur();o(Wse,"textHelper");o(aE,"addText")});async function Yse(t,e){let r=ve(),n=r.class.padding??12,i=n,a=e.useHtmlLabels??Xs(r.htmlLabels)??!0,s=e;s.annotations=s.annotations??[],s.members=s.members??[],s.methods=s.methods??[];let{shapeSvg:l,bbox:u}=await Wse(t,e,r,a,i),{labelStyles:h,nodeStyles:f}=Ze(e);e.labelStyle=h,e.cssStyles=s.styles||"";let d=s.styles?.join(";")||f||"";e.cssStyles||(e.cssStyles=d.replaceAll("!important","").split(";"));let p=s.members.length===0&&s.methods.length===0&&!r.class?.hideEmptyMembersBox,m=Je.svg(l),g=nt(e,{});e.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let y=u.width,v=u.height;s.members.length===0&&s.methods.length===0?v+=i:s.members.length>0&&s.methods.length===0&&(v+=i*2);let x=-y/2,b=-v/2,T=m.rectangle(x-n,b-n-(p?n:s.members.length===0&&s.methods.length===0?-n/2:0),y+2*n,v+2*n+(p?n*2:s.members.length===0&&s.methods.length===0?-n:0),g),E=l.insert(()=>T,":first-child");E.attr("class","basic label-container");let w=E.node().getBBox();l.selectAll(".text").each((L,I,N)=>{let C=je(N[I]),_=C.attr("transform"),D=0;if(_){let B=RegExp(/translate\(([^,]+),([^)]+)\)/).exec(_);B&&(D=parseFloat(B[2]))}let M=D+b+n-(p?n:s.members.length===0&&s.methods.length===0?-n/2:0);a||(M-=4);let R=x;(C.attr("class").includes("label-group")||C.attr("class").includes("annotation-group"))&&(R=-C.node()?.getBBox().width/2||0,l.selectAll("text").each(function(P,B,F){window.getComputedStyle(F[B]).textAnchor==="middle"&&(R=0)})),C.attr("transform",`translate(${R}, ${M})`)});let k=l.select(".annotation-group").node().getBBox().height-(p?n/2:0)||0,S=l.select(".label-group").node().getBBox().height-(p?n/2:0)||0,A=l.select(".members-group").node().getBBox().height-(p?n/2:0)||0;if(s.members.length>0||s.methods.length>0||p){let L=m.line(w.x,k+S+b+n,w.x+w.width,k+S+b+n,g);l.insert(()=>L).attr("class","divider").attr("style",d)}if(p||s.members.length>0||s.methods.length>0){let L=m.line(w.x,k+S+A+b+i*2+n,w.x+w.width,k+S+A+b+n+i*2,g);l.insert(()=>L).attr("class","divider").attr("style",d)}if(s.look!=="handDrawn"&&l.selectAll("path").attr("style",d),E.select(":nth-child(2)").attr("style",d),l.selectAll(".divider").select("path").attr("style",d),e.labelStyle?l.selectAll("span").attr("style",e.labelStyle):l.selectAll("span").attr("style",d),!a){let L=RegExp(/color\s*:\s*([^;]*)/),I=L.exec(d);if(I){let N=I[0].replace("color","fill");l.selectAll("tspan").attr("style",N)}else if(h){let N=L.exec(h);if(N){let C=N[0].replace("color","fill");l.selectAll("tspan").attr("style",C)}}}return rt(e,E),e.intersect=function(L){return Qe.rect(e,L)},l}var jse=O(()=>{"use strict";$t();jt();Ar();Wt();Ut();Yt();Hse();Ur();o(Yse,"classBox")});async function Xse(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let i=e,a=e,s=20,l=20,u="verifyMethod"in e,h=ht(e),f=t.insert("g").attr("class",h).attr("id",e.domId??e.id),d;u?d=await Rh(f,`<<${i.type}>>`,0,e.labelStyle):d=await Rh(f,"<<Element>>",0,e.labelStyle);let p=d,m=await Rh(f,i.name,p,e.labelStyle+"; font-weight: bold;");if(p+=m+l,u){let k=await Rh(f,`${i.requirementId?`ID: ${i.requirementId}`:""}`,p,e.labelStyle);p+=k;let S=await Rh(f,`${i.text?`Text: ${i.text}`:""}`,p,e.labelStyle);p+=S;let A=await Rh(f,`${i.risk?`Risk: ${i.risk}`:""}`,p,e.labelStyle);p+=A,await Rh(f,`${i.verifyMethod?`Verification: ${i.verifyMethod}`:""}`,p,e.labelStyle)}else{let k=await Rh(f,`${a.type?`Type: ${a.type}`:""}`,p,e.labelStyle);p+=k,await Rh(f,`${a.docRef?`Doc Ref: ${a.docRef}`:""}`,p,e.labelStyle)}let g=(f.node()?.getBBox().width??200)+s,y=(f.node()?.getBBox().height??200)+s,v=-g/2,x=-y/2,b=Je.svg(f),T=nt(e,{});e.look!=="handDrawn"&&(T.roughness=0,T.fillStyle="solid");let E=b.rectangle(v,x,g,y,T),w=f.insert(()=>E,":first-child");if(w.attr("class","basic label-container").attr("style",n),f.selectAll(".label").each((k,S,A)=>{let L=je(A[S]),I=L.attr("transform"),N=0,C=0;if(I){let R=RegExp(/translate\(([^,]+),([^)]+)\)/).exec(I);R&&(N=parseFloat(R[1]),C=parseFloat(R[2]))}let _=C-y/2,D=v+s/2;(S===0||S===1)&&(D=N),L.attr("transform",`translate(${D}, ${_+s})`)}),p>d+m+l){let k=b.line(v,x+d+m+l,v+g,x+d+m+l,T);f.insert(()=>k).attr("style",n)}return rt(e,w),e.intersect=function(k){return Qe.rect(e,k)},f}async function Rh(t,e,r,n=""){if(e==="")return 0;let i=t.insert("g").attr("class","label").attr("style",n),a=ve(),s=a.htmlLabels??!0,l=await Fn(i,G2(ao(e)),{width:xa(e,a)+50,classes:"markdown-node-label",useHtmlLabels:s,style:n},a),u;if(s){let h=l.children[0],f=je(l);u=h.getBoundingClientRect(),f.attr("width",u.width),f.attr("height",u.height)}else{let h=l.children[0];for(let f of h.children)f.textContent=f.textContent.replaceAll(">",">").replaceAll("<","<"),n&&f.setAttribute("style",n);u=l.getBBox(),u.height+=6}return i.attr("transform",`translate(${-u.width/2},${-u.height/2+r})`),u.height}var Kse=O(()=>{"use strict";$t();Yt();Ut();Wt();ar();jt();co();Ar();o(Xse,"requirementBox");o(Rh,"addText")});async function Qse(t,e,{config:r}){let{labelStyles:n,nodeStyles:i}=Ze(e);e.labelStyle=n||"";let a=10,s=e.width;e.width=(e.width??200)-10;let{shapeSvg:l,bbox:u,label:h}=await pt(t,e,ht(e)),f=e.padding||10,d="",p;"ticket"in e&&e.ticket&&r?.kanban?.ticketBaseUrl&&(d=r?.kanban?.ticketBaseUrl.replace("#TICKET#",e.ticket),p=l.insert("svg:a",":first-child").attr("class","kanban-ticket-link").attr("xlink:href",d).attr("target","_blank"));let m={useHtmlLabels:e.useHtmlLabels,labelStyle:e.labelStyle||"",width:e.width,img:e.img,padding:e.padding||8,centerLabel:!1},g,y;p?{label:g,bbox:y}=await Hk(p,"ticket"in e&&e.ticket||"",m):{label:g,bbox:y}=await Hk(l,"ticket"in e&&e.ticket||"",m);let{label:v,bbox:x}=await Hk(l,"assigned"in e&&e.assigned||"",m);e.width=s;let b=10,T=e?.width||0,E=Math.max(y.height,x.height)/2,w=Math.max(u.height+b*2,e?.height||0)+E,k=-T/2,S=-w/2;h.attr("transform","translate("+(f-T/2)+", "+(-E-u.height/2)+")"),g.attr("transform","translate("+(f-T/2)+", "+(-E+u.height/2)+")"),v.attr("transform","translate("+(f+T/2-x.width-2*a)+", "+(-E+u.height/2)+")");let A,{rx:L,ry:I}=e,{cssStyles:N}=e;if(e.look==="handDrawn"){let C=Je.svg(l),_=nt(e,{}),D=L||I?C.path(ho(k,S,T,w,L||0),_):C.rectangle(k,S,T,w,_);A=l.insert(()=>D,":first-child"),A.attr("class","basic label-container").attr("style",N||null)}else{A=l.insert("rect",":first-child"),A.attr("class","basic label-container __APA__").attr("style",i).attr("rx",L??5).attr("ry",I??5).attr("x",k).attr("y",S).attr("width",T).attr("height",w);let C="priority"in e&&e.priority;if(C){let _=l.append("line"),D=k+2,M=S+Math.floor((L??0)/2),R=S+w-Math.floor((L??0)/2);_.attr("x1",D).attr("y1",M).attr("x2",D).attr("y2",R).attr("stroke-width","4").attr("stroke",gze(C))}}return rt(e,A),e.height=w,e.intersect=function(C){return Qe.rect(e,C)},l}var gze,Zse=O(()=>{"use strict";$t();Yt();x0();Ut();Wt();gze=o(t=>{switch(t){case"Very High":return"red";case"High":return"orange";case"Medium":return null;case"Low":return"blue";case"Very Low":return"lightblue"}},"colorFromPriority");o(Qse,"kanbanItem")});async function Jse(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,halfPadding:s,label:l}=await pt(t,e,ht(e)),u=a.width+10*s,h=a.height+8*s,f=.15*u,{cssStyles:d}=e,p=a.width+20,m=a.height+20,g=Math.max(u,p),y=Math.max(h,m);l.attr("transform",`translate(${-a.width/2}, ${-a.height/2})`);let v,x=`M0 0 + a${f},${f} 1 0,0 ${g*.25},${-1*y*.1} + a${f},${f} 1 0,0 ${g*.25},0 + a${f},${f} 1 0,0 ${g*.25},0 + a${f},${f} 1 0,0 ${g*.25},${y*.1} + + a${f},${f} 1 0,0 ${g*.15},${y*.33} + a${f*.8},${f*.8} 1 0,0 0,${y*.34} + a${f},${f} 1 0,0 ${-1*g*.15},${y*.33} + + a${f},${f} 1 0,0 ${-1*g*.25},${y*.15} + a${f},${f} 1 0,0 ${-1*g*.25},0 + a${f},${f} 1 0,0 ${-1*g*.25},0 + a${f},${f} 1 0,0 ${-1*g*.25},${-1*y*.15} + + a${f},${f} 1 0,0 ${-1*g*.1},${-1*y*.33} + a${f*.8},${f*.8} 1 0,0 0,${-1*y*.34} + a${f},${f} 1 0,0 ${g*.1},${-1*y*.33} + H0 V0 Z`;if(e.look==="handDrawn"){let b=Je.svg(i),T=nt(e,{}),E=b.path(x,T);v=i.insert(()=>E,":first-child"),v.attr("class","basic label-container").attr("style",Bn(d))}else v=i.insert("path",":first-child").attr("class","basic label-container").attr("style",n).attr("d",x);return v.attr("transform",`translate(${-g/2}, ${-y/2})`),rt(e,v),e.calcIntersect=function(b,T){return Qe.rect(b,T)},e.intersect=function(b){return K.info("Bang intersect",e,b),Qe.rect(e,b)},i}var eoe=O(()=>{"use strict";xt();$t();Yt();Ut();Wt();ar();o(Jse,"bang")});async function toe(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,halfPadding:s,label:l}=await pt(t,e,ht(e)),u=a.width+2*s,h=a.height+2*s,f=.15*u,d=.25*u,p=.35*u,m=.2*u,{cssStyles:g}=e,y,v=`M0 0 + a${f},${f} 0 0,1 ${u*.25},${-1*u*.1} + a${p},${p} 1 0,1 ${u*.4},${-1*u*.1} + a${d},${d} 1 0,1 ${u*.35},${u*.2} + + a${f},${f} 1 0,1 ${u*.15},${h*.35} + a${m},${m} 1 0,1 ${-1*u*.15},${h*.65} + + a${d},${f} 1 0,1 ${-1*u*.25},${u*.15} + a${p},${p} 1 0,1 ${-1*u*.5},0 + a${f},${f} 1 0,1 ${-1*u*.25},${-1*u*.15} + + a${f},${f} 1 0,1 ${-1*u*.1},${-1*h*.35} + a${m},${m} 1 0,1 ${u*.1},${-1*h*.65} + H0 V0 Z`;if(e.look==="handDrawn"){let x=Je.svg(i),b=nt(e,{}),T=x.path(v,b);y=i.insert(()=>T,":first-child"),y.attr("class","basic label-container").attr("style",Bn(g))}else y=i.insert("path",":first-child").attr("class","basic label-container").attr("style",n).attr("d",v);return l.attr("transform",`translate(${-a.width/2}, ${-a.height/2})`),y.attr("transform",`translate(${-u/2}, ${-h/2})`),rt(e,y),e.calcIntersect=function(x,b){return Qe.rect(x,b)},e.intersect=function(x){return K.info("Cloud intersect",e,x),Qe.rect(e,x)},i}var roe=O(()=>{"use strict";Wt();xt();ar();Yt();Ut();$t();o(toe,"cloud")});async function noe(t,e){let{labelStyles:r,nodeStyles:n}=Ze(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,halfPadding:s,label:l}=await pt(t,e,ht(e)),u=a.width+8*s,h=a.height+2*s,f=5,d=` + M${-u/2} ${h/2-f} + v${-h+2*f} + q0,-${f} ${f},-${f} + h${u-2*f} + q${f},0 ${f},${f} + v${h-2*f} + q0,${f} -${f},${f} + h${-u+2*f} + q-${f},0 -${f},-${f} + Z + `,p=i.append("path").attr("id","node-"+e.id).attr("class","node-bkg node-"+e.type).attr("style",n).attr("d",d);return i.append("line").attr("class","node-line-").attr("x1",-u/2).attr("y1",h/2).attr("x2",u/2).attr("y2",h/2),l.attr("transform",`translate(${-a.width/2}, ${-a.height/2})`),i.append(()=>l.node()),rt(e,p),e.calcIntersect=function(m,g){return Qe.rect(m,g)},e.intersect=function(m){return Qe.rect(e,m)},i}var ioe=O(()=>{"use strict";Yt();Ut();$t();o(noe,"defaultMindmapNode")});async function aoe(t,e){let r={padding:e.padding??0};return nE(t,e,r)}var soe=O(()=>{"use strict";MM();o(aoe,"mindmapCircle")});function ooe(t){return t in OM}var yze,vze,OM,PM=O(()=>{"use strict";Vie();Wie();Yie();Xie();MM();Qie();Jie();tae();nae();aae();oae();cae();hae();dae();mae();yae();xae();Tae();kae();Sae();Aae();Dae();Lae();Mae();Oae();Bae();$ae();Gae();qae();Wae();Yae();Xae();Qae();Jae();tse();nse();ase();ose();cse();hse();dse();mse();yse();xse();Tse();kse();Sse();Ase();Dse();Lse();Mse();Ose();Bse();$se();Gse();qse();Use();jse();Kse();Zse();eoe();roe();ioe();soe();yze=[{semanticName:"Process",name:"Rectangle",shortName:"rect",description:"Standard process shape",aliases:["proc","process","rectangle"],internalAliases:["squareRect"],handler:fse},{semanticName:"Event",name:"Rounded Rectangle",shortName:"rounded",description:"Represents an event",aliases:["event"],internalAliases:["roundedRect"],handler:sse},{semanticName:"Terminal Point",name:"Stadium",shortName:"stadium",description:"Terminal point",aliases:["terminal","pill"],handler:pse},{semanticName:"Subprocess",name:"Framed Rectangle",shortName:"fr-rect",description:"Subprocess",aliases:["subprocess","subproc","framed-rectangle","subroutine"],handler:wse},{semanticName:"Database",name:"Cylinder",shortName:"cyl",description:"Database storage",aliases:["db","database","cylinder"],handler:sae},{semanticName:"Start",name:"Circle",shortName:"circle",description:"Starting point",aliases:["circ"],handler:nE},{semanticName:"Bang",name:"Bang",shortName:"bang",description:"Bang",aliases:["bang"],handler:Jse},{semanticName:"Cloud",name:"Cloud",shortName:"cloud",description:"cloud",aliases:["cloud"],handler:toe},{semanticName:"Decision",name:"Diamond",shortName:"diam",description:"Decision-making step",aliases:["decision","diamond","question"],handler:ese},{semanticName:"Prepare Conditional",name:"Hexagon",shortName:"hex",description:"Preparation or condition step",aliases:["hexagon","prepare"],handler:bae},{semanticName:"Data Input/Output",name:"Lean Right",shortName:"lean-r",description:"Represents input or output",aliases:["lean-right","in-out"],internalAliases:["lean_right"],handler:zae},{semanticName:"Data Input/Output",name:"Lean Left",shortName:"lean-l",description:"Represents output or input",aliases:["lean-left","out-in"],internalAliases:["lean_left"],handler:Fae},{semanticName:"Priority Action",name:"Trapezoid Base Bottom",shortName:"trap-b",description:"Priority action",aliases:["priority","trapezoid-bottom","trapezoid"],handler:Nse},{semanticName:"Manual Operation",name:"Trapezoid Base Top",shortName:"trap-t",description:"Represents a manual task",aliases:["manual","trapezoid-top","inv-trapezoid"],internalAliases:["inv_trapezoid"],handler:Iae},{semanticName:"Stop",name:"Double Circle",shortName:"dbl-circ",description:"Represents a stop point",aliases:["double-circle"],internalAliases:["doublecircle"],handler:uae},{semanticName:"Text Block",name:"Text Block",shortName:"text",description:"Text block",handler:_se},{semanticName:"Card",name:"Notched Rectangle",shortName:"notch-rect",description:"Represents a card",aliases:["card","notched-rectangle"],handler:Hie},{semanticName:"Lined/Shaded Process",name:"Lined Rectangle",shortName:"lin-rect",description:"Lined process shape",aliases:["lined-rectangle","lined-process","lin-proc","shaded-process"],handler:lse},{semanticName:"Start",name:"Small Circle",shortName:"sm-circ",description:"Small starting point",aliases:["start","small-circle"],internalAliases:["stateStart"],handler:bse},{semanticName:"Stop",name:"Framed Circle",shortName:"fr-circ",description:"Stop point",aliases:["stop","framed-circle"],internalAliases:["stateEnd"],handler:vse},{semanticName:"Fork/Join",name:"Filled Rectangle",shortName:"fork",description:"Fork or join in process flow",aliases:["join"],internalAliases:["forkJoin"],handler:gae},{semanticName:"Collate",name:"Hourglass",shortName:"hourglass",description:"Represents a collate operation",aliases:["hourglass","collate"],handler:wae},{semanticName:"Comment",name:"Curly Brace",shortName:"brace",description:"Adds a comment",aliases:["comment","brace-l"],handler:Zie},{semanticName:"Comment Right",name:"Curly Brace",shortName:"brace-r",description:"Adds a comment",handler:eae},{semanticName:"Comment with braces on both sides",name:"Curly Braces",shortName:"braces",description:"Adds a comment",handler:rae},{semanticName:"Com Link",name:"Lightning Bolt",shortName:"bolt",description:"Communication link",aliases:["com-link","lightning-bolt"],handler:Vae},{semanticName:"Document",name:"Document",shortName:"doc",description:"Represents a document",aliases:["doc","document"],handler:Fse},{semanticName:"Delay",name:"Half-Rounded Rectangle",shortName:"delay",description:"Represents a delay",aliases:["half-rounded-rectangle"],handler:vae},{semanticName:"Direct Access Storage",name:"Horizontal Cylinder",shortName:"h-cyl",description:"Direct access storage",aliases:["das","horizontal-cylinder"],handler:Rse},{semanticName:"Disk Storage",name:"Lined Cylinder",shortName:"lin-cyl",description:"Disk storage",aliases:["disk","lined-cylinder"],handler:Uae},{semanticName:"Display",name:"Curved Trapezoid",shortName:"curv-trap",description:"Represents a display",aliases:["curved-trapezoid","display"],handler:iae},{semanticName:"Divided Process",name:"Divided Rectangle",shortName:"div-rect",description:"Divided process shape",aliases:["div-proc","divided-rectangle","divided-process"],handler:lae},{semanticName:"Extract",name:"Triangle",shortName:"tri",description:"Extraction process",aliases:["extract","triangle"],handler:Pse},{semanticName:"Internal Storage",name:"Window Pane",shortName:"win-pane",description:"Internal storage",aliases:["internal-storage","window-pane"],handler:Vse},{semanticName:"Junction",name:"Filled Circle",shortName:"f-circ",description:"Junction point",aliases:["junction","filled-circle"],handler:fae},{semanticName:"Loop Limit",name:"Trapezoidal Pentagon",shortName:"notch-pent",description:"Loop limit step",aliases:["loop-limit","notched-pentagon"],handler:Ise},{semanticName:"Manual File",name:"Flipped Triangle",shortName:"flip-tri",description:"Manual file operation",aliases:["manual-file","flipped-triangle"],handler:pae},{semanticName:"Manual Input",name:"Sloped Rectangle",shortName:"sl-rect",description:"Manual input step",aliases:["manual-input","sloped-rectangle"],handler:use},{semanticName:"Multi-Document",name:"Stacked Document",shortName:"docs",description:"Multiple documents",aliases:["documents","st-doc","stacked-document"],handler:Kae},{semanticName:"Multi-Process",name:"Stacked Rectangle",shortName:"st-rect",description:"Multiple processes",aliases:["procs","processes","stacked-rectangle"],handler:jae},{semanticName:"Stored Data",name:"Bow Tie Rectangle",shortName:"bow-rect",description:"Stored data",aliases:["stored-data","bow-tie-rectangle"],handler:Uie},{semanticName:"Summary",name:"Crossed Circle",shortName:"cross-circ",description:"Summary",aliases:["summary","crossed-circle"],handler:Kie},{semanticName:"Tagged Document",name:"Tagged Document",shortName:"tag-doc",description:"Tagged document",aliases:["tag-doc","tagged-document"],handler:Cse},{semanticName:"Tagged Process",name:"Tagged Rectangle",shortName:"tag-rect",description:"Tagged process",aliases:["tagged-rectangle","tag-proc","tagged-process"],handler:Ese},{semanticName:"Paper Tape",name:"Flag",shortName:"flag",description:"Paper tape",aliases:["paper-tape"],handler:zse},{semanticName:"Odd",name:"Odd",shortName:"odd",description:"Odd shape",internalAliases:["rect_left_inv_arrow"],handler:rse},{semanticName:"Lined Document",name:"Lined Document",shortName:"lin-doc",description:"Lined document",aliases:["lined-document"],handler:Hae}],vze=o(()=>{let e=[...Object.entries({state:gse,choice:jie,note:Zae,rectWithTitle:ise,labelRect:Pae,iconSquare:Rae,iconCircle:Cae,icon:Eae,iconRounded:_ae,imageSquare:Nae,anchor:Gie,kanbanItem:Qse,mindmapCircle:aoe,defaultMindmapNode:noe,classBox:Yse,erBox:IM,requirementBox:Xse}),...yze.flatMap(r=>[r.shortName,..."aliases"in r?r.aliases:[],..."internalAliases"in r?r.internalAliases:[]].map(i=>[i,r.handler]))];return Object.fromEntries(e)},"generateShapeMap"),OM=vze();o(ooe,"isValidShape")});var xze,sE,loe=O(()=>{"use strict";Ar();ib();jt();xt();PM();ar();Ur();si();a0();S2();xze="flowchart-",sE=class{constructor(){this.vertexCounter=0;this.config=ve();this.vertices=new Map;this.edges=[];this.classes=new Map;this.subGraphs=[];this.subGraphLookup=new Map;this.tooltips=new Map;this.subCount=0;this.firstGraphFlag=!0;this.secCount=-1;this.posCrossRef=[];this.funs=[];this.setAccTitle=Lr;this.setAccDescription=Pr;this.setDiagramTitle=zr;this.getAccTitle=Or;this.getAccDescription=Br;this.getDiagramTitle=Fr;this.funs.push(this.setupToolTips.bind(this)),this.addVertex=this.addVertex.bind(this),this.firstGraph=this.firstGraph.bind(this),this.setDirection=this.setDirection.bind(this),this.addSubGraph=this.addSubGraph.bind(this),this.addLink=this.addLink.bind(this),this.setLink=this.setLink.bind(this),this.updateLink=this.updateLink.bind(this),this.addClass=this.addClass.bind(this),this.setClass=this.setClass.bind(this),this.destructLink=this.destructLink.bind(this),this.setClickEvent=this.setClickEvent.bind(this),this.setTooltip=this.setTooltip.bind(this),this.updateLinkInterpolate=this.updateLinkInterpolate.bind(this),this.setClickFun=this.setClickFun.bind(this),this.bindFunctions=this.bindFunctions.bind(this),this.lex={firstGraph:this.firstGraph.bind(this)},this.clear(),this.setGen("gen-2")}static{o(this,"FlowDB")}sanitizeText(e){return st.sanitizeText(e,this.config)}sanitizeNodeLabelType(e){switch(e){case"markdown":case"string":case"text":return e;default:return"markdown"}}lookUpDomId(e){for(let r of this.vertices.values())if(r.id===e)return r.domId;return e}addVertex(e,r,n,i,a,s,l={},u){if(!e||e.trim().length===0)return;let h;if(u!==void 0){let m;u.includes(` +`)?m=u+` +`:m=`{ +`+u+` +}`,h=Kf(m,{schema:Xf})}let f=this.edges.find(m=>m.id===e);if(f){let m=h;m?.animate!==void 0&&(f.animate=m.animate),m?.animation!==void 0&&(f.animation=m.animation),m?.curve!==void 0&&(f.interpolate=m.curve);return}let d,p=this.vertices.get(e);if(p===void 0&&(p={id:e,labelType:"text",domId:xze+e+"-"+this.vertexCounter,styles:[],classes:[]},this.vertices.set(e,p)),this.vertexCounter++,r!==void 0?(this.config=ve(),d=this.sanitizeText(r.text.trim()),p.labelType=r.type,d.startsWith('"')&&d.endsWith('"')&&(d=d.substring(1,d.length-1)),p.text=d):p.text===void 0&&(p.text=e),n!==void 0&&(p.type=n),i?.forEach(m=>{p.styles.push(m)}),a?.forEach(m=>{p.classes.push(m)}),s!==void 0&&(p.dir=s),p.props===void 0?p.props=l:l!==void 0&&Object.assign(p.props,l),h!==void 0){if(h.shape){if(h.shape!==h.shape.toLowerCase()||h.shape.includes("_"))throw new Error(`No such shape: ${h.shape}. Shape names should be lowercase.`);if(!ooe(h.shape))throw new Error(`No such shape: ${h.shape}.`);p.type=h?.shape}h?.label&&(p.text=h?.label,p.labelType=this.sanitizeNodeLabelType(h?.labelType)),h?.icon&&(p.icon=h?.icon,!h.label?.trim()&&p.text===e&&(p.text="")),h?.form&&(p.form=h?.form),h?.pos&&(p.pos=h?.pos),h?.img&&(p.img=h?.img,!h.label?.trim()&&p.text===e&&(p.text="")),h?.constraint&&(p.constraint=h.constraint),h.w&&(p.assetWidth=Number(h.w)),h.h&&(p.assetHeight=Number(h.h))}}addSingleLink(e,r,n,i){let l={start:e,end:r,type:void 0,text:"",labelType:"text",classes:[],isUserDefinedId:!1,interpolate:this.edges.defaultInterpolate};K.info("abc78 Got edge...",l);let u=n.text;if(u!==void 0&&(l.text=this.sanitizeText(u.text.trim()),l.text.startsWith('"')&&l.text.endsWith('"')&&(l.text=l.text.substring(1,l.text.length-1)),l.labelType=this.sanitizeNodeLabelType(u.type)),n!==void 0&&(l.type=n.type,l.stroke=n.stroke,l.length=n.length>10?10:n.length),i&&!this.edges.some(h=>h.id===i))l.id=i,l.isUserDefinedId=!0;else{let h=this.edges.filter(f=>f.start===l.start&&f.end===l.end);h.length===0?l.id=hu(l.start,l.end,{counter:0,prefix:"L"}):l.id=hu(l.start,l.end,{counter:h.length+1,prefix:"L"})}if(this.edges.length<(this.config.maxEdges??500))K.info("Pushing edge..."),this.edges.push(l);else throw new Error(`Edge limit exceeded. ${this.edges.length} edges found, but the limit is ${this.config.maxEdges}. + +Initialize mermaid with maxEdges set to a higher number to allow more edges. +You cannot set this config via configuration inside the diagram as it is a secure config. +You have to call mermaid.initialize.`)}isLinkData(e){return e!==null&&typeof e=="object"&&"id"in e&&typeof e.id=="string"}addLink(e,r,n){let i=this.isLinkData(n)?n.id.replace("@",""):void 0;K.info("addLink",e,r,i);for(let a of e)for(let s of r){let l=a===e[e.length-1],u=s===r[0];l&&u?this.addSingleLink(a,s,n,i):this.addSingleLink(a,s,n,void 0)}}updateLinkInterpolate(e,r){e.forEach(n=>{n==="default"?this.edges.defaultInterpolate=r:this.edges[n].interpolate=r})}updateLink(e,r){e.forEach(n=>{if(typeof n=="number"&&n>=this.edges.length)throw new Error(`The index ${n} for linkStyle is out of bounds. Valid indices for linkStyle are between 0 and ${this.edges.length-1}. (Help: Ensure that the index is within the range of existing edges.)`);n==="default"?this.edges.defaultStyle=r:(this.edges[n].style=r,(this.edges[n]?.style?.length??0)>0&&!this.edges[n]?.style?.some(i=>i?.startsWith("fill"))&&this.edges[n]?.style?.push("fill:none"))})}addClass(e,r){let n=r.join().replace(/\\,/g,"\xA7\xA7\xA7").replace(/,/g,";").replace(/§§§/g,",").split(";");e.split(",").forEach(i=>{let a=this.classes.get(i);a===void 0&&(a={id:i,styles:[],textStyles:[]},this.classes.set(i,a)),n?.forEach(s=>{if(/color/.exec(s)){let l=s.replace("fill","bgFill");a.textStyles.push(l)}a.styles.push(s)})})}setDirection(e){this.direction=e.trim(),/.*/.exec(this.direction)&&(this.direction="LR"),/.*v/.exec(this.direction)&&(this.direction="TB"),this.direction==="TD"&&(this.direction="TB")}setClass(e,r){for(let n of e.split(",")){let i=this.vertices.get(n);i&&i.classes.push(r);let a=this.edges.find(l=>l.id===n);a&&a.classes.push(r);let s=this.subGraphLookup.get(n);s&&s.classes.push(r)}}setTooltip(e,r){if(r!==void 0){r=this.sanitizeText(r);for(let n of e.split(","))this.tooltips.set(this.version==="gen-1"?this.lookUpDomId(n):n,r)}}setClickFun(e,r,n){let i=this.lookUpDomId(e);if(ve().securityLevel!=="loose"||r===void 0)return;let a=[];if(typeof n=="string"){a=n.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let l=0;l{let l=document.querySelector(`[id="${i}"]`);l!==null&&l.addEventListener("click",()=>{Xt.runFunc(r,...a)},!1)}))}setLink(e,r,n){e.split(",").forEach(i=>{let a=this.vertices.get(i);a!==void 0&&(a.link=Xt.formatUrl(r,this.config),a.linkTarget=n)}),this.setClass(e,"clickable")}getTooltip(e){return this.tooltips.get(e)}setClickEvent(e,r,n){e.split(",").forEach(i=>{this.setClickFun(i,r,n)}),this.setClass(e,"clickable")}bindFunctions(e){this.funs.forEach(r=>{r(e)})}getDirection(){return this.direction?.trim()}getVertices(){return this.vertices}getEdges(){return this.edges}getClasses(){return this.classes}setupToolTips(e){let r=sk();je(e).select("svg").selectAll("g.node").on("mouseover",a=>{let s=je(a.currentTarget),l=s.attr("title");if(l===null)return;let u=a.currentTarget?.getBoundingClientRect();r.transition().duration(200).style("opacity",".9"),r.text(s.attr("title")).style("left",window.scrollX+u.left+(u.right-u.left)/2+"px").style("top",window.scrollY+u.bottom+"px"),r.html(fl.sanitize(l)),s.classed("hover",!0)}).on("mouseout",a=>{r.transition().duration(500).style("opacity",0),je(a.currentTarget).classed("hover",!1)})}clear(e="gen-2"){this.vertices=new Map,this.classes=new Map,this.edges=[],this.funs=[this.setupToolTips.bind(this)],this.subGraphs=[],this.subGraphLookup=new Map,this.subCount=0,this.tooltips=new Map,this.firstGraphFlag=!0,this.version=e,this.config=ve(),_r()}setGen(e){this.version=e||"gen-2"}defaultStyle(){return"fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;"}addSubGraph(e,r,n){let i=e.text.trim(),a=n.text;e===n&&/\s/.exec(n.text)&&(i=void 0);let l=o(p=>{let m={boolean:{},number:{},string:{}},g=[],y;return{nodeList:p.filter(function(x){let b=typeof x;return x.stmt&&x.stmt==="dir"?(y=x.value,!1):x.trim()===""?!1:b in m?m[b].hasOwnProperty(x)?!1:m[b][x]=!0:g.includes(x)?!1:g.push(x)}),dir:y}},"uniq")(r.flat()),u=l.nodeList,h=l.dir,f=ve().flowchart??{};if(h=h??(f.inheritDir?this.getDirection()??ve().direction??void 0:void 0),this.version==="gen-1")for(let p=0;p2e3)return{result:!1,count:0};if(this.posCrossRef[this.secCount]=r,this.subGraphs[r].id===e)return{result:!0,count:0};let i=0,a=1;for(;i=0){let l=this.indexNodes2(e,s);if(l.result)return{result:!0,count:a+l.count};a=a+l.count}i=i+1}return{result:!1,count:a}}getDepthFirstPos(e){return this.posCrossRef[e]}indexNodes(){this.secCount=-1,this.subGraphs.length>0&&this.indexNodes2("none",this.subGraphs.length-1)}getSubGraphs(){return this.subGraphs}firstGraph(){return this.firstGraphFlag?(this.firstGraphFlag=!1,!0):!1}destructStartLink(e){let r=e.trim(),n="arrow_open";switch(r[0]){case"<":n="arrow_point",r=r.slice(1);break;case"x":n="arrow_cross",r=r.slice(1);break;case"o":n="arrow_circle",r=r.slice(1);break}let i="normal";return r.includes("=")&&(i="thick"),r.includes(".")&&(i="dotted"),{type:n,stroke:i}}countChar(e,r){let n=r.length,i=0;for(let a=0;a":i="arrow_point",r.startsWith("<")&&(i="double_"+i,n=n.slice(1));break;case"o":i="arrow_circle",r.startsWith("o")&&(i="double_"+i,n=n.slice(1));break}let a="normal",s=n.length-1;n.startsWith("=")&&(a="thick"),n.startsWith("~")&&(a="invisible");let l=this.countChar(".",n);return l&&(a="dotted",s=l),{type:i,stroke:a,length:s}}destructLink(e,r){let n=this.destructEndLink(e),i;if(r){if(i=this.destructStartLink(r),i.stroke!==n.stroke)return{type:"INVALID",stroke:"INVALID"};if(i.type==="arrow_open")i.type=n.type;else{if(i.type!==n.type)return{type:"INVALID",stroke:"INVALID"};i.type="double_"+i.type}return i.type==="double_arrow"&&(i.type="double_arrow_point"),i.length=n.length,i}return n}exists(e,r){for(let n of e)if(n.nodes.includes(r))return!0;return!1}makeUniq(e,r){let n=[];return e.nodes.forEach((i,a)=>{this.exists(r,i)||n.push(e.nodes[a])}),{nodes:n}}getTypeFromVertex(e){if(e.img)return"imageSquare";if(e.icon)return e.form==="circle"?"iconCircle":e.form==="square"?"iconSquare":e.form==="rounded"?"iconRounded":"icon";switch(e.type){case"square":case void 0:return"squareRect";case"round":return"roundedRect";case"ellipse":return"ellipse";default:return e.type}}findNode(e,r){return e.find(n=>n.id===r)}destructEdgeType(e){let r="none",n="arrow_point";switch(e){case"arrow_point":case"arrow_circle":case"arrow_cross":n=e;break;case"double_arrow_point":case"double_arrow_circle":case"double_arrow_cross":r=e.replace("double_",""),n=r;break}return{arrowTypeStart:r,arrowTypeEnd:n}}addNodeFromVertex(e,r,n,i,a,s){let l=n.get(e.id),u=i.get(e.id)??!1,h=this.findNode(r,e.id);if(h)h.cssStyles=e.styles,h.cssCompiledStyles=this.getCompiledStyles(e.classes),h.cssClasses=e.classes.join(" ");else{let f={id:e.id,label:e.text,labelType:e.labelType,labelStyle:"",parentId:l,padding:a.flowchart?.padding||8,cssStyles:e.styles,cssCompiledStyles:this.getCompiledStyles(["default","node",...e.classes]),cssClasses:"default "+e.classes.join(" "),dir:e.dir,domId:e.domId,look:s,link:e.link,linkTarget:e.linkTarget,tooltip:this.getTooltip(e.id),icon:e.icon,pos:e.pos,img:e.img,assetWidth:e.assetWidth,assetHeight:e.assetHeight,constraint:e.constraint};u?r.push({...f,isGroup:!0,shape:"rect"}):r.push({...f,isGroup:!1,shape:this.getTypeFromVertex(e)})}}getCompiledStyles(e){let r=[];for(let n of e){let i=this.classes.get(n);i?.styles&&(r=[...r,...i.styles??[]].map(a=>a.trim())),i?.textStyles&&(r=[...r,...i.textStyles??[]].map(a=>a.trim()))}return r}getData(){let e=ve(),r=[],n=[],i=this.getSubGraphs(),a=new Map,s=new Map;for(let h=i.length-1;h>=0;h--){let f=i[h];f.nodes.length>0&&s.set(f.id,!0);for(let d of f.nodes)a.set(d,f.id)}for(let h=i.length-1;h>=0;h--){let f=i[h];r.push({id:f.id,label:f.title,labelStyle:"",labelType:f.labelType,parentId:a.get(f.id),padding:8,cssCompiledStyles:this.getCompiledStyles(f.classes),cssClasses:f.classes.join(" "),shape:"rect",dir:f.dir,isGroup:!0,look:e.look})}this.getVertices().forEach(h=>{this.addNodeFromVertex(h,r,a,s,e,e.look||"classic")});let u=this.getEdges();return u.forEach((h,f)=>{let{arrowTypeStart:d,arrowTypeEnd:p}=this.destructEdgeType(h.type),m=[...u.defaultStyle??[]];h.style&&m.push(...h.style);let g={id:hu(h.start,h.end,{counter:f,prefix:"L"},h.id),isUserDefinedId:h.isUserDefinedId,start:h.start,end:h.end,type:h.type??"normal",label:h.text,labelType:h.labelType,labelpos:"c",thickness:h.stroke,minlen:h.length,classes:h?.stroke==="invisible"?"":"edge-thickness-normal edge-pattern-solid flowchart-link",arrowTypeStart:h?.stroke==="invisible"||h?.type==="arrow_open"?"none":d,arrowTypeEnd:h?.stroke==="invisible"||h?.type==="arrow_open"?"none":p,arrowheadStyle:"fill: #333",cssCompiledStyles:this.getCompiledStyles(h.classes),labelStyle:m,style:m,pattern:h.stroke,look:e.look,animate:h.animate,animation:h.animation,curve:h.interpolate||this.edges.defaultInterpolate||e.flowchart?.curve};n.push(g)}),{nodes:r,edges:n,other:{},config:e}}defaultConfig(){return Fw.flowchart}}});var Sl,b0=O(()=>{"use strict";Ar();Sl=o((t,e)=>{let r;return e==="sandbox"&&(r=je("#i"+t)),(e==="sandbox"?je(r.nodes()[0].contentDocument.body):je("body")).select(`[id="${t}"]`)},"getDiagramElement")});var Lh,gb=O(()=>{"use strict";Lh=o(({flowchart:t})=>{let e=t?.subGraphTitleMargin?.top??0,r=t?.subGraphTitleMargin?.bottom??0,n=e+r;return{subGraphTitleTopMargin:e,subGraphTitleBottomMargin:r,subGraphTitleTotalMargin:n}},"getSubGraphTitleMargins")});var coe,bze,Tze,wze,kze,Eze,Sze,uoe,g1,hoe,oE=O(()=>{"use strict";jt();$r();xt();gb();Ar();Wt();co();mM();iE();x0();Ut();coe=o(async(t,e)=>{K.info("Creating subgraph rect for ",e.id,e);let r=ve(),{themeVariables:n,handDrawnSeed:i}=r,{clusterBkg:a,clusterBorder:s}=n,{labelStyles:l,nodeStyles:u,borderStyles:h,backgroundStyles:f}=Ze(e),d=t.insert("g").attr("class","cluster "+e.cssClasses).attr("id",e.id).attr("data-look",e.look),p=Sr(r),m=d.insert("g").attr("class","cluster-label "),g;e.labelType==="markdown"?g=await Fn(m,e.label,{style:e.labelStyle,useHtmlLabels:p,isNode:!0,width:e.width}):g=await yc(m,e.label,e.labelStyle||"",!1,!0);let y=g.getBBox();if(Sr(r)){let S=g.children[0],A=je(g);y=S.getBoundingClientRect(),A.attr("width",y.width),A.attr("height",y.height)}let v=e.width<=y.width+e.padding?y.width+e.padding:e.width;e.width<=y.width+e.padding?e.diff=(v-e.width)/2-e.padding:e.diff=-e.padding;let x=e.height,b=e.x-v/2,T=e.y-x/2;K.trace("Data ",e,JSON.stringify(e));let E;if(e.look==="handDrawn"){let S=Je.svg(d),A=nt(e,{roughness:.7,fill:a,stroke:s,fillWeight:3,seed:i}),L=S.path(ho(b,T,v,x,0),A);E=d.insert(()=>(K.debug("Rough node insert CXC",L),L),":first-child"),E.select("path:nth-child(2)").attr("style",h.join(";")),E.select("path").attr("style",f.join(";").replace("fill","stroke"))}else E=d.insert("rect",":first-child"),E.attr("style",u).attr("rx",e.rx).attr("ry",e.ry).attr("x",b).attr("y",T).attr("width",v).attr("height",x);let{subGraphTitleTopMargin:w}=Lh(r);if(m.attr("transform",`translate(${e.x-y.width/2}, ${e.y-e.height/2+w})`),l){let S=m.select("span");S&&S.attr("style",l)}let k=E.node().getBBox();return e.offsetX=0,e.width=k.width,e.height=k.height,e.offsetY=y.height-e.padding/2,e.intersect=function(S){return Qf(e,S)},{cluster:d,labelBBox:y}},"rect"),bze=o((t,e)=>{let r=t.insert("g").attr("class","note-cluster").attr("id",e.id),n=r.insert("rect",":first-child"),i=0*e.padding,a=i/2;n.attr("rx",e.rx).attr("ry",e.ry).attr("x",e.x-e.width/2-a).attr("y",e.y-e.height/2-a).attr("width",e.width+i).attr("height",e.height+i).attr("fill","none");let s=n.node().getBBox();return e.width=s.width,e.height=s.height,e.intersect=function(l){return Qf(e,l)},{cluster:r,labelBBox:{width:0,height:0}}},"noteGroup"),Tze=o(async(t,e)=>{let r=ve(),{themeVariables:n,handDrawnSeed:i}=r,{altBackground:a,compositeBackground:s,compositeTitleBackground:l,nodeBorder:u}=n,h=t.insert("g").attr("class",e.cssClasses).attr("id",e.id).attr("data-id",e.id).attr("data-look",e.look),f=h.insert("g",":first-child"),d=h.insert("g").attr("class","cluster-label"),p=h.append("rect"),m=await yc(d,e.label,e.labelStyle,void 0,!0),g=m.getBBox();if(Sr(r)){let L=m.children[0],I=je(m);g=L.getBoundingClientRect(),I.attr("width",g.width),I.attr("height",g.height)}let y=0*e.padding,v=y/2,x=(e.width<=g.width+e.padding?g.width+e.padding:e.width)+y;e.width<=g.width+e.padding?e.diff=(x-e.width)/2-e.padding:e.diff=-e.padding;let b=e.height+y,T=e.height+y-g.height-6,E=e.x-x/2,w=e.y-b/2;e.width=x;let k=e.y-e.height/2-v+g.height+2,S;if(e.look==="handDrawn"){let L=e.cssClasses.includes("statediagram-cluster-alt"),I=Je.svg(h),N=e.rx||e.ry?I.path(ho(E,w,x,b,10),{roughness:.7,fill:l,fillStyle:"solid",stroke:u,seed:i}):I.rectangle(E,w,x,b,{seed:i});S=h.insert(()=>N,":first-child");let C=I.rectangle(E,k,x,T,{fill:L?a:s,fillStyle:L?"hachure":"solid",stroke:u,seed:i});S=h.insert(()=>N,":first-child"),p=h.insert(()=>C)}else S=f.insert("rect",":first-child"),S.attr("class","outer").attr("x",E).attr("y",w).attr("width",x).attr("height",b).attr("data-look",e.look),p.attr("class","inner").attr("x",E).attr("y",k).attr("width",x).attr("height",T);d.attr("transform",`translate(${e.x-g.width/2}, ${w+1-(Sr(r)?0:3)})`);let A=S.node().getBBox();return e.height=A.height,e.offsetX=0,e.offsetY=g.height-e.padding/2,e.labelBBox=g,e.intersect=function(L){return Qf(e,L)},{cluster:h,labelBBox:g}},"roundedWithTitle"),wze=o(async(t,e)=>{K.info("Creating subgraph rect for ",e.id,e);let r=ve(),{themeVariables:n,handDrawnSeed:i}=r,{clusterBkg:a,clusterBorder:s}=n,{labelStyles:l,nodeStyles:u,borderStyles:h,backgroundStyles:f}=Ze(e),d=t.insert("g").attr("class","cluster "+e.cssClasses).attr("id",e.id).attr("data-look",e.look),p=Sr(r),m=d.insert("g").attr("class","cluster-label "),g=await Fn(m,e.label,{style:e.labelStyle,useHtmlLabels:p,isNode:!0,width:e.width}),y=g.getBBox();if(Sr(r)){let S=g.children[0],A=je(g);y=S.getBoundingClientRect(),A.attr("width",y.width),A.attr("height",y.height)}let v=e.width<=y.width+e.padding?y.width+e.padding:e.width;e.width<=y.width+e.padding?e.diff=(v-e.width)/2-e.padding:e.diff=-e.padding;let x=e.height,b=e.x-v/2,T=e.y-x/2;K.trace("Data ",e,JSON.stringify(e));let E;if(e.look==="handDrawn"){let S=Je.svg(d),A=nt(e,{roughness:.7,fill:a,stroke:s,fillWeight:4,seed:i}),L=S.path(ho(b,T,v,x,e.rx),A);E=d.insert(()=>(K.debug("Rough node insert CXC",L),L),":first-child"),E.select("path:nth-child(2)").attr("style",h.join(";")),E.select("path").attr("style",f.join(";").replace("fill","stroke"))}else E=d.insert("rect",":first-child"),E.attr("style",u).attr("rx",e.rx).attr("ry",e.ry).attr("x",b).attr("y",T).attr("width",v).attr("height",x);let{subGraphTitleTopMargin:w}=Lh(r);if(m.attr("transform",`translate(${e.x-y.width/2}, ${e.y-e.height/2+w})`),l){let S=m.select("span");S&&S.attr("style",l)}let k=E.node().getBBox();return e.offsetX=0,e.width=k.width,e.height=k.height,e.offsetY=y.height-e.padding/2,e.intersect=function(S){return Qf(e,S)},{cluster:d,labelBBox:y}},"kanbanSection"),kze=o((t,e)=>{let r=ve(),{themeVariables:n,handDrawnSeed:i}=r,{nodeBorder:a}=n,s=t.insert("g").attr("class",e.cssClasses).attr("id",e.id).attr("data-look",e.look),l=s.insert("g",":first-child"),u=0*e.padding,h=e.width+u;e.diff=-e.padding;let f=e.height+u,d=e.x-h/2,p=e.y-f/2;e.width=h;let m;if(e.look==="handDrawn"){let v=Je.svg(s).rectangle(d,p,h,f,{fill:"lightgrey",roughness:.5,strokeLineDash:[5],stroke:a,seed:i});m=s.insert(()=>v,":first-child")}else m=l.insert("rect",":first-child"),m.attr("class","divider").attr("x",d).attr("y",p).attr("width",h).attr("height",f).attr("data-look",e.look);let g=m.node().getBBox();return e.height=g.height,e.offsetX=0,e.offsetY=0,e.intersect=function(y){return Qf(e,y)},{cluster:s,labelBBox:{}}},"divider"),Eze=coe,Sze={rect:coe,squareRect:Eze,roundedWithTitle:Tze,noteGroup:bze,divider:kze,kanbanSection:wze},uoe=new Map,g1=o(async(t,e)=>{let r=e.shape||"rect",n=await Sze[r](t,e);return uoe.set(e.id,n),n},"insertCluster"),hoe=o(()=>{uoe=new Map},"clear")});var Cl,BM=O(()=>{"use strict";Cl=o((t,e)=>{if(e)return"translate("+-t.width/2+", "+-t.height/2+")";let r=t.x??0,n=t.y??0;return"translate("+-(r+t.width/2)+", "+-(n+t.height/2)+")"},"computeLabelTransform")});function lE(t,e){if(t===void 0||e===void 0)return{angle:0,deltaX:0,deltaY:0};t=li(t),e=li(e);let[r,n]=[t.x,t.y],[i,a]=[e.x,e.y],s=i-r,l=a-n;return{angle:Math.atan(l/s),deltaX:s,deltaY:l}}var Ba,FM,li,cE,$M=O(()=>{"use strict";Ba={aggregation:17.25,extension:17.25,composition:17.25,dependency:6,lollipop:13.5,arrow_point:4},FM={arrow_point:9,arrow_cross:12.5,arrow_circle:12.5};o(lE,"calculateDeltaAndAngle");li=o(t=>Array.isArray(t)?{x:t[0],y:t[1]}:t,"pointTransformer"),cE=o(t=>({x:o(function(e,r,n){let i=0,a=li(n[0]).x=0?1:-1)}else if(r===n.length-1&&Object.hasOwn(Ba,t.arrowTypeEnd)){let{angle:m,deltaX:g}=lE(n[n.length-1],n[n.length-2]);i=Ba[t.arrowTypeEnd]*Math.cos(m)*(g>=0?1:-1)}let s=Math.abs(li(e).x-li(n[n.length-1]).x),l=Math.abs(li(e).y-li(n[n.length-1]).y),u=Math.abs(li(e).x-li(n[0]).x),h=Math.abs(li(e).y-li(n[0]).y),f=Ba[t.arrowTypeStart],d=Ba[t.arrowTypeEnd],p=1;if(s0&&l0&&h=0?1:-1)}else if(r===n.length-1&&Object.hasOwn(Ba,t.arrowTypeEnd)){let{angle:m,deltaY:g}=lE(n[n.length-1],n[n.length-2]);i=Ba[t.arrowTypeEnd]*Math.abs(Math.sin(m))*(g>=0?1:-1)}let s=Math.abs(li(e).y-li(n[n.length-1]).y),l=Math.abs(li(e).x-li(n[n.length-1]).x),u=Math.abs(li(e).y-li(n[0]).y),h=Math.abs(li(e).x-li(n[0]).x),f=Ba[t.arrowTypeStart],d=Ba[t.arrowTypeEnd],p=1;if(s0&&l0&&h{"use strict";xt();doe=o((t,e,r,n,i,a)=>{e.arrowTypeStart&&foe(t,"start",e.arrowTypeStart,r,n,i,a),e.arrowTypeEnd&&foe(t,"end",e.arrowTypeEnd,r,n,i,a)},"addEdgeMarkers"),Cze={arrow_cross:{type:"cross",fill:!1},arrow_point:{type:"point",fill:!0},arrow_barb:{type:"barb",fill:!0},arrow_circle:{type:"circle",fill:!1},aggregation:{type:"aggregation",fill:!1},extension:{type:"extension",fill:!1},composition:{type:"composition",fill:!0},dependency:{type:"dependency",fill:!0},lollipop:{type:"lollipop",fill:!1},only_one:{type:"onlyOne",fill:!1},zero_or_one:{type:"zeroOrOne",fill:!1},one_or_more:{type:"oneOrMore",fill:!1},zero_or_more:{type:"zeroOrMore",fill:!1},requirement_arrow:{type:"requirement_arrow",fill:!1},requirement_contains:{type:"requirement_contains",fill:!1}},foe=o((t,e,r,n,i,a,s)=>{let l=Cze[r];if(!l){K.warn(`Unknown arrow type: ${r}`);return}let u=l.type,f=`${i}_${a}-${u}${e==="start"?"Start":"End"}`;if(s&&s.trim()!==""){let d=s.replace(/[^\dA-Za-z]/g,"_"),p=`${f}_${d}`;if(!document.getElementById(p)){let m=document.getElementById(f);if(m){let g=m.cloneNode(!0);g.id=p,g.querySelectorAll("path, circle, line").forEach(v=>{v.setAttribute("stroke",s),l.fill&&v.setAttribute("fill",s)}),m.parentNode?.appendChild(g)}}t.attr(`marker-${e}`,`url(${n}#${p})`)}else t.attr(`marker-${e}`,`url(${n}#${f})`)},"addEdgeMarker")});function uE(t,e){Sr(ve())&&t&&(t.style.width=e.length*9+"px",t.style.height="12px")}function Rze(t){let e=[],r=[];for(let n=1;n5&&Math.abs(a.y-i.y)>5||i.y===a.y&&a.x===s.x&&Math.abs(a.x-i.x)>5&&Math.abs(a.y-s.y)>5)&&(e.push(a),r.push(n))}return{cornerPoints:e,cornerPointPositions:r}}function Mze(t,e){if(t.length<2)return"";let r="",n=t.length,i=1e-5;for(let a=0;a({...i}));if(t.length>=2&&Ba[e.arrowTypeStart]){let i=Ba[e.arrowTypeStart],a=t[0],s=t[1],{angle:l}=yoe(a,s),u=i*Math.cos(l),h=i*Math.sin(l);r[0].x=a.x+u,r[0].y=a.y+h}let n=t.length;if(n>=2&&Ba[e.arrowTypeEnd]){let i=Ba[e.arrowTypeEnd],a=t[n-1],s=t[n-2],{angle:l}=yoe(s,a),u=i*Math.cos(l),h=i*Math.sin(l);r[n-1].x=a.x-u,r[n-1].y=a.y-h}return r}var Aze,hE,Fa,voe,yb,fE,dE,_ze,Dze,moe,goe,Lze,Nze,pE,zM=O(()=>{"use strict";jt();$r();xt();co();BM();ar();$M();gb();Ar();Wt();iE();poe();Ut();Aze=o(t=>typeof t=="string"?t:ve()?.flowchart?.curve,"resolveEdgeCurveType"),hE=new Map,Fa=new Map,voe=o(()=>{hE.clear(),Fa.clear()},"clear"),yb=o(t=>t?typeof t=="string"?t:t.reduce((e,r)=>e+";"+r,""):"","getLabelStyles"),fE=o(async(t,e)=>{let r=ve(),n=Sr(r),{labelStyles:i}=Ze(e);e.labelStyle=i;let a=t.insert("g").attr("class","edgeLabel"),s=a.insert("g").attr("class","label").attr("data-id",e.id),l=e.labelType==="markdown",h=await Fn(t,e.label,{style:yb(e.labelStyle),useHtmlLabels:n,addSvgBackground:!0,isNode:!1,markdown:l,width:l?void 0:void 0},r);s.node().appendChild(h),K.info("abc82",e,e.labelType);let f=h.getBBox(),d=f;if(n){let m=h.children[0],g=je(h);f=m.getBoundingClientRect(),d=f,g.attr("width",f.width),g.attr("height",f.height)}else{let m=je(h).select("text").node();m&&typeof m.getBBox=="function"&&(d=m.getBBox())}s.attr("transform",Cl(d,n)),hE.set(e.id,a),e.width=f.width,e.height=f.height;let p;if(e.startLabelLeft){let m=t.insert("g").attr("class","edgeTerminals"),g=m.insert("g").attr("class","inner"),y=await yc(g,e.startLabelLeft,yb(e.labelStyle)||"",!1,!1);p=y;let v=y.getBBox();if(n){let x=y.children[0],b=je(y);v=x.getBoundingClientRect(),b.attr("width",v.width),b.attr("height",v.height)}g.attr("transform",Cl(v,n)),Fa.get(e.id)||Fa.set(e.id,{}),Fa.get(e.id).startLeft=m,uE(p,e.startLabelLeft)}if(e.startLabelRight){let m=t.insert("g").attr("class","edgeTerminals"),g=m.insert("g").attr("class","inner"),y=await yc(g,e.startLabelRight,yb(e.labelStyle)||"",!1,!1);p=y,g.node().appendChild(y);let v=y.getBBox();if(n){let x=y.children[0],b=je(y);v=x.getBoundingClientRect(),b.attr("width",v.width),b.attr("height",v.height)}g.attr("transform",Cl(v,n)),Fa.get(e.id)||Fa.set(e.id,{}),Fa.get(e.id).startRight=m,uE(p,e.startLabelRight)}if(e.endLabelLeft){let m=t.insert("g").attr("class","edgeTerminals"),g=m.insert("g").attr("class","inner"),y=await yc(g,e.endLabelLeft,yb(e.labelStyle)||"",!1,!1);p=y;let v=y.getBBox();if(n){let x=y.children[0],b=je(y);v=x.getBoundingClientRect(),b.attr("width",v.width),b.attr("height",v.height)}g.attr("transform",Cl(v,n)),m.node().appendChild(y),Fa.get(e.id)||Fa.set(e.id,{}),Fa.get(e.id).endLeft=m,uE(p,e.endLabelLeft)}if(e.endLabelRight){let m=t.insert("g").attr("class","edgeTerminals"),g=m.insert("g").attr("class","inner"),y=await yc(g,e.endLabelRight,yb(e.labelStyle)||"",!1,!1);p=y;let v=y.getBBox();if(n){let x=y.children[0],b=je(y);v=x.getBoundingClientRect(),b.attr("width",v.width),b.attr("height",v.height)}g.attr("transform",Cl(v,n)),m.node().appendChild(y),Fa.get(e.id)||Fa.set(e.id,{}),Fa.get(e.id).endRight=m,uE(p,e.endLabelRight)}return h},"insertEdgeLabel");o(uE,"setTerminalWidth");dE=o((t,e)=>{K.debug("Moving label abc88 ",t.id,t.label,hE.get(t.id),e);let r=e.updatedPath?e.updatedPath:e.originalPath,n=ve(),{subGraphTitleTotalMargin:i}=Lh(n);if(t.label){let a=hE.get(t.id),s=t.x,l=t.y;if(r){let u=Xt.calcLabelPosition(r);K.debug("Moving label "+t.label+" from (",s,",",l,") to (",u.x,",",u.y,") abc88"),e.updatedPath&&(s=u.x,l=u.y)}a.attr("transform",`translate(${s}, ${l+i/2})`)}if(t.startLabelLeft){let a=Fa.get(t.id).startLeft,s=t.x,l=t.y;if(r){let u=Xt.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_left",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(t.startLabelRight){let a=Fa.get(t.id).startRight,s=t.x,l=t.y;if(r){let u=Xt.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_right",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(t.endLabelLeft){let a=Fa.get(t.id).endLeft,s=t.x,l=t.y;if(r){let u=Xt.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_left",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(t.endLabelRight){let a=Fa.get(t.id).endRight,s=t.x,l=t.y;if(r){let u=Xt.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_right",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}},"positionEdgeLabel"),_ze=o((t,e)=>{let r=t.x,n=t.y,i=Math.abs(e.x-r),a=Math.abs(e.y-n),s=t.width/2,l=t.height/2;return i>=s||a>=l},"outsideNode"),Dze=o((t,e,r)=>{K.debug(`intersection calc abc89: + outsidePoint: ${JSON.stringify(e)} + insidePoint : ${JSON.stringify(r)} + node : x:${t.x} y:${t.y} w:${t.width} h:${t.height}`);let n=t.x,i=t.y,a=Math.abs(n-r.x),s=t.width/2,l=r.xMath.abs(n-e.x)*u){let d=r.y{K.warn("abc88 cutPathAtIntersect",t,e);let r=[],n=t[0],i=!1;return t.forEach(a=>{if(K.info("abc88 checking point",a,e),!_ze(e,a)&&!i){let s=Dze(e,n,a);K.debug("abc88 inside",a,n,s),K.debug("abc88 intersection",s,e);let l=!1;r.forEach(u=>{l=l||u.x===s.x&&u.y===s.y}),r.some(u=>u.x===s.x&&u.y===s.y)?K.warn("abc88 no intersect",s,r):r.push(s),i=!0}else K.warn("abc88 outside",a,n),n=a,i||r.push(a)}),K.debug("returning points",r),r},"cutPathAtIntersect");o(Rze,"extractCornerPoints");goe=o(function(t,e,r){let n=e.x-t.x,i=e.y-t.y,a=Math.sqrt(n*n+i*i),s=r/a;return{x:e.x-s*n,y:e.y-s*i}},"findAdjacentPoint"),Lze=o(function(t){let{cornerPointPositions:e}=Rze(t),r=[];for(let n=0;n10&&Math.abs(a.y-i.y)>=10){K.debug("Corner point fixing",Math.abs(a.x-i.x),Math.abs(a.y-i.y));let m=5;s.x===l.x?p={x:h<0?l.x-m+d:l.x+m-d,y:f<0?l.y-d:l.y+d}:p={x:h<0?l.x-d:l.x+d,y:f<0?l.y-m+d:l.y+m-d}}else K.debug("Corner point skipping fixing",Math.abs(a.x-i.x),Math.abs(a.y-i.y));r.push(p,u)}else r.push(t[n]);return r},"fixCorners"),Nze=o((t,e,r)=>{let n=t-e-r,i=2,a=2,s=i+a,l=Math.floor(n/s),u=Array(l).fill(`${i} ${a}`).join(" ");return`0 ${e} ${u} ${r}`},"generateDashArray"),pE=o(function(t,e,r,n,i,a,s,l=!1){let{handDrawnSeed:u}=ve(),h=e.points,f=!1,d=i;var p=a;let m=[];for(let R in e.cssCompiledStyles)ub(R)||m.push(e.cssCompiledStyles[R]);K.debug("UIO intersect check",e.points,p.x,d.x),p.intersect&&d.intersect&&!l&&(h=h.slice(1,e.points.length-1),h.unshift(d.intersect(h[0])),K.debug("Last point UIO",e.start,"-->",e.end,h[h.length-1],p,p.intersect(h[h.length-1])),h.push(p.intersect(h[h.length-1])));let g=btoa(JSON.stringify(h));e.toCluster&&(K.info("to cluster abc88",r.get(e.toCluster)),h=moe(e.points,r.get(e.toCluster).node),f=!0),e.fromCluster&&(K.debug("from cluster abc88",r.get(e.fromCluster),JSON.stringify(h,null,2)),h=moe(h.reverse(),r.get(e.fromCluster).node).reverse(),f=!0);let y=h.filter(R=>!Number.isNaN(R.y)),v=Aze(e.curve);v!=="rounded"&&(y=Lze(y));let x=au;switch(v){case"linear":x=au;break;case"basis":x=fc;break;case"cardinal":x=Rx;break;case"bumpX":x=Sx;break;case"bumpY":x=Cx;break;case"catmullRom":x=Mx;break;case"monotoneX":x=Ix;break;case"monotoneY":x=Ox;break;case"natural":x=qg;break;case"step":x=Ug;break;case"stepAfter":x=Bx;break;case"stepBefore":x=Px;break;case"rounded":x=au;break;default:x=fc}let{x:b,y:T}=cE(e),E=hc().x(b).y(T).curve(x),w;switch(e.thickness){case"normal":w="edge-thickness-normal";break;case"thick":w="edge-thickness-thick";break;case"invisible":w="edge-thickness-invisible";break;default:w="edge-thickness-normal"}switch(e.pattern){case"solid":w+=" edge-pattern-solid";break;case"dotted":w+=" edge-pattern-dotted";break;case"dashed":w+=" edge-pattern-dashed";break;default:w+=" edge-pattern-solid"}let k,S=v==="rounded"?Mze(Ize(y,e),5):E(y),A=Array.isArray(e.style)?e.style:[e.style],L=A.find(R=>R?.startsWith("stroke:")),I="";e.animate&&(I="edge-animation-fast"),e.animation&&(I="edge-animation-"+e.animation);let N=!1;if(e.look==="handDrawn"){let R=Je.svg(t);Object.assign([],y);let P=R.path(S,{roughness:.3,seed:u});w+=" transition",k=je(P).select("path").attr("id",e.id).attr("class"," "+w+(e.classes?" "+e.classes:"")+(I?" "+I:"")).attr("style",A?A.reduce((F,G)=>F+";"+G,""):"");let B=k.attr("d");k.attr("d",B),t.node().appendChild(k.node())}else{let R=m.join(";"),P=A?A.reduce((X,Q)=>X+Q+";",""):"",B=(R?R+";"+P+";":P)+";"+(A?A.reduce((X,Q)=>X+";"+Q,""):"");k=t.append("path").attr("d",S).attr("id",e.id).attr("class"," "+w+(e.classes?" "+e.classes:"")+(I?" "+I:"")).attr("style",B),L=B.match(/stroke:([^;]+)/)?.[1],N=e.animate===!0||!!e.animation||R.includes("animation");let F=k.node(),G=typeof F.getTotalLength=="function"?F.getTotalLength():0,$=FM[e.arrowTypeStart]||0,V=FM[e.arrowTypeEnd]||0;if(e.look==="neo"&&!N){let Q=`stroke-dasharray: ${e.pattern==="dotted"||e.pattern==="dashed"?Nze(G,$,V):`0 ${$} ${G-$-V} ${V}`}; stroke-dashoffset: 0;`;k.attr("style",Q+k.attr("style"))}}k.attr("data-edge",!0),k.attr("data-et","edge"),k.attr("data-id",e.id),k.attr("data-points",g),e.showPoints&&y.forEach(R=>{t.append("circle").style("stroke","red").style("fill","red").attr("r",1).attr("cx",R.x).attr("cy",R.y)});let C="";(ve().flowchart.arrowMarkerAbsolute||ve().state.arrowMarkerAbsolute)&&(C=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,C=C.replace(/\(/g,"\\(").replace(/\)/g,"\\)")),K.info("arrowTypeStart",e.arrowTypeStart),K.info("arrowTypeEnd",e.arrowTypeEnd),doe(k,e,C,s,n,L);let _=Math.floor(h.length/2),D=h[_];Xt.isLabelCoordinateInPath(D,k.attr("d"))||(f=!0);let M={};return f&&(M.updatedPath=h),M.originalPath=e.points,M},"insertEdge");o(Mze,"generateRoundedPath");o(yoe,"calculateDeltaAndAngle");o(Ize,"applyMarkerOffsetsToPoints")});var Oze,Pze,Bze,Fze,$ze,zze,Gze,Vze,qze,Uze,Wze,Hze,Yze,jze,Xze,Kze,Qze,mE,GM=O(()=>{"use strict";xt();Oze=o((t,e,r,n)=>{e.forEach(i=>{Qze[i](t,r,n)})},"insertMarkers"),Pze=o((t,e,r)=>{K.trace("Making markers for ",r),t.append("defs").append("marker").attr("id",r+"_"+e+"-extensionStart").attr("class","marker extension "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-extensionEnd").attr("class","marker extension "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")},"extension"),Bze=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-compositionStart").attr("class","marker composition "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-compositionEnd").attr("class","marker composition "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"composition"),Fze=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-aggregationStart").attr("class","marker aggregation "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-aggregationEnd").attr("class","marker aggregation "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"aggregation"),$ze=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-dependencyStart").attr("class","marker dependency "+e).attr("refX",6).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-dependencyEnd").attr("class","marker dependency "+e).attr("refX",13).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"dependency"),zze=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopStart").attr("class","marker lollipop "+e).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6),t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopEnd").attr("class","marker lollipop "+e).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6)},"lollipop"),Gze=o((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-pointEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",8).attr("markerHeight",8).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-pointStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",4.5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",8).attr("markerHeight",8).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"point"),Vze=o((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-circleEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-circleStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"circle"),qze=o((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-crossEnd").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-crossStart").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0")},"cross"),Uze=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","userSpaceOnUse").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},"barb"),Wze=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-onlyOneStart").attr("class","marker onlyOne "+e).attr("refX",0).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("d","M9,0 L9,18 M15,0 L15,18"),t.append("defs").append("marker").attr("id",r+"_"+e+"-onlyOneEnd").attr("class","marker onlyOne "+e).attr("refX",18).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("d","M3,0 L3,18 M9,0 L9,18")},"only_one"),Hze=o((t,e,r)=>{let n=t.append("defs").append("marker").attr("id",r+"_"+e+"-zeroOrOneStart").attr("class","marker zeroOrOne "+e).attr("refX",0).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto");n.append("circle").attr("fill","white").attr("cx",21).attr("cy",9).attr("r",6),n.append("path").attr("d","M9,0 L9,18");let i=t.append("defs").append("marker").attr("id",r+"_"+e+"-zeroOrOneEnd").attr("class","marker zeroOrOne "+e).attr("refX",30).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto");i.append("circle").attr("fill","white").attr("cx",9).attr("cy",9).attr("r",6),i.append("path").attr("d","M21,0 L21,18")},"zero_or_one"),Yze=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-oneOrMoreStart").attr("class","marker oneOrMore "+e).attr("refX",18).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("d","M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27"),t.append("defs").append("marker").attr("id",r+"_"+e+"-oneOrMoreEnd").attr("class","marker oneOrMore "+e).attr("refX",27).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("d","M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18")},"one_or_more"),jze=o((t,e,r)=>{let n=t.append("defs").append("marker").attr("id",r+"_"+e+"-zeroOrMoreStart").attr("class","marker zeroOrMore "+e).attr("refX",18).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto");n.append("circle").attr("fill","white").attr("cx",48).attr("cy",18).attr("r",6),n.append("path").attr("d","M0,18 Q18,0 36,18 Q18,36 0,18");let i=t.append("defs").append("marker").attr("id",r+"_"+e+"-zeroOrMoreEnd").attr("class","marker zeroOrMore "+e).attr("refX",39).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto");i.append("circle").attr("fill","white").attr("cx",9).attr("cy",18).attr("r",6),i.append("path").attr("d","M21,18 Q39,0 57,18 Q39,36 21,18")},"zero_or_more"),Xze=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-requirement_arrowEnd").attr("refX",20).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").append("path").attr("d",`M0,0 + L20,10 + M20,10 + L0,20`)},"requirement_arrow"),Kze=o((t,e,r)=>{let n=t.append("defs").append("marker").attr("id",r+"_"+e+"-requirement_containsStart").attr("refX",0).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").append("g");n.append("circle").attr("cx",10).attr("cy",10).attr("r",9).attr("fill","none"),n.append("line").attr("x1",1).attr("x2",19).attr("y1",10).attr("y2",10),n.append("line").attr("y1",1).attr("y2",19).attr("x1",10).attr("x2",10)},"requirement_contains"),Qze={extension:Pze,composition:Bze,aggregation:Fze,dependency:$ze,lollipop:zze,point:Gze,circle:Vze,cross:qze,barb:Uze,only_one:Wze,zero_or_one:Hze,one_or_more:Yze,zero_or_more:jze,requirement_arrow:Xze,requirement_contains:Kze},mE=Oze});async function y1(t,e,r){let n,i;e.shape==="rect"&&(e.rx&&e.ry?e.shape="roundedRect":e.shape="squareRect");let a=e.shape?OM[e.shape]:void 0;if(!a)throw new Error(`No such shape: ${e.shape}. Please check your syntax.`);if(e.link){let s;r.config.securityLevel==="sandbox"?s="_top":e.linkTarget&&(s=e.linkTarget||"_blank"),n=t.insert("svg:a").attr("xlink:href",e.link).attr("target",s??null),i=await a(n,e,r)}else i=await a(t,e,r),n=i;return e.tooltip&&i.attr("title",e.tooltip),gE.set(e.id,n),e.haveCallback&&n.attr("class",n.attr("class")+" clickable"),n}var gE,xoe,boe,vb,yE=O(()=>{"use strict";xt();PM();gE=new Map;o(y1,"insertNode");xoe=o((t,e)=>{gE.set(e.id,t)},"setNodeElem"),boe=o(()=>{gE.clear()},"clear"),vb=o(t=>{let e=gE.get(t.id);K.trace("Transforming node",t.diff,t,"translate("+(t.x-t.width/2-5)+", "+t.width/2+")");let r=8,n=t.diff||0;return t.clusterNode?e.attr("transform","translate("+(t.x+n-t.width/2)+", "+(t.y-t.height/2-r)+")"):e.attr("transform","translate("+t.x+", "+t.y+")"),n},"positionNode")});var Toe,woe=O(()=>{"use strict";$r();Ur();xt();oE();zM();GM();yE();$t();ar();Toe={common:st,getConfig:Zt,insertCluster:g1,insertEdge:pE,insertEdgeLabel:fE,insertMarkers:mE,insertNode:y1,interpolateToCurve:_N,labelHelper:pt,log:K,positionEdgeLabel:dE}});function Jze(t){return typeof t=="symbol"||wi(t)&&Pa(t)==Zze}var Zze,Ho,T0=O(()=>{"use strict";Th();xl();Zze="[object Symbol]";o(Jze,"isSymbol");Ho=Jze});function eGe(t,e){for(var r=-1,n=t==null?0:t.length,i=Array(n);++r{"use strict";o(eGe,"arrayMap");fo=eGe});function Soe(t){if(typeof t=="string")return t;if(zt(t))return fo(t,Soe)+"";if(Ho(t))return Eoe?Eoe.call(t):"";var e=t+"";return e=="0"&&1/t==-tGe?"-0":e}var tGe,koe,Eoe,Coe,Aoe=O(()=>{"use strict";s0();w0();oi();T0();tGe=1/0,koe=ya?ya.prototype:void 0,Eoe=koe?koe.toString:void 0;o(Soe,"baseToString");Coe=Soe});function nGe(t){for(var e=t.length;e--&&rGe.test(t.charAt(e)););return e}var rGe,_oe,Doe=O(()=>{"use strict";rGe=/\s/;o(nGe,"trimmedEndIndex");_oe=nGe});function aGe(t){return t&&t.slice(0,_oe(t)+1).replace(iGe,"")}var iGe,Roe,Loe=O(()=>{"use strict";Doe();iGe=/^\s+/;o(aGe,"baseTrim");Roe=aGe});function uGe(t){if(typeof t=="number")return t;if(Ho(t))return Noe;if(On(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=On(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=Roe(t);var r=oGe.test(t);return r||lGe.test(t)?cGe(t.slice(2),r?2:8):sGe.test(t)?Noe:+t}var Noe,sGe,oGe,lGe,cGe,Moe,Ioe=O(()=>{"use strict";Loe();Vo();T0();Noe=NaN,sGe=/^[-+]0x[0-9a-f]+$/i,oGe=/^0b[01]+$/i,lGe=/^0o[0-7]+$/i,cGe=parseInt;o(uGe,"toNumber");Moe=uGe});function fGe(t){if(!t)return t===0?t:0;if(t=Moe(t),t===Ooe||t===-Ooe){var e=t<0?-1:1;return e*hGe}return t===t?t:0}var Ooe,hGe,v1,VM=O(()=>{"use strict";Ioe();Ooe=1/0,hGe=17976931348623157e292;o(fGe,"toFinite");v1=fGe});function dGe(t){var e=v1(t),r=e%1;return e===e?r?e-r:e:0}var mu,x1=O(()=>{"use strict";VM();o(dGe,"toInteger");mu=dGe});var pGe,vE,Poe=O(()=>{"use strict";Ff();yl();pGe=ro(Ri,"WeakMap"),vE=pGe});function mGe(){}var ki,qM=O(()=>{"use strict";o(mGe,"noop");ki=mGe});function gGe(t,e){for(var r=-1,n=t==null?0:t.length;++r{"use strict";o(gGe,"arrayEach");xE=gGe});function yGe(t,e,r,n){for(var i=t.length,a=r+(n?1:-1);n?a--:++a{"use strict";o(yGe,"baseFindIndex");bE=yGe});function vGe(t){return t!==t}var Boe,Foe=O(()=>{"use strict";o(vGe,"baseIsNaN");Boe=vGe});function xGe(t,e,r){for(var n=r-1,i=t.length;++n{"use strict";o(xGe,"strictIndexOf");$oe=xGe});function bGe(t,e,r){return e===e?$oe(t,e,r):bE(t,Boe,r)}var b1,TE=O(()=>{"use strict";WM();Foe();zoe();o(bGe,"baseIndexOf");b1=bGe});function TGe(t,e){var r=t==null?0:t.length;return!!r&&b1(t,e,0)>-1}var wE,HM=O(()=>{"use strict";TE();o(TGe,"arrayIncludes");wE=TGe});var wGe,Goe,Voe=O(()=>{"use strict";mN();wGe=yk(Object.keys,Object),Goe=wGe});function SGe(t){if(!lu(t))return Goe(t);var e=[];for(var r in Object(t))EGe.call(t,r)&&r!="constructor"&&e.push(r);return e}var kGe,EGe,T1,kE=O(()=>{"use strict";n1();Voe();kGe=Object.prototype,EGe=kGe.hasOwnProperty;o(SGe,"baseKeys");T1=SGe});function CGe(t){return Li(t)?wk(t):T1(t)}var nn,gu=O(()=>{"use strict";bN();kE();bl();o(CGe,"keys");nn=CGe});var AGe,_Ge,DGe,$a,qoe=O(()=>{"use strict";o1();h0();EN();bl();n1();gu();AGe=Object.prototype,_Ge=AGe.hasOwnProperty,DGe=Sk(function(t,e){if(lu(e)||Li(e)){kl(e,nn(e),t);return}for(var r in e)_Ge.call(e,r)&&cu(t,r,e[r])}),$a=DGe});function NGe(t,e){if(zt(t))return!1;var r=typeof t;return r=="number"||r=="symbol"||r=="boolean"||t==null||Ho(t)?!0:LGe.test(t)||!RGe.test(t)||e!=null&&t in Object(e)}var RGe,LGe,w1,EE=O(()=>{"use strict";oi();T0();RGe=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,LGe=/^\w*$/;o(NGe,"isKey");w1=NGe});function IGe(t){var e=Xg(t,function(n){return r.size===MGe&&r.clear(),n}),r=e.cache;return e}var MGe,Uoe,Woe=O(()=>{"use strict";lN();MGe=500;o(IGe,"memoizeCapped");Uoe=IGe});var OGe,PGe,BGe,Hoe,Yoe=O(()=>{"use strict";Woe();OGe=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,PGe=/\\(\\)?/g,BGe=Uoe(function(t){var e=[];return t.charCodeAt(0)===46&&e.push(""),t.replace(OGe,function(r,n,i,a){e.push(i?a.replace(PGe,"$1"):n||r)}),e}),Hoe=BGe});function FGe(t){return t==null?"":Coe(t)}var SE,YM=O(()=>{"use strict";Aoe();o(FGe,"toString");SE=FGe});function $Ge(t,e){return zt(t)?t:w1(t,e)?[t]:Hoe(SE(t))}var td,xb=O(()=>{"use strict";oi();EE();Yoe();YM();o($Ge,"castPath");td=$Ge});function GGe(t){if(typeof t=="string"||Ho(t))return t;var e=t+"";return e=="0"&&1/t==-zGe?"-0":e}var zGe,yu,k1=O(()=>{"use strict";T0();zGe=1/0;o(GGe,"toKey");yu=GGe});function VGe(t,e){e=td(e,t);for(var r=0,n=e.length;t!=null&&r{"use strict";xb();k1();o(VGe,"baseGet");rd=VGe});function qGe(t,e,r){var n=t==null?void 0:rd(t,e);return n===void 0?r:n}var joe,Xoe=O(()=>{"use strict";bb();o(qGe,"get");joe=qGe});function UGe(t,e){for(var r=-1,n=e.length,i=t.length;++r{"use strict";o(UGe,"arrayPush");E1=UGe});function WGe(t){return zt(t)||pc(t)||!!(Koe&&t&&t[Koe])}var Koe,Qoe,Zoe=O(()=>{"use strict";s0();i1();oi();Koe=ya?ya.isConcatSpreadable:void 0;o(WGe,"isFlattenable");Qoe=WGe});function Joe(t,e,r,n,i){var a=-1,s=t.length;for(r||(r=Qoe),i||(i=[]);++a0&&r(l)?e>1?Joe(l,e-1,r,n,i):E1(i,l):n||(i[i.length]=l)}return i}var vu,S1=O(()=>{"use strict";CE();Zoe();o(Joe,"baseFlatten");vu=Joe});function HGe(t){var e=t==null?0:t.length;return e?vu(t,1):[]}var fn,AE=O(()=>{"use strict";S1();o(HGe,"flatten");fn=HGe});function YGe(t){return Ek(kk(t,void 0,fn),t+"")}var ele,tle=O(()=>{"use strict";AE();TN();kN();o(YGe,"flatRest");ele=YGe});function jGe(t,e,r){var n=-1,i=t.length;e<0&&(e=-e>i?0:i+e),r=r>i?i:r,r<0&&(r+=i),i=e>r?0:r-e>>>0,e>>>=0;for(var a=Array(i);++n{"use strict";o(jGe,"baseSlice");_E=jGe});function nVe(t){return rVe.test(t)}var XGe,KGe,QGe,ZGe,JGe,eVe,tVe,rVe,rle,nle=O(()=>{"use strict";XGe="\\ud800-\\udfff",KGe="\\u0300-\\u036f",QGe="\\ufe20-\\ufe2f",ZGe="\\u20d0-\\u20ff",JGe=KGe+QGe+ZGe,eVe="\\ufe0e\\ufe0f",tVe="\\u200d",rVe=RegExp("["+tVe+XGe+JGe+eVe+"]");o(nVe,"hasUnicode");rle=nVe});function iVe(t,e,r,n){var i=-1,a=t==null?0:t.length;for(n&&a&&(r=t[++i]);++i{"use strict";o(iVe,"arrayReduce");ile=iVe});function aVe(t,e){return t&&kl(e,nn(e),t)}var sle,ole=O(()=>{"use strict";h0();gu();o(aVe,"baseAssign");sle=aVe});function sVe(t,e){return t&&kl(e,no(e),t)}var lle,cle=O(()=>{"use strict";h0();Wf();o(sVe,"baseAssignIn");lle=sVe});function oVe(t,e){for(var r=-1,n=t==null?0:t.length,i=0,a=[];++r{"use strict";o(oVe,"arrayFilter");C1=oVe});function lVe(){return[]}var RE,XM=O(()=>{"use strict";o(lVe,"stubArray");RE=lVe});var cVe,uVe,ule,hVe,A1,LE=O(()=>{"use strict";DE();XM();cVe=Object.prototype,uVe=cVe.propertyIsEnumerable,ule=Object.getOwnPropertySymbols,hVe=ule?function(t){return t==null?[]:(t=Object(t),C1(ule(t),function(e){return uVe.call(t,e)}))}:RE,A1=hVe});function fVe(t,e){return kl(t,A1(t),e)}var hle,fle=O(()=>{"use strict";h0();LE();o(fVe,"copySymbols");hle=fVe});var dVe,pVe,NE,KM=O(()=>{"use strict";CE();vk();LE();XM();dVe=Object.getOwnPropertySymbols,pVe=dVe?function(t){for(var e=[];t;)E1(e,A1(t)),t=r1(t);return e}:RE,NE=pVe});function mVe(t,e){return kl(t,NE(t),e)}var dle,ple=O(()=>{"use strict";h0();KM();o(mVe,"copySymbolsIn");dle=mVe});function gVe(t,e,r){var n=e(t);return zt(t)?n:E1(n,r(t))}var ME,QM=O(()=>{"use strict";CE();oi();o(gVe,"baseGetAllKeys");ME=gVe});function yVe(t){return ME(t,nn,A1)}var Tb,ZM=O(()=>{"use strict";QM();LE();gu();o(yVe,"getAllKeys");Tb=yVe});function vVe(t){return ME(t,no,NE)}var IE,JM=O(()=>{"use strict";QM();KM();Wf();o(vVe,"getAllKeysIn");IE=vVe});var xVe,OE,mle=O(()=>{"use strict";Ff();yl();xVe=ro(Ri,"DataView"),OE=xVe});var bVe,PE,gle=O(()=>{"use strict";Ff();yl();bVe=ro(Ri,"Promise"),PE=bVe});var TVe,nd,eI=O(()=>{"use strict";Ff();yl();TVe=ro(Ri,"Set"),nd=TVe});var yle,wVe,vle,xle,ble,Tle,kVe,EVe,SVe,CVe,AVe,k0,Yo,E0=O(()=>{"use strict";mle();uk();gle();eI();Poe();Th();aN();yle="[object Map]",wVe="[object Object]",vle="[object Promise]",xle="[object Set]",ble="[object WeakMap]",Tle="[object DataView]",kVe=wh(OE),EVe=wh(Gf),SVe=wh(PE),CVe=wh(nd),AVe=wh(vE),k0=Pa;(OE&&k0(new OE(new ArrayBuffer(1)))!=Tle||Gf&&k0(new Gf)!=yle||PE&&k0(PE.resolve())!=vle||nd&&k0(new nd)!=xle||vE&&k0(new vE)!=ble)&&(k0=o(function(t){var e=Pa(t),r=e==wVe?t.constructor:void 0,n=r?wh(r):"";if(n)switch(n){case kVe:return Tle;case EVe:return yle;case SVe:return vle;case CVe:return xle;case AVe:return ble}return e},"getTag"));Yo=k0});function RVe(t){var e=t.length,r=new t.constructor(e);return e&&typeof t[0]=="string"&&DVe.call(t,"index")&&(r.index=t.index,r.input=t.input),r}var _Ve,DVe,wle,kle=O(()=>{"use strict";_Ve=Object.prototype,DVe=_Ve.hasOwnProperty;o(RVe,"initCloneArray");wle=RVe});function LVe(t,e){var r=e?t1(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.byteLength)}var Ele,Sle=O(()=>{"use strict";pk();o(LVe,"cloneDataView");Ele=LVe});function MVe(t){var e=new t.constructor(t.source,NVe.exec(t));return e.lastIndex=t.lastIndex,e}var NVe,Cle,Ale=O(()=>{"use strict";NVe=/\w*$/;o(MVe,"cloneRegExp");Cle=MVe});function IVe(t){return Dle?Object(Dle.call(t)):{}}var _le,Dle,Rle,Lle=O(()=>{"use strict";s0();_le=ya?ya.prototype:void 0,Dle=_le?_le.valueOf:void 0;o(IVe,"cloneSymbol");Rle=IVe});function eqe(t,e,r){var n=t.constructor;switch(e){case qVe:return t1(t);case OVe:case PVe:return new n(+t);case UVe:return Ele(t,r);case WVe:case HVe:case YVe:case jVe:case XVe:case KVe:case QVe:case ZVe:case JVe:return mk(t,r);case BVe:return new n;case FVe:case GVe:return new n(t);case $Ve:return Cle(t);case zVe:return new n;case VVe:return Rle(t)}}var OVe,PVe,BVe,FVe,$Ve,zVe,GVe,VVe,qVe,UVe,WVe,HVe,YVe,jVe,XVe,KVe,QVe,ZVe,JVe,Nle,Mle=O(()=>{"use strict";pk();Sle();Ale();Lle();dN();OVe="[object Boolean]",PVe="[object Date]",BVe="[object Map]",FVe="[object Number]",$Ve="[object RegExp]",zVe="[object Set]",GVe="[object String]",VVe="[object Symbol]",qVe="[object ArrayBuffer]",UVe="[object DataView]",WVe="[object Float32Array]",HVe="[object Float64Array]",YVe="[object Int8Array]",jVe="[object Int16Array]",XVe="[object Int32Array]",KVe="[object Uint8Array]",QVe="[object Uint8ClampedArray]",ZVe="[object Uint16Array]",JVe="[object Uint32Array]";o(eqe,"initCloneByTag");Nle=eqe});function rqe(t){return wi(t)&&Yo(t)==tqe}var tqe,Ile,Ole=O(()=>{"use strict";E0();xl();tqe="[object Map]";o(rqe,"baseIsMap");Ile=rqe});var Ple,nqe,Ble,Fle=O(()=>{"use strict";Ole();u0();jx();Ple=wl&&wl.isMap,nqe=Ple?Tl(Ple):Ile,Ble=nqe});function aqe(t){return wi(t)&&Yo(t)==iqe}var iqe,$le,zle=O(()=>{"use strict";E0();xl();iqe="[object Set]";o(aqe,"baseIsSet");$le=aqe});var Gle,sqe,Vle,qle=O(()=>{"use strict";zle();u0();jx();Gle=wl&&wl.isSet,sqe=Gle?Tl(Gle):$le,Vle=sqe});function BE(t,e,r,n,i,a){var s,l=e&oqe,u=e&lqe,h=e&cqe;if(r&&(s=i?r(t,n,i,a):r(t)),s!==void 0)return s;if(!On(t))return t;var f=zt(t);if(f){if(s=wle(t),!l)return gk(t,s)}else{var d=Yo(t),p=d==Wle||d==pqe;if(mc(t))return dk(t,l);if(d==Hle||d==Ule||p&&!i){if(s=u||p?{}:xk(t),!l)return u?dle(t,lle(s,t)):hle(t,sle(s,t))}else{if(!Un[d])return i?t:{};s=Nle(t,d,l)}}a||(a=new su);var m=a.get(t);if(m)return m;a.set(t,s),Vle(t)?t.forEach(function(v){s.add(BE(v,e,r,v,t,a))}):Ble(t)&&t.forEach(function(v,x){s.set(x,BE(v,e,r,x,t,a))});var g=h?u?IE:Tb:u?no:nn,y=f?void 0:g(t);return xE(y||t,function(v,x){y&&(x=v,v=t[x]),cu(s,x,BE(v,e,r,x,t,a))}),s}var oqe,lqe,cqe,Ule,uqe,hqe,fqe,dqe,Wle,pqe,mqe,gqe,Hle,yqe,vqe,xqe,bqe,Tqe,wqe,kqe,Eqe,Sqe,Cqe,Aqe,_qe,Dqe,Rqe,Lqe,Nqe,Un,FE,tI=O(()=>{"use strict";Wx();UM();o1();ole();cle();hN();pN();fle();ple();ZM();JM();E0();kle();Mle();gN();oi();s1();Fle();Vo();qle();gu();Wf();oqe=1,lqe=2,cqe=4,Ule="[object Arguments]",uqe="[object Array]",hqe="[object Boolean]",fqe="[object Date]",dqe="[object Error]",Wle="[object Function]",pqe="[object GeneratorFunction]",mqe="[object Map]",gqe="[object Number]",Hle="[object Object]",yqe="[object RegExp]",vqe="[object Set]",xqe="[object String]",bqe="[object Symbol]",Tqe="[object WeakMap]",wqe="[object ArrayBuffer]",kqe="[object DataView]",Eqe="[object Float32Array]",Sqe="[object Float64Array]",Cqe="[object Int8Array]",Aqe="[object Int16Array]",_qe="[object Int32Array]",Dqe="[object Uint8Array]",Rqe="[object Uint8ClampedArray]",Lqe="[object Uint16Array]",Nqe="[object Uint32Array]",Un={};Un[Ule]=Un[uqe]=Un[wqe]=Un[kqe]=Un[hqe]=Un[fqe]=Un[Eqe]=Un[Sqe]=Un[Cqe]=Un[Aqe]=Un[_qe]=Un[mqe]=Un[gqe]=Un[Hle]=Un[yqe]=Un[vqe]=Un[xqe]=Un[bqe]=Un[Dqe]=Un[Rqe]=Un[Lqe]=Un[Nqe]=!0;Un[dqe]=Un[Wle]=Un[Tqe]=!1;o(BE,"baseClone");FE=BE});function Iqe(t){return FE(t,Mqe)}var Mqe,Tn,rI=O(()=>{"use strict";tI();Mqe=4;o(Iqe,"clone");Tn=Iqe});function Bqe(t){return FE(t,Oqe|Pqe)}var Oqe,Pqe,nI,Yle=O(()=>{"use strict";tI();Oqe=1,Pqe=4;o(Bqe,"cloneDeep");nI=Bqe});function Fqe(t){for(var e=-1,r=t==null?0:t.length,n=0,i=[];++e{"use strict";o(Fqe,"compact");xu=Fqe});function zqe(t){return this.__data__.set(t,$qe),this}var $qe,Xle,Kle=O(()=>{"use strict";$qe="__lodash_hash_undefined__";o(zqe,"setCacheAdd");Xle=zqe});function Gqe(t){return this.__data__.has(t)}var Qle,Zle=O(()=>{"use strict";o(Gqe,"setCacheHas");Qle=Gqe});function $E(t){var e=-1,r=t==null?0:t.length;for(this.__data__=new l0;++e{"use strict";hk();Kle();Zle();o($E,"SetCache");$E.prototype.add=$E.prototype.push=Xle;$E.prototype.has=Qle;_1=$E});function Vqe(t,e){for(var r=-1,n=t==null?0:t.length;++r{"use strict";o(Vqe,"arraySome");GE=Vqe});function qqe(t,e){return t.has(e)}var D1,VE=O(()=>{"use strict";o(qqe,"cacheHas");D1=qqe});function Hqe(t,e,r,n,i,a){var s=r&Uqe,l=t.length,u=e.length;if(l!=u&&!(s&&u>l))return!1;var h=a.get(t),f=a.get(e);if(h&&f)return h==e&&f==t;var d=-1,p=!0,m=r&Wqe?new _1:void 0;for(a.set(t,e),a.set(e,t);++d{"use strict";zE();iI();VE();Uqe=1,Wqe=2;o(Hqe,"equalArrays");qE=Hqe});function Yqe(t){var e=-1,r=Array(t.size);return t.forEach(function(n,i){r[++e]=[i,n]}),r}var Jle,ece=O(()=>{"use strict";o(Yqe,"mapToArray");Jle=Yqe});function jqe(t){var e=-1,r=Array(t.size);return t.forEach(function(n){r[++e]=n}),r}var R1,UE=O(()=>{"use strict";o(jqe,"setToArray");R1=jqe});function lUe(t,e,r,n,i,a,s){switch(r){case oUe:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case sUe:return!(t.byteLength!=e.byteLength||!a(new e1(t),new e1(e)));case Qqe:case Zqe:case tUe:return vl(+t,+e);case Jqe:return t.name==e.name&&t.message==e.message;case rUe:case iUe:return t==e+"";case eUe:var l=Jle;case nUe:var u=n&Xqe;if(l||(l=R1),t.size!=e.size&&!u)return!1;var h=s.get(t);if(h)return h==e;n|=Kqe,s.set(t,e);var f=qE(l(t),l(e),n,i,a,s);return s.delete(t),f;case aUe:if(sI)return sI.call(t)==sI.call(e)}return!1}var Xqe,Kqe,Qqe,Zqe,Jqe,eUe,tUe,rUe,nUe,iUe,aUe,sUe,oUe,tce,sI,rce,nce=O(()=>{"use strict";s0();fN();o0();aI();ece();UE();Xqe=1,Kqe=2,Qqe="[object Boolean]",Zqe="[object Date]",Jqe="[object Error]",eUe="[object Map]",tUe="[object Number]",rUe="[object RegExp]",nUe="[object Set]",iUe="[object String]",aUe="[object Symbol]",sUe="[object ArrayBuffer]",oUe="[object DataView]",tce=ya?ya.prototype:void 0,sI=tce?tce.valueOf:void 0;o(lUe,"equalByTag");rce=lUe});function fUe(t,e,r,n,i,a){var s=r&cUe,l=Tb(t),u=l.length,h=Tb(e),f=h.length;if(u!=f&&!s)return!1;for(var d=u;d--;){var p=l[d];if(!(s?p in e:hUe.call(e,p)))return!1}var m=a.get(t),g=a.get(e);if(m&&g)return m==e&&g==t;var y=!0;a.set(t,e),a.set(e,t);for(var v=s;++d{"use strict";ZM();cUe=1,uUe=Object.prototype,hUe=uUe.hasOwnProperty;o(fUe,"equalObjects");ice=fUe});function mUe(t,e,r,n,i,a){var s=zt(t),l=zt(e),u=s?oce:Yo(t),h=l?oce:Yo(e);u=u==sce?WE:u,h=h==sce?WE:h;var f=u==WE,d=h==WE,p=u==h;if(p&&mc(t)){if(!mc(e))return!1;s=!0,f=!1}if(p&&!f)return a||(a=new su),s||qf(t)?qE(t,e,r,n,i,a):rce(t,e,u,r,n,i,a);if(!(r&dUe)){var m=f&&lce.call(t,"__wrapped__"),g=d&&lce.call(e,"__wrapped__");if(m||g){var y=m?t.value():t,v=g?e.value():e;return a||(a=new su),i(y,v,r,n,a)}}return p?(a||(a=new su),ice(t,e,r,n,i,a)):!1}var dUe,sce,oce,WE,pUe,lce,cce,uce=O(()=>{"use strict";Wx();aI();nce();ace();E0();oi();s1();Xx();dUe=1,sce="[object Arguments]",oce="[object Array]",WE="[object Object]",pUe=Object.prototype,lce=pUe.hasOwnProperty;o(mUe,"baseIsEqualDeep");cce=mUe});function hce(t,e,r,n,i){return t===e?!0:t==null||e==null||!wi(t)&&!wi(e)?t!==t&&e!==e:cce(t,e,r,n,hce,i)}var HE,oI=O(()=>{"use strict";uce();xl();o(hce,"baseIsEqual");HE=hce});function vUe(t,e,r,n){var i=r.length,a=i,s=!n;if(t==null)return!a;for(t=Object(t);i--;){var l=r[i];if(s&&l[2]?l[1]!==t[l[0]]:!(l[0]in t))return!1}for(;++i{"use strict";Wx();oI();gUe=1,yUe=2;o(vUe,"baseIsMatch");fce=vUe});function xUe(t){return t===t&&!On(t)}var YE,lI=O(()=>{"use strict";Vo();o(xUe,"isStrictComparable");YE=xUe});function bUe(t){for(var e=nn(t),r=e.length;r--;){var n=e[r],i=t[n];e[r]=[n,i,YE(i)]}return e}var pce,mce=O(()=>{"use strict";lI();gu();o(bUe,"getMatchData");pce=bUe});function TUe(t,e){return function(r){return r==null?!1:r[t]===e&&(e!==void 0||t in Object(r))}}var jE,cI=O(()=>{"use strict";o(TUe,"matchesStrictComparable");jE=TUe});function wUe(t){var e=pce(t);return e.length==1&&e[0][2]?jE(e[0][0],e[0][1]):function(r){return r===t||fce(r,t,e)}}var gce,yce=O(()=>{"use strict";dce();mce();cI();o(wUe,"baseMatches");gce=wUe});function kUe(t,e){return t!=null&&e in Object(t)}var vce,xce=O(()=>{"use strict";o(kUe,"baseHasIn");vce=kUe});function EUe(t,e,r){e=td(e,t);for(var n=-1,i=e.length,a=!1;++n{"use strict";xb();i1();oi();Qx();bk();k1();o(EUe,"hasPath");XE=EUe});function SUe(t,e){return t!=null&&XE(t,e,vce)}var KE,hI=O(()=>{"use strict";xce();uI();o(SUe,"hasIn");KE=SUe});function _Ue(t,e){return w1(t)&&YE(e)?jE(yu(t),e):function(r){var n=joe(r,t);return n===void 0&&n===e?KE(r,t):HE(e,n,CUe|AUe)}}var CUe,AUe,bce,Tce=O(()=>{"use strict";oI();Xoe();hI();EE();lI();cI();k1();CUe=1,AUe=2;o(_Ue,"baseMatchesProperty");bce=_Ue});function DUe(t){return function(e){return e?.[t]}}var QE,fI=O(()=>{"use strict";o(DUe,"baseProperty");QE=DUe});function RUe(t){return function(e){return rd(e,t)}}var wce,kce=O(()=>{"use strict";bb();o(RUe,"basePropertyDeep");wce=RUe});function LUe(t){return w1(t)?QE(yu(t)):wce(t)}var Ece,Sce=O(()=>{"use strict";fI();kce();EE();k1();o(LUe,"property");Ece=LUe});function NUe(t){return typeof t=="function"?t:t==null?va:typeof t=="object"?zt(t)?bce(t[0],t[1]):gce(t):Ece(t)}var Ln,Rs=O(()=>{"use strict";yce();Tce();Eh();oi();Sce();o(NUe,"baseIteratee");Ln=NUe});function MUe(t,e,r,n){for(var i=-1,a=t==null?0:t.length;++i{"use strict";o(MUe,"arrayAggregator");Cce=MUe});function IUe(t,e){return t&&Jg(t,e,nn)}var L1,ZE=O(()=>{"use strict";fk();gu();o(IUe,"baseForOwn");L1=IUe});function OUe(t,e){return function(r,n){if(r==null)return r;if(!Li(r))return t(r,n);for(var i=r.length,a=e?i:-1,s=Object(r);(e?a--:++a{"use strict";bl();o(OUe,"createBaseEach");_ce=OUe});var PUe,po,id=O(()=>{"use strict";ZE();Dce();PUe=_ce(L1),po=PUe});function BUe(t,e,r,n){return po(t,function(i,a,s){e(n,i,r(i),s)}),n}var Rce,Lce=O(()=>{"use strict";id();o(BUe,"baseAggregator");Rce=BUe});function FUe(t,e){return function(r,n){var i=zt(r)?Cce:Rce,a=e?e():{};return i(r,t,Ln(n,2),a)}}var Nce,Mce=O(()=>{"use strict";Ace();Lce();Rs();oi();o(FUe,"createAggregator");Nce=FUe});var $Ue,JE,Ice=O(()=>{"use strict";yl();$Ue=o(function(){return Ri.Date.now()},"now"),JE=$Ue});var Oce,zUe,GUe,ad,Pce=O(()=>{"use strict";l1();o0();f0();Wf();Oce=Object.prototype,zUe=Oce.hasOwnProperty,GUe=uu(function(t,e){t=Object(t);var r=-1,n=e.length,i=n>2?e[2]:void 0;for(i&&qo(e[0],e[1],i)&&(n=1);++r{"use strict";o(VUe,"arrayIncludesWith");eS=VUe});function UUe(t,e,r,n){var i=-1,a=wE,s=!0,l=t.length,u=[],h=e.length;if(!l)return u;r&&(e=fo(e,Tl(r))),n?(a=eS,s=!1):e.length>=qUe&&(a=D1,s=!1,e=new _1(e));e:for(;++i{"use strict";zE();HM();dI();w0();u0();VE();qUe=200;o(UUe,"baseDifference");Bce=UUe});var WUe,sd,$ce=O(()=>{"use strict";Fce();S1();l1();Tk();WUe=uu(function(t,e){return c0(t)?Bce(t,vu(e,1,c0,!0)):[]}),sd=WUe});function HUe(t){var e=t==null?0:t.length;return e?t[e-1]:void 0}var ba,zce=O(()=>{"use strict";o(HUe,"last");ba=HUe});function YUe(t,e,r){var n=t==null?0:t.length;return n?(e=r||e===void 0?1:mu(e),_E(t,e<0?0:e,n)):[]}var Pi,Gce=O(()=>{"use strict";jM();x1();o(YUe,"drop");Pi=YUe});function jUe(t,e,r){var n=t==null?0:t.length;return n?(e=r||e===void 0?1:mu(e),e=n-e,_E(t,0,e<0?0:e)):[]}var Nh,Vce=O(()=>{"use strict";jM();x1();o(jUe,"dropRight");Nh=jUe});function XUe(t){return typeof t=="function"?t:va}var N1,tS=O(()=>{"use strict";Eh();o(XUe,"castFunction");N1=XUe});function KUe(t,e){var r=zt(t)?xE:po;return r(t,N1(e))}var Oe,rS=O(()=>{"use strict";UM();id();tS();oi();o(KUe,"forEach");Oe=KUe});var qce=O(()=>{"use strict";rS()});function QUe(t,e){for(var r=-1,n=t==null?0:t.length;++r{"use strict";o(QUe,"arrayEvery");Uce=QUe});function ZUe(t,e){var r=!0;return po(t,function(n,i,a){return r=!!e(n,i,a),r}),r}var Hce,Yce=O(()=>{"use strict";id();o(ZUe,"baseEvery");Hce=ZUe});function JUe(t,e,r){var n=zt(t)?Uce:Hce;return r&&qo(t,e,r)&&(e=void 0),n(t,Ln(e,3))}var is,jce=O(()=>{"use strict";Wce();Yce();Rs();oi();f0();o(JUe,"every");is=JUe});function eWe(t,e){var r=[];return po(t,function(n,i,a){e(n,i,a)&&r.push(n)}),r}var nS,pI=O(()=>{"use strict";id();o(eWe,"baseFilter");nS=eWe});function tWe(t,e){var r=zt(t)?C1:nS;return r(t,Ln(e,3))}var dn,mI=O(()=>{"use strict";DE();pI();Rs();oi();o(tWe,"filter");dn=tWe});function rWe(t){return function(e,r,n){var i=Object(e);if(!Li(e)){var a=Ln(r,3);e=nn(e),r=o(function(l){return a(i[l],l,i)},"predicate")}var s=t(e,r,n);return s>-1?i[a?e[s]:s]:void 0}}var Xce,Kce=O(()=>{"use strict";Rs();bl();gu();o(rWe,"createFind");Xce=rWe});function iWe(t,e,r){var n=t==null?0:t.length;if(!n)return-1;var i=r==null?0:mu(r);return i<0&&(i=nWe(n+i,0)),bE(t,Ln(e,3),i)}var nWe,Qce,Zce=O(()=>{"use strict";WM();Rs();x1();nWe=Math.max;o(iWe,"findIndex");Qce=iWe});var aWe,Ls,Jce=O(()=>{"use strict";Kce();Zce();aWe=Xce(Qce),Ls=aWe});function sWe(t){return t&&t.length?t[0]:void 0}var Ta,eue=O(()=>{"use strict";o(sWe,"head");Ta=sWe});var tue=O(()=>{"use strict";eue()});function oWe(t,e){var r=-1,n=Li(t)?Array(t.length):[];return po(t,function(i,a,s){n[++r]=e(i,a,s)}),n}var iS,gI=O(()=>{"use strict";id();bl();o(oWe,"baseMap");iS=oWe});function lWe(t,e){var r=zt(t)?fo:iS;return r(t,Ln(e,3))}var lt,M1=O(()=>{"use strict";w0();Rs();gI();oi();o(lWe,"map");lt=lWe});function cWe(t,e){return vu(lt(t,e),1)}var za,yI=O(()=>{"use strict";S1();M1();o(cWe,"flatMap");za=cWe});function uWe(t,e){return t==null?t:Jg(t,N1(e),no)}var vI,rue=O(()=>{"use strict";fk();tS();Wf();o(uWe,"forIn");vI=uWe});function hWe(t,e){return t&&L1(t,N1(e))}var xI,nue=O(()=>{"use strict";ZE();tS();o(hWe,"forOwn");xI=hWe});var fWe,dWe,pWe,bI,iue=O(()=>{"use strict";Zg();Mce();fWe=Object.prototype,dWe=fWe.hasOwnProperty,pWe=Nce(function(t,e,r){dWe.call(t,r)?t[r].push(e):ou(t,r,[e])}),bI=pWe});function mWe(t,e){return t>e}var aue,sue=O(()=>{"use strict";o(mWe,"baseGt");aue=mWe});function vWe(t,e){return t!=null&&yWe.call(t,e)}var gWe,yWe,oue,lue=O(()=>{"use strict";gWe=Object.prototype,yWe=gWe.hasOwnProperty;o(vWe,"baseHas");oue=vWe});function xWe(t,e){return t!=null&&XE(t,e,oue)}var Gt,cue=O(()=>{"use strict";lue();uI();o(xWe,"has");Gt=xWe});function TWe(t){return typeof t=="string"||!zt(t)&&wi(t)&&Pa(t)==bWe}var bWe,Bi,aS=O(()=>{"use strict";Th();oi();xl();bWe="[object String]";o(TWe,"isString");Bi=TWe});function wWe(t,e){return fo(e,function(r){return t[r]})}var uue,hue=O(()=>{"use strict";w0();o(wWe,"baseValues");uue=wWe});function kWe(t){return t==null?[]:uue(t,nn(t))}var Gr,TI=O(()=>{"use strict";hue();gu();o(kWe,"values");Gr=kWe});function SWe(t,e,r,n){t=Li(t)?t:Gr(t),r=r&&!n?mu(r):0;var i=t.length;return r<0&&(r=EWe(i+r,0)),Bi(t)?r<=i&&t.indexOf(e,r)>-1:!!i&&b1(t,e,r)>-1}var EWe,ci,fue=O(()=>{"use strict";TE();bl();aS();x1();TI();EWe=Math.max;o(SWe,"includes");ci=SWe});function AWe(t,e,r){var n=t==null?0:t.length;if(!n)return-1;var i=r==null?0:mu(r);return i<0&&(i=CWe(n+i,0)),b1(t,e,i)}var CWe,sS,due=O(()=>{"use strict";TE();x1();CWe=Math.max;o(AWe,"indexOf");sS=AWe});function NWe(t){if(t==null)return!0;if(Li(t)&&(zt(t)||typeof t=="string"||typeof t.splice=="function"||mc(t)||qf(t)||pc(t)))return!t.length;var e=Yo(t);if(e==_We||e==DWe)return!t.size;if(lu(t))return!T1(t).length;for(var r in t)if(LWe.call(t,r))return!1;return!0}var _We,DWe,RWe,LWe,Er,oS=O(()=>{"use strict";kE();E0();i1();oi();bl();s1();n1();Xx();_We="[object Map]",DWe="[object Set]",RWe=Object.prototype,LWe=RWe.hasOwnProperty;o(NWe,"isEmpty");Er=NWe});function IWe(t){return wi(t)&&Pa(t)==MWe}var MWe,pue,mue=O(()=>{"use strict";Th();xl();MWe="[object RegExp]";o(IWe,"baseIsRegExp");pue=IWe});var gue,OWe,Al,yue=O(()=>{"use strict";mue();u0();jx();gue=wl&&wl.isRegExp,OWe=gue?Tl(gue):pue,Al=OWe});function PWe(t){return t===void 0}var Dr,vue=O(()=>{"use strict";o(PWe,"isUndefined");Dr=PWe});function BWe(t,e){return t{"use strict";o(BWe,"baseLt");lS=BWe});function FWe(t,e){var r={};return e=Ln(e,3),L1(t,function(n,i,a){ou(r,i,e(n,i,a))}),r}var S0,xue=O(()=>{"use strict";Zg();ZE();Rs();o(FWe,"mapValues");S0=FWe});function $We(t,e,r){for(var n=-1,i=t.length;++n{"use strict";T0();o($We,"baseExtremum");I1=$We});function zWe(t){return t&&t.length?I1(t,va,aue):void 0}var mo,bue=O(()=>{"use strict";cS();sue();Eh();o(zWe,"max");mo=zWe});function GWe(t){return t&&t.length?I1(t,va,lS):void 0}var vc,kI=O(()=>{"use strict";cS();wI();Eh();o(GWe,"min");vc=GWe});function VWe(t,e){return t&&t.length?I1(t,Ln(e,2),lS):void 0}var C0,Tue=O(()=>{"use strict";cS();Rs();wI();o(VWe,"minBy");C0=VWe});function UWe(t){if(typeof t!="function")throw new TypeError(qWe);return function(){var e=arguments;switch(e.length){case 0:return!t.call(this);case 1:return!t.call(this,e[0]);case 2:return!t.call(this,e[0],e[1]);case 3:return!t.call(this,e[0],e[1],e[2])}return!t.apply(this,e)}}var qWe,wue,kue=O(()=>{"use strict";qWe="Expected a function";o(UWe,"negate");wue=UWe});function WWe(t,e,r,n){if(!On(t))return t;e=td(e,t);for(var i=-1,a=e.length,s=a-1,l=t;l!=null&&++i{"use strict";o1();xb();Qx();Vo();k1();o(WWe,"baseSet");Eue=WWe});function HWe(t,e,r){for(var n=-1,i=e.length,a={};++n{"use strict";bb();Sue();xb();o(HWe,"basePickBy");uS=HWe});function YWe(t,e){if(t==null)return{};var r=fo(IE(t),function(n){return[n]});return e=Ln(e),uS(t,r,function(n,i){return e(n,i[0])})}var go,Cue=O(()=>{"use strict";w0();Rs();EI();JM();o(YWe,"pickBy");go=YWe});function jWe(t,e){var r=t.length;for(t.sort(e);r--;)t[r]=t[r].value;return t}var Aue,_ue=O(()=>{"use strict";o(jWe,"baseSortBy");Aue=jWe});function XWe(t,e){if(t!==e){var r=t!==void 0,n=t===null,i=t===t,a=Ho(t),s=e!==void 0,l=e===null,u=e===e,h=Ho(e);if(!l&&!h&&!a&&t>e||a&&s&&u&&!l&&!h||n&&s&&u||!r&&u||!i)return 1;if(!n&&!a&&!h&&t{"use strict";T0();o(XWe,"compareAscending");Due=XWe});function KWe(t,e,r){for(var n=-1,i=t.criteria,a=e.criteria,s=i.length,l=r.length;++n=l)return u;var h=r[n];return u*(h=="desc"?-1:1)}}return t.index-e.index}var Lue,Nue=O(()=>{"use strict";Rue();o(KWe,"compareMultiple");Lue=KWe});function QWe(t,e,r){e.length?e=fo(e,function(a){return zt(a)?function(s){return rd(s,a.length===1?a[0]:a)}:a}):e=[va];var n=-1;e=fo(e,Tl(Ln));var i=iS(t,function(a,s,l){var u=fo(e,function(h){return h(a)});return{criteria:u,index:++n,value:a}});return Aue(i,function(a,s){return Lue(a,s,r)})}var Mue,Iue=O(()=>{"use strict";w0();bb();Rs();gI();_ue();u0();Nue();Eh();oi();o(QWe,"baseOrderBy");Mue=QWe});var ZWe,Oue,Pue=O(()=>{"use strict";fI();ZWe=QE("length"),Oue=ZWe});function uHe(t){for(var e=Bue.lastIndex=0;Bue.test(t);)++e;return e}var Fue,JWe,eHe,tHe,rHe,nHe,iHe,SI,CI,aHe,$ue,zue,Gue,sHe,Vue,que,oHe,lHe,cHe,Bue,Uue,Wue=O(()=>{"use strict";Fue="\\ud800-\\udfff",JWe="\\u0300-\\u036f",eHe="\\ufe20-\\ufe2f",tHe="\\u20d0-\\u20ff",rHe=JWe+eHe+tHe,nHe="\\ufe0e\\ufe0f",iHe="["+Fue+"]",SI="["+rHe+"]",CI="\\ud83c[\\udffb-\\udfff]",aHe="(?:"+SI+"|"+CI+")",$ue="[^"+Fue+"]",zue="(?:\\ud83c[\\udde6-\\uddff]){2}",Gue="[\\ud800-\\udbff][\\udc00-\\udfff]",sHe="\\u200d",Vue=aHe+"?",que="["+nHe+"]?",oHe="(?:"+sHe+"(?:"+[$ue,zue,Gue].join("|")+")"+que+Vue+")*",lHe=que+Vue+oHe,cHe="(?:"+[$ue+SI+"?",SI,zue,Gue,iHe].join("|")+")",Bue=RegExp(CI+"(?="+CI+")|"+cHe+lHe,"g");o(uHe,"unicodeSize");Uue=uHe});function hHe(t){return rle(t)?Uue(t):Oue(t)}var Hue,Yue=O(()=>{"use strict";Pue();nle();Wue();o(hHe,"stringSize");Hue=hHe});function fHe(t,e){return uS(t,e,function(r,n){return KE(t,n)})}var jue,Xue=O(()=>{"use strict";EI();hI();o(fHe,"basePick");jue=fHe});var dHe,A0,Kue=O(()=>{"use strict";Xue();tle();dHe=ele(function(t,e){return t==null?{}:jue(t,e)}),A0=dHe});function gHe(t,e,r,n){for(var i=-1,a=mHe(pHe((e-t)/(r||1)),0),s=Array(a);a--;)s[n?a:++i]=t,t+=r;return s}var pHe,mHe,Que,Zue=O(()=>{"use strict";pHe=Math.ceil,mHe=Math.max;o(gHe,"baseRange");Que=gHe});function yHe(t){return function(e,r,n){return n&&typeof n!="number"&&qo(e,r,n)&&(r=n=void 0),e=v1(e),r===void 0?(r=e,e=0):r=v1(r),n=n===void 0?e{"use strict";Zue();f0();VM();o(yHe,"createRange");Jue=yHe});var vHe,_l,the=O(()=>{"use strict";ehe();vHe=Jue(),_l=vHe});function xHe(t,e,r,n,i){return i(t,function(a,s,l){r=n?(n=!1,a):e(r,a,s,l)}),r}var rhe,nhe=O(()=>{"use strict";o(xHe,"baseReduce");rhe=xHe});function bHe(t,e,r){var n=zt(t)?ile:rhe,i=arguments.length<3;return n(t,Ln(e,4),r,i,po)}var pn,AI=O(()=>{"use strict";ale();id();Rs();nhe();oi();o(bHe,"reduce");pn=bHe});function THe(t,e){var r=zt(t)?C1:nS;return r(t,wue(Ln(e,3)))}var od,ihe=O(()=>{"use strict";DE();pI();Rs();oi();kue();o(THe,"reject");od=THe});function EHe(t){if(t==null)return 0;if(Li(t))return Bi(t)?Hue(t):t.length;var e=Yo(t);return e==wHe||e==kHe?t.size:T1(t).length}var wHe,kHe,_I,ahe=O(()=>{"use strict";kE();E0();bl();aS();Yue();wHe="[object Map]",kHe="[object Set]";o(EHe,"size");_I=EHe});function SHe(t,e){var r;return po(t,function(n,i,a){return r=e(n,i,a),!r}),!!r}var she,ohe=O(()=>{"use strict";id();o(SHe,"baseSome");she=SHe});function CHe(t,e,r){var n=zt(t)?GE:she;return r&&qo(t,e,r)&&(e=void 0),n(t,Ln(e,3))}var wb,lhe=O(()=>{"use strict";iI();Rs();ohe();oi();f0();o(CHe,"some");wb=CHe});var AHe,bu,che=O(()=>{"use strict";S1();Iue();l1();f0();AHe=uu(function(t,e){if(t==null)return[];var r=e.length;return r>1&&qo(t,e[0],e[1])?e=[]:r>2&&qo(e[0],e[1],e[2])&&(e=[e[0]]),Mue(t,vu(e,1),[])}),bu=AHe});var _He,DHe,uhe,hhe=O(()=>{"use strict";eI();qM();UE();_He=1/0,DHe=nd&&1/R1(new nd([,-0]))[1]==_He?function(t){return new nd(t)}:ki,uhe=DHe});function LHe(t,e,r){var n=-1,i=wE,a=t.length,s=!0,l=[],u=l;if(r)s=!1,i=eS;else if(a>=RHe){var h=e?null:uhe(t);if(h)return R1(h);s=!1,i=D1,u=new _1}else u=e?[]:l;e:for(;++n{"use strict";zE();HM();dI();VE();hhe();UE();RHe=200;o(LHe,"baseUniq");O1=LHe});var NHe,DI,fhe=O(()=>{"use strict";S1();l1();hS();Tk();NHe=uu(function(t){return O1(vu(t,1,c0,!0))}),DI=NHe});function MHe(t){return t&&t.length?O1(t):[]}var P1,dhe=O(()=>{"use strict";hS();o(MHe,"uniq");P1=MHe});function IHe(t,e){return t&&t.length?O1(t,Ln(e,2)):[]}var phe,mhe=O(()=>{"use strict";Rs();hS();o(IHe,"uniqBy");phe=IHe});function PHe(t){var e=++OHe;return SE(t)+e}var OHe,_0,ghe=O(()=>{"use strict";YM();OHe=0;o(PHe,"uniqueId");_0=PHe});function BHe(t,e,r){for(var n=-1,i=t.length,a=e.length,s={};++n{"use strict";o(BHe,"baseZipObject");yhe=BHe});function FHe(t,e){return yhe(t||[],e||[],cu)}var fS,xhe=O(()=>{"use strict";o1();vhe();o(FHe,"zipObject");fS=FHe});var rr=O(()=>{"use strict";qoe();rI();Yle();jle();wN();Pce();$ce();Gce();Vce();qce();jce();mI();Jce();tue();yI();AE();rS();rue();nue();iue();cue();Eh();fue();due();oi();oS();zx();Vo();yue();aS();vue();gu();zce();M1();xue();bue();SN();kI();Tue();qM();Ice();Kue();Cue();the();AI();ihe();ahe();lhe();che();fhe();dhe();ghe();TI();xhe();});function The(t,e){t[e]?t[e]++:t[e]=1}function whe(t,e){--t[e]||delete t[e]}function kb(t,e,r,n){var i=""+e,a=""+r;if(!t&&i>a){var s=i;i=a,a=s}return i+bhe+a+bhe+(Dr(n)?$He:n)}function zHe(t,e,r,n){var i=""+e,a=""+r;if(!t&&i>a){var s=i;i=a,a=s}var l={v:i,w:a};return n&&(l.name=n),l}function RI(t,e){return kb(t,e.v,e.w,e.name)}var $He,D0,bhe,wn,dS=O(()=>{"use strict";rr();$He="\0",D0="\0",bhe="",wn=class{static{o(this,"Graph")}constructor(e={}){this._isDirected=Object.prototype.hasOwnProperty.call(e,"directed")?e.directed:!0,this._isMultigraph=Object.prototype.hasOwnProperty.call(e,"multigraph")?e.multigraph:!1,this._isCompound=Object.prototype.hasOwnProperty.call(e,"compound")?e.compound:!1,this._label=void 0,this._defaultNodeLabelFn=io(void 0),this._defaultEdgeLabelFn=io(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[D0]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(e){return this._label=e,this}graph(){return this._label}setDefaultNodeLabel(e){return Vi(e)||(e=io(e)),this._defaultNodeLabelFn=e,this}nodeCount(){return this._nodeCount}nodes(){return nn(this._nodes)}sources(){var e=this;return dn(this.nodes(),function(r){return Er(e._in[r])})}sinks(){var e=this;return dn(this.nodes(),function(r){return Er(e._out[r])})}setNodes(e,r){var n=arguments,i=this;return Oe(e,function(a){n.length>1?i.setNode(a,r):i.setNode(a)}),this}setNode(e,r){return Object.prototype.hasOwnProperty.call(this._nodes,e)?(arguments.length>1&&(this._nodes[e]=r),this):(this._nodes[e]=arguments.length>1?r:this._defaultNodeLabelFn(e),this._isCompound&&(this._parent[e]=D0,this._children[e]={},this._children[D0][e]=!0),this._in[e]={},this._preds[e]={},this._out[e]={},this._sucs[e]={},++this._nodeCount,this)}node(e){return this._nodes[e]}hasNode(e){return Object.prototype.hasOwnProperty.call(this._nodes,e)}removeNode(e){if(Object.prototype.hasOwnProperty.call(this._nodes,e)){var r=o(n=>this.removeEdge(this._edgeObjs[n]),"removeEdge");delete this._nodes[e],this._isCompound&&(this._removeFromParentsChildList(e),delete this._parent[e],Oe(this.children(e),n=>{this.setParent(n)}),delete this._children[e]),Oe(nn(this._in[e]),r),delete this._in[e],delete this._preds[e],Oe(nn(this._out[e]),r),delete this._out[e],delete this._sucs[e],--this._nodeCount}return this}setParent(e,r){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(Dr(r))r=D0;else{r+="";for(var n=r;!Dr(n);n=this.parent(n))if(n===e)throw new Error("Setting "+r+" as parent of "+e+" would create a cycle");this.setNode(r)}return this.setNode(e),this._removeFromParentsChildList(e),this._parent[e]=r,this._children[r][e]=!0,this}_removeFromParentsChildList(e){delete this._children[this._parent[e]][e]}parent(e){if(this._isCompound){var r=this._parent[e];if(r!==D0)return r}}children(e){if(Dr(e)&&(e=D0),this._isCompound){var r=this._children[e];if(r)return nn(r)}else{if(e===D0)return this.nodes();if(this.hasNode(e))return[]}}predecessors(e){var r=this._preds[e];if(r)return nn(r)}successors(e){var r=this._sucs[e];if(r)return nn(r)}neighbors(e){var r=this.predecessors(e);if(r)return DI(r,this.successors(e))}isLeaf(e){var r;return this.isDirected()?r=this.successors(e):r=this.neighbors(e),r.length===0}filterNodes(e){var r=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});r.setGraph(this.graph());var n=this;Oe(this._nodes,function(s,l){e(l)&&r.setNode(l,s)}),Oe(this._edgeObjs,function(s){r.hasNode(s.v)&&r.hasNode(s.w)&&r.setEdge(s,n.edge(s))});var i={};function a(s){var l=n.parent(s);return l===void 0||r.hasNode(l)?(i[s]=l,l):l in i?i[l]:a(l)}return o(a,"findParent"),this._isCompound&&Oe(r.nodes(),function(s){r.setParent(s,a(s))}),r}setDefaultEdgeLabel(e){return Vi(e)||(e=io(e)),this._defaultEdgeLabelFn=e,this}edgeCount(){return this._edgeCount}edges(){return Gr(this._edgeObjs)}setPath(e,r){var n=this,i=arguments;return pn(e,function(a,s){return i.length>1?n.setEdge(a,s,r):n.setEdge(a,s),s}),this}setEdge(){var e,r,n,i,a=!1,s=arguments[0];typeof s=="object"&&s!==null&&"v"in s?(e=s.v,r=s.w,n=s.name,arguments.length===2&&(i=arguments[1],a=!0)):(e=s,r=arguments[1],n=arguments[3],arguments.length>2&&(i=arguments[2],a=!0)),e=""+e,r=""+r,Dr(n)||(n=""+n);var l=kb(this._isDirected,e,r,n);if(Object.prototype.hasOwnProperty.call(this._edgeLabels,l))return a&&(this._edgeLabels[l]=i),this;if(!Dr(n)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(e),this.setNode(r),this._edgeLabels[l]=a?i:this._defaultEdgeLabelFn(e,r,n);var u=zHe(this._isDirected,e,r,n);return e=u.v,r=u.w,Object.freeze(u),this._edgeObjs[l]=u,The(this._preds[r],e),The(this._sucs[e],r),this._in[r][l]=u,this._out[e][l]=u,this._edgeCount++,this}edge(e,r,n){var i=arguments.length===1?RI(this._isDirected,arguments[0]):kb(this._isDirected,e,r,n);return this._edgeLabels[i]}hasEdge(e,r,n){var i=arguments.length===1?RI(this._isDirected,arguments[0]):kb(this._isDirected,e,r,n);return Object.prototype.hasOwnProperty.call(this._edgeLabels,i)}removeEdge(e,r,n){var i=arguments.length===1?RI(this._isDirected,arguments[0]):kb(this._isDirected,e,r,n),a=this._edgeObjs[i];return a&&(e=a.v,r=a.w,delete this._edgeLabels[i],delete this._edgeObjs[i],whe(this._preds[r],e),whe(this._sucs[e],r),delete this._in[r][i],delete this._out[e][i],this._edgeCount--),this}inEdges(e,r){var n=this._in[e];if(n){var i=Gr(n);return r?dn(i,function(a){return a.v===r}):i}}outEdges(e,r){var n=this._out[e];if(n){var i=Gr(n);return r?dn(i,function(a){return a.w===r}):i}}nodeEdges(e,r){var n=this.inEdges(e,r);if(n)return n.concat(this.outEdges(e,r))}};wn.prototype._nodeCount=0;wn.prototype._edgeCount=0;o(The,"incrementOrInitEntry");o(whe,"decrementOrRemoveEntry");o(kb,"edgeArgsToId");o(zHe,"edgeArgsToObj");o(RI,"edgeObjToId")});var Dl=O(()=>{"use strict";dS()});function khe(t){t._prev._next=t._next,t._next._prev=t._prev,delete t._next,delete t._prev}function GHe(t,e){if(t!=="_next"&&t!=="_prev")return e}var mS,Ehe=O(()=>{"use strict";mS=class{static{o(this,"List")}constructor(){var e={};e._next=e._prev=e,this._sentinel=e}dequeue(){var e=this._sentinel,r=e._prev;if(r!==e)return khe(r),r}enqueue(e){var r=this._sentinel;e._prev&&e._next&&khe(e),e._next=r._next,r._next._prev=e,r._next=e,e._prev=r}toString(){for(var e=[],r=this._sentinel,n=r._prev;n!==r;)e.push(JSON.stringify(n,GHe)),n=n._prev;return"["+e.join(", ")+"]"}};o(khe,"unlink");o(GHe,"filterOutLinks")});function She(t,e){if(t.nodeCount()<=1)return[];var r=UHe(t,e||VHe),n=qHe(r.graph,r.buckets,r.zeroIdx);return fn(lt(n,function(i){return t.outEdges(i.v,i.w)}))}function qHe(t,e,r){for(var n=[],i=e[e.length-1],a=e[0],s;t.nodeCount();){for(;s=a.dequeue();)LI(t,e,r,s);for(;s=i.dequeue();)LI(t,e,r,s);if(t.nodeCount()){for(var l=e.length-2;l>0;--l)if(s=e[l].dequeue(),s){n=n.concat(LI(t,e,r,s,!0));break}}}return n}function LI(t,e,r,n,i){var a=i?[]:void 0;return Oe(t.inEdges(n.v),function(s){var l=t.edge(s),u=t.node(s.v);i&&a.push({v:s.v,w:s.w}),u.out-=l,NI(e,r,u)}),Oe(t.outEdges(n.v),function(s){var l=t.edge(s),u=s.w,h=t.node(u);h.in-=l,NI(e,r,h)}),t.removeNode(n.v),a}function UHe(t,e){var r=new wn,n=0,i=0;Oe(t.nodes(),function(l){r.setNode(l,{v:l,in:0,out:0})}),Oe(t.edges(),function(l){var u=r.edge(l.v,l.w)||0,h=e(l),f=u+h;r.setEdge(l.v,l.w,f),i=Math.max(i,r.node(l.v).out+=h),n=Math.max(n,r.node(l.w).in+=h)});var a=_l(i+n+3).map(function(){return new mS}),s=n+1;return Oe(r.nodes(),function(l){NI(a,s,r.node(l))}),{graph:r,buckets:a,zeroIdx:s}}function NI(t,e,r){r.out?r.in?t[r.out-r.in+e].enqueue(r):t[t.length-1].enqueue(r):t[0].enqueue(r)}var VHe,Che=O(()=>{"use strict";rr();Dl();Ehe();VHe=io(1);o(She,"greedyFAS");o(qHe,"doGreedyFAS");o(LI,"removeNode");o(UHe,"buildState");o(NI,"assignBucket")});function Ahe(t){var e=t.graph().acyclicer==="greedy"?She(t,r(t)):WHe(t);Oe(e,function(n){var i=t.edge(n);t.removeEdge(n),i.forwardName=n.name,i.reversed=!0,t.setEdge(n.w,n.v,i,_0("rev"))});function r(n){return function(i){return n.edge(i).weight}}o(r,"weightFn")}function WHe(t){var e=[],r={},n={};function i(a){Object.prototype.hasOwnProperty.call(n,a)||(n[a]=!0,r[a]=!0,Oe(t.outEdges(a),function(s){Object.prototype.hasOwnProperty.call(r,s.w)?e.push(s):i(s.w)}),delete r[a])}return o(i,"dfs"),Oe(t.nodes(),i),e}function _he(t){Oe(t.edges(),function(e){var r=t.edge(e);if(r.reversed){t.removeEdge(e);var n=r.forwardName;delete r.reversed,delete r.forwardName,t.setEdge(e.w,e.v,r,n)}})}var MI=O(()=>{"use strict";rr();Che();o(Ahe,"run");o(WHe,"dfsFAS");o(_he,"undo")});function Tu(t,e,r,n){var i;do i=_0(n);while(t.hasNode(i));return r.dummy=e,t.setNode(i,r),i}function Rhe(t){var e=new wn().setGraph(t.graph());return Oe(t.nodes(),function(r){e.setNode(r,t.node(r))}),Oe(t.edges(),function(r){var n=e.edge(r.v,r.w)||{weight:0,minlen:1},i=t.edge(r);e.setEdge(r.v,r.w,{weight:n.weight+i.weight,minlen:Math.max(n.minlen,i.minlen)})}),e}function gS(t){var e=new wn({multigraph:t.isMultigraph()}).setGraph(t.graph());return Oe(t.nodes(),function(r){t.children(r).length||e.setNode(r,t.node(r))}),Oe(t.edges(),function(r){e.setEdge(r,t.edge(r))}),e}function II(t,e){var r=t.x,n=t.y,i=e.x-r,a=e.y-n,s=t.width/2,l=t.height/2;if(!i&&!a)throw new Error("Not possible to find intersection inside of the rectangle");var u,h;return Math.abs(a)*s>Math.abs(i)*l?(a<0&&(l=-l),u=l*i/a,h=l):(i<0&&(s=-s),u=s,h=s*a/i),{x:r+u,y:n+h}}function ld(t){var e=lt(_l(PI(t)+1),function(){return[]});return Oe(t.nodes(),function(r){var n=t.node(r),i=n.rank;Dr(i)||(e[i][n.order]=r)}),e}function Lhe(t){var e=vc(lt(t.nodes(),function(r){return t.node(r).rank}));Oe(t.nodes(),function(r){var n=t.node(r);Gt(n,"rank")&&(n.rank-=e)})}function Nhe(t){var e=vc(lt(t.nodes(),function(a){return t.node(a).rank})),r=[];Oe(t.nodes(),function(a){var s=t.node(a).rank-e;r[s]||(r[s]=[]),r[s].push(a)});var n=0,i=t.graph().nodeRankFactor;Oe(r,function(a,s){Dr(a)&&s%i!==0?--n:n&&Oe(a,function(l){t.node(l).rank+=n})})}function OI(t,e,r,n){var i={width:0,height:0};return arguments.length>=4&&(i.rank=r,i.order=n),Tu(t,"border",i,e)}function PI(t){return mo(lt(t.nodes(),function(e){var r=t.node(e).rank;if(!Dr(r))return r}))}function Mhe(t,e){var r={lhs:[],rhs:[]};return Oe(t,function(n){e(n)?r.lhs.push(n):r.rhs.push(n)}),r}function Ihe(t,e){var r=JE();try{return e()}finally{console.log(t+" time: "+(JE()-r)+"ms")}}function Ohe(t,e){return e()}var wu=O(()=>{"use strict";rr();Dl();o(Tu,"addDummyNode");o(Rhe,"simplify");o(gS,"asNonCompoundGraph");o(II,"intersectRect");o(ld,"buildLayerMatrix");o(Lhe,"normalizeRanks");o(Nhe,"removeEmptyRanks");o(OI,"addBorderNode");o(PI,"maxRank");o(Mhe,"partition");o(Ihe,"time");o(Ohe,"notime")});function Bhe(t){function e(r){var n=t.children(r),i=t.node(r);if(n.length&&Oe(n,e),Object.prototype.hasOwnProperty.call(i,"minRank")){i.borderLeft=[],i.borderRight=[];for(var a=i.minRank,s=i.maxRank+1;a{"use strict";rr();wu();o(Bhe,"addBorderSegments");o(Phe,"addBorderNode")});function zhe(t){var e=t.graph().rankdir.toLowerCase();(e==="lr"||e==="rl")&&Vhe(t)}function Ghe(t){var e=t.graph().rankdir.toLowerCase();(e==="bt"||e==="rl")&&HHe(t),(e==="lr"||e==="rl")&&(YHe(t),Vhe(t))}function Vhe(t){Oe(t.nodes(),function(e){$he(t.node(e))}),Oe(t.edges(),function(e){$he(t.edge(e))})}function $he(t){var e=t.width;t.width=t.height,t.height=e}function HHe(t){Oe(t.nodes(),function(e){BI(t.node(e))}),Oe(t.edges(),function(e){var r=t.edge(e);Oe(r.points,BI),Object.prototype.hasOwnProperty.call(r,"y")&&BI(r)})}function BI(t){t.y=-t.y}function YHe(t){Oe(t.nodes(),function(e){FI(t.node(e))}),Oe(t.edges(),function(e){var r=t.edge(e);Oe(r.points,FI),Object.prototype.hasOwnProperty.call(r,"x")&&FI(r)})}function FI(t){var e=t.x;t.x=t.y,t.y=e}var qhe=O(()=>{"use strict";rr();o(zhe,"adjust");o(Ghe,"undo");o(Vhe,"swapWidthHeight");o($he,"swapWidthHeightOne");o(HHe,"reverseY");o(BI,"reverseYOne");o(YHe,"swapXY");o(FI,"swapXYOne")});function Uhe(t){t.graph().dummyChains=[],Oe(t.edges(),function(e){XHe(t,e)})}function XHe(t,e){var r=e.v,n=t.node(r).rank,i=e.w,a=t.node(i).rank,s=e.name,l=t.edge(e),u=l.labelRank;if(a!==n+1){t.removeEdge(e);var h=void 0,f,d;for(d=0,++n;n{"use strict";rr();wu();o(Uhe,"run");o(XHe,"normalizeEdge");o(Whe,"undo")});function Eb(t){var e={};function r(n){var i=t.node(n);if(Object.prototype.hasOwnProperty.call(e,n))return i.rank;e[n]=!0;var a=vc(lt(t.outEdges(n),function(s){return r(s.w)-t.edge(s).minlen}));return(a===Number.POSITIVE_INFINITY||a===void 0||a===null)&&(a=0),i.rank=a}o(r,"dfs"),Oe(t.sources(),r)}function R0(t,e){return t.node(e.w).rank-t.node(e.v).rank-t.edge(e).minlen}var yS=O(()=>{"use strict";rr();o(Eb,"longestPath");o(R0,"slack")});function vS(t){var e=new wn({directed:!1}),r=t.nodes()[0],n=t.nodeCount();e.setNode(r,{});for(var i,a;KHe(e,t){"use strict";rr();Dl();yS();o(vS,"feasibleTree");o(KHe,"tightTree");o(QHe,"findMinSlackEdge");o(ZHe,"shiftRanks")});var Yhe=O(()=>{"use strict"});var GI=O(()=>{"use strict"});var msr,VI=O(()=>{"use strict";rr();GI();msr=io(1)});var jhe=O(()=>{"use strict";VI()});var qI=O(()=>{"use strict"});var Xhe=O(()=>{"use strict";qI()});var Csr,Khe=O(()=>{"use strict";rr();Csr=io(1)});function UI(t){var e={},r={},n=[];function i(a){if(Object.prototype.hasOwnProperty.call(r,a))throw new Sb;Object.prototype.hasOwnProperty.call(e,a)||(r[a]=!0,e[a]=!0,Oe(t.predecessors(a),i),delete r[a],n.push(a))}if(o(i,"visit"),Oe(t.sinks(),i),_I(e)!==t.nodeCount())throw new Sb;return n}function Sb(){}var WI=O(()=>{"use strict";rr();UI.CycleException=Sb;o(UI,"topsort");o(Sb,"CycleException");Sb.prototype=new Error});var Qhe=O(()=>{"use strict";WI()});function xS(t,e,r){zt(e)||(e=[e]);var n=(t.isDirected()?t.successors:t.neighbors).bind(t),i=[],a={};return Oe(e,function(s){if(!t.hasNode(s))throw new Error("Graph does not have node: "+s);Zhe(t,s,r==="post",a,n,i)}),i}function Zhe(t,e,r,n,i,a){Object.prototype.hasOwnProperty.call(n,e)||(n[e]=!0,r||a.push(e),Oe(i(e),function(s){Zhe(t,s,r,n,i,a)}),r&&a.push(e))}var HI=O(()=>{"use strict";rr();o(xS,"dfs");o(Zhe,"doDfs")});function YI(t,e){return xS(t,e,"post")}var Jhe=O(()=>{"use strict";HI();o(YI,"postorder")});function jI(t,e){return xS(t,e,"pre")}var efe=O(()=>{"use strict";HI();o(jI,"preorder")});var tfe=O(()=>{"use strict";GI();dS()});var rfe=O(()=>{"use strict";Yhe();VI();jhe();Xhe();Khe();Qhe();Jhe();efe();tfe();qI();WI()});function ud(t){t=Rhe(t),Eb(t);var e=vS(t);KI(e),XI(e,t);for(var r,n;r=sfe(e);)n=ofe(e,t,r),lfe(e,t,r,n)}function XI(t,e){var r=YI(t,t.nodes());r=r.slice(0,r.length-1),Oe(r,function(n){nYe(t,e,n)})}function nYe(t,e,r){var n=t.node(r),i=n.parent;t.edge(r,i).cutvalue=ife(t,e,r)}function ife(t,e,r){var n=t.node(r),i=n.parent,a=!0,s=e.edge(r,i),l=0;return s||(a=!1,s=e.edge(i,r)),l=s.weight,Oe(e.nodeEdges(r),function(u){var h=u.v===r,f=h?u.w:u.v;if(f!==i){var d=h===a,p=e.edge(u).weight;if(l+=d?p:-p,aYe(t,r,f)){var m=t.edge(r,f).cutvalue;l+=d?-m:m}}}),l}function KI(t,e){arguments.length<2&&(e=t.nodes()[0]),afe(t,{},1,e)}function afe(t,e,r,n,i){var a=r,s=t.node(n);return e[n]=!0,Oe(t.neighbors(n),function(l){Object.prototype.hasOwnProperty.call(e,l)||(r=afe(t,e,r,l,n))}),s.low=a,s.lim=r++,i?s.parent=i:delete s.parent,r}function sfe(t){return Ls(t.edges(),function(e){return t.edge(e).cutvalue<0})}function ofe(t,e,r){var n=r.v,i=r.w;e.hasEdge(n,i)||(n=r.w,i=r.v);var a=t.node(n),s=t.node(i),l=a,u=!1;a.lim>s.lim&&(l=s,u=!0);var h=dn(e.edges(),function(f){return u===nfe(t,t.node(f.v),l)&&u!==nfe(t,t.node(f.w),l)});return C0(h,function(f){return R0(e,f)})}function lfe(t,e,r,n){var i=r.v,a=r.w;t.removeEdge(i,a),t.setEdge(n.v,n.w,{}),KI(t),XI(t,e),iYe(t,e)}function iYe(t,e){var r=Ls(t.nodes(),function(i){return!e.node(i).parent}),n=jI(t,r);n=n.slice(1),Oe(n,function(i){var a=t.node(i).parent,s=e.edge(i,a),l=!1;s||(s=e.edge(a,i),l=!0),e.node(i).rank=e.node(a).rank+(l?s.minlen:-s.minlen)})}function aYe(t,e,r){return t.hasEdge(e,r)}function nfe(t,e,r){return r.low<=e.lim&&e.lim<=r.lim}var cfe=O(()=>{"use strict";rr();rfe();wu();zI();yS();ud.initLowLimValues=KI;ud.initCutValues=XI;ud.calcCutValue=ife;ud.leaveEdge=sfe;ud.enterEdge=ofe;ud.exchangeEdges=lfe;o(ud,"networkSimplex");o(XI,"initCutValues");o(nYe,"assignCutValue");o(ife,"calcCutValue");o(KI,"initLowLimValues");o(afe,"dfsAssignLowLim");o(sfe,"leaveEdge");o(ofe,"enterEdge");o(lfe,"exchangeEdges");o(iYe,"updateRanks");o(aYe,"isTreeEdge");o(nfe,"isDescendant")});function QI(t){switch(t.graph().ranker){case"network-simplex":ufe(t);break;case"tight-tree":oYe(t);break;case"longest-path":sYe(t);break;default:ufe(t)}}function oYe(t){Eb(t),vS(t)}function ufe(t){ud(t)}var sYe,ZI=O(()=>{"use strict";zI();cfe();yS();o(QI,"rank");sYe=Eb;o(oYe,"tightTreeRanker");o(ufe,"networkSimplexRanker")});function hfe(t){var e=Tu(t,"root",{},"_root"),r=lYe(t),n=mo(Gr(r))-1,i=2*n+1;t.graph().nestingRoot=e,Oe(t.edges(),function(s){t.edge(s).minlen*=i});var a=cYe(t)+1;Oe(t.children(),function(s){ffe(t,e,i,a,n,r,s)}),t.graph().nodeRankFactor=i}function ffe(t,e,r,n,i,a,s){var l=t.children(s);if(!l.length){s!==e&&t.setEdge(e,s,{weight:0,minlen:r});return}var u=OI(t,"_bt"),h=OI(t,"_bb"),f=t.node(s);t.setParent(u,s),f.borderTop=u,t.setParent(h,s),f.borderBottom=h,Oe(l,function(d){ffe(t,e,r,n,i,a,d);var p=t.node(d),m=p.borderTop?p.borderTop:d,g=p.borderBottom?p.borderBottom:d,y=p.borderTop?n:2*n,v=m!==g?1:i-a[s]+1;t.setEdge(u,m,{weight:y,minlen:v,nestingEdge:!0}),t.setEdge(g,h,{weight:y,minlen:v,nestingEdge:!0})}),t.parent(s)||t.setEdge(e,u,{weight:0,minlen:i+a[s]})}function lYe(t){var e={};function r(n,i){var a=t.children(n);a&&a.length&&Oe(a,function(s){r(s,i+1)}),e[n]=i}return o(r,"dfs"),Oe(t.children(),function(n){r(n,1)}),e}function cYe(t){return pn(t.edges(),function(e,r){return e+t.edge(r).weight},0)}function dfe(t){var e=t.graph();t.removeNode(e.nestingRoot),delete e.nestingRoot,Oe(t.edges(),function(r){var n=t.edge(r);n.nestingEdge&&t.removeEdge(r)})}var pfe=O(()=>{"use strict";rr();wu();o(hfe,"run");o(ffe,"dfs");o(lYe,"treeDepths");o(cYe,"sumWeights");o(dfe,"cleanup")});function mfe(t,e,r){var n={},i;Oe(r,function(a){for(var s=t.parent(a),l,u;s;){if(l=t.parent(s),l?(u=n[l],n[l]=s):(u=i,i=s),u&&u!==s){e.setEdge(u,s);return}s=l}})}var gfe=O(()=>{"use strict";rr();o(mfe,"addSubgraphConstraints")});function yfe(t,e,r){var n=hYe(t),i=new wn({compound:!0}).setGraph({root:n}).setDefaultNodeLabel(function(a){return t.node(a)});return Oe(t.nodes(),function(a){var s=t.node(a),l=t.parent(a);(s.rank===e||s.minRank<=e&&e<=s.maxRank)&&(i.setNode(a),i.setParent(a,l||n),Oe(t[r](a),function(u){var h=u.v===a?u.w:u.v,f=i.edge(h,a),d=Dr(f)?0:f.weight;i.setEdge(h,a,{weight:t.edge(u).weight+d})}),Object.prototype.hasOwnProperty.call(s,"minRank")&&i.setNode(a,{borderLeft:s.borderLeft[e],borderRight:s.borderRight[e]}))}),i}function hYe(t){for(var e;t.hasNode(e=_0("_root")););return e}var vfe=O(()=>{"use strict";rr();Dl();o(yfe,"buildLayerGraph");o(hYe,"createRootNode")});function xfe(t,e){for(var r=0,n=1;n0;)f%2&&(d+=l[f+1]),f=f-1>>1,l[f]+=h.weight;u+=h.weight*d})),u}var bfe=O(()=>{"use strict";rr();o(xfe,"crossCount");o(fYe,"twoLayerCrossCount")});function Tfe(t){var e={},r=dn(t.nodes(),function(l){return!t.children(l).length}),n=mo(lt(r,function(l){return t.node(l).rank})),i=lt(_l(n+1),function(){return[]});function a(l){if(!Gt(e,l)){e[l]=!0;var u=t.node(l);i[u.rank].push(l),Oe(t.successors(l),a)}}o(a,"dfs");var s=bu(r,function(l){return t.node(l).rank});return Oe(s,a),i}var wfe=O(()=>{"use strict";rr();o(Tfe,"initOrder")});function kfe(t,e){return lt(e,function(r){var n=t.inEdges(r);if(n.length){var i=pn(n,function(a,s){var l=t.edge(s),u=t.node(s.v);return{sum:a.sum+l.weight*u.order,weight:a.weight+l.weight}},{sum:0,weight:0});return{v:r,barycenter:i.sum/i.weight,weight:i.weight}}else return{v:r}})}var Efe=O(()=>{"use strict";rr();o(kfe,"barycenter")});function Sfe(t,e){var r={};Oe(t,function(i,a){var s=r[i.v]={indegree:0,in:[],out:[],vs:[i.v],i:a};Dr(i.barycenter)||(s.barycenter=i.barycenter,s.weight=i.weight)}),Oe(e.edges(),function(i){var a=r[i.v],s=r[i.w];!Dr(a)&&!Dr(s)&&(s.indegree++,a.out.push(r[i.w]))});var n=dn(r,function(i){return!i.indegree});return dYe(n)}function dYe(t){var e=[];function r(a){return function(s){s.merged||(Dr(s.barycenter)||Dr(a.barycenter)||s.barycenter>=a.barycenter)&&pYe(a,s)}}o(r,"handleIn");function n(a){return function(s){s.in.push(a),--s.indegree===0&&t.push(s)}}for(o(n,"handleOut");t.length;){var i=t.pop();e.push(i),Oe(i.in.reverse(),r(i)),Oe(i.out,n(i))}return lt(dn(e,function(a){return!a.merged}),function(a){return A0(a,["vs","i","barycenter","weight"])})}function pYe(t,e){var r=0,n=0;t.weight&&(r+=t.barycenter*t.weight,n+=t.weight),e.weight&&(r+=e.barycenter*e.weight,n+=e.weight),t.vs=e.vs.concat(t.vs),t.barycenter=r/n,t.weight=n,t.i=Math.min(e.i,t.i),e.merged=!0}var Cfe=O(()=>{"use strict";rr();o(Sfe,"resolveConflicts");o(dYe,"doResolveConflicts");o(pYe,"mergeEntries")});function _fe(t,e){var r=Mhe(t,function(f){return Object.prototype.hasOwnProperty.call(f,"barycenter")}),n=r.lhs,i=bu(r.rhs,function(f){return-f.i}),a=[],s=0,l=0,u=0;n.sort(mYe(!!e)),u=Afe(a,i,u),Oe(n,function(f){u+=f.vs.length,a.push(f.vs),s+=f.barycenter*f.weight,l+=f.weight,u=Afe(a,i,u)});var h={vs:fn(a)};return l&&(h.barycenter=s/l,h.weight=l),h}function Afe(t,e,r){for(var n;e.length&&(n=ba(e)).i<=r;)e.pop(),t.push(n.vs),r++;return r}function mYe(t){return function(e,r){return e.barycenterr.barycenter?1:t?r.i-e.i:e.i-r.i}}var Dfe=O(()=>{"use strict";rr();wu();o(_fe,"sort");o(Afe,"consumeUnsortable");o(mYe,"compareWithBias")});function JI(t,e,r,n){var i=t.children(e),a=t.node(e),s=a?a.borderLeft:void 0,l=a?a.borderRight:void 0,u={};s&&(i=dn(i,function(g){return g!==s&&g!==l}));var h=kfe(t,i);Oe(h,function(g){if(t.children(g.v).length){var y=JI(t,g.v,r,n);u[g.v]=y,Object.prototype.hasOwnProperty.call(y,"barycenter")&&yYe(g,y)}});var f=Sfe(h,r);gYe(f,u);var d=_fe(f,n);if(s&&(d.vs=fn([s,d.vs,l]),t.predecessors(s).length)){var p=t.node(t.predecessors(s)[0]),m=t.node(t.predecessors(l)[0]);Object.prototype.hasOwnProperty.call(d,"barycenter")||(d.barycenter=0,d.weight=0),d.barycenter=(d.barycenter*d.weight+p.order+m.order)/(d.weight+2),d.weight+=2}return d}function gYe(t,e){Oe(t,function(r){r.vs=fn(r.vs.map(function(n){return e[n]?e[n].vs:n}))})}function yYe(t,e){Dr(t.barycenter)?(t.barycenter=e.barycenter,t.weight=e.weight):(t.barycenter=(t.barycenter*t.weight+e.barycenter*e.weight)/(t.weight+e.weight),t.weight+=e.weight)}var Rfe=O(()=>{"use strict";rr();Efe();Cfe();Dfe();o(JI,"sortSubgraph");o(gYe,"expandSubgraphs");o(yYe,"mergeBarycenters")});function Mfe(t){var e=PI(t),r=Lfe(t,_l(1,e+1),"inEdges"),n=Lfe(t,_l(e-1,-1,-1),"outEdges"),i=Tfe(t);Nfe(t,i);for(var a=Number.POSITIVE_INFINITY,s,l=0,u=0;u<4;++l,++u){vYe(l%2?r:n,l%4>=2),i=ld(t);var h=xfe(t,i);h{"use strict";rr();Dl();wu();gfe();vfe();bfe();wfe();Rfe();o(Mfe,"order");o(Lfe,"buildLayerGraphs");o(vYe,"sweepLayerGraphs");o(Nfe,"assignOrder")});function Ofe(t){var e=bYe(t);Oe(t.graph().dummyChains,function(r){for(var n=t.node(r),i=n.edgeObj,a=xYe(t,e,i.v,i.w),s=a.path,l=a.lca,u=0,h=s[u],f=!0;r!==i.w;){if(n=t.node(r),f){for(;(h=s[u])!==l&&t.node(h).maxRanks||l>e[u].lim));for(h=u,u=n;(u=t.parent(u))!==h;)a.push(u);return{path:i.concat(a.reverse()),lca:h}}function bYe(t){var e={},r=0;function n(i){var a=r;Oe(t.children(i),n),e[i]={low:a,lim:r++}}return o(n,"dfs"),Oe(t.children(),n),e}var Pfe=O(()=>{"use strict";rr();o(Ofe,"parentDummyChains");o(xYe,"findPath");o(bYe,"postorder")});function TYe(t,e){var r={};function n(i,a){var s=0,l=0,u=i.length,h=ba(a);return Oe(a,function(f,d){var p=kYe(t,f),m=p?t.node(p).order:u;(p||f===h)&&(Oe(a.slice(l,d+1),function(g){Oe(t.predecessors(g),function(y){var v=t.node(y),x=v.order;(xh)&&Bfe(r,p,f)})})}o(n,"scan");function i(a,s){var l=-1,u,h=0;return Oe(s,function(f,d){if(t.node(f).dummy==="border"){var p=t.predecessors(f);p.length&&(u=t.node(p[0]).order,n(s,h,d,l,u),h=d,l=u)}n(s,h,s.length,u,a.length)}),s}return o(i,"visitLayer"),pn(e,i),r}function kYe(t,e){if(t.node(e).dummy)return Ls(t.predecessors(e),function(r){return t.node(r).dummy})}function Bfe(t,e,r){if(e>r){var n=e;e=r,r=n}Object.prototype.hasOwnProperty.call(t,e)||Object.defineProperty(t,e,{enumerable:!0,configurable:!0,value:{},writable:!0});var i=t[e];Object.defineProperty(i,r,{enumerable:!0,configurable:!0,value:!0,writable:!0})}function EYe(t,e,r){if(e>r){var n=e;e=r,r=n}return!!t[e]&&Object.prototype.hasOwnProperty.call(t[e],r)}function SYe(t,e,r,n){var i={},a={},s={};return Oe(e,function(l){Oe(l,function(u,h){i[u]=u,a[u]=u,s[u]=h})}),Oe(e,function(l){var u=-1;Oe(l,function(h){var f=n(h);if(f.length){f=bu(f,function(y){return s[y]});for(var d=(f.length-1)/2,p=Math.floor(d),m=Math.ceil(d);p<=m;++p){var g=f[p];a[h]===h&&u{"use strict";rr();Dl();wu();o(TYe,"findType1Conflicts");o(wYe,"findType2Conflicts");o(kYe,"findOtherInnerSegmentNode");o(Bfe,"addConflict");o(EYe,"hasConflict");o(SYe,"verticalAlignment");o(CYe,"horizontalCompaction");o(AYe,"buildBlockGraph");o(_Ye,"findSmallestWidthAlignment");o(DYe,"alignCoordinates");o(RYe,"balance");o(Ffe,"positionX");o(LYe,"sep");o(NYe,"width")});function zfe(t){t=gS(t),MYe(t),xI(Ffe(t),function(e,r){t.node(r).x=e})}function MYe(t){var e=ld(t),r=t.graph().ranksep,n=0;Oe(e,function(i){var a=mo(lt(i,function(s){return t.node(s).height}));Oe(i,function(s){t.node(s).y=n+a/2}),n+=a+r})}var Gfe=O(()=>{"use strict";rr();wu();$fe();o(zfe,"position");o(MYe,"positionY")});function Cb(t,e){var r=e&&e.debugTiming?Ihe:Ohe;r("layout",()=>{var n=r(" buildLayoutGraph",()=>UYe(t));r(" runLayout",()=>IYe(n,r)),r(" updateInputGraph",()=>OYe(t,n))})}function IYe(t,e){e(" makeSpaceForEdgeLabels",()=>WYe(t)),e(" removeSelfEdges",()=>eje(t)),e(" acyclic",()=>Ahe(t)),e(" nestingGraph.run",()=>hfe(t)),e(" rank",()=>QI(gS(t))),e(" injectEdgeLabelProxies",()=>HYe(t)),e(" removeEmptyRanks",()=>Nhe(t)),e(" nestingGraph.cleanup",()=>dfe(t)),e(" normalizeRanks",()=>Lhe(t)),e(" assignRankMinMax",()=>YYe(t)),e(" removeEdgeLabelProxies",()=>jYe(t)),e(" normalize.run",()=>Uhe(t)),e(" parentDummyChains",()=>Ofe(t)),e(" addBorderSegments",()=>Bhe(t)),e(" order",()=>Mfe(t)),e(" insertSelfEdges",()=>tje(t)),e(" adjustCoordinateSystem",()=>zhe(t)),e(" position",()=>zfe(t)),e(" positionSelfEdges",()=>rje(t)),e(" removeBorderNodes",()=>JYe(t)),e(" normalize.undo",()=>Whe(t)),e(" fixupEdgeLabelCoords",()=>QYe(t)),e(" undoCoordinateSystem",()=>Ghe(t)),e(" translateGraph",()=>XYe(t)),e(" assignNodeIntersects",()=>KYe(t)),e(" reversePoints",()=>ZYe(t)),e(" acyclic.undo",()=>_he(t))}function OYe(t,e){Oe(t.nodes(),function(r){var n=t.node(r),i=e.node(r);n&&(n.x=i.x,n.y=i.y,e.children(r).length&&(n.width=i.width,n.height=i.height))}),Oe(t.edges(),function(r){var n=t.edge(r),i=e.edge(r);n.points=i.points,Object.prototype.hasOwnProperty.call(i,"x")&&(n.x=i.x,n.y=i.y)}),t.graph().width=e.graph().width,t.graph().height=e.graph().height}function UYe(t){var e=new wn({multigraph:!0,compound:!0}),r=tO(t.graph());return e.setGraph(Hf({},BYe,eO(r,PYe),A0(r,FYe))),Oe(t.nodes(),function(n){var i=tO(t.node(n));e.setNode(n,ad(eO(i,$Ye),zYe)),e.setParent(n,t.parent(n))}),Oe(t.edges(),function(n){var i=tO(t.edge(n));e.setEdge(n,Hf({},VYe,eO(i,GYe),A0(i,qYe)))}),e}function WYe(t){var e=t.graph();e.ranksep/=2,Oe(t.edges(),function(r){var n=t.edge(r);n.minlen*=2,n.labelpos.toLowerCase()!=="c"&&(e.rankdir==="TB"||e.rankdir==="BT"?n.width+=n.labeloffset:n.height+=n.labeloffset)})}function HYe(t){Oe(t.edges(),function(e){var r=t.edge(e);if(r.width&&r.height){var n=t.node(e.v),i=t.node(e.w),a={rank:(i.rank-n.rank)/2+n.rank,e};Tu(t,"edge-proxy",a,"_ep")}})}function YYe(t){var e=0;Oe(t.nodes(),function(r){var n=t.node(r);n.borderTop&&(n.minRank=t.node(n.borderTop).rank,n.maxRank=t.node(n.borderBottom).rank,e=mo(e,n.maxRank))}),t.graph().maxRank=e}function jYe(t){Oe(t.nodes(),function(e){var r=t.node(e);r.dummy==="edge-proxy"&&(t.edge(r.e).labelRank=r.rank,t.removeNode(e))})}function XYe(t){var e=Number.POSITIVE_INFINITY,r=0,n=Number.POSITIVE_INFINITY,i=0,a=t.graph(),s=a.marginx||0,l=a.marginy||0;function u(h){var f=h.x,d=h.y,p=h.width,m=h.height;e=Math.min(e,f-p/2),r=Math.max(r,f+p/2),n=Math.min(n,d-m/2),i=Math.max(i,d+m/2)}o(u,"getExtremes"),Oe(t.nodes(),function(h){u(t.node(h))}),Oe(t.edges(),function(h){var f=t.edge(h);Object.prototype.hasOwnProperty.call(f,"x")&&u(f)}),e-=s,n-=l,Oe(t.nodes(),function(h){var f=t.node(h);f.x-=e,f.y-=n}),Oe(t.edges(),function(h){var f=t.edge(h);Oe(f.points,function(d){d.x-=e,d.y-=n}),Object.prototype.hasOwnProperty.call(f,"x")&&(f.x-=e),Object.prototype.hasOwnProperty.call(f,"y")&&(f.y-=n)}),a.width=r-e+s,a.height=i-n+l}function KYe(t){Oe(t.edges(),function(e){var r=t.edge(e),n=t.node(e.v),i=t.node(e.w),a,s;r.points?(a=r.points[0],s=r.points[r.points.length-1]):(r.points=[],a=i,s=n),r.points.unshift(II(n,a)),r.points.push(II(i,s))})}function QYe(t){Oe(t.edges(),function(e){var r=t.edge(e);if(Object.prototype.hasOwnProperty.call(r,"x"))switch((r.labelpos==="l"||r.labelpos==="r")&&(r.width-=r.labeloffset),r.labelpos){case"l":r.x-=r.width/2+r.labeloffset;break;case"r":r.x+=r.width/2+r.labeloffset;break}})}function ZYe(t){Oe(t.edges(),function(e){var r=t.edge(e);r.reversed&&r.points.reverse()})}function JYe(t){Oe(t.nodes(),function(e){if(t.children(e).length){var r=t.node(e),n=t.node(r.borderTop),i=t.node(r.borderBottom),a=t.node(ba(r.borderLeft)),s=t.node(ba(r.borderRight));r.width=Math.abs(s.x-a.x),r.height=Math.abs(i.y-n.y),r.x=a.x+r.width/2,r.y=n.y+r.height/2}}),Oe(t.nodes(),function(e){t.node(e).dummy==="border"&&t.removeNode(e)})}function eje(t){Oe(t.edges(),function(e){if(e.v===e.w){var r=t.node(e.v);r.selfEdges||(r.selfEdges=[]),r.selfEdges.push({e,label:t.edge(e)}),t.removeEdge(e)}})}function tje(t){var e=ld(t);Oe(e,function(r){var n=0;Oe(r,function(i,a){var s=t.node(i);s.order=a+n,Oe(s.selfEdges,function(l){Tu(t,"selfedge",{width:l.label.width,height:l.label.height,rank:s.rank,order:a+ ++n,e:l.e,label:l.label},"_se")}),delete s.selfEdges})})}function rje(t){Oe(t.nodes(),function(e){var r=t.node(e);if(r.dummy==="selfedge"){var n=t.node(r.e.v),i=n.x+n.width/2,a=n.y,s=r.x-i,l=n.height/2;t.setEdge(r.e,r.label),t.removeNode(e),r.label.points=[{x:i+2*s/3,y:a-l},{x:i+5*s/6,y:a-l},{x:i+s,y:a},{x:i+5*s/6,y:a+l},{x:i+2*s/3,y:a+l}],r.label.x=r.x,r.label.y=r.y}})}function eO(t,e){return S0(A0(t,e),Number)}function tO(t){var e={};return Oe(t,function(r,n){e[n.toLowerCase()]=r}),e}var PYe,BYe,FYe,$Ye,zYe,GYe,VYe,qYe,Vfe=O(()=>{"use strict";rr();Dl();Fhe();qhe();MI();$I();ZI();pfe();Ife();Pfe();Gfe();wu();o(Cb,"layout");o(IYe,"runLayout");o(OYe,"updateInputGraph");PYe=["nodesep","edgesep","ranksep","marginx","marginy"],BYe={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},FYe=["acyclicer","ranker","rankdir","align"],$Ye=["width","height"],zYe={width:0,height:0},GYe=["minlen","weight","width","height","labeloffset"],VYe={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},qYe=["labelpos"];o(UYe,"buildLayoutGraph");o(WYe,"makeSpaceForEdgeLabels");o(HYe,"injectEdgeLabelProxies");o(YYe,"assignRankMinMax");o(jYe,"removeEdgeLabelProxies");o(XYe,"translateGraph");o(KYe,"assignNodeIntersects");o(QYe,"fixupEdgeLabelCoords");o(ZYe,"reversePointsForReversedEdges");o(JYe,"removeBorderNodes");o(eje,"removeSelfEdges");o(tje,"insertSelfEdges");o(rje,"positionSelfEdges");o(eO,"selectNumberAttrs");o(tO,"canonicalize")});var rO=O(()=>{"use strict";MI();Vfe();$I();ZI()});function Rl(t){var e={options:{directed:t.isDirected(),multigraph:t.isMultigraph(),compound:t.isCompound()},nodes:nje(t),edges:ije(t)};return Dr(t.graph())||(e.value=Tn(t.graph())),e}function nje(t){return lt(t.nodes(),function(e){var r=t.node(e),n=t.parent(e),i={v:e};return Dr(r)||(i.value=r),Dr(n)||(i.parent=n),i})}function ije(t){return lt(t.edges(),function(e){var r=t.edge(e),n={v:e.v,w:e.w};return Dr(e.name)||(n.name=e.name),Dr(r)||(n.value=r),n})}var nO=O(()=>{"use strict";rr();dS();o(Rl,"write");o(nje,"writeNodes");o(ije,"writeEdges")});var Vr,L0,Wfe,Hfe,bS,aje,Yfe,jfe,sje,B1,Ufe,Xfe,Kfe,Qfe,Zfe,Jfe=O(()=>{"use strict";xt();Dl();nO();Vr=new Map,L0=new Map,Wfe=new Map,Hfe=o(()=>{L0.clear(),Wfe.clear(),Vr.clear()},"clear"),bS=o((t,e)=>{let r=L0.get(e)||[];return K.trace("In isDescendant",e," ",t," = ",r.includes(t)),r.includes(t)},"isDescendant"),aje=o((t,e)=>{let r=L0.get(e)||[];return K.info("Descendants of ",e," is ",r),K.info("Edge is ",t),t.v===e||t.w===e?!1:r?r.includes(t.v)||bS(t.v,e)||bS(t.w,e)||r.includes(t.w):(K.debug("Tilt, ",e,",not in descendants"),!1)},"edgeInCluster"),Yfe=o((t,e,r,n)=>{K.warn("Copying children of ",t,"root",n,"data",e.node(t),n);let i=e.children(t)||[];t!==n&&i.push(t),K.warn("Copying (nodes) clusterId",t,"nodes",i),i.forEach(a=>{if(e.children(a).length>0)Yfe(a,e,r,n);else{let s=e.node(a);K.info("cp ",a," to ",n," with parent ",t),r.setNode(a,s),n!==e.parent(a)&&(K.warn("Setting parent",a,e.parent(a)),r.setParent(a,e.parent(a))),t!==n&&a!==t?(K.debug("Setting parent",a,t),r.setParent(a,t)):(K.info("In copy ",t,"root",n,"data",e.node(t),n),K.debug("Not Setting parent for node=",a,"cluster!==rootId",t!==n,"node!==clusterId",a!==t));let l=e.edges(a);K.debug("Copying Edges",l),l.forEach(u=>{K.info("Edge",u);let h=e.edge(u.v,u.w,u.name);K.info("Edge data",h,n);try{aje(u,n)?(K.info("Copying as ",u.v,u.w,h,u.name),r.setEdge(u.v,u.w,h,u.name),K.info("newGraph edges ",r.edges(),r.edge(r.edges()[0]))):K.info("Skipping copy of edge ",u.v,"-->",u.w," rootId: ",n," clusterId:",t)}catch(f){K.error(f)}})}K.debug("Removing node",a),e.removeNode(a)})},"copy"),jfe=o((t,e)=>{let r=e.children(t),n=[...r];for(let i of r)Wfe.set(i,t),n=[...n,...jfe(i,e)];return n},"extractDescendants"),sje=o((t,e,r)=>{let n=t.edges().filter(u=>u.v===e||u.w===e),i=t.edges().filter(u=>u.v===r||u.w===r),a=n.map(u=>({v:u.v===e?r:u.v,w:u.w===e?e:u.w})),s=i.map(u=>({v:u.v,w:u.w}));return a.filter(u=>s.some(h=>u.v===h.v&&u.w===h.w))},"findCommonEdges"),B1=o((t,e,r)=>{let n=e.children(t);if(K.trace("Searching children of id ",t,n),n.length<1)return t;let i;for(let a of n){let s=B1(a,e,r),l=sje(e,r,s);if(s)if(l.length>0)i=s;else return s}return i},"findNonClusterChild"),Ufe=o(t=>!Vr.has(t)||!Vr.get(t).externalConnections?t:Vr.has(t)?Vr.get(t).id:t,"getAnchorId"),Xfe=o((t,e)=>{if(!t||e>10){K.debug("Opting out, no graph ");return}else K.debug("Opting in, graph ");t.nodes().forEach(function(r){t.children(r).length>0&&(K.warn("Cluster identified",r," Replacement id in edges: ",B1(r,t,r)),L0.set(r,jfe(r,t)),Vr.set(r,{id:B1(r,t,r),clusterData:t.node(r)}))}),t.nodes().forEach(function(r){let n=t.children(r),i=t.edges();n.length>0?(K.debug("Cluster identified",r,L0),i.forEach(a=>{let s=bS(a.v,r),l=bS(a.w,r);s^l&&(K.warn("Edge: ",a," leaves cluster ",r),K.warn("Descendants of XXX ",r,": ",L0.get(r)),Vr.get(r).externalConnections=!0)})):K.debug("Not a cluster ",r,L0)});for(let r of Vr.keys()){let n=Vr.get(r).id,i=t.parent(n);i!==r&&Vr.has(i)&&!Vr.get(i).externalConnections&&(Vr.get(r).id=i)}t.edges().forEach(function(r){let n=t.edge(r);K.warn("Edge "+r.v+" -> "+r.w+": "+JSON.stringify(r)),K.warn("Edge "+r.v+" -> "+r.w+": "+JSON.stringify(t.edge(r)));let i=r.v,a=r.w;if(K.warn("Fix XXX",Vr,"ids:",r.v,r.w,"Translating: ",Vr.get(r.v)," --- ",Vr.get(r.w)),Vr.get(r.v)||Vr.get(r.w)){if(K.warn("Fixing and trying - removing XXX",r.v,r.w,r.name),i=Ufe(r.v),a=Ufe(r.w),t.removeEdge(r.v,r.w,r.name),i!==r.v){let s=t.parent(i);Vr.get(s).externalConnections=!0,n.fromCluster=r.v}if(a!==r.w){let s=t.parent(a);Vr.get(s).externalConnections=!0,n.toCluster=r.w}K.warn("Fix Replacing with XXX",i,a,r.name),t.setEdge(i,a,n,r.name)}}),K.warn("Adjusted Graph",Rl(t)),Kfe(t,0),K.trace(Vr)},"adjustClustersAndEdges"),Kfe=o((t,e)=>{if(K.warn("extractor - ",e,Rl(t),t.children("D")),e>10){K.error("Bailing out");return}let r=t.nodes(),n=!1;for(let i of r){let a=t.children(i);n=n||a.length>0}if(!n){K.debug("Done, no node has children",t.nodes());return}K.debug("Nodes = ",r,e);for(let i of r)if(K.debug("Extracting node",i,Vr,Vr.has(i)&&!Vr.get(i).externalConnections,!t.parent(i),t.node(i),t.children("D")," Depth ",e),!Vr.has(i))K.debug("Not a cluster",i,e);else if(!Vr.get(i).externalConnections&&t.children(i)&&t.children(i).length>0){K.warn("Cluster without external connections, without a parent and with children",i,e);let s=t.graph().rankdir==="TB"?"LR":"TB";Vr.get(i)?.clusterData?.dir&&(s=Vr.get(i).clusterData.dir,K.warn("Fixing dir",Vr.get(i).clusterData.dir,s));let l=new wn({multigraph:!0,compound:!0}).setGraph({rankdir:s,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});K.warn("Old graph before copy",Rl(t)),Yfe(i,t,l,i),t.setNode(i,{clusterNode:!0,id:i,clusterData:Vr.get(i).clusterData,label:Vr.get(i).label,graph:l}),K.warn("New graph after copy node: (",i,")",Rl(l)),K.debug("Old graph after copy",Rl(t))}else K.warn("Cluster ** ",i," **not meeting the criteria !externalConnections:",!Vr.get(i).externalConnections," no parent: ",!t.parent(i)," children ",t.children(i)&&t.children(i).length>0,t.children("D"),e),K.debug(Vr);r=t.nodes(),K.warn("New list of nodes",r);for(let i of r){let a=t.node(i);K.warn(" Now next level",i,a),a?.clusterNode&&Kfe(a.graph,e+1)}},"extractor"),Qfe=o((t,e)=>{if(e.length===0)return[];let r=Object.assign([],e);return e.forEach(n=>{let i=t.children(n),a=Qfe(t,i);r=[...r,...a]}),r},"sorter"),Zfe=o(t=>Qfe(t,t.children()),"sortNodesByHierarchy")});var tde={};vr(tde,{render:()=>oje});var ede,oje,rde=O(()=>{"use strict";rO();nO();Dl();GM();$t();Jfe();yE();oE();zM();xt();gb();jt();ede=o(async(t,e,r,n,i,a)=>{K.warn("Graph in recursive render:XAX",Rl(e),i);let s=e.graph().rankdir;K.trace("Dir in recursive render - dir:",s);let l=t.insert("g").attr("class","root");e.nodes()?K.info("Recursive render XXX",e.nodes()):K.info("No nodes found for",e),e.edges().length>0&&K.info("Recursive edges",e.edge(e.edges()[0]));let u=l.insert("g").attr("class","clusters"),h=l.insert("g").attr("class","edgePaths"),f=l.insert("g").attr("class","edgeLabels"),d=l.insert("g").attr("class","nodes");await Promise.all(e.nodes().map(async function(y){let v=e.node(y);if(i!==void 0){let x=JSON.parse(JSON.stringify(i.clusterData));K.trace(`Setting data for parent cluster XXX + Node.id = `,y,` + data=`,x.height,` +Parent cluster`,i.height),e.setNode(i.id,x),e.parent(y)||(K.trace("Setting parent",y,i.id),e.setParent(y,i.id,x))}if(K.info("(Insert) Node XXX"+y+": "+JSON.stringify(e.node(y))),v?.clusterNode){K.info("Cluster identified XBX",y,v.width,e.node(y));let{ranksep:x,nodesep:b}=e.graph();v.graph.setGraph({...v.graph.graph(),ranksep:x+25,nodesep:b});let T=await ede(d,v.graph,r,n,e.node(y),a),E=T.elem;rt(v,E),v.diff=T.diff||0,K.info("New compound node after recursive render XAX",y,"width",v.width,"height",v.height),xoe(E,v)}else e.children(y).length>0?(K.trace("Cluster - the non recursive path XBX",y,v.id,v,v.width,"Graph:",e),K.trace(B1(v.id,e)),Vr.set(v.id,{id:B1(v.id,e),node:v})):(K.trace("Node - the non recursive path XAX",y,d,e.node(y),s),await y1(d,e.node(y),{config:a,dir:s}))})),await o(async()=>{let y=e.edges().map(async function(v){let x=e.edge(v.v,v.w,v.name);K.info("Edge "+v.v+" -> "+v.w+": "+JSON.stringify(v)),K.info("Edge "+v.v+" -> "+v.w+": ",v," ",JSON.stringify(e.edge(v))),K.info("Fix",Vr,"ids:",v.v,v.w,"Translating: ",Vr.get(v.v),Vr.get(v.w)),await fE(f,x)});await Promise.all(y)},"processEdges")(),K.info("Graph before layout:",JSON.stringify(Rl(e))),K.info("############################################# XXX"),K.info("### Layout ### XXX"),K.info("############################################# XXX"),Cb(e),K.info("Graph after layout:",JSON.stringify(Rl(e)));let m=0,{subGraphTitleTotalMargin:g}=Lh(a);return await Promise.all(Zfe(e).map(async function(y){let v=e.node(y);if(K.info("Position XBX => "+y+": ("+v.x,","+v.y,") width: ",v.width," height: ",v.height),v?.clusterNode)v.y+=g,K.info("A tainted cluster node XBX1",y,v.id,v.width,v.height,v.x,v.y,e.parent(y)),Vr.get(v.id).node=v,vb(v);else if(e.children(y).length>0){K.info("A pure cluster node XBX1",y,v.id,v.x,v.y,v.width,v.height,e.parent(y)),v.height+=g,e.node(v.parentId);let x=v?.padding/2||0,b=v?.labelBBox?.height||0,T=b-x||0;K.debug("OffsetY",T,"labelHeight",b,"halfPadding",x),await g1(u,v),Vr.get(v.id).node=v}else{let x=e.node(v.parentId);v.y+=g/2,K.info("A regular node XBX1 - using the padding",v.id,"parent",v.parentId,v.width,v.height,v.x,v.y,"offsetY",v.offsetY,"parent",x,x?.offsetY,v),vb(v)}})),e.edges().forEach(function(y){let v=e.edge(y);K.info("Edge "+y.v+" -> "+y.w+": "+JSON.stringify(v),v),v.points.forEach(E=>E.y+=g/2);let x=e.node(y.v);var b=e.node(y.w);let T=pE(h,v,Vr,r,x,b,n);dE(v,T)}),e.nodes().forEach(function(y){let v=e.node(y);K.info(y,v.type,v.diff),v.isGroup&&(m=v.diff)}),K.warn("Returning from recursive render XAX",l,m),{elem:l,diff:m}},"recursiveRender"),oje=o(async(t,e)=>{let r=new wn({multigraph:!0,compound:!0}).setGraph({rankdir:t.direction,nodesep:t.config?.nodeSpacing||t.config?.flowchart?.nodeSpacing||t.nodeSpacing,ranksep:t.config?.rankSpacing||t.config?.flowchart?.rankSpacing||t.rankSpacing,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}}),n=e.select("g");mE(n,t.markers,t.type,t.diagramId),boe(),voe(),hoe(),Hfe(),t.nodes.forEach(a=>{r.setNode(a.id,{...a}),a.parentId&&r.setParent(a.id,a.parentId)}),K.debug("Edges:",t.edges),t.edges.forEach(a=>{if(a.start===a.end){let s=a.start,l=s+"---"+s+"---1",u=s+"---"+s+"---2",h=r.node(s);r.setNode(l,{domId:l,id:l,parentId:h.parentId,labelStyle:"",label:"",padding:0,shape:"labelRect",style:"",width:10,height:10}),r.setParent(l,h.parentId),r.setNode(u,{domId:u,id:u,parentId:h.parentId,labelStyle:"",padding:0,shape:"labelRect",label:"",style:"",width:10,height:10}),r.setParent(u,h.parentId);let f=structuredClone(a),d=structuredClone(a),p=structuredClone(a);f.label="",f.arrowTypeEnd="none",f.id=s+"-cyclic-special-1",d.arrowTypeStart="none",d.arrowTypeEnd="none",d.id=s+"-cyclic-special-mid",p.label="",h.isGroup&&(f.fromCluster=s,p.toCluster=s),p.id=s+"-cyclic-special-2",p.arrowTypeStart="none",r.setEdge(s,l,f,s+"-cyclic-special-0"),r.setEdge(l,u,d,s+"-cyclic-special-1"),r.setEdge(u,s,p,s+"-cyct.length)&&(e=t.length);for(var r=0,n=Array(e);r=t.length?{done:!0}:{done:!1,value:t[n++]}},"n"),e:o(function(u){throw u},"e"),f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var a,s=!0,l=!1;return{s:o(function(){r=r.call(t)},"s"),n:o(function(){var u=r.next();return s=u.done,u},"n"),e:o(function(u){l=!0,a=u},"e"),f:o(function(){try{s||r.return==null||r.return()}finally{if(l)throw a}},"f")}}function L0e(t,e,r){return(e=N0e(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function hje(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function fje(t,e){var r=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(r!=null){var n,i,a,s,l=[],u=!0,h=!1;try{if(a=(r=r.call(t)).next,e===0){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=a.call(r)).done)&&(l.push(n.value),l.length!==e);u=!0);}catch(f){h=!0,i=f}finally{try{if(!u&&r.return!=null&&(s=r.return(),Object(s)!==s))return}finally{if(h)throw i}}return l}}function dje(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function pje(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Wi(t,e){return lje(t)||fje(t,e)||eB(t,e)||dje()}function WS(t){return cje(t)||hje(t)||eB(t)||pje()}function mje(t,e){if(typeof t!="object"||!t)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}function N0e(t){var e=mje(t,"string");return typeof e=="symbol"?e:e+""}function aa(t){"@babel/helpers - typeof";return aa=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},aa(t)}function eB(t,e){if(t){if(typeof t=="string")return IP(t,e);var r={}.toString.call(t).slice(8,-1);return r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set"?Array.from(t):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?IP(t,e):void 0}}function Zb(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function Jb(){if(ade)return iO;ade=1;function t(e){var r=typeof e;return e!=null&&(r=="object"||r=="function")}return o(t,"isObject"),iO=t,iO}function Fje(){if(sde)return aO;sde=1;var t=typeof TS=="object"&&TS&&TS.Object===Object&&TS;return aO=t,aO}function sC(){if(ode)return sO;ode=1;var t=Fje(),e=typeof self=="object"&&self&&self.Object===Object&&self,r=t||e||Function("return this")();return sO=r,sO}function $je(){if(lde)return oO;lde=1;var t=sC(),e=o(function(){return t.Date.now()},"now");return oO=e,oO}function zje(){if(cde)return lO;cde=1;var t=/\s/;function e(r){for(var n=r.length;n--&&t.test(r.charAt(n)););return n}return o(e,"trimmedEndIndex"),lO=e,lO}function Gje(){if(ude)return cO;ude=1;var t=zje(),e=/^\s+/;function r(n){return n&&n.slice(0,t(n)+1).replace(e,"")}return o(r,"baseTrim"),cO=r,cO}function nB(){if(hde)return uO;hde=1;var t=sC(),e=t.Symbol;return uO=e,uO}function Vje(){if(fde)return hO;fde=1;var t=nB(),e=Object.prototype,r=e.hasOwnProperty,n=e.toString,i=t?t.toStringTag:void 0;function a(s){var l=r.call(s,i),u=s[i];try{s[i]=void 0;var h=!0}catch{}var f=n.call(s);return h&&(l?s[i]=u:delete s[i]),f}return o(a,"getRawTag"),hO=a,hO}function qje(){if(dde)return fO;dde=1;var t=Object.prototype,e=t.toString;function r(n){return e.call(n)}return o(r,"objectToString"),fO=r,fO}function G0e(){if(pde)return dO;pde=1;var t=nB(),e=Vje(),r=qje(),n="[object Null]",i="[object Undefined]",a=t?t.toStringTag:void 0;function s(l){return l==null?l===void 0?i:n:a&&a in Object(l)?e(l):r(l)}return o(s,"baseGetTag"),dO=s,dO}function Uje(){if(mde)return pO;mde=1;function t(e){return e!=null&&typeof e=="object"}return o(t,"isObjectLike"),pO=t,pO}function eT(){if(gde)return mO;gde=1;var t=G0e(),e=Uje(),r="[object Symbol]";function n(i){return typeof i=="symbol"||e(i)&&t(i)==r}return o(n,"isSymbol"),mO=n,mO}function Wje(){if(yde)return gO;yde=1;var t=Gje(),e=Jb(),r=eT(),n=NaN,i=/^[-+]0x[0-9a-f]+$/i,a=/^0b[01]+$/i,s=/^0o[0-7]+$/i,l=parseInt;function u(h){if(typeof h=="number")return h;if(r(h))return n;if(e(h)){var f=typeof h.valueOf=="function"?h.valueOf():h;h=e(f)?f+"":f}if(typeof h!="string")return h===0?h:+h;h=t(h);var d=a.test(h);return d||s.test(h)?l(h.slice(2),d?2:8):i.test(h)?n:+h}return o(u,"toNumber"),gO=u,gO}function Hje(){if(vde)return yO;vde=1;var t=Jb(),e=$je(),r=Wje(),n="Expected a function",i=Math.max,a=Math.min;function s(l,u,h){var f,d,p,m,g,y,v=0,x=!1,b=!1,T=!0;if(typeof l!="function")throw new TypeError(n);u=r(u)||0,t(h)&&(x=!!h.leading,b="maxWait"in h,p=b?i(r(h.maxWait)||0,u):p,T="trailing"in h?!!h.trailing:T);function E(_){var D=f,M=d;return f=d=void 0,v=_,m=l.apply(M,D),m}o(E,"invokeFunc");function w(_){return v=_,g=setTimeout(A,u),x?E(_):m}o(w,"leadingEdge");function k(_){var D=_-y,M=_-v,R=u-D;return b?a(R,p-M):R}o(k,"remainingWait");function S(_){var D=_-y,M=_-v;return y===void 0||D>=u||D<0||b&&M>=p}o(S,"shouldInvoke");function A(){var _=e();if(S(_))return L(_);g=setTimeout(A,k(_))}o(A,"timerExpired");function L(_){return g=void 0,T&&f?E(_):(f=d=void 0,m)}o(L,"trailingEdge");function I(){g!==void 0&&clearTimeout(g),v=0,f=y=d=g=void 0}o(I,"cancel");function N(){return g===void 0?m:L(e())}o(N,"flush");function C(){var _=e(),D=S(_);if(f=arguments,d=this,y=_,D){if(g===void 0)return w(y);if(b)return clearTimeout(g),g=setTimeout(A,u),E(y)}return g===void 0&&(g=setTimeout(A,u)),m}return o(C,"debounced"),C.cancel=I,C.flush=N,C}return o(s,"debounce"),yO=s,yO}function Qje(t,e,r,n,i){var a=i*Math.PI/180,s=Math.cos(a)*(t-r)-Math.sin(a)*(e-n)+r,l=Math.sin(a)*(t-r)+Math.cos(a)*(e-n)+n;return{x:s,y:l}}function Jje(t,e,r){if(r===0)return t;var n=(e.x1+e.x2)/2,i=(e.y1+e.y2)/2,a=e.w/e.h,s=1/a,l=Qje(t.x,t.y,n,i,r),u=Zje(l.x,l.y,n,i,a,s);return{x:u.x,y:u.y}}function uXe(){return kde||(kde=1,(function(t,e){(function(){var r,n,i,a,s,l,u,h,f,d,p,m,g,y,v;i=Math.floor,d=Math.min,n=o(function(x,b){return xb?1:0},"defaultCmp"),f=o(function(x,b,T,E,w){var k;if(T==null&&(T=0),w==null&&(w=n),T<0)throw new Error("lo must be non-negative");for(E==null&&(E=x.length);TI;0<=I?L++:L--)A.push(L);return A}).apply(this).reverse(),S=[],E=0,w=k.length;EN;0<=N?++A:--A)C.push(s(x,T));return C},"nsmallest"),y=o(function(x,b,T,E){var w,k,S;for(E==null&&(E=n),w=x[T];T>b;){if(S=T-1>>1,k=x[S],E(w,k)<0){x[T]=k,T=S;continue}break}return x[T]=w},"_siftdown"),v=o(function(x,b,T){var E,w,k,S,A;for(T==null&&(T=n),w=x.length,A=b,k=x[b],E=2*b+1;E-1}return o(e,"listCacheHas"),HO=e,HO}function nQe(){if(upe)return YO;upe=1;var t=fC();function e(r,n){var i=this.__data__,a=t(i,r);return a<0?(++this.size,i.push([r,n])):i[a][1]=n,this}return o(e,"listCacheSet"),YO=e,YO}function iQe(){if(hpe)return jO;hpe=1;var t=JKe(),e=eQe(),r=tQe(),n=rQe(),i=nQe();function a(s){var l=-1,u=s==null?0:s.length;for(this.clear();++l-1&&n%1==0&&n0;){var f=i.shift();e(f),a.add(f.id()),l&&n(i,a,f)}return t}function vme(t,e,r){if(r.isParent())for(var n=r._private.children,i=0;i0&&arguments[0]!==void 0?arguments[0]:pZe,e=arguments.length>1?arguments[1]:void 0,r=0;r0?C=D:N=D;while(Math.abs(_)>s&&++M=a?b(I,M):R===0?M:E(I,N,N+h)}o(w,"getTForX");var k=!1;function S(){k=!0,(t!==e||r!==n)&&T()}o(S,"precompute");var A=o(function(N){return k||S(),t===e&&r===n?N:N===0?0:N===1?1:v(w(N),e,n)},"f");A.getControlPoints=function(){return[{x:t,y:e},{x:r,y:n}]};var L="generateBezier("+[t,e,r,n]+")";return A.toString=function(){return L},A}function e0e(t,e,r,n,i){if(n===1||e===r)return r;var a=i(e,r,n);return t==null||((t.roundValue||t.color)&&(a=Math.round(a)),t.min!==void 0&&(a=Math.max(a,t.min)),t.max!==void 0&&(a=Math.min(a,t.max))),a}function t0e(t,e){return t.pfValue!=null||t.value!=null?t.pfValue!=null&&(e==null||e.type.units!=="%")?t.pfValue:t.value:t}function z1(t,e,r,n,i){var a=i!=null?i.type:null;r<0?r=0:r>1&&(r=1);var s=t0e(t,i),l=t0e(e,i);if(Nt(s)&&Nt(l))return e0e(a,s,l,r,n);if($n(s)&&$n(l)){for(var u=[],h=0;h0?(m==="spring"&&g.push(s.duration),s.easingImpl=$S[m].apply(null,g)):s.easingImpl=$S[m]}var y=s.easingImpl,v;if(s.duration===0?v=1:v=(r-u)/s.duration,s.applying&&(v=s.progress),v<0?v=0:v>1&&(v=1),s.delay==null){var x=s.startPosition,b=s.position;if(b&&i&&!t.locked()){var T={};Rb(x.x,b.x)&&(T.x=z1(x.x,b.x,v,y)),Rb(x.y,b.y)&&(T.y=z1(x.y,b.y,v,y)),t.position(T)}var E=s.startPan,w=s.pan,k=a.pan,S=w!=null&&n;S&&(Rb(E.x,w.x)&&(k.x=z1(E.x,w.x,v,y)),Rb(E.y,w.y)&&(k.y=z1(E.y,w.y,v,y)),t.emit("pan"));var A=s.startZoom,L=s.zoom,I=L!=null&&n;I&&(Rb(A,L)&&(a.zoom=qb(a.minZoom,z1(A,L,v,y),a.maxZoom)),t.emit("zoom")),(S||I)&&t.emit("viewport");var N=s.style;if(N&&N.length>0&&i){for(var C=0;C=0;S--){var A=k[S];A()}k.splice(0,k.length)},"callbacks"),b=m.length-1;b>=0;b--){var T=m[b],E=T._private;if(E.stopped){m.splice(b,1),E.hooked=!1,E.playing=!1,E.started=!1,x(E.frames);continue}!E.playing&&!E.applying||(E.playing&&E.applying&&(E.applying=!1),E.started||_Ze(f,T,t),AZe(f,T,t,d),E.applying&&(E.applying=!1),x(E.frames),E.step!=null&&E.step(t),T.completed()&&(m.splice(b,1),E.hooked=!1,E.playing=!1,E.started=!1,x(E.completes)),y=!0)}return!d&&m.length===0&&g.length===0&&n.push(f),y}o(i,"stepOne");for(var a=!1,s=0;s0?e.notify("draw",r):e.notify("draw")),r.unmerge(n),e.emit("step")}function Pme(t){this.options=pr({},PZe,BZe,t)}function Bme(t){this.options=pr({},FZe,t)}function Fme(t){this.options=pr({},$Ze,t)}function bC(t){this.options=pr({},zZe,t),this.options.layout=this;var e=this.options.eles.nodes(),r=this.options.eles.edges(),n=r.filter(function(i){var a=i.source().data("id"),s=i.target().data("id"),l=e.some(function(h){return h.data("id")===a}),u=e.some(function(h){return h.data("id")===s});return!l||!u});this.options.eles=this.options.eles.not(n)}function Vme(t){this.options=pr({},tJe,t)}function xB(t){this.options=pr({},rJe,t)}function qme(t){this.options=pr({},nJe,t)}function Ume(t){this.options=pr({},iJe,t)}function Wme(t){this.options=t,this.notifications=0}function jme(t,e){e.radius===0?t.lineTo(e.cx,e.cy):t.arc(e.cx,e.cy,e.radius,e.startAngle,e.endAngle,e.counterClockwise)}function TB(t,e,r,n){var i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0;return n===0||e.radius===0?{cx:e.x,cy:e.y,radius:0,startX:e.x,startY:e.y,stopX:e.x,stopY:e.y,startAngle:void 0,endAngle:void 0,counterClockwise:void 0}:(oJe(t,e,r,n,i),{cx:WP,cy:HP,radius:P0,startX:Hme,startY:Yme,stopX:YP,stopY:jP,startAngle:Su.ang+Math.PI/2*F0,endAngle:Ll.ang-Math.PI/2*F0,counterClockwise:VS})}function Xme(t){var e=[];if(t!=null){for(var r=0;r5&&arguments[5]!==void 0?arguments[5]:5,s=Math.min(a,n/2,i/2);t.beginPath(),t.moveTo(e+s,r),t.lineTo(e+n-s,r),t.quadraticCurveTo(e+n,r,e+n,r+s),t.lineTo(e+n,r+i-s),t.quadraticCurveTo(e+n,r+i,e+n-s,r+i),t.lineTo(e+s,r+i),t.quadraticCurveTo(e,r+i,e,r+i-s),t.lineTo(e,r+s),t.quadraticCurveTo(e,r,e+s,r),t.closePath()}function w0e(t,e,r){var n=t.createShader(e);if(t.shaderSource(n,r),t.compileShader(n),!t.getShaderParameter(n,t.COMPILE_STATUS))throw new Error(t.getShaderInfoLog(n));return n}function KJe(t,e,r){var n=w0e(t,t.VERTEX_SHADER,e),i=w0e(t,t.FRAGMENT_SHADER,r),a=t.createProgram();if(t.attachShader(a,n),t.attachShader(a,i),t.linkProgram(a),!t.getProgramParameter(a,t.LINK_STATUS))throw new Error("Could not initialize shaders");return a}function QJe(t,e,r){r===void 0&&(r=e);var n=t.makeOffscreenCanvas(e,r),i=n.context=n.getContext("2d");return n.clear=function(){return i.clearRect(0,0,n.width,n.height)},n.clear(),n}function EB(t){var e=t.pixelRatio,r=t.cy.zoom(),n=t.cy.pan();return{zoom:r*e,pan:{x:n.x*e,y:n.y*e}}}function ZJe(t){var e=t.pixelRatio,r=t.cy.zoom();return r*e}function JJe(t,e,r,n,i){var a=n*r+e.x,s=i*r+e.y;return s=Math.round(t.canvasHeight-s),[a,s]}function eet(t){return t.pstyle("background-fill").value!=="solid"||t.pstyle("background-image").strValue!=="none"?!1:t.pstyle("border-width").value===0||t.pstyle("border-opacity").value===0?!0:t.pstyle("border-style").value==="solid"}function tet(t,e){if(t.length!==e.length)return!1;for(var r=0;r>0&255)/255,r[1]=(t>>8&255)/255,r[2]=(t>>16&255)/255,r[3]=(t>>24&255)/255,r}function ret(t){return t[0]+(t[1]<<8)+(t[2]<<16)+(t[3]<<24)}function net(t,e){var r=t.createTexture();return r.buffer=function(n){t.bindTexture(t.TEXTURE_2D,r),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR_MIPMAP_NEAREST),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,n),t.generateMipmap(t.TEXTURE_2D),t.bindTexture(t.TEXTURE_2D,null)},r.deleteTexture=function(){t.deleteTexture(r)},r}function lge(t,e){switch(e){case"float":return[1,t.FLOAT,4];case"vec2":return[2,t.FLOAT,4];case"vec3":return[3,t.FLOAT,4];case"vec4":return[4,t.FLOAT,4];case"int":return[1,t.INT,4];case"ivec2":return[2,t.INT,4]}}function cge(t,e,r){switch(e){case t.FLOAT:return new Float32Array(r);case t.INT:return new Int32Array(r)}}function iet(t,e,r,n,i,a){switch(e){case t.FLOAT:return new Float32Array(r.buffer,a*n,i);case t.INT:return new Int32Array(r.buffer,a*n,i)}}function aet(t,e,r,n){var i=lge(t,e),a=Wi(i,2),s=a[0],l=a[1],u=cge(t,l,n),h=t.createBuffer();return t.bindBuffer(t.ARRAY_BUFFER,h),t.bufferData(t.ARRAY_BUFFER,u,t.STATIC_DRAW),l===t.FLOAT?t.vertexAttribPointer(r,s,l,!1,0,0):l===t.INT&&t.vertexAttribIPointer(r,s,l,0,0),t.enableVertexAttribArray(r),t.bindBuffer(t.ARRAY_BUFFER,null),h}function Eu(t,e,r,n){var i=lge(t,r),a=Wi(i,3),s=a[0],l=a[1],u=a[2],h=cge(t,l,e*s),f=s*u,d=t.createBuffer();t.bindBuffer(t.ARRAY_BUFFER,d),t.bufferData(t.ARRAY_BUFFER,e*f,t.DYNAMIC_DRAW),t.enableVertexAttribArray(n),l===t.FLOAT?t.vertexAttribPointer(n,s,l,!1,f,0):l===t.INT&&t.vertexAttribIPointer(n,s,l,f,0),t.vertexAttribDivisor(n,1),t.bindBuffer(t.ARRAY_BUFFER,null);for(var p=new Array(e),m=0;mnge?(ket(t),e.call(t,a)):(Eet(t),dge(t,a,$b.SCREEN)))}}{var r=t.matchCanvasSize;t.matchCanvasSize=function(a){r.call(t,a),t.pickingFrameBuffer.setFramebufferAttachmentSizes(t.canvasWidth,t.canvasHeight),t.pickingFrameBuffer.needsDraw=!0}}t.findNearestElements=function(a,s,l,u){return Let(t,a,s)};{var n=t.invalidateCachedZSortedEles;t.invalidateCachedZSortedEles=function(){n.call(t),t.pickingFrameBuffer.needsDraw=!0}}{var i=t.notify;t.notify=function(a,s){i.call(t,a,s),a==="viewport"||a==="bounds"?t.pickingFrameBuffer.needsDraw=!0:a==="background"&&t.drawing.invalidate(s,{type:"node-body"})}}}function ket(t){var e=t.data.contexts[t.WEBGL];e.clear(e.COLOR_BUFFER_BIT|e.DEPTH_BUFFER_BIT)}function Eet(t){var e=o(function(n){n.save(),n.setTransform(1,0,0,1,0,0),n.clearRect(0,0,t.canvasWidth,t.canvasHeight),n.restore()},"clear");e(t.data.contexts[t.NODE]),e(t.data.contexts[t.DRAG])}function Cet(t){var e=t.canvasWidth,r=t.canvasHeight,n=EB(t),i=n.pan,a=n.zoom,s=_P();US(s,s,[i.x,i.y]),KP(s,s,[a,a]);var l=_P();uet(l,e,r);var u=_P();return cet(u,l,s),u}function fge(t,e){var r=t.canvasWidth,n=t.canvasHeight,i=EB(t),a=i.pan,s=i.zoom;e.setTransform(1,0,0,1,0,0),e.clearRect(0,0,r,n),e.translate(a.x,a.y),e.scale(s,s)}function Aet(t,e){t.drawSelectionRectangle(e,function(r){return fge(t,r)})}function _et(t){var e=t.data.contexts[t.NODE];e.save(),fge(t,e),e.strokeStyle="rgba(0, 0, 0, 0.3)",e.beginPath(),e.moveTo(-1e3,0),e.lineTo(1e3,0),e.stroke(),e.beginPath(),e.moveTo(0,-1e3),e.lineTo(0,1e3),e.stroke(),e.restore()}function Det(t){var e=o(function(i,a,s){for(var l=i.atlasManager.getAtlasCollection(a),u=t.data.contexts[t.NODE],h=l.atlases,f=0;f=0&&E.add(S)}return E}function Let(t,e,r){var n=Ret(t,e,r),i=t.getCachedZSortedEles(),a,s,l=xo(n),u;try{for(l.s();!(u=l.n()).done;){var h=u.value,f=i[h];if(!a&&f.isNode()&&(a=f),!s&&f.isEdge()&&(s=f),a&&s)break}}catch(d){l.e(d)}finally{l.f()}return[a,s].filter(Boolean)}function MP(t,e,r){var n=t.drawing;e+=1,r.isNode()?(n.drawNode(r,e,"node-underlay"),n.drawNode(r,e,"node-body"),n.drawTexture(r,e,"label"),n.drawNode(r,e,"node-overlay")):(n.drawEdgeLine(r,e),n.drawEdgeArrow(r,e,"source"),n.drawEdgeArrow(r,e,"target"),n.drawTexture(r,e,"label"),n.drawTexture(r,e,"edge-source-label"),n.drawTexture(r,e,"edge-target-label"))}function dge(t,e,r){var n;t.webglDebug&&(n=performance.now());var i=t.drawing,a=0;if(r.screen&&t.data.canvasNeedsRedraw[t.SELECT_BOX]&&Aet(t,e),t.data.canvasNeedsRedraw[t.NODE]||r.picking){var s=t.data.contexts[t.WEBGL];r.screen?(s.clearColor(0,0,0,0),s.enable(s.BLEND),s.blendFunc(s.ONE,s.ONE_MINUS_SRC_ALPHA)):s.disable(s.BLEND),s.clear(s.COLOR_BUFFER_BIT|s.DEPTH_BUFFER_BIT),s.viewport(0,0,s.canvas.width,s.canvas.height);var l=Cet(t),u=t.getCachedZSortedEles();if(a=u.length,i.startFrame(l,r),r.screen){for(var h=0;h{"use strict";o(IP,"_arrayLikeToArray");o(lje,"_arrayWithHoles");o(cje,"_arrayWithoutHoles");o(Sd,"_classCallCheck");o(uje,"_defineProperties");o(Cd,"_createClass");o(xo,"_createForOfIteratorHelper");o(L0e,"_defineProperty$1");o(hje,"_iterableToArray");o(fje,"_iterableToArrayLimit");o(dje,"_nonIterableRest");o(pje,"_nonIterableSpread");o(Wi,"_slicedToArray");o(WS,"_toConsumableArray");o(mje,"_toPrimitive");o(N0e,"_toPropertyKey");o(aa,"_typeof");o(eB,"_unsupportedIterableToArray");na=typeof window>"u"?null:window,nde=na?na.navigator:null;na&&na.document;gje=aa(""),M0e=aa({}),yje=aa(function(){}),vje=typeof HTMLElement>"u"?"undefined":aa(HTMLElement),Kb=o(function(e){return e&&e.instanceString&&Ei(e.instanceString)?e.instanceString():null},"instanceStr"),or=o(function(e){return e!=null&&aa(e)==gje},"string"),Ei=o(function(e){return e!=null&&aa(e)===yje},"fn"),$n=o(function(e){return!jo(e)&&(Array.isArray?Array.isArray(e):e!=null&&e instanceof Array)},"array"),sn=o(function(e){return e!=null&&aa(e)===M0e&&!$n(e)&&e.constructor===Object},"plainObject"),xje=o(function(e){return e!=null&&aa(e)===M0e},"object"),Nt=o(function(e){return e!=null&&aa(e)===aa(1)&&!isNaN(e)},"number"),bje=o(function(e){return Nt(e)&&Math.floor(e)===e},"integer"),HS=o(function(e){if(vje!=="undefined")return e!=null&&e instanceof HTMLElement},"htmlElement"),jo=o(function(e){return Qb(e)||I0e(e)},"elementOrCollection"),Qb=o(function(e){return Kb(e)==="collection"&&e._private.single},"element"),I0e=o(function(e){return Kb(e)==="collection"&&!e._private.single},"collection"),tB=o(function(e){return Kb(e)==="core"},"core"),O0e=o(function(e){return Kb(e)==="stylesheet"},"stylesheet"),Tje=o(function(e){return Kb(e)==="event"},"event"),xd=o(function(e){return e==null?!0:!!(e===""||e.match(/^\s+$/))},"emptyString"),wje=o(function(e){return typeof HTMLElement>"u"?!1:e instanceof HTMLElement},"domElement"),kje=o(function(e){return sn(e)&&Nt(e.x1)&&Nt(e.x2)&&Nt(e.y1)&&Nt(e.y2)},"boundingBox"),Eje=o(function(e){return xje(e)&&Ei(e.then)},"promise"),Sje=o(function(){return nde&&nde.userAgent.match(/msie|trident|edge/i)},"ms"),J1=o(function(e,r){r||(r=o(function(){if(arguments.length===1)return arguments[0];if(arguments.length===0)return"undefined";for(var a=[],s=0;sr?1:0},"ascending"),Nje=o(function(e,r){return-1*B0e(e,r)},"descending"),pr=Object.assign!=null?Object.assign.bind(Object):function(t){for(var e=arguments,r=1;r1&&(v-=1),v<1/6?g+(y-g)*6*v:v<1/2?y:v<2/3?g+(y-g)*(2/3-v)*6:g}o(f,"hue2rgb");var d=new RegExp("^"+_je+"$").exec(e);if(d){if(n=parseInt(d[1]),n<0?n=(360- -1*n%360)%360:n>360&&(n=n%360),n/=360,i=parseFloat(d[2]),i<0||i>100||(i=i/100,a=parseFloat(d[3]),a<0||a>100)||(a=a/100,s=d[4],s!==void 0&&(s=parseFloat(s),s<0||s>1)))return;if(i===0)l=u=h=Math.round(a*255);else{var p=a<.5?a*(1+i):a+i-a*i,m=2*a-p;l=Math.round(255*f(m,p,n+1/3)),u=Math.round(255*f(m,p,n)),h=Math.round(255*f(m,p,n-1/3))}r=[l,u,h,s]}return r},"hsl2tuple"),Oje=o(function(e){var r,n=new RegExp("^"+Cje+"$").exec(e);if(n){r=[];for(var i=[],a=1;a<=3;a++){var s=n[a];if(s[s.length-1]==="%"&&(i[a]=!0),s=parseFloat(s),i[a]&&(s=s/100*255),s<0||s>255)return;r.push(Math.floor(s))}var l=i[1]||i[2]||i[3],u=i[1]&&i[2]&&i[3];if(l&&!u)return;var h=n[4];if(h!==void 0){if(h=parseFloat(h),h<0||h>1)return;r.push(h)}}return r},"rgb2tuple"),Pje=o(function(e){return Bje[e.toLowerCase()]},"colorname2tuple"),F0e=o(function(e){return($n(e)?e:null)||Pje(e)||Mje(e)||Oje(e)||Ije(e)},"color2tuple"),Bje={transparent:[0,0,0,0],aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],grey:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},$0e=o(function(e){for(var r=e.map,n=e.keys,i=n.length,a=0;a1&&arguments[1]!==void 0?arguments[1]:B0,n=r,i;i=e.next(),!i.done;)n=n*q0e+i.value|0;return n},"hashIterableInts"),zb=o(function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:B0;return r*q0e+e|0},"hashInt"),Gb=o(function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:W1;return(r<<5)+r+e|0},"hashIntAlt"),Xje=o(function(e,r){return e*2097152+r},"combineHashes"),hd=o(function(e){return e[0]*2097152+e[1]},"combineHashesArray"),wS=o(function(e,r){return[zb(e[0],r[0]),Gb(e[1],r[1])]},"hashArrays"),xde=o(function(e,r){var n={value:0,done:!1},i=0,a=e.length,s={next:o(function(){return i=0;i--)e[i]===r&&e.splice(i,1)},"removeFromArray"),sB=o(function(e){e.splice(0,e.length)},"clearArray"),aXe=o(function(e,r){for(var n=0;n"u"?"undefined":aa(Set))!==oXe?Set:lXe,oC=o(function(e,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(e===void 0||r===void 0||!tB(e)){ui("An element must have a core reference and parameters set");return}var i=r.group;if(i==null&&(r.data&&r.data.source!=null&&r.data.target!=null?i="edges":i="nodes"),i!=="nodes"&&i!=="edges"){ui("An element must be of type `nodes` or `edges`; you specified `"+i+"`");return}this.length=1,this[0]=this;var a=this._private={cy:e,single:!0,data:r.data||{},position:r.position||{x:0,y:0},autoWidth:void 0,autoHeight:void 0,autoPadding:void 0,compoundBoundsClean:!1,listeners:[],group:i,style:{},rstyle:{},styleCxts:[],styleKeys:{},removed:!0,selected:!!r.selected,selectable:r.selectable===void 0?!0:!!r.selectable,locked:!!r.locked,grabbed:!1,grabbable:r.grabbable===void 0?!0:!!r.grabbable,pannable:r.pannable===void 0?i==="edges":!!r.pannable,active:!1,classes:new ry,animation:{current:[],queue:[]},rscratch:{},scratch:r.scratch||{},edges:[],children:[],parent:r.parent&&r.parent.isNode()?r.parent:null,traversalCache:{},backgrounding:!1,bbCache:null,bbCacheShift:{x:0,y:0},bodyBounds:null,overlayBounds:null,labelBounds:{all:null,source:null,target:null,main:null},arrowBounds:{source:null,target:null,"mid-source":null,"mid-target":null}};if(a.position.x==null&&(a.position.x=0),a.position.y==null&&(a.position.y=0),r.renderedPosition){var s=r.renderedPosition,l=e.pan(),u=e.zoom();a.position={x:(s.x-l.x)/u,y:(s.y-l.y)/u}}var h=[];$n(r.classes)?h=r.classes:or(r.classes)&&(h=r.classes.split(/\s+/));for(var f=0,d=h.length;f0;){var k=b.pop(),S=v(k),A=k.id();if(p[A]=S,S!==1/0)for(var L=k.neighborhood().intersect(g),I=0;I0)for(B.unshift(P);d[G];){var $=d[G];B.unshift($.edge),B.unshift($.node),F=$.node,G=F.id()}return l.spawn(B)},"pathTo")}},"dijkstra")},mXe={kruskal:o(function(e){e=e||function(T){return 1};for(var r=this.byGroup(),n=r.nodes,i=r.edges,a=n.length,s=new Array(a),l=n,u=o(function(E){for(var w=0;w0;){if(w(),S++,E===f){for(var A=[],L=a,I=f,N=x[I];A.unshift(L),N!=null&&A.unshift(N),L=v[I],L!=null;)I=L.id(),N=x[I];return{found:!0,distance:d[E],path:this.spawn(A),steps:S}}m[E]=!0;for(var C=T._private.edges,_=0;_N&&(g[I]=N,b[I]=L,T[I]=w),!a){var C=L*f+A;!a&&g[C]>N&&(g[C]=N,b[C]=A,T[C]=w)}}}for(var _=0;_1&&arguments[1]!==void 0?arguments[1]:s,$e=T(we),fe=[],Ke=$e;;){if(Ke==null)return r.spawn();var Te=b(Ke),Be=Te.edge,Ue=Te.pred;if(fe.unshift(Ke[0]),Ke.same(_e)&&fe.length>0)break;Be!=null&&fe.unshift(Be),Ke=Ue}return u.spawn(fe)},"pathTo"),k=0;k=0;f--){var d=h[f],p=d[1],m=d[2];(r[p]===l&&r[m]===u||r[p]===u&&r[m]===l)&&h.splice(f,1)}for(var g=0;gi;){var a=Math.floor(Math.random()*r.length);r=kXe(a,e,r),n--}return r},"contractUntil"),EXe={kargerStein:o(function(){var e=this,r=this.byGroup(),n=r.nodes,i=r.edges;i.unmergeBy(function(B){return B.isLoop()});var a=n.length,s=i.length,l=Math.ceil(Math.pow(Math.log(a)/Math.LN2,2)),u=Math.floor(a/wXe);if(a<2){ui("At least 2 nodes are required for Karger-Stein algorithm");return}for(var h=[],f=0;f1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,i=1/0,a=r;a1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,i=-1/0,a=r;a1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,i=0,a=0,s=r;s1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,s=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0;i?e=e.slice(r,n):(n0&&e.splice(0,r));for(var l=0,u=e.length-1;u>=0;u--){var h=e[u];s?isFinite(h)||(e[u]=-1/0,l++):e.splice(u,1)}a&&e.sort(function(p,m){return p-m});var f=e.length,d=Math.floor(f/2);return f%2!==0?e[d+1+l]:(e[d-1+l]+e[d+l])/2},"median"),RXe=o(function(e){return Math.PI*e/180},"deg2rad"),kS=o(function(e,r){return Math.atan2(r,e)-Math.PI/2},"getAngleFromDisp"),oB=Math.log2||function(t){return Math.log(t)/Math.log(2)},lB=o(function(e){return e>0?1:e<0?-1:0},"signum"),G0=o(function(e,r){return Math.sqrt(O0(e,r))},"dist"),O0=o(function(e,r){var n=r.x-e.x,i=r.y-e.y;return n*n+i*i},"sqdist"),LXe=o(function(e){for(var r=e.length,n=0,i=0;i=e.x1&&e.y2>=e.y1)return{x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2,w:e.x2-e.x1,h:e.y2-e.y1};if(e.w!=null&&e.h!=null&&e.w>=0&&e.h>=0)return{x1:e.x1,y1:e.y1,x2:e.x1+e.w,y2:e.y1+e.h,w:e.w,h:e.h}}},"makeBoundingBox"),MXe=o(function(e){return{x1:e.x1,x2:e.x2,w:e.w,y1:e.y1,y2:e.y2,h:e.h}},"copyBoundingBox"),IXe=o(function(e){e.x1=1/0,e.y1=1/0,e.x2=-1/0,e.y2=-1/0,e.w=0,e.h=0},"clearBoundingBox"),OXe=o(function(e,r){e.x1=Math.min(e.x1,r.x1),e.x2=Math.max(e.x2,r.x2),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,r.y1),e.y2=Math.max(e.y2,r.y2),e.h=e.y2-e.y1},"updateBoundingBox"),Q0e=o(function(e,r,n){e.x1=Math.min(e.x1,r),e.x2=Math.max(e.x2,r),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,n),e.y2=Math.max(e.y2,n),e.h=e.y2-e.y1},"expandBoundingBoxByPoint"),OS=o(function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return e.x1-=r,e.x2+=r,e.y1-=r,e.y2+=r,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},"expandBoundingBox"),PS=o(function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0],n,i,a,s;if(r.length===1)n=i=a=s=r[0];else if(r.length===2)n=a=r[0],s=i=r[1];else if(r.length===4){var l=Wi(r,4);n=l[0],i=l[1],a=l[2],s=l[3]}return e.x1-=s,e.x2+=i,e.y1-=n,e.y2+=a,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},"expandBoundingBoxSides"),Sde=o(function(e,r){e.x1=r.x1,e.y1=r.y1,e.x2=r.x2,e.y2=r.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1},"assignBoundingBox"),cB=o(function(e,r){return!(e.x1>r.x2||r.x1>e.x2||e.x2r.y2||r.y1>e.y2)},"boundingBoxesIntersect"),md=o(function(e,r,n){return e.x1<=r&&r<=e.x2&&e.y1<=n&&n<=e.y2},"inBoundingBox"),Cde=o(function(e,r){return md(e,r.x,r.y)},"pointInBoundingBox"),Z0e=o(function(e,r){return md(e,r.x1,r.y1)&&md(e,r.x2,r.y2)},"boundingBoxInBoundingBox"),PXe=(TO=Math.hypot)!==null&&TO!==void 0?TO:function(t,e){return Math.sqrt(t*t+e*e)};o(BXe,"inflatePolygon");o(FXe,"miterBox");J0e=o(function(e,r,n,i,a,s,l){var u=arguments.length>7&&arguments[7]!==void 0?arguments[7]:"auto",h=u==="auto"?Td(a,s):u,f=a/2,d=s/2;h=Math.min(h,f,d);var p=h!==f,m=h!==d,g;if(p){var y=n-f+h-l,v=i-d-l,x=n+f-h+l,b=v;if(g=gd(e,r,n,i,y,v,x,b,!1),g.length>0)return g}if(m){var T=n+f+l,E=i-d+h-l,w=T,k=i+d-h+l;if(g=gd(e,r,n,i,T,E,w,k,!1),g.length>0)return g}if(p){var S=n-f+h-l,A=i+d+l,L=n+f-h+l,I=A;if(g=gd(e,r,n,i,S,A,L,I,!1),g.length>0)return g}if(m){var N=n-f-l,C=i-d+h-l,_=N,D=i+d-h+l;if(g=gd(e,r,n,i,N,C,_,D,!1),g.length>0)return g}var M;{var R=n-f+h,P=i-d+h;if(M=Ib(e,r,n,i,R,P,h+l),M.length>0&&M[0]<=R&&M[1]<=P)return[M[0],M[1]]}{var B=n+f-h,F=i-d+h;if(M=Ib(e,r,n,i,B,F,h+l),M.length>0&&M[0]>=B&&M[1]<=F)return[M[0],M[1]]}{var G=n+f-h,$=i+d-h;if(M=Ib(e,r,n,i,G,$,h+l),M.length>0&&M[0]>=G&&M[1]>=$)return[M[0],M[1]]}{var V=n-f+h,X=i+d-h;if(M=Ib(e,r,n,i,V,X,h+l),M.length>0&&M[0]<=V&&M[1]>=X)return[M[0],M[1]]}return[]},"roundRectangleIntersectLine"),$Xe=o(function(e,r,n,i,a,s,l){var u=l,h=Math.min(n,a),f=Math.max(n,a),d=Math.min(i,s),p=Math.max(i,s);return h-u<=e&&e<=f+u&&d-u<=r&&r<=p+u},"inLineVicinity"),zXe=o(function(e,r,n,i,a,s,l,u,h){var f={x1:Math.min(n,l,a)-h,x2:Math.max(n,l,a)+h,y1:Math.min(i,u,s)-h,y2:Math.max(i,u,s)+h};return!(ef.x2||rf.y2)},"inBezierVicinity"),GXe=o(function(e,r,n,i){n-=i;var a=r*r-4*e*n;if(a<0)return[];var s=Math.sqrt(a),l=2*e,u=(-r+s)/l,h=(-r-s)/l;return[u,h]},"solveQuadratic"),VXe=o(function(e,r,n,i,a){var s=1e-5;e===0&&(e=s),r/=e,n/=e,i/=e;var l,u,h,f,d,p,m,g;if(u=(3*n-r*r)/9,h=-(27*i)+r*(9*n-2*(r*r)),h/=54,l=u*u*u+h*h,a[1]=0,m=r/3,l>0){d=h+Math.sqrt(l),d=d<0?-Math.pow(-d,1/3):Math.pow(d,1/3),p=h-Math.sqrt(l),p=p<0?-Math.pow(-p,1/3):Math.pow(p,1/3),a[0]=-m+d+p,m+=(d+p)/2,a[4]=a[2]=-m,m=Math.sqrt(3)*(-p+d)/2,a[3]=m,a[5]=-m;return}if(a[5]=a[3]=0,l===0){g=h<0?-Math.pow(-h,1/3):Math.pow(h,1/3),a[0]=-m+2*g,a[4]=a[2]=-(g+m);return}u=-u,f=u*u*u,f=Math.acos(h/Math.sqrt(f)),g=2*Math.sqrt(u),a[0]=-m+g*Math.cos(f/3),a[2]=-m+g*Math.cos((f+2*Math.PI)/3),a[4]=-m+g*Math.cos((f+4*Math.PI)/3)},"solveCubic"),qXe=o(function(e,r,n,i,a,s,l,u){var h=1*n*n-4*n*a+2*n*l+4*a*a-4*a*l+l*l+i*i-4*i*s+2*i*u+4*s*s-4*s*u+u*u,f=9*n*a-3*n*n-3*n*l-6*a*a+3*a*l+9*i*s-3*i*i-3*i*u-6*s*s+3*s*u,d=3*n*n-6*n*a+n*l-n*e+2*a*a+2*a*e-l*e+3*i*i-6*i*s+i*u-i*r+2*s*s+2*s*r-u*r,p=1*n*a-n*n+n*e-a*e+i*s-i*i+i*r-s*r,m=[];VXe(h,f,d,p,m);for(var g=1e-7,y=[],v=0;v<6;v+=2)Math.abs(m[v+1])=0&&m[v]<=1&&y.push(m[v]);y.push(1),y.push(0);for(var x=-1,b,T,E,w=0;w=0?Eh?(e-a)*(e-a)+(r-s)*(r-s):f-p},"sqdistToFiniteLine"),vo=o(function(e,r,n){for(var i,a,s,l,u,h=0,f=0;f=e&&e>=s||i<=e&&e<=s)u=(e-i)/(s-i)*(l-a)+a,u>r&&h++;else continue;return h%2!==0},"pointInsidePolygonPoints"),Bh=o(function(e,r,n,i,a,s,l,u,h){var f=new Array(n.length),d;u[0]!=null?(d=Math.atan(u[1]/u[0]),u[0]<0?d=d+Math.PI/2:d=-d-Math.PI/2):d=u;for(var p=Math.cos(-d),m=Math.sin(-d),g=0;g0){var v=KS(f,-h);y=XS(v)}else y=f;return vo(e,r,y)},"pointInsidePolygon"),WXe=o(function(e,r,n,i,a,s,l,u){for(var h=new Array(n.length*2),f=0;f=0&&v<=1&&b.push(v),x>=0&&x<=1&&b.push(x),b.length===0)return[];var T=b[0]*u[0]+e,E=b[0]*u[1]+r;if(b.length>1){if(b[0]==b[1])return[T,E];var w=b[1]*u[0]+e,k=b[1]*u[1]+r;return[T,E,w,k]}else return[T,E]},"intersectLineCircle"),wO=o(function(e,r,n){return r<=e&&e<=n||n<=e&&e<=r?e:e<=r&&r<=n||n<=r&&r<=e?r:n},"midOfThree"),gd=o(function(e,r,n,i,a,s,l,u,h){var f=e-a,d=n-e,p=l-a,m=r-s,g=i-r,y=u-s,v=p*m-y*f,x=d*m-g*f,b=y*d-p*g;if(b!==0){var T=v/b,E=x/b,w=.001,k=0-w,S=1+w;return k<=T&&T<=S&&k<=E&&E<=S?[e+T*d,r+T*g]:h?[e+T*d,r+T*g]:[]}else return v===0||x===0?wO(e,n,l)===l?[l,u]:wO(e,n,a)===a?[a,s]:wO(a,l,n)===n?[n,i]:[]:[]},"finiteLinesIntersect"),YXe=o(function(e,r,n,i,a){var s=[],l=i/2,u=a/2,h=r,f=n;s.push({x:h+l*e[0],y:f+u*e[1]});for(var d=1;d0){var y=KS(d,-u);m=XS(y)}else m=d}else m=n;for(var v,x,b,T,E=0;E2){for(var g=[f[0],f[1]],y=Math.pow(g[0]-e,2)+Math.pow(g[1]-r,2),v=1;vf&&(f=E)},"set"),get:o(function(T){return h[T]},"get")},p=0;p0?M=D.edgesTo(_)[0]:M=_.edgesTo(D)[0];var R=i(M);_=_.id(),S[_]>S[N]+R&&(S[_]=S[N]+R,A.nodes.indexOf(_)<0?A.push(_):A.updateItem(_),k[_]=0,w[_]=[]),S[_]==S[N]+R&&(k[_]=k[_]+k[N],w[_].push(N))}else for(var P=0;P0;){for(var $=E.pop(),V=0;V0&&l.push(n[u]);l.length!==0&&a.push(i.collection(l))}return a},"assign"),lKe=o(function(e,r){for(var n=0;n5&&arguments[5]!==void 0?arguments[5]:hKe,l=i,u,h,f=0;f=2?Ab(e,r,n,0,Lde,fKe):Ab(e,r,n,0,Rde)},"euclidean"),squaredEuclidean:o(function(e,r,n){return Ab(e,r,n,0,Lde)},"squaredEuclidean"),manhattan:o(function(e,r,n){return Ab(e,r,n,0,Rde)},"manhattan"),max:o(function(e,r,n){return Ab(e,r,n,-1/0,dKe)},"max")};ey["squared-euclidean"]=ey.squaredEuclidean;ey.squaredeuclidean=ey.squaredEuclidean;o(cC,"clusteringDistance");pKe=qa({k:2,m:2,sensitivityThreshold:1e-4,distance:"euclidean",maxIterations:10,attributes:[],testMode:!1,testCentroids:null}),hB=o(function(e){return pKe(e)},"setOptions"),QS=o(function(e,r,n,i,a){var s=a!=="kMedoids",l=s?function(d){return n[d]}:function(d){return i[d](n)},u=o(function(p){return i[p](r)},"getQ"),h=n,f=r;return cC(e,i.length,l,u,h,f)},"getDist"),EO=o(function(e,r,n){for(var i=n.length,a=new Array(i),s=new Array(i),l=new Array(r),u=null,h=0;hn)return!1}return!0},"haveMatricesConverged"),yKe=o(function(e,r,n){for(var i=0;il&&(l=r[h][f],u=f);a[u].push(e[h])}for(var d=0;d=a.threshold||a.mode==="dendrogram"&&e.length===1)return!1;var g=r[s],y=r[i[s]],v;a.mode==="dendrogram"?v={left:g,right:y,key:g.key}:v={value:g.value.concat(y.value),key:g.key},e[g.index]=v,e.splice(y.index,1),r[g.key]=v;for(var x=0;xn[y.key][b.key]&&(u=n[y.key][b.key])):a.linkage==="max"?(u=n[g.key][b.key],n[g.key][b.key]0&&i.push(a);return i},"findExemplars"),Bde=o(function(e,r,n){for(var i=[],a=0;al&&(s=h,l=r[a*e+h])}s>0&&i.push(s)}for(var f=0;fh&&(u=f,h=d)}n[a]=s[u]}return i=Bde(e,r,n),i},"assign"),Fde=o(function(e){for(var r=this.cy(),n=this.nodes(),i=DKe(e),a={},s=0;s=N?(C=N,N=D,_=M):D>C&&(C=D);for(var R=0;R0?1:0;S[L%i.minIterations*l+V]=X,$+=X}if($>0&&(L>=i.minIterations-1||L==i.maxIterations-1)){for(var Q=0,H=0;H1||k>1)&&(l=!0),d[T]=[],b.outgoers().forEach(function(A){A.isEdge()&&d[T].push(A.id())})}else p[T]=[void 0,b.target().id()]}):s.forEach(function(b){var T=b.id();if(b.isNode()){var E=b.degree(!0);E%2&&(u?h?l=!0:h=T:u=T),d[T]=[],b.connectedEdges().forEach(function(w){return d[T].push(w.id())})}else p[T]=[b.source().id(),b.target().id()]});var m={found:!1,trail:void 0};if(l)return m;if(h&&u)if(a){if(f&&h!=f)return m;f=h}else{if(f&&h!=f&&u!=f)return m;f||(f=h)}else f||(f=s[0].id());var g=o(function(T){for(var E=T,w=[T],k,S,A;d[E].length;)k=d[E].shift(),S=p[k][0],A=p[k][1],E!=A?(d[A]=d[A].filter(function(L){return L!=k}),E=A):!a&&E!=S&&(d[S]=d[S].filter(function(L){return L!=k}),E=S),w.unshift(k),w.unshift(E);return w},"walk"),y=[],v=[];for(v=g(f);v.length!=1;)d[v[0]].length==0?(y.unshift(s.getElementById(v.shift())),y.unshift(s.getElementById(v.shift()))):v=g(v.shift()).concat(v);y.unshift(s.getElementById(v.shift()));for(var x in d)if(d[x].length)return m;return m.found=!0,m.trail=this.spawn(y,!0),m},"hierholzer")},SS=o(function(){var e=this,r={},n=0,i=0,a=[],s=[],l={},u=o(function(p,m){for(var g=s.length-1,y=[],v=e.spawn();s[g].x!=p||s[g].y!=m;)y.push(s.pop().edge),g--;y.push(s.pop().edge),y.forEach(function(x){var b=x.connectedNodes().intersection(e);v.merge(x),b.forEach(function(T){var E=T.id(),w=T.connectedEdges().intersection(e);v.merge(T),r[E].cutVertex?v.merge(w.filter(function(k){return k.isLoop()})):v.merge(w)})}),a.push(v)},"buildComponent"),h=o(function(p,m,g){p===g&&(i+=1),r[m]={id:n,low:n++,cutVertex:!1};var y=e.getElementById(m).connectedEdges().intersection(e);if(y.size()===0)a.push(e.spawn(e.getElementById(m)));else{var v,x,b,T;y.forEach(function(E){v=E.source().id(),x=E.target().id(),b=v===m?x:v,b!==g&&(T=E.id(),l[T]||(l[T]=!0,s.push({x:m,y:b,edge:E})),b in r?r[m].low=Math.min(r[m].low,r[b].id):(h(p,b,m),r[m].low=Math.min(r[m].low,r[b].low),r[m].id<=r[b].low&&(r[m].cutVertex=!0,u(m,b))))})}},"biconnectedSearch");e.forEach(function(d){if(d.isNode()){var p=d.id();p in r||(i=0,h(p,p),r[p].cutVertex=i>1)}});var f=Object.keys(r).filter(function(d){return r[d].cutVertex}).map(function(d){return e.getElementById(d)});return{cut:e.spawn(f),components:a}},"hopcroftTarjanBiconnected"),BKe={hopcroftTarjanBiconnected:SS,htbc:SS,htb:SS,hopcroftTarjanBiconnectedComponents:SS},CS=o(function(){var e=this,r={},n=0,i=[],a=[],s=e.spawn(e),l=o(function(h){a.push(h),r[h]={index:n,low:n++,explored:!1};var f=e.getElementById(h).connectedEdges().intersection(e);if(f.forEach(function(y){var v=y.target().id();v!==h&&(v in r||l(v),r[v].explored||(r[h].low=Math.min(r[h].low,r[v].low)))}),r[h].index===r[h].low){for(var d=e.spawn();;){var p=a.pop();if(d.merge(e.getElementById(p)),r[p].low=r[h].index,r[p].explored=!0,p===h)break}var m=d.edgesWith(d),g=d.merge(m);i.push(g),s=s.difference(g)}},"stronglyConnectedSearch");return e.forEach(function(u){if(u.isNode()){var h=u.id();h in r||l(h)}}),{cut:s,components:i}},"tarjanStronglyConnected"),FKe={tarjanStronglyConnected:CS,tsc:CS,tscc:CS,tarjanStronglyConnectedComponents:CS},sme={};[Vb,pXe,mXe,yXe,xXe,TXe,EXe,QXe,K1,Q1,BP,uKe,kKe,AKe,IKe,PKe,BKe,FKe].forEach(function(t){pr(sme,t)});ome=0,lme=1,cme=2,Tc=o(function(e){if(!(this instanceof Tc))return new Tc(e);this.id="Thenable/1.0.7",this.state=ome,this.fulfillValue=void 0,this.rejectReason=void 0,this.onFulfilled=[],this.onRejected=[],this.proxy={then:this.then.bind(this)},typeof e=="function"&&e.call(this,this.fulfill.bind(this),this.reject.bind(this))},"api");Tc.prototype={fulfill:o(function(e){return $de(this,lme,"fulfillValue",e)},"fulfill"),reject:o(function(e){return $de(this,cme,"rejectReason",e)},"reject"),then:o(function(e,r){var n=this,i=new Tc;return n.onFulfilled.push(Gde(e,i,"fulfill")),n.onRejected.push(Gde(r,i,"reject")),ume(n),i.proxy},"then")};$de=o(function(e,r,n,i){return e.state===ome&&(e.state=r,e[n]=i,ume(e)),e},"deliver"),ume=o(function(e){e.state===lme?zde(e,"onFulfilled",e.fulfillValue):e.state===cme&&zde(e,"onRejected",e.rejectReason)},"execute"),zde=o(function(e,r,n){if(e[r].length!==0){var i=e[r];e[r]=[];var a=o(function(){for(var l=0;l0},"animatedImpl")},"animated"),clearQueue:o(function(){return o(function(){var r=this,n=r.length!==void 0,i=n?r:[r],a=this._private.cy||this;if(!a.styleEnabled())return this;for(var s=0;s0&&this.spawn(i).updateStyle().emit("class"),r},"classes"),addClass:o(function(e){return this.toggleClass(e,!0)},"addClass"),hasClass:o(function(e){var r=this[0];return r!=null&&r._private.classes.has(e)},"hasClass"),toggleClass:o(function(e,r){$n(e)||(e=e.match(/\S+/g)||[]);for(var n=this,i=r===void 0,a=[],s=0,l=n.length;s0&&this.spawn(a).updateStyle().emit("class"),n},"toggleClass"),removeClass:o(function(e){return this.toggleClass(e,!1)},"removeClass"),flashClass:o(function(e,r){var n=this;if(r==null)r=250;else if(r===0)return n;return n.addClass(e),setTimeout(function(){n.removeClass(e)},r),n},"flashClass")};BS.className=BS.classNames=BS.classes;an={metaChar:"[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]",comparatorOp:"=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=",boolOp:"\\?|\\!|\\^",string:`"(?:\\\\"|[^"])*"|'(?:\\\\'|[^'])*'`,number:ia,meta:"degree|indegree|outdegree",separator:"\\s*,\\s*",descendant:"\\s+",child:"\\s+>\\s+",subject:"\\$",group:"node|edge|\\*",directedEdge:"\\s+->\\s+",undirectedEdge:"\\s+<->\\s+"};an.variable="(?:[\\w-.]|(?:\\\\"+an.metaChar+"))+";an.className="(?:[\\w-]|(?:\\\\"+an.metaChar+"))+";an.value=an.string+"|"+an.number;an.id=an.variable;(function(){var t,e,r;for(t=an.comparatorOp.split("|"),r=0;r=0)&&e!=="="&&(an.comparatorOp+="|\\!"+e)})();Nn=o(function(){return{checks:[]}},"newQuery"),qt={GROUP:0,COLLECTION:1,FILTER:2,DATA_COMPARE:3,DATA_EXIST:4,DATA_BOOL:5,META_COMPARE:6,STATE:7,ID:8,CLASS:9,UNDIRECTED_EDGE:10,DIRECTED_EDGE:11,NODE_SOURCE:12,NODE_TARGET:13,NODE_NEIGHBOR:14,CHILD:15,DESCENDANT:16,PARENT:17,ANCESTOR:18,COMPOUND_SPLIT:19,TRUE:20},GP=[{selector:":selected",matches:o(function(e){return e.selected()},"matches")},{selector:":unselected",matches:o(function(e){return!e.selected()},"matches")},{selector:":selectable",matches:o(function(e){return e.selectable()},"matches")},{selector:":unselectable",matches:o(function(e){return!e.selectable()},"matches")},{selector:":locked",matches:o(function(e){return e.locked()},"matches")},{selector:":unlocked",matches:o(function(e){return!e.locked()},"matches")},{selector:":visible",matches:o(function(e){return e.visible()},"matches")},{selector:":hidden",matches:o(function(e){return!e.visible()},"matches")},{selector:":transparent",matches:o(function(e){return e.transparent()},"matches")},{selector:":grabbed",matches:o(function(e){return e.grabbed()},"matches")},{selector:":free",matches:o(function(e){return!e.grabbed()},"matches")},{selector:":removed",matches:o(function(e){return e.removed()},"matches")},{selector:":inside",matches:o(function(e){return!e.removed()},"matches")},{selector:":grabbable",matches:o(function(e){return e.grabbable()},"matches")},{selector:":ungrabbable",matches:o(function(e){return!e.grabbable()},"matches")},{selector:":animated",matches:o(function(e){return e.animated()},"matches")},{selector:":unanimated",matches:o(function(e){return!e.animated()},"matches")},{selector:":parent",matches:o(function(e){return e.isParent()},"matches")},{selector:":childless",matches:o(function(e){return e.isChildless()},"matches")},{selector:":child",matches:o(function(e){return e.isChild()},"matches")},{selector:":orphan",matches:o(function(e){return e.isOrphan()},"matches")},{selector:":nonorphan",matches:o(function(e){return e.isChild()},"matches")},{selector:":compound",matches:o(function(e){return e.isNode()?e.isParent():e.source().isParent()||e.target().isParent()},"matches")},{selector:":loop",matches:o(function(e){return e.isLoop()},"matches")},{selector:":simple",matches:o(function(e){return e.isSimple()},"matches")},{selector:":active",matches:o(function(e){return e.active()},"matches")},{selector:":inactive",matches:o(function(e){return!e.active()},"matches")},{selector:":backgrounding",matches:o(function(e){return e.backgrounding()},"matches")},{selector:":nonbackgrounding",matches:o(function(e){return!e.backgrounding()},"matches")}].sort(function(t,e){return Nje(t.selector,e.selector)}),OQe=(function(){for(var t={},e,r=0;r0&&f.edgeCount>0)return En("The selector `"+e+"` is invalid because it uses both a compound selector and an edge selector"),!1;if(f.edgeCount>1)return En("The selector `"+e+"` is invalid because it uses multiple edge selectors"),!1;f.edgeCount===1&&En("The selector `"+e+"` is deprecated. Edge selectors do not take effect on changes to source and target nodes after an edge is added, for performance reasons. Use a class or data selector on edges instead, updating the class or data of an edge when your app detects a change in source or target nodes.")}return!0},"parse"),GQe=o(function(){if(this.toStringCache!=null)return this.toStringCache;for(var e=o(function(f){return f??""},"clean"),r=o(function(f){return or(f)?'"'+f+'"':e(f)},"cleanVal"),n=o(function(f){return" "+f+" "},"space"),i=o(function(f,d){var p=f.type,m=f.value;switch(p){case qt.GROUP:{var g=e(m);return g.substring(0,g.length-1)}case qt.DATA_COMPARE:{var y=f.field,v=f.operator;return"["+y+n(e(v))+r(m)+"]"}case qt.DATA_BOOL:{var x=f.operator,b=f.field;return"["+e(x)+b+"]"}case qt.DATA_EXIST:{var T=f.field;return"["+T+"]"}case qt.META_COMPARE:{var E=f.operator,w=f.field;return"[["+w+n(e(E))+r(m)+"]]"}case qt.STATE:return m;case qt.ID:return"#"+m;case qt.CLASS:return"."+m;case qt.PARENT:case qt.CHILD:return a(f.parent,d)+n(">")+a(f.child,d);case qt.ANCESTOR:case qt.DESCENDANT:return a(f.ancestor,d)+" "+a(f.descendant,d);case qt.COMPOUND_SPLIT:{var k=a(f.left,d),S=a(f.subject,d),A=a(f.right,d);return k+(k.length>0?" ":"")+S+A}case qt.TRUE:return""}},"checkToString"),a=o(function(f,d){return f.checks.reduce(function(p,m,g){return p+(d===f&&g===0?"$":"")+i(m,d)},"")},"queryToString"),s="",l=0;l1&&l=0&&(r=r.replace("!",""),d=!0),r.indexOf("@")>=0&&(r=r.replace("@",""),f=!0),(a||l||f)&&(u=!a&&!s?"":""+e,h=""+n),f&&(e=u=u.toLowerCase(),n=h=h.toLowerCase()),r){case"*=":i=u.indexOf(h)>=0;break;case"$=":i=u.indexOf(h,u.length-h.length)>=0;break;case"^=":i=u.indexOf(h)===0;break;case"=":i=e===n;break;case">":p=!0,i=e>n;break;case">=":p=!0,i=e>=n;break;case"<":p=!0,i=e1&&arguments[1]!==void 0?arguments[1]:!0;return mB(this,t,e,vme)};o(xme,"addParent");ty.forEachUp=function(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return mB(this,t,e,xme)};o(XQe,"addParentAndChildren");ty.forEachUpAndDown=function(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return mB(this,t,e,XQe)};ty.ancestors=ty.parents;Wb=bme={data:kn.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),removeData:kn.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),scratch:kn.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:kn.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),rscratch:kn.data({field:"rscratch",allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!0}),removeRscratch:kn.removeData({field:"rscratch",triggerEvent:!1}),id:o(function(){var e=this[0];if(e)return e._private.data.id},"id")};Wb.attr=Wb.data;Wb.removeAttr=Wb.removeData;KQe=bme,pC={};o(wP,"defineDegreeFunction");pr(pC,{degree:wP(function(t,e){return e.source().same(e.target())?2:1}),indegree:wP(function(t,e){return e.target().same(t)?1:0}),outdegree:wP(function(t,e){return e.source().same(t)?1:0})});o($1,"defineDegreeBoundsFunction");pr(pC,{minDegree:$1("degree",function(t,e){return te}),minIndegree:$1("indegree",function(t,e){return te}),minOutdegree:$1("outdegree",function(t,e){return te})});pr(pC,{totalDegree:o(function(e){for(var r=0,n=this.nodes(),i=0;i0,p=d;d&&(f=f[0]);var m=p?f.position():{x:0,y:0};r!==void 0?h.position(e,r+m[e]):a!==void 0&&h.position({x:a.x+m.x,y:a.y+m.y})}else{var g=n.position(),y=l?n.parent():null,v=y&&y.length>0,x=v;v&&(y=y[0]);var b=x?y.position():{x:0,y:0};return a={x:g.x-b.x,y:g.y-b.y},e===void 0?a:a[e]}else if(!s)return;return this},"relativePosition")};bc.modelPosition=bc.point=bc.position;bc.modelPositions=bc.points=bc.positions;bc.renderedPoint=bc.renderedPosition;bc.relativePoint=bc.relativePosition;QQe=Tme;Z1=Ad={};Ad.renderedBoundingBox=function(t){var e=this.boundingBox(t),r=this.cy(),n=r.zoom(),i=r.pan(),a=e.x1*n+i.x,s=e.x2*n+i.x,l=e.y1*n+i.y,u=e.y2*n+i.y;return{x1:a,x2:s,y1:l,y2:u,w:s-a,h:u-l}};Ad.dirtyCompoundBoundsCache=function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,e=this.cy();return!e.styleEnabled()||!e.hasCompoundNodes()?this:(this.forEachUp(function(r){if(r.isParent()){var n=r._private;n.compoundBoundsClean=!1,n.bbCache=null,t||r.emitAndNotify("bounds")}}),this)};Ad.updateCompoundBounds=function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,e=this.cy();if(!e.styleEnabled()||!e.hasCompoundNodes())return this;if(!t&&e.batching())return this;function r(s){if(!s.isParent())return;var l=s._private,u=s.children(),h=s.pstyle("compound-sizing-wrt-labels").value==="include",f={width:{val:s.pstyle("min-width").pfValue,left:s.pstyle("min-width-bias-left"),right:s.pstyle("min-width-bias-right")},height:{val:s.pstyle("min-height").pfValue,top:s.pstyle("min-height-bias-top"),bottom:s.pstyle("min-height-bias-bottom")}},d=u.boundingBox({includeLabels:h,includeOverlays:!1,useCache:!1}),p=l.position;(d.w===0||d.h===0)&&(d={w:s.pstyle("width").pfValue,h:s.pstyle("height").pfValue},d.x1=p.x-d.w/2,d.x2=p.x+d.w/2,d.y1=p.y-d.h/2,d.y2=p.y+d.h/2);function m(L,I,N){var C=0,_=0,D=I+N;return L>0&&D>0&&(C=I/D*L,_=N/D*L),{biasDiff:C,biasComplementDiff:_}}o(m,"computeBiasValues");function g(L,I,N,C){if(N.units==="%")switch(C){case"width":return L>0?N.pfValue*L:0;case"height":return I>0?N.pfValue*I:0;case"average":return L>0&&I>0?N.pfValue*(L+I)/2:0;case"min":return L>0&&I>0?L>I?N.pfValue*I:N.pfValue*L:0;case"max":return L>0&&I>0?L>I?N.pfValue*L:N.pfValue*I:0;default:return 0}else return N.units==="px"?N.pfValue:0}o(g,"computePaddingValues");var y=f.width.left.value;f.width.left.units==="px"&&f.width.val>0&&(y=y*100/f.width.val);var v=f.width.right.value;f.width.right.units==="px"&&f.width.val>0&&(v=v*100/f.width.val);var x=f.height.top.value;f.height.top.units==="px"&&f.height.val>0&&(x=x*100/f.height.val);var b=f.height.bottom.value;f.height.bottom.units==="px"&&f.height.val>0&&(b=b*100/f.height.val);var T=m(f.width.val-d.w,y,v),E=T.biasDiff,w=T.biasComplementDiff,k=m(f.height.val-d.h,x,b),S=k.biasDiff,A=k.biasComplementDiff;l.autoPadding=g(d.w,d.h,s.pstyle("padding"),s.pstyle("padding-relative-to").value),l.autoWidth=Math.max(d.w,f.width.val),p.x=(-E+d.x1+d.x2+w)/2,l.autoHeight=Math.max(d.h,f.height.val),p.y=(-S+d.y1+d.y2+A)/2}o(r,"update");for(var n=0;ne.x2?i:e.x2,e.y1=ne.y2?a:e.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1)},"updateBounds"),dd=o(function(e,r){return r==null?e:xc(e,r.x1,r.y1,r.x2,r.y2)},"updateBoundsFromBox"),_b=o(function(e,r,n){return yo(e,r,n)},"prefixedProperty"),AS=o(function(e,r,n){if(!r.cy().headless()){var i=r._private,a=i.rstyle,s=a.arrowWidth/2,l=r.pstyle(n+"-arrow-shape").value,u,h;if(l!=="none"){n==="source"?(u=a.srcX,h=a.srcY):n==="target"?(u=a.tgtX,h=a.tgtY):(u=a.midX,h=a.midY);var f=i.arrowBounds=i.arrowBounds||{},d=f[n]=f[n]||{};d.x1=u-s,d.y1=h-s,d.x2=u+s,d.y2=h+s,d.w=d.x2-d.x1,d.h=d.y2-d.y1,OS(d,1),xc(e,d.x1,d.y1,d.x2,d.y2)}}},"updateBoundsFromArrow"),kP=o(function(e,r,n){if(!r.cy().headless()){var i;n?i=n+"-":i="";var a=r._private,s=a.rstyle,l=r.pstyle(i+"label").strValue;if(l){var u=r.pstyle("text-halign"),h=r.pstyle("text-valign"),f=_b(s,"labelWidth",n),d=_b(s,"labelHeight",n),p=_b(s,"labelX",n),m=_b(s,"labelY",n),g=r.pstyle(i+"text-margin-x").pfValue,y=r.pstyle(i+"text-margin-y").pfValue,v=r.isEdge(),x=r.pstyle(i+"text-rotation"),b=r.pstyle("text-outline-width").pfValue,T=r.pstyle("text-border-width").pfValue,E=T/2,w=r.pstyle("text-background-padding").pfValue,k=2,S=d,A=f,L=A/2,I=S/2,N,C,_,D;if(v)N=p-L,C=p+L,_=m-I,D=m+I;else{switch(u.value){case"left":N=p-A,C=p;break;case"center":N=p-L,C=p+L;break;case"right":N=p,C=p+A;break}switch(h.value){case"top":_=m-S,D=m;break;case"center":_=m-I,D=m+I;break;case"bottom":_=m,D=m+S;break}}var M=g-Math.max(b,E)-w-k,R=g+Math.max(b,E)+w+k,P=y-Math.max(b,E)-w-k,B=y+Math.max(b,E)+w+k;N+=M,C+=R,_+=P,D+=B;var F=n||"main",G=a.labelBounds,$=G[F]=G[F]||{};$.x1=N,$.y1=_,$.x2=C,$.y2=D,$.w=C-N,$.h=D-_,$.leftPad=M,$.rightPad=R,$.topPad=P,$.botPad=B;var V=v&&x.strValue==="autorotate",X=x.pfValue!=null&&x.pfValue!==0;if(V||X){var Q=V?_b(a.rstyle,"labelAngle",n):x.pfValue,H=Math.cos(Q),ie=Math.sin(Q),Y=(N+C)/2,le=(_+D)/2;if(!v){switch(u.value){case"left":Y=C;break;case"right":Y=N;break}switch(h.value){case"top":le=D;break;case"bottom":le=_;break}}var ee=o(function(ke,we){return ke=ke-Y,we=we-le,{x:ke*H-we*ie+Y,y:ke*ie+we*H+le}},"rotate"),J=ee(N,_),te=ee(N,D),Z=ee(C,_),xe=ee(C,D);N=Math.min(J.x,te.x,Z.x,xe.x),C=Math.max(J.x,te.x,Z.x,xe.x),_=Math.min(J.y,te.y,Z.y,xe.y),D=Math.max(J.y,te.y,Z.y,xe.y)}var de=F+"Rot",Se=G[de]=G[de]||{};Se.x1=N,Se.y1=_,Se.x2=C,Se.y2=D,Se.w=C-N,Se.h=D-_,xc(e,N,_,C,D),xc(a.labelBounds.all,N,_,C,D)}return e}},"updateBoundsFromLabel"),zpe=o(function(e,r){if(!r.cy().headless()){var n=r.pstyle("outline-opacity").value,i=r.pstyle("outline-width").value,a=r.pstyle("outline-offset").value,s=i+a;kme(e,r,n,s,"outside",s/2)}},"updateBoundsFromOutline"),kme=o(function(e,r,n,i,a,s){if(!(n===0||i<=0||a==="inside")){var l=r.cy(),u=r.pstyle("shape").value,h=l.renderer().nodeShapes[u],f=r.position(),d=f.x,p=f.y,m=r.width(),g=r.height();if(h.hasMiterBounds){a==="center"&&(i/=2);var y=h.miterBounds(d,p,m,g,i);dd(e,y)}else s!=null&&s>0&&PS(e,[s,s,s,s])}},"updateBoundsFromMiter"),ZQe=o(function(e,r){if(!r.cy().headless()){var n=r.pstyle("border-opacity").value,i=r.pstyle("border-width").pfValue,a=r.pstyle("border-position").value;kme(e,r,n,i,a)}},"updateBoundsFromMiterBorder"),JQe=o(function(e,r){var n=e._private.cy,i=n.styleEnabled(),a=n.headless(),s=Ms(),l=e._private,u=e.isNode(),h=e.isEdge(),f,d,p,m,g,y,v=l.rstyle,x=u&&i?e.pstyle("bounds-expansion").pfValue:[0],b=o(function(Me){return Me.pstyle("display").value!=="none"},"isDisplayed"),T=!i||b(e)&&(!h||b(e.source())&&b(e.target()));if(T){var E=0,w=0;i&&r.includeOverlays&&(E=e.pstyle("overlay-opacity").value,E!==0&&(w=e.pstyle("overlay-padding").value));var k=0,S=0;i&&r.includeUnderlays&&(k=e.pstyle("underlay-opacity").value,k!==0&&(S=e.pstyle("underlay-padding").value));var A=Math.max(w,S),L=0,I=0;if(i&&(L=e.pstyle("width").pfValue,I=L/2),u&&r.includeNodes){var N=e.position();g=N.x,y=N.y;var C=e.outerWidth(),_=C/2,D=e.outerHeight(),M=D/2;f=g-_,d=g+_,p=y-M,m=y+M,xc(s,f,p,d,m),i&&zpe(s,e),i&&r.includeOutlines&&!a&&zpe(s,e),i&&ZQe(s,e)}else if(h&&r.includeEdges)if(i&&!a){var R=e.pstyle("curve-style").strValue;if(f=Math.min(v.srcX,v.midX,v.tgtX),d=Math.max(v.srcX,v.midX,v.tgtX),p=Math.min(v.srcY,v.midY,v.tgtY),m=Math.max(v.srcY,v.midY,v.tgtY),f-=I,d+=I,p-=I,m+=I,xc(s,f,p,d,m),R==="haystack"){var P=v.haystackPts;if(P&&P.length===2){if(f=P[0].x,p=P[0].y,d=P[1].x,m=P[1].y,f>d){var B=f;f=d,d=B}if(p>m){var F=p;p=m,m=F}xc(s,f-I,p-I,d+I,m+I)}}else if(R==="bezier"||R==="unbundled-bezier"||pd(R,"segments")||pd(R,"taxi")){var G;switch(R){case"bezier":case"unbundled-bezier":G=v.bezierPts;break;case"segments":case"taxi":case"round-segments":case"round-taxi":G=v.linePts;break}if(G!=null)for(var $=0;$d){var Y=f;f=d,d=Y}if(p>m){var le=p;p=m,m=le}f-=I,d+=I,p-=I,m+=I,xc(s,f,p,d,m)}if(i&&r.includeEdges&&h&&(AS(s,e,"mid-source"),AS(s,e,"mid-target"),AS(s,e,"source"),AS(s,e,"target")),i){var ee=e.pstyle("ghost").value==="yes";if(ee){var J=e.pstyle("ghost-offset-x").pfValue,te=e.pstyle("ghost-offset-y").pfValue;xc(s,s.x1+J,s.y1+te,s.x2+J,s.y2+te)}}var Z=l.bodyBounds=l.bodyBounds||{};Sde(Z,s),PS(Z,x),OS(Z,1),i&&(f=s.x1,d=s.x2,p=s.y1,m=s.y2,xc(s,f-A,p-A,d+A,m+A));var xe=l.overlayBounds=l.overlayBounds||{};Sde(xe,s),PS(xe,x),OS(xe,1);var de=l.labelBounds=l.labelBounds||{};de.all!=null?IXe(de.all):de.all=Ms(),i&&r.includeLabels&&(r.includeMainLabels&&kP(s,e,null),h&&(r.includeSourceLabels&&kP(s,e,"source"),r.includeTargetLabels&&kP(s,e,"target")))}return s.x1=Nl(s.x1),s.y1=Nl(s.y1),s.x2=Nl(s.x2),s.y2=Nl(s.y2),s.w=Nl(s.x2-s.x1),s.h=Nl(s.y2-s.y1),s.w>0&&s.h>0&&T&&(PS(s,x),OS(s,1)),s},"boundingBoxImpl"),Eme=o(function(e){var r=0,n=o(function(s){return(s?1:0)<=0;l--)s(l);return this};Ed.removeAllListeners=function(){return this.removeListener("*")};Ed.emit=Ed.trigger=function(t,e,r){var n=this.listeners,i=n.length;return this.emitting++,$n(e)||(e=[e]),mZe(this,function(a,s){r!=null&&(n=[{event:s.event,type:s.type,namespace:s.namespace,callback:r}],i=n.length);for(var l=o(function(){var f=n[u];if(f.type===s.type&&(!f.namespace||f.namespace===s.namespace||f.namespace===dZe)&&a.eventMatches(a.context,f,s)){var d=[s];e!=null&&aXe(d,e),a.beforeEmit(a.context,f,s),f.conf&&f.conf.one&&(a.listeners=a.listeners.filter(function(g){return g!==f}));var p=a.callbackContext(a.context,f,s),m=f.callback.apply(p,d);a.afterEmit(a.context,f,s),m===!1&&(s.stopPropagation(),s.preventDefault())}},"_loop2"),u=0;u1&&!s){var l=this.length-1,u=this[l],h=u._private.data.id;this[l]=void 0,this[e]=u,a.set(h,{ele:u,index:e})}return this.length--,this},"unmergeAt"),unmergeOne:o(function(e){e=e[0];var r=this._private,n=e._private.data.id,i=r.map,a=i.get(n);if(!a)return this;var s=a.index;return this.unmergeAt(s),this},"unmergeOne"),unmerge:o(function(e){var r=this._private.cy;if(!e)return this;if(e&&or(e)){var n=e;e=r.mutableElements().filter(n)}for(var i=0;i=0;r--){var n=this[r];e(n)&&this.unmergeAt(r)}return this},"unmergeBy"),map:o(function(e,r){for(var n=[],i=this,a=0;an&&(n=u,i=l)}return{value:n,ele:i}},"max"),min:o(function(e,r){for(var n=1/0,i,a=this,s=0;s=0&&a"u"?"undefined":aa(Symbol))!=e&&aa(Symbol.iterator)!=e;r&&(ZS[Symbol.iterator]=function(){var n=this,i={value:void 0,done:!1},a=0,s=this.length;return L0e({next:o(function(){return a1&&arguments[1]!==void 0?arguments[1]:!0,n=this[0],i=n.cy();if(i.styleEnabled()&&n){n._private.styleDirty&&(n._private.styleDirty=!1,i.style().apply(n));var a=n._private.style[e];return a??(r?i.style().getDefaultProperty(e):null)}},"parsedStyle"),numericStyle:o(function(e){var r=this[0];if(r.cy().styleEnabled()&&r){var n=r.pstyle(e);return n.pfValue!==void 0?n.pfValue:n.value}},"numericStyle"),numericStyleUnits:o(function(e){var r=this[0];if(r.cy().styleEnabled()&&r)return r.pstyle(e).units},"numericStyleUnits"),renderedStyle:o(function(e){var r=this.cy();if(!r.styleEnabled())return this;var n=this[0];if(n)return r.style().getRenderedStyle(n,e)},"renderedStyle"),style:o(function(e,r){var n=this.cy();if(!n.styleEnabled())return this;var i=!1,a=n.style();if(sn(e)){var s=e;a.applyBypass(this,s,i),this.emitAndNotify("style")}else if(or(e))if(r===void 0){var l=this[0];return l?a.getStylePropertyValue(l,e):void 0}else a.applyBypass(this,e,r,i),this.emitAndNotify("style");else if(e===void 0){var u=this[0];return u?a.getRawStyle(u):void 0}return this},"style"),removeStyle:o(function(e){var r=this.cy();if(!r.styleEnabled())return this;var n=!1,i=r.style(),a=this;if(e===void 0)for(var s=0;s0&&e.push(f[0]),e.push(l[0])}return this.spawn(e,!0).filter(t)},"neighborhood"),closedNeighborhood:o(function(e){return this.neighborhood().add(this).filter(e)},"closedNeighborhood"),openNeighborhood:o(function(e){return this.neighborhood(e)},"openNeighborhood")});as.neighbourhood=as.neighborhood;as.closedNeighbourhood=as.closedNeighborhood;as.openNeighbourhood=as.openNeighborhood;pr(as,{source:Ml(o(function(e){var r=this[0],n;return r&&(n=r._private.source||r.cy().collection()),n&&e?n.filter(e):n},"sourceImpl"),"source"),target:Ml(o(function(e){var r=this[0],n;return r&&(n=r._private.target||r.cy().collection()),n&&e?n.filter(e):n},"targetImpl"),"target"),sources:Qpe({attr:"source"}),targets:Qpe({attr:"target"})});o(Qpe,"defineSourceFunction");pr(as,{edgesWith:Ml(Zpe(),"edgesWith"),edgesTo:Ml(Zpe({thisIsSrc:!0}),"edgesTo")});o(Zpe,"defineEdgesWithFunction");pr(as,{connectedEdges:Ml(function(t){for(var e=[],r=this,n=0;n0);return s},"components"),component:o(function(){var e=this[0];return e.cy().mutableElements().components(e)[0]},"component")});as.componentsOf=as.components;Va=o(function(e,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(e===void 0){ui("A collection must have a reference to the core");return}var a=new Oh,s=!1;if(!r)r=[];else if(r.length>0&&sn(r[0])&&!Qb(r[0])){s=!0;for(var l=[],u=new ry,h=0,f=r.length;h0&&arguments[0]!==void 0?arguments[0]:!0,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,r=this,n=r.cy(),i=n._private,a=[],s=[],l,u=0,h=r.length;u0){for(var F=l.length===r.length?r:new Va(n,l),G=0;G0&&arguments[0]!==void 0?arguments[0]:!0,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,r=this,n=[],i={},a=r._private.cy;function s(D){for(var M=D._private.edges,R=0;R0&&(t?N.emitAndNotify("remove"):e&&N.emit("remove"));for(var C=0;Cf&&Math.abs(g.v)>f;);return p?function(y){return u[y*(u.length-1)|0]}:h},"springRK4Factory")})(),Wn=o(function(e,r,n,i){var a=SZe(e,r,n,i);return function(s,l,u){return s+(l-s)*a(u)}},"cubicBezier"),$S={linear:o(function(e,r,n){return e+(r-e)*n},"linear"),ease:Wn(.25,.1,.25,1),"ease-in":Wn(.42,0,1,1),"ease-out":Wn(0,0,.58,1),"ease-in-out":Wn(.42,0,.58,1),"ease-in-sine":Wn(.47,0,.745,.715),"ease-out-sine":Wn(.39,.575,.565,1),"ease-in-out-sine":Wn(.445,.05,.55,.95),"ease-in-quad":Wn(.55,.085,.68,.53),"ease-out-quad":Wn(.25,.46,.45,.94),"ease-in-out-quad":Wn(.455,.03,.515,.955),"ease-in-cubic":Wn(.55,.055,.675,.19),"ease-out-cubic":Wn(.215,.61,.355,1),"ease-in-out-cubic":Wn(.645,.045,.355,1),"ease-in-quart":Wn(.895,.03,.685,.22),"ease-out-quart":Wn(.165,.84,.44,1),"ease-in-out-quart":Wn(.77,0,.175,1),"ease-in-quint":Wn(.755,.05,.855,.06),"ease-out-quint":Wn(.23,1,.32,1),"ease-in-out-quint":Wn(.86,0,.07,1),"ease-in-expo":Wn(.95,.05,.795,.035),"ease-out-expo":Wn(.19,1,.22,1),"ease-in-out-expo":Wn(1,0,0,1),"ease-in-circ":Wn(.6,.04,.98,.335),"ease-out-circ":Wn(.075,.82,.165,1),"ease-in-out-circ":Wn(.785,.135,.15,.86),spring:o(function(e,r,n){if(n===0)return $S.linear;var i=CZe(e,r,n);return function(a,s,l){return a+(s-a)*i(l)}},"spring"),"cubic-bezier":Wn};o(e0e,"getEasedValue");o(t0e,"getValue");o(z1,"ease");o(AZe,"step$1");o(Rb,"valid");o(_Ze,"startAnimation");o(r0e,"stepAll");DZe={animate:kn.animate(),animation:kn.animation(),animated:kn.animated(),clearQueue:kn.clearQueue(),delay:kn.delay(),delayAnimation:kn.delayAnimation(),stop:kn.stop(),addToAnimationPool:o(function(e){var r=this;r.styleEnabled()&&r._private.aniEles.merge(e)},"addToAnimationPool"),stopAnimationLoop:o(function(){this._private.animationsRunning=!1},"stopAnimationLoop"),startAnimationLoop:o(function(){var e=this;if(e._private.animationsRunning=!0,!e.styleEnabled())return;function r(){e._private.animationsRunning&&YS(o(function(a){r0e(a,e),r()},"animationStep"))}o(r,"headlessStep");var n=e.renderer();n&&n.beforeRender?n.beforeRender(o(function(a,s){r0e(s,e)},"rendererAnimationStep"),n.beforeRenderPriorities.animations):r()},"startAnimationLoop")},RZe={qualifierCompare:o(function(e,r){return e==null||r==null?e==null&&r==null:e.sameText(r)},"qualifierCompare"),eventMatches:o(function(e,r,n){var i=r.qualifier;return i!=null?e!==n.target&&Qb(n.target)&&i.matches(n.target):!0},"eventMatches"),addEventFields:o(function(e,r){r.cy=e,r.target=e},"addEventFields"),callbackContext:o(function(e,r,n){return r.qualifier!=null?n.target:e},"callbackContext")},RS=o(function(e){return or(e)?new wd(e):e},"argSelector"),Ome={createEmitter:o(function(){var e=this._private;return e.emitter||(e.emitter=new mC(RZe,this)),this},"createEmitter"),emitter:o(function(){return this._private.emitter},"emitter"),on:o(function(e,r,n){return this.emitter().on(e,RS(r),n),this},"on"),removeListener:o(function(e,r,n){return this.emitter().removeListener(e,RS(r),n),this},"removeListener"),removeAllListeners:o(function(){return this.emitter().removeAllListeners(),this},"removeAllListeners"),one:o(function(e,r,n){return this.emitter().one(e,RS(r),n),this},"one"),once:o(function(e,r,n){return this.emitter().one(e,RS(r),n),this},"once"),emit:o(function(e,r){return this.emitter().emit(e,r),this},"emit"),emitAndNotify:o(function(e,r){return this.emit(e),this.notify(e,r),this},"emitAndNotify")};kn.eventAliasesOn(Ome);qP={png:o(function(e){var r=this._private.renderer;return e=e||{},r.png(e)},"png"),jpg:o(function(e){var r=this._private.renderer;return e=e||{},e.bg=e.bg||"#fff",r.jpg(e)},"jpg")};qP.jpeg=qP.jpg;zS={layout:o(function(e){var r=this;if(e==null){ui("Layout options must be specified to make a layout");return}if(e.name==null){ui("A `name` must be specified to make a layout");return}var n=e.name,i=r.extension("layout",n);if(i==null){ui("No such layout `"+n+"` found. Did you forget to import it and `cytoscape.use()` it?");return}var a;or(e.eles)?a=r.$(e.eles):a=e.eles!=null?e.eles:r.$();var s=new i(pr({},e,{cy:r,eles:a}));return s},"layout")};zS.createLayout=zS.makeLayout=zS.layout;LZe={notify:o(function(e,r){var n=this._private;if(this.batching()){n.batchNotifications=n.batchNotifications||{};var i=n.batchNotifications[e]=n.batchNotifications[e]||this.collection();r!=null&&i.merge(r);return}if(n.notificationsEnabled){var a=this.renderer();this.destroyed()||!a||a.notify(e,r)}},"notify"),notifications:o(function(e){var r=this._private;return e===void 0?r.notificationsEnabled:(r.notificationsEnabled=!!e,this)},"notifications"),noNotifications:o(function(e){this.notifications(!1),e(),this.notifications(!0)},"noNotifications"),batching:o(function(){return this._private.batchCount>0},"batching"),startBatch:o(function(){var e=this._private;return e.batchCount==null&&(e.batchCount=0),e.batchCount===0&&(e.batchStyleEles=this.collection(),e.batchNotifications={}),e.batchCount++,this},"startBatch"),endBatch:o(function(){var e=this._private;if(e.batchCount===0)return this;if(e.batchCount--,e.batchCount===0){e.batchStyleEles.updateStyle();var r=this.renderer();Object.keys(e.batchNotifications).forEach(function(n){var i=e.batchNotifications[n];i.empty()?r.notify(n):r.notify(n,i)})}return this},"endBatch"),batch:o(function(e){return this.startBatch(),e(),this.endBatch(),this},"batch"),batchData:o(function(e){var r=this;return this.batch(function(){for(var n=Object.keys(e),i=0;i0;)r.removeChild(r.childNodes[0]);e._private.renderer=null,e.mutableElements().forEach(function(n){var i=n._private;i.rscratch={},i.rstyle={},i.animation.current=[],i.animation.queue=[]})},"destroyRenderer"),onRender:o(function(e){return this.on("render",e)},"onRender"),offRender:o(function(e){return this.off("render",e)},"offRender")};UP.invalidateDimensions=UP.resize;GS={collection:o(function(e,r){return or(e)?this.$(e):jo(e)?e.collection():$n(e)?(r||(r={}),new Va(this,e,r.unique,r.removed)):new Va(this)},"collection"),nodes:o(function(e){var r=this.$(function(n){return n.isNode()});return e?r.filter(e):r},"nodes"),edges:o(function(e){var r=this.$(function(n){return n.isEdge()});return e?r.filter(e):r},"edges"),$:o(function(e){var r=this._private.elements;return e?r.filter(e):r.spawnSelf()},"$"),mutableElements:o(function(){return this._private.elements},"mutableElements")};GS.elements=GS.filter=GS.$;Ea={},Bb="t",MZe="f";Ea.apply=function(t){for(var e=this,r=e._private,n=r.cy,i=n.collection(),a=0;a0;if(p||d&&m){var g=void 0;p&&m||p?g=h.properties:m&&(g=h.mappedProperties);for(var y=0;y1&&(E=1),l.color){var k=n.valueMin[0],S=n.valueMax[0],A=n.valueMin[1],L=n.valueMax[1],I=n.valueMin[2],N=n.valueMax[2],C=n.valueMin[3]==null?1:n.valueMin[3],_=n.valueMax[3]==null?1:n.valueMax[3],D=[Math.round(k+(S-k)*E),Math.round(A+(L-A)*E),Math.round(I+(N-I)*E),Math.round(C+(_-C)*E)];a={bypass:n.bypass,name:n.name,value:D,strValue:"rgb("+D[0]+", "+D[1]+", "+D[2]+")"}}else if(l.number){var M=n.valueMin+(n.valueMax-n.valueMin)*E;a=this.parse(n.name,M,n.bypass,p)}else return!1;if(!a)return y(),!1;a.mapping=n,n=a;break}case s.data:{for(var R=n.field.split("."),P=d.data,B=0;B0&&a>0){for(var l={},u=!1,h=0;h0?t.delayAnimation(s).play().promise().then(T):T()}).then(function(){return t.animation({style:l,duration:a,easing:t.pstyle("transition-timing-function").value,queue:!1}).play().promise()}).then(function(){r.removeBypasses(t,i),t.emitAndNotify("style"),n.transitioning=!1})}else n.transitioning&&(this.removeBypasses(t,i),t.emitAndNotify("style"),n.transitioning=!1)};Ea.checkTrigger=function(t,e,r,n,i,a){var s=this.properties[e],l=i(s);t.removed()||l!=null&&l(r,n,t)&&a(s)};Ea.checkZOrderTrigger=function(t,e,r,n){var i=this;this.checkTrigger(t,e,r,n,function(a){return a.triggersZOrder},function(){i._private.cy.notify("zorder",t)})};Ea.checkBoundsTrigger=function(t,e,r,n){this.checkTrigger(t,e,r,n,function(i){return i.triggersBounds},function(i){t.dirtyCompoundBoundsCache(),t.dirtyBoundingBoxCache()})};Ea.checkConnectedEdgesBoundsTrigger=function(t,e,r,n){this.checkTrigger(t,e,r,n,function(i){return i.triggersBoundsOfConnectedEdges},function(i){t.connectedEdges().forEach(function(a){a.dirtyBoundingBoxCache()})})};Ea.checkParallelEdgesBoundsTrigger=function(t,e,r,n){this.checkTrigger(t,e,r,n,function(i){return i.triggersBoundsOfParallelEdges},function(i){t.parallelEdges().forEach(function(a){a.dirtyBoundingBoxCache()})})};Ea.checkTriggers=function(t,e,r,n){t.dirtyStyleCache(),this.checkZOrderTrigger(t,e,r,n),this.checkBoundsTrigger(t,e,r,n),this.checkConnectedEdgesBoundsTrigger(t,e,r,n),this.checkParallelEdgesBoundsTrigger(t,e,r,n)};iT={};iT.applyBypass=function(t,e,r,n){var i=this,a=[],s=!0;if(e==="*"||e==="**"){if(r!==void 0)for(var l=0;li.length?n=n.substr(i.length):n=""}o(l,"removeSelAndBlockFromRemaining");function u(){a.length>s.length?a=a.substr(s.length):a=""}for(o(u,"removePropAndValFromRem");;){var h=n.match(/^\s*$/);if(h)break;var f=n.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);if(!f){En("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: "+n);break}i=f[0];var d=f[1];if(d!=="core"){var p=new wd(d);if(p.invalid){En("Skipping parsing of block: Invalid selector found in string stylesheet: "+d),l();continue}}var m=f[2],g=!1;a=m;for(var y=[];;){var v=a.match(/^\s*$/);if(v)break;var x=a.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/);if(!x){En("Skipping parsing of block: Invalid formatting of style property and value definitions found in:"+m),g=!0;break}s=x[0];var b=x[1],T=x[2],E=e.properties[b];if(!E){En("Skipping property: Invalid property name in: "+s),u();continue}var w=r.parse(b,T);if(!w){En("Skipping property: Invalid property definition in: "+s),u();continue}y.push({name:b,val:T}),u()}if(g){l();break}r.selector(d);for(var k=0;k=7&&e[0]==="d"&&(f=new RegExp(l.data.regex).exec(e))){if(r)return!1;var p=l.data;return{name:t,value:f,strValue:""+e,mapped:p,field:f[1],bypass:r}}else if(e.length>=10&&e[0]==="m"&&(d=new RegExp(l.mapData.regex).exec(e))){if(r||h.multiple)return!1;var m=l.mapData;if(!(h.color||h.number))return!1;var g=this.parse(t,d[4]);if(!g||g.mapped)return!1;var y=this.parse(t,d[5]);if(!y||y.mapped)return!1;if(g.pfValue===y.pfValue||g.strValue===y.strValue)return En("`"+t+": "+e+"` is not a valid mapper because the output range is zero; converting to `"+t+": "+g.strValue+"`"),this.parse(t,g.strValue);if(h.color){var v=g.value,x=y.value,b=v[0]===x[0]&&v[1]===x[1]&&v[2]===x[2]&&(v[3]===x[3]||(v[3]==null||v[3]===1)&&(x[3]==null||x[3]===1));if(b)return!1}return{name:t,value:d,strValue:""+e,mapped:m,field:d[1],fieldMin:parseFloat(d[2]),fieldMax:parseFloat(d[3]),valueMin:g.value,valueMax:y.value,bypass:r}}}if(h.multiple&&n!=="multiple"){var T;if(u?T=e.split(/\s+/):$n(e)?T=e:T=[e],h.evenMultiple&&T.length%2!==0)return null;for(var E=[],w=[],k=[],S="",A=!1,L=0;L0?" ":"")+I.strValue}return h.validate&&!h.validate(E,w)?null:h.singleEnum&&A?E.length===1&&or(E[0])?{name:t,value:E[0],strValue:E[0],bypass:r}:null:{name:t,value:E,pfValue:k,strValue:S,bypass:r,units:w}}var N=o(function(){for(var ee=0;eeh.max||h.strictMax&&e===h.max))return null;var R={name:t,value:e,strValue:""+e+(C||""),units:C,bypass:r};return h.unitless||C!=="px"&&C!=="em"?R.pfValue=e:R.pfValue=C==="px"||!C?e:this.getEmSizeInPixels()*e,(C==="ms"||C==="s")&&(R.pfValue=C==="ms"?e:1e3*e),(C==="deg"||C==="rad")&&(R.pfValue=C==="rad"?e:RXe(e)),C==="%"&&(R.pfValue=e/100),R}else if(h.propList){var P=[],B=""+e;if(B!=="none"){for(var F=B.split(/\s*,\s*|\s+/),G=0;G0&&l>0&&!isNaN(n.w)&&!isNaN(n.h)&&n.w>0&&n.h>0){u=Math.min((s-2*r)/n.w,(l-2*r)/n.h),u=u>this._private.maxZoom?this._private.maxZoom:u,u=u=n.minZoom&&(n.maxZoom=r),this},"zoomRange"),minZoom:o(function(e){return e===void 0?this._private.minZoom:this.zoomRange({min:e})},"minZoom"),maxZoom:o(function(e){return e===void 0?this._private.maxZoom:this.zoomRange({max:e})},"maxZoom"),getZoomedViewport:o(function(e){var r=this._private,n=r.pan,i=r.zoom,a,s,l=!1;if(r.zoomingEnabled||(l=!0),Nt(e)?s=e:sn(e)&&(s=e.level,e.position!=null?a=lC(e.position,i,n):e.renderedPosition!=null&&(a=e.renderedPosition),a!=null&&!r.panningEnabled&&(l=!0)),s=s>r.maxZoom?r.maxZoom:s,s=sr.maxZoom||!r.zoomingEnabled?s=!0:(r.zoom=u,a.push("zoom"))}if(i&&(!s||!e.cancelOnFailedZoom)&&r.panningEnabled){var h=e.pan;Nt(h.x)&&(r.pan.x=h.x,l=!1),Nt(h.y)&&(r.pan.y=h.y,l=!1),l||a.push("pan")}return a.length>0&&(a.push("viewport"),this.emit(a.join(" ")),this.notify("viewport")),this},"viewport"),center:o(function(e){var r=this.getCenterPan(e);return r&&(this._private.pan=r,this.emit("pan viewport"),this.notify("viewport")),this},"center"),getCenterPan:o(function(e,r){if(this._private.panningEnabled){if(or(e)){var n=e;e=this.mutableElements().filter(n)}else jo(e)||(e=this.mutableElements());if(e.length!==0){var i=e.boundingBox(),a=this.width(),s=this.height();r=r===void 0?this._private.zoom:r;var l={x:(a-r*(i.x1+i.x2))/2,y:(s-r*(i.y1+i.y2))/2};return l}}},"getCenterPan"),reset:o(function(){return!this._private.panningEnabled||!this._private.zoomingEnabled?this:(this.viewport({pan:{x:0,y:0},zoom:1}),this)},"reset"),invalidateSize:o(function(){this._private.sizeCache=null},"invalidateSize"),size:o(function(){var e=this._private,r=e.container,n=this;return e.sizeCache=e.sizeCache||(r?(function(){var i=n.window().getComputedStyle(r),a=o(function(l){return parseFloat(i.getPropertyValue(l))},"val");return{width:r.clientWidth-a("padding-left")-a("padding-right"),height:r.clientHeight-a("padding-top")-a("padding-bottom")}})():{width:1,height:1})},"size"),width:o(function(){return this.size().width},"width"),height:o(function(){return this.size().height},"height"),extent:o(function(){var e=this._private.pan,r=this._private.zoom,n=this.renderedExtent(),i={x1:(n.x1-e.x)/r,x2:(n.x2-e.x)/r,y1:(n.y1-e.y)/r,y2:(n.y2-e.y)/r};return i.w=i.x2-i.x1,i.h=i.y2-i.y1,i},"extent"),renderedExtent:o(function(){var e=this.width(),r=this.height();return{x1:0,y1:0,x2:e,y2:r,w:e,h:r}},"renderedExtent"),multiClickDebounceTime:o(function(e){if(e)this._private.multiClickDebounceTime=e;else return this._private.multiClickDebounceTime;return this},"multiClickDebounceTime")};q0.centre=q0.center;q0.autolockNodes=q0.autolock;q0.autoungrabifyNodes=q0.autoungrabify;Yb={data:kn.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeData:kn.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),scratch:kn.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:kn.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0})};Yb.attr=Yb.data;Yb.removeAttr=Yb.removeData;jb=o(function(e){var r=this;e=pr({},e);var n=e.container;n&&!HS(n)&&HS(n[0])&&(n=n[0]);var i=n?n._cyreg:null;i=i||{},i&&i.cy&&(i.cy.destroy(),i={});var a=i.readies=i.readies||[];n&&(n._cyreg=i),i.cy=r;var s=na!==void 0&&n!==void 0&&!e.headless,l=e;l.layout=pr({name:s?"grid":"null"},l.layout),l.renderer=pr({name:s?"canvas":"null"},l.renderer);var u=o(function(g,y,v){return y!==void 0?y:v!==void 0?v:g},"defVal"),h=this._private={container:n,ready:!1,options:l,elements:new Va(this),listeners:[],aniEles:new Va(this),data:l.data||{},scratch:{},layout:null,renderer:null,destroyed:!1,notificationsEnabled:!0,minZoom:1e-50,maxZoom:1e50,zoomingEnabled:u(!0,l.zoomingEnabled),userZoomingEnabled:u(!0,l.userZoomingEnabled),panningEnabled:u(!0,l.panningEnabled),userPanningEnabled:u(!0,l.userPanningEnabled),boxSelectionEnabled:u(!0,l.boxSelectionEnabled),autolock:u(!1,l.autolock,l.autolockNodes),autoungrabify:u(!1,l.autoungrabify,l.autoungrabifyNodes),autounselectify:u(!1,l.autounselectify),styleEnabled:l.styleEnabled===void 0?s:l.styleEnabled,zoom:Nt(l.zoom)?l.zoom:1,pan:{x:sn(l.pan)&&Nt(l.pan.x)?l.pan.x:0,y:sn(l.pan)&&Nt(l.pan.y)?l.pan.y:0},animation:{current:[],queue:[]},hasCompoundNodes:!1,multiClickDebounceTime:u(250,l.multiClickDebounceTime)};this.createEmitter(),this.selectionType(l.selectionType),this.zoomRange({min:l.minZoom,max:l.maxZoom});var f=o(function(g,y){var v=g.some(Eje);if(v)return ny.all(g).then(y);y(g)},"loadExtData");h.styleEnabled&&r.setStyle([]);var d=pr({},l,l.renderer);r.initRenderer(d);var p=o(function(g,y,v){r.notifications(!1);var x=r.mutableElements();x.length>0&&x.remove(),g!=null&&(sn(g)||$n(g))&&r.add(g),r.one("layoutready",function(T){r.notifications(!0),r.emit(T),r.one("load",y),r.emitAndNotify("load")}).one("layoutstop",function(){r.one("done",v),r.emit("done")});var b=pr({},r._private.options.layout);b.eles=r.elements(),r.layout(b).run()},"setElesAndLayout");f([l.style,l.elements],function(m){var g=m[0],y=m[1];h.styleEnabled&&r.style().append(g),p(y,function(){r.startAnimationLoop(),h.ready=!0,Ei(l.ready)&&r.on("ready",l.ready);for(var v=0;v0,l=!!t.boundingBox,u=Ms(l?t.boundingBox:structuredClone(e.extent())),h;if(jo(t.roots))h=t.roots;else if($n(t.roots)){for(var f=[],d=0;d0;){var D=_(),M=L(D,N);if(M)D.outgoers().filter(function(_e){return _e.isNode()&&r.has(_e)}).forEach(C);else if(M===null){En("Detected double maximal shift for node `"+D.id()+"`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.");break}}}var R=0;if(t.avoidOverlap)for(var P=0;P0&&x[0].length<=3?Be/2:0),Ge=2*Math.PI/x[Ke].length*Te;return Ke===0&&x[0].length===1&&(Ue=1),{x:Z.x+Ue*Math.cos(Ge),y:Z.y+Ue*Math.sin(Ge)}}else{var Ne=x[Ke].length,We=Math.max(Ne===1?0:l?(u.w-t.padding*2-xe.w)/((t.grid?Se:Ne)-1):(u.w-t.padding*2-xe.w)/((t.grid?Se:Ne)+1),R),j={x:Z.x+(Te+1-(Ne+1)/2)*We,y:Z.y+(Ke+1-(H+1)/2)*de};return j}},"getPositionTopBottom"),ke={downward:0,leftward:90,upward:180,rightward:-90};Object.keys(ke).indexOf(t.direction)===-1&&ui("Invalid direction '".concat(t.direction,"' specified for breadthfirst layout. Valid values are: ").concat(Object.keys(ke).join(", ")));var we=o(function($e){return Jje(Me($e),u,ke[t.direction])},"getPosition");return r.nodes().layoutPositions(this,t,we),this};FZe={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,radius:void 0,startAngle:3/2*Math.PI,sweep:void 0,clockwise:!0,sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:o(function(e,r){return!0},"animateFilter"),ready:void 0,stop:void 0,transform:o(function(e,r){return r},"transform")};o(Bme,"CircleLayout");Bme.prototype.run=function(){var t=this.options,e=t,r=t.cy,n=e.eles,i=e.counterclockwise!==void 0?!e.counterclockwise:e.clockwise,a=n.nodes().not(":parent");e.sort&&(a=a.sort(e.sort));for(var s=Ms(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()}),l={x:s.x1+s.w/2,y:s.y1+s.h/2},u=e.sweep===void 0?2*Math.PI-2*Math.PI/a.length:e.sweep,h=u/Math.max(1,a.length-1),f,d=0,p=0;p1&&e.avoidOverlap){d*=1.75;var x=Math.cos(h)-Math.cos(0),b=Math.sin(h)-Math.sin(0),T=Math.sqrt(d*d/(x*x+b*b));f=Math.max(T,f)}var E=o(function(k,S){var A=e.startAngle+S*h*(i?1:-1),L=f*Math.cos(A),I=f*Math.sin(A),N={x:l.x+L,y:l.y+I};return N},"getPos");return n.nodes().layoutPositions(this,e,E),this};$Ze={fit:!0,padding:30,startAngle:3/2*Math.PI,sweep:void 0,clockwise:!0,equidistant:!1,minNodeSpacing:10,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,height:void 0,width:void 0,spacingFactor:void 0,concentric:o(function(e){return e.degree()},"concentric"),levelWidth:o(function(e){return e.maxDegree()/4},"levelWidth"),animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:o(function(e,r){return!0},"animateFilter"),ready:void 0,stop:void 0,transform:o(function(e,r){return r},"transform")};o(Fme,"ConcentricLayout");Fme.prototype.run=function(){for(var t=this.options,e=t,r=e.counterclockwise!==void 0?!e.counterclockwise:e.clockwise,n=t.cy,i=e.eles,a=i.nodes().not(":parent"),s=Ms(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()}),l={x:s.x1+s.w/2,y:s.y1+s.h/2},u=[],h=0,f=0;f0){var w=Math.abs(b[0].value-E.value);w>=v&&(b=[],x.push(b))}b.push(E)}var k=h+e.minNodeSpacing;if(!e.avoidOverlap){var S=x.length>0&&x[0].length>1,A=Math.min(s.w,s.h)/2-k,L=A/(x.length+S?1:0);k=Math.min(k,L)}for(var I=0,N=0;N1&&e.avoidOverlap){var M=Math.cos(D)-Math.cos(0),R=Math.sin(D)-Math.sin(0),P=Math.sqrt(k*k/(M*M+R*R));I=Math.max(P,I)}C.r=I,I+=k}if(e.equidistant){for(var B=0,F=0,G=0;G=t.numIter||(HZe(n,t),n.temperature=n.temperature*t.coolingFactor,n.temperature=t.animationThreshold&&a(),YS(f)}},"frame");f()}else{for(;h;)h=s(u),u++;a0e(n,t),l()}return this};bC.prototype.stop=function(){return this.stopped=!0,this.thread&&this.thread.stop(),this.emit("layoutstop"),this};bC.prototype.destroy=function(){return this.thread&&this.thread.stop(),this};GZe=o(function(e,r,n){for(var i=n.eles.edges(),a=n.eles.nodes(),s=Ms(n.boundingBox?n.boundingBox:{x1:0,y1:0,w:e.width(),h:e.height()}),l={isCompound:e.hasCompoundNodes(),layoutNodes:[],idToIndex:{},nodeSize:a.size(),graphSet:[],indexToGraph:[],layoutEdges:[],edgeSize:i.size(),temperature:n.initialTemp,clientWidth:s.w,clientHeight:s.h,boundingBox:s},u=n.eles.components(),h={},f=0;f0){l.graphSet.push(A);for(var f=0;fi.count?0:i.graph},"findLCA"),$me=o(function(e,r,n,i){var a=i.graphSet[n];if(-10)var d=i.nodeOverlap*f,p=Math.sqrt(l*l+u*u),m=d*l/p,g=d*u/p;else var y=eC(e,l,u),v=eC(r,-1*l,-1*u),x=v.x-y.x,b=v.y-y.y,T=x*x+b*b,p=Math.sqrt(T),d=(e.nodeRepulsion+r.nodeRepulsion)/T,m=d*x/p,g=d*b/p;e.isLocked||(e.offsetX-=m,e.offsetY-=g),r.isLocked||(r.offsetX+=m,r.offsetY+=g)}},"nodeRepulsion"),XZe=o(function(e,r,n,i){if(n>0)var a=e.maxX-r.minX;else var a=r.maxX-e.minX;if(i>0)var s=e.maxY-r.minY;else var s=r.maxY-e.minY;return a>=0&&s>=0?Math.sqrt(a*a+s*s):0},"nodesOverlap"),eC=o(function(e,r,n){var i=e.positionX,a=e.positionY,s=e.height||1,l=e.width||1,u=n/r,h=s/l,f={};return r===0&&0n?(f.x=i,f.y=a+s/2,f):0r&&-1*h<=u&&u<=h?(f.x=i-l/2,f.y=a-l*n/2/r,f):0=h)?(f.x=i+s*r/2/n,f.y=a+s/2,f):(0>n&&(u<=-1*h||u>=h)&&(f.x=i-s*r/2/n,f.y=a-s/2),f)},"findClippingPoint"),KZe=o(function(e,r){for(var n=0;nn){var v=r.gravity*m/y,x=r.gravity*g/y;p.offsetX+=v,p.offsetY+=x}}}}},"calculateGravityForces"),ZZe=o(function(e,r){var n=[],i=0,a=-1;for(n.push.apply(n,e.graphSet[0]),a+=e.graphSet[0].length;i<=a;){var s=n[i++],l=e.idToIndex[s],u=e.layoutNodes[l],h=u.children;if(0n)var a={x:n*e/i,y:n*r/i};else var a={x:e,y:r};return a},"limitForce"),Gme=o(function(e,r){var n=e.parentId;if(n!=null){var i=r.layoutNodes[r.idToIndex[n]],a=!1;if((i.maxX==null||e.maxX+i.padRight>i.maxX)&&(i.maxX=e.maxX+i.padRight,a=!0),(i.minX==null||e.minX-i.padLefti.maxY)&&(i.maxY=e.maxY+i.padBottom,a=!0),(i.minY==null||e.minY-i.padTopx&&(g+=v+r.componentSpacing,m=0,y=0,v=0)}}},"separateComponents"),tJe={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,avoidOverlapPadding:10,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,condense:!1,rows:void 0,cols:void 0,position:o(function(e){},"position"),sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:o(function(e,r){return!0},"animateFilter"),ready:void 0,stop:void 0,transform:o(function(e,r){return r},"transform")};o(Vme,"GridLayout");Vme.prototype.run=function(){var t=this.options,e=t,r=t.cy,n=e.eles,i=n.nodes().not(":parent");e.sort&&(i=i.sort(e.sort));var a=Ms(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()});if(a.h===0||a.w===0)n.nodes().layoutPositions(this,e,function(X){return{x:a.x1,y:a.y1}});else{var s=i.size(),l=Math.sqrt(s*a.h/a.w),u=Math.round(l),h=Math.round(a.w/a.h*l),f=o(function(Q){if(Q==null)return Math.min(u,h);var H=Math.min(u,h);H==u?u=Q:h=Q},"small"),d=o(function(Q){if(Q==null)return Math.max(u,h);var H=Math.max(u,h);H==u?u=Q:h=Q},"large"),p=e.rows,m=e.cols!=null?e.cols:e.columns;if(p!=null&&m!=null)u=p,h=m;else if(p!=null&&m==null)u=p,h=Math.ceil(s/u);else if(p==null&&m!=null)h=m,u=Math.ceil(s/h);else if(h*u>s){var g=f(),y=d();(g-1)*y>=s?f(g-1):(y-1)*g>=s&&d(y-1)}else for(;h*u=s?d(x+1):f(v+1)}var b=a.w/h,T=a.h/u;if(e.condense&&(b=0,T=0),e.avoidOverlap)for(var E=0;E=h&&(M=0,D++)},"moveToNextCell"),P={},B=0;B(M=UXe(t,e,R[P],R[P+1],R[P+2],R[P+3])))return v(S,M),!0}else if(L.edgeType==="bezier"||L.edgeType==="multibezier"||L.edgeType==="self"||L.edgeType==="compound"){for(var R=L.allpts,P=0;P+5(M=qXe(t,e,R[P],R[P+1],R[P+2],R[P+3],R[P+4],R[P+5])))return v(S,M),!0}for(var B=B||A.source,F=F||A.target,G=i.getArrowWidth(I,N),$=[{name:"source",x:L.arrowStartX,y:L.arrowStartY,angle:L.srcArrowAngle},{name:"target",x:L.arrowEndX,y:L.arrowEndY,angle:L.tgtArrowAngle},{name:"mid-source",x:L.midX,y:L.midY,angle:L.midsrcArrowAngle},{name:"mid-target",x:L.midX,y:L.midY,angle:L.midtgtArrowAngle}],P=0;P<$.length;P++){var V=$[P],X=a.arrowShapes[S.pstyle(V.name+"-arrow-shape").value],Q=S.pstyle("width").pfValue;if(X.roughCollide(t,e,G,V.angle,{x:V.x,y:V.y},Q,f)&&X.collide(t,e,G,V.angle,{x:V.x,y:V.y},Q,f))return v(S),!0}h&&l.length>0&&(x(B),x(F))}o(b,"checkEdge");function T(S,A,L){return yo(S,A,L)}o(T,"preprop");function E(S,A){var L=S._private,I=p,N;A?N=A+"-":N="",S.boundingBox();var C=L.labelBounds[A||"main"],_=S.pstyle(N+"label").value,D=S.pstyle("text-events").strValue==="yes";if(!(!D||!_)){var M=T(L.rscratch,"labelX",A),R=T(L.rscratch,"labelY",A),P=T(L.rscratch,"labelAngle",A),B=S.pstyle(N+"text-margin-x").pfValue,F=S.pstyle(N+"text-margin-y").pfValue,G=C.x1-I-B,$=C.x2+I-B,V=C.y1-I-F,X=C.y2+I-F;if(P){var Q=Math.cos(P),H=Math.sin(P),ie=o(function(xe,de){return xe=xe-M,de=de-R,{x:xe*Q-de*H+M,y:xe*H+de*Q+R}},"rotate"),Y=ie(G,V),le=ie(G,X),ee=ie($,V),J=ie($,X),te=[Y.x+B,Y.y+F,ee.x+B,ee.y+F,J.x+B,J.y+F,le.x+B,le.y+F];if(vo(t,e,te))return v(S),!0}else if(md(C,t,e))return v(S),!0}}o(E,"checkLabel");for(var w=s.length-1;w>=0;w--){var k=s[w];k.isNode()?x(k)||E(k):b(k)||E(k)||E(k,"source")||E(k,"target")}return l};W0.getAllInBox=function(t,e,r,n){var i=this.getCachedZSortedEles().interactive,a=this.cy.zoom(),s=2/a,l=[],u=Math.min(t,r),h=Math.max(t,r),f=Math.min(e,n),d=Math.max(e,n);t=u,r=h,e=f,n=d;var p=Ms({x1:t,y1:e,x2:r,y2:n}),m=[{x:p.x1,y:p.y1},{x:p.x2,y:p.y1},{x:p.x2,y:p.y2},{x:p.x1,y:p.y2}],g=[[m[0],m[1]],[m[1],m[2]],[m[2],m[3]],[m[3],m[0]]];function y(xe,de,Se){return yo(xe,de,Se)}o(y,"preprop");function v(xe,de){var Se=xe._private,Me=s,ke="";xe.boundingBox();var we=Se.labelBounds.main;if(!we)return null;var _e=y(Se.rscratch,"labelX",de),$e=y(Se.rscratch,"labelY",de),fe=y(Se.rscratch,"labelAngle",de),Ke=xe.pstyle(ke+"text-margin-x").pfValue,Te=xe.pstyle(ke+"text-margin-y").pfValue,Be=we.x1-Me-Ke,Ue=we.x2+Me-Ke,Ge=we.y1-Me-Te,Ne=we.y2+Me-Te;if(fe){var We=Math.cos(fe),j=Math.sin(fe),ae=o(function(ce,z){return ce=ce-_e,z=z-$e,{x:ce*We-z*j+_e,y:ce*j+z*We+$e}},"rotate");return[ae(Be,Ge),ae(Ue,Ge),ae(Ue,Ne),ae(Be,Ne)]}else return[{x:Be,y:Ge},{x:Ue,y:Ge},{x:Ue,y:Ne},{x:Be,y:Ne}]}o(v,"getRotatedLabelBox");function x(xe,de,Se,Me){function ke(we,_e,$e){return($e.y-we.y)*(_e.x-we.x)>(_e.y-we.y)*($e.x-we.x)}return o(ke,"ccw"),ke(xe,Se,Me)!==ke(de,Se,Me)&&ke(xe,de,Se)!==ke(xe,de,Me)}o(x,"doLinesIntersect");for(var b=0;b0?-(Math.PI-e.ang):Math.PI+e.ang},"invertVec"),oJe=o(function(e,r,n,i,a){if(e!==u0e?h0e(r,e,Su):sJe(Ll,Su),h0e(r,n,Ll),l0e=Su.nx*Ll.ny-Su.ny*Ll.nx,c0e=Su.nx*Ll.nx-Su.ny*-Ll.ny,Mh=Math.asin(Math.max(-1,Math.min(1,l0e))),Math.abs(Mh)<1e-6){WP=r.x,HP=r.y,P0=V1=0;return}F0=1,VS=!1,c0e<0?Mh<0?Mh=Math.PI+Mh:(Mh=Math.PI-Mh,F0=-1,VS=!0):Mh>0&&(F0=-1,VS=!0),r.radius!==void 0?V1=r.radius:V1=i,N0=Mh/2,LS=Math.min(Su.len/2,Ll.len/2),a?(ku=Math.abs(Math.cos(N0)*V1/Math.sin(N0)),ku>LS?(ku=LS,P0=Math.abs(ku*Math.sin(N0)/Math.cos(N0))):P0=V1):(ku=Math.min(LS,V1),P0=Math.abs(ku*Math.sin(N0)/Math.cos(N0))),YP=r.x+Ll.nx*ku,jP=r.y+Ll.ny*ku,WP=YP-Ll.ny*P0*F0,HP=jP+Ll.nx*P0*F0,Hme=r.x+Su.nx*ku,Yme=r.y+Su.ny*ku,u0e=r},"calcCornerArc");o(jme,"drawPreparedRoundCorner");o(TB,"getRoundCorner");Xb=.01,lJe=Math.sqrt(2*Xb),os={};os.findMidptPtsEtc=function(t,e){var r=e.posPts,n=e.intersectionPts,i=e.vectorNormInverse,a,s=t.pstyle("source-endpoint"),l=t.pstyle("target-endpoint"),u=s.units!=null&&l.units!=null,h=o(function(w,k,S,A){var L=A-k,I=S-w,N=Math.sqrt(I*I+L*L);return{x:-L/N,y:I/N}},"recalcVectorNormInverse"),f=t.pstyle("edge-distances").value;switch(f){case"node-position":a=r;break;case"intersection":a=n;break;case"endpoints":{if(u){var d=this.manualEndptToPx(t.source()[0],s),p=Wi(d,2),m=p[0],g=p[1],y=this.manualEndptToPx(t.target()[0],l),v=Wi(y,2),x=v[0],b=v[1],T={x1:m,y1:g,x2:x,y2:b};i=h(m,g,x,b),a=T}else En("Edge ".concat(t.id()," has edge-distances:endpoints specified without manual endpoints specified via source-endpoint and target-endpoint. Falling back on edge-distances:intersection (default).")),a=n;break}}return{midptPts:a,vectorNormInverse:i}};os.findHaystackPoints=function(t){for(var e=0;e0?Math.max(z-ne,0):Math.min(z+ne,0)},"subDWH"),_=C(I,A),D=C(N,L),M=!1;b===h?x=Math.abs(_)>Math.abs(D)?i:n:b===u||b===l?(x=n,M=!0):(b===a||b===s)&&(x=i,M=!0);var R=x===n,P=R?D:_,B=R?N:I,F=lB(B),G=!1;!(M&&(E||k))&&(b===l&&B<0||b===u&&B>0||b===a&&B>0||b===s&&B<0)&&(F*=-1,P=F*Math.abs(P),G=!0);var $;if(E){var V=w<0?1+w:w;$=V*P}else{var X=w<0?P:0;$=X+w*F}var Q=o(function(z){return Math.abs(z)=Math.abs(P)},"getIsTooClose"),H=Q($),ie=Q(Math.abs(P)-Math.abs($)),Y=H||ie;if(Y&&!G)if(R){var le=Math.abs(B)<=p/2,ee=Math.abs(I)<=m/2;if(le){var J=(f.x1+f.x2)/2,te=f.y1,Z=f.y2;r.segpts=[J,te,J,Z]}else if(ee){var xe=(f.y1+f.y2)/2,de=f.x1,Se=f.x2;r.segpts=[de,xe,Se,xe]}else r.segpts=[f.x1,f.y2]}else{var Me=Math.abs(B)<=d/2,ke=Math.abs(N)<=g/2;if(Me){var we=(f.y1+f.y2)/2,_e=f.x1,$e=f.x2;r.segpts=[_e,we,$e,we]}else if(ke){var fe=(f.x1+f.x2)/2,Ke=f.y1,Te=f.y2;r.segpts=[fe,Ke,fe,Te]}else r.segpts=[f.x2,f.y1]}else if(R){var Be=f.y1+$+(v?p/2*F:0),Ue=f.x1,Ge=f.x2;r.segpts=[Ue,Be,Ge,Be]}else{var Ne=f.x1+$+(v?d/2*F:0),We=f.y1,j=f.y2;r.segpts=[Ne,We,Ne,j]}if(r.isRound){var ae=t.pstyle("taxi-radius").value,U=t.pstyle("radius-type").value[0]==="arc-radius";r.radii=new Array(r.segpts.length/2).fill(ae),r.isArcRadius=new Array(r.segpts.length/2).fill(U)}};os.tryToCorrectInvalidPoints=function(t,e){var r=t._private.rscratch;if(r.edgeType==="bezier"){var n=e.srcPos,i=e.tgtPos,a=e.srcW,s=e.srcH,l=e.tgtW,u=e.tgtH,h=e.srcShape,f=e.tgtShape,d=e.srcCornerRadius,p=e.tgtCornerRadius,m=e.srcRs,g=e.tgtRs,y=!Nt(r.startX)||!Nt(r.startY),v=!Nt(r.arrowStartX)||!Nt(r.arrowStartY),x=!Nt(r.endX)||!Nt(r.endY),b=!Nt(r.arrowEndX)||!Nt(r.arrowEndY),T=3,E=this.getArrowWidth(t.pstyle("width").pfValue,t.pstyle("arrow-scale").value)*this.arrowShapeWidth,w=T*E,k=G0({x:r.ctrlpts[0],y:r.ctrlpts[1]},{x:r.startX,y:r.startY}),S=kB.poolIndex()){var F=P;P=B,B=F}var G=_.srcPos=P.position(),$=_.tgtPos=B.position(),V=_.srcW=P.outerWidth(),X=_.srcH=P.outerHeight(),Q=_.tgtW=B.outerWidth(),H=_.tgtH=B.outerHeight(),ie=_.srcShape=r.nodeShapes[e.getNodeShape(P)],Y=_.tgtShape=r.nodeShapes[e.getNodeShape(B)],le=_.srcCornerRadius=P.pstyle("corner-radius").value==="auto"?"auto":P.pstyle("corner-radius").pfValue,ee=_.tgtCornerRadius=B.pstyle("corner-radius").value==="auto"?"auto":B.pstyle("corner-radius").pfValue,J=_.tgtRs=B._private.rscratch,te=_.srcRs=P._private.rscratch;_.dirCounts={north:0,west:0,south:0,east:0,northwest:0,southwest:0,northeast:0,southeast:0};for(var Z=0;Z<_.eles.length;Z++){var xe=_.eles[Z],de=xe[0]._private.rscratch,Se=xe.pstyle("curve-style").value,Me=Se==="unbundled-bezier"||pd(Se,"segments")||pd(Se,"taxi"),ke=!P.same(xe.source());if(!_.calculatedIntersection&&P!==B&&(_.hasBezier||_.hasUnbundled)){_.calculatedIntersection=!0;var we=ie.intersectLine(G.x,G.y,V,X,$.x,$.y,0,le,te),_e=_.srcIntn=we,$e=Y.intersectLine($.x,$.y,Q,H,G.x,G.y,0,ee,J),fe=_.tgtIntn=$e,Ke=_.intersectionPts={x1:we[0],x2:$e[0],y1:we[1],y2:$e[1]},Te=_.posPts={x1:G.x,x2:$.x,y1:G.y,y2:$.y},Be=$e[1]-we[1],Ue=$e[0]-we[0],Ge=Math.sqrt(Ue*Ue+Be*Be);Nt(Ge)&&Ge>=lJe||(Ge=Math.sqrt(Math.max(Ue*Ue,Xb)+Math.max(Be*Be,Xb)));var Ne=_.vector={x:Ue,y:Be},We=_.vectorNorm={x:Ne.x/Ge,y:Ne.y/Ge},j={x:-We.y,y:We.x};_.nodesOverlap=!Nt(Ge)||Y.checkPoint(we[0],we[1],0,Q,H,$.x,$.y,ee,J)||ie.checkPoint($e[0],$e[1],0,V,X,G.x,G.y,le,te),_.vectorNormInverse=j,D={nodesOverlap:_.nodesOverlap,dirCounts:_.dirCounts,calculatedIntersection:!0,hasBezier:_.hasBezier,hasUnbundled:_.hasUnbundled,eles:_.eles,srcPos:$,srcRs:J,tgtPos:G,tgtRs:te,srcW:Q,srcH:H,tgtW:V,tgtH:X,srcIntn:fe,tgtIntn:_e,srcShape:Y,tgtShape:ie,posPts:{x1:Te.x2,y1:Te.y2,x2:Te.x1,y2:Te.y1},intersectionPts:{x1:Ke.x2,y1:Ke.y2,x2:Ke.x1,y2:Ke.y1},vector:{x:-Ne.x,y:-Ne.y},vectorNorm:{x:-We.x,y:-We.y},vectorNormInverse:{x:-j.x,y:-j.y}}}var ae=ke?D:_;de.nodesOverlap=ae.nodesOverlap,de.srcIntn=ae.srcIntn,de.tgtIntn=ae.tgtIntn,de.isRound=Se.startsWith("round"),i&&(P.isParent()||P.isChild()||B.isParent()||B.isChild())&&(P.parents().anySame(B)||B.parents().anySame(P)||P.same(B)&&P.isParent())?e.findCompoundLoopPoints(xe,ae,Z,Me):P===B?e.findLoopPoints(xe,ae,Z,Me):Se.endsWith("segments")?e.findSegmentsPoints(xe,ae):Se.endsWith("taxi")?e.findTaxiPoints(xe,ae):Se==="straight"||!Me&&_.eles.length%2===1&&Z===Math.floor(_.eles.length/2)?e.findStraightEdgePoints(xe):e.findBezierPoints(xe,ae,Z,Me,ke),e.findEndpoints(xe),e.tryToCorrectInvalidPoints(xe,ae),e.checkForInvalidEdgeWarning(xe),e.storeAllpts(xe),e.storeEdgeProjections(xe),e.calculateArrowAngles(xe),e.recalculateEdgeLabelProjections(xe),e.calculateLabelAngles(xe)}},"_loop"),S=0;S0){var we=h,_e=O0(we,H1(s)),$e=O0(we,H1(ke)),fe=_e;if($e<_e&&(s=ke,fe=$e),ke.length>2){var Ke=O0(we,{x:ke[2],y:ke[3]});Ke0){var se=f,be=O0(se,H1(s)),pe=O0(se,H1(ne)),me=be;if(pe2){var Re=O0(se,{x:ne[2],y:ne[3]});Re=g||S){v={cp:E,segment:k};break}}if(v)break}var A=v.cp,L=v.segment,I=(g-x)/L.length,N=L.t1-L.t0,C=m?L.t0+N*I:L.t1-N*I;C=qb(0,C,1),e=X1(A.p0,A.p1,A.p2,C),p=uJe(A.p0,A.p1,A.p2,C);break}case"straight":case"segments":case"haystack":{for(var _=0,D,M,R,P,B=n.allpts.length,F=0;F+3=g));F+=2);var G=g-M,$=G/D;$=qb(0,$,1),e=NXe(R,P,$),p=Qme(R,P);break}}s("labelX",d,e.x),s("labelY",d,e.y),s("labelAutoAngle",d,p)}},"calculateEndProjection");h("source"),h("target"),this.applyLabelDimensions(t)}};_u.applyLabelDimensions=function(t){this.applyPrefixedLabelDimensions(t),t.isEdge()&&(this.applyPrefixedLabelDimensions(t,"source"),this.applyPrefixedLabelDimensions(t,"target"))};_u.applyPrefixedLabelDimensions=function(t,e){var r=t._private,n=this.getLabelText(t,e),i=z0(n,t._private.labelDimsKey);if(yo(r.rscratch,"prefixedLabelDimsKey",e)!==i){Ih(r.rscratch,"prefixedLabelDimsKey",e,i);var a=this.calculateLabelDimensions(t,n),s=t.pstyle("line-height").pfValue,l=t.pstyle("text-wrap").strValue,u=yo(r.rscratch,"labelWrapCachedLines",e)||[],h=l!=="wrap"?1:Math.max(u.length,1),f=a.height/h,d=f*s,p=a.width,m=a.height+(h-1)*(s-1)*f;Ih(r.rstyle,"labelWidth",e,p),Ih(r.rscratch,"labelWidth",e,p),Ih(r.rstyle,"labelHeight",e,m),Ih(r.rscratch,"labelHeight",e,m),Ih(r.rscratch,"labelLineHeight",e,d)}};_u.getLabelText=function(t,e){var r=t._private,n=e?e+"-":"",i=t.pstyle(n+"label").strValue,a=t.pstyle("text-transform").value,s=o(function(X,Q){return Q?(Ih(r.rscratch,X,e,Q),Q):yo(r.rscratch,X,e)},"rscratch");if(!i)return"";a=="none"||(a=="uppercase"?i=i.toUpperCase():a=="lowercase"&&(i=i.toLowerCase()));var l=t.pstyle("text-wrap").value;if(l==="wrap"){var u=s("labelKey");if(u!=null&&s("labelWrapKey")===u)return s("labelWrapCachedText");for(var h="\u200B",f=i.split(` +`),d=t.pstyle("text-max-width").pfValue,p=t.pstyle("text-overflow-wrap").value,m=p==="anywhere",g=[],y=/[\s\u200b]+|$/g,v=0;vd){var w=x.matchAll(y),k="",S=0,A=xo(w),L;try{for(A.s();!(L=A.n()).done;){var I=L.value,N=I[0],C=x.substring(S,I.index);S=I.index+N.length;var _=k.length===0?C:k+C+N,D=this.calculateLabelDimensions(t,_),M=D.width;M<=d?k+=C+N:(k&&g.push(k),k=C+N)}}catch(V){A.e(V)}finally{A.f()}k.match(/^[\s\u200b]+$/)||g.push(k)}else g.push(x)}s("labelWrapCachedLines",g),i=s("labelWrapCachedText",g.join(` +`)),s("labelWrapKey",u)}else if(l==="ellipsis"){var R=t.pstyle("text-max-width").pfValue,P="",B="\u2026",F=!1;if(this.calculateLabelDimensions(t,i).widthR)break;P+=i[G],G===i.length-1&&(F=!0)}return F||(P+=B),P}return i};_u.getLabelJustification=function(t){var e=t.pstyle("text-justification").strValue,r=t.pstyle("text-halign").strValue;if(e==="auto")if(t.isNode())switch(r){case"left":return"right";case"right":return"left";default:return"center"}else return"center";else return e};_u.calculateLabelDimensions=function(t,e){var r=this,n=r.cy.window(),i=n.document,a=0,s=t.pstyle("font-style").strValue,l=t.pstyle("font-size").pfValue,u=t.pstyle("font-family").strValue,h=t.pstyle("font-weight").strValue,f=this.labelCalcCanvas,d=this.labelCalcCanvasContext;if(!f){f=this.labelCalcCanvas=i.createElement("canvas"),d=this.labelCalcCanvasContext=f.getContext("2d");var p=f.style;p.position="absolute",p.left="-9999px",p.top="-9999px",p.zIndex="-1",p.visibility="hidden",p.pointerEvents="none"}d.font="".concat(s," ").concat(h," ").concat(l,"px ").concat(u);for(var m=0,g=0,y=e.split(` +`),v=0;v1&&arguments[1]!==void 0?arguments[1]:!0;if(e.merge(s),l)for(var u=0;u=t.desktopTapThreshold2}var at=a(z);ot&&(t.hoverData.tapholdCancelled=!0);var Ct=o(function(){var mt=t.hoverData.dragDelta=t.hoverData.dragDelta||[];mt.length===0?(mt.push(et[0]),mt.push(et[1])):(mt[0]+=et[0],mt[1]+=et[1])},"updateDragDelta");se=!0,i(Pe,["mousemove","vmousemove","tapdrag"],z,{x:Re[0],y:Re[1]});var yt=o(function(mt){return{originalEvent:z,type:mt,position:{x:Re[0],y:Re[1]}}},"makeEvent"),dt=o(function(){t.data.bgActivePosistion=void 0,t.hoverData.selecting||be.emit(yt("boxstart")),qe[4]=1,t.hoverData.selecting=!0,t.redrawHint("select",!0),t.redraw()},"goIntoBoxMode");if(t.hoverData.which===3){if(ot){var Ht=yt("cxtdrag");oe?oe.emit(Ht):be.emit(Ht),t.hoverData.cxtDragged=!0,(!t.hoverData.cxtOver||Pe!==t.hoverData.cxtOver)&&(t.hoverData.cxtOver&&t.hoverData.cxtOver.emit(yt("cxtdragout")),t.hoverData.cxtOver=Pe,Pe&&Pe.emit(yt("cxtdragover")))}}else if(t.hoverData.dragging){if(se=!0,be.panningEnabled()&&be.userPanningEnabled()){var cr;if(t.hoverData.justStartedPan){var Kt=t.hoverData.mdownPos;cr={x:(Re[0]-Kt[0])*pe,y:(Re[1]-Kt[1])*pe},t.hoverData.justStartedPan=!1}else cr={x:et[0]*pe,y:et[1]*pe};be.panBy(cr),be.emit(yt("dragpan")),t.hoverData.dragged=!0}Re=t.projectIntoViewport(z.clientX,z.clientY)}else if(qe[4]==1&&(oe==null||oe.pannable())){if(ot){if(!t.hoverData.dragging&&be.boxSelectionEnabled()&&(at||!be.panningEnabled()||!be.userPanningEnabled()))dt();else if(!t.hoverData.selecting&&be.panningEnabled()&&be.userPanningEnabled()){var kr=s(oe,t.hoverData.downs);kr&&(t.hoverData.dragging=!0,t.hoverData.justStartedPan=!0,qe[4]=0,t.data.bgActivePosistion=H1(ge),t.redrawHint("select",!0),t.redraw())}oe&&oe.pannable()&&oe.active()&&oe.unactivate()}}else{if(oe&&oe.pannable()&&oe.active()&&oe.unactivate(),(!oe||!oe.grabbed())&&Pe!=Xe&&(Xe&&i(Xe,["mouseout","tapdragout"],z,{x:Re[0],y:Re[1]}),Pe&&i(Pe,["mouseover","tapdragover"],z,{x:Re[0],y:Re[1]}),t.hoverData.last=Pe),oe)if(ot){if(be.boxSelectionEnabled()&&at)oe&&oe.grabbed()&&(x(he),oe.emit(yt("freeon")),he.emit(yt("free")),t.dragData.didDrag&&(oe.emit(yt("dragfreeon")),he.emit(yt("dragfree")))),dt();else if(oe&&oe.grabbed()&&t.nodeIsDraggable(oe)){var ur=!t.dragData.didDrag;ur&&t.redrawHint("eles",!0),t.dragData.didDrag=!0,t.hoverData.draggingEles||y(he,{inDragLayer:!0});var tr={x:0,y:0};if(Nt(et[0])&&Nt(et[1])&&(tr.x+=et[0],tr.y+=et[1],ur)){var hr=t.hoverData.dragDelta;hr&&Nt(hr[0])&&Nt(hr[1])&&(tr.x+=hr[0],tr.y+=hr[1])}t.hoverData.draggingEles=!0,he.silentShift(tr).emit(yt("position")).emit(yt("drag")),t.redrawHint("drag",!0),t.redraw()}}else Ct();se=!0}if(qe[2]=Re[0],qe[3]=Re[1],se)return z.stopPropagation&&z.stopPropagation(),z.preventDefault&&z.preventDefault(),!1}},"mousemoveHandler"),!1);var C,_,D;t.registerBinding(e,"mouseup",o(function(z){if(!(t.hoverData.which===1&&z.which!==1&&t.hoverData.capture)){var ne=t.hoverData.capture;if(ne){t.hoverData.capture=!1;var se=t.cy,be=t.projectIntoViewport(z.clientX,z.clientY),pe=t.selection,me=t.findNearestElement(be[0],be[1],!0,!1),Re=t.dragData.possibleDragElements,ge=t.hoverData.down,Ie=a(z);t.data.bgActivePosistion&&(t.redrawHint("select",!0),t.redraw()),t.hoverData.tapholdCancelled=!0,t.data.bgActivePosistion=void 0,ge&&ge.unactivate();var qe=o(function(Dt){return{originalEvent:z,type:Dt,position:{x:be[0],y:be[1]}}},"makeEvent");if(t.hoverData.which===3){var Pe=qe("cxttapend");if(ge?ge.emit(Pe):se.emit(Pe),!t.hoverData.cxtDragged){var Xe=qe("cxttap");ge?ge.emit(Xe):se.emit(Xe)}t.hoverData.cxtDragged=!1,t.hoverData.which=null}else if(t.hoverData.which===1){if(i(me,["mouseup","tapend","vmouseup"],z,{x:be[0],y:be[1]}),!t.dragData.didDrag&&!t.hoverData.dragged&&!t.hoverData.selecting&&!t.hoverData.isOverThresholdDrag&&(i(ge,["click","tap","vclick"],z,{x:be[0],y:be[1]}),_=!1,z.timeStamp-D<=se.multiClickDebounceTime()?(C&&clearTimeout(C),_=!0,D=null,i(ge,["dblclick","dbltap","vdblclick"],z,{x:be[0],y:be[1]})):(C=setTimeout(function(){_||i(ge,["oneclick","onetap","voneclick"],z,{x:be[0],y:be[1]})},se.multiClickDebounceTime()),D=z.timeStamp)),ge==null&&!t.dragData.didDrag&&!t.hoverData.selecting&&!t.hoverData.dragged&&!a(z)&&(se.$(r).unselect(["tapunselect"]),Re.length>0&&t.redrawHint("eles",!0),t.dragData.possibleDragElements=Re=se.collection()),me==ge&&!t.dragData.didDrag&&!t.hoverData.selecting&&me!=null&&me._private.selectable&&(t.hoverData.dragging||(se.selectionType()==="additive"||Ie?me.selected()?me.unselect(["tapunselect"]):me.select(["tapselect"]):Ie||(se.$(r).unmerge(me).unselect(["tapunselect"]),me.select(["tapselect"]))),t.redrawHint("eles",!0)),t.hoverData.selecting){var oe=se.collection(t.getAllInBox(pe[0],pe[1],pe[2],pe[3]));t.redrawHint("select",!0),oe.length>0&&t.redrawHint("eles",!0),se.emit(qe("boxend"));var et=o(function(Dt){return Dt.selectable()&&!Dt.selected()},"eleWouldBeSelected");se.selectionType()==="additive"||Ie||se.$(r).unmerge(oe).unselect(),oe.emit(qe("box")).stdFilter(et).select().emit(qe("boxselect")),t.redraw()}if(t.hoverData.dragging&&(t.hoverData.dragging=!1,t.redrawHint("select",!0),t.redrawHint("eles",!0),t.redraw()),!pe[4]){t.redrawHint("drag",!0),t.redrawHint("eles",!0);var he=ge&&ge.grabbed();x(Re),he&&(ge.emit(qe("freeon")),Re.emit(qe("free")),t.dragData.didDrag&&(ge.emit(qe("dragfreeon")),Re.emit(qe("dragfree"))))}}pe[4]=0,t.hoverData.down=null,t.hoverData.cxtStarted=!1,t.hoverData.draggingEles=!1,t.hoverData.selecting=!1,t.hoverData.isOverThresholdDrag=!1,t.dragData.didDrag=!1,t.hoverData.dragged=!1,t.hoverData.dragDelta=[],t.hoverData.mdownPos=null,t.hoverData.mdownGPos=null,t.hoverData.which=null}}},"mouseupHandler"),!1);var M=[],R=4,P,B=1e5,F=o(function(z,ne){for(var se=0;se=R){var be=M;if(P=F(be,5),!P){var pe=Math.abs(be[0]);P=G(be)&&pe>5}if(P)for(var me=0;me5&&(se=lB(se)*5),Xe=se/-250,P&&(Xe/=B,Xe*=3),Xe=Xe*t.wheelSensitivity;var oe=z.deltaMode===1;oe&&(Xe*=33);var et=Re.zoom()*Math.pow(10,Xe);z.type==="gesturechange"&&(et=t.gestureStartZoom*z.scale),Re.zoom({level:et,renderedPosition:{x:Pe[0],y:Pe[1]}}),Re.emit({type:z.type==="gesturechange"?"pinchzoom":"scrollzoom",originalEvent:z,position:{x:qe[0],y:qe[1]}})}}}},"wheelHandler");t.registerBinding(t.container,"wheel",$,!0),t.registerBinding(e,"scroll",o(function(z){t.scrollingPage=!0,clearTimeout(t.scrollingPageTimeout),t.scrollingPageTimeout=setTimeout(function(){t.scrollingPage=!1},250)},"scrollHandler"),!0),t.registerBinding(t.container,"gesturestart",o(function(z){t.gestureStartZoom=t.cy.zoom(),t.hasTouchStarted||z.preventDefault()},"gestureStartHandler"),!0),t.registerBinding(t.container,"gesturechange",function(ce){t.hasTouchStarted||$(ce)},!0),t.registerBinding(t.container,"mouseout",o(function(z){var ne=t.projectIntoViewport(z.clientX,z.clientY);t.cy.emit({originalEvent:z,type:"mouseout",position:{x:ne[0],y:ne[1]}})},"mouseOutHandler"),!1),t.registerBinding(t.container,"mouseover",o(function(z){var ne=t.projectIntoViewport(z.clientX,z.clientY);t.cy.emit({originalEvent:z,type:"mouseover",position:{x:ne[0],y:ne[1]}})},"mouseOverHandler"),!1);var V,X,Q,H,ie,Y,le,ee,J,te,Z,xe,de,Se=o(function(z,ne,se,be){return Math.sqrt((se-z)*(se-z)+(be-ne)*(be-ne))},"distance"),Me=o(function(z,ne,se,be){return(se-z)*(se-z)+(be-ne)*(be-ne)},"distanceSq"),ke;t.registerBinding(t.container,"touchstart",ke=o(function(z){if(t.hasTouchStarted=!0,!!I(z)){T(),t.touchData.capture=!0,t.data.bgActivePosistion=void 0;var ne=t.cy,se=t.touchData.now,be=t.touchData.earlier;if(z.touches[0]){var pe=t.projectIntoViewport(z.touches[0].clientX,z.touches[0].clientY);se[0]=pe[0],se[1]=pe[1]}if(z.touches[1]){var pe=t.projectIntoViewport(z.touches[1].clientX,z.touches[1].clientY);se[2]=pe[0],se[3]=pe[1]}if(z.touches[2]){var pe=t.projectIntoViewport(z.touches[2].clientX,z.touches[2].clientY);se[4]=pe[0],se[5]=pe[1]}var me=o(function(at){return{originalEvent:z,type:at,position:{x:se[0],y:se[1]}}},"makeEvent");if(z.touches[1]){t.touchData.singleTouchMoved=!0,x(t.dragData.touchDragEles);var Re=t.findContainerClientCoords();J=Re[0],te=Re[1],Z=Re[2],xe=Re[3],V=z.touches[0].clientX-J,X=z.touches[0].clientY-te,Q=z.touches[1].clientX-J,H=z.touches[1].clientY-te,de=0<=V&&V<=Z&&0<=Q&&Q<=Z&&0<=X&&X<=xe&&0<=H&&H<=xe;var ge=ne.pan(),Ie=ne.zoom();ie=Se(V,X,Q,H),Y=Me(V,X,Q,H),le=[(V+Q)/2,(X+H)/2],ee=[(le[0]-ge.x)/Ie,(le[1]-ge.y)/Ie];var qe=200,Pe=qe*qe;if(Y=1){for(var It=t.touchData.startPosition=[null,null,null,null,null,null],wt=0;wt=t.touchTapThreshold2}if(ne&&t.touchData.cxt){z.preventDefault();var wt=z.touches[0].clientX-J,Rt=z.touches[0].clientY-te,it=z.touches[1].clientX-J,at=z.touches[1].clientY-te,Ct=Me(wt,Rt,it,at),yt=Ct/Y,dt=150,Ht=dt*dt,cr=1.5,Kt=cr*cr;if(yt>=Kt||Ct>=Ht){t.touchData.cxt=!1,t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);var kr=Ie("cxttapend");t.touchData.start?(t.touchData.start.unactivate().emit(kr),t.touchData.start=null):be.emit(kr)}}if(ne&&t.touchData.cxt){var kr=Ie("cxtdrag");t.data.bgActivePosistion=void 0,t.redrawHint("select",!0),t.touchData.start?t.touchData.start.emit(kr):be.emit(kr),t.touchData.start&&(t.touchData.start._private.grabbed=!1),t.touchData.cxtDragged=!0;var ur=t.findNearestElement(pe[0],pe[1],!0,!0);(!t.touchData.cxtOver||ur!==t.touchData.cxtOver)&&(t.touchData.cxtOver&&t.touchData.cxtOver.emit(Ie("cxtdragout")),t.touchData.cxtOver=ur,ur&&ur.emit(Ie("cxtdragover")))}else if(ne&&z.touches[2]&&be.boxSelectionEnabled())z.preventDefault(),t.data.bgActivePosistion=void 0,this.lastThreeTouch=+new Date,t.touchData.selecting||be.emit(Ie("boxstart")),t.touchData.selecting=!0,t.touchData.didSelect=!0,se[4]=1,!se||se.length===0||se[0]===void 0?(se[0]=(pe[0]+pe[2]+pe[4])/3,se[1]=(pe[1]+pe[3]+pe[5])/3,se[2]=(pe[0]+pe[2]+pe[4])/3+1,se[3]=(pe[1]+pe[3]+pe[5])/3+1):(se[2]=(pe[0]+pe[2]+pe[4])/3,se[3]=(pe[1]+pe[3]+pe[5])/3),t.redrawHint("select",!0),t.redraw();else if(ne&&z.touches[1]&&!t.touchData.didSelect&&be.zoomingEnabled()&&be.panningEnabled()&&be.userZoomingEnabled()&&be.userPanningEnabled()){z.preventDefault(),t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);var tr=t.dragData.touchDragEles;if(tr){t.redrawHint("drag",!0);for(var hr=0;hr0&&!t.hoverData.draggingEles&&!t.swipePanning&&t.data.bgActivePosistion!=null&&(t.data.bgActivePosistion=void 0,t.redrawHint("select",!0),t.redraw())}},"touchmoveHandler"),!1);var _e;t.registerBinding(e,"touchcancel",_e=o(function(z){var ne=t.touchData.start;t.touchData.capture=!1,ne&&ne.unactivate()},"touchcancelHandler"));var $e,fe,Ke,Te;if(t.registerBinding(e,"touchend",$e=o(function(z){var ne=t.touchData.start,se=t.touchData.capture;if(se)z.touches.length===0&&(t.touchData.capture=!1),z.preventDefault();else return;var be=t.selection;t.swipePanning=!1,t.hoverData.draggingEles=!1;var pe=t.cy,me=pe.zoom(),Re=t.touchData.now,ge=t.touchData.earlier;if(z.touches[0]){var Ie=t.projectIntoViewport(z.touches[0].clientX,z.touches[0].clientY);Re[0]=Ie[0],Re[1]=Ie[1]}if(z.touches[1]){var Ie=t.projectIntoViewport(z.touches[1].clientX,z.touches[1].clientY);Re[2]=Ie[0],Re[3]=Ie[1]}if(z.touches[2]){var Ie=t.projectIntoViewport(z.touches[2].clientX,z.touches[2].clientY);Re[4]=Ie[0],Re[5]=Ie[1]}var qe=o(function(Ht){return{originalEvent:z,type:Ht,position:{x:Re[0],y:Re[1]}}},"makeEvent");ne&&ne.unactivate();var Pe;if(t.touchData.cxt){if(Pe=qe("cxttapend"),ne?ne.emit(Pe):pe.emit(Pe),!t.touchData.cxtDragged){var Xe=qe("cxttap");ne?ne.emit(Xe):pe.emit(Xe)}t.touchData.start&&(t.touchData.start._private.grabbed=!1),t.touchData.cxt=!1,t.touchData.start=null,t.redraw();return}if(!z.touches[2]&&pe.boxSelectionEnabled()&&t.touchData.selecting){t.touchData.selecting=!1;var oe=pe.collection(t.getAllInBox(be[0],be[1],be[2],be[3]));be[0]=void 0,be[1]=void 0,be[2]=void 0,be[3]=void 0,be[4]=0,t.redrawHint("select",!0),pe.emit(qe("boxend"));var et=o(function(Ht){return Ht.selectable()&&!Ht.selected()},"eleWouldBeSelected");oe.emit(qe("box")).stdFilter(et).select().emit(qe("boxselect")),oe.nonempty()&&t.redrawHint("eles",!0),t.redraw()}if(ne?.unactivate(),z.touches[2])t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);else if(!z.touches[1]){if(!z.touches[0]){if(!z.touches[0]){t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);var he=t.dragData.touchDragEles;if(ne!=null){var ot=ne._private.grabbed;x(he),t.redrawHint("drag",!0),t.redrawHint("eles",!0),ot&&(ne.emit(qe("freeon")),he.emit(qe("free")),t.dragData.didDrag&&(ne.emit(qe("dragfreeon")),he.emit(qe("dragfree")))),i(ne,["touchend","tapend","vmouseup","tapdragout"],z,{x:Re[0],y:Re[1]}),ne.unactivate(),t.touchData.start=null}else{var Dt=t.findNearestElement(Re[0],Re[1],!0,!0);i(Dt,["touchend","tapend","vmouseup","tapdragout"],z,{x:Re[0],y:Re[1]})}var It=t.touchData.startPosition[0]-Re[0],wt=It*It,Rt=t.touchData.startPosition[1]-Re[1],it=Rt*Rt,at=wt+it,Ct=at*me*me;t.touchData.singleTouchMoved||(ne||pe.$(":selected").unselect(["tapunselect"]),i(ne,["tap","vclick"],z,{x:Re[0],y:Re[1]}),fe=!1,z.timeStamp-Te<=pe.multiClickDebounceTime()?(Ke&&clearTimeout(Ke),fe=!0,Te=null,i(ne,["dbltap","vdblclick"],z,{x:Re[0],y:Re[1]})):(Ke=setTimeout(function(){fe||i(ne,["onetap","voneclick"],z,{x:Re[0],y:Re[1]})},pe.multiClickDebounceTime()),Te=z.timeStamp)),ne!=null&&!t.dragData.didDrag&&ne._private.selectable&&Ct"u"){var Be=[],Ue=o(function(z){return{clientX:z.clientX,clientY:z.clientY,force:1,identifier:z.pointerId,pageX:z.pageX,pageY:z.pageY,radiusX:z.width/2,radiusY:z.height/2,screenX:z.screenX,screenY:z.screenY,target:z.target}},"makeTouch"),Ge=o(function(z){return{event:z,touch:Ue(z)}},"makePointer"),Ne=o(function(z){Be.push(Ge(z))},"addPointer"),We=o(function(z){for(var ne=0;ne0)return V[0]}return null},"getCurveT"),g=Object.keys(p),y=0;y0?m:J0e(a,s,e,r,n,i,l,u)},"intersectLine"),checkPoint:o(function(e,r,n,i,a,s,l,u){u=u==="auto"?Td(i,a):u;var h=2*u;if(Bh(e,r,this.points,s,l,i,a-h,[0,-1],n)||Bh(e,r,this.points,s,l,i-h,a,[0,-1],n))return!0;var f=i/2+2*n,d=a/2+2*n,p=[s-f,l-d,s-f,l,s+f,l,s+f,l-d];return!!(vo(e,r,p)||$0(e,r,h,h,s+i/2-u,l+a/2-u,n)||$0(e,r,h,h,s-i/2+u,l+a/2-u,n))},"checkPoint")}};Fh.registerNodeShapes=function(){var t=this.nodeShapes={},e=this;this.generateEllipse(),this.generatePolygon("triangle",Ns(3,0)),this.generateRoundPolygon("round-triangle",Ns(3,0)),this.generatePolygon("rectangle",Ns(4,0)),t.square=t.rectangle,this.generateRoundRectangle(),this.generateCutRectangle(),this.generateBarrel(),this.generateBottomRoundrectangle();{var r=[0,1,1,0,0,-1,-1,0];this.generatePolygon("diamond",r),this.generateRoundPolygon("round-diamond",r)}this.generatePolygon("pentagon",Ns(5,0)),this.generateRoundPolygon("round-pentagon",Ns(5,0)),this.generatePolygon("hexagon",Ns(6,0)),this.generateRoundPolygon("round-hexagon",Ns(6,0)),this.generatePolygon("heptagon",Ns(7,0)),this.generateRoundPolygon("round-heptagon",Ns(7,0)),this.generatePolygon("octagon",Ns(8,0)),this.generateRoundPolygon("round-octagon",Ns(8,0));var n=new Array(20);{var i=OP(5,0),a=OP(5,Math.PI/5),s=.5*(3-Math.sqrt(5));s*=1.57;for(var l=0;l=e.deqFastCost*E)break}else if(h){if(b>=e.deqCost*m||b>=e.deqAvgCost*p)break}else if(T>=e.deqNoDrawCost*CP)break;var w=e.deq(n,v,y);if(w.length>0)for(var k=0;k0&&(e.onDeqd(n,g),!h&&e.shouldRedraw(n,g,v,y)&&a())},"dequeue"),l=e.priority||aB;i.beforeRender(s,l(n))}},"setupDequeueingImpl")},"setupDequeueing")},fJe=(function(){function t(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:jS;Sd(this,t),this.idsByKey=new Oh,this.keyForId=new Oh,this.cachesByLvl=new Oh,this.lvls=[],this.getKey=e,this.doesEleInvalidateKey=r}return o(t,"ElementTextureCacheLookup"),Cd(t,[{key:"getIdsFor",value:o(function(r){r==null&&ui("Can not get id list for null key");var n=this.idsByKey,i=this.idsByKey.get(r);return i||(i=new ry,n.set(r,i)),i},"getIdsFor")},{key:"addIdForKey",value:o(function(r,n){r!=null&&this.getIdsFor(r).add(n)},"addIdForKey")},{key:"deleteIdForKey",value:o(function(r,n){r!=null&&this.getIdsFor(r).delete(n)},"deleteIdForKey")},{key:"getNumberOfIdsForKey",value:o(function(r){return r==null?0:this.getIdsFor(r).size},"getNumberOfIdsForKey")},{key:"updateKeyMappingFor",value:o(function(r){var n=r.id(),i=this.keyForId.get(n),a=this.getKey(r);this.deleteIdForKey(i,n),this.addIdForKey(a,n),this.keyForId.set(n,a)},"updateKeyMappingFor")},{key:"deleteKeyMappingFor",value:o(function(r){var n=r.id(),i=this.keyForId.get(n);this.deleteIdForKey(i,n),this.keyForId.delete(n)},"deleteKeyMappingFor")},{key:"keyHasChangedFor",value:o(function(r){var n=r.id(),i=this.keyForId.get(n),a=this.getKey(r);return i!==a},"keyHasChangedFor")},{key:"isInvalid",value:o(function(r){return this.keyHasChangedFor(r)||this.doesEleInvalidateKey(r)},"isInvalid")},{key:"getCachesAt",value:o(function(r){var n=this.cachesByLvl,i=this.lvls,a=n.get(r);return a||(a=new Oh,n.set(r,a),i.push(r)),a},"getCachesAt")},{key:"getCache",value:o(function(r,n){return this.getCachesAt(n).get(r)},"getCache")},{key:"get",value:o(function(r,n){var i=this.getKey(r),a=this.getCache(i,n);return a!=null&&this.updateKeyMappingFor(r),a},"get")},{key:"getForCachedKey",value:o(function(r,n){var i=this.keyForId.get(r.id()),a=this.getCache(i,n);return a},"getForCachedKey")},{key:"hasCache",value:o(function(r,n){return this.getCachesAt(n).has(r)},"hasCache")},{key:"has",value:o(function(r,n){var i=this.getKey(r);return this.hasCache(i,n)},"has")},{key:"setCache",value:o(function(r,n,i){i.key=r,this.getCachesAt(n).set(r,i)},"setCache")},{key:"set",value:o(function(r,n,i){var a=this.getKey(r);this.setCache(a,n,i),this.updateKeyMappingFor(r)},"set")},{key:"deleteCache",value:o(function(r,n){this.getCachesAt(n).delete(r)},"deleteCache")},{key:"delete",value:o(function(r,n){var i=this.getKey(r);this.deleteCache(i,n)},"_delete")},{key:"invalidateKey",value:o(function(r){var n=this;this.lvls.forEach(function(i){return n.deleteCache(r,i)})},"invalidateKey")},{key:"invalidate",value:o(function(r){var n=r.id(),i=this.keyForId.get(n);this.deleteKeyMappingFor(r);var a=this.doesEleInvalidateKey(r);return a&&this.invalidateKey(i),a||this.getNumberOfIdsForKey(i)===0},"invalidate")}])})(),m0e=25,NS=50,qS=-4,XP=3,nge=7.99,dJe=8,pJe=1024,mJe=1024,gJe=1024,yJe=.2,vJe=.8,xJe=10,bJe=.15,TJe=.1,wJe=.9,kJe=.9,EJe=100,SJe=1,j1={dequeue:"dequeue",downscale:"downscale",highQuality:"highQuality"},CJe=qa({getKey:null,doesEleInvalidateKey:jS,drawElement:null,getBoundingBox:null,getRotationPoint:null,getRotationOffset:null,isVisible:H0e,allowEdgeTxrCaching:!0,allowParentTxrCaching:!0}),Pb=o(function(e,r){var n=this;n.renderer=e,n.onDequeues=[];var i=CJe(r);pr(n,i),n.lookup=new fJe(i.getKey,i.doesEleInvalidateKey),n.setupDequeueing()},"ElementTextureCache"),sa=Pb.prototype;sa.reasons=j1;sa.getTextureQueue=function(t){var e=this;return e.eleImgCaches=e.eleImgCaches||{},e.eleImgCaches[t]=e.eleImgCaches[t]||[]};sa.getRetiredTextureQueue=function(t){var e=this,r=e.eleImgCaches.retired=e.eleImgCaches.retired||{},n=r[t]=r[t]||[];return n};sa.getElementQueue=function(){var t=this,e=t.eleCacheQueue=t.eleCacheQueue||new rT(function(r,n){return n.reqs-r.reqs});return e};sa.getElementKeyToQueue=function(){var t=this,e=t.eleKeyToCacheQueue=t.eleKeyToCacheQueue||{};return e};sa.getElement=function(t,e,r,n,i){var a=this,s=this.renderer,l=s.cy.zoom(),u=this.lookup;if(!e||e.w===0||e.h===0||isNaN(e.w)||isNaN(e.h)||!t.visible()||t.removed()||!a.allowEdgeTxrCaching&&t.isEdge()||!a.allowParentTxrCaching&&t.isParent())return null;if(n==null&&(n=Math.ceil(oB(l*r))),n=nge||n>XP)return null;var h=Math.pow(2,n),f=e.h*h,d=e.w*h,p=s.eleTextBiggerThanMin(t,h);if(!this.isVisible(t,p))return null;var m=u.get(t,n);if(m&&m.invalidated&&(m.invalidated=!1,m.texture.invalidatedWidth-=m.width),m)return m;var g;if(f<=m0e?g=m0e:f<=NS?g=NS:g=Math.ceil(f/NS)*NS,f>gJe||d>mJe)return null;var y=a.getTextureQueue(g),v=y[y.length-2],x=o(function(){return a.recycleTexture(g,d)||a.addTexture(g,d)},"addNewTxr");v||(v=y[y.length-1]),v||(v=x()),v.width-v.usedWidthn;N--)L=a.getElement(t,e,r,N,j1.downscale);I()}else return a.queueElement(t,k.level-1),k;else{var C;if(!T&&!E&&!w)for(var _=n-1;_>=qS;_--){var D=u.get(t,_);if(D){C=D;break}}if(b(C))return a.queueElement(t,n),C;v.context.translate(v.usedWidth,0),v.context.scale(h,h),this.drawElement(v.context,t,e,p,!1),v.context.scale(1/h,1/h),v.context.translate(-v.usedWidth,0)}return m={x:v.usedWidth,texture:v,level:n,scale:h,width:d,height:f,scaledLabelShown:p},v.usedWidth+=Math.ceil(d+dJe),v.eleCaches.push(m),u.set(t,n,m),a.checkTextureFullness(v),m};sa.invalidateElements=function(t){for(var e=0;e=yJe*t.width&&this.retireTexture(t)};sa.checkTextureFullness=function(t){var e=this,r=e.getTextureQueue(t.height);t.usedWidth/t.width>vJe&&t.fullnessChecks>=xJe?bd(r,t):t.fullnessChecks++};sa.retireTexture=function(t){var e=this,r=t.height,n=e.getTextureQueue(r),i=this.lookup;bd(n,t),t.retired=!0;for(var a=t.eleCaches,s=0;s=e)return s.retired=!1,s.usedWidth=0,s.invalidatedWidth=0,s.fullnessChecks=0,sB(s.eleCaches),s.context.setTransform(1,0,0,1,0,0),s.context.clearRect(0,0,s.width,s.height),bd(i,s),n.push(s),s}};sa.queueElement=function(t,e){var r=this,n=r.getElementQueue(),i=r.getElementKeyToQueue(),a=this.getKey(t),s=i[a];if(s)s.level=Math.max(s.level,e),s.eles.merge(t),s.reqs++,n.updateItem(s);else{var l={eles:t.spawn().merge(t),level:e,reqs:1,key:a};n.push(l),i[a]=l}};sa.dequeue=function(t){for(var e=this,r=e.getElementQueue(),n=e.getElementKeyToQueue(),i=[],a=e.lookup,s=0;s0;s++){var l=r.pop(),u=l.key,h=l.eles[0],f=a.hasCache(h,l.level);if(n[u]=null,f)continue;i.push(l);var d=e.getBoundingBox(h);e.getElement(h,d,t,l.level,j1.dequeue)}return i};sa.removeFromQueue=function(t){var e=this,r=e.getElementQueue(),n=e.getElementKeyToQueue(),i=this.getKey(t),a=n[i];a!=null&&(a.eles.length===1?(a.reqs=iB,r.updateItem(a),r.pop(),n[i]=null):a.eles.unmerge(t))};sa.onDequeue=function(t){this.onDequeues.push(t)};sa.offDequeue=function(t){bd(this.onDequeues,t)};sa.setupDequeueing=rge.setupDequeueing({deqRedrawThreshold:EJe,deqCost:bJe,deqAvgCost:TJe,deqNoDrawCost:wJe,deqFastCost:kJe,deq:o(function(e,r,n){return e.dequeue(r,n)},"deq"),onDeqd:o(function(e,r){for(var n=0;n=_Je||r>rC)return null}n.validateLayersElesOrdering(r,t);var u=n.layersByLevel,h=Math.pow(2,r),f=u[r]=u[r]||[],d,p=n.levelIsComplete(r,t),m,g=o(function(){var I=o(function(M){if(n.validateLayersElesOrdering(M,t),n.levelIsComplete(M,t))return m=u[M],!0},"canUseAsTmpLvl"),N=o(function(M){if(!m)for(var R=r+M;Fb<=R&&R<=rC&&!I(R);R+=M);},"checkLvls");N(1),N(-1);for(var C=f.length-1;C>=0;C--){var _=f[C];_.invalid&&bd(f,_)}},"checkTempLevels");if(!p)g();else return f;var y=o(function(){if(!d){d=Ms();for(var I=0;Iy0e||_>y0e)return null;var D=C*_;if(D>PJe)return null;var M=n.makeLayer(d,r);if(N!=null){var R=f.indexOf(N)+1;f.splice(R,0,M)}else(I.insert===void 0||I.insert)&&f.unshift(M);return M},"makeLayer");if(n.skipping&&!l)return null;for(var x=null,b=t.length/AJe,T=!l,E=0;E=b||!Z0e(x.bb,w.boundingBox()))&&(x=v({insert:!0,after:x}),!x))return null;m||T?n.queueLayer(x,w):n.drawEleInLayer(x,w,r,e),x.eles.push(w),S[r]=x}return m||(T?null:f)};Ua.getEleLevelForLayerLevel=function(t,e){return t};Ua.drawEleInLayer=function(t,e,r,n){var i=this,a=this.renderer,s=t.context,l=e.boundingBox();l.w===0||l.h===0||!e.visible()||(r=i.getEleLevelForLayerLevel(r,n),a.setImgSmoothing(s,!1),a.drawCachedElement(s,e,null,null,r,BJe),a.setImgSmoothing(s,!0))};Ua.levelIsComplete=function(t,e){var r=this,n=r.layersByLevel[t];if(!n||n.length===0)return!1;for(var i=0,a=0;a0||s.invalid)return!1;i+=s.eles.length}return i===e.length};Ua.validateLayersElesOrdering=function(t,e){var r=this.layersByLevel[t];if(r)for(var n=0;n0){e=!0;break}}return e};Ua.invalidateElements=function(t){var e=this;t.length!==0&&(e.lastInvalidationTime=Ph(),!(t.length===0||!e.haveLayers())&&e.updateElementsInLayers(t,o(function(n,i,a){e.invalidateLayer(n)},"invalAssocLayers")))};Ua.invalidateLayer=function(t){if(this.lastInvalidationTime=Ph(),!t.invalid){var e=t.level,r=t.eles,n=this.layersByLevel[e];bd(n,t),t.elesQueue=[],t.invalid=!0,t.replacement&&(t.replacement.invalid=!0);for(var i=0;i3&&arguments[3]!==void 0?arguments[3]:!0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,a=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,s=this,l=e._private.rscratch;if(!(a&&!e.visible())&&!(l.badLine||l.allpts==null||isNaN(l.allpts[0]))){var u;r&&(u=r,t.translate(-u.x1,-u.y1));var h=a?e.pstyle("opacity").value:1,f=a?e.pstyle("line-opacity").value:1,d=e.pstyle("curve-style").value,p=e.pstyle("line-style").value,m=e.pstyle("width").pfValue,g=e.pstyle("line-cap").value,y=e.pstyle("line-outline-width").value,v=e.pstyle("line-outline-color").value,x=h*f,b=h*f,T=o(function(){var M=arguments.length>0&&arguments[0]!==void 0?arguments[0]:x;d==="straight-triangle"?(s.eleStrokeStyle(t,e,M),s.drawEdgeTrianglePath(e,t,l.allpts)):(t.lineWidth=m,t.lineCap=g,s.eleStrokeStyle(t,e,M),s.drawEdgePath(e,t,l.allpts,p),t.lineCap="butt")},"drawLine"),E=o(function(){var M=arguments.length>0&&arguments[0]!==void 0?arguments[0]:x;if(t.lineWidth=m+y,t.lineCap=g,y>0)s.colorStrokeStyle(t,v[0],v[1],v[2],M);else{t.lineCap="butt";return}d==="straight-triangle"?s.drawEdgeTrianglePath(e,t,l.allpts):(s.drawEdgePath(e,t,l.allpts,p),t.lineCap="butt")},"drawLineOutline"),w=o(function(){i&&s.drawEdgeOverlay(t,e)},"drawOverlay"),k=o(function(){i&&s.drawEdgeUnderlay(t,e)},"drawUnderlay"),S=o(function(){var M=arguments.length>0&&arguments[0]!==void 0?arguments[0]:b;s.drawArrowheads(t,e,M)},"drawArrows"),A=o(function(){s.drawElementText(t,e,null,n)},"drawText");t.lineJoin="round";var L=e.pstyle("ghost").value==="yes";if(L){var I=e.pstyle("ghost-offset-x").pfValue,N=e.pstyle("ghost-offset-y").pfValue,C=e.pstyle("ghost-opacity").value,_=x*C;t.translate(I,N),T(_),S(_),t.translate(-I,-N)}else E();k(),T(),S(),w(),A(),r&&t.translate(u.x1,u.y1)}};sge=o(function(e){if(!["overlay","underlay"].includes(e))throw new Error("Invalid state");return function(r,n){if(n.visible()){var i=n.pstyle("".concat(e,"-opacity")).value;if(i!==0){var a=this,s=a.usePaths(),l=n._private.rscratch,u=n.pstyle("".concat(e,"-padding")).pfValue,h=2*u,f=n.pstyle("".concat(e,"-color")).value;r.lineWidth=h,l.edgeType==="self"&&!s?r.lineCap="butt":r.lineCap="round",a.colorStrokeStyle(r,f[0],f[1],f[2],i),a.drawEdgePath(n,r,l.allpts,"solid")}}}},"drawEdgeOverlayUnderlay");$h.drawEdgeOverlay=sge("overlay");$h.drawEdgeUnderlay=sge("underlay");$h.drawEdgePath=function(t,e,r,n){var i=t._private.rscratch,a=e,s,l=!1,u=this.usePaths(),h=t.pstyle("line-dash-pattern").pfValue,f=t.pstyle("line-dash-offset").pfValue;if(u){var d=r.join("$"),p=i.pathCacheKey&&i.pathCacheKey===d;p?(s=e=i.pathCache,l=!0):(s=e=new Path2D,i.pathCacheKey=d,i.pathCache=s)}if(a.setLineDash)switch(n){case"dotted":a.setLineDash([1,1]);break;case"dashed":a.setLineDash(h),a.lineDashOffset=f;break;case"solid":a.setLineDash([]);break}if(!l&&!i.badLine)switch(e.beginPath&&e.beginPath(),e.moveTo(r[0],r[1]),i.edgeType){case"bezier":case"self":case"compound":case"multibezier":for(var m=2;m+35&&arguments[5]!==void 0?arguments[5]:!0,s=this;if(n==null){if(a&&!s.eleTextBiggerThanMin(e))return}else if(n===!1)return;if(e.isNode()){var l=e.pstyle("label");if(!l||!l.value)return;var u=s.getLabelJustification(e);t.textAlign=u,t.textBaseline="bottom"}else{var h=e.element()._private.rscratch.badLine,f=e.pstyle("label"),d=e.pstyle("source-label"),p=e.pstyle("target-label");if(h||(!f||!f.value)&&(!d||!d.value)&&(!p||!p.value))return;t.textAlign="center",t.textBaseline="bottom"}var m=!r,g;r&&(g=r,t.translate(-g.x1,-g.y1)),i==null?(s.drawText(t,e,null,m,a),e.isEdge()&&(s.drawText(t,e,"source",m,a),s.drawText(t,e,"target",m,a))):s.drawText(t,e,i,m,a),r&&t.translate(g.x1,g.y1)};H0.getFontCache=function(t){var e;this.fontCaches=this.fontCaches||[];for(var r=0;r2&&arguments[2]!==void 0?arguments[2]:!0,n=e.pstyle("font-style").strValue,i=e.pstyle("font-size").pfValue+"px",a=e.pstyle("font-family").strValue,s=e.pstyle("font-weight").strValue,l=r?e.effectiveOpacity()*e.pstyle("text-opacity").value:1,u=e.pstyle("text-outline-opacity").value*l,h=e.pstyle("color").value,f=e.pstyle("text-outline-color").value;t.font=n+" "+s+" "+i+" "+a,t.lineJoin="round",this.colorFillStyle(t,h[0],h[1],h[2],l),this.colorStrokeStyle(t,f[0],f[1],f[2],u)};o(jJe,"circle");o(T0e,"roundRect");H0.getTextAngle=function(t,e){var r,n=t._private,i=n.rscratch,a=e?e+"-":"",s=t.pstyle(a+"text-rotation");if(s.strValue==="autorotate"){var l=yo(i,"labelAngle",e);r=t.isEdge()?l:0}else s.strValue==="none"?r=0:r=s.pfValue;return r};H0.drawText=function(t,e,r){var n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,a=e._private,s=a.rscratch,l=i?e.effectiveOpacity():1;if(!(i&&(l===0||e.pstyle("text-opacity").value===0))){r==="main"&&(r=null);var u=yo(s,"labelX",r),h=yo(s,"labelY",r),f,d,p=this.getLabelText(e,r);if(p!=null&&p!==""&&!isNaN(u)&&!isNaN(h)){this.setupTextStyle(t,e,i);var m=r?r+"-":"",g=yo(s,"labelWidth",r),y=yo(s,"labelHeight",r),v=e.pstyle(m+"text-margin-x").pfValue,x=e.pstyle(m+"text-margin-y").pfValue,b=e.isEdge(),T=e.pstyle("text-halign").value,E=e.pstyle("text-valign").value;b&&(T="center",E="center"),u+=v,h+=x;var w;switch(n?w=this.getTextAngle(e,r):w=0,w!==0&&(f=u,d=h,t.translate(f,d),t.rotate(w),u=0,h=0),E){case"top":break;case"center":h+=y/2;break;case"bottom":h+=y;break}var k=e.pstyle("text-background-opacity").value,S=e.pstyle("text-border-opacity").value,A=e.pstyle("text-border-width").pfValue,L=e.pstyle("text-background-padding").pfValue,I=e.pstyle("text-background-shape").strValue,N=I==="round-rectangle"||I==="roundrectangle",C=I==="circle",_=2;if(k>0||A>0&&S>0){var D=t.fillStyle,M=t.strokeStyle,R=t.lineWidth,P=e.pstyle("text-background-color").value,B=e.pstyle("text-border-color").value,F=e.pstyle("text-border-style").value,G=k>0,$=A>0&&S>0,V=u-L;switch(T){case"left":V-=g;break;case"center":V-=g/2;break}var X=h-y-L,Q=g+2*L,H=y+2*L;if(G&&(t.fillStyle="rgba(".concat(P[0],",").concat(P[1],",").concat(P[2],",").concat(k*l,")")),$&&(t.strokeStyle="rgba(".concat(B[0],",").concat(B[1],",").concat(B[2],",").concat(S*l,")"),t.lineWidth=A,t.setLineDash))switch(F){case"dotted":t.setLineDash([1,1]);break;case"dashed":t.setLineDash([4,2]);break;case"double":t.lineWidth=A/4,t.setLineDash([]);break;case"solid":default:t.setLineDash([]);break}if(N?(t.beginPath(),T0e(t,V,X,Q,H,_)):C?(t.beginPath(),jJe(t,V,X,Q,H)):(t.beginPath(),t.rect(V,X,Q,H)),G&&t.fill(),$&&t.stroke(),$&&F==="double"){var ie=A/2;t.beginPath(),N?T0e(t,V+ie,X+ie,Q-2*ie,H-2*ie,_):t.rect(V+ie,X+ie,Q-2*ie,H-2*ie),t.stroke()}t.fillStyle=D,t.strokeStyle=M,t.lineWidth=R,t.setLineDash&&t.setLineDash([])}var Y=2*e.pstyle("text-outline-width").pfValue;if(Y>0&&(t.lineWidth=Y),e.pstyle("text-wrap").value==="wrap"){var le=yo(s,"labelWrapCachedLines",r),ee=yo(s,"labelLineHeight",r),J=g/2,te=this.getLabelJustification(e);switch(te==="auto"||(T==="left"?te==="left"?u+=-g:te==="center"&&(u+=-J):T==="center"?te==="left"?u+=-J:te==="right"&&(u+=J):T==="right"&&(te==="center"?u+=J:te==="right"&&(u+=g))),E){case"top":h-=(le.length-1)*ee;break;case"center":case"bottom":h-=(le.length-1)*ee;break}for(var Z=0;Z0&&t.strokeText(le[Z],u,h),t.fillText(le[Z],u,h),h+=ee}else Y>0&&t.strokeText(p,u,h),t.fillText(p,u,h);w!==0&&(t.rotate(-w),t.translate(-f,-d))}}};_d={};_d.drawNode=function(t,e,r){var n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,a=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,s=this,l,u,h=e._private,f=h.rscratch,d=e.position();if(!(!Nt(d.x)||!Nt(d.y))&&!(a&&!e.visible())){var p=a?e.effectiveOpacity():1,m=s.usePaths(),g,y=!1,v=e.padding();l=e.width()+2*v,u=e.height()+2*v;var x;r&&(x=r,t.translate(-x.x1,-x.y1));for(var b=e.pstyle("background-image"),T=b.value,E=new Array(T.length),w=new Array(T.length),k=0,S=0;S0&&arguments[0]!==void 0?arguments[0]:_;s.eleFillStyle(t,e,U)},"setupShapeColor"),ee=o(function(){var U=arguments.length>0&&arguments[0]!==void 0?arguments[0]:$;s.colorStrokeStyle(t,D[0],D[1],D[2],U)},"setupBorderColor"),J=o(function(){var U=arguments.length>0&&arguments[0]!==void 0?arguments[0]:H;s.colorStrokeStyle(t,X[0],X[1],X[2],U)},"setupOutlineColor"),te=o(function(U,ce,z,ne){var se=s.nodePathCache=s.nodePathCache||[],be=W0e(z==="polygon"?z+","+ne.join(","):z,""+ce,""+U,""+Y),pe=se[be],me,Re=!1;return pe!=null?(me=pe,Re=!0,f.pathCache=me):(me=new Path2D,se[be]=f.pathCache=me),{path:me,cacheHit:Re}},"getPath"),Z=e.pstyle("shape").strValue,xe=e.pstyle("shape-polygon-points").pfValue;if(m){t.translate(d.x,d.y);var de=te(l,u,Z,xe);g=de.path,y=de.cacheHit}var Se=o(function(){if(!y){var U=d;m&&(U={x:0,y:0}),s.nodeShapes[s.getNodeShape(e)].draw(g||t,U.x,U.y,l,u,Y,f)}m?t.fill(g):t.fill()},"drawShape"),Me=o(function(){for(var U=arguments.length>0&&arguments[0]!==void 0?arguments[0]:p,ce=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,z=h.backgrounding,ne=0,se=0;se0&&arguments[0]!==void 0?arguments[0]:!1,ce=arguments.length>1&&arguments[1]!==void 0?arguments[1]:p;s.hasPie(e)&&(s.drawPie(t,e,ce),U&&(m||s.nodeShapes[s.getNodeShape(e)].draw(t,d.x,d.y,l,u,Y,f)))},"drawPie"),we=o(function(){var U=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,ce=arguments.length>1&&arguments[1]!==void 0?arguments[1]:p;s.hasStripe(e)&&(t.save(),m?t.clip(f.pathCache):(s.nodeShapes[s.getNodeShape(e)].draw(t,d.x,d.y,l,u,Y,f),t.clip()),s.drawStripe(t,e,ce),t.restore(),U&&(m||s.nodeShapes[s.getNodeShape(e)].draw(t,d.x,d.y,l,u,Y,f)))},"drawStripe"),_e=o(function(){var U=arguments.length>0&&arguments[0]!==void 0?arguments[0]:p,ce=(N>0?N:-N)*U,z=N>0?0:255;N!==0&&(s.colorFillStyle(t,z,z,z,ce),m?t.fill(g):t.fill())},"darken"),$e=o(function(){if(C>0){if(t.lineWidth=C,t.lineCap=P,t.lineJoin=R,t.setLineDash)switch(M){case"dotted":t.setLineDash([1,1]);break;case"dashed":t.setLineDash(F),t.lineDashOffset=G;break;case"solid":case"double":t.setLineDash([]);break}if(B!=="center"){if(t.save(),t.lineWidth*=2,B==="inside")m?t.clip(g):t.clip();else{var U=new Path2D;U.rect(-l/2-C,-u/2-C,l+2*C,u+2*C),U.addPath(g),t.clip(U,"evenodd")}m?t.stroke(g):t.stroke(),t.restore()}else m?t.stroke(g):t.stroke();if(M==="double"){t.lineWidth=C/3;var ce=t.globalCompositeOperation;t.globalCompositeOperation="destination-out",m?t.stroke(g):t.stroke(),t.globalCompositeOperation=ce}t.setLineDash&&t.setLineDash([])}},"drawBorder"),fe=o(function(){if(V>0){if(t.lineWidth=V,t.lineCap="butt",t.setLineDash)switch(Q){case"dotted":t.setLineDash([1,1]);break;case"dashed":t.setLineDash([4,2]);break;case"solid":case"double":t.setLineDash([]);break}var U=d;m&&(U={x:0,y:0});var ce=s.getNodeShape(e),z=C;B==="inside"&&(z=0),B==="outside"&&(z*=2);var ne=(l+z+(V+ie))/l,se=(u+z+(V+ie))/u,be=l*ne,pe=u*se,me=s.nodeShapes[ce].points,Re;if(m){var ge=te(be,pe,ce,me);Re=ge.path}if(ce==="ellipse")s.drawEllipsePath(Re||t,U.x,U.y,be,pe);else if(["round-diamond","round-heptagon","round-hexagon","round-octagon","round-pentagon","round-polygon","round-triangle","round-tag"].includes(ce)){var Ie=0,qe=0,Pe=0;ce==="round-diamond"?Ie=(z+ie+V)*1.4:ce==="round-heptagon"?(Ie=(z+ie+V)*1.075,Pe=-(z/2+ie+V)/35):ce==="round-hexagon"?Ie=(z+ie+V)*1.12:ce==="round-pentagon"?(Ie=(z+ie+V)*1.13,Pe=-(z/2+ie+V)/15):ce==="round-tag"?(Ie=(z+ie+V)*1.12,qe=(z/2+V+ie)*.07):ce==="round-triangle"&&(Ie=(z+ie+V)*(Math.PI/2),Pe=-(z+ie/2+V)/Math.PI),Ie!==0&&(ne=(l+Ie)/l,be=l*ne,["round-hexagon","round-tag"].includes(ce)||(se=(u+Ie)/u,pe=u*se)),Y=Y==="auto"?tme(be,pe):Y;for(var Xe=be/2,oe=pe/2,et=Y+(z+V+ie)/2,he=new Array(me.length/2),ot=new Array(me.length/2),Dt=0;Dt0){if(i=i||n.position(),a==null||s==null){var m=n.padding();a=n.width()+2*m,s=n.height()+2*m}l.colorFillStyle(r,f[0],f[1],f[2],h),l.nodeShapes[d].draw(r,i.x,i.y,a+u*2,s+u*2,p),r.fill()}}}},"drawNodeOverlayUnderlay");_d.drawNodeOverlay=oge("overlay");_d.drawNodeUnderlay=oge("underlay");_d.hasPie=function(t){return t=t[0],t._private.hasPie};_d.hasStripe=function(t){return t=t[0],t._private.hasStripe};_d.drawPie=function(t,e,r,n){e=e[0],n=n||e.position();var i=e.cy().style(),a=e.pstyle("pie-size"),s=e.pstyle("pie-hole"),l=e.pstyle("pie-start-angle").pfValue,u=n.x,h=n.y,f=e.width(),d=e.height(),p=Math.min(f,d)/2,m,g=0,y=this.usePaths();if(y&&(u=0,h=0),a.units==="%"?p=p*a.pfValue:a.pfValue!==void 0&&(p=a.pfValue/2),s.units==="%"?m=p*s.pfValue:s.pfValue!==void 0&&(m=s.pfValue/2),!(m>=p))for(var v=1;v<=i.pieBackgroundN;v++){var x=e.pstyle("pie-"+v+"-background-size").value,b=e.pstyle("pie-"+v+"-background-color").value,T=e.pstyle("pie-"+v+"-background-opacity").value*r,E=x/100;E+g>1&&(E=1-g);var w=1.5*Math.PI+2*Math.PI*g;w+=l;var k=2*Math.PI*E,S=w+k;x===0||g>=1||g+E>1||(m===0?(t.beginPath(),t.moveTo(u,h),t.arc(u,h,p,w,S),t.closePath()):(t.beginPath(),t.arc(u,h,p,w,S),t.arc(u,h,m,S,w,!0),t.closePath()),this.colorFillStyle(t,b[0],b[1],b[2],T),t.fill(),g+=E)}};_d.drawStripe=function(t,e,r,n){e=e[0],n=n||e.position();var i=e.cy().style(),a=n.x,s=n.y,l=e.width(),u=e.height(),h=0,f=this.usePaths();t.save();var d=e.pstyle("stripe-direction").value,p=e.pstyle("stripe-size");switch(d){case"vertical":break;case"righward":t.rotate(-Math.PI/2);break}var m=l,g=u;p.units==="%"?(m=m*p.pfValue,g=g*p.pfValue):p.pfValue!==void 0&&(m=p.pfValue,g=p.pfValue),f&&(a=0,s=0),s-=m/2,a-=g/2;for(var y=1;y<=i.stripeBackgroundN;y++){var v=e.pstyle("stripe-"+y+"-background-size").value,x=e.pstyle("stripe-"+y+"-background-color").value,b=e.pstyle("stripe-"+y+"-background-opacity").value*r,T=v/100;T+h>1&&(T=1-h),!(v===0||h>=1||h+T>1)&&(t.beginPath(),t.rect(a,s+g*h,m,g*T),t.closePath(),this.colorFillStyle(t,x[0],x[1],x[2],b),t.fill(),h+=T)}t.restore()};Is={},XJe=100;Is.getPixelRatio=function(){var t=this.data.contexts[0];if(this.forcedPixelRatio!=null)return this.forcedPixelRatio;var e=this.cy.window(),r=t.backingStorePixelRatio||t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1;return(e.devicePixelRatio||1)/r};Is.paintCache=function(t){for(var e=this.paintCaches=this.paintCaches||[],r=!0,n,i=0;ie.minMbLowQualFrames&&(e.motionBlurPxRatio=e.mbPxRBlurry)),e.clearingMotionBlur&&(e.motionBlurPxRatio=1),e.textureDrawLastFrame&&!d&&(f[e.NODE]=!0,f[e.SELECT_BOX]=!0);var b=r.style(),T=r.zoom(),E=s!==void 0?s:T,w=r.pan(),k={x:w.x,y:w.y},S={zoom:T,pan:{x:w.x,y:w.y}},A=e.prevViewport,L=A===void 0||S.zoom!==A.zoom||S.pan.x!==A.pan.x||S.pan.y!==A.pan.y;!L&&!(y&&!g)&&(e.motionBlurPxRatio=1),l&&(k=l),E*=u,k.x*=u,k.y*=u;var I=e.getCachedZSortedEles();function N(ee,J,te,Z,xe){var de=ee.globalCompositeOperation;ee.globalCompositeOperation="destination-out",e.colorFillStyle(ee,255,255,255,e.motionBlurTransparency),ee.fillRect(J,te,Z,xe),ee.globalCompositeOperation=de}o(N,"mbclear");function C(ee,J){var te,Z,xe,de;!e.clearingMotionBlur&&(ee===h.bufferContexts[e.MOTIONBLUR_BUFFER_NODE]||ee===h.bufferContexts[e.MOTIONBLUR_BUFFER_DRAG])?(te={x:w.x*m,y:w.y*m},Z=T*m,xe=e.canvasWidth*m,de=e.canvasHeight*m):(te=k,Z=E,xe=e.canvasWidth,de=e.canvasHeight),ee.setTransform(1,0,0,1,0,0),J==="motionBlur"?N(ee,0,0,xe,de):!n&&(J===void 0||J)&&ee.clearRect(0,0,xe,de),i||(ee.translate(te.x,te.y),ee.scale(Z,Z)),l&&ee.translate(l.x,l.y),s&&ee.scale(s,s)}if(o(C,"setContextTransform"),d||(e.textureDrawLastFrame=!1),d){if(e.textureDrawLastFrame=!0,!e.textureCache){e.textureCache={},e.textureCache.bb=r.mutableElements().boundingBox(),e.textureCache.texture=e.data.bufferCanvases[e.TEXTURE_BUFFER];var _=e.data.bufferContexts[e.TEXTURE_BUFFER];_.setTransform(1,0,0,1,0,0),_.clearRect(0,0,e.canvasWidth*e.textureMult,e.canvasHeight*e.textureMult),e.render({forcedContext:_,drawOnlyNodeLayer:!0,forcedPxRatio:u*e.textureMult});var S=e.textureCache.viewport={zoom:r.zoom(),pan:r.pan(),width:e.canvasWidth,height:e.canvasHeight};S.mpan={x:(0-S.pan.x)/S.zoom,y:(0-S.pan.y)/S.zoom}}f[e.DRAG]=!1,f[e.NODE]=!1;var D=h.contexts[e.NODE],M=e.textureCache.texture,S=e.textureCache.viewport;D.setTransform(1,0,0,1,0,0),p?N(D,0,0,S.width,S.height):D.clearRect(0,0,S.width,S.height);var R=b.core("outside-texture-bg-color").value,P=b.core("outside-texture-bg-opacity").value;e.colorFillStyle(D,R[0],R[1],R[2],P),D.fillRect(0,0,S.width,S.height);var T=r.zoom();C(D,!1),D.clearRect(S.mpan.x,S.mpan.y,S.width/S.zoom/u,S.height/S.zoom/u),D.drawImage(M,S.mpan.x,S.mpan.y,S.width/S.zoom/u,S.height/S.zoom/u)}else e.textureOnViewport&&!n&&(e.textureCache=null);var B=r.extent(),F=e.pinching||e.hoverData.dragging||e.swipePanning||e.data.wheelZooming||e.hoverData.draggingEles||e.cy.animated(),G=e.hideEdgesOnViewport&&F,$=[];if($[e.NODE]=!f[e.NODE]&&p&&!e.clearedForMotionBlur[e.NODE]||e.clearingMotionBlur,$[e.NODE]&&(e.clearedForMotionBlur[e.NODE]=!0),$[e.DRAG]=!f[e.DRAG]&&p&&!e.clearedForMotionBlur[e.DRAG]||e.clearingMotionBlur,$[e.DRAG]&&(e.clearedForMotionBlur[e.DRAG]=!0),f[e.NODE]||i||a||$[e.NODE]){var V=p&&!$[e.NODE]&&m!==1,D=n||(V?e.data.bufferContexts[e.MOTIONBLUR_BUFFER_NODE]:h.contexts[e.NODE]),X=p&&!V?"motionBlur":void 0;C(D,X),G?e.drawCachedNodes(D,I.nondrag,u,B):e.drawLayeredElements(D,I.nondrag,u,B),e.debug&&e.drawDebugPoints(D,I.nondrag),!i&&!p&&(f[e.NODE]=!1)}if(!a&&(f[e.DRAG]||i||$[e.DRAG])){var V=p&&!$[e.DRAG]&&m!==1,D=n||(V?e.data.bufferContexts[e.MOTIONBLUR_BUFFER_DRAG]:h.contexts[e.DRAG]);C(D,p&&!V?"motionBlur":void 0),G?e.drawCachedNodes(D,I.drag,u,B):e.drawCachedElements(D,I.drag,u,B),e.debug&&e.drawDebugPoints(D,I.drag),!i&&!p&&(f[e.DRAG]=!1)}if(this.drawSelectionRectangle(t,C),p&&m!==1){var Q=h.contexts[e.NODE],H=e.data.bufferCanvases[e.MOTIONBLUR_BUFFER_NODE],ie=h.contexts[e.DRAG],Y=e.data.bufferCanvases[e.MOTIONBLUR_BUFFER_DRAG],le=o(function(J,te,Z){J.setTransform(1,0,0,1,0,0),Z||!x?J.clearRect(0,0,e.canvasWidth,e.canvasHeight):N(J,0,0,e.canvasWidth,e.canvasHeight);var xe=m;J.drawImage(te,0,0,e.canvasWidth*xe,e.canvasHeight*xe,0,0,e.canvasWidth,e.canvasHeight)},"drawMotionBlur");(f[e.NODE]||$[e.NODE])&&(le(Q,H,$[e.NODE]),f[e.NODE]=!1),(f[e.DRAG]||$[e.DRAG])&&(le(ie,Y,$[e.DRAG]),f[e.DRAG]=!1)}e.prevViewport=S,e.clearingMotionBlur&&(e.clearingMotionBlur=!1,e.motionBlurCleared=!0,e.motionBlur=!0),p&&(e.motionBlurTimeout=setTimeout(function(){e.motionBlurTimeout=null,e.clearedForMotionBlur[e.NODE]=!1,e.clearedForMotionBlur[e.DRAG]=!1,e.motionBlur=!1,e.clearingMotionBlur=!d,e.mbFrames=0,f[e.NODE]=!0,f[e.DRAG]=!0,e.redraw()},XJe)),n||r.emit("render")};Is.drawSelectionRectangle=function(t,e){var r=this,n=r.cy,i=r.data,a=n.style(),s=t.drawOnlyNodeLayer,l=t.drawAllLayers,u=i.canvasNeedsRedraw,h=t.forcedContext;if(r.showFps||!s&&u[r.SELECT_BOX]&&!l){var f=h||i.contexts[r.SELECT_BOX];if(e(f),r.selection[4]==1&&(r.hoverData.selecting||r.touchData.selecting)){var d=r.cy.zoom(),p=a.core("selection-box-border-width").value/d;f.lineWidth=p,f.fillStyle="rgba("+a.core("selection-box-color").value[0]+","+a.core("selection-box-color").value[1]+","+a.core("selection-box-color").value[2]+","+a.core("selection-box-opacity").value+")",f.fillRect(r.selection[0],r.selection[1],r.selection[2]-r.selection[0],r.selection[3]-r.selection[1]),p>0&&(f.strokeStyle="rgba("+a.core("selection-box-border-color").value[0]+","+a.core("selection-box-border-color").value[1]+","+a.core("selection-box-border-color").value[2]+","+a.core("selection-box-opacity").value+")",f.strokeRect(r.selection[0],r.selection[1],r.selection[2]-r.selection[0],r.selection[3]-r.selection[1]))}if(i.bgActivePosistion&&!r.hoverData.selecting){var d=r.cy.zoom(),m=i.bgActivePosistion;f.fillStyle="rgba("+a.core("active-bg-color").value[0]+","+a.core("active-bg-color").value[1]+","+a.core("active-bg-color").value[2]+","+a.core("active-bg-opacity").value+")",f.beginPath(),f.arc(m.x,m.y,a.core("active-bg-size").pfValue/d,0,2*Math.PI),f.fill()}var g=r.lastRedrawTime;if(r.showFps&&g){g=Math.round(g);var y=Math.round(1e3/g),v="1 frame = "+g+" ms = "+y+" fps";if(f.setTransform(1,0,0,1,0,0),f.fillStyle="rgba(255, 0, 0, 0.75)",f.strokeStyle="rgba(255, 0, 0, 0.75)",f.font="30px Arial",!Lb){var x=f.measureText(v);Lb=x.actualBoundingBoxAscent}f.fillText(v,0,Lb);var b=60;f.strokeRect(0,Lb+10,250,20),f.fillRect(0,Lb+10,250*Math.min(y/b,1),20)}l||(u[r.SELECT_BOX]=!1)}};o(w0e,"compileShader");o(KJe,"createProgram");o(QJe,"createTextureCanvas");o(EB,"getEffectivePanZoom");o(ZJe,"getEffectiveZoom");o(JJe,"modelToRenderedPosition");o(eet,"isSimpleShape");o(tet,"arrayEqual");o(M0,"toWebGLColor");o(q1,"indexToVec4");o(ret,"vec4ToIndex");o(net,"createTexture");o(lge,"getTypeInfo");o(cge,"createTypedArray");o(iet,"createTypedArrayView");o(aet,"createBufferStaticDraw");o(Eu,"createBufferDynamicDraw");o(set,"create3x3MatrixBufferDynamicDraw");o(oet,"createPickingFrameBuffer");k0e=typeof Float32Array<"u"?Float32Array:Array;Math.hypot||(Math.hypot=function(){for(var t=0,e=arguments.length;e--;)t+=arguments[e]*arguments[e];return Math.sqrt(t)});o(_P,"create");o(E0e,"identity");o(cet,"multiply");o(US,"translate");o(S0e,"rotate");o(KP,"scale");o(uet,"projection");het=(function(){function t(e,r,n,i){Sd(this,t),this.debugID=Math.floor(Math.random()*1e4),this.r=e,this.texSize=r,this.texRows=n,this.texHeight=Math.floor(r/n),this.enableWrapping=!0,this.locked=!1,this.texture=null,this.needsBuffer=!0,this.freePointer={x:0,row:0},this.keyToLocation=new Map,this.canvas=i(e,r,r),this.scratch=i(e,r,this.texHeight,"scratch")}return o(t,"Atlas"),Cd(t,[{key:"lock",value:o(function(){this.locked=!0},"lock")},{key:"getKeys",value:o(function(){return new Set(this.keyToLocation.keys())},"getKeys")},{key:"getScale",value:o(function(r){var n=r.w,i=r.h,a=this.texHeight,s=this.texSize,l=a/i,u=n*l,h=i*l;return u>s&&(l=s/n,u=n*l,h=i*l),{scale:l,texW:u,texH:h}},"getScale")},{key:"draw",value:o(function(r,n,i){var a=this;if(this.locked)throw new Error("can't draw, atlas is locked");var s=this.texSize,l=this.texRows,u=this.texHeight,h=this.getScale(n),f=h.scale,d=h.texW,p=h.texH,m=o(function(T,E){if(i&&E){var w=E.context,k=T.x,S=T.row,A=k,L=u*S;w.save(),w.translate(A,L),w.scale(f,f),i(w,n),w.restore()}},"drawAt"),g=[null,null],y=o(function(){m(a.freePointer,a.canvas),g[0]={x:a.freePointer.x,y:a.freePointer.row*u,w:d,h:p},g[1]={x:a.freePointer.x+d,y:a.freePointer.row*u,w:0,h:p},a.freePointer.x+=d,a.freePointer.x==s&&(a.freePointer.x=0,a.freePointer.row++)},"drawNormal"),v=o(function(){var T=a.scratch,E=a.canvas;T.clear(),m({x:0,row:0},T);var w=s-a.freePointer.x,k=d-w,S=u;{var A=a.freePointer.x,L=a.freePointer.row*u,I=w;E.context.drawImage(T,0,0,I,S,A,L,I,S),g[0]={x:A,y:L,w:I,h:p}}{var N=w,C=(a.freePointer.row+1)*u,_=k;E&&E.context.drawImage(T,N,0,_,S,0,C,_,S),g[1]={x:0,y:C,w:_,h:p}}a.freePointer.x=k,a.freePointer.row++},"drawWrapped"),x=o(function(){a.freePointer.x=0,a.freePointer.row++},"moveToStartOfNextRow");if(this.freePointer.x+d<=s)y();else{if(this.freePointer.row>=l-1)return!1;this.freePointer.x===s?(x(),y()):this.enableWrapping?v():(x(),y())}return this.keyToLocation.set(r,g),this.needsBuffer=!0,g},"draw")},{key:"getOffsets",value:o(function(r){return this.keyToLocation.get(r)},"getOffsets")},{key:"isEmpty",value:o(function(){return this.freePointer.x===0&&this.freePointer.row===0},"isEmpty")},{key:"canFit",value:o(function(r){if(this.locked)return!1;var n=this.texSize,i=this.texRows,a=this.getScale(r),s=a.texW;return this.freePointer.x+s>n?this.freePointer.row1&&arguments[1]!==void 0?arguments[1]:{},a=i.forceRedraw,s=a===void 0?!1:a,l=i.filterEle,u=l===void 0?function(){return!0}:l,h=i.filterType,f=h===void 0?function(){return!0}:h,d=!1,p=!1,m=xo(r),g;try{for(m.s();!(g=m.n()).done;){var y=g.value;if(u(y)){var v=xo(this.renderTypes.values()),x;try{var b=o(function(){var E=x.value,w=E.type;if(f(w)){var k=n.collections.get(E.collection),S=E.getKey(y),A=Array.isArray(S)?S:[S];if(s)A.forEach(function(C){return k.markKeyForGC(C)}),p=!0;else{var L=E.getID?E.getID(y):y.id(),I=n._key(w,L),N=n.typeAndIdToKey.get(I);N!==void 0&&!tet(A,N)&&(d=!0,n.typeAndIdToKey.delete(I),N.forEach(function(C){return k.markKeyForGC(C)}))}}},"_loop2");for(v.s();!(x=v.n()).done;)b()}catch(T){v.e(T)}finally{v.f()}}}}catch(T){m.e(T)}finally{m.f()}return p&&(this.gc(),d=!1),d},"invalidate")},{key:"gc",value:o(function(){var r=xo(this.collections.values()),n;try{for(r.s();!(n=r.n()).done;){var i=n.value;i.gc()}}catch(a){r.e(a)}finally{r.f()}},"gc")},{key:"getOrCreateAtlas",value:o(function(r,n,i,a){var s=this.renderTypes.get(n),l=this.collections.get(s.collection),u=!1,h=l.draw(a,i,function(p){s.drawClipped?(p.save(),p.beginPath(),p.rect(0,0,i.w,i.h),p.clip(),s.drawElement(p,r,i,!0,!0),p.restore()):s.drawElement(p,r,i,!0,!0),u=!0});if(u){var f=s.getID?s.getID(r):r.id(),d=this._key(n,f);this.typeAndIdToKey.has(d)?this.typeAndIdToKey.get(d).push(a):this.typeAndIdToKey.set(d,[a])}return h},"getOrCreateAtlas")},{key:"getAtlasInfo",value:o(function(r,n){var i=this,a=this.renderTypes.get(n),s=a.getKey(r),l=Array.isArray(s)?s:[s];return l.map(function(u){var h=a.getBoundingBox(r,u),f=i.getOrCreateAtlas(r,n,h,u),d=f.getOffsets(u),p=Wi(d,2),m=p[0],g=p[1];return{atlas:f,tex:m,tex1:m,tex2:g,bb:h}})},"getAtlasInfo")},{key:"getDebugInfo",value:o(function(){var r=[],n=xo(this.collections),i;try{for(n.s();!(i=n.n()).done;){var a=Wi(i.value,2),s=a[0],l=a[1],u=l.getCounts(),h=u.keyCount,f=u.atlasCount;r.push({type:s,keyCount:h,atlasCount:f})}}catch(d){n.e(d)}finally{n.f()}return r},"getDebugInfo")}])})(),met=(function(){function t(e){Sd(this,t),this.globalOptions=e,this.atlasSize=e.webglTexSize,this.maxAtlasesPerBatch=e.webglTexPerBatch,this.batchAtlases=[]}return o(t,"AtlasBatchManager"),Cd(t,[{key:"getMaxAtlasesPerBatch",value:o(function(){return this.maxAtlasesPerBatch},"getMaxAtlasesPerBatch")},{key:"getAtlasSize",value:o(function(){return this.atlasSize},"getAtlasSize")},{key:"getIndexArray",value:o(function(){return Array.from({length:this.maxAtlasesPerBatch},function(r,n){return n})},"getIndexArray")},{key:"startBatch",value:o(function(){this.batchAtlases=[]},"startBatch")},{key:"getAtlasCount",value:o(function(){return this.batchAtlases.length},"getAtlasCount")},{key:"getAtlases",value:o(function(){return this.batchAtlases},"getAtlases")},{key:"canAddToCurrentBatch",value:o(function(r){return this.batchAtlases.length===this.maxAtlasesPerBatch?this.batchAtlases.includes(r):!0},"canAddToCurrentBatch")},{key:"getAtlasIndexForBatch",value:o(function(r){var n=this.batchAtlases.indexOf(r);if(n<0){if(this.batchAtlases.length===this.maxAtlasesPerBatch)throw new Error("cannot add more atlases to batch");this.batchAtlases.push(r),n=this.batchAtlases.length-1}return n},"getAtlasIndexForBatch")}])})(),get=` + float circleSD(vec2 p, float r) { + return distance(vec2(0), p) - r; // signed distance + } +`,yet=` + float rectangleSD(vec2 p, vec2 b) { + vec2 d = abs(p)-b; + return distance(vec2(0),max(d,0.0)) + min(max(d.x,d.y),0.0); + } +`,vet=` + float roundRectangleSD(vec2 p, vec2 b, vec4 cr) { + cr.xy = (p.x > 0.0) ? cr.xy : cr.zw; + cr.x = (p.y > 0.0) ? cr.x : cr.y; + vec2 q = abs(p) - b + cr.x; + return min(max(q.x, q.y), 0.0) + distance(vec2(0), max(q, 0.0)) - cr.x; + } +`,xet=` + float ellipseSD(vec2 p, vec2 ab) { + p = abs( p ); // symmetry + + // find root with Newton solver + vec2 q = ab*(p-ab); + float w = (q.x1.0) ? d : -d; + } +`,$b={SCREEN:{name:"screen",screen:!0},PICKING:{name:"picking",picking:!0}},nC={IGNORE:1,USE_BB:2},DP=0,C0e=1,A0e=2,RP=3,U1=4,MS=5,Nb=6,Mb=7,bet=(function(){function t(e,r,n){Sd(this,t),this.r=e,this.gl=r,this.maxInstances=n.webglBatchSize,this.atlasSize=n.webglTexSize,this.bgColor=n.bgColor,this.debug=n.webglDebug,this.batchDebugInfo=[],n.enableWrapping=!0,n.createTextureCanvas=QJe,this.atlasManager=new pet(e,n),this.batchManager=new met(n),this.simpleShapeOptions=new Map,this.program=this._createShaderProgram($b.SCREEN),this.pickingProgram=this._createShaderProgram($b.PICKING),this.vao=this._createVAO()}return o(t,"ElementDrawingWebGL"),Cd(t,[{key:"addAtlasCollection",value:o(function(r,n){this.atlasManager.addAtlasCollection(r,n)},"addAtlasCollection")},{key:"addTextureAtlasRenderType",value:o(function(r,n){this.atlasManager.addRenderType(r,n)},"addTextureAtlasRenderType")},{key:"addSimpleShapeRenderType",value:o(function(r,n){this.simpleShapeOptions.set(r,n)},"addSimpleShapeRenderType")},{key:"invalidate",value:o(function(r){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=n.type,a=this.atlasManager;return i?a.invalidate(r,{filterType:o(function(l){return l===i},"filterType"),forceRedraw:!0}):a.invalidate(r)},"invalidate")},{key:"gc",value:o(function(){this.atlasManager.gc()},"gc")},{key:"_createShaderProgram",value:o(function(r){var n=this.gl,i=`#version 300 es + precision highp float; + + uniform mat3 uPanZoomMatrix; + uniform int uAtlasSize; + + // instanced + in vec2 aPosition; // a vertex from the unit square + + in mat3 aTransform; // used to transform verticies, eg into a bounding box + in int aVertType; // the type of thing we are rendering + + // the z-index that is output when using picking mode + in vec4 aIndex; + + // For textures + in int aAtlasId; // which shader unit/atlas to use + in vec4 aTex; // x/y/w/h of texture in atlas + + // for edges + in vec4 aPointAPointB; + in vec4 aPointCPointD; + in vec2 aLineWidth; // also used for node border width + + // simple shapes + in vec4 aCornerRadius; // for round-rectangle [top-right, bottom-right, top-left, bottom-left] + in vec4 aColor; // also used for edges + in vec4 aBorderColor; // aLineWidth is used for border width + + // output values passed to the fragment shader + out vec2 vTexCoord; + out vec4 vColor; + out vec2 vPosition; + // flat values are not interpolated + flat out int vAtlasId; + flat out int vVertType; + flat out vec2 vTopRight; + flat out vec2 vBotLeft; + flat out vec4 vCornerRadius; + flat out vec4 vBorderColor; + flat out vec2 vBorderWidth; + flat out vec4 vIndex; + + void main(void) { + int vid = gl_VertexID; + vec2 position = aPosition; // TODO make this a vec3, simplifies some code below + + if(aVertType == `.concat(DP,`) { + float texX = aTex.x; // texture coordinates + float texY = aTex.y; + float texW = aTex.z; + float texH = aTex.w; + + if(vid == 1 || vid == 2 || vid == 4) { + texX += texW; + } + if(vid == 2 || vid == 4 || vid == 5) { + texY += texH; + } + + float d = float(uAtlasSize); + vTexCoord = vec2(texX / d, texY / d); // tex coords must be between 0 and 1 + + gl_Position = vec4(uPanZoomMatrix * aTransform * vec3(position, 1.0), 1.0); + } + else if(aVertType == `).concat(U1," || aVertType == ").concat(Mb,` + || aVertType == `).concat(MS," || aVertType == ").concat(Nb,`) { // simple shapes + + // the bounding box is needed by the fragment shader + vBotLeft = (aTransform * vec3(0, 0, 1)).xy; // flat + vTopRight = (aTransform * vec3(1, 1, 1)).xy; // flat + vPosition = (aTransform * vec3(position, 1)).xy; // will be interpolated + + // calculations are done in the fragment shader, just pass these along + vColor = aColor; + vCornerRadius = aCornerRadius; + vBorderColor = aBorderColor; + vBorderWidth = aLineWidth; + + gl_Position = vec4(uPanZoomMatrix * aTransform * vec3(position, 1.0), 1.0); + } + else if(aVertType == `).concat(C0e,`) { + vec2 source = aPointAPointB.xy; + vec2 target = aPointAPointB.zw; + + // adjust the geometry so that the line is centered on the edge + position.y = position.y - 0.5; + + // stretch the unit square into a long skinny rectangle + vec2 xBasis = target - source; + vec2 yBasis = normalize(vec2(-xBasis.y, xBasis.x)); + vec2 point = source + xBasis * position.x + yBasis * aLineWidth[0] * position.y; + + gl_Position = vec4(uPanZoomMatrix * vec3(point, 1.0), 1.0); + vColor = aColor; + } + else if(aVertType == `).concat(A0e,`) { + vec2 pointA = aPointAPointB.xy; + vec2 pointB = aPointAPointB.zw; + vec2 pointC = aPointCPointD.xy; + vec2 pointD = aPointCPointD.zw; + + // adjust the geometry so that the line is centered on the edge + position.y = position.y - 0.5; + + vec2 p0, p1, p2, pos; + if(position.x == 0.0) { // The left side of the unit square + p0 = pointA; + p1 = pointB; + p2 = pointC; + pos = position; + } else { // The right side of the unit square, use same approach but flip the geometry upside down + p0 = pointD; + p1 = pointC; + p2 = pointB; + pos = vec2(0.0, -position.y); + } + + vec2 p01 = p1 - p0; + vec2 p12 = p2 - p1; + vec2 p21 = p1 - p2; + + // Find the normal vector. + vec2 tangent = normalize(normalize(p12) + normalize(p01)); + vec2 normal = vec2(-tangent.y, tangent.x); + + // Find the vector perpendicular to p0 -> p1. + vec2 p01Norm = normalize(vec2(-p01.y, p01.x)); + + // Determine the bend direction. + float sigma = sign(dot(p01 + p21, normal)); + float width = aLineWidth[0]; + + if(sign(pos.y) == -sigma) { + // This is an intersecting vertex. Adjust the position so that there's no overlap. + vec2 point = 0.5 * width * normal * -sigma / dot(normal, p01Norm); + gl_Position = vec4(uPanZoomMatrix * vec3(p1 + point, 1.0), 1.0); + } else { + // This is a non-intersecting vertex. Treat it like a mitre join. + vec2 point = 0.5 * width * normal * sigma * dot(normal, p01Norm); + gl_Position = vec4(uPanZoomMatrix * vec3(p1 + point, 1.0), 1.0); + } + + vColor = aColor; + } + else if(aVertType == `).concat(RP,` && vid < 3) { + // massage the first triangle into an edge arrow + if(vid == 0) + position = vec2(-0.15, -0.3); + if(vid == 1) + position = vec2( 0.0, 0.0); + if(vid == 2) + position = vec2( 0.15, -0.3); + + gl_Position = vec4(uPanZoomMatrix * aTransform * vec3(position, 1.0), 1.0); + vColor = aColor; + } + else { + gl_Position = vec4(2.0, 0.0, 0.0, 1.0); // discard vertex by putting it outside webgl clip space + } + + vAtlasId = aAtlasId; + vVertType = aVertType; + vIndex = aIndex; + } + `),a=this.batchManager.getIndexArray(),s=`#version 300 es + precision highp float; + + // declare texture unit for each texture atlas in the batch + `.concat(a.map(function(h){return"uniform sampler2D uTexture".concat(h,";")}).join(` + `),` + + uniform vec4 uBGColor; + uniform float uZoom; + + in vec2 vTexCoord; + in vec4 vColor; + in vec2 vPosition; // model coordinates + + flat in int vAtlasId; + flat in vec4 vIndex; + flat in int vVertType; + flat in vec2 vTopRight; + flat in vec2 vBotLeft; + flat in vec4 vCornerRadius; + flat in vec4 vBorderColor; + flat in vec2 vBorderWidth; + + out vec4 outColor; + + `).concat(get,` + `).concat(yet,` + `).concat(vet,` + `).concat(xet,` + + vec4 blend(vec4 top, vec4 bot) { // blend colors with premultiplied alpha + return vec4( + top.rgb + (bot.rgb * (1.0 - top.a)), + top.a + (bot.a * (1.0 - top.a)) + ); + } + + vec4 distInterp(vec4 cA, vec4 cB, float d) { // interpolate color using Signed Distance + // scale to the zoom level so that borders don't look blurry when zoomed in + // note 1.5 is an aribitrary value chosen because it looks good + return mix(cA, cB, 1.0 - smoothstep(0.0, 1.5 / uZoom, abs(d))); + } + + void main(void) { + if(vVertType == `).concat(DP,`) { + // look up the texel from the texture unit + `).concat(a.map(function(h){return"if(vAtlasId == ".concat(h,") outColor = texture(uTexture").concat(h,", vTexCoord);")}).join(` + else `),` + } + else if(vVertType == `).concat(RP,`) { + // mimics how canvas renderer uses context.globalCompositeOperation = 'destination-out'; + outColor = blend(vColor, uBGColor); + outColor.a = 1.0; // make opaque, masks out line under arrow + } + else if(vVertType == `).concat(U1,` && vBorderWidth == vec2(0.0)) { // simple rectangle with no border + outColor = vColor; // unit square is already transformed to the rectangle, nothing else needs to be done + } + else if(vVertType == `).concat(U1," || vVertType == ").concat(Mb,` + || vVertType == `).concat(MS," || vVertType == ").concat(Nb,`) { // use SDF + + float outerBorder = vBorderWidth[0]; + float innerBorder = vBorderWidth[1]; + float borderPadding = outerBorder * 2.0; + float w = vTopRight.x - vBotLeft.x - borderPadding; + float h = vTopRight.y - vBotLeft.y - borderPadding; + vec2 b = vec2(w/2.0, h/2.0); // half width, half height + vec2 p = vPosition - vec2(vTopRight.x - b[0] - outerBorder, vTopRight.y - b[1] - outerBorder); // translate to center + + float d; // signed distance + if(vVertType == `).concat(U1,`) { + d = rectangleSD(p, b); + } else if(vVertType == `).concat(Mb,` && w == h) { + d = circleSD(p, b.x); // faster than ellipse + } else if(vVertType == `).concat(Mb,`) { + d = ellipseSD(p, b); + } else { + d = roundRectangleSD(p, b, vCornerRadius.wzyx); + } + + // use the distance to interpolate a color to smooth the edges of the shape, doesn't need multisampling + // we must smooth colors inwards, because we can't change pixels outside the shape's bounding box + if(d > 0.0) { + if(d > outerBorder) { + discard; + } else { + outColor = distInterp(vBorderColor, vec4(0), d - outerBorder); + } + } else { + if(d > innerBorder) { + vec4 outerColor = outerBorder == 0.0 ? vec4(0) : vBorderColor; + vec4 innerBorderColor = blend(vBorderColor, vColor); + outColor = distInterp(innerBorderColor, outerColor, d); + } + else { + vec4 outerColor; + if(innerBorder == 0.0 && outerBorder == 0.0) { + outerColor = vec4(0); + } else if(innerBorder == 0.0) { + outerColor = vBorderColor; + } else { + outerColor = blend(vBorderColor, vColor); + } + outColor = distInterp(vColor, outerColor, d - innerBorder); + } + } + } + else { + outColor = vColor; + } + + `).concat(r.picking?`if(outColor.a == 0.0) discard; + else outColor = vIndex;`:"",` + } + `),l=KJe(n,i,s);l.aPosition=n.getAttribLocation(l,"aPosition"),l.aIndex=n.getAttribLocation(l,"aIndex"),l.aVertType=n.getAttribLocation(l,"aVertType"),l.aTransform=n.getAttribLocation(l,"aTransform"),l.aAtlasId=n.getAttribLocation(l,"aAtlasId"),l.aTex=n.getAttribLocation(l,"aTex"),l.aPointAPointB=n.getAttribLocation(l,"aPointAPointB"),l.aPointCPointD=n.getAttribLocation(l,"aPointCPointD"),l.aLineWidth=n.getAttribLocation(l,"aLineWidth"),l.aColor=n.getAttribLocation(l,"aColor"),l.aCornerRadius=n.getAttribLocation(l,"aCornerRadius"),l.aBorderColor=n.getAttribLocation(l,"aBorderColor"),l.uPanZoomMatrix=n.getUniformLocation(l,"uPanZoomMatrix"),l.uAtlasSize=n.getUniformLocation(l,"uAtlasSize"),l.uBGColor=n.getUniformLocation(l,"uBGColor"),l.uZoom=n.getUniformLocation(l,"uZoom"),l.uTextures=[];for(var u=0;u1&&arguments[1]!==void 0?arguments[1]:$b.SCREEN;this.panZoomMatrix=r,this.renderTarget=n,this.batchDebugInfo=[],this.wrappedCount=0,this.simpleCount=0,this.startBatch()},"startFrame")},{key:"startBatch",value:o(function(){this.instanceCount=0,this.batchManager.startBatch()},"startBatch")},{key:"endFrame",value:o(function(){this.endBatch()},"endFrame")},{key:"_isVisible",value:o(function(r,n){return r.visible()?n&&n.isVisible?n.isVisible(r):!0:!1},"_isVisible")},{key:"drawTexture",value:o(function(r,n,i){var a=this.atlasManager,s=this.batchManager,l=a.getRenderTypeOpts(i);if(this._isVisible(r,l)&&!(r.isEdge()&&!this._isValidEdge(r))){if(this.renderTarget.picking&&l.getTexPickingMode){var u=l.getTexPickingMode(r);if(u===nC.IGNORE)return;if(u==nC.USE_BB){this.drawPickingRectangle(r,n,i);return}}var h=a.getAtlasInfo(r,i),f=xo(h),d;try{for(f.s();!(d=f.n()).done;){var p=d.value,m=p.atlas,g=p.tex1,y=p.tex2;s.canAddToCurrentBatch(m)||this.endBatch();for(var v=s.getAtlasIndexForBatch(m),x=0,b=[[g,!0],[y,!1]];x=this.maxInstances&&this.endBatch()}}}}catch(N){f.e(N)}finally{f.f()}}},"drawTexture")},{key:"setTransformMatrix",value:o(function(r,n,i,a){var s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,l=0;if(i.shapeProps&&i.shapeProps.padding&&(l=r.pstyle(i.shapeProps.padding).pfValue),a){var u=a.bb,h=a.tex1,f=a.tex2,d=h.w/(h.w+f.w);s||(d=1-d);var p=this._getAdjustedBB(u,l,s,d);this._applyTransformMatrix(n,p,i,r)}else{var m=i.getBoundingBox(r),g=this._getAdjustedBB(m,l,!0,1);this._applyTransformMatrix(n,g,i,r)}},"setTransformMatrix")},{key:"_applyTransformMatrix",value:o(function(r,n,i,a){var s,l;E0e(r);var u=i.getRotation?i.getRotation(a):0;if(u!==0){var h=i.getRotationPoint(a),f=h.x,d=h.y;US(r,r,[f,d]),S0e(r,r,u);var p=i.getRotationOffset(a);s=p.x+(n.xOffset||0),l=p.y+(n.yOffset||0)}else s=n.x1,l=n.y1;US(r,r,[s,l]),KP(r,r,[n.w,n.h])},"_applyTransformMatrix")},{key:"_getAdjustedBB",value:o(function(r,n,i,a){var s=r.x1,l=r.y1,u=r.w,h=r.h,f=r.yOffset;n&&(s-=n,l-=n,u+=2*n,h+=2*n);var d=0,p=u*a;return i&&a<1?u=p:!i&&a<1&&(d=u-p,s+=d,u=p),{x1:s,y1:l,w:u,h,xOffset:d,yOffset:f}},"_getAdjustedBB")},{key:"drawPickingRectangle",value:o(function(r,n,i){var a=this.atlasManager.getRenderTypeOpts(i),s=this.instanceCount;this.vertTypeBuffer.getView(s)[0]=U1;var l=this.indexBuffer.getView(s);q1(n,l);var u=this.colorBuffer.getView(s);M0([0,0,0],1,u);var h=this.transformBuffer.getMatrixView(s);this.setTransformMatrix(r,h,a),this.simpleCount++,this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()},"drawPickingRectangle")},{key:"drawNode",value:o(function(r,n,i){var a=this.simpleShapeOptions.get(i);if(this._isVisible(r,a)){var s=a.shapeProps,l=this._getVertTypeForShape(r,s.shape);if(l===void 0||a.isSimple&&!a.isSimple(r)){this.drawTexture(r,n,i);return}var u=this.instanceCount;if(this.vertTypeBuffer.getView(u)[0]=l,l===MS||l===Nb){var h=a.getBoundingBox(r),f=this._getCornerRadius(r,s.radius,h),d=this.cornerRadiusBuffer.getView(u);d[0]=f,d[1]=f,d[2]=f,d[3]=f,l===Nb&&(d[0]=0,d[2]=0)}var p=this.indexBuffer.getView(u);q1(n,p);var m=r.pstyle(s.color).value,g=r.pstyle(s.opacity).value,y=this.colorBuffer.getView(u);M0(m,g,y);var v=this.lineWidthBuffer.getView(u);if(v[0]=0,v[1]=0,s.border){var x=r.pstyle("border-width").value;if(x>0){var b=r.pstyle("border-color").value,T=r.pstyle("border-opacity").value,E=this.borderColorBuffer.getView(u);M0(b,T,E);var w=r.pstyle("border-position").value;if(w==="inside")v[0]=0,v[1]=-x;else if(w==="outside")v[0]=x,v[1]=0;else{var k=x/2;v[0]=k,v[1]=-k}}}var S=this.transformBuffer.getMatrixView(u);this.setTransformMatrix(r,S,a),this.simpleCount++,this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}},"drawNode")},{key:"_getVertTypeForShape",value:o(function(r,n){var i=r.pstyle(n).value;switch(i){case"rectangle":return U1;case"ellipse":return Mb;case"roundrectangle":case"round-rectangle":return MS;case"bottom-round-rectangle":return Nb;default:return}},"_getVertTypeForShape")},{key:"_getCornerRadius",value:o(function(r,n,i){var a=i.w,s=i.h;if(r.pstyle(n).value==="auto")return Td(a,s);var l=r.pstyle(n).pfValue,u=a/2,h=s/2;return Math.min(l,h,u)},"_getCornerRadius")},{key:"drawEdgeArrow",value:o(function(r,n,i){if(r.visible()){var a=r._private.rscratch,s,l,u;if(i==="source"?(s=a.arrowStartX,l=a.arrowStartY,u=a.srcArrowAngle):(s=a.arrowEndX,l=a.arrowEndY,u=a.tgtArrowAngle),!(isNaN(s)||s==null||isNaN(l)||l==null||isNaN(u)||u==null)){var h=r.pstyle(i+"-arrow-shape").value;if(h!=="none"){var f=r.pstyle(i+"-arrow-color").value,d=r.pstyle("opacity").value,p=r.pstyle("line-opacity").value,m=d*p,g=r.pstyle("width").pfValue,y=r.pstyle("arrow-scale").value,v=this.r.getArrowWidth(g,y),x=this.instanceCount,b=this.transformBuffer.getMatrixView(x);E0e(b),US(b,b,[s,l]),KP(b,b,[v,v]),S0e(b,b,u),this.vertTypeBuffer.getView(x)[0]=RP;var T=this.indexBuffer.getView(x);q1(n,T);var E=this.colorBuffer.getView(x);M0(f,m,E),this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}}}},"drawEdgeArrow")},{key:"drawEdgeLine",value:o(function(r,n){if(r.visible()){var i=this._getEdgePoints(r);if(i){var a=r.pstyle("opacity").value,s=r.pstyle("line-opacity").value,l=r.pstyle("width").pfValue,u=r.pstyle("line-color").value,h=a*s;if(i.length/2+this.instanceCount>this.maxInstances&&this.endBatch(),i.length==4){var f=this.instanceCount;this.vertTypeBuffer.getView(f)[0]=C0e;var d=this.indexBuffer.getView(f);q1(n,d);var p=this.colorBuffer.getView(f);M0(u,h,p);var m=this.lineWidthBuffer.getView(f);m[0]=l;var g=this.pointAPointBBuffer.getView(f);g[0]=i[0],g[1]=i[1],g[2]=i[2],g[3]=i[3],this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}else for(var y=0;y=this.maxInstances&&this.endBatch()}}}},"drawEdgeLine")},{key:"_isValidEdge",value:o(function(r){var n=r._private.rscratch;return!(n.badLine||n.allpts==null||isNaN(n.allpts[0]))},"_isValidEdge")},{key:"_getEdgePoints",value:o(function(r){var n=r._private.rscratch;if(this._isValidEdge(r)){var i=n.allpts;if(i.length==4)return i;var a=this._getNumSegments(r);return this._getCurveSegmentPoints(i,a)}},"_getEdgePoints")},{key:"_getNumSegments",value:o(function(r){var n=15;return Math.min(Math.max(n,5),this.maxInstances)},"_getNumSegments")},{key:"_getCurveSegmentPoints",value:o(function(r,n){if(r.length==4)return r;for(var i=Array((n+1)*2),a=0;a<=n;a++)if(a==0)i[0]=r[0],i[1]=r[1];else if(a==n)i[a*2]=r[r.length-2],i[a*2+1]=r[r.length-1];else{var s=a/n;this._setCurvePoint(r,s,i,a*2)}return i},"_getCurveSegmentPoints")},{key:"_setCurvePoint",value:o(function(r,n,i,a){if(r.length<=2)i[a]=r[0],i[a+1]=r[1];else{for(var s=Array(r.length-2),l=0;l0}},"isLayerVisible"),l=o(function(d){var p=d.pstyle("text-events").strValue==="yes";return p?nC.USE_BB:nC.IGNORE},"getTexPickingMode"),u=o(function(d){var p=d.position(),m=p.x,g=p.y,y=d.outerWidth(),v=d.outerHeight();return{w:y,h:v,x1:m-y/2,y1:g-v/2}},"getBBForSimpleShape");r.drawing.addAtlasCollection("node",{texRows:t.webglTexRowsNodes}),r.drawing.addAtlasCollection("label",{texRows:t.webglTexRows}),r.drawing.addTextureAtlasRenderType("node-body",{collection:"node",getKey:e.getStyleKey,getBoundingBox:e.getElementBox,drawElement:e.drawElement}),r.drawing.addSimpleShapeRenderType("node-body",{getBoundingBox:u,isSimple:eet,shapeProps:{shape:"shape",color:"background-color",opacity:"background-opacity",radius:"corner-radius",border:!0}}),r.drawing.addSimpleShapeRenderType("node-overlay",{getBoundingBox:u,isVisible:s("overlay"),shapeProps:{shape:"overlay-shape",color:"overlay-color",opacity:"overlay-opacity",padding:"overlay-padding",radius:"overlay-corner-radius"}}),r.drawing.addSimpleShapeRenderType("node-underlay",{getBoundingBox:u,isVisible:s("underlay"),shapeProps:{shape:"underlay-shape",color:"underlay-color",opacity:"underlay-opacity",padding:"underlay-padding",radius:"underlay-corner-radius"}}),r.drawing.addTextureAtlasRenderType("label",{collection:"label",getTexPickingMode:l,getKey:LP(e.getLabelKey,null),getBoundingBox:NP(e.getLabelBox,null),drawClipped:!0,drawElement:e.drawLabel,getRotation:i(null),getRotationPoint:e.getLabelRotationPoint,getRotationOffset:e.getLabelRotationOffset,isVisible:a("label")}),r.drawing.addTextureAtlasRenderType("edge-source-label",{collection:"label",getTexPickingMode:l,getKey:LP(e.getSourceLabelKey,"source"),getBoundingBox:NP(e.getSourceLabelBox,"source"),drawClipped:!0,drawElement:e.drawSourceLabel,getRotation:i("source"),getRotationPoint:e.getSourceLabelRotationPoint,getRotationOffset:e.getSourceLabelRotationOffset,isVisible:a("source-label")}),r.drawing.addTextureAtlasRenderType("edge-target-label",{collection:"label",getTexPickingMode:l,getKey:LP(e.getTargetLabelKey,"target"),getBoundingBox:NP(e.getTargetLabelBox,"target"),drawClipped:!0,drawElement:e.drawTargetLabel,getRotation:i("target"),getRotationPoint:e.getTargetLabelRotationPoint,getRotationOffset:e.getTargetLabelRotationOffset,isVisible:a("target-label")});var h=tT(function(){console.log("garbage collect flag set"),r.data.gc=!0},1e4);r.onUpdateEleCalcs(function(f,d){var p=!1;d&&d.length>0&&(p|=r.drawing.invalidate(d)),p&&h()}),wet(r)};o(Tet,"getBGColor");o(hge,"getLabelLines");LP=o(function(e,r){return function(n){var i=e(n),a=hge(n,r);return a.length>1?a.map(function(s,l){return"".concat(i,"_").concat(l)}):i}},"getStyleKeysForLabel"),NP=o(function(e,r){return function(n,i){var a=e(n);if(typeof i=="string"){var s=i.indexOf("_");if(s>0){var l=Number(i.substring(s+1)),u=hge(n,r),h=a.h/u.length,f=h*l,d=a.y1+f;return{x1:a.x1,w:a.w,y1:d,h,yOffset:f}}}return a}},"getBoundingBoxForLabel");o(wet,"overrideCanvasRendererFunctions");o(ket,"clearWebgl");o(Eet,"clearCanvas");o(Cet,"createPanZoomMatrix");o(fge,"setContextTransform");o(Aet,"drawSelectionRectangle");o(_et,"drawAxes");o(Det,"drawAtlases");o(Ret,"getPickingIndexes");o(Let,"findNearestElementsWebgl");o(MP,"drawEle");o(dge,"renderWebgl");Dd={};Dd.drawPolygonPath=function(t,e,r,n,i,a){var s=n/2,l=i/2;t.beginPath&&t.beginPath(),t.moveTo(e+s*a[0],r+l*a[1]);for(var u=1;u0&&s>0){m.clearRect(0,0,a,s),m.globalCompositeOperation="source-over";var g=this.getCachedZSortedEles();if(t.full)m.translate(-n.x1*h,-n.y1*h),m.scale(h,h),this.drawElements(m,g),m.scale(1/h,1/h),m.translate(n.x1*h,n.y1*h);else{var y=e.pan(),v={x:y.x*h,y:y.y*h};h*=e.zoom(),m.translate(v.x,v.y),m.scale(h,h),this.drawElements(m,g),m.scale(1/h,1/h),m.translate(-v.x,-v.y)}t.bg&&(m.globalCompositeOperation="destination-over",m.fillStyle=t.bg,m.rect(0,0,a,s),m.fill())}return p};o(Net,"b64ToBlob");o(R0e,"b64UriToB64");o(mge,"output");oT.png=function(t){return mge(t,this.bufferCanvasImage(t),"image/png")};oT.jpg=function(t){return mge(t,this.bufferCanvasImage(t),"image/jpeg")};gge={};gge.nodeShapeImpl=function(t,e,r,n,i,a,s,l){switch(t){case"ellipse":return this.drawEllipsePath(e,r,n,i,a);case"polygon":return this.drawPolygonPath(e,r,n,i,a,s);case"round-polygon":return this.drawRoundPolygonPath(e,r,n,i,a,s,l);case"roundrectangle":case"round-rectangle":return this.drawRoundRectanglePath(e,r,n,i,a,l);case"cutrectangle":case"cut-rectangle":return this.drawCutRectanglePath(e,r,n,i,a,s,l);case"bottomroundrectangle":case"bottom-round-rectangle":return this.drawBottomRoundRectanglePath(e,r,n,i,a,l);case"barrel":return this.drawBarrelPath(e,r,n,i,a)}};Met=yge,Wr=yge.prototype;Wr.CANVAS_LAYERS=3;Wr.SELECT_BOX=0;Wr.DRAG=1;Wr.NODE=2;Wr.WEBGL=3;Wr.CANVAS_TYPES=["2d","2d","2d","webgl2"];Wr.BUFFER_COUNT=3;Wr.TEXTURE_BUFFER=0;Wr.MOTIONBLUR_BUFFER_NODE=1;Wr.MOTIONBLUR_BUFFER_DRAG=2;o(yge,"CanvasRenderer");Wr.redrawHint=function(t,e){var r=this;switch(t){case"eles":r.data.canvasNeedsRedraw[Wr.NODE]=e;break;case"drag":r.data.canvasNeedsRedraw[Wr.DRAG]=e;break;case"select":r.data.canvasNeedsRedraw[Wr.SELECT_BOX]=e;break;case"gc":r.data.gc=!0;break}};Iet=typeof Path2D<"u";Wr.path2dEnabled=function(t){if(t===void 0)return this.pathsEnabled;this.pathsEnabled=!!t};Wr.usePaths=function(){return Iet&&this.pathsEnabled};Wr.setImgSmoothing=function(t,e){t.imageSmoothingEnabled!=null?t.imageSmoothingEnabled=e:(t.webkitImageSmoothingEnabled=e,t.mozImageSmoothingEnabled=e,t.msImageSmoothingEnabled=e)};Wr.getImgSmoothing=function(t){return t.imageSmoothingEnabled!=null?t.imageSmoothingEnabled:t.webkitImageSmoothingEnabled||t.mozImageSmoothingEnabled||t.msImageSmoothingEnabled};Wr.makeOffscreenCanvas=function(t,e){var r;if((typeof OffscreenCanvas>"u"?"undefined":aa(OffscreenCanvas))!=="undefined")r=new OffscreenCanvas(t,e);else{var n=this.cy.window(),i=n.document;r=i.createElement("canvas"),r.width=t,r.height=e}return r};[age,Du,$h,kB,H0,_d,Is,uge,Dd,oT,gge].forEach(function(t){pr(Wr,t)});Oet=[{name:"null",impl:Wme},{name:"base",impl:tge},{name:"canvas",impl:Met}],Pet=[{type:"layout",extensions:aJe},{type:"renderer",extensions:Oet}],vge={},xge={};o(bge,"setExtension");o(Tge,"getExtension");o(Bet,"setModule");o(Fet,"getModule");JP=o(function(){if(arguments.length===2)return Tge.apply(null,arguments);if(arguments.length===3)return bge.apply(null,arguments);if(arguments.length===4)return Fet.apply(null,arguments);if(arguments.length===5)return Bet.apply(null,arguments);ui("Invalid extension access syntax")},"extension");jb.prototype.extension=JP;Pet.forEach(function(t){t.extensions.forEach(function(e){bge(t.type,e.name,e.impl)})});iC=o(function(){if(!(this instanceof iC))return new iC;this.length=0},"Stylesheet"),U0=iC.prototype;U0.instanceString=function(){return"stylesheet"};U0.selector=function(t){var e=this.length++;return this[e]={selector:t,properties:[]},this};U0.css=function(t,e){var r=this.length-1;if(or(t))this[r].properties.push({name:t,value:e});else if(sn(t))for(var n=t,i=Object.keys(n),a=0;a{"use strict";o((function(e,r){typeof lT=="object"&&typeof CB=="object"?CB.exports=r():typeof define=="function"&&define.amd?define([],r):typeof lT=="object"?lT.layoutBase=r():e.layoutBase=r()}),"webpackUniversalModuleDefinition")(lT,function(){return(function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return o(r,"__webpack_require__"),r.m=t,r.c=e,r.i=function(n){return n},r.d=function(n,i,a){r.o(n,i)||Object.defineProperty(n,i,{configurable:!1,enumerable:!0,get:a})},r.n=function(n){var i=n&&n.__esModule?o(function(){return n.default},"getDefault"):o(function(){return n},"getModuleExports");return r.d(i,"a",i),i},r.o=function(n,i){return Object.prototype.hasOwnProperty.call(n,i)},r.p="",r(r.s=26)})([(function(t,e,r){"use strict";function n(){}o(n,"LayoutConstants"),n.QUALITY=1,n.DEFAULT_CREATE_BENDS_AS_NEEDED=!1,n.DEFAULT_INCREMENTAL=!1,n.DEFAULT_ANIMATION_ON_LAYOUT=!0,n.DEFAULT_ANIMATION_DURING_LAYOUT=!1,n.DEFAULT_ANIMATION_PERIOD=50,n.DEFAULT_UNIFORM_LEAF_NODE_SIZES=!1,n.DEFAULT_GRAPH_MARGIN=15,n.NODE_DIMENSIONS_INCLUDE_LABELS=!1,n.SIMPLE_NODE_SIZE=40,n.SIMPLE_NODE_HALF_SIZE=n.SIMPLE_NODE_SIZE/2,n.EMPTY_COMPOUND_NODE_SIZE=40,n.MIN_EDGE_LENGTH=1,n.WORLD_BOUNDARY=1e6,n.INITIAL_WORLD_BOUNDARY=n.WORLD_BOUNDARY/1e3,n.WORLD_CENTER_X=1200,n.WORLD_CENTER_Y=900,t.exports=n}),(function(t,e,r){"use strict";var n=r(2),i=r(8),a=r(9);function s(u,h,f){n.call(this,f),this.isOverlapingSourceAndTarget=!1,this.vGraphObject=f,this.bendpoints=[],this.source=u,this.target=h}o(s,"LEdge"),s.prototype=Object.create(n.prototype);for(var l in n)s[l]=n[l];s.prototype.getSource=function(){return this.source},s.prototype.getTarget=function(){return this.target},s.prototype.isInterGraph=function(){return this.isInterGraph},s.prototype.getLength=function(){return this.length},s.prototype.isOverlapingSourceAndTarget=function(){return this.isOverlapingSourceAndTarget},s.prototype.getBendpoints=function(){return this.bendpoints},s.prototype.getLca=function(){return this.lca},s.prototype.getSourceInLca=function(){return this.sourceInLca},s.prototype.getTargetInLca=function(){return this.targetInLca},s.prototype.getOtherEnd=function(u){if(this.source===u)return this.target;if(this.target===u)return this.source;throw"Node is not incident with this edge"},s.prototype.getOtherEndInGraph=function(u,h){for(var f=this.getOtherEnd(u),d=h.getGraphManager().getRoot();;){if(f.getOwner()==h)return f;if(f.getOwner()==d)break;f=f.getOwner().getParent()}return null},s.prototype.updateLength=function(){var u=new Array(4);this.isOverlapingSourceAndTarget=i.getIntersection(this.target.getRect(),this.source.getRect(),u),this.isOverlapingSourceAndTarget||(this.lengthX=u[0]-u[2],this.lengthY=u[1]-u[3],Math.abs(this.lengthX)<1&&(this.lengthX=a.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=a.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY))},s.prototype.updateLengthSimple=function(){this.lengthX=this.target.getCenterX()-this.source.getCenterX(),this.lengthY=this.target.getCenterY()-this.source.getCenterY(),Math.abs(this.lengthX)<1&&(this.lengthX=a.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=a.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY)},t.exports=s}),(function(t,e,r){"use strict";function n(i){this.vGraphObject=i}o(n,"LGraphObject"),t.exports=n}),(function(t,e,r){"use strict";var n=r(2),i=r(10),a=r(13),s=r(0),l=r(16),u=r(4);function h(d,p,m,g){m==null&&g==null&&(g=p),n.call(this,g),d.graphManager!=null&&(d=d.graphManager),this.estimatedSize=i.MIN_VALUE,this.inclusionTreeDepth=i.MAX_VALUE,this.vGraphObject=g,this.edges=[],this.graphManager=d,m!=null&&p!=null?this.rect=new a(p.x,p.y,m.width,m.height):this.rect=new a}o(h,"LNode"),h.prototype=Object.create(n.prototype);for(var f in n)h[f]=n[f];h.prototype.getEdges=function(){return this.edges},h.prototype.getChild=function(){return this.child},h.prototype.getOwner=function(){return this.owner},h.prototype.getWidth=function(){return this.rect.width},h.prototype.setWidth=function(d){this.rect.width=d},h.prototype.getHeight=function(){return this.rect.height},h.prototype.setHeight=function(d){this.rect.height=d},h.prototype.getCenterX=function(){return this.rect.x+this.rect.width/2},h.prototype.getCenterY=function(){return this.rect.y+this.rect.height/2},h.prototype.getCenter=function(){return new u(this.rect.x+this.rect.width/2,this.rect.y+this.rect.height/2)},h.prototype.getLocation=function(){return new u(this.rect.x,this.rect.y)},h.prototype.getRect=function(){return this.rect},h.prototype.getDiagonal=function(){return Math.sqrt(this.rect.width*this.rect.width+this.rect.height*this.rect.height)},h.prototype.getHalfTheDiagonal=function(){return Math.sqrt(this.rect.height*this.rect.height+this.rect.width*this.rect.width)/2},h.prototype.setRect=function(d,p){this.rect.x=d.x,this.rect.y=d.y,this.rect.width=p.width,this.rect.height=p.height},h.prototype.setCenter=function(d,p){this.rect.x=d-this.rect.width/2,this.rect.y=p-this.rect.height/2},h.prototype.setLocation=function(d,p){this.rect.x=d,this.rect.y=p},h.prototype.moveBy=function(d,p){this.rect.x+=d,this.rect.y+=p},h.prototype.getEdgeListToNode=function(d){var p=[],m,g=this;return g.edges.forEach(function(y){if(y.target==d){if(y.source!=g)throw"Incorrect edge source!";p.push(y)}}),p},h.prototype.getEdgesBetween=function(d){var p=[],m,g=this;return g.edges.forEach(function(y){if(!(y.source==g||y.target==g))throw"Incorrect edge source and/or target";(y.target==d||y.source==d)&&p.push(y)}),p},h.prototype.getNeighborsList=function(){var d=new Set,p=this;return p.edges.forEach(function(m){if(m.source==p)d.add(m.target);else{if(m.target!=p)throw"Incorrect incidency!";d.add(m.source)}}),d},h.prototype.withChildren=function(){var d=new Set,p,m;if(d.add(this),this.child!=null)for(var g=this.child.getNodes(),y=0;yp&&(this.rect.x-=(this.labelWidth-p)/2,this.setWidth(this.labelWidth)),this.labelHeight>m&&(this.labelPos=="center"?this.rect.y-=(this.labelHeight-m)/2:this.labelPos=="top"&&(this.rect.y-=this.labelHeight-m),this.setHeight(this.labelHeight))}}},h.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==i.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},h.prototype.transform=function(d){var p=this.rect.x;p>s.WORLD_BOUNDARY?p=s.WORLD_BOUNDARY:p<-s.WORLD_BOUNDARY&&(p=-s.WORLD_BOUNDARY);var m=this.rect.y;m>s.WORLD_BOUNDARY?m=s.WORLD_BOUNDARY:m<-s.WORLD_BOUNDARY&&(m=-s.WORLD_BOUNDARY);var g=new u(p,m),y=d.inverseTransformPoint(g);this.setLocation(y.x,y.y)},h.prototype.getLeft=function(){return this.rect.x},h.prototype.getRight=function(){return this.rect.x+this.rect.width},h.prototype.getTop=function(){return this.rect.y},h.prototype.getBottom=function(){return this.rect.y+this.rect.height},h.prototype.getParent=function(){return this.owner==null?null:this.owner.getParent()},t.exports=h}),(function(t,e,r){"use strict";function n(i,a){i==null&&a==null?(this.x=0,this.y=0):(this.x=i,this.y=a)}o(n,"PointD"),n.prototype.getX=function(){return this.x},n.prototype.getY=function(){return this.y},n.prototype.setX=function(i){this.x=i},n.prototype.setY=function(i){this.y=i},n.prototype.getDifference=function(i){return new DimensionD(this.x-i.x,this.y-i.y)},n.prototype.getCopy=function(){return new n(this.x,this.y)},n.prototype.translate=function(i){return this.x+=i.width,this.y+=i.height,this},t.exports=n}),(function(t,e,r){"use strict";var n=r(2),i=r(10),a=r(0),s=r(6),l=r(3),u=r(1),h=r(13),f=r(12),d=r(11);function p(g,y,v){n.call(this,v),this.estimatedSize=i.MIN_VALUE,this.margin=a.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=g,y!=null&&y instanceof s?this.graphManager=y:y!=null&&y instanceof Layout&&(this.graphManager=y.graphManager)}o(p,"LGraph"),p.prototype=Object.create(n.prototype);for(var m in n)p[m]=n[m];p.prototype.getNodes=function(){return this.nodes},p.prototype.getEdges=function(){return this.edges},p.prototype.getGraphManager=function(){return this.graphManager},p.prototype.getParent=function(){return this.parent},p.prototype.getLeft=function(){return this.left},p.prototype.getRight=function(){return this.right},p.prototype.getTop=function(){return this.top},p.prototype.getBottom=function(){return this.bottom},p.prototype.isConnected=function(){return this.isConnected},p.prototype.add=function(g,y,v){if(y==null&&v==null){var x=g;if(this.graphManager==null)throw"Graph has no graph mgr!";if(this.getNodes().indexOf(x)>-1)throw"Node already in graph!";return x.owner=this,this.getNodes().push(x),x}else{var b=g;if(!(this.getNodes().indexOf(y)>-1&&this.getNodes().indexOf(v)>-1))throw"Source or target not in graph!";if(!(y.owner==v.owner&&y.owner==this))throw"Both owners must be this graph!";return y.owner!=v.owner?null:(b.source=y,b.target=v,b.isInterGraph=!1,this.getEdges().push(b),y.edges.push(b),v!=y&&v.edges.push(b),b)}},p.prototype.remove=function(g){var y=g;if(g instanceof l){if(y==null)throw"Node is null!";if(!(y.owner!=null&&y.owner==this))throw"Owner graph is invalid!";if(this.graphManager==null)throw"Owner graph manager is invalid!";for(var v=y.edges.slice(),x,b=v.length,T=0;T-1&&k>-1))throw"Source and/or target doesn't know this edge!";x.source.edges.splice(w,1),x.target!=x.source&&x.target.edges.splice(k,1);var E=x.source.owner.getEdges().indexOf(x);if(E==-1)throw"Not in owner's edge list!";x.source.owner.getEdges().splice(E,1)}},p.prototype.updateLeftTop=function(){for(var g=i.MAX_VALUE,y=i.MAX_VALUE,v,x,b,T=this.getNodes(),E=T.length,w=0;wv&&(g=v),y>x&&(y=x)}return g==i.MAX_VALUE?null:(T[0].getParent().paddingLeft!=null?b=T[0].getParent().paddingLeft:b=this.margin,this.left=y-b,this.top=g-b,new f(this.left,this.top))},p.prototype.updateBounds=function(g){for(var y=i.MAX_VALUE,v=-i.MAX_VALUE,x=i.MAX_VALUE,b=-i.MAX_VALUE,T,E,w,k,S,A=this.nodes,L=A.length,I=0;IT&&(y=T),vw&&(x=w),bT&&(y=T),vw&&(x=w),b=this.nodes.length){var L=0;v.forEach(function(I){I.owner==g&&L++}),L==this.nodes.length&&(this.isConnected=!0)}},t.exports=p}),(function(t,e,r){"use strict";var n,i=r(1);function a(s){n=r(5),this.layout=s,this.graphs=[],this.edges=[]}o(a,"LGraphManager"),a.prototype.addRoot=function(){var s=this.layout.newGraph(),l=this.layout.newNode(null),u=this.add(s,l);return this.setRootGraph(u),this.rootGraph},a.prototype.add=function(s,l,u,h,f){if(u==null&&h==null&&f==null){if(s==null)throw"Graph is null!";if(l==null)throw"Parent node is null!";if(this.graphs.indexOf(s)>-1)throw"Graph already in this graph mgr!";if(this.graphs.push(s),s.parent!=null)throw"Already has a parent!";if(l.child!=null)throw"Already has a child!";return s.parent=l,l.child=s,s}else{f=u,h=l,u=s;var d=h.getOwner(),p=f.getOwner();if(!(d!=null&&d.getGraphManager()==this))throw"Source not in this graph mgr!";if(!(p!=null&&p.getGraphManager()==this))throw"Target not in this graph mgr!";if(d==p)return u.isInterGraph=!1,d.add(u,h,f);if(u.isInterGraph=!0,u.source=h,u.target=f,this.edges.indexOf(u)>-1)throw"Edge already in inter-graph edge list!";if(this.edges.push(u),!(u.source!=null&&u.target!=null))throw"Edge source and/or target is null!";if(!(u.source.edges.indexOf(u)==-1&&u.target.edges.indexOf(u)==-1))throw"Edge already in source and/or target incidency list!";return u.source.edges.push(u),u.target.edges.push(u),u}},a.prototype.remove=function(s){if(s instanceof n){var l=s;if(l.getGraphManager()!=this)throw"Graph not in this graph mgr";if(!(l==this.rootGraph||l.parent!=null&&l.parent.graphManager==this))throw"Invalid parent node!";var u=[];u=u.concat(l.getEdges());for(var h,f=u.length,d=0;d=s.getRight()?l[0]+=Math.min(s.getX()-a.getX(),a.getRight()-s.getRight()):s.getX()<=a.getX()&&s.getRight()>=a.getRight()&&(l[0]+=Math.min(a.getX()-s.getX(),s.getRight()-a.getRight())),a.getY()<=s.getY()&&a.getBottom()>=s.getBottom()?l[1]+=Math.min(s.getY()-a.getY(),a.getBottom()-s.getBottom()):s.getY()<=a.getY()&&s.getBottom()>=a.getBottom()&&(l[1]+=Math.min(a.getY()-s.getY(),s.getBottom()-a.getBottom()));var f=Math.abs((s.getCenterY()-a.getCenterY())/(s.getCenterX()-a.getCenterX()));s.getCenterY()===a.getCenterY()&&s.getCenterX()===a.getCenterX()&&(f=1);var d=f*l[0],p=l[1]/f;l[0]d)return l[0]=u,l[1]=m,l[2]=f,l[3]=A,!1;if(hf)return l[0]=p,l[1]=h,l[2]=k,l[3]=d,!1;if(uf?(l[0]=y,l[1]=v,C=!0):(l[0]=g,l[1]=m,C=!0):D===R&&(u>f?(l[0]=p,l[1]=m,C=!0):(l[0]=x,l[1]=v,C=!0)),-M===R?f>u?(l[2]=S,l[3]=A,_=!0):(l[2]=k,l[3]=w,_=!0):M===R&&(f>u?(l[2]=E,l[3]=w,_=!0):(l[2]=L,l[3]=A,_=!0)),C&&_)return!1;if(u>f?h>d?(P=this.getCardinalDirection(D,R,4),B=this.getCardinalDirection(M,R,2)):(P=this.getCardinalDirection(-D,R,3),B=this.getCardinalDirection(-M,R,1)):h>d?(P=this.getCardinalDirection(-D,R,1),B=this.getCardinalDirection(-M,R,3)):(P=this.getCardinalDirection(D,R,2),B=this.getCardinalDirection(M,R,4)),!C)switch(P){case 1:G=m,F=u+-T/R,l[0]=F,l[1]=G;break;case 2:F=x,G=h+b*R,l[0]=F,l[1]=G;break;case 3:G=v,F=u+T/R,l[0]=F,l[1]=G;break;case 4:F=y,G=h+-b*R,l[0]=F,l[1]=G;break}if(!_)switch(B){case 1:V=w,$=f+-N/R,l[2]=$,l[3]=V;break;case 2:$=L,V=d+I*R,l[2]=$,l[3]=V;break;case 3:V=A,$=f+N/R,l[2]=$,l[3]=V;break;case 4:$=S,V=d+-I*R,l[2]=$,l[3]=V;break}}return!1},i.getCardinalDirection=function(a,s,l){return a>s?l:1+l%4},i.getIntersection=function(a,s,l,u){if(u==null)return this.getIntersection2(a,s,l);var h=a.x,f=a.y,d=s.x,p=s.y,m=l.x,g=l.y,y=u.x,v=u.y,x=void 0,b=void 0,T=void 0,E=void 0,w=void 0,k=void 0,S=void 0,A=void 0,L=void 0;return T=p-f,w=h-d,S=d*f-h*p,E=v-g,k=m-y,A=y*g-m*v,L=T*k-E*w,L===0?null:(x=(w*A-k*S)/L,b=(E*S-T*A)/L,new n(x,b))},i.angleOfVector=function(a,s,l,u){var h=void 0;return a!==l?(h=Math.atan((u-s)/(l-a)),l0?1:i<0?-1:0},n.floor=function(i){return i<0?Math.ceil(i):Math.floor(i)},n.ceil=function(i){return i<0?Math.floor(i):Math.ceil(i)},t.exports=n}),(function(t,e,r){"use strict";function n(){}o(n,"Integer"),n.MAX_VALUE=2147483647,n.MIN_VALUE=-2147483648,t.exports=n}),(function(t,e,r){"use strict";var n=(function(){function h(f,d){for(var p=0;p"u"?"undefined":n(a);return a==null||s!="object"&&s!="function"},t.exports=i}),(function(t,e,r){"use strict";function n(m){if(Array.isArray(m)){for(var g=0,y=Array(m.length);g0&&g;){for(T.push(w[0]);T.length>0&&g;){var k=T[0];T.splice(0,1),b.add(k);for(var S=k.getEdges(),x=0;x-1&&w.splice(N,1)}b=new Set,E=new Map}}return m},p.prototype.createDummyNodesForBendpoints=function(m){for(var g=[],y=m.source,v=this.graphManager.calcLowestCommonAncestor(m.source,m.target),x=0;x0){for(var v=this.edgeToDummyNodes.get(y),x=0;x=0&&g.splice(A,1);var L=E.getNeighborsList();L.forEach(function(C){if(y.indexOf(C)<0){var _=v.get(C),D=_-1;D==1&&k.push(C),v.set(C,D)}})}y=y.concat(k),(g.length==1||g.length==2)&&(x=!0,b=g[0])}return b},p.prototype.setGraphManager=function(m){this.graphManager=m},t.exports=p}),(function(t,e,r){"use strict";function n(){}o(n,"RandomSeed"),n.seed=1,n.x=0,n.nextDouble=function(){return n.x=Math.sin(n.seed++)*1e4,n.x-Math.floor(n.x)},t.exports=n}),(function(t,e,r){"use strict";var n=r(4);function i(a,s){this.lworldOrgX=0,this.lworldOrgY=0,this.ldeviceOrgX=0,this.ldeviceOrgY=0,this.lworldExtX=1,this.lworldExtY=1,this.ldeviceExtX=1,this.ldeviceExtY=1}o(i,"Transform"),i.prototype.getWorldOrgX=function(){return this.lworldOrgX},i.prototype.setWorldOrgX=function(a){this.lworldOrgX=a},i.prototype.getWorldOrgY=function(){return this.lworldOrgY},i.prototype.setWorldOrgY=function(a){this.lworldOrgY=a},i.prototype.getWorldExtX=function(){return this.lworldExtX},i.prototype.setWorldExtX=function(a){this.lworldExtX=a},i.prototype.getWorldExtY=function(){return this.lworldExtY},i.prototype.setWorldExtY=function(a){this.lworldExtY=a},i.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},i.prototype.setDeviceOrgX=function(a){this.ldeviceOrgX=a},i.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},i.prototype.setDeviceOrgY=function(a){this.ldeviceOrgY=a},i.prototype.getDeviceExtX=function(){return this.ldeviceExtX},i.prototype.setDeviceExtX=function(a){this.ldeviceExtX=a},i.prototype.getDeviceExtY=function(){return this.ldeviceExtY},i.prototype.setDeviceExtY=function(a){this.ldeviceExtY=a},i.prototype.transformX=function(a){var s=0,l=this.lworldExtX;return l!=0&&(s=this.ldeviceOrgX+(a-this.lworldOrgX)*this.ldeviceExtX/l),s},i.prototype.transformY=function(a){var s=0,l=this.lworldExtY;return l!=0&&(s=this.ldeviceOrgY+(a-this.lworldOrgY)*this.ldeviceExtY/l),s},i.prototype.inverseTransformX=function(a){var s=0,l=this.ldeviceExtX;return l!=0&&(s=this.lworldOrgX+(a-this.ldeviceOrgX)*this.lworldExtX/l),s},i.prototype.inverseTransformY=function(a){var s=0,l=this.ldeviceExtY;return l!=0&&(s=this.lworldOrgY+(a-this.ldeviceOrgY)*this.lworldExtY/l),s},i.prototype.inverseTransformPoint=function(a){var s=new n(this.inverseTransformX(a.x),this.inverseTransformY(a.y));return s},t.exports=i}),(function(t,e,r){"use strict";function n(d){if(Array.isArray(d)){for(var p=0,m=Array(d.length);pa.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*a.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(d-a.ADAPTATION_LOWER_NODE_LIMIT)/(a.ADAPTATION_UPPER_NODE_LIMIT-a.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-a.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=a.MAX_NODE_DISPLACEMENT_INCREMENTAL):(d>a.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(a.COOLING_ADAPTATION_FACTOR,1-(d-a.ADAPTATION_LOWER_NODE_LIMIT)/(a.ADAPTATION_UPPER_NODE_LIMIT-a.ADAPTATION_LOWER_NODE_LIMIT)*(1-a.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=a.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(this.getAllNodes().length*5,this.maxIterations),this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},h.prototype.calcSpringForces=function(){for(var d=this.getAllEdges(),p,m=0;m0&&arguments[0]!==void 0?arguments[0]:!0,p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,m,g,y,v,x=this.getAllNodes(),b;if(this.useFRGridVariant)for(this.totalIterations%a.GRID_CALCULATION_CHECK_PERIOD==1&&d&&this.updateGrid(),b=new Set,m=0;mT||b>T)&&(d.gravitationForceX=-this.gravityConstant*y,d.gravitationForceY=-this.gravityConstant*v)):(T=p.getEstimatedSize()*this.compoundGravityRangeFactor,(x>T||b>T)&&(d.gravitationForceX=-this.gravityConstant*y*this.compoundGravityConstant,d.gravitationForceY=-this.gravityConstant*v*this.compoundGravityConstant))},h.prototype.isConverged=function(){var d,p=!1;return this.totalIterations>this.maxIterations/3&&(p=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2),d=this.totalDisplacement=x.length||T>=x[0].length)){for(var E=0;Eh},"_defaultCompareFunction")}]),l})();t.exports=s}),(function(t,e,r){"use strict";var n=(function(){function s(l,u){for(var h=0;h2&&arguments[2]!==void 0?arguments[2]:1,f=arguments.length>3&&arguments[3]!==void 0?arguments[3]:-1,d=arguments.length>4&&arguments[4]!==void 0?arguments[4]:-1;i(this,s),this.sequence1=l,this.sequence2=u,this.match_score=h,this.mismatch_penalty=f,this.gap_penalty=d,this.iMax=l.length+1,this.jMax=u.length+1,this.grid=new Array(this.iMax);for(var p=0;p=0;l--){var u=this.listeners[l];u.event===a&&u.callback===s&&this.listeners.splice(l,1)}},i.emit=function(a,s){for(var l=0;l{"use strict";o((function(e,r){typeof cT=="object"&&typeof _B=="object"?_B.exports=r(AB()):typeof define=="function"&&define.amd?define(["layout-base"],r):typeof cT=="object"?cT.coseBase=r(AB()):e.coseBase=r(e.layoutBase)}),"webpackUniversalModuleDefinition")(cT,function(t){return(function(e){var r={};function n(i){if(r[i])return r[i].exports;var a=r[i]={i,l:!1,exports:{}};return e[i].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return o(n,"__webpack_require__"),n.m=e,n.c=r,n.i=function(i){return i},n.d=function(i,a,s){n.o(i,a)||Object.defineProperty(i,a,{configurable:!1,enumerable:!0,get:s})},n.n=function(i){var a=i&&i.__esModule?o(function(){return i.default},"getDefault"):o(function(){return i},"getModuleExports");return n.d(a,"a",a),a},n.o=function(i,a){return Object.prototype.hasOwnProperty.call(i,a)},n.p="",n(n.s=7)})([(function(e,r){e.exports=t}),(function(e,r,n){"use strict";var i=n(0).FDLayoutConstants;function a(){}o(a,"CoSEConstants");for(var s in i)a[s]=i[s];a.DEFAULT_USE_MULTI_LEVEL_SCALING=!1,a.DEFAULT_RADIAL_SEPARATION=i.DEFAULT_EDGE_LENGTH,a.DEFAULT_COMPONENT_SEPERATION=60,a.TILE=!0,a.TILING_PADDING_VERTICAL=10,a.TILING_PADDING_HORIZONTAL=10,a.TREE_REDUCTION_ON_INCREMENTAL=!1,e.exports=a}),(function(e,r,n){"use strict";var i=n(0).FDLayoutEdge;function a(l,u,h){i.call(this,l,u,h)}o(a,"CoSEEdge"),a.prototype=Object.create(i.prototype);for(var s in i)a[s]=i[s];e.exports=a}),(function(e,r,n){"use strict";var i=n(0).LGraph;function a(l,u,h){i.call(this,l,u,h)}o(a,"CoSEGraph"),a.prototype=Object.create(i.prototype);for(var s in i)a[s]=i[s];e.exports=a}),(function(e,r,n){"use strict";var i=n(0).LGraphManager;function a(l){i.call(this,l)}o(a,"CoSEGraphManager"),a.prototype=Object.create(i.prototype);for(var s in i)a[s]=i[s];e.exports=a}),(function(e,r,n){"use strict";var i=n(0).FDLayoutNode,a=n(0).IMath;function s(u,h,f,d){i.call(this,u,h,f,d)}o(s,"CoSENode"),s.prototype=Object.create(i.prototype);for(var l in i)s[l]=i[l];s.prototype.move=function(){var u=this.graphManager.getLayout();this.displacementX=u.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.noOfChildren,this.displacementY=u.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.noOfChildren,Math.abs(this.displacementX)>u.coolingFactor*u.maxNodeDisplacement&&(this.displacementX=u.coolingFactor*u.maxNodeDisplacement*a.sign(this.displacementX)),Math.abs(this.displacementY)>u.coolingFactor*u.maxNodeDisplacement&&(this.displacementY=u.coolingFactor*u.maxNodeDisplacement*a.sign(this.displacementY)),this.child==null?this.moveBy(this.displacementX,this.displacementY):this.child.getNodes().length==0?this.moveBy(this.displacementX,this.displacementY):this.propogateDisplacementToChildren(this.displacementX,this.displacementY),u.totalDisplacement+=Math.abs(this.displacementX)+Math.abs(this.displacementY),this.springForceX=0,this.springForceY=0,this.repulsionForceX=0,this.repulsionForceY=0,this.gravitationForceX=0,this.gravitationForceY=0,this.displacementX=0,this.displacementY=0},s.prototype.propogateDisplacementToChildren=function(u,h){for(var f=this.getChild().getNodes(),d,p=0;p0)this.positionNodesRadially(w);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var k=new Set(this.getAllNodes()),S=this.nodesWithGravity.filter(function(A){return k.has(A)});this.graphManager.setAllNodesToApplyGravitation(S),this.positionNodesRandomly()}}return this.initSpringEmbedder(),this.runSpringEmbedder(),!0},T.prototype.tick=function(){if(this.totalIterations++,this.totalIterations===this.maxIterations&&!this.isTreeGrowing&&!this.isGrowthFinished)if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;if(this.totalIterations%f.CONVERGENCE_CHECK_PERIOD==0&&!this.isTreeGrowing&&!this.isGrowthFinished){if(this.isConverged())if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;this.coolingCycle++,this.layoutQuality==0?this.coolingAdjuster=this.coolingCycle:this.layoutQuality==1&&(this.coolingAdjuster=this.coolingCycle/3),this.coolingFactor=Math.max(this.initialCoolingFactor-Math.pow(this.coolingCycle,Math.log(100*(this.initialCoolingFactor-this.finalTemperature))/Math.log(this.maxCoolingCycle))/100*this.coolingAdjuster,this.finalTemperature),this.animationPeriod=Math.ceil(this.initialAnimationPeriod*Math.sqrt(this.coolingFactor))}if(this.isTreeGrowing){if(this.growTreeIterations%10==0)if(this.prunedNodesAll.length>0){this.graphManager.updateBounds(),this.updateGrid(),this.growTree(this.prunedNodesAll),this.graphManager.resetAllNodesToApplyGravitation();var w=new Set(this.getAllNodes()),k=this.nodesWithGravity.filter(function(L){return w.has(L)});this.graphManager.setAllNodesToApplyGravitation(k),this.graphManager.updateBounds(),this.updateGrid(),this.coolingFactor=f.DEFAULT_COOLING_FACTOR_INCREMENTAL}else this.isTreeGrowing=!1,this.isGrowthFinished=!0;this.growTreeIterations++}if(this.isGrowthFinished){if(this.isConverged())return!0;this.afterGrowthIterations%10==0&&(this.graphManager.updateBounds(),this.updateGrid()),this.coolingFactor=f.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var S=!this.isTreeGrowing&&!this.isGrowthFinished,A=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(S,A),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},T.prototype.getPositionsData=function(){for(var w=this.graphManager.getAllNodes(),k={},S=0;S1){var C;for(C=0;CA&&(A=Math.floor(N.y)),I=Math.floor(N.x+h.DEFAULT_COMPONENT_SEPERATION)}this.transform(new m(d.WORLD_CENTER_X-N.x/2,d.WORLD_CENTER_Y-N.y/2))},T.radialLayout=function(w,k,S){var A=Math.max(this.maxDiagonalInTree(w),h.DEFAULT_RADIAL_SEPARATION);T.branchRadialLayout(k,null,0,359,0,A);var L=x.calculateBounds(w),I=new b;I.setDeviceOrgX(L.getMinX()),I.setDeviceOrgY(L.getMinY()),I.setWorldOrgX(S.x),I.setWorldOrgY(S.y);for(var N=0;N1;){var X=V[0];V.splice(0,1);var Q=P.indexOf(X);Q>=0&&P.splice(Q,1),G--,B--}k!=null?$=(P.indexOf(V[0])+1)%G:$=0;for(var H=Math.abs(A-S)/B,ie=$;F!=B;ie=++ie%G){var Y=P[ie].getOtherEnd(w);if(Y!=k){var le=(S+F*H)%360,ee=(le+H)%360;T.branchRadialLayout(Y,w,le,ee,L+I,I),F++}}},T.maxDiagonalInTree=function(w){for(var k=y.MIN_VALUE,S=0;Sk&&(k=L)}return k},T.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},T.prototype.groupZeroDegreeMembers=function(){var w=this,k={};this.memberGroups={},this.idToDummyNode={};for(var S=[],A=this.graphManager.getAllNodes(),L=0;L"u"&&(k[C]=[]),k[C]=k[C].concat(I)}Object.keys(k).forEach(function(_){if(k[_].length>1){var D="DummyCompound_"+_;w.memberGroups[D]=k[_];var M=k[_][0].getParent(),R=new l(w.graphManager);R.id=D,R.paddingLeft=M.paddingLeft||0,R.paddingRight=M.paddingRight||0,R.paddingBottom=M.paddingBottom||0,R.paddingTop=M.paddingTop||0,w.idToDummyNode[D]=R;var P=w.getGraphManager().add(w.newGraph(),R),B=M.getChild();B.add(R);for(var F=0;F=0;w--){var k=this.compoundOrder[w],S=k.id,A=k.paddingLeft,L=k.paddingTop;this.adjustLocations(this.tiledMemberPack[S],k.rect.x,k.rect.y,A,L)}},T.prototype.repopulateZeroDegreeMembers=function(){var w=this,k=this.tiledZeroDegreePack;Object.keys(k).forEach(function(S){var A=w.idToDummyNode[S],L=A.paddingLeft,I=A.paddingTop;w.adjustLocations(k[S],A.rect.x,A.rect.y,L,I)})},T.prototype.getToBeTiled=function(w){var k=w.id;if(this.toBeTiled[k]!=null)return this.toBeTiled[k];var S=w.getChild();if(S==null)return this.toBeTiled[k]=!1,!1;for(var A=S.getNodes(),L=0;L0)return this.toBeTiled[k]=!1,!1;if(I.getChild()==null){this.toBeTiled[I.id]=!1;continue}if(!this.getToBeTiled(I))return this.toBeTiled[k]=!1,!1}return this.toBeTiled[k]=!0,!0},T.prototype.getNodeDegree=function(w){for(var k=w.id,S=w.getEdges(),A=0,L=0;L_&&(_=M.rect.height)}S+=_+w.verticalPadding}},T.prototype.tileCompoundMembers=function(w,k){var S=this;this.tiledMemberPack=[],Object.keys(w).forEach(function(A){var L=k[A];S.tiledMemberPack[A]=S.tileNodes(w[A],L.paddingLeft+L.paddingRight),L.rect.width=S.tiledMemberPack[A].width,L.rect.height=S.tiledMemberPack[A].height})},T.prototype.tileNodes=function(w,k){var S=h.TILING_PADDING_VERTICAL,A=h.TILING_PADDING_HORIZONTAL,L={rows:[],rowWidth:[],rowHeight:[],width:0,height:k,verticalPadding:S,horizontalPadding:A};w.sort(function(C,_){return C.rect.width*C.rect.height>_.rect.width*_.rect.height?-1:C.rect.width*C.rect.height<_.rect.width*_.rect.height?1:0});for(var I=0;I0&&(N+=w.horizontalPadding),w.rowWidth[S]=N,w.width0&&(C+=w.verticalPadding);var _=0;C>w.rowHeight[S]&&(_=w.rowHeight[S],w.rowHeight[S]=C,_=w.rowHeight[S]-_),w.height+=_,w.rows[S].push(k)},T.prototype.getShortestRowIndex=function(w){for(var k=-1,S=Number.MAX_VALUE,A=0;AS&&(k=A,S=w.rowWidth[A]);return k},T.prototype.canAddHorizontal=function(w,k,S){var A=this.getShortestRowIndex(w);if(A<0)return!0;var L=w.rowWidth[A];if(L+w.horizontalPadding+k<=w.width)return!0;var I=0;w.rowHeight[A]0&&(I=S+w.verticalPadding-w.rowHeight[A]);var N;w.width-L>=k+w.horizontalPadding?N=(w.height+I)/(L+k+w.horizontalPadding):N=(w.height+I)/w.width,I=S+w.verticalPadding;var C;return w.widthI&&k!=S){A.splice(-1,1),w.rows[S].push(L),w.rowWidth[k]=w.rowWidth[k]-I,w.rowWidth[S]=w.rowWidth[S]+I,w.width=w.rowWidth[instance.getLongestRowIndex(w)];for(var N=Number.MIN_VALUE,C=0;CN&&(N=A[C].height);k>0&&(N+=w.verticalPadding);var _=w.rowHeight[k]+w.rowHeight[S];w.rowHeight[k]=N,w.rowHeight[S]0)for(var B=L;B<=I;B++)P[0]+=this.grid[B][N-1].length+this.grid[B][N].length-1;if(I0)for(var B=N;B<=C;B++)P[3]+=this.grid[L-1][B].length+this.grid[L][B].length-1;for(var F=y.MAX_VALUE,G,$,V=0;V{"use strict";o((function(e,r){typeof uT=="object"&&typeof RB=="object"?RB.exports=r(DB()):typeof define=="function"&&define.amd?define(["cose-base"],r):typeof uT=="object"?uT.cytoscapeCoseBilkent=r(DB()):e.cytoscapeCoseBilkent=r(e.coseBase)}),"webpackUniversalModuleDefinition")(uT,function(t){return(function(e){var r={};function n(i){if(r[i])return r[i].exports;var a=r[i]={i,l:!1,exports:{}};return e[i].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return o(n,"__webpack_require__"),n.m=e,n.c=r,n.i=function(i){return i},n.d=function(i,a,s){n.o(i,a)||Object.defineProperty(i,a,{configurable:!1,enumerable:!0,get:s})},n.n=function(i){var a=i&&i.__esModule?o(function(){return i.default},"getDefault"):o(function(){return i},"getModuleExports");return n.d(a,"a",a),a},n.o=function(i,a){return Object.prototype.hasOwnProperty.call(i,a)},n.p="",n(n.s=1)})([(function(e,r){e.exports=t}),(function(e,r,n){"use strict";var i=n(0).layoutBase.LayoutConstants,a=n(0).layoutBase.FDLayoutConstants,s=n(0).CoSEConstants,l=n(0).CoSELayout,u=n(0).CoSENode,h=n(0).layoutBase.PointD,f=n(0).layoutBase.DimensionD,d={ready:o(function(){},"ready"),stop:o(function(){},"stop"),quality:"default",nodeDimensionsIncludeLabels:!1,refresh:30,fit:!0,padding:10,randomize:!0,nodeRepulsion:4500,idealEdgeLength:50,edgeElasticity:.45,nestingFactor:.1,gravity:.25,numIter:2500,tile:!0,animate:"end",animationDuration:500,tilingPaddingVertical:10,tilingPaddingHorizontal:10,gravityRangeCompound:1.5,gravityCompound:1,gravityRange:3.8,initialEnergyOnIncremental:.5};function p(v,x){var b={};for(var T in v)b[T]=v[T];for(var T in x)b[T]=x[T];return b}o(p,"extend");function m(v){this.options=p(d,v),g(this.options)}o(m,"_CoSELayout");var g=o(function(x){x.nodeRepulsion!=null&&(s.DEFAULT_REPULSION_STRENGTH=a.DEFAULT_REPULSION_STRENGTH=x.nodeRepulsion),x.idealEdgeLength!=null&&(s.DEFAULT_EDGE_LENGTH=a.DEFAULT_EDGE_LENGTH=x.idealEdgeLength),x.edgeElasticity!=null&&(s.DEFAULT_SPRING_STRENGTH=a.DEFAULT_SPRING_STRENGTH=x.edgeElasticity),x.nestingFactor!=null&&(s.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=a.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=x.nestingFactor),x.gravity!=null&&(s.DEFAULT_GRAVITY_STRENGTH=a.DEFAULT_GRAVITY_STRENGTH=x.gravity),x.numIter!=null&&(s.MAX_ITERATIONS=a.MAX_ITERATIONS=x.numIter),x.gravityRange!=null&&(s.DEFAULT_GRAVITY_RANGE_FACTOR=a.DEFAULT_GRAVITY_RANGE_FACTOR=x.gravityRange),x.gravityCompound!=null&&(s.DEFAULT_COMPOUND_GRAVITY_STRENGTH=a.DEFAULT_COMPOUND_GRAVITY_STRENGTH=x.gravityCompound),x.gravityRangeCompound!=null&&(s.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=a.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=x.gravityRangeCompound),x.initialEnergyOnIncremental!=null&&(s.DEFAULT_COOLING_FACTOR_INCREMENTAL=a.DEFAULT_COOLING_FACTOR_INCREMENTAL=x.initialEnergyOnIncremental),x.quality=="draft"?i.QUALITY=0:x.quality=="proof"?i.QUALITY=2:i.QUALITY=1,s.NODE_DIMENSIONS_INCLUDE_LABELS=a.NODE_DIMENSIONS_INCLUDE_LABELS=i.NODE_DIMENSIONS_INCLUDE_LABELS=x.nodeDimensionsIncludeLabels,s.DEFAULT_INCREMENTAL=a.DEFAULT_INCREMENTAL=i.DEFAULT_INCREMENTAL=!x.randomize,s.ANIMATE=a.ANIMATE=i.ANIMATE=x.animate,s.TILE=x.tile,s.TILING_PADDING_VERTICAL=typeof x.tilingPaddingVertical=="function"?x.tilingPaddingVertical.call():x.tilingPaddingVertical,s.TILING_PADDING_HORIZONTAL=typeof x.tilingPaddingHorizontal=="function"?x.tilingPaddingHorizontal.call():x.tilingPaddingHorizontal},"getUserOptions");m.prototype.run=function(){var v,x,b=this.options,T=this.idToLNode={},E=this.layout=new l,w=this;w.stopped=!1,this.cy=this.options.cy,this.cy.trigger({type:"layoutstart",layout:this});var k=E.newGraphManager();this.gm=k;var S=this.options.eles.nodes(),A=this.options.eles.edges();this.root=k.addRoot(),this.processChildrenList(this.root,this.getTopMostNodes(S),E);for(var L=0;L0){var C;C=b.getGraphManager().add(b.newGraph(),S),this.processChildrenList(C,k,b)}}},m.prototype.stop=function(){return this.stopped=!0,this};var y=o(function(x){x("layout","cose-bilkent",m)},"register");typeof cytoscape<"u"&&y(cytoscape),e.exports=y})])})});function zet(t,e){t.forEach(r=>{let n={id:r.id,labelText:r.label,height:r.height,width:r.width,padding:r.padding??0};Object.keys(r).forEach(i=>{["id","label","height","width","padding","x","y"].includes(i)||(n[i]=r[i])}),e.add({group:"nodes",data:n,position:{x:r.x??0,y:r.y??0}})})}function Get(t,e){t.forEach(r=>{let n={id:r.id,source:r.start,target:r.end};Object.keys(r).forEach(i=>{["id","start","end"].includes(i)||(n[i]=r[i])}),e.add({group:"edges",data:n})})}function Ege(t){return new Promise(e=>{let r=je("body").append("div").attr("id","cy").attr("style","display:none"),n=Il({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"bezier"}}]});r.remove(),zet(t.nodes,n),Get(t.edges,n),n.nodes().forEach(function(a){a.layoutDimensions=()=>{let s=a.data();return{w:s.width,h:s.height}}});let i={name:"cose-bilkent",quality:"proof",styleEnabled:!1,animate:!1};n.layout(i).run(),n.ready(a=>{K.info("Cytoscape ready",a),e(n)})})}function Sge(t){return t.nodes().map(e=>{let r=e.data(),n=e.position(),i={id:r.id,x:n.x,y:n.y};return Object.keys(r).forEach(a=>{a!=="id"&&(i[a]=r[a])}),i})}function Cge(t){return t.edges().map(e=>{let r=e.data(),n=e._private.rscratch,i={id:r.id,source:r.source,target:r.target,startX:n.startX,startY:n.startY,midX:n.midX,midY:n.midY,endX:n.endX,endY:n.endY};return Object.keys(r).forEach(a=>{["id","source","target"].includes(a)||(i[a]=r[a])}),i})}var kge,Age=O(()=>{"use strict";SB();kge=Ra(wge(),1);Ar();xt();Il.use(kge.default);o(zet,"addNodes");o(Get,"addEdges");o(Ege,"createCytoscapeInstance");o(Sge,"extractPositionedNodes");o(Cge,"extractPositionedEdges")});async function _ge(t,e){K.debug("Starting cose-bilkent layout algorithm");try{Vet(t);let r=await Ege(t),n=Sge(r),i=Cge(r);return K.debug(`Layout completed: ${n.length} nodes, ${i.length} edges`),{nodes:n,edges:i}}catch(r){throw K.error("Error in cose-bilkent layout algorithm:",r),r}}function Vet(t){if(!t)throw new Error("Layout data is required");if(!t.config)throw new Error("Configuration is required in layout data");if(!t.rootNode)throw new Error("Root node is required");if(!t.nodes||!Array.isArray(t.nodes))throw new Error("No nodes found in layout data");if(!Array.isArray(t.edges))throw new Error("Edges array is required in layout data");return!0}var Dge=O(()=>{"use strict";xt();Age();o(_ge,"executeCoseBilkentLayout");o(Vet,"validateLayoutData")});var Rge,Lge=O(()=>{"use strict";Dge();Rge=o(async(t,e,{insertCluster:r,insertEdge:n,insertEdgeLabel:i,insertMarkers:a,insertNode:s,log:l,positionEdgeLabel:u},{algorithm:h})=>{let f={},d={},p=e.select("g");a(p,t.markers,t.type,t.diagramId);let m=p.insert("g").attr("class","subgraphs"),g=p.insert("g").attr("class","edgePaths"),y=p.insert("g").attr("class","edgeLabels"),v=p.insert("g").attr("class","nodes");l.debug("Inserting nodes into DOM for dimension calculation"),await Promise.all(t.nodes.map(async T=>{if(T.isGroup){let E={...T};d[T.id]=E,f[T.id]=E,await r(m,T)}else{let E={...T};f[T.id]=E;let w=await s(v,T,{config:t.config,dir:t.direction||"TB"}),k=w.node().getBBox();E.width=k.width,E.height=k.height,E.domId=w,l.debug(`Node ${T.id} dimensions: ${k.width}x${k.height}`)}})),l.debug("Running cose-bilkent layout algorithm");let x={...t,nodes:t.nodes.map(T=>{let E=f[T.id];return{...T,width:E.width,height:E.height}})},b=await _ge(x,t.config);l.debug("Positioning nodes based on layout results"),b.nodes.forEach(T=>{let E=f[T.id];E?.domId&&(E.domId.attr("transform",`translate(${T.x}, ${T.y})`),E.x=T.x,E.y=T.y,l.debug(`Positioned node ${E.id} at center (${T.x}, ${T.y})`))}),b.edges.forEach(T=>{let E=t.edges.find(w=>w.id===T.id);E&&(E.points=[{x:T.startX,y:T.startY},{x:T.midX,y:T.midY},{x:T.endX,y:T.endY}])}),l.debug("Inserting and positioning edges"),await Promise.all(t.edges.map(async T=>{let E=await i(y,T),w=f[T.start??""],k=f[T.end??""];if(w&&k){let S=b.edges.find(A=>A.id===T.id);if(S){l.debug("APA01 positionedEdge",S);let A={...T},L=n(g,A,d,t.type,w,k,t.diagramId);u(A,L)}else{let A={...T,points:[{x:w.x||0,y:w.y||0},{x:k.x||0,y:k.y||0}]},L=n(g,A,d,t.type,w,k,t.diagramId);u(A,L)}}})),l.debug("Cose-bilkent rendering completed")},"render")});var Nge={};vr(Nge,{render:()=>qet});var qet,Mge=O(()=>{"use strict";Lge();qet=Rge});var hT,LB,Uet,Ol,Ru,Rd=O(()=>{"use strict";woe();xt();hT={},LB=o(t=>{for(let e of t)hT[e.name]=e},"registerLayoutLoaders"),Uet=o(()=>{LB([{name:"dagre",loader:o(async()=>await Promise.resolve().then(()=>(rde(),tde)),"loader")},{name:"cose-bilkent",loader:o(async()=>await Promise.resolve().then(()=>(Mge(),Nge)),"loader")}])},"registerDefaultLayoutLoaders");Uet();Ol=o(async(t,e)=>{if(!(t.layoutAlgorithm in hT))throw new Error(`Unknown layout algorithm: ${t.layoutAlgorithm}`);let r=hT[t.layoutAlgorithm];return(await r.loader()).render(t,e,Toe,{algorithm:r.algorithm})},"render"),Ru=o((t="",{fallback:e="dagre"}={})=>{if(t in hT)return t;if(e in hT)return K.warn(`Layout algorithm ${t} is not registered. Using ${e} as fallback.`),e;throw new Error(`Both layout algorithms ${t} and ${e} are not registered.`)},"getRegisteredLayoutAlgorithm")});var bo,Wet,Het,Ld=O(()=>{"use strict";Ti();xt();bo=o((t,e,r,n)=>{t.attr("class",r);let{width:i,height:a,x:s,y:l}=Wet(t,e);Zr(t,a,i,n);let u=Het(s,l,i,a,e);t.attr("viewBox",u),K.debug(`viewBox configured: ${u} with padding: ${e}`)},"setupViewPortForSVG"),Wet=o((t,e)=>{let r=t.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:r.width+e*2,height:r.height+e*2,x:r.x,y:r.y}},"calculateDimensionsWithPadding"),Het=o((t,e,r,n,i)=>`${t-i} ${e-i} ${r} ${n}`,"createViewBox")});var Yet,jet,Ige,Oge=O(()=>{"use strict";Ar();jt();xt();b0();Rd();Ld();ar();Yet=o(function(t,e){return e.db.getClasses()},"getClasses"),jet=o(async function(t,e,r,n){K.info("REF0:"),K.info("Drawing state diagram (v2)",e);let{securityLevel:i,flowchart:a,layout:s}=ve(),l;i==="sandbox"&&(l=je("#i"+e));let u=i==="sandbox"?l.nodes()[0].contentDocument:document;K.debug("Before getData: ");let h=n.db.getData();K.debug("Data: ",h);let f=Sl(e,i),d=n.db.getDirection();h.type=n.type,h.layoutAlgorithm=Ru(s),h.layoutAlgorithm==="dagre"&&s==="elk"&&K.warn("flowchart-elk was moved to an external package in Mermaid v11. Please refer [release notes](https://github.com/mermaid-js/mermaid/releases/tag/v11.0.0) for more details. This diagram will be rendered using `dagre` layout as a fallback."),h.direction=d,h.nodeSpacing=a?.nodeSpacing||50,h.rankSpacing=a?.rankSpacing||50,h.markers=["point","circle","cross"],h.diagramId=e,K.debug("REF1:",h),await Ol(h,f);let p=h.config.flowchart?.diagramPadding??8;Xt.insertTitle(f,"flowchartTitleText",a?.titleTopMargin||0,n.db.getDiagramTitle()),bo(f,p,"flowchart",a?.useMaxWidth||!1);for(let m of h.nodes){let g=je(`#${e} [id="${m.id}"]`);if(!g||!m.link)continue;let y=u.createElementNS("http://www.w3.org/2000/svg","a");y.setAttributeNS("http://www.w3.org/2000/svg","class",m.cssClasses),y.setAttributeNS("http://www.w3.org/2000/svg","rel","noopener"),i==="sandbox"?y.setAttributeNS("http://www.w3.org/2000/svg","target","_top"):m.linkTarget&&y.setAttributeNS("http://www.w3.org/2000/svg","target",m.linkTarget);let v=g.insert(function(){return y},":first-child"),x=g.select(".label-container");x&&v.append(function(){return x.node()});let b=g.select(".label");b&&v.append(function(){return b.node()})}},"draw"),Ige={getClasses:Yet,draw:jet}});var NB,MB,Pge=O(()=>{"use strict";NB=(function(){var t=o(function(Pt,Tt,Vt,Qt){for(Vt=Vt||{},Qt=Pt.length;Qt--;Vt[Pt[Qt]]=Tt);return Vt},"o"),e=[1,4],r=[1,3],n=[1,5],i=[1,8,9,10,11,27,34,36,38,44,60,84,85,86,87,88,89,102,105,106,109,111,114,115,116,121,122,123,124,125],a=[2,2],s=[1,13],l=[1,14],u=[1,15],h=[1,16],f=[1,23],d=[1,25],p=[1,26],m=[1,27],g=[1,50],y=[1,49],v=[1,29],x=[1,30],b=[1,31],T=[1,32],E=[1,33],w=[1,45],k=[1,47],S=[1,43],A=[1,48],L=[1,44],I=[1,51],N=[1,46],C=[1,52],_=[1,53],D=[1,34],M=[1,35],R=[1,36],P=[1,37],B=[1,38],F=[1,58],G=[1,8,9,10,11,27,32,34,36,38,44,60,84,85,86,87,88,89,102,105,106,109,111,114,115,116,121,122,123,124,125],$=[1,62],V=[1,61],X=[1,63],Q=[8,9,11,75,77,78],H=[1,79],ie=[1,92],Y=[1,97],le=[1,96],ee=[1,93],J=[1,89],te=[1,95],Z=[1,91],xe=[1,98],de=[1,94],Se=[1,99],Me=[1,90],ke=[8,9,10,11,40,75,77,78],we=[8,9,10,11,40,46,75,77,78],_e=[8,9,10,11,29,40,44,46,48,50,52,54,56,58,60,63,65,67,68,70,75,77,78,89,102,105,106,109,111,114,115,116],$e=[8,9,11,44,60,75,77,78,89,102,105,106,109,111,114,115,116],fe=[44,60,89,102,105,106,109,111,114,115,116],Ke=[1,122],Te=[1,123],Be=[1,125],Ue=[1,124],Ge=[44,60,62,74,89,102,105,106,109,111,114,115,116],Ne=[1,134],We=[1,148],j=[1,149],ae=[1,150],U=[1,151],ce=[1,136],z=[1,138],ne=[1,142],se=[1,143],be=[1,144],pe=[1,145],me=[1,146],Re=[1,147],ge=[1,152],Ie=[1,153],qe=[1,132],Pe=[1,133],Xe=[1,140],oe=[1,135],et=[1,139],he=[1,137],ot=[8,9,10,11,27,32,34,36,38,44,60,84,85,86,87,88,89,102,105,106,109,111,114,115,116,121,122,123,124,125],Dt=[1,155],It=[1,157],wt=[8,9,11],Rt=[8,9,10,11,14,44,60,89,105,106,109,111,114,115,116],it=[1,177],at=[1,173],Ct=[1,174],yt=[1,178],dt=[1,175],Ht=[1,176],cr=[77,116,119],Kt=[8,9,10,11,12,14,27,29,32,44,60,75,84,85,86,87,88,89,90,105,109,111,114,115,116],kr=[10,106],ur=[31,49,51,53,55,57,62,64,66,67,69,71,116,117,118],tr=[1,248],hr=[1,246],_n=[1,250],mt=[1,244],Le=[1,245],ct=[1,247],St=[1,249],Mr=[1,251],tn=[1,269],cn=[8,9,11,106],Cr=[8,9,10,11,60,84,105,106,109,110,111,112],Ki={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,graphConfig:4,document:5,line:6,statement:7,SEMI:8,NEWLINE:9,SPACE:10,EOF:11,GRAPH:12,NODIR:13,DIR:14,FirstStmtSeparator:15,ending:16,endToken:17,spaceList:18,spaceListNewline:19,vertexStatement:20,separator:21,styleStatement:22,linkStyleStatement:23,classDefStatement:24,classStatement:25,clickStatement:26,subgraph:27,textNoTags:28,SQS:29,text:30,SQE:31,end:32,direction:33,acc_title:34,acc_title_value:35,acc_descr:36,acc_descr_value:37,acc_descr_multiline_value:38,shapeData:39,SHAPE_DATA:40,link:41,node:42,styledVertex:43,AMP:44,vertex:45,STYLE_SEPARATOR:46,idString:47,DOUBLECIRCLESTART:48,DOUBLECIRCLEEND:49,PS:50,PE:51,"(-":52,"-)":53,STADIUMSTART:54,STADIUMEND:55,SUBROUTINESTART:56,SUBROUTINEEND:57,VERTEX_WITH_PROPS_START:58,"NODE_STRING[field]":59,COLON:60,"NODE_STRING[value]":61,PIPE:62,CYLINDERSTART:63,CYLINDEREND:64,DIAMOND_START:65,DIAMOND_STOP:66,TAGEND:67,TRAPSTART:68,TRAPEND:69,INVTRAPSTART:70,INVTRAPEND:71,linkStatement:72,arrowText:73,TESTSTR:74,START_LINK:75,edgeText:76,LINK:77,LINK_ID:78,edgeTextToken:79,STR:80,MD_STR:81,textToken:82,keywords:83,STYLE:84,LINKSTYLE:85,CLASSDEF:86,CLASS:87,CLICK:88,DOWN:89,UP:90,textNoTagsToken:91,stylesOpt:92,"idString[vertex]":93,"idString[class]":94,CALLBACKNAME:95,CALLBACKARGS:96,HREF:97,LINK_TARGET:98,"STR[link]":99,"STR[tooltip]":100,alphaNum:101,DEFAULT:102,numList:103,INTERPOLATE:104,NUM:105,COMMA:106,style:107,styleComponent:108,NODE_STRING:109,UNIT:110,BRKT:111,PCT:112,idStringToken:113,MINUS:114,MULT:115,UNICODE_TEXT:116,TEXT:117,TAGSTART:118,EDGE_TEXT:119,alphaNumToken:120,direction_tb:121,direction_bt:122,direction_rl:123,direction_lr:124,direction_td:125,$accept:0,$end:1},terminals_:{2:"error",8:"SEMI",9:"NEWLINE",10:"SPACE",11:"EOF",12:"GRAPH",13:"NODIR",14:"DIR",27:"subgraph",29:"SQS",31:"SQE",32:"end",34:"acc_title",35:"acc_title_value",36:"acc_descr",37:"acc_descr_value",38:"acc_descr_multiline_value",40:"SHAPE_DATA",44:"AMP",46:"STYLE_SEPARATOR",48:"DOUBLECIRCLESTART",49:"DOUBLECIRCLEEND",50:"PS",51:"PE",52:"(-",53:"-)",54:"STADIUMSTART",55:"STADIUMEND",56:"SUBROUTINESTART",57:"SUBROUTINEEND",58:"VERTEX_WITH_PROPS_START",59:"NODE_STRING[field]",60:"COLON",61:"NODE_STRING[value]",62:"PIPE",63:"CYLINDERSTART",64:"CYLINDEREND",65:"DIAMOND_START",66:"DIAMOND_STOP",67:"TAGEND",68:"TRAPSTART",69:"TRAPEND",70:"INVTRAPSTART",71:"INVTRAPEND",74:"TESTSTR",75:"START_LINK",77:"LINK",78:"LINK_ID",80:"STR",81:"MD_STR",84:"STYLE",85:"LINKSTYLE",86:"CLASSDEF",87:"CLASS",88:"CLICK",89:"DOWN",90:"UP",93:"idString[vertex]",94:"idString[class]",95:"CALLBACKNAME",96:"CALLBACKARGS",97:"HREF",98:"LINK_TARGET",99:"STR[link]",100:"STR[tooltip]",102:"DEFAULT",104:"INTERPOLATE",105:"NUM",106:"COMMA",109:"NODE_STRING",110:"UNIT",111:"BRKT",112:"PCT",114:"MINUS",115:"MULT",116:"UNICODE_TEXT",117:"TEXT",118:"TAGSTART",119:"EDGE_TEXT",121:"direction_tb",122:"direction_bt",123:"direction_rl",124:"direction_lr",125:"direction_td"},productions_:[0,[3,2],[5,0],[5,2],[6,1],[6,1],[6,1],[6,1],[6,1],[4,2],[4,2],[4,2],[4,3],[16,2],[16,1],[17,1],[17,1],[17,1],[15,1],[15,1],[15,2],[19,2],[19,2],[19,1],[19,1],[18,2],[18,1],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,9],[7,6],[7,4],[7,1],[7,2],[7,2],[7,1],[21,1],[21,1],[21,1],[39,2],[39,1],[20,4],[20,3],[20,4],[20,2],[20,2],[20,1],[42,1],[42,6],[42,5],[43,1],[43,3],[45,4],[45,4],[45,6],[45,4],[45,4],[45,4],[45,8],[45,4],[45,4],[45,4],[45,6],[45,4],[45,4],[45,4],[45,4],[45,4],[45,1],[41,2],[41,3],[41,3],[41,1],[41,3],[41,4],[76,1],[76,2],[76,1],[76,1],[72,1],[72,2],[73,3],[30,1],[30,2],[30,1],[30,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[28,1],[28,2],[28,1],[28,1],[24,5],[25,5],[26,2],[26,4],[26,3],[26,5],[26,3],[26,5],[26,5],[26,7],[26,2],[26,4],[26,2],[26,4],[26,4],[26,6],[22,5],[23,5],[23,5],[23,9],[23,9],[23,7],[23,7],[103,1],[103,3],[92,1],[92,3],[107,1],[107,2],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[82,1],[82,1],[82,1],[82,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[79,1],[79,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[47,1],[47,2],[101,1],[101,2],[33,1],[33,1],[33,1],[33,1],[33,1]],performAction:o(function(Tt,Vt,Qt,gt,xn,ye,Mo){var Ee=ye.length-1;switch(xn){case 2:this.$=[];break;case 3:(!Array.isArray(ye[Ee])||ye[Ee].length>0)&&ye[Ee-1].push(ye[Ee]),this.$=ye[Ee-1];break;case 4:case 183:this.$=ye[Ee];break;case 11:gt.setDirection("TB"),this.$="TB";break;case 12:gt.setDirection(ye[Ee-1]),this.$=ye[Ee-1];break;case 27:this.$=ye[Ee-1].nodes;break;case 28:case 29:case 30:case 31:case 32:this.$=[];break;case 33:this.$=gt.addSubGraph(ye[Ee-6],ye[Ee-1],ye[Ee-4]);break;case 34:this.$=gt.addSubGraph(ye[Ee-3],ye[Ee-1],ye[Ee-3]);break;case 35:this.$=gt.addSubGraph(void 0,ye[Ee-1],void 0);break;case 37:this.$=ye[Ee].trim(),gt.setAccTitle(this.$);break;case 38:case 39:this.$=ye[Ee].trim(),gt.setAccDescription(this.$);break;case 43:this.$=ye[Ee-1]+ye[Ee];break;case 44:this.$=ye[Ee];break;case 45:gt.addVertex(ye[Ee-1][ye[Ee-1].length-1],void 0,void 0,void 0,void 0,void 0,void 0,ye[Ee]),gt.addLink(ye[Ee-3].stmt,ye[Ee-1],ye[Ee-2]),this.$={stmt:ye[Ee-1],nodes:ye[Ee-1].concat(ye[Ee-3].nodes)};break;case 46:gt.addLink(ye[Ee-2].stmt,ye[Ee],ye[Ee-1]),this.$={stmt:ye[Ee],nodes:ye[Ee].concat(ye[Ee-2].nodes)};break;case 47:gt.addLink(ye[Ee-3].stmt,ye[Ee-1],ye[Ee-2]),this.$={stmt:ye[Ee-1],nodes:ye[Ee-1].concat(ye[Ee-3].nodes)};break;case 48:this.$={stmt:ye[Ee-1],nodes:ye[Ee-1]};break;case 49:gt.addVertex(ye[Ee-1][ye[Ee-1].length-1],void 0,void 0,void 0,void 0,void 0,void 0,ye[Ee]),this.$={stmt:ye[Ee-1],nodes:ye[Ee-1],shapeData:ye[Ee]};break;case 50:this.$={stmt:ye[Ee],nodes:ye[Ee]};break;case 51:this.$=[ye[Ee]];break;case 52:gt.addVertex(ye[Ee-5][ye[Ee-5].length-1],void 0,void 0,void 0,void 0,void 0,void 0,ye[Ee-4]),this.$=ye[Ee-5].concat(ye[Ee]);break;case 53:this.$=ye[Ee-4].concat(ye[Ee]);break;case 54:this.$=ye[Ee];break;case 55:this.$=ye[Ee-2],gt.setClass(ye[Ee-2],ye[Ee]);break;case 56:this.$=ye[Ee-3],gt.addVertex(ye[Ee-3],ye[Ee-1],"square");break;case 57:this.$=ye[Ee-3],gt.addVertex(ye[Ee-3],ye[Ee-1],"doublecircle");break;case 58:this.$=ye[Ee-5],gt.addVertex(ye[Ee-5],ye[Ee-2],"circle");break;case 59:this.$=ye[Ee-3],gt.addVertex(ye[Ee-3],ye[Ee-1],"ellipse");break;case 60:this.$=ye[Ee-3],gt.addVertex(ye[Ee-3],ye[Ee-1],"stadium");break;case 61:this.$=ye[Ee-3],gt.addVertex(ye[Ee-3],ye[Ee-1],"subroutine");break;case 62:this.$=ye[Ee-7],gt.addVertex(ye[Ee-7],ye[Ee-1],"rect",void 0,void 0,void 0,Object.fromEntries([[ye[Ee-5],ye[Ee-3]]]));break;case 63:this.$=ye[Ee-3],gt.addVertex(ye[Ee-3],ye[Ee-1],"cylinder");break;case 64:this.$=ye[Ee-3],gt.addVertex(ye[Ee-3],ye[Ee-1],"round");break;case 65:this.$=ye[Ee-3],gt.addVertex(ye[Ee-3],ye[Ee-1],"diamond");break;case 66:this.$=ye[Ee-5],gt.addVertex(ye[Ee-5],ye[Ee-2],"hexagon");break;case 67:this.$=ye[Ee-3],gt.addVertex(ye[Ee-3],ye[Ee-1],"odd");break;case 68:this.$=ye[Ee-3],gt.addVertex(ye[Ee-3],ye[Ee-1],"trapezoid");break;case 69:this.$=ye[Ee-3],gt.addVertex(ye[Ee-3],ye[Ee-1],"inv_trapezoid");break;case 70:this.$=ye[Ee-3],gt.addVertex(ye[Ee-3],ye[Ee-1],"lean_right");break;case 71:this.$=ye[Ee-3],gt.addVertex(ye[Ee-3],ye[Ee-1],"lean_left");break;case 72:this.$=ye[Ee],gt.addVertex(ye[Ee]);break;case 73:ye[Ee-1].text=ye[Ee],this.$=ye[Ee-1];break;case 74:case 75:ye[Ee-2].text=ye[Ee-1],this.$=ye[Ee-2];break;case 76:this.$=ye[Ee];break;case 77:var _i=gt.destructLink(ye[Ee],ye[Ee-2]);this.$={type:_i.type,stroke:_i.stroke,length:_i.length,text:ye[Ee-1]};break;case 78:var _i=gt.destructLink(ye[Ee],ye[Ee-2]);this.$={type:_i.type,stroke:_i.stroke,length:_i.length,text:ye[Ee-1],id:ye[Ee-3]};break;case 79:this.$={text:ye[Ee],type:"text"};break;case 80:this.$={text:ye[Ee-1].text+""+ye[Ee],type:ye[Ee-1].type};break;case 81:this.$={text:ye[Ee],type:"string"};break;case 82:this.$={text:ye[Ee],type:"markdown"};break;case 83:var _i=gt.destructLink(ye[Ee]);this.$={type:_i.type,stroke:_i.stroke,length:_i.length};break;case 84:var _i=gt.destructLink(ye[Ee]);this.$={type:_i.type,stroke:_i.stroke,length:_i.length,id:ye[Ee-1]};break;case 85:this.$=ye[Ee-1];break;case 86:this.$={text:ye[Ee],type:"text"};break;case 87:this.$={text:ye[Ee-1].text+""+ye[Ee],type:ye[Ee-1].type};break;case 88:this.$={text:ye[Ee],type:"string"};break;case 89:case 104:this.$={text:ye[Ee],type:"markdown"};break;case 101:this.$={text:ye[Ee],type:"text"};break;case 102:this.$={text:ye[Ee-1].text+""+ye[Ee],type:ye[Ee-1].type};break;case 103:this.$={text:ye[Ee],type:"text"};break;case 105:this.$=ye[Ee-4],gt.addClass(ye[Ee-2],ye[Ee]);break;case 106:this.$=ye[Ee-4],gt.setClass(ye[Ee-2],ye[Ee]);break;case 107:case 115:this.$=ye[Ee-1],gt.setClickEvent(ye[Ee-1],ye[Ee]);break;case 108:case 116:this.$=ye[Ee-3],gt.setClickEvent(ye[Ee-3],ye[Ee-2]),gt.setTooltip(ye[Ee-3],ye[Ee]);break;case 109:this.$=ye[Ee-2],gt.setClickEvent(ye[Ee-2],ye[Ee-1],ye[Ee]);break;case 110:this.$=ye[Ee-4],gt.setClickEvent(ye[Ee-4],ye[Ee-3],ye[Ee-2]),gt.setTooltip(ye[Ee-4],ye[Ee]);break;case 111:this.$=ye[Ee-2],gt.setLink(ye[Ee-2],ye[Ee]);break;case 112:this.$=ye[Ee-4],gt.setLink(ye[Ee-4],ye[Ee-2]),gt.setTooltip(ye[Ee-4],ye[Ee]);break;case 113:this.$=ye[Ee-4],gt.setLink(ye[Ee-4],ye[Ee-2],ye[Ee]);break;case 114:this.$=ye[Ee-6],gt.setLink(ye[Ee-6],ye[Ee-4],ye[Ee]),gt.setTooltip(ye[Ee-6],ye[Ee-2]);break;case 117:this.$=ye[Ee-1],gt.setLink(ye[Ee-1],ye[Ee]);break;case 118:this.$=ye[Ee-3],gt.setLink(ye[Ee-3],ye[Ee-2]),gt.setTooltip(ye[Ee-3],ye[Ee]);break;case 119:this.$=ye[Ee-3],gt.setLink(ye[Ee-3],ye[Ee-2],ye[Ee]);break;case 120:this.$=ye[Ee-5],gt.setLink(ye[Ee-5],ye[Ee-4],ye[Ee]),gt.setTooltip(ye[Ee-5],ye[Ee-2]);break;case 121:this.$=ye[Ee-4],gt.addVertex(ye[Ee-2],void 0,void 0,ye[Ee]);break;case 122:this.$=ye[Ee-4],gt.updateLink([ye[Ee-2]],ye[Ee]);break;case 123:this.$=ye[Ee-4],gt.updateLink(ye[Ee-2],ye[Ee]);break;case 124:this.$=ye[Ee-8],gt.updateLinkInterpolate([ye[Ee-6]],ye[Ee-2]),gt.updateLink([ye[Ee-6]],ye[Ee]);break;case 125:this.$=ye[Ee-8],gt.updateLinkInterpolate(ye[Ee-6],ye[Ee-2]),gt.updateLink(ye[Ee-6],ye[Ee]);break;case 126:this.$=ye[Ee-6],gt.updateLinkInterpolate([ye[Ee-4]],ye[Ee]);break;case 127:this.$=ye[Ee-6],gt.updateLinkInterpolate(ye[Ee-4],ye[Ee]);break;case 128:case 130:this.$=[ye[Ee]];break;case 129:case 131:ye[Ee-2].push(ye[Ee]),this.$=ye[Ee-2];break;case 133:this.$=ye[Ee-1]+ye[Ee];break;case 181:this.$=ye[Ee];break;case 182:this.$=ye[Ee-1]+""+ye[Ee];break;case 184:this.$=ye[Ee-1]+""+ye[Ee];break;case 185:this.$={stmt:"dir",value:"TB"};break;case 186:this.$={stmt:"dir",value:"BT"};break;case 187:this.$={stmt:"dir",value:"RL"};break;case 188:this.$={stmt:"dir",value:"LR"};break;case 189:this.$={stmt:"dir",value:"TD"};break}},"anonymous"),table:[{3:1,4:2,9:e,10:r,12:n},{1:[3]},t(i,a,{5:6}),{4:7,9:e,10:r,12:n},{4:8,9:e,10:r,12:n},{13:[1,9],14:[1,10]},{1:[2,1],6:11,7:12,8:s,9:l,10:u,11:h,20:17,22:18,23:19,24:20,25:21,26:22,27:f,33:24,34:d,36:p,38:m,42:28,43:39,44:g,45:40,47:41,60:y,84:v,85:x,86:b,87:T,88:E,89:w,102:k,105:S,106:A,109:L,111:I,113:42,114:N,115:C,116:_,121:D,122:M,123:R,124:P,125:B},t(i,[2,9]),t(i,[2,10]),t(i,[2,11]),{8:[1,55],9:[1,56],10:F,15:54,18:57},t(G,[2,3]),t(G,[2,4]),t(G,[2,5]),t(G,[2,6]),t(G,[2,7]),t(G,[2,8]),{8:$,9:V,11:X,21:59,41:60,72:64,75:[1,65],77:[1,67],78:[1,66]},{8:$,9:V,11:X,21:68},{8:$,9:V,11:X,21:69},{8:$,9:V,11:X,21:70},{8:$,9:V,11:X,21:71},{8:$,9:V,11:X,21:72},{8:$,9:V,10:[1,73],11:X,21:74},t(G,[2,36]),{35:[1,75]},{37:[1,76]},t(G,[2,39]),t(Q,[2,50],{18:77,39:78,10:F,40:H}),{10:[1,80]},{10:[1,81]},{10:[1,82]},{10:[1,83]},{14:ie,44:Y,60:le,80:[1,87],89:ee,95:[1,84],97:[1,85],101:86,105:J,106:te,109:Z,111:xe,114:de,115:Se,116:Me,120:88},t(G,[2,185]),t(G,[2,186]),t(G,[2,187]),t(G,[2,188]),t(G,[2,189]),t(ke,[2,51]),t(ke,[2,54],{46:[1,100]}),t(we,[2,72],{113:113,29:[1,101],44:g,48:[1,102],50:[1,103],52:[1,104],54:[1,105],56:[1,106],58:[1,107],60:y,63:[1,108],65:[1,109],67:[1,110],68:[1,111],70:[1,112],89:w,102:k,105:S,106:A,109:L,111:I,114:N,115:C,116:_}),t(_e,[2,181]),t(_e,[2,142]),t(_e,[2,143]),t(_e,[2,144]),t(_e,[2,145]),t(_e,[2,146]),t(_e,[2,147]),t(_e,[2,148]),t(_e,[2,149]),t(_e,[2,150]),t(_e,[2,151]),t(_e,[2,152]),t(i,[2,12]),t(i,[2,18]),t(i,[2,19]),{9:[1,114]},t($e,[2,26],{18:115,10:F}),t(G,[2,27]),{42:116,43:39,44:g,45:40,47:41,60:y,89:w,102:k,105:S,106:A,109:L,111:I,113:42,114:N,115:C,116:_},t(G,[2,40]),t(G,[2,41]),t(G,[2,42]),t(fe,[2,76],{73:117,62:[1,119],74:[1,118]}),{76:120,79:121,80:Ke,81:Te,116:Be,119:Ue},{75:[1,126],77:[1,127]},t(Ge,[2,83]),t(G,[2,28]),t(G,[2,29]),t(G,[2,30]),t(G,[2,31]),t(G,[2,32]),{10:Ne,12:We,14:j,27:ae,28:128,32:U,44:ce,60:z,75:ne,80:[1,130],81:[1,131],83:141,84:se,85:be,86:pe,87:me,88:Re,89:ge,90:Ie,91:129,105:qe,109:Pe,111:Xe,114:oe,115:et,116:he},t(ot,a,{5:154}),t(G,[2,37]),t(G,[2,38]),t(Q,[2,48],{44:Dt}),t(Q,[2,49],{18:156,10:F,40:It}),t(ke,[2,44]),{44:g,47:158,60:y,89:w,102:k,105:S,106:A,109:L,111:I,113:42,114:N,115:C,116:_},{102:[1,159],103:160,105:[1,161]},{44:g,47:162,60:y,89:w,102:k,105:S,106:A,109:L,111:I,113:42,114:N,115:C,116:_},{44:g,47:163,60:y,89:w,102:k,105:S,106:A,109:L,111:I,113:42,114:N,115:C,116:_},t(wt,[2,107],{10:[1,164],96:[1,165]}),{80:[1,166]},t(wt,[2,115],{120:168,10:[1,167],14:ie,44:Y,60:le,89:ee,105:J,106:te,109:Z,111:xe,114:de,115:Se,116:Me}),t(wt,[2,117],{10:[1,169]}),t(Rt,[2,183]),t(Rt,[2,170]),t(Rt,[2,171]),t(Rt,[2,172]),t(Rt,[2,173]),t(Rt,[2,174]),t(Rt,[2,175]),t(Rt,[2,176]),t(Rt,[2,177]),t(Rt,[2,178]),t(Rt,[2,179]),t(Rt,[2,180]),{44:g,47:170,60:y,89:w,102:k,105:S,106:A,109:L,111:I,113:42,114:N,115:C,116:_},{30:171,67:it,80:at,81:Ct,82:172,116:yt,117:dt,118:Ht},{30:179,67:it,80:at,81:Ct,82:172,116:yt,117:dt,118:Ht},{30:181,50:[1,180],67:it,80:at,81:Ct,82:172,116:yt,117:dt,118:Ht},{30:182,67:it,80:at,81:Ct,82:172,116:yt,117:dt,118:Ht},{30:183,67:it,80:at,81:Ct,82:172,116:yt,117:dt,118:Ht},{30:184,67:it,80:at,81:Ct,82:172,116:yt,117:dt,118:Ht},{109:[1,185]},{30:186,67:it,80:at,81:Ct,82:172,116:yt,117:dt,118:Ht},{30:187,65:[1,188],67:it,80:at,81:Ct,82:172,116:yt,117:dt,118:Ht},{30:189,67:it,80:at,81:Ct,82:172,116:yt,117:dt,118:Ht},{30:190,67:it,80:at,81:Ct,82:172,116:yt,117:dt,118:Ht},{30:191,67:it,80:at,81:Ct,82:172,116:yt,117:dt,118:Ht},t(_e,[2,182]),t(i,[2,20]),t($e,[2,25]),t(Q,[2,46],{39:192,18:193,10:F,40:H}),t(fe,[2,73],{10:[1,194]}),{10:[1,195]},{30:196,67:it,80:at,81:Ct,82:172,116:yt,117:dt,118:Ht},{77:[1,197],79:198,116:Be,119:Ue},t(cr,[2,79]),t(cr,[2,81]),t(cr,[2,82]),t(cr,[2,168]),t(cr,[2,169]),{76:199,79:121,80:Ke,81:Te,116:Be,119:Ue},t(Ge,[2,84]),{8:$,9:V,10:Ne,11:X,12:We,14:j,21:201,27:ae,29:[1,200],32:U,44:ce,60:z,75:ne,83:141,84:se,85:be,86:pe,87:me,88:Re,89:ge,90:Ie,91:202,105:qe,109:Pe,111:Xe,114:oe,115:et,116:he},t(Kt,[2,101]),t(Kt,[2,103]),t(Kt,[2,104]),t(Kt,[2,157]),t(Kt,[2,158]),t(Kt,[2,159]),t(Kt,[2,160]),t(Kt,[2,161]),t(Kt,[2,162]),t(Kt,[2,163]),t(Kt,[2,164]),t(Kt,[2,165]),t(Kt,[2,166]),t(Kt,[2,167]),t(Kt,[2,90]),t(Kt,[2,91]),t(Kt,[2,92]),t(Kt,[2,93]),t(Kt,[2,94]),t(Kt,[2,95]),t(Kt,[2,96]),t(Kt,[2,97]),t(Kt,[2,98]),t(Kt,[2,99]),t(Kt,[2,100]),{6:11,7:12,8:s,9:l,10:u,11:h,20:17,22:18,23:19,24:20,25:21,26:22,27:f,32:[1,203],33:24,34:d,36:p,38:m,42:28,43:39,44:g,45:40,47:41,60:y,84:v,85:x,86:b,87:T,88:E,89:w,102:k,105:S,106:A,109:L,111:I,113:42,114:N,115:C,116:_,121:D,122:M,123:R,124:P,125:B},{10:F,18:204},{44:[1,205]},t(ke,[2,43]),{10:[1,206],44:g,60:y,89:w,102:k,105:S,106:A,109:L,111:I,113:113,114:N,115:C,116:_},{10:[1,207]},{10:[1,208],106:[1,209]},t(kr,[2,128]),{10:[1,210],44:g,60:y,89:w,102:k,105:S,106:A,109:L,111:I,113:113,114:N,115:C,116:_},{10:[1,211],44:g,60:y,89:w,102:k,105:S,106:A,109:L,111:I,113:113,114:N,115:C,116:_},{80:[1,212]},t(wt,[2,109],{10:[1,213]}),t(wt,[2,111],{10:[1,214]}),{80:[1,215]},t(Rt,[2,184]),{80:[1,216],98:[1,217]},t(ke,[2,55],{113:113,44:g,60:y,89:w,102:k,105:S,106:A,109:L,111:I,114:N,115:C,116:_}),{31:[1,218],67:it,82:219,116:yt,117:dt,118:Ht},t(ur,[2,86]),t(ur,[2,88]),t(ur,[2,89]),t(ur,[2,153]),t(ur,[2,154]),t(ur,[2,155]),t(ur,[2,156]),{49:[1,220],67:it,82:219,116:yt,117:dt,118:Ht},{30:221,67:it,80:at,81:Ct,82:172,116:yt,117:dt,118:Ht},{51:[1,222],67:it,82:219,116:yt,117:dt,118:Ht},{53:[1,223],67:it,82:219,116:yt,117:dt,118:Ht},{55:[1,224],67:it,82:219,116:yt,117:dt,118:Ht},{57:[1,225],67:it,82:219,116:yt,117:dt,118:Ht},{60:[1,226]},{64:[1,227],67:it,82:219,116:yt,117:dt,118:Ht},{66:[1,228],67:it,82:219,116:yt,117:dt,118:Ht},{30:229,67:it,80:at,81:Ct,82:172,116:yt,117:dt,118:Ht},{31:[1,230],67:it,82:219,116:yt,117:dt,118:Ht},{67:it,69:[1,231],71:[1,232],82:219,116:yt,117:dt,118:Ht},{67:it,69:[1,234],71:[1,233],82:219,116:yt,117:dt,118:Ht},t(Q,[2,45],{18:156,10:F,40:It}),t(Q,[2,47],{44:Dt}),t(fe,[2,75]),t(fe,[2,74]),{62:[1,235],67:it,82:219,116:yt,117:dt,118:Ht},t(fe,[2,77]),t(cr,[2,80]),{77:[1,236],79:198,116:Be,119:Ue},{30:237,67:it,80:at,81:Ct,82:172,116:yt,117:dt,118:Ht},t(ot,a,{5:238}),t(Kt,[2,102]),t(G,[2,35]),{43:239,44:g,45:40,47:41,60:y,89:w,102:k,105:S,106:A,109:L,111:I,113:42,114:N,115:C,116:_},{10:F,18:240},{10:tr,60:hr,84:_n,92:241,105:mt,107:242,108:243,109:Le,110:ct,111:St,112:Mr},{10:tr,60:hr,84:_n,92:252,104:[1,253],105:mt,107:242,108:243,109:Le,110:ct,111:St,112:Mr},{10:tr,60:hr,84:_n,92:254,104:[1,255],105:mt,107:242,108:243,109:Le,110:ct,111:St,112:Mr},{105:[1,256]},{10:tr,60:hr,84:_n,92:257,105:mt,107:242,108:243,109:Le,110:ct,111:St,112:Mr},{44:g,47:258,60:y,89:w,102:k,105:S,106:A,109:L,111:I,113:42,114:N,115:C,116:_},t(wt,[2,108]),{80:[1,259]},{80:[1,260],98:[1,261]},t(wt,[2,116]),t(wt,[2,118],{10:[1,262]}),t(wt,[2,119]),t(we,[2,56]),t(ur,[2,87]),t(we,[2,57]),{51:[1,263],67:it,82:219,116:yt,117:dt,118:Ht},t(we,[2,64]),t(we,[2,59]),t(we,[2,60]),t(we,[2,61]),{109:[1,264]},t(we,[2,63]),t(we,[2,65]),{66:[1,265],67:it,82:219,116:yt,117:dt,118:Ht},t(we,[2,67]),t(we,[2,68]),t(we,[2,70]),t(we,[2,69]),t(we,[2,71]),t([10,44,60,89,102,105,106,109,111,114,115,116],[2,85]),t(fe,[2,78]),{31:[1,266],67:it,82:219,116:yt,117:dt,118:Ht},{6:11,7:12,8:s,9:l,10:u,11:h,20:17,22:18,23:19,24:20,25:21,26:22,27:f,32:[1,267],33:24,34:d,36:p,38:m,42:28,43:39,44:g,45:40,47:41,60:y,84:v,85:x,86:b,87:T,88:E,89:w,102:k,105:S,106:A,109:L,111:I,113:42,114:N,115:C,116:_,121:D,122:M,123:R,124:P,125:B},t(ke,[2,53]),{43:268,44:g,45:40,47:41,60:y,89:w,102:k,105:S,106:A,109:L,111:I,113:42,114:N,115:C,116:_},t(wt,[2,121],{106:tn}),t(cn,[2,130],{108:270,10:tr,60:hr,84:_n,105:mt,109:Le,110:ct,111:St,112:Mr}),t(Cr,[2,132]),t(Cr,[2,134]),t(Cr,[2,135]),t(Cr,[2,136]),t(Cr,[2,137]),t(Cr,[2,138]),t(Cr,[2,139]),t(Cr,[2,140]),t(Cr,[2,141]),t(wt,[2,122],{106:tn}),{10:[1,271]},t(wt,[2,123],{106:tn}),{10:[1,272]},t(kr,[2,129]),t(wt,[2,105],{106:tn}),t(wt,[2,106],{113:113,44:g,60:y,89:w,102:k,105:S,106:A,109:L,111:I,114:N,115:C,116:_}),t(wt,[2,110]),t(wt,[2,112],{10:[1,273]}),t(wt,[2,113]),{98:[1,274]},{51:[1,275]},{62:[1,276]},{66:[1,277]},{8:$,9:V,11:X,21:278},t(G,[2,34]),t(ke,[2,52]),{10:tr,60:hr,84:_n,105:mt,107:279,108:243,109:Le,110:ct,111:St,112:Mr},t(Cr,[2,133]),{14:ie,44:Y,60:le,89:ee,101:280,105:J,106:te,109:Z,111:xe,114:de,115:Se,116:Me,120:88},{14:ie,44:Y,60:le,89:ee,101:281,105:J,106:te,109:Z,111:xe,114:de,115:Se,116:Me,120:88},{98:[1,282]},t(wt,[2,120]),t(we,[2,58]),{30:283,67:it,80:at,81:Ct,82:172,116:yt,117:dt,118:Ht},t(we,[2,66]),t(ot,a,{5:284}),t(cn,[2,131],{108:270,10:tr,60:hr,84:_n,105:mt,109:Le,110:ct,111:St,112:Mr}),t(wt,[2,126],{120:168,10:[1,285],14:ie,44:Y,60:le,89:ee,105:J,106:te,109:Z,111:xe,114:de,115:Se,116:Me}),t(wt,[2,127],{120:168,10:[1,286],14:ie,44:Y,60:le,89:ee,105:J,106:te,109:Z,111:xe,114:de,115:Se,116:Me}),t(wt,[2,114]),{31:[1,287],67:it,82:219,116:yt,117:dt,118:Ht},{6:11,7:12,8:s,9:l,10:u,11:h,20:17,22:18,23:19,24:20,25:21,26:22,27:f,32:[1,288],33:24,34:d,36:p,38:m,42:28,43:39,44:g,45:40,47:41,60:y,84:v,85:x,86:b,87:T,88:E,89:w,102:k,105:S,106:A,109:L,111:I,113:42,114:N,115:C,116:_,121:D,122:M,123:R,124:P,125:B},{10:tr,60:hr,84:_n,92:289,105:mt,107:242,108:243,109:Le,110:ct,111:St,112:Mr},{10:tr,60:hr,84:_n,92:290,105:mt,107:242,108:243,109:Le,110:ct,111:St,112:Mr},t(we,[2,62]),t(G,[2,33]),t(wt,[2,124],{106:tn}),t(wt,[2,125],{106:tn})],defaultActions:{},parseError:o(function(Tt,Vt){if(Vt.recoverable)this.trace(Tt);else{var Qt=new Error(Tt);throw Qt.hash=Vt,Qt}},"parseError"),parse:o(function(Tt){var Vt=this,Qt=[0],gt=[],xn=[null],ye=[],Mo=this.table,Ee="",_i=0,$_=0,B3=0,MAe=2,lH=1,IAe=ye.slice.call(arguments,1),fa=Object.create(this.lexer),Sp={yy:{}};for(var z_ in this.yy)Object.prototype.hasOwnProperty.call(this.yy,z_)&&(Sp.yy[z_]=this.yy[z_]);fa.setInput(Tt,Sp.yy),Sp.yy.lexer=fa,Sp.yy.parser=this,typeof fa.yylloc>"u"&&(fa.yylloc={});var G_=fa.yylloc;ye.push(G_);var OAe=fa.options&&fa.options.ranges;typeof Sp.yy.parseError=="function"?this.parseError=Sp.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Amt(Io){Qt.length=Qt.length-2*Io,xn.length=xn.length-Io,ye.length=ye.length-Io}o(Amt,"popStack");function PAe(){var Io;return Io=gt.pop()||fa.lex()||lH,typeof Io!="number"&&(Io instanceof Array&&(gt=Io,Io=gt.pop()),Io=Vt.symbols_[Io]||Io),Io}o(PAe,"lex");for(var xs,V_,Cp,ll,_mt,q_,ig={},F3,Ju,cH,$3;;){if(Cp=Qt[Qt.length-1],this.defaultActions[Cp]?ll=this.defaultActions[Cp]:((xs===null||typeof xs>"u")&&(xs=PAe()),ll=Mo[Cp]&&Mo[Cp][xs]),typeof ll>"u"||!ll.length||!ll[0]){var U_="";$3=[];for(F3 in Mo[Cp])this.terminals_[F3]&&F3>MAe&&$3.push("'"+this.terminals_[F3]+"'");fa.showPosition?U_="Parse error on line "+(_i+1)+`: +`+fa.showPosition()+` +Expecting `+$3.join(", ")+", got '"+(this.terminals_[xs]||xs)+"'":U_="Parse error on line "+(_i+1)+": Unexpected "+(xs==lH?"end of input":"'"+(this.terminals_[xs]||xs)+"'"),this.parseError(U_,{text:fa.match,token:this.terminals_[xs]||xs,line:fa.yylineno,loc:G_,expected:$3})}if(ll[0]instanceof Array&&ll.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Cp+", token: "+xs);switch(ll[0]){case 1:Qt.push(xs),xn.push(fa.yytext),ye.push(fa.yylloc),Qt.push(ll[1]),xs=null,V_?(xs=V_,V_=null):($_=fa.yyleng,Ee=fa.yytext,_i=fa.yylineno,G_=fa.yylloc,B3>0&&B3--);break;case 2:if(Ju=this.productions_[ll[1]][1],ig.$=xn[xn.length-Ju],ig._$={first_line:ye[ye.length-(Ju||1)].first_line,last_line:ye[ye.length-1].last_line,first_column:ye[ye.length-(Ju||1)].first_column,last_column:ye[ye.length-1].last_column},OAe&&(ig._$.range=[ye[ye.length-(Ju||1)].range[0],ye[ye.length-1].range[1]]),q_=this.performAction.apply(ig,[Ee,$_,_i,Sp.yy,ll[1],xn,ye].concat(IAe)),typeof q_<"u")return q_;Ju&&(Qt=Qt.slice(0,-1*Ju*2),xn=xn.slice(0,-1*Ju),ye=ye.slice(0,-1*Ju)),Qt.push(this.productions_[ll[1]][0]),xn.push(ig.$),ye.push(ig._$),cH=Mo[Qt[Qt.length-2]][Qt[Qt.length-1]],Qt.push(cH);break;case 3:return!0}}return!0},"parse")},Da=(function(){var Pt={EOF:1,parseError:o(function(Vt,Qt){if(this.yy.parser)this.yy.parser.parseError(Vt,Qt);else throw new Error(Vt)},"parseError"),setInput:o(function(Tt,Vt){return this.yy=Vt||this.yy||{},this._input=Tt,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var Tt=this._input[0];this.yytext+=Tt,this.yyleng++,this.offset++,this.match+=Tt,this.matched+=Tt;var Vt=Tt.match(/(?:\r\n?|\n).*/g);return Vt?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),Tt},"input"),unput:o(function(Tt){var Vt=Tt.length,Qt=Tt.split(/(?:\r\n?|\n)/g);this._input=Tt+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Vt),this.offset-=Vt;var gt=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),Qt.length-1&&(this.yylineno-=Qt.length-1);var xn=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:Qt?(Qt.length===gt.length?this.yylloc.first_column:0)+gt[gt.length-Qt.length].length-Qt[0].length:this.yylloc.first_column-Vt},this.options.ranges&&(this.yylloc.range=[xn[0],xn[0]+this.yyleng-Vt]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(Tt){this.unput(this.match.slice(Tt))},"less"),pastInput:o(function(){var Tt=this.matched.substr(0,this.matched.length-this.match.length);return(Tt.length>20?"...":"")+Tt.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var Tt=this.match;return Tt.length<20&&(Tt+=this._input.substr(0,20-Tt.length)),(Tt.substr(0,20)+(Tt.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var Tt=this.pastInput(),Vt=new Array(Tt.length+1).join("-");return Tt+this.upcomingInput()+` +`+Vt+"^"},"showPosition"),test_match:o(function(Tt,Vt){var Qt,gt,xn;if(this.options.backtrack_lexer&&(xn={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(xn.yylloc.range=this.yylloc.range.slice(0))),gt=Tt[0].match(/(?:\r\n?|\n).*/g),gt&&(this.yylineno+=gt.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:gt?gt[gt.length-1].length-gt[gt.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+Tt[0].length},this.yytext+=Tt[0],this.match+=Tt[0],this.matches=Tt,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(Tt[0].length),this.matched+=Tt[0],Qt=this.performAction.call(this,this.yy,this,Vt,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),Qt)return Qt;if(this._backtrack){for(var ye in xn)this[ye]=xn[ye];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var Tt,Vt,Qt,gt;this._more||(this.yytext="",this.match="");for(var xn=this._currentRules(),ye=0;yeVt[0].length)){if(Vt=Qt,gt=ye,this.options.backtrack_lexer){if(Tt=this.test_match(Qt,xn[ye]),Tt!==!1)return Tt;if(this._backtrack){Vt=!1;continue}else return!1}else if(!this.options.flex)break}return Vt?(Tt=this.test_match(Vt,xn[gt]),Tt!==!1?Tt:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var Vt=this.next();return Vt||this.lex()},"lex"),begin:o(function(Vt){this.conditionStack.push(Vt)},"begin"),popState:o(function(){var Vt=this.conditionStack.length-1;return Vt>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(Vt){return Vt=this.conditionStack.length-1-Math.abs(Vt||0),Vt>=0?this.conditionStack[Vt]:"INITIAL"},"topState"),pushState:o(function(Vt){this.begin(Vt)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:o(function(Vt,Qt,gt,xn){var ye=xn;switch(gt){case 0:return this.begin("acc_title"),34;break;case 1:return this.popState(),"acc_title_value";break;case 2:return this.begin("acc_descr"),36;break;case 3:return this.popState(),"acc_descr_value";break;case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return this.pushState("shapeData"),Qt.yytext="",40;break;case 8:return this.pushState("shapeDataStr"),40;break;case 9:return this.popState(),40;break;case 10:let Mo=/\n\s*/g;return Qt.yytext=Qt.yytext.replace(Mo,"
    "),40;break;case 11:return 40;case 12:this.popState();break;case 13:this.begin("callbackname");break;case 14:this.popState();break;case 15:this.popState(),this.begin("callbackargs");break;case 16:return 95;case 17:this.popState();break;case 18:return 96;case 19:return"MD_STR";case 20:this.popState();break;case 21:this.begin("md_string");break;case 22:return"STR";case 23:this.popState();break;case 24:this.pushState("string");break;case 25:return 84;case 26:return 102;case 27:return 85;case 28:return 104;case 29:return 86;case 30:return 87;case 31:return 97;case 32:this.begin("click");break;case 33:this.popState();break;case 34:return 88;case 35:return Vt.lex.firstGraph()&&this.begin("dir"),12;break;case 36:return Vt.lex.firstGraph()&&this.begin("dir"),12;break;case 37:return Vt.lex.firstGraph()&&this.begin("dir"),12;break;case 38:return 27;case 39:return 32;case 40:return 98;case 41:return 98;case 42:return 98;case 43:return 98;case 44:return this.popState(),13;break;case 45:return this.popState(),14;break;case 46:return this.popState(),14;break;case 47:return this.popState(),14;break;case 48:return this.popState(),14;break;case 49:return this.popState(),14;break;case 50:return this.popState(),14;break;case 51:return this.popState(),14;break;case 52:return this.popState(),14;break;case 53:return this.popState(),14;break;case 54:return this.popState(),14;break;case 55:return 121;case 56:return 122;case 57:return 123;case 58:return 124;case 59:return 125;case 60:return 78;case 61:return 105;case 62:return 111;case 63:return 46;case 64:return 60;case 65:return 44;case 66:return 8;case 67:return 106;case 68:return 115;case 69:return this.popState(),77;break;case 70:return this.pushState("edgeText"),75;break;case 71:return 119;case 72:return this.popState(),77;break;case 73:return this.pushState("thickEdgeText"),75;break;case 74:return 119;case 75:return this.popState(),77;break;case 76:return this.pushState("dottedEdgeText"),75;break;case 77:return 119;case 78:return 77;case 79:return this.popState(),53;break;case 80:return"TEXT";case 81:return this.pushState("ellipseText"),52;break;case 82:return this.popState(),55;break;case 83:return this.pushState("text"),54;break;case 84:return this.popState(),57;break;case 85:return this.pushState("text"),56;break;case 86:return 58;case 87:return this.pushState("text"),67;break;case 88:return this.popState(),64;break;case 89:return this.pushState("text"),63;break;case 90:return this.popState(),49;break;case 91:return this.pushState("text"),48;break;case 92:return this.popState(),69;break;case 93:return this.popState(),71;break;case 94:return 117;case 95:return this.pushState("trapText"),68;break;case 96:return this.pushState("trapText"),70;break;case 97:return 118;case 98:return 67;case 99:return 90;case 100:return"SEP";case 101:return 89;case 102:return 115;case 103:return 111;case 104:return 44;case 105:return 109;case 106:return 114;case 107:return 116;case 108:return this.popState(),62;break;case 109:return this.pushState("text"),62;break;case 110:return this.popState(),51;break;case 111:return this.pushState("text"),50;break;case 112:return this.popState(),31;break;case 113:return this.pushState("text"),29;break;case 114:return this.popState(),66;break;case 115:return this.pushState("text"),65;break;case 116:return"TEXT";case 117:return"QUOTE";case 118:return 9;case 119:return 10;case 120:return 11}},"anonymous"),rules:[/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:@\{)/,/^(?:["])/,/^(?:["])/,/^(?:[^\"]+)/,/^(?:[^}^"]+)/,/^(?:\})/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["][`])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:["])/,/^(?:style\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\b)/,/^(?:class\b)/,/^(?:href[\s])/,/^(?:click[\s]+)/,/^(?:[\s\n])/,/^(?:[^\s\n]*)/,/^(?:flowchart-elk\b)/,/^(?:graph\b)/,/^(?:flowchart\b)/,/^(?:subgraph\b)/,/^(?:end\b\s*)/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:(\r?\n)*\s*\n)/,/^(?:\s*LR\b)/,/^(?:\s*RL\b)/,/^(?:\s*TB\b)/,/^(?:\s*BT\b)/,/^(?:\s*TD\b)/,/^(?:\s*BR\b)/,/^(?:\s*<)/,/^(?:\s*>)/,/^(?:\s*\^)/,/^(?:\s*v\b)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:.*direction\s+TD[^\n]*)/,/^(?:[^\s\"]+@(?=[^\{\"]))/,/^(?:[0-9]+)/,/^(?:#)/,/^(?::::)/,/^(?::)/,/^(?:&)/,/^(?:;)/,/^(?:,)/,/^(?:\*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:[^-]|-(?!-)+)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:[^=]|=(?!))/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:[^\.]|\.(?!))/,/^(?:\s*~~[\~]+\s*)/,/^(?:[-/\)][\)])/,/^(?:[^\(\)\[\]\{\}]|!\)+)/,/^(?:\(-)/,/^(?:\]\))/,/^(?:\(\[)/,/^(?:\]\])/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:>)/,/^(?:\)\])/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\(\(\()/,/^(?:[\\(?=\])][\]])/,/^(?:\/(?=\])\])/,/^(?:\/(?!\])|\\(?!\])|[^\\\[\]\(\)\{\}\/]+)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:<)/,/^(?:>)/,/^(?:\^)/,/^(?:\\\|)/,/^(?:v\b)/,/^(?:\*)/,/^(?:#)/,/^(?:&)/,/^(?:([A-Za-z0-9!"\#$%&'*+\.`?\\_\/]|-(?=[^\>\-\.])|(?!))+)/,/^(?:-)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\|)/,/^(?:\|)/,/^(?:\))/,/^(?:\()/,/^(?:\])/,/^(?:\[)/,/^(?:(\}))/,/^(?:\{)/,/^(?:[^\[\]\(\)\{\}\|\"]+)/,/^(?:")/,/^(?:(\r?\n)+)/,/^(?:\s)/,/^(?:$)/],conditions:{shapeDataEndBracket:{rules:[21,24,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},shapeDataStr:{rules:[9,10,21,24,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},shapeData:{rules:[8,11,12,21,24,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},callbackargs:{rules:[17,18,21,24,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},callbackname:{rules:[14,15,16,21,24,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},href:{rules:[21,24,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},click:{rules:[21,24,33,34,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},dottedEdgeText:{rules:[21,24,75,77,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},thickEdgeText:{rules:[21,24,72,74,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},edgeText:{rules:[21,24,69,71,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},trapText:{rules:[21,24,78,81,83,85,89,91,92,93,94,95,96,109,111,113,115],inclusive:!1},ellipseText:{rules:[21,24,78,79,80,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},text:{rules:[21,24,78,81,82,83,84,85,88,89,90,91,95,96,108,109,110,111,112,113,114,115,116],inclusive:!1},vertex:{rules:[21,24,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},dir:{rules:[21,24,44,45,46,47,48,49,50,51,52,53,54,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},acc_descr_multiline:{rules:[5,6,21,24,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},acc_descr:{rules:[3,21,24,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},acc_title:{rules:[1,21,24,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},md_string:{rules:[19,20,21,24,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},string:{rules:[21,22,23,24,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},INITIAL:{rules:[0,2,4,7,13,21,24,25,26,27,28,29,30,31,32,35,36,37,38,39,40,41,42,43,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,72,73,75,76,78,81,83,85,86,87,89,91,95,96,97,98,99,100,101,102,103,104,105,106,107,109,111,113,115,117,118,119,120],inclusive:!0}}};return Pt})();Ki.lexer=Da;function Dn(){this.yy={}}return o(Dn,"Parser"),Dn.prototype=Ki,Ki.Parser=Dn,new Dn})();NB.parser=NB;MB=NB});var Bge,Fge,$ge=O(()=>{"use strict";Pge();Bge=Object.assign({},MB);Bge.parse=t=>{let e=t.replace(/}\s*\n/g,`} +`);return MB.parse(e)};Fge=Bge});var Lu,ly=O(()=>{"use strict";Lu=o(()=>` + /* Font Awesome icon styling - consolidated */ + .label-icon { + display: inline-block; + height: 1em; + overflow: visible; + vertical-align: -0.125em; + } + + .node .label-icon path { + fill: currentColor; + stroke: revert; + stroke-width: revert; + } +`,"getIconStyles")});var Xet,Ket,zge,Gge=O(()=>{"use strict";Ys();ly();Xet=o((t,e)=>{let r=_p,n=r(t,"r"),i=r(t,"g"),a=r(t,"b");return bs(n,i,a,e)},"fade"),Ket=o(t=>`.label { + font-family: ${t.fontFamily}; + color: ${t.nodeTextColor||t.textColor}; + } + .cluster-label text { + fill: ${t.titleColor}; + } + .cluster-label span { + color: ${t.titleColor}; + } + .cluster-label span p { + background-color: transparent; + } + + .label text,span { + fill: ${t.nodeTextColor||t.textColor}; + color: ${t.nodeTextColor||t.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + stroke-width: 1px; + } + .rough-node .label text , .node .label text, .image-shape .label, .icon-shape .label { + text-anchor: middle; + } + // .flowchart-label .text-outer-tspan { + // text-anchor: middle; + // } + // .flowchart-label .text-inner-tspan { + // text-anchor: start; + // } + + .node .katex path { + fill: #000; + stroke: #000; + stroke-width: 1px; + } + + .rough-node .label,.node .label, .image-shape .label, .icon-shape .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + + .root .anchor path { + fill: ${t.lineColor} !important; + stroke-width: 0; + stroke: ${t.lineColor}; + } + + .arrowheadPath { + fill: ${t.arrowheadColor}; + } + + .edgePath .path { + stroke: ${t.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${t.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${t.edgeLabelBackground}; + p { + background-color: ${t.edgeLabelBackground}; + } + rect { + opacity: 0.5; + background-color: ${t.edgeLabelBackground}; + fill: ${t.edgeLabelBackground}; + } + text-align: center; + } + + /* For html labels only */ + .labelBkg { + background-color: ${Xet(t.edgeLabelBackground,.5)}; + // background-color: + } + + .cluster rect { + fill: ${t.clusterBkg}; + stroke: ${t.clusterBorder}; + stroke-width: 1px; + } + + .cluster text { + fill: ${t.titleColor}; + } + + .cluster span { + color: ${t.titleColor}; + } + /* .cluster div { + color: ${t.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${t.fontFamily}; + font-size: 12px; + background: ${t.tertiaryColor}; + border: 1px solid ${t.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; + } + + rect.text { + fill: none; + stroke-width: 0; + } + + .icon-shape, .image-shape { + background-color: ${t.edgeLabelBackground}; + p { + background-color: ${t.edgeLabelBackground}; + padding: 2px; + } + .label rect { + opacity: 0.5; + background-color: ${t.edgeLabelBackground}; + fill: ${t.edgeLabelBackground}; + } + text-align: center; + } + ${Lu()} +`,"getStyles"),zge=Ket});var kC={};vr(kC,{diagram:()=>Qet});var Qet,EC=O(()=>{"use strict";jt();loe();Oge();$ge();Gge();Qet={parser:Fge,get db(){return new sE},renderer:Ige,styles:zge,init:o(t=>{t.flowchart||(t.flowchart={}),t.layout&&z2({layout:t.layout}),t.flowchart.arrowMarkerAbsolute=t.arrowMarkerAbsolute,z2({flowchart:{arrowMarkerAbsolute:t.arrowMarkerAbsolute}})},"init")}});var IB,Hge,Yge=O(()=>{"use strict";IB=(function(){var t=o(function(Se,Me,ke,we){for(ke=ke||{},we=Se.length;we--;ke[Se[we]]=Me);return ke},"o"),e=[6,8,10,22,24,26,28,33,34,35,36,37,40,43,44,48,50,51,52],r=[1,10],n=[1,11],i=[1,12],a=[1,13],s=[1,23],l=[1,24],u=[1,25],h=[1,26],f=[1,27],d=[1,19],p=[1,28],m=[1,29],g=[1,20],y=[1,18],v=[1,21],x=[1,22],b=[1,36],T=[1,37],E=[1,38],w=[1,39],k=[1,40],S=[6,8,10,13,15,17,20,21,22,24,26,28,33,34,35,36,37,40,43,44,48,50,51,52,65,66,67,68,69],A=[1,45],L=[1,46],I=[1,55],N=[40,48,50,51,52,70,71],C=[1,66],_=[1,64],D=[1,61],M=[1,65],R=[1,67],P=[6,8,10,13,17,22,24,26,28,33,34,35,36,37,40,41,42,43,44,48,49,50,51,52,65,66,67,68,69],B=[65,66,67,68,69],F=[1,84],G=[1,83],$=[1,81],V=[1,82],X=[6,10,42,47],Q=[6,10,13,41,42,47,48,49],H=[1,92],ie=[1,91],Y=[1,90],le=[19,58],ee=[1,101],J=[1,100],te=[19,58,60,62],Z={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,ER_DIAGRAM:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,entityName:11,relSpec:12,COLON:13,role:14,STYLE_SEPARATOR:15,idList:16,BLOCK_START:17,attributes:18,BLOCK_STOP:19,SQS:20,SQE:21,title:22,title_value:23,acc_title:24,acc_title_value:25,acc_descr:26,acc_descr_value:27,acc_descr_multiline_value:28,direction:29,classDefStatement:30,classStatement:31,styleStatement:32,direction_tb:33,direction_bt:34,direction_rl:35,direction_lr:36,CLASSDEF:37,stylesOpt:38,separator:39,UNICODE_TEXT:40,STYLE_TEXT:41,COMMA:42,CLASS:43,STYLE:44,style:45,styleComponent:46,SEMI:47,NUM:48,BRKT:49,ENTITY_NAME:50,DECIMAL_NUM:51,ENTITY_ONE:52,attribute:53,attributeType:54,attributeName:55,attributeKeyTypeList:56,attributeComment:57,ATTRIBUTE_WORD:58,attributeKeyType:59,",":60,ATTRIBUTE_KEY:61,COMMENT:62,cardinality:63,relType:64,ZERO_OR_ONE:65,ZERO_OR_MORE:66,ONE_OR_MORE:67,ONLY_ONE:68,MD_PARENT:69,NON_IDENTIFYING:70,IDENTIFYING:71,WORD:72,$accept:0,$end:1},terminals_:{2:"error",4:"ER_DIAGRAM",6:"EOF",8:"SPACE",10:"NEWLINE",13:"COLON",15:"STYLE_SEPARATOR",17:"BLOCK_START",19:"BLOCK_STOP",20:"SQS",21:"SQE",22:"title",23:"title_value",24:"acc_title",25:"acc_title_value",26:"acc_descr",27:"acc_descr_value",28:"acc_descr_multiline_value",33:"direction_tb",34:"direction_bt",35:"direction_rl",36:"direction_lr",37:"CLASSDEF",40:"UNICODE_TEXT",41:"STYLE_TEXT",42:"COMMA",43:"CLASS",44:"STYLE",47:"SEMI",48:"NUM",49:"BRKT",50:"ENTITY_NAME",51:"DECIMAL_NUM",52:"ENTITY_ONE",58:"ATTRIBUTE_WORD",60:",",61:"ATTRIBUTE_KEY",62:"COMMENT",65:"ZERO_OR_ONE",66:"ZERO_OR_MORE",67:"ONE_OR_MORE",68:"ONLY_ONE",69:"MD_PARENT",70:"NON_IDENTIFYING",71:"IDENTIFYING",72:"WORD"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,5],[9,9],[9,7],[9,7],[9,4],[9,6],[9,3],[9,5],[9,1],[9,3],[9,7],[9,9],[9,6],[9,8],[9,4],[9,6],[9,2],[9,2],[9,2],[9,1],[9,1],[9,1],[9,1],[9,1],[29,1],[29,1],[29,1],[29,1],[30,4],[16,1],[16,1],[16,3],[16,3],[31,3],[32,4],[38,1],[38,3],[45,1],[45,2],[39,1],[39,1],[39,1],[46,1],[46,1],[46,1],[46,1],[11,1],[11,1],[11,1],[11,1],[11,1],[18,1],[18,2],[53,2],[53,3],[53,3],[53,4],[54,1],[55,1],[56,1],[56,3],[59,1],[57,1],[12,3],[63,1],[63,1],[63,1],[63,1],[63,1],[64,1],[64,1],[14,1],[14,1],[14,1]],performAction:o(function(Me,ke,we,_e,$e,fe,Ke){var Te=fe.length-1;switch($e){case 1:break;case 2:this.$=[];break;case 3:fe[Te-1].push(fe[Te]),this.$=fe[Te-1];break;case 4:case 5:this.$=fe[Te];break;case 6:case 7:this.$=[];break;case 8:_e.addEntity(fe[Te-4]),_e.addEntity(fe[Te-2]),_e.addRelationship(fe[Te-4],fe[Te],fe[Te-2],fe[Te-3]);break;case 9:_e.addEntity(fe[Te-8]),_e.addEntity(fe[Te-4]),_e.addRelationship(fe[Te-8],fe[Te],fe[Te-4],fe[Te-5]),_e.setClass([fe[Te-8]],fe[Te-6]),_e.setClass([fe[Te-4]],fe[Te-2]);break;case 10:_e.addEntity(fe[Te-6]),_e.addEntity(fe[Te-2]),_e.addRelationship(fe[Te-6],fe[Te],fe[Te-2],fe[Te-3]),_e.setClass([fe[Te-6]],fe[Te-4]);break;case 11:_e.addEntity(fe[Te-6]),_e.addEntity(fe[Te-4]),_e.addRelationship(fe[Te-6],fe[Te],fe[Te-4],fe[Te-5]),_e.setClass([fe[Te-4]],fe[Te-2]);break;case 12:_e.addEntity(fe[Te-3]),_e.addAttributes(fe[Te-3],fe[Te-1]);break;case 13:_e.addEntity(fe[Te-5]),_e.addAttributes(fe[Te-5],fe[Te-1]),_e.setClass([fe[Te-5]],fe[Te-3]);break;case 14:_e.addEntity(fe[Te-2]);break;case 15:_e.addEntity(fe[Te-4]),_e.setClass([fe[Te-4]],fe[Te-2]);break;case 16:_e.addEntity(fe[Te]);break;case 17:_e.addEntity(fe[Te-2]),_e.setClass([fe[Te-2]],fe[Te]);break;case 18:_e.addEntity(fe[Te-6],fe[Te-4]),_e.addAttributes(fe[Te-6],fe[Te-1]);break;case 19:_e.addEntity(fe[Te-8],fe[Te-6]),_e.addAttributes(fe[Te-8],fe[Te-1]),_e.setClass([fe[Te-8]],fe[Te-3]);break;case 20:_e.addEntity(fe[Te-5],fe[Te-3]);break;case 21:_e.addEntity(fe[Te-7],fe[Te-5]),_e.setClass([fe[Te-7]],fe[Te-2]);break;case 22:_e.addEntity(fe[Te-3],fe[Te-1]);break;case 23:_e.addEntity(fe[Te-5],fe[Te-3]),_e.setClass([fe[Te-5]],fe[Te]);break;case 24:case 25:this.$=fe[Te].trim(),_e.setAccTitle(this.$);break;case 26:case 27:this.$=fe[Te].trim(),_e.setAccDescription(this.$);break;case 32:_e.setDirection("TB");break;case 33:_e.setDirection("BT");break;case 34:_e.setDirection("RL");break;case 35:_e.setDirection("LR");break;case 36:this.$=fe[Te-3],_e.addClass(fe[Te-2],fe[Te-1]);break;case 37:case 38:case 59:case 67:this.$=[fe[Te]];break;case 39:case 40:this.$=fe[Te-2].concat([fe[Te]]);break;case 41:this.$=fe[Te-2],_e.setClass(fe[Te-1],fe[Te]);break;case 42:this.$=fe[Te-3],_e.addCssStyles(fe[Te-2],fe[Te-1]);break;case 43:this.$=[fe[Te]];break;case 44:fe[Te-2].push(fe[Te]),this.$=fe[Te-2];break;case 46:this.$=fe[Te-1]+fe[Te];break;case 54:case 79:case 80:this.$=fe[Te].replace(/"/g,"");break;case 55:case 56:case 57:case 58:case 81:this.$=fe[Te];break;case 60:fe[Te].push(fe[Te-1]),this.$=fe[Te];break;case 61:this.$={type:fe[Te-1],name:fe[Te]};break;case 62:this.$={type:fe[Te-2],name:fe[Te-1],keys:fe[Te]};break;case 63:this.$={type:fe[Te-2],name:fe[Te-1],comment:fe[Te]};break;case 64:this.$={type:fe[Te-3],name:fe[Te-2],keys:fe[Te-1],comment:fe[Te]};break;case 65:case 66:case 69:this.$=fe[Te];break;case 68:fe[Te-2].push(fe[Te]),this.$=fe[Te-2];break;case 70:this.$=fe[Te].replace(/"/g,"");break;case 71:this.$={cardA:fe[Te],relType:fe[Te-1],cardB:fe[Te-2]};break;case 72:this.$=_e.Cardinality.ZERO_OR_ONE;break;case 73:this.$=_e.Cardinality.ZERO_OR_MORE;break;case 74:this.$=_e.Cardinality.ONE_OR_MORE;break;case 75:this.$=_e.Cardinality.ONLY_ONE;break;case 76:this.$=_e.Cardinality.MD_PARENT;break;case 77:this.$=_e.Identification.NON_IDENTIFYING;break;case 78:this.$=_e.Identification.IDENTIFYING;break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:9,22:r,24:n,26:i,28:a,29:14,30:15,31:16,32:17,33:s,34:l,35:u,36:h,37:f,40:d,43:p,44:m,48:g,50:y,51:v,52:x},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:30,11:9,22:r,24:n,26:i,28:a,29:14,30:15,31:16,32:17,33:s,34:l,35:u,36:h,37:f,40:d,43:p,44:m,48:g,50:y,51:v,52:x},t(e,[2,5]),t(e,[2,6]),t(e,[2,16],{12:31,63:35,15:[1,32],17:[1,33],20:[1,34],65:b,66:T,67:E,68:w,69:k}),{23:[1,41]},{25:[1,42]},{27:[1,43]},t(e,[2,27]),t(e,[2,28]),t(e,[2,29]),t(e,[2,30]),t(e,[2,31]),t(S,[2,54]),t(S,[2,55]),t(S,[2,56]),t(S,[2,57]),t(S,[2,58]),t(e,[2,32]),t(e,[2,33]),t(e,[2,34]),t(e,[2,35]),{16:44,40:A,41:L},{16:47,40:A,41:L},{16:48,40:A,41:L},t(e,[2,4]),{11:49,40:d,48:g,50:y,51:v,52:x},{16:50,40:A,41:L},{18:51,19:[1,52],53:53,54:54,58:I},{11:56,40:d,48:g,50:y,51:v,52:x},{64:57,70:[1,58],71:[1,59]},t(N,[2,72]),t(N,[2,73]),t(N,[2,74]),t(N,[2,75]),t(N,[2,76]),t(e,[2,24]),t(e,[2,25]),t(e,[2,26]),{13:C,38:60,41:_,42:D,45:62,46:63,48:M,49:R},t(P,[2,37]),t(P,[2,38]),{16:68,40:A,41:L,42:D},{13:C,38:69,41:_,42:D,45:62,46:63,48:M,49:R},{13:[1,70],15:[1,71]},t(e,[2,17],{63:35,12:72,17:[1,73],42:D,65:b,66:T,67:E,68:w,69:k}),{19:[1,74]},t(e,[2,14]),{18:75,19:[2,59],53:53,54:54,58:I},{55:76,58:[1,77]},{58:[2,65]},{21:[1,78]},{63:79,65:b,66:T,67:E,68:w,69:k},t(B,[2,77]),t(B,[2,78]),{6:F,10:G,39:80,42:$,47:V},{40:[1,85],41:[1,86]},t(X,[2,43],{46:87,13:C,41:_,48:M,49:R}),t(Q,[2,45]),t(Q,[2,50]),t(Q,[2,51]),t(Q,[2,52]),t(Q,[2,53]),t(e,[2,41],{42:D}),{6:F,10:G,39:88,42:$,47:V},{14:89,40:H,50:ie,72:Y},{16:93,40:A,41:L},{11:94,40:d,48:g,50:y,51:v,52:x},{18:95,19:[1,96],53:53,54:54,58:I},t(e,[2,12]),{19:[2,60]},t(le,[2,61],{56:97,57:98,59:99,61:ee,62:J}),t([19,58,61,62],[2,66]),t(e,[2,22],{15:[1,103],17:[1,102]}),t([40,48,50,51,52],[2,71]),t(e,[2,36]),{13:C,41:_,45:104,46:63,48:M,49:R},t(e,[2,47]),t(e,[2,48]),t(e,[2,49]),t(P,[2,39]),t(P,[2,40]),t(Q,[2,46]),t(e,[2,42]),t(e,[2,8]),t(e,[2,79]),t(e,[2,80]),t(e,[2,81]),{13:[1,105],42:D},{13:[1,107],15:[1,106]},{19:[1,108]},t(e,[2,15]),t(le,[2,62],{57:109,60:[1,110],62:J}),t(le,[2,63]),t(te,[2,67]),t(le,[2,70]),t(te,[2,69]),{18:111,19:[1,112],53:53,54:54,58:I},{16:113,40:A,41:L},t(X,[2,44],{46:87,13:C,41:_,48:M,49:R}),{14:114,40:H,50:ie,72:Y},{16:115,40:A,41:L},{14:116,40:H,50:ie,72:Y},t(e,[2,13]),t(le,[2,64]),{59:117,61:ee},{19:[1,118]},t(e,[2,20]),t(e,[2,23],{17:[1,119],42:D}),t(e,[2,11]),{13:[1,120],42:D},t(e,[2,10]),t(te,[2,68]),t(e,[2,18]),{18:121,19:[1,122],53:53,54:54,58:I},{14:123,40:H,50:ie,72:Y},{19:[1,124]},t(e,[2,21]),t(e,[2,9]),t(e,[2,19])],defaultActions:{55:[2,65],75:[2,60]},parseError:o(function(Me,ke){if(ke.recoverable)this.trace(Me);else{var we=new Error(Me);throw we.hash=ke,we}},"parseError"),parse:o(function(Me){var ke=this,we=[0],_e=[],$e=[null],fe=[],Ke=this.table,Te="",Be=0,Ue=0,Ge=0,Ne=2,We=1,j=fe.slice.call(arguments,1),ae=Object.create(this.lexer),U={yy:{}};for(var ce in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ce)&&(U.yy[ce]=this.yy[ce]);ae.setInput(Me,U.yy),U.yy.lexer=ae,U.yy.parser=this,typeof ae.yylloc>"u"&&(ae.yylloc={});var z=ae.yylloc;fe.push(z);var ne=ae.options&&ae.options.ranges;typeof U.yy.parseError=="function"?this.parseError=U.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function se(Dt){we.length=we.length-2*Dt,$e.length=$e.length-Dt,fe.length=fe.length-Dt}o(se,"popStack");function be(){var Dt;return Dt=_e.pop()||ae.lex()||We,typeof Dt!="number"&&(Dt instanceof Array&&(_e=Dt,Dt=_e.pop()),Dt=ke.symbols_[Dt]||Dt),Dt}o(be,"lex");for(var pe,me,Re,ge,Ie,qe,Pe={},Xe,oe,et,he;;){if(Re=we[we.length-1],this.defaultActions[Re]?ge=this.defaultActions[Re]:((pe===null||typeof pe>"u")&&(pe=be()),ge=Ke[Re]&&Ke[Re][pe]),typeof ge>"u"||!ge.length||!ge[0]){var ot="";he=[];for(Xe in Ke[Re])this.terminals_[Xe]&&Xe>Ne&&he.push("'"+this.terminals_[Xe]+"'");ae.showPosition?ot="Parse error on line "+(Be+1)+`: +`+ae.showPosition()+` +Expecting `+he.join(", ")+", got '"+(this.terminals_[pe]||pe)+"'":ot="Parse error on line "+(Be+1)+": Unexpected "+(pe==We?"end of input":"'"+(this.terminals_[pe]||pe)+"'"),this.parseError(ot,{text:ae.match,token:this.terminals_[pe]||pe,line:ae.yylineno,loc:z,expected:he})}if(ge[0]instanceof Array&&ge.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Re+", token: "+pe);switch(ge[0]){case 1:we.push(pe),$e.push(ae.yytext),fe.push(ae.yylloc),we.push(ge[1]),pe=null,me?(pe=me,me=null):(Ue=ae.yyleng,Te=ae.yytext,Be=ae.yylineno,z=ae.yylloc,Ge>0&&Ge--);break;case 2:if(oe=this.productions_[ge[1]][1],Pe.$=$e[$e.length-oe],Pe._$={first_line:fe[fe.length-(oe||1)].first_line,last_line:fe[fe.length-1].last_line,first_column:fe[fe.length-(oe||1)].first_column,last_column:fe[fe.length-1].last_column},ne&&(Pe._$.range=[fe[fe.length-(oe||1)].range[0],fe[fe.length-1].range[1]]),qe=this.performAction.apply(Pe,[Te,Ue,Be,U.yy,ge[1],$e,fe].concat(j)),typeof qe<"u")return qe;oe&&(we=we.slice(0,-1*oe*2),$e=$e.slice(0,-1*oe),fe=fe.slice(0,-1*oe)),we.push(this.productions_[ge[1]][0]),$e.push(Pe.$),fe.push(Pe._$),et=Ke[we[we.length-2]][we[we.length-1]],we.push(et);break;case 3:return!0}}return!0},"parse")},xe=(function(){var Se={EOF:1,parseError:o(function(ke,we){if(this.yy.parser)this.yy.parser.parseError(ke,we);else throw new Error(ke)},"parseError"),setInput:o(function(Me,ke){return this.yy=ke||this.yy||{},this._input=Me,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var Me=this._input[0];this.yytext+=Me,this.yyleng++,this.offset++,this.match+=Me,this.matched+=Me;var ke=Me.match(/(?:\r\n?|\n).*/g);return ke?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),Me},"input"),unput:o(function(Me){var ke=Me.length,we=Me.split(/(?:\r\n?|\n)/g);this._input=Me+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-ke),this.offset-=ke;var _e=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),we.length-1&&(this.yylineno-=we.length-1);var $e=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:we?(we.length===_e.length?this.yylloc.first_column:0)+_e[_e.length-we.length].length-we[0].length:this.yylloc.first_column-ke},this.options.ranges&&(this.yylloc.range=[$e[0],$e[0]+this.yyleng-ke]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(Me){this.unput(this.match.slice(Me))},"less"),pastInput:o(function(){var Me=this.matched.substr(0,this.matched.length-this.match.length);return(Me.length>20?"...":"")+Me.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var Me=this.match;return Me.length<20&&(Me+=this._input.substr(0,20-Me.length)),(Me.substr(0,20)+(Me.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var Me=this.pastInput(),ke=new Array(Me.length+1).join("-");return Me+this.upcomingInput()+` +`+ke+"^"},"showPosition"),test_match:o(function(Me,ke){var we,_e,$e;if(this.options.backtrack_lexer&&($e={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&($e.yylloc.range=this.yylloc.range.slice(0))),_e=Me[0].match(/(?:\r\n?|\n).*/g),_e&&(this.yylineno+=_e.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:_e?_e[_e.length-1].length-_e[_e.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+Me[0].length},this.yytext+=Me[0],this.match+=Me[0],this.matches=Me,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(Me[0].length),this.matched+=Me[0],we=this.performAction.call(this,this.yy,this,ke,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),we)return we;if(this._backtrack){for(var fe in $e)this[fe]=$e[fe];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var Me,ke,we,_e;this._more||(this.yytext="",this.match="");for(var $e=this._currentRules(),fe=0;fe<$e.length;fe++)if(we=this._input.match(this.rules[$e[fe]]),we&&(!ke||we[0].length>ke[0].length)){if(ke=we,_e=fe,this.options.backtrack_lexer){if(Me=this.test_match(we,$e[fe]),Me!==!1)return Me;if(this._backtrack){ke=!1;continue}else return!1}else if(!this.options.flex)break}return ke?(Me=this.test_match(ke,$e[_e]),Me!==!1?Me:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var ke=this.next();return ke||this.lex()},"lex"),begin:o(function(ke){this.conditionStack.push(ke)},"begin"),popState:o(function(){var ke=this.conditionStack.length-1;return ke>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(ke){return ke=this.conditionStack.length-1-Math.abs(ke||0),ke>=0?this.conditionStack[ke]:"INITIAL"},"topState"),pushState:o(function(ke){this.begin(ke)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(ke,we,_e,$e){var fe=$e;switch(_e){case 0:return this.begin("acc_title"),24;break;case 1:return this.popState(),"acc_title_value";break;case 2:return this.begin("acc_descr"),26;break;case 3:return this.popState(),"acc_descr_value";break;case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return 33;case 8:return 34;case 9:return 35;case 10:return 36;case 11:return 10;case 12:break;case 13:return 8;case 14:return 50;case 15:return 72;case 16:return 4;case 17:return this.begin("block"),17;break;case 18:return 49;case 19:return 49;case 20:return 42;case 21:return 15;case 22:return 13;case 23:break;case 24:return 61;case 25:return 58;case 26:return 58;case 27:return 62;case 28:break;case 29:return this.popState(),19;break;case 30:return we.yytext[0];case 31:return 20;case 32:return 21;case 33:return this.begin("style"),44;break;case 34:return this.popState(),10;break;case 35:break;case 36:return 13;case 37:return 42;case 38:return 49;case 39:return this.begin("style"),37;break;case 40:return 43;case 41:return 65;case 42:return 67;case 43:return 67;case 44:return 67;case 45:return 65;case 46:return 65;case 47:return 66;case 48:return 66;case 49:return 66;case 50:return 66;case 51:return 66;case 52:return 67;case 53:return 66;case 54:return 67;case 55:return 68;case 56:return 68;case 57:return 51;case 58:return 68;case 59:return 68;case 60:return 52;case 61:return 48;case 62:return 68;case 63:return 65;case 64:return 66;case 65:return 67;case 66:return 69;case 67:return 70;case 68:return 71;case 69:return 71;case 70:return 70;case 71:return 70;case 72:return 70;case 73:return 41;case 74:return 47;case 75:return 40;case 76:return we.yytext[0];case 77:return 6}},"anonymous"),rules:[/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:[\s]+)/i,/^(?:"[^"%\r\n\v\b\\]+")/i,/^(?:"[^"]*")/i,/^(?:erDiagram\b)/i,/^(?:\{)/i,/^(?:#)/i,/^(?:#)/i,/^(?:,)/i,/^(?::::)/i,/^(?::)/i,/^(?:\s+)/i,/^(?:\b((?:PK)|(?:FK)|(?:UK))\b)/i,/^(?:([^\s]*)[~].*[~]([^\s]*))/i,/^(?:([\*A-Za-z_\u00C0-\uFFFF][A-Za-z0-9\-\_\[\]\(\)\u00C0-\uFFFF\*]*))/i,/^(?:"[^"]*")/i,/^(?:[\n]+)/i,/^(?:\})/i,/^(?:.)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:style\b)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?::)/i,/^(?:,)/i,/^(?:#)/i,/^(?:classDef\b)/i,/^(?:class\b)/i,/^(?:one or zero\b)/i,/^(?:one or more\b)/i,/^(?:one or many\b)/i,/^(?:1\+)/i,/^(?:\|o\b)/i,/^(?:zero or one\b)/i,/^(?:zero or more\b)/i,/^(?:zero or many\b)/i,/^(?:0\+)/i,/^(?:\}o\b)/i,/^(?:many\(0\))/i,/^(?:many\(1\))/i,/^(?:many\b)/i,/^(?:\}\|)/i,/^(?:one\b)/i,/^(?:only one\b)/i,/^(?:[0-9]+\.[0-9]+)/i,/^(?:1(?=\s+[A-Za-z_"']))/i,/^(?:1(?=(--|\.\.|\.-|-\.)))/i,/^(?:1\b)/i,/^(?:[0-9]+)/i,/^(?:\|\|)/i,/^(?:o\|)/i,/^(?:o\{)/i,/^(?:\|\{)/i,/^(?:u(?=[\.\-\|]))/i,/^(?:\.\.)/i,/^(?:--)/i,/^(?:to\b)/i,/^(?:optionally to\b)/i,/^(?:\.-)/i,/^(?:-\.)/i,/^(?:([^\x00-\x7F]|\w|-|\*)+)/i,/^(?:;)/i,/^(?:([^\x00-\x7F]|\w|-|\*|\.)+)/i,/^(?:.)/i,/^(?:$)/i],conditions:{style:{rules:[34,35,36,37,38,73,74],inclusive:!1},acc_descr_multiline:{rules:[5,6],inclusive:!1},acc_descr:{rules:[3],inclusive:!1},acc_title:{rules:[1],inclusive:!1},block:{rules:[23,24,25,26,27,28,29,30],inclusive:!1},INITIAL:{rules:[0,2,4,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,31,32,33,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,75,76,77],inclusive:!0}}};return Se})();Z.lexer=xe;function de(){this.yy={}}return o(de,"Parser"),de.prototype=Z,Z.Parser=de,new de})();IB.parser=IB;Hge=IB});var SC,jge=O(()=>{"use strict";xt();jt();si();ar();SC=class{constructor(){this.entities=new Map;this.relationships=[];this.classes=new Map;this.direction="TB";this.Cardinality={ZERO_OR_ONE:"ZERO_OR_ONE",ZERO_OR_MORE:"ZERO_OR_MORE",ONE_OR_MORE:"ONE_OR_MORE",ONLY_ONE:"ONLY_ONE",MD_PARENT:"MD_PARENT"};this.Identification={NON_IDENTIFYING:"NON_IDENTIFYING",IDENTIFYING:"IDENTIFYING"};this.setAccTitle=Lr;this.getAccTitle=Or;this.setAccDescription=Pr;this.getAccDescription=Br;this.setDiagramTitle=zr;this.getDiagramTitle=Fr;this.getConfig=o(()=>ve().er,"getConfig");this.clear(),this.addEntity=this.addEntity.bind(this),this.addAttributes=this.addAttributes.bind(this),this.addRelationship=this.addRelationship.bind(this),this.setDirection=this.setDirection.bind(this),this.addCssStyles=this.addCssStyles.bind(this),this.addClass=this.addClass.bind(this),this.setClass=this.setClass.bind(this),this.setAccTitle=this.setAccTitle.bind(this),this.setAccDescription=this.setAccDescription.bind(this)}static{o(this,"ErDB")}addEntity(e,r=""){return this.entities.has(e)?!this.entities.get(e)?.alias&&r&&(this.entities.get(e).alias=r,K.info(`Add alias '${r}' to entity '${e}'`)):(this.entities.set(e,{id:`entity-${e}-${this.entities.size}`,label:e,attributes:[],alias:r,shape:"erBox",look:ve().look??"default",cssClasses:"default",cssStyles:[],labelType:"markdown"}),K.info("Added new entity :",e)),this.entities.get(e)}getEntity(e){return this.entities.get(e)}getEntities(){return this.entities}getClasses(){return this.classes}addAttributes(e,r){let n=this.addEntity(e),i;for(i=r.length-1;i>=0;i--)r[i].keys||(r[i].keys=[]),r[i].comment||(r[i].comment=""),n.attributes.push(r[i]),K.debug("Added attribute ",r[i].name)}addRelationship(e,r,n,i){let a=this.entities.get(e),s=this.entities.get(n);if(!a||!s)return;let l={entityA:a.id,roleA:r,entityB:s.id,relSpec:i};this.relationships.push(l),K.debug("Added new relationship :",l)}getRelationships(){return this.relationships}getDirection(){return this.direction}setDirection(e){this.direction=e}getCompiledStyles(e){let r=[];for(let n of e){let i=this.classes.get(n);i?.styles&&(r=[...r,...i.styles??[]].map(a=>a.trim())),i?.textStyles&&(r=[...r,...i.textStyles??[]].map(a=>a.trim()))}return r}addCssStyles(e,r){for(let n of e){let i=this.entities.get(n);if(!r||!i)return;for(let a of r)i.cssStyles.push(a)}}addClass(e,r){e.forEach(n=>{let i=this.classes.get(n);i===void 0&&(i={id:n,styles:[],textStyles:[]},this.classes.set(n,i)),r&&r.forEach(function(a){if(/color/.exec(a)){let s=a.replace("fill","bgFill");i.textStyles.push(s)}i.styles.push(a)})})}setClass(e,r){for(let n of e){let i=this.entities.get(n);if(i)for(let a of r)i.cssClasses+=" "+a}}clear(){this.entities=new Map,this.classes=new Map,this.relationships=[],_r()}getData(){let e=[],r=[],n=ve();for(let a of this.entities.keys()){let s=this.entities.get(a);s&&(s.cssCompiledStyles=this.getCompiledStyles(s.cssClasses.split(" ")),e.push(s))}let i=0;for(let a of this.relationships){let s={id:hu(a.entityA,a.entityB,{prefix:"id",counter:i++}),type:"normal",curve:"basis",start:a.entityA,end:a.entityB,label:a.roleA,labelpos:"c",thickness:"normal",classes:"relationshipLine",arrowTypeStart:a.relSpec.cardB.toLowerCase(),arrowTypeEnd:a.relSpec.cardA.toLowerCase(),pattern:a.relSpec.relType=="IDENTIFYING"?"solid":"dashed",look:n.look,labelType:"markdown"};r.push(s)}return{nodes:e,edges:r,other:{},config:n,direction:"TB"}}}});var OB={};vr(OB,{draw:()=>itt});var itt,Xge=O(()=>{"use strict";jt();xt();b0();Rd();Ld();ar();Ar();itt=o(async function(t,e,r,n){K.info("REF0:"),K.info("Drawing er diagram (unified)",e);let{securityLevel:i,er:a,layout:s}=ve(),l=n.db.getData(),u=Sl(e,i);l.type=n.type,l.layoutAlgorithm=Ru(s),l.config.flowchart.nodeSpacing=a?.nodeSpacing||140,l.config.flowchart.rankSpacing=a?.rankSpacing||80,l.direction=n.db.getDirection(),l.markers=["only_one","zero_or_one","one_or_more","zero_or_more"],l.diagramId=e,await Ol(l,u),l.layoutAlgorithm==="elk"&&u.select(".edges").lower();let h=u.selectAll('[id*="-background"]');Array.from(h).length>0&&h.each(function(){let d=je(this),m=d.attr("id").replace("-background",""),g=u.select(`#${CSS.escape(m)}`);if(!g.empty()){let y=g.attr("transform");d.attr("transform",y)}});let f=8;Xt.insertTitle(u,"erDiagramTitleText",a?.titleTopMargin??25,n.db.getDiagramTitle()),bo(u,f,"erDiagram",a?.useMaxWidth??!0)},"draw")});var att,stt,Kge,Qge=O(()=>{"use strict";Ys();att=o((t,e)=>{let r=_p,n=r(t,"r"),i=r(t,"g"),a=r(t,"b");return bs(n,i,a,e)},"fade"),stt=o(t=>` + .entityBox { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + } + + .relationshipLabelBox { + fill: ${t.tertiaryColor}; + opacity: 0.7; + background-color: ${t.tertiaryColor}; + rect { + opacity: 0.5; + } + } + + .labelBkg { + background-color: ${att(t.tertiaryColor,.5)}; + } + + .edgeLabel .label { + fill: ${t.nodeBorder}; + font-size: 14px; + } + + .label { + font-family: ${t.fontFamily}; + color: ${t.nodeTextColor||t.textColor}; + } + + .edge-pattern-dashed { + stroke-dasharray: 8,8; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon + { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + stroke-width: 1px; + } + + .relationshipLine { + stroke: ${t.lineColor}; + stroke-width: 1; + fill: none; + } + + .marker { + fill: none !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; + } + + .edgeLabel { + background-color: ${t.edgeLabelBackground}; + } + .edgeLabel .label rect { + fill: ${t.edgeLabelBackground}; + } + .edgeLabel .label text { + fill: ${t.textColor}; + } +`,"getStyles"),Kge=stt});var Zge={};vr(Zge,{diagram:()=>ott});var ott,Jge=O(()=>{"use strict";Yge();jge();Xge();Qge();ott={parser:Hge,get db(){return new SC},renderer:OB,styles:Kge}});function Si(t){return typeof t=="object"&&t!==null&&typeof t.$type=="string"}function oa(t){return typeof t=="object"&&t!==null&&typeof t.$refText=="string"&&"ref"in t}function Xo(t){return typeof t=="object"&&t!==null&&typeof t.$refText=="string"&&"items"in t}function PB(t){return typeof t=="object"&&t!==null&&typeof t.name=="string"&&typeof t.type=="string"&&typeof t.path=="string"}function j0(t){return typeof t=="object"&&t!==null&&typeof t.info=="object"&&typeof t.message=="string"}function wc(t){return typeof t=="object"&&t!==null&&Array.isArray(t.content)}function Nd(t){return typeof t=="object"&&t!==null&&typeof t.tokenType=="object"}function fT(t){return wc(t)&&typeof t.fullText=="string"}var Y0,kc=O(()=>{"use strict";o(Si,"isAstNode");o(oa,"isReference");o(Xo,"isMultiReference");o(PB,"isAstNodeDescription");o(j0,"isLinkingError");Y0=class{static{o(this,"AbstractAstReflection")}constructor(){this.subtypes={},this.allSubtypes={}}getAllTypes(){return Object.keys(this.types)}getReferenceType(e){let r=this.types[e.container.$type];if(!r)throw new Error(`Type ${e.container.$type||"undefined"} not found.`);let n=r.properties[e.property]?.referenceType;if(!n)throw new Error(`Property ${e.property||"undefined"} of type ${e.container.$type} is not a reference.`);return n}getTypeMetaData(e){let r=this.types[e];return r||{name:e,properties:{},superTypes:[]}}isInstance(e,r){return Si(e)&&this.isSubtype(e.$type,r)}isSubtype(e,r){if(e===r)return!0;let n=this.subtypes[e];n||(n=this.subtypes[e]={});let i=n[r];if(i!==void 0)return i;{let a=this.types[e],s=a?a.superTypes.some(l=>this.isSubtype(l,r)):!1;return n[r]=s,s}}getAllSubTypes(e){let r=this.allSubtypes[e];if(r)return r;{let n=this.getAllTypes(),i=[];for(let a of n)this.isSubtype(a,e)&&i.push(a);return this.allSubtypes[e]=i,i}}};o(wc,"isCompositeCstNode");o(Nd,"isLeafCstNode");o(fT,"isRootCstNode")});function ftt(t){return typeof t=="string"?t:typeof t>"u"?"undefined":typeof t.toString=="function"?t.toString():Object.prototype.toString.call(t)}function CC(t){return!!t&&typeof t[Symbol.iterator]=="function"}function Hr(...t){if(t.length===1){let e=t[0];if(e instanceof Ko)return e;if(CC(e))return new Ko(()=>e[Symbol.iterator](),r=>r.next());if(typeof e.length=="number")return new Ko(()=>({index:0}),r=>r.index1?new Ko(()=>({collIndex:0,arrIndex:0}),e=>{do{if(e.iterator){let r=e.iterator.next();if(!r.done)return r;e.iterator=void 0}if(e.array){if(e.arrIndex{"use strict";Ko=class t{static{o(this,"StreamImpl")}constructor(e,r){this.startFn=e,this.nextFn=r}iterator(){let e={state:this.startFn(),next:o(()=>this.nextFn(e.state),"next"),[Symbol.iterator]:()=>e};return e}[Symbol.iterator](){return this.iterator()}isEmpty(){return!!this.iterator().next().done}count(){let e=this.iterator(),r=0,n=e.next();for(;!n.done;)r++,n=e.next();return r}toArray(){let e=[],r=this.iterator(),n;do n=r.next(),n.value!==void 0&&e.push(n.value);while(!n.done);return e}toSet(){return new Set(this)}toMap(e,r){let n=this.map(i=>[e?e(i):i,r?r(i):i]);return new Map(n)}toString(){return this.join()}concat(e){return new t(()=>({first:this.startFn(),firstDone:!1,iterator:e[Symbol.iterator]()}),r=>{let n;if(!r.firstDone){do if(n=this.nextFn(r.first),!n.done)return n;while(!n.done);r.firstDone=!0}do if(n=r.iterator.next(),!n.done)return n;while(!n.done);return ls})}join(e=","){let r=this.iterator(),n="",i,a=!1;do i=r.next(),i.done||(a&&(n+=e),n+=ftt(i.value)),a=!0;while(!i.done);return n}indexOf(e,r=0){let n=this.iterator(),i=0,a=n.next();for(;!a.done;){if(i>=r&&a.value===e)return i;a=n.next(),i++}return-1}every(e){let r=this.iterator(),n=r.next();for(;!n.done;){if(!e(n.value))return!1;n=r.next()}return!0}some(e){let r=this.iterator(),n=r.next();for(;!n.done;){if(e(n.value))return!0;n=r.next()}return!1}forEach(e){let r=this.iterator(),n=0,i=r.next();for(;!i.done;)e(i.value,n),i=r.next(),n++}map(e){return new t(this.startFn,r=>{let{done:n,value:i}=this.nextFn(r);return n?ls:{done:!1,value:e(i)}})}filter(e){return new t(this.startFn,r=>{let n;do if(n=this.nextFn(r),!n.done&&e(n.value))return n;while(!n.done);return ls})}nonNullable(){return this.filter(e=>e!=null)}reduce(e,r){let n=this.iterator(),i=r,a=n.next();for(;!a.done;)i===void 0?i=a.value:i=e(i,a.value),a=n.next();return i}reduceRight(e,r){return this.recursiveReduce(this.iterator(),e,r)}recursiveReduce(e,r,n){let i=e.next();if(i.done)return n;let a=this.recursiveReduce(e,r,n);return a===void 0?i.value:r(a,i.value)}find(e){let r=this.iterator(),n=r.next();for(;!n.done;){if(e(n.value))return n.value;n=r.next()}}findIndex(e){let r=this.iterator(),n=0,i=r.next();for(;!i.done;){if(e(i.value))return n;i=r.next(),n++}return-1}includes(e){let r=this.iterator(),n=r.next();for(;!n.done;){if(n.value===e)return!0;n=r.next()}return!1}flatMap(e){return new t(()=>({this:this.startFn()}),r=>{do{if(r.iterator){let a=r.iterator.next();if(a.done)r.iterator=void 0;else return a}let{done:n,value:i}=this.nextFn(r.this);if(!n){let a=e(i);if(CC(a))r.iterator=a[Symbol.iterator]();else return{done:!1,value:a}}}while(r.iterator);return ls})}flat(e){if(e===void 0&&(e=1),e<=0)return this;let r=e>1?this.flat(e-1):this;return new t(()=>({this:r.startFn()}),n=>{do{if(n.iterator){let s=n.iterator.next();if(s.done)n.iterator=void 0;else return s}let{done:i,value:a}=r.nextFn(n.this);if(!i)if(CC(a))n.iterator=a[Symbol.iterator]();else return{done:!1,value:a}}while(n.iterator);return ls})}head(){let r=this.iterator().next();if(!r.done)return r.value}tail(e=1){return new t(()=>{let r=this.startFn();for(let n=0;n({size:0,state:this.startFn()}),r=>(r.size++,r.size>e?ls:this.nextFn(r.state)))}distinct(e){return new t(()=>({set:new Set,internalState:this.startFn()}),r=>{let n;do if(n=this.nextFn(r.internalState),!n.done){let i=e?e(n.value):n.value;if(!r.set.has(i))return r.set.add(i),n}while(!n.done);return ls})}exclude(e,r){let n=new Set;for(let i of e){let a=r?r(i):i;n.add(a)}return this.filter(i=>{let a=r?r(i):i;return!n.has(a)})}};o(ftt,"toString");o(CC,"isIterable");Md=new Ko(()=>{},()=>ls),ls=Object.freeze({done:!0,value:void 0});o(Hr,"stream");Nu=class extends Ko{static{o(this,"TreeStreamImpl")}constructor(e,r,n){super(()=>({iterators:n?.includeRoot?[[e][Symbol.iterator]()]:[r(e)[Symbol.iterator]()],pruned:!1}),i=>{for(i.pruned&&(i.iterators.pop(),i.pruned=!1);i.iterators.length>0;){let s=i.iterators[i.iterators.length-1].next();if(s.done)i.iterators.pop();else return i.iterators.push(r(s.value)[Symbol.iterator]()),s}return ls})}iterator(){let e={state:this.startFn(),next:o(()=>this.nextFn(e.state),"next"),prune:o(()=>{e.state.pruned=!0},"prune"),[Symbol.iterator]:()=>e};return e}};(function(t){function e(a){return a.reduce((s,l)=>s+l,0)}o(e,"sum"),t.sum=e;function r(a){return a.reduce((s,l)=>s*l,0)}o(r,"product"),t.product=r;function n(a){return a.reduce((s,l)=>Math.min(s,l))}o(n,"min"),t.min=n;function i(a){return a.reduce((s,l)=>Math.max(s,l))}o(i,"max"),t.max=i})(cy||(cy={}))});var _C={};vr(_C,{assignMandatoryProperties:()=>$B,copyAstNode:()=>FB,findRootNode:()=>hy,getContainerOfType:()=>zh,getDocument:()=>cs,getReferenceNodes:()=>AC,hasContainerOfType:()=>dtt,linkContentToContainer:()=>uy,streamAllContents:()=>Ec,streamAst:()=>Ps,streamContents:()=>dT,streamReferences:()=>Id});function uy(t,e={}){for(let[r,n]of Object.entries(t))r.startsWith("$")||(Array.isArray(n)?n.forEach((i,a)=>{Si(i)&&(i.$container=t,i.$containerProperty=r,i.$containerIndex=a,e.deep&&uy(i,e))}):Si(n)&&(n.$container=t,n.$containerProperty=r,e.deep&&uy(n,e)))}function zh(t,e){let r=t;for(;r;){if(e(r))return r;r=r.$container}}function dtt(t,e){let r=t;for(;r;){if(e(r))return!0;r=r.$container}return!1}function cs(t){let r=hy(t).$document;if(!r)throw new Error("AST node has no document.");return r}function hy(t){for(;t.$container;)t=t.$container;return t}function AC(t){return oa(t)?t.ref?[t.ref]:[]:Xo(t)?t.items.map(e=>e.ref):[]}function dT(t,e){if(!t)throw new Error("Node must be an AstNode.");let r=e?.range;return new Ko(()=>({keys:Object.keys(t),keyIndex:0,arrayIndex:0}),n=>{for(;n.keyIndexdT(r,e))}function Ps(t,e){if(t){if(e?.range&&!BB(t,e.range))return new Nu(t,()=>[])}else throw new Error("Root node must be an AstNode.");return new Nu(t,r=>dT(r,e),{includeRoot:!0})}function BB(t,e){if(!e)return!0;let r=t.$cstNode?.range;return r?zB(r,e):!1}function Id(t){return new Ko(()=>({keys:Object.keys(t),keyIndex:0,arrayIndex:0}),e=>{for(;e.keyIndex{"use strict";kc();Os();Sc();o(uy,"linkContentToContainer");o(zh,"getContainerOfType");o(dtt,"hasContainerOfType");o(cs,"getDocument");o(hy,"findRootNode");o(AC,"getReferenceNodes");o(dT,"streamContents");o(Ec,"streamAllContents");o(Ps,"streamAst");o(BB,"isAstNodeInRange");o(Id,"streamReferences");o($B,"assignMandatoryProperties");o(t1e,"copyDefaultValue");o(FB,"copyAstNode")});var ET={};vr(ET,{AbstractElement:()=>To,AbstractParserRule:()=>pT,AbstractRule:()=>fy,AbstractType:()=>Qo,Action:()=>Od,Alternatives:()=>mT,ArrayLiteral:()=>DC,ArrayType:()=>RC,Assignment:()=>Pd,BooleanLiteral:()=>LC,CharacterRange:()=>Bd,Condition:()=>Fd,Conjunction:()=>gT,CrossReference:()=>$d,Disjunction:()=>yT,EndOfFile:()=>NC,Grammar:()=>Gh,GrammarImport:()=>MC,Group:()=>X0,InferredType:()=>IC,InfixRule:()=>Mu,InfixRuleOperatorList:()=>vT,InfixRuleOperators:()=>OC,Interface:()=>dy,Keyword:()=>py,LangiumGrammarAstReflection:()=>xy,LangiumGrammarTerminals:()=>ptt,NamedArgument:()=>my,NegatedToken:()=>K0,Negation:()=>PC,NumberLiteral:()=>BC,Parameter:()=>gy,ParameterReference:()=>FC,ParserRule:()=>Cc,ReferenceType:()=>xT,RegexToken:()=>Q0,ReturnType:()=>$C,RuleCall:()=>Z0,SimpleType:()=>yy,StringLiteral:()=>zC,TerminalAlternatives:()=>J0,TerminalElement:()=>wo,TerminalGroup:()=>em,TerminalRule:()=>Vh,TerminalRuleCall:()=>tm,Type:()=>bT,TypeAttribute:()=>rm,TypeDefinition:()=>nm,UnionType:()=>GC,UnorderedGroup:()=>TT,UntilToken:()=>im,ValueLiteral:()=>am,Wildcard:()=>vy,isAbstractElement:()=>wT,isAbstractParserRule:()=>qh,isAbstractRule:()=>mtt,isAbstractType:()=>gtt,isAction:()=>Uh,isAlternatives:()=>VC,isArrayLiteral:()=>ytt,isArrayType:()=>GB,isAssignment:()=>Ac,isBooleanLiteral:()=>VB,isCharacterRange:()=>qB,isCondition:()=>vtt,isConjunction:()=>UB,isCrossReference:()=>_c,isDisjunction:()=>WB,isEndOfFile:()=>HB,isGrammar:()=>xtt,isGrammarImport:()=>btt,isGroup:()=>zd,isInferredType:()=>kT,isInfixRule:()=>Gd,isInfixRuleOperatorList:()=>Ttt,isInfixRuleOperators:()=>wtt,isInterface:()=>YB,isKeyword:()=>Pl,isNamedArgument:()=>ktt,isNegatedToken:()=>jB,isNegation:()=>XB,isNumberLiteral:()=>Ett,isParameter:()=>Stt,isParameterReference:()=>KB,isParserRule:()=>Sa,isReferenceType:()=>QB,isRegexToken:()=>ZB,isReturnType:()=>JB,isRuleCall:()=>Dc,isSimpleType:()=>qC,isStringLiteral:()=>Ctt,isTerminalAlternatives:()=>eF,isTerminalElement:()=>Att,isTerminalGroup:()=>tF,isTerminalRule:()=>Bs,isTerminalRuleCall:()=>UC,isType:()=>WC,isTypeAttribute:()=>_tt,isTypeDefinition:()=>Dtt,isUnionType:()=>rF,isUnorderedGroup:()=>HC,isUntilToken:()=>nF,isValueLiteral:()=>Rtt,isWildcard:()=>iF,reflection:()=>mr});function wT(t){return mr.isInstance(t,To.$type)}function qh(t){return mr.isInstance(t,pT.$type)}function mtt(t){return mr.isInstance(t,fy.$type)}function gtt(t){return mr.isInstance(t,Qo.$type)}function Uh(t){return mr.isInstance(t,Od.$type)}function VC(t){return mr.isInstance(t,mT.$type)}function ytt(t){return mr.isInstance(t,DC.$type)}function GB(t){return mr.isInstance(t,RC.$type)}function Ac(t){return mr.isInstance(t,Pd.$type)}function VB(t){return mr.isInstance(t,LC.$type)}function qB(t){return mr.isInstance(t,Bd.$type)}function vtt(t){return mr.isInstance(t,Fd.$type)}function UB(t){return mr.isInstance(t,gT.$type)}function _c(t){return mr.isInstance(t,$d.$type)}function WB(t){return mr.isInstance(t,yT.$type)}function HB(t){return mr.isInstance(t,NC.$type)}function xtt(t){return mr.isInstance(t,Gh.$type)}function btt(t){return mr.isInstance(t,MC.$type)}function zd(t){return mr.isInstance(t,X0.$type)}function kT(t){return mr.isInstance(t,IC.$type)}function Gd(t){return mr.isInstance(t,Mu.$type)}function Ttt(t){return mr.isInstance(t,vT.$type)}function wtt(t){return mr.isInstance(t,OC.$type)}function YB(t){return mr.isInstance(t,dy.$type)}function Pl(t){return mr.isInstance(t,py.$type)}function ktt(t){return mr.isInstance(t,my.$type)}function jB(t){return mr.isInstance(t,K0.$type)}function XB(t){return mr.isInstance(t,PC.$type)}function Ett(t){return mr.isInstance(t,BC.$type)}function Stt(t){return mr.isInstance(t,gy.$type)}function KB(t){return mr.isInstance(t,FC.$type)}function Sa(t){return mr.isInstance(t,Cc.$type)}function QB(t){return mr.isInstance(t,xT.$type)}function ZB(t){return mr.isInstance(t,Q0.$type)}function JB(t){return mr.isInstance(t,$C.$type)}function Dc(t){return mr.isInstance(t,Z0.$type)}function qC(t){return mr.isInstance(t,yy.$type)}function Ctt(t){return mr.isInstance(t,zC.$type)}function eF(t){return mr.isInstance(t,J0.$type)}function Att(t){return mr.isInstance(t,wo.$type)}function tF(t){return mr.isInstance(t,em.$type)}function Bs(t){return mr.isInstance(t,Vh.$type)}function UC(t){return mr.isInstance(t,tm.$type)}function WC(t){return mr.isInstance(t,bT.$type)}function _tt(t){return mr.isInstance(t,rm.$type)}function Dtt(t){return mr.isInstance(t,nm.$type)}function rF(t){return mr.isInstance(t,GC.$type)}function HC(t){return mr.isInstance(t,TT.$type)}function nF(t){return mr.isInstance(t,im.$type)}function Rtt(t){return mr.isInstance(t,am.$type)}function iF(t){return mr.isInstance(t,vy.$type)}var ptt,To,pT,fy,Qo,Od,mT,DC,RC,Pd,LC,Bd,Fd,gT,$d,yT,NC,Gh,MC,X0,IC,Mu,vT,OC,dy,py,my,K0,PC,BC,gy,FC,Cc,xT,Q0,$C,Z0,yy,zC,J0,wo,em,Vh,tm,bT,rm,nm,GC,TT,im,am,vy,xy,mr,Zo=O(()=>{"use strict";kc();ptt={ID:/\^?[_a-zA-Z][\w_]*/,STRING:/"(\\.|[^"\\])*"|'(\\.|[^'\\])*'/,NUMBER:/NaN|-?((\d*\.\d+|\d+)([Ee][+-]?\d+)?|Infinity)/,RegexLiteral:/\/(?![*+?])(?:[^\r\n\[/\\]|\\.|\[(?:[^\r\n\]\\]|\\.)*\])+\/[a-z]*/,WS:/\s+/,ML_COMMENT:/\/\*[\s\S]*?\*\//,SL_COMMENT:/\/\/[^\n\r]*/},To={$type:"AbstractElement",cardinality:"cardinality"};o(wT,"isAbstractElement");pT={$type:"AbstractParserRule"};o(qh,"isAbstractParserRule");fy={$type:"AbstractRule"};o(mtt,"isAbstractRule");Qo={$type:"AbstractType"};o(gtt,"isAbstractType");Od={$type:"Action",cardinality:"cardinality",feature:"feature",inferredType:"inferredType",operator:"operator",type:"type"};o(Uh,"isAction");mT={$type:"Alternatives",cardinality:"cardinality",elements:"elements"};o(VC,"isAlternatives");DC={$type:"ArrayLiteral",elements:"elements"};o(ytt,"isArrayLiteral");RC={$type:"ArrayType",elementType:"elementType"};o(GB,"isArrayType");Pd={$type:"Assignment",cardinality:"cardinality",feature:"feature",operator:"operator",predicate:"predicate",terminal:"terminal"};o(Ac,"isAssignment");LC={$type:"BooleanLiteral",true:"true"};o(VB,"isBooleanLiteral");Bd={$type:"CharacterRange",cardinality:"cardinality",left:"left",lookahead:"lookahead",parenthesized:"parenthesized",right:"right"};o(qB,"isCharacterRange");Fd={$type:"Condition"};o(vtt,"isCondition");gT={$type:"Conjunction",left:"left",right:"right"};o(UB,"isConjunction");$d={$type:"CrossReference",cardinality:"cardinality",deprecatedSyntax:"deprecatedSyntax",isMulti:"isMulti",terminal:"terminal",type:"type"};o(_c,"isCrossReference");yT={$type:"Disjunction",left:"left",right:"right"};o(WB,"isDisjunction");NC={$type:"EndOfFile",cardinality:"cardinality"};o(HB,"isEndOfFile");Gh={$type:"Grammar",imports:"imports",interfaces:"interfaces",isDeclared:"isDeclared",name:"name",rules:"rules",types:"types"};o(xtt,"isGrammar");MC={$type:"GrammarImport",path:"path"};o(btt,"isGrammarImport");X0={$type:"Group",cardinality:"cardinality",elements:"elements",guardCondition:"guardCondition",predicate:"predicate"};o(zd,"isGroup");IC={$type:"InferredType",name:"name"};o(kT,"isInferredType");Mu={$type:"InfixRule",call:"call",dataType:"dataType",inferredType:"inferredType",name:"name",operators:"operators",parameters:"parameters",returnType:"returnType"};o(Gd,"isInfixRule");vT={$type:"InfixRuleOperatorList",associativity:"associativity",operators:"operators"};o(Ttt,"isInfixRuleOperatorList");OC={$type:"InfixRuleOperators",precedences:"precedences"};o(wtt,"isInfixRuleOperators");dy={$type:"Interface",attributes:"attributes",name:"name",superTypes:"superTypes"};o(YB,"isInterface");py={$type:"Keyword",cardinality:"cardinality",predicate:"predicate",value:"value"};o(Pl,"isKeyword");my={$type:"NamedArgument",calledByName:"calledByName",parameter:"parameter",value:"value"};o(ktt,"isNamedArgument");K0={$type:"NegatedToken",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized",terminal:"terminal"};o(jB,"isNegatedToken");PC={$type:"Negation",value:"value"};o(XB,"isNegation");BC={$type:"NumberLiteral",value:"value"};o(Ett,"isNumberLiteral");gy={$type:"Parameter",name:"name"};o(Stt,"isParameter");FC={$type:"ParameterReference",parameter:"parameter"};o(KB,"isParameterReference");Cc={$type:"ParserRule",dataType:"dataType",definition:"definition",entry:"entry",fragment:"fragment",inferredType:"inferredType",name:"name",parameters:"parameters",returnType:"returnType"};o(Sa,"isParserRule");xT={$type:"ReferenceType",isMulti:"isMulti",referenceType:"referenceType"};o(QB,"isReferenceType");Q0={$type:"RegexToken",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized",regex:"regex"};o(ZB,"isRegexToken");$C={$type:"ReturnType",name:"name"};o(JB,"isReturnType");Z0={$type:"RuleCall",arguments:"arguments",cardinality:"cardinality",predicate:"predicate",rule:"rule"};o(Dc,"isRuleCall");yy={$type:"SimpleType",primitiveType:"primitiveType",stringType:"stringType",typeRef:"typeRef"};o(qC,"isSimpleType");zC={$type:"StringLiteral",value:"value"};o(Ctt,"isStringLiteral");J0={$type:"TerminalAlternatives",cardinality:"cardinality",elements:"elements",lookahead:"lookahead",parenthesized:"parenthesized"};o(eF,"isTerminalAlternatives");wo={$type:"TerminalElement",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized"};o(Att,"isTerminalElement");em={$type:"TerminalGroup",cardinality:"cardinality",elements:"elements",lookahead:"lookahead",parenthesized:"parenthesized"};o(tF,"isTerminalGroup");Vh={$type:"TerminalRule",definition:"definition",fragment:"fragment",hidden:"hidden",name:"name",type:"type"};o(Bs,"isTerminalRule");tm={$type:"TerminalRuleCall",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized",rule:"rule"};o(UC,"isTerminalRuleCall");bT={$type:"Type",name:"name",type:"type"};o(WC,"isType");rm={$type:"TypeAttribute",defaultValue:"defaultValue",isOptional:"isOptional",name:"name",type:"type"};o(_tt,"isTypeAttribute");nm={$type:"TypeDefinition"};o(Dtt,"isTypeDefinition");GC={$type:"UnionType",types:"types"};o(rF,"isUnionType");TT={$type:"UnorderedGroup",cardinality:"cardinality",elements:"elements"};o(HC,"isUnorderedGroup");im={$type:"UntilToken",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized",terminal:"terminal"};o(nF,"isUntilToken");am={$type:"ValueLiteral"};o(Rtt,"isValueLiteral");vy={$type:"Wildcard",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized"};o(iF,"isWildcard");xy=class extends Y0{static{o(this,"LangiumGrammarAstReflection")}constructor(){super(...arguments),this.types={AbstractElement:{name:To.$type,properties:{cardinality:{name:To.cardinality}},superTypes:[]},AbstractParserRule:{name:pT.$type,properties:{},superTypes:[fy.$type,Qo.$type]},AbstractRule:{name:fy.$type,properties:{},superTypes:[]},AbstractType:{name:Qo.$type,properties:{},superTypes:[]},Action:{name:Od.$type,properties:{cardinality:{name:Od.cardinality},feature:{name:Od.feature},inferredType:{name:Od.inferredType},operator:{name:Od.operator},type:{name:Od.type,referenceType:Qo.$type}},superTypes:[To.$type]},Alternatives:{name:mT.$type,properties:{cardinality:{name:mT.cardinality},elements:{name:mT.elements,defaultValue:[]}},superTypes:[To.$type]},ArrayLiteral:{name:DC.$type,properties:{elements:{name:DC.elements,defaultValue:[]}},superTypes:[am.$type]},ArrayType:{name:RC.$type,properties:{elementType:{name:RC.elementType}},superTypes:[nm.$type]},Assignment:{name:Pd.$type,properties:{cardinality:{name:Pd.cardinality},feature:{name:Pd.feature},operator:{name:Pd.operator},predicate:{name:Pd.predicate},terminal:{name:Pd.terminal}},superTypes:[To.$type]},BooleanLiteral:{name:LC.$type,properties:{true:{name:LC.true,defaultValue:!1}},superTypes:[Fd.$type,am.$type]},CharacterRange:{name:Bd.$type,properties:{cardinality:{name:Bd.cardinality},left:{name:Bd.left},lookahead:{name:Bd.lookahead},parenthesized:{name:Bd.parenthesized,defaultValue:!1},right:{name:Bd.right}},superTypes:[wo.$type]},Condition:{name:Fd.$type,properties:{},superTypes:[]},Conjunction:{name:gT.$type,properties:{left:{name:gT.left},right:{name:gT.right}},superTypes:[Fd.$type]},CrossReference:{name:$d.$type,properties:{cardinality:{name:$d.cardinality},deprecatedSyntax:{name:$d.deprecatedSyntax,defaultValue:!1},isMulti:{name:$d.isMulti,defaultValue:!1},terminal:{name:$d.terminal},type:{name:$d.type,referenceType:Qo.$type}},superTypes:[To.$type]},Disjunction:{name:yT.$type,properties:{left:{name:yT.left},right:{name:yT.right}},superTypes:[Fd.$type]},EndOfFile:{name:NC.$type,properties:{cardinality:{name:NC.cardinality}},superTypes:[To.$type]},Grammar:{name:Gh.$type,properties:{imports:{name:Gh.imports,defaultValue:[]},interfaces:{name:Gh.interfaces,defaultValue:[]},isDeclared:{name:Gh.isDeclared,defaultValue:!1},name:{name:Gh.name},rules:{name:Gh.rules,defaultValue:[]},types:{name:Gh.types,defaultValue:[]}},superTypes:[]},GrammarImport:{name:MC.$type,properties:{path:{name:MC.path}},superTypes:[]},Group:{name:X0.$type,properties:{cardinality:{name:X0.cardinality},elements:{name:X0.elements,defaultValue:[]},guardCondition:{name:X0.guardCondition},predicate:{name:X0.predicate}},superTypes:[To.$type]},InferredType:{name:IC.$type,properties:{name:{name:IC.name}},superTypes:[Qo.$type]},InfixRule:{name:Mu.$type,properties:{call:{name:Mu.call},dataType:{name:Mu.dataType},inferredType:{name:Mu.inferredType},name:{name:Mu.name},operators:{name:Mu.operators},parameters:{name:Mu.parameters,defaultValue:[]},returnType:{name:Mu.returnType,referenceType:Qo.$type}},superTypes:[pT.$type]},InfixRuleOperatorList:{name:vT.$type,properties:{associativity:{name:vT.associativity},operators:{name:vT.operators,defaultValue:[]}},superTypes:[]},InfixRuleOperators:{name:OC.$type,properties:{precedences:{name:OC.precedences,defaultValue:[]}},superTypes:[]},Interface:{name:dy.$type,properties:{attributes:{name:dy.attributes,defaultValue:[]},name:{name:dy.name},superTypes:{name:dy.superTypes,defaultValue:[],referenceType:Qo.$type}},superTypes:[Qo.$type]},Keyword:{name:py.$type,properties:{cardinality:{name:py.cardinality},predicate:{name:py.predicate},value:{name:py.value}},superTypes:[To.$type]},NamedArgument:{name:my.$type,properties:{calledByName:{name:my.calledByName,defaultValue:!1},parameter:{name:my.parameter,referenceType:gy.$type},value:{name:my.value}},superTypes:[]},NegatedToken:{name:K0.$type,properties:{cardinality:{name:K0.cardinality},lookahead:{name:K0.lookahead},parenthesized:{name:K0.parenthesized,defaultValue:!1},terminal:{name:K0.terminal}},superTypes:[wo.$type]},Negation:{name:PC.$type,properties:{value:{name:PC.value}},superTypes:[Fd.$type]},NumberLiteral:{name:BC.$type,properties:{value:{name:BC.value}},superTypes:[am.$type]},Parameter:{name:gy.$type,properties:{name:{name:gy.name}},superTypes:[]},ParameterReference:{name:FC.$type,properties:{parameter:{name:FC.parameter,referenceType:gy.$type}},superTypes:[Fd.$type]},ParserRule:{name:Cc.$type,properties:{dataType:{name:Cc.dataType},definition:{name:Cc.definition},entry:{name:Cc.entry,defaultValue:!1},fragment:{name:Cc.fragment,defaultValue:!1},inferredType:{name:Cc.inferredType},name:{name:Cc.name},parameters:{name:Cc.parameters,defaultValue:[]},returnType:{name:Cc.returnType,referenceType:Qo.$type}},superTypes:[pT.$type]},ReferenceType:{name:xT.$type,properties:{isMulti:{name:xT.isMulti,defaultValue:!1},referenceType:{name:xT.referenceType}},superTypes:[nm.$type]},RegexToken:{name:Q0.$type,properties:{cardinality:{name:Q0.cardinality},lookahead:{name:Q0.lookahead},parenthesized:{name:Q0.parenthesized,defaultValue:!1},regex:{name:Q0.regex}},superTypes:[wo.$type]},ReturnType:{name:$C.$type,properties:{name:{name:$C.name}},superTypes:[]},RuleCall:{name:Z0.$type,properties:{arguments:{name:Z0.arguments,defaultValue:[]},cardinality:{name:Z0.cardinality},predicate:{name:Z0.predicate},rule:{name:Z0.rule,referenceType:fy.$type}},superTypes:[To.$type]},SimpleType:{name:yy.$type,properties:{primitiveType:{name:yy.primitiveType},stringType:{name:yy.stringType},typeRef:{name:yy.typeRef,referenceType:Qo.$type}},superTypes:[nm.$type]},StringLiteral:{name:zC.$type,properties:{value:{name:zC.value}},superTypes:[am.$type]},TerminalAlternatives:{name:J0.$type,properties:{cardinality:{name:J0.cardinality},elements:{name:J0.elements,defaultValue:[]},lookahead:{name:J0.lookahead},parenthesized:{name:J0.parenthesized,defaultValue:!1}},superTypes:[wo.$type]},TerminalElement:{name:wo.$type,properties:{cardinality:{name:wo.cardinality},lookahead:{name:wo.lookahead},parenthesized:{name:wo.parenthesized,defaultValue:!1}},superTypes:[To.$type]},TerminalGroup:{name:em.$type,properties:{cardinality:{name:em.cardinality},elements:{name:em.elements,defaultValue:[]},lookahead:{name:em.lookahead},parenthesized:{name:em.parenthesized,defaultValue:!1}},superTypes:[wo.$type]},TerminalRule:{name:Vh.$type,properties:{definition:{name:Vh.definition},fragment:{name:Vh.fragment,defaultValue:!1},hidden:{name:Vh.hidden,defaultValue:!1},name:{name:Vh.name},type:{name:Vh.type}},superTypes:[fy.$type]},TerminalRuleCall:{name:tm.$type,properties:{cardinality:{name:tm.cardinality},lookahead:{name:tm.lookahead},parenthesized:{name:tm.parenthesized,defaultValue:!1},rule:{name:tm.rule,referenceType:Vh.$type}},superTypes:[wo.$type]},Type:{name:bT.$type,properties:{name:{name:bT.name},type:{name:bT.type}},superTypes:[Qo.$type]},TypeAttribute:{name:rm.$type,properties:{defaultValue:{name:rm.defaultValue},isOptional:{name:rm.isOptional,defaultValue:!1},name:{name:rm.name},type:{name:rm.type}},superTypes:[]},TypeDefinition:{name:nm.$type,properties:{},superTypes:[]},UnionType:{name:GC.$type,properties:{types:{name:GC.types,defaultValue:[]}},superTypes:[nm.$type]},UnorderedGroup:{name:TT.$type,properties:{cardinality:{name:TT.cardinality},elements:{name:TT.elements,defaultValue:[]}},superTypes:[To.$type]},UntilToken:{name:im.$type,properties:{cardinality:{name:im.cardinality},lookahead:{name:im.lookahead},parenthesized:{name:im.parenthesized,defaultValue:!1},terminal:{name:im.terminal}},superTypes:[wo.$type]},ValueLiteral:{name:am.$type,properties:{},superTypes:[]},Wildcard:{name:vy.$type,properties:{cardinality:{name:vy.cardinality},lookahead:{name:vy.lookahead},parenthesized:{name:vy.parenthesized,defaultValue:!1}},superTypes:[wo.$type]}}}},mr=new xy});var jC={};vr(jC,{DefaultNameRegexp:()=>YC,RangeComparison:()=>Iu,compareRange:()=>n1e,findCommentNode:()=>oF,findDeclarationNodeAtOffset:()=>Mtt,findLeafNodeAtOffset:()=>lF,findLeafNodeBeforeOffset:()=>i1e,flattenCst:()=>Ntt,getDatatypeNode:()=>Ltt,getInteriorNodes:()=>Ptt,getNextNode:()=>Itt,getPreviousNode:()=>s1e,getStartlineNode:()=>Ott,inRange:()=>zB,isChildNode:()=>sF,isCommentNode:()=>aF,streamCst:()=>sm,toDocumentSegment:()=>om,tokenToRange:()=>by});function Ltt(t){let e=t,r=!1;for(;e;){let n=zh(e.grammarSource,Sa);if(n&&n.dataType)e=e.container,r=!0;else return r?e:void 0}}function sm(t){return new Nu(t,e=>wc(e)?e.content:[],{includeRoot:!0})}function Ntt(t){return sm(t).filter(Nd)}function sF(t,e){for(;t.container;)if(t=t.container,t===e)return!0;return!1}function by(t){return{start:{character:t.startColumn-1,line:t.startLine-1},end:{character:t.endColumn,line:t.endLine-1}}}function om(t){if(!t)return;let{offset:e,end:r,range:n}=t;return{range:n,offset:e,end:r,length:r-e}}function n1e(t,e){if(t.end.linee.end.line||t.start.line===e.end.line&&t.start.character>=e.end.character)return Iu.After;let r=t.start.line>e.start.line||t.start.line===e.start.line&&t.start.character>=e.start.character,n=t.end.lineIu.After}function Mtt(t,e,r=YC){if(t){if(e>0){let n=e-t.offset,i=t.text.charAt(n);r.test(i)||e--}return lF(t,e)}}function oF(t,e){if(t){let r=s1e(t,!0);if(r&&aF(r,e))return r;if(fT(t)){let n=t.content.findIndex(i=>!i.hidden);for(let i=n-1;i>=0;i--){let a=t.content[i];if(aF(a,e))return a}}}}function aF(t,e){return Nd(t)&&e.includes(t.tokenType.name)}function lF(t,e){if(Nd(t))return t;if(wc(t)){let r=a1e(t,e,!1);if(r)return lF(r,e)}}function i1e(t,e){if(Nd(t))return t;if(wc(t)){let r=a1e(t,e,!0);if(r)return i1e(r,e)}}function a1e(t,e,r){let n=0,i=t.content.length-1,a;for(;n<=i;){let s=Math.floor((n+i)/2),l=t.content[s];if(l.offset<=e&&l.end>e)return l;l.end<=e?(a=r?l:void 0,n=s+1):i=s-1}return a}function s1e(t,e=!0){for(;t.container;){let r=t.container,n=r.content.indexOf(t);for(;n>0;){n--;let i=r.content[n];if(e||!i.hidden)return i}t=r}}function Itt(t,e=!0){for(;t.container;){let r=t.container,n=r.content.indexOf(t),i=r.content.length-1;for(;n{"use strict";kc();Os();us();Zo();o(Ltt,"getDatatypeNode");o(sm,"streamCst");o(Ntt,"flattenCst");o(sF,"isChildNode");o(by,"tokenToRange");o(om,"toDocumentSegment");(function(t){t[t.Before=0]="Before",t[t.After=1]="After",t[t.OverlapFront=2]="OverlapFront",t[t.OverlapBack=3]="OverlapBack",t[t.Inside=4]="Inside",t[t.Outside=5]="Outside"})(Iu||(Iu={}));o(n1e,"compareRange");o(zB,"inRange");YC=/^[\w\p{L}]$/u;o(Mtt,"findDeclarationNodeAtOffset");o(oF,"findCommentNode");o(aF,"isCommentNode");o(lF,"findLeafNodeAtOffset");o(i1e,"findLeafNodeBeforeOffset");o(a1e,"binarySearch");o(s1e,"getPreviousNode");o(Itt,"getNextNode");o(Ott,"getStartlineNode");o(Ptt,"getInteriorNodes");o(Btt,"getCommonParent");o(r1e,"getParentChain")});function Ou(t,e="Error: Got unexpected value."){throw new Error(e)}function o1e(t,e="Error: Condition is violated."){if(!t)throw new Error(e)}var lm,XC=O(()=>{"use strict";lm=class extends Error{static{o(this,"ErrorWithLocation")}constructor(e,r){super(e?`${r} at ${e.range.start.line}:${e.range.start.character}`:r)}};o(Ou,"assertUnreachable");o(o1e,"assertCondition")});function xr(t){return t.charCodeAt(0)}function KC(t,e){Array.isArray(t)?t.forEach(function(r){e.push(r)}):e.push(t)}function Ty(t,e){if(t[e]===!0)throw"duplicate flag "+e;let r=t[e];t[e]=!0}function cm(t){if(t===void 0)throw Error("Internal Error - Should never get here!");return!0}function ST(){throw Error("Internal Error - Should never get here!")}function cF(t){return t.type==="Character"}var uF=O(()=>{"use strict";o(xr,"cc");o(KC,"insertToSet");o(Ty,"addFlag");o(cm,"ASSERT_EXISTS");o(ST,"ASSERT_NEVER_REACH_HERE");o(cF,"isCharacter")});var CT,AT,hF,l1e=O(()=>{"use strict";uF();CT=[];for(let t=xr("0");t<=xr("9");t++)CT.push(t);AT=[xr("_")].concat(CT);for(let t=xr("a");t<=xr("z");t++)AT.push(t);for(let t=xr("A");t<=xr("Z");t++)AT.push(t);hF=[xr(" "),xr("\f"),xr(` +`),xr("\r"),xr(" "),xr("\v"),xr(" "),xr("\xA0"),xr("\u1680"),xr("\u2000"),xr("\u2001"),xr("\u2002"),xr("\u2003"),xr("\u2004"),xr("\u2005"),xr("\u2006"),xr("\u2007"),xr("\u2008"),xr("\u2009"),xr("\u200A"),xr("\u2028"),xr("\u2029"),xr("\u202F"),xr("\u205F"),xr("\u3000"),xr("\uFEFF")]});var Ftt,QC,$tt,um,c1e=O(()=>{"use strict";uF();l1e();Ftt=/[0-9a-fA-F]/,QC=/[0-9]/,$tt=/[1-9]/,um=class{static{o(this,"RegExpParser")}constructor(){this.idx=0,this.input="",this.groupIdx=0}saveState(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}}restoreState(e){this.idx=e.idx,this.input=e.input,this.groupIdx=e.groupIdx}pattern(e){this.idx=0,this.input=e,this.groupIdx=0,this.consumeChar("/");let r=this.disjunction();this.consumeChar("/");let n={type:"Flags",loc:{begin:this.idx,end:e.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};for(;this.isRegExpFlag();)switch(this.popChar()){case"g":Ty(n,"global");break;case"i":Ty(n,"ignoreCase");break;case"m":Ty(n,"multiLine");break;case"u":Ty(n,"unicode");break;case"y":Ty(n,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:n,value:r,loc:this.loc(0)}}disjunction(){let e=[],r=this.idx;for(e.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),e.push(this.alternative());return{type:"Disjunction",value:e,loc:this.loc(r)}}alternative(){let e=[],r=this.idx;for(;this.isTerm();)e.push(this.term());return{type:"Alternative",value:e,loc:this.loc(r)}}term(){return this.isAssertion()?this.assertion():this.atom()}assertion(){let e=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(e)};case"$":return{type:"EndAnchor",loc:this.loc(e)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(e)};case"B":return{type:"NonWordBoundary",loc:this.loc(e)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");let r;switch(this.popChar()){case"=":r="Lookahead";break;case"!":r="NegativeLookahead";break;case"<":{switch(this.popChar()){case"=":r="Lookbehind";break;case"!":r="NegativeLookbehind"}break}}cm(r);let n=this.disjunction();return this.consumeChar(")"),{type:r,value:n,loc:this.loc(e)}}return ST()}quantifier(e=!1){let r,n=this.idx;switch(this.popChar()){case"*":r={atLeast:0,atMost:1/0};break;case"+":r={atLeast:1,atMost:1/0};break;case"?":r={atLeast:0,atMost:1};break;case"{":let i=this.integerIncludingZero();switch(this.popChar()){case"}":r={atLeast:i,atMost:i};break;case",":let a;this.isDigit()?(a=this.integerIncludingZero(),r={atLeast:i,atMost:a}):r={atLeast:i,atMost:1/0},this.consumeChar("}");break}if(e===!0&&r===void 0)return;cm(r);break}if(!(e===!0&&r===void 0)&&cm(r))return this.peekChar(0)==="?"?(this.consumeChar("?"),r.greedy=!1):r.greedy=!0,r.type="Quantifier",r.loc=this.loc(n),r}atom(){let e,r=this.idx;switch(this.peekChar()){case".":e=this.dotAll();break;case"\\":e=this.atomEscape();break;case"[":e=this.characterClass();break;case"(":e=this.group();break}return e===void 0&&this.isPatternCharacter()&&(e=this.patternCharacter()),cm(e)?(e.loc=this.loc(r),this.isQuantifier()&&(e.quantifier=this.quantifier()),e):ST()}dotAll(){return this.consumeChar("."),{type:"Set",complement:!0,value:[xr(` +`),xr("\r"),xr("\u2028"),xr("\u2029")]}}atomEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}decimalEscapeAtom(){return{type:"GroupBackReference",value:this.positiveInteger()}}characterClassEscape(){let e,r=!1;switch(this.popChar()){case"d":e=CT;break;case"D":e=CT,r=!0;break;case"s":e=hF;break;case"S":e=hF,r=!0;break;case"w":e=AT;break;case"W":e=AT,r=!0;break}return cm(e)?{type:"Set",value:e,complement:r}:ST()}controlEscapeAtom(){let e;switch(this.popChar()){case"f":e=xr("\f");break;case"n":e=xr(` +`);break;case"r":e=xr("\r");break;case"t":e=xr(" ");break;case"v":e=xr("\v");break}return cm(e)?{type:"Character",value:e}:ST()}controlLetterEscapeAtom(){this.consumeChar("c");let e=this.popChar();if(/[a-zA-Z]/.test(e)===!1)throw Error("Invalid ");return{type:"Character",value:e.toUpperCase().charCodeAt(0)-64}}nulCharacterAtom(){return this.consumeChar("0"),{type:"Character",value:xr("\0")}}hexEscapeSequenceAtom(){return this.consumeChar("x"),this.parseHexDigits(2)}regExpUnicodeEscapeSequenceAtom(){return this.consumeChar("u"),this.parseHexDigits(4)}identityEscapeAtom(){let e=this.popChar();return{type:"Character",value:xr(e)}}classPatternCharacterAtom(){switch(this.peekChar()){case` +`:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:let e=this.popChar();return{type:"Character",value:xr(e)}}}characterClass(){let e=[],r=!1;for(this.consumeChar("["),this.peekChar(0)==="^"&&(this.consumeChar("^"),r=!0);this.isClassAtom();){let n=this.classAtom(),i=n.type==="Character";if(cF(n)&&this.isRangeDash()){this.consumeChar("-");let a=this.classAtom(),s=a.type==="Character";if(cF(a)){if(a.value=this.input.length)throw Error("Unexpected end of input");this.idx++}loc(e){return{begin:e,end:this.idx}}}});var Pu,u1e=O(()=>{"use strict";Pu=class{static{o(this,"BaseRegExpVisitor")}visitChildren(e){for(let r in e){let n=e[r];e.hasOwnProperty(r)&&(n.type!==void 0?this.visit(n):Array.isArray(n)&&n.forEach(i=>{this.visit(i)},this))}}visit(e){switch(e.type){case"Pattern":this.visitPattern(e);break;case"Flags":this.visitFlags(e);break;case"Disjunction":this.visitDisjunction(e);break;case"Alternative":this.visitAlternative(e);break;case"StartAnchor":this.visitStartAnchor(e);break;case"EndAnchor":this.visitEndAnchor(e);break;case"WordBoundary":this.visitWordBoundary(e);break;case"NonWordBoundary":this.visitNonWordBoundary(e);break;case"Lookahead":this.visitLookahead(e);break;case"NegativeLookahead":this.visitNegativeLookahead(e);break;case"Lookbehind":this.visitLookbehind(e);break;case"NegativeLookbehind":this.visitNegativeLookbehind(e);break;case"Character":this.visitCharacter(e);break;case"Set":this.visitSet(e);break;case"Group":this.visitGroup(e);break;case"GroupBackReference":this.visitGroupBackReference(e);break;case"Quantifier":this.visitQuantifier(e);break}this.visitChildren(e)}visitPattern(e){}visitFlags(e){}visitDisjunction(e){}visitAlternative(e){}visitStartAnchor(e){}visitEndAnchor(e){}visitWordBoundary(e){}visitNonWordBoundary(e){}visitLookahead(e){}visitNegativeLookahead(e){}visitLookbehind(e){}visitNegativeLookbehind(e){}visitCharacter(e){}visitSet(e){}visitGroup(e){}visitGroupBackReference(e){}visitQuantifier(e){}}});var _T=O(()=>{"use strict";c1e();u1e()});var ZC={};vr(ZC,{NEWLINE_REGEXP:()=>dF,escapeRegExp:()=>Vd,getTerminalParts:()=>ztt,isMultilineComment:()=>pF,isWhitespace:()=>DT,partialMatches:()=>mF,partialRegExp:()=>d1e,whitespaceCharacters:()=>f1e});function ztt(t){try{typeof t!="string"&&(t=t.source),t=`/${t}/`;let e=h1e.pattern(t),r=[];for(let n of e.value.value)hm.reset(t),hm.visit(n),r.push({start:hm.startRegexp,end:hm.endRegex});return r}catch{return[]}}function pF(t){try{return typeof t=="string"&&(t=new RegExp(t)),t=t.toString(),hm.reset(t),hm.visit(h1e.pattern(t)),hm.multiline}catch{return!1}}function DT(t){let e=typeof t=="string"?new RegExp(t):t;return f1e.some(r=>e.test(r))}function Vd(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function mF(t,e){let r=d1e(t),n=e.match(r);return!!n&&n[0].length>0}function d1e(t){typeof t=="string"&&(t=new RegExp(t));let e=t,r=t.source,n=0;function i(){let a="",s;function l(h){a+=r.substr(n,h),n+=h}o(l,"appendRaw");function u(h){a+="(?:"+r.substr(n,h)+"|$)",n+=h}for(o(u,"appendOptional");n",n)-n+1);break;default:u(2);break}break;case"[":s=/\[(?:\\.|.)*?\]/g,s.lastIndex=n,s=s.exec(r)||[],u(s[0].length);break;case"|":case"^":case"$":case"*":case"+":case"?":l(1);break;case"{":s=/\{\d+,?\d*\}/g,s.lastIndex=n,s=s.exec(r),s?l(s[0].length):u(1);break;case"(":if(r[n+1]==="?")switch(r[n+2]){case":":a+="(?:",n+=3,a+=i()+"|$)";break;case"=":a+="(?=",n+=3,a+=i()+")";break;case"!":s=n,n+=3,i(),a+=r.substr(s,n-s);break;case"<":switch(r[n+3]){case"=":case"!":s=n,n+=4,i(),a+=r.substr(s,n-s);break;default:l(r.indexOf(">",n)-n+1),a+=i()+"|$)";break}break}else l(1),a+=i()+"|$)";break;case")":return++n,a;default:u(1);break}return a}return o(i,"process"),new RegExp(i(),t.flags)}var dF,h1e,fF,hm,f1e,wy=O(()=>{"use strict";_T();dF=/\r?\n/gm,h1e=new um,fF=class extends Pu{static{o(this,"TerminalRegExpVisitor")}constructor(){super(...arguments),this.isStarting=!0,this.endRegexpStack=[],this.multiline=!1}get endRegex(){return this.endRegexpStack.join("")}reset(e){this.multiline=!1,this.regex=e,this.startRegexp="",this.isStarting=!0,this.endRegexpStack=[]}visitGroup(e){e.quantifier&&(this.isStarting=!1,this.endRegexpStack=[])}visitCharacter(e){let r=String.fromCharCode(e.value);if(!this.multiline&&r===` +`&&(this.multiline=!0),e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{let n=Vd(r);this.endRegexpStack.push(n),this.isStarting&&(this.startRegexp+=n)}}visitSet(e){if(!this.multiline){let r=this.regex.substring(e.loc.begin,e.loc.end),n=new RegExp(r);this.multiline=!!` +`.match(n)}if(e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{let r=this.regex.substring(e.loc.begin,e.loc.end);this.endRegexpStack.push(r),this.isStarting&&(this.startRegexp+=r)}}visitChildren(e){e.type==="Group"&&e.quantifier||super.visitChildren(e)}},hm=new fF;o(ztt,"getTerminalParts");o(pF,"isMultilineComment");f1e=`\f +\r \v \xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF`.split("");o(DT,"isWhitespace");o(Vd,"escapeRegExp");o(mF,"partialMatches");o(d1e,"partialRegExp")});var t6={};vr(t6,{findAssignment:()=>EF,findNameAssignment:()=>JC,findNodeForKeyword:()=>wF,findNodeForProperty:()=>LT,findNodesForKeyword:()=>Vtt,findNodesForKeywordInternal:()=>kF,findNodesForProperty:()=>bF,getActionAtElement:()=>v1e,getActionType:()=>b1e,getAllReachableRules:()=>RT,getAllRulesUsedForCrossReferences:()=>Gtt,getCrossReferenceTerminal:()=>vF,getEntryRule:()=>p1e,getExplicitRuleType:()=>e6,getHiddenRules:()=>m1e,getRuleType:()=>SF,getRuleTypeName:()=>Ytt,getTypeName:()=>qd,isArrayCardinality:()=>Utt,isArrayOperator:()=>Wtt,isCommentTerminal:()=>xF,isDataType:()=>Htt,isDataTypeRule:()=>NT,isOptionalCardinality:()=>qtt,terminalRegex:()=>ky});function p1e(t){return t.rules.find(e=>Sa(e)&&e.entry)}function m1e(t){return t.rules.filter(e=>Bs(e)&&e.hidden)}function RT(t,e){let r=new Set,n=p1e(t);if(!n)return new Set(t.rules);let i=[n].concat(m1e(t));for(let s of i)g1e(s,r,e);let a=new Set;for(let s of t.rules)(r.has(s.name)||Bs(s)&&s.hidden)&&a.add(s);return a}function g1e(t,e,r){e.add(t.name),Ec(t).forEach(n=>{if(Dc(n)||r&&UC(n)){let i=n.rule.ref;i&&!e.has(i.name)&&g1e(i,e,r)}})}function Gtt(t){let e=new Set;return Ec(t).forEach(r=>{_c(r)&&(Sa(r.type.ref)&&e.add(r.type.ref),kT(r.type.ref)&&Sa(r.type.ref.$container)&&e.add(r.type.ref.$container))}),e}function vF(t){if(t.terminal)return t.terminal;if(t.type.ref)return JC(t.type.ref)?.terminal}function xF(t){return t.hidden&&!DT(ky(t))}function bF(t,e){return!t||!e?[]:TF(t,e,t.astNode,!0)}function LT(t,e,r){if(!t||!e)return;let n=TF(t,e,t.astNode,!0);if(n.length!==0)return r!==void 0?r=Math.max(0,Math.min(r,n.length-1)):r=0,n[r]}function TF(t,e,r,n){if(!n){let i=zh(t.grammarSource,Ac);if(i&&i.feature===e)return[t]}return wc(t)&&t.astNode===r?t.content.flatMap(i=>TF(i,e,r,!1)):[]}function Vtt(t,e){return t?kF(t,e,t?.astNode):[]}function wF(t,e,r){if(!t)return;let n=kF(t,e,t?.astNode);if(n.length!==0)return r!==void 0?r=Math.max(0,Math.min(r,n.length-1)):r=0,n[r]}function kF(t,e,r){if(t.astNode!==r)return[];if(Pl(t.grammarSource)&&t.grammarSource.value===e)return[t];let n=sm(t).iterator(),i,a=[];do if(i=n.next(),!i.done){let s=i.value;s.astNode===r?Pl(s.grammarSource)&&s.grammarSource.value===e&&a.push(s):n.prune()}while(!i.done);return a}function EF(t){let e=t.astNode;for(;e===t.container?.astNode;){let r=zh(t.grammarSource,Ac);if(r)return r;t=t.container}}function JC(t){let e=t;return kT(e)&&(Uh(e.$container)?e=e.$container.$container:qh(e.$container)?e=e.$container:Ou(e.$container)),y1e(t,e,new Map)}function y1e(t,e,r){function n(i,a){let s;return zh(i,Ac)||(s=y1e(a,a,r)),r.set(t,s),s}if(o(n,"go"),r.has(t))return r.get(t);r.set(t,void 0);for(let i of Ec(e)){if(Ac(i)&&i.feature.toLowerCase()==="name")return r.set(t,i),i;if(Dc(i)&&Sa(i.rule.ref))return n(i,i.rule.ref);if(qC(i)&&i.typeRef?.ref)return n(i,i.typeRef.ref)}}function v1e(t){let e=t.$container;if(zd(e)){let r=e.elements,n=r.indexOf(t);for(let i=n-1;i>=0;i--){let a=r[i];if(Uh(a))return a;{let s=Ec(r[i]).find(Uh);if(s)return s}}}if(wT(e))return v1e(e)}function qtt(t,e){return t==="?"||t==="*"||zd(e)&&!!e.guardCondition}function Utt(t){return t==="*"||t==="+"}function Wtt(t){return t==="+="}function NT(t){return x1e(t,new Set)}function x1e(t,e){if(e.has(t))return!0;e.add(t);for(let r of Ec(t))if(Dc(r)){if(!r.rule.ref||Sa(r.rule.ref)&&!x1e(r.rule.ref,e)||Gd(r.rule.ref))return!1}else{if(Ac(r))return!1;if(Uh(r))return!1}return!!t.definition}function Htt(t){return yF(t.type,new Set)}function yF(t,e){if(e.has(t))return!0;if(e.add(t),GB(t))return!1;if(QB(t))return!1;if(rF(t))return t.types.every(r=>yF(r,e));if(qC(t)){if(t.primitiveType!==void 0)return!0;if(t.stringType!==void 0)return!0;if(t.typeRef!==void 0){let r=t.typeRef.ref;return WC(r)?yF(r.type,e):!1}else return!1}else return!1}function e6(t){if(!Bs(t)){if(t.inferredType)return t.inferredType.name;if(t.dataType)return t.dataType;if(t.returnType){let e=t.returnType.ref;if(e)return e.name}}}function qd(t){if(qh(t))return Sa(t)&&NT(t)?t.name:e6(t)??t.name;if(YB(t)||WC(t)||JB(t))return t.name;if(Uh(t)){let e=b1e(t);if(e)return e}else if(kT(t))return t.name;throw new Error("Cannot get name of Unknown Type")}function b1e(t){if(t.inferredType)return t.inferredType.name;if(t.type?.ref)return qd(t.type.ref)}function Ytt(t){return Bs(t)?t.type?.name??"string":Sa(t)&&NT(t)?t.name:e6(t)??t.name}function SF(t){return Bs(t)?t.type?.name??"string":e6(t)??t.name}function ky(t){let e={s:!1,i:!1,u:!1},r=Ey(t.definition,e),n=Object.entries(e).filter(([,i])=>i).map(([i])=>i).join("");return new RegExp(r,n)}function Ey(t,e){if(eF(t))return jtt(t);if(tF(t))return Xtt(t);if(qB(t))return Ztt(t);if(UC(t)){let r=t.rule.ref;if(!r)throw new Error("Missing rule reference.");return Wh(Ey(r.definition),{cardinality:t.cardinality,lookahead:t.lookahead,parenthesized:t.parenthesized})}else{if(jB(t))return Qtt(t);if(nF(t))return Ktt(t);if(ZB(t)){let r=t.regex.lastIndexOf("/"),n=t.regex.substring(1,r),i=t.regex.substring(r+1);return e&&(e.i=i.includes("i"),e.s=i.includes("s"),e.u=i.includes("u")),Wh(n,{cardinality:t.cardinality,lookahead:t.lookahead,parenthesized:t.parenthesized,wrap:!1})}else{if(iF(t))return Wh(CF,{cardinality:t.cardinality,lookahead:t.lookahead,parenthesized:t.parenthesized});throw new Error(`Invalid terminal element: ${t?.$type}, ${t?.$cstNode?.text}`)}}}function jtt(t){return Wh(t.elements.map(e=>Ey(e)).join("|"),{cardinality:t.cardinality,lookahead:t.lookahead,parenthesized:t.parenthesized,wrap:!1})}function Xtt(t){return Wh(t.elements.map(e=>Ey(e)).join(""),{cardinality:t.cardinality,lookahead:t.lookahead,parenthesized:t.parenthesized,wrap:!1})}function Ktt(t){return Wh(`${CF}*?${Ey(t.terminal)}`,{cardinality:t.cardinality,lookahead:t.lookahead,parenthesized:t.parenthesized})}function Qtt(t){return Wh(`(?!${Ey(t.terminal)})${CF}*?`,{cardinality:t.cardinality,lookahead:t.lookahead,parenthesized:t.parenthesized})}function Ztt(t){return t.right?Wh(`[${gF(t.left)}-${gF(t.right)}]`,{cardinality:t.cardinality,lookahead:t.lookahead,parenthesized:t.parenthesized,wrap:!1}):Wh(gF(t.left),{cardinality:t.cardinality,lookahead:t.lookahead,parenthesized:t.parenthesized,wrap:!1})}function gF(t){return Vd(t.value)}function Wh(t,e){return(e.parenthesized||e.lookahead||e.wrap!==!1)&&(t=`(${e.lookahead??(e.parenthesized?"":"?:")}${t})`),e.cardinality?`${t}${e.cardinality}`:t}var CF,Rc=O(()=>{"use strict";XC();Zo();kc();us();Sc();wy();o(p1e,"getEntryRule");o(m1e,"getHiddenRules");o(RT,"getAllReachableRules");o(g1e,"ruleDfs");o(Gtt,"getAllRulesUsedForCrossReferences");o(vF,"getCrossReferenceTerminal");o(xF,"isCommentTerminal");o(bF,"findNodesForProperty");o(LT,"findNodeForProperty");o(TF,"findNodesForPropertyInternal");o(Vtt,"findNodesForKeyword");o(wF,"findNodeForKeyword");o(kF,"findNodesForKeywordInternal");o(EF,"findAssignment");o(JC,"findNameAssignment");o(y1e,"findNameAssignmentInternal");o(v1e,"getActionAtElement");o(qtt,"isOptionalCardinality");o(Utt,"isArrayCardinality");o(Wtt,"isArrayOperator");o(NT,"isDataTypeRule");o(x1e,"isDataTypeRuleInternal");o(Htt,"isDataType");o(yF,"isDataTypeInternal");o(e6,"getExplicitRuleType");o(qd,"getTypeName");o(b1e,"getActionType");o(Ytt,"getRuleTypeName");o(SF,"getRuleType");o(ky,"terminalRegex");CF=/[\s\S]/.source;o(Ey,"abstractElementToRegex");o(jtt,"terminalAlternativesToRegex");o(Xtt,"terminalGroupToRegex");o(Ktt,"untilTokenToRegex");o(Qtt,"negateTokenToRegex");o(Ztt,"characterRangeToRegex");o(gF,"keywordToRegex");o(Wh,"withCardinality")});function AF(t){let e=[],r=t.Grammar;for(let n of r.rules)Bs(n)&&xF(n)&&pF(ky(n))&&e.push(n.name);return{multilineCommentRules:e,nameRegexp:YC}}var _F=O(()=>{"use strict";Sc();Rc();wy();Zo();o(AF,"createGrammarConfig")});var DF=O(()=>{"use strict"});function Sy(t){console&&console.error&&console.error(`Error: ${t}`)}function MT(t){console&&console.warn&&console.warn(`Warning: ${t}`)}var T1e=O(()=>{"use strict";o(Sy,"PRINT_ERROR");o(MT,"PRINT_WARNING")});function IT(t){let e=new Date().getTime(),r=t();return{time:new Date().getTime()-e,value:r}}var w1e=O(()=>{"use strict";o(IT,"timer")});function OT(t){function e(){}o(e,"FakeConstructor"),e.prototype=t;let r=new e;function n(){return typeof r.bar}return o(n,"fakeAccess"),n(),n(),t;(0,eval)(t)}var k1e=O(()=>{"use strict";o(OT,"toFastProperties")});var Cy=O(()=>{"use strict";T1e();w1e();k1e()});function Jtt(t){return ert(t)?t.LABEL:t.name}function ert(t){return Bi(t.LABEL)&&t.LABEL!==""}function r6(t){return lt(t,Ay)}function Ay(t){function e(r){return lt(r,Ay)}if(o(e,"convertDefinition"),t instanceof Sn){let r={type:"NonTerminal",name:t.nonTerminalName,idx:t.idx};return Bi(t.label)&&(r.label=t.label),r}else{if(t instanceof Yn)return{type:"Alternative",definition:e(t.definition)};if(t instanceof Cn)return{type:"Option",idx:t.idx,definition:e(t.definition)};if(t instanceof jn)return{type:"RepetitionMandatory",idx:t.idx,definition:e(t.definition)};if(t instanceof Xn)return{type:"RepetitionMandatoryWithSeparator",idx:t.idx,separator:Ay(new Yr({terminalType:t.separator})),definition:e(t.definition)};if(t instanceof zn)return{type:"RepetitionWithSeparator",idx:t.idx,separator:Ay(new Yr({terminalType:t.separator})),definition:e(t.definition)};if(t instanceof Jr)return{type:"Repetition",idx:t.idx,definition:e(t.definition)};if(t instanceof Gn)return{type:"Alternation",idx:t.idx,definition:e(t.definition)};if(t instanceof Yr){let r={type:"Terminal",name:t.terminalType.name,label:Jtt(t.terminalType),idx:t.idx};Bi(t.label)&&(r.terminalLabel=t.label);let n=t.terminalType.PATTERN;return t.terminalType.PATTERN&&(r.pattern=Al(n)?n.source:n),r}else{if(t instanceof Fs)return{type:"Rule",name:t.name,orgText:t.orgText,definition:e(t.definition)};throw Error("non exhaustive match")}}}var Jo,Sn,Fs,Yn,Cn,jn,Xn,Jr,zn,Gn,Yr,n6=O(()=>{"use strict";rr();o(Jtt,"tokenLabel");o(ert,"hasTokenLabel");Jo=class{static{o(this,"AbstractProduction")}get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){this._definition=e}accept(e){e.visit(this),Oe(this.definition,r=>{r.accept(e)})}},Sn=class extends Jo{static{o(this,"NonTerminal")}constructor(e){super([]),this.idx=1,$a(this,go(e,r=>r!==void 0))}set definition(e){}get definition(){return this.referencedRule!==void 0?this.referencedRule.definition:[]}accept(e){e.visit(this)}},Fs=class extends Jo{static{o(this,"Rule")}constructor(e){super(e.definition),this.orgText="",$a(this,go(e,r=>r!==void 0))}},Yn=class extends Jo{static{o(this,"Alternative")}constructor(e){super(e.definition),this.ignoreAmbiguities=!1,$a(this,go(e,r=>r!==void 0))}},Cn=class extends Jo{static{o(this,"Option")}constructor(e){super(e.definition),this.idx=1,$a(this,go(e,r=>r!==void 0))}},jn=class extends Jo{static{o(this,"RepetitionMandatory")}constructor(e){super(e.definition),this.idx=1,$a(this,go(e,r=>r!==void 0))}},Xn=class extends Jo{static{o(this,"RepetitionMandatoryWithSeparator")}constructor(e){super(e.definition),this.idx=1,$a(this,go(e,r=>r!==void 0))}},Jr=class extends Jo{static{o(this,"Repetition")}constructor(e){super(e.definition),this.idx=1,$a(this,go(e,r=>r!==void 0))}},zn=class extends Jo{static{o(this,"RepetitionWithSeparator")}constructor(e){super(e.definition),this.idx=1,$a(this,go(e,r=>r!==void 0))}},Gn=class extends Jo{static{o(this,"Alternation")}get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){super(e.definition),this.idx=1,this.ignoreAmbiguities=!1,this.hasPredicates=!1,$a(this,go(e,r=>r!==void 0))}},Yr=class{static{o(this,"Terminal")}constructor(e){this.idx=1,$a(this,go(e,r=>r!==void 0))}accept(e){e.visit(this)}};o(r6,"serializeGrammar");o(Ay,"serializeProduction")});var $s,E1e=O(()=>{"use strict";n6();$s=class{static{o(this,"GAstVisitor")}visit(e){let r=e;switch(r.constructor){case Sn:return this.visitNonTerminal(r);case Yn:return this.visitAlternative(r);case Cn:return this.visitOption(r);case jn:return this.visitRepetitionMandatory(r);case Xn:return this.visitRepetitionMandatoryWithSeparator(r);case zn:return this.visitRepetitionWithSeparator(r);case Jr:return this.visitRepetition(r);case Gn:return this.visitAlternation(r);case Yr:return this.visitTerminal(r);case Fs:return this.visitRule(r);default:throw Error("non exhaustive match")}}visitNonTerminal(e){}visitAlternative(e){}visitOption(e){}visitRepetition(e){}visitRepetitionMandatory(e){}visitRepetitionMandatoryWithSeparator(e){}visitRepetitionWithSeparator(e){}visitAlternation(e){}visitTerminal(e){}visitRule(e){}}});function RF(t){return t instanceof Yn||t instanceof Cn||t instanceof Jr||t instanceof jn||t instanceof Xn||t instanceof zn||t instanceof Yr||t instanceof Fs}function fm(t,e=[]){return t instanceof Cn||t instanceof Jr||t instanceof zn?!0:t instanceof Gn?wb(t.definition,n=>fm(n,e)):t instanceof Sn&&ci(e,t)?!1:t instanceof Jo?(t instanceof Sn&&e.push(t),is(t.definition,n=>fm(n,e))):!1}function LF(t){return t instanceof Gn}function ko(t){if(t instanceof Sn)return"SUBRULE";if(t instanceof Cn)return"OPTION";if(t instanceof Gn)return"OR";if(t instanceof jn)return"AT_LEAST_ONE";if(t instanceof Xn)return"AT_LEAST_ONE_SEP";if(t instanceof zn)return"MANY_SEP";if(t instanceof Jr)return"MANY";if(t instanceof Yr)return"CONSUME";throw Error("non exhaustive match")}var S1e=O(()=>{"use strict";rr();n6();o(RF,"isSequenceProd");o(fm,"isOptionalProd");o(LF,"isBranchingProd");o(ko,"getProductionDslName")});var zs=O(()=>{"use strict";n6();E1e();S1e()});function C1e(t,e,r){return[new Cn({definition:[new Yr({terminalType:t.separator})].concat(t.definition)})].concat(e,r)}var Hh,i6=O(()=>{"use strict";rr();zs();Hh=class{static{o(this,"RestWalker")}walk(e,r=[]){Oe(e.definition,(n,i)=>{let a=Pi(e.definition,i+1);if(n instanceof Sn)this.walkProdRef(n,a,r);else if(n instanceof Yr)this.walkTerminal(n,a,r);else if(n instanceof Yn)this.walkFlat(n,a,r);else if(n instanceof Cn)this.walkOption(n,a,r);else if(n instanceof jn)this.walkAtLeastOne(n,a,r);else if(n instanceof Xn)this.walkAtLeastOneSep(n,a,r);else if(n instanceof zn)this.walkManySep(n,a,r);else if(n instanceof Jr)this.walkMany(n,a,r);else if(n instanceof Gn)this.walkOr(n,a,r);else throw Error("non exhaustive match")})}walkTerminal(e,r,n){}walkProdRef(e,r,n){}walkFlat(e,r,n){let i=r.concat(n);this.walk(e,i)}walkOption(e,r,n){let i=r.concat(n);this.walk(e,i)}walkAtLeastOne(e,r,n){let i=[new Cn({definition:e.definition})].concat(r,n);this.walk(e,i)}walkAtLeastOneSep(e,r,n){let i=C1e(e,r,n);this.walk(e,i)}walkMany(e,r,n){let i=[new Cn({definition:e.definition})].concat(r,n);this.walk(e,i)}walkManySep(e,r,n){let i=C1e(e,r,n);this.walk(e,i)}walkOr(e,r,n){let i=r.concat(n);Oe(e.definition,a=>{let s=new Yn({definition:[a]});this.walk(s,i)})}};o(C1e,"restForRepetitionWithSeparator")});function dm(t){if(t instanceof Sn)return dm(t.referencedRule);if(t instanceof Yr)return nrt(t);if(RF(t))return trt(t);if(LF(t))return rrt(t);throw Error("non exhaustive match")}function trt(t){let e=[],r=t.definition,n=0,i=r.length>n,a,s=!0;for(;i&&s;)a=r[n],s=fm(a),e=e.concat(dm(a)),n=n+1,i=r.length>n;return P1(e)}function rrt(t){let e=lt(t.definition,r=>dm(r));return P1(fn(e))}function nrt(t){return[t.terminalType]}var NF=O(()=>{"use strict";rr();zs();o(dm,"first");o(trt,"firstForSequence");o(rrt,"firstForBranching");o(nrt,"firstForTerminal")});var a6,MF=O(()=>{"use strict";a6="_~IN~_"});function A1e(t){let e={};return Oe(t,r=>{let n=new IF(r).startWalking();$a(e,n)}),e}function irt(t,e){return t.name+e+a6}var IF,_1e=O(()=>{"use strict";i6();NF();rr();MF();zs();IF=class extends Hh{static{o(this,"ResyncFollowsWalker")}constructor(e){super(),this.topProd=e,this.follows={}}startWalking(){return this.walk(this.topProd),this.follows}walkTerminal(e,r,n){}walkProdRef(e,r,n){let i=irt(e.referencedRule,e.idx)+this.topProd.name,a=r.concat(n),s=new Yn({definition:a}),l=dm(s);this.follows[i]=l}};o(A1e,"computeAllProdsFollows");o(irt,"buildBetweenProdsFollowPrefix")});function _y(t){let e=t.toString();if(s6.hasOwnProperty(e))return s6[e];{let r=art.pattern(e);return s6[e]=r,r}}function D1e(){s6={}}var s6,art,o6=O(()=>{"use strict";_T();s6={},art=new um;o(_y,"getRegExpAst");o(D1e,"clearRegExpParserCache")});function N1e(t,e=!1){try{let r=_y(t);return OF(r.value,{},r.flags.ignoreCase)}catch(r){if(r.message===L1e)e&&MT(`${PT} Unable to optimize: < ${t.toString()} > + Complement Sets cannot be automatically optimized. + This will disable the lexer's first char optimizations. + See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{let n="";e&&(n=` + This will disable the lexer's first char optimizations. + See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),Sy(`${PT} + Failed parsing: < ${t.toString()} > + Using the @chevrotain/regexp-to-ast library + Please open an issue at: https://github.com/chevrotain/chevrotain/issues`+n)}}return[]}function OF(t,e,r){switch(t.type){case"Disjunction":for(let i=0;i{if(typeof u=="number")l6(u,e,r);else{let h=u;if(r===!0)for(let f=h.from;f<=h.to;f++)l6(f,e,r);else{for(let f=h.from;f<=h.to&&f=Dy){let f=h.from>=Dy?h.from:Dy,d=h.to,p=Bu(f),m=Bu(d);for(let g=p;g<=m;g++)e[g]=g}}}});break;case"Group":OF(s.value,e,r);break;default:throw Error("Non Exhaustive Match")}let l=s.quantifier!==void 0&&s.quantifier.atLeast===0;if(s.type==="Group"&&PF(s)===!1||s.type!=="Group"&&l===!1)break}break;default:throw Error("non exhaustive match!")}return Gr(e)}function l6(t,e,r){let n=Bu(t);e[n]=n,r===!0&&srt(t,e)}function srt(t,e){let r=String.fromCharCode(t),n=r.toUpperCase();if(n!==r){let i=Bu(n.charCodeAt(0));e[i]=i}else{let i=r.toLowerCase();if(i!==r){let a=Bu(i.charCodeAt(0));e[a]=a}}}function R1e(t,e){return Ls(t.value,r=>{if(typeof r=="number")return ci(e,r);{let n=r;return Ls(e,i=>n.from<=i&&i<=n.to)!==void 0}})}function PF(t){let e=t.quantifier;return e&&e.atLeast===0?!0:t.value?zt(t.value)?is(t.value,PF):PF(t.value):!1}function c6(t,e){if(e instanceof RegExp){let r=_y(e),n=new BF(t);return n.visit(r),n.found}else return Ls(e,r=>ci(t,r.charCodeAt(0)))!==void 0}var L1e,PT,BF,M1e=O(()=>{"use strict";_T();rr();Cy();o6();FF();L1e="Complement Sets are not supported for first char optimization",PT=`Unable to use "first char" lexer optimizations: +`;o(N1e,"getOptimizedStartCodesIndices");o(OF,"firstCharOptimizedIndices");o(l6,"addOptimizedIdxToResult");o(srt,"handleIgnoreCase");o(R1e,"findCode");o(PF,"isWholeOptional");BF=class extends Pu{static{o(this,"CharCodeFinder")}constructor(e){super(),this.targetCharCodes=e,this.found=!1}visitChildren(e){if(this.found!==!0){switch(e.type){case"Lookahead":this.visitLookahead(e);return;case"NegativeLookahead":this.visitNegativeLookahead(e);return;case"Lookbehind":this.visitLookbehind(e);return;case"NegativeLookbehind":this.visitNegativeLookbehind(e);return}super.visitChildren(e)}}visitCharacter(e){ci(this.targetCharCodes,e.value)&&(this.found=!0)}visitSet(e){e.complement?R1e(e,this.targetCharCodes)===void 0&&(this.found=!0):R1e(e,this.targetCharCodes)!==void 0&&(this.found=!0)}};o(c6,"canMatchCharCode")});function P1e(t,e){e=ad(e,{useSticky:zF,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",` +`],tracer:o((b,T)=>T(),"tracer")});let r=e.tracer;r("initCharCodeToOptimizedIndexMap",()=>{Srt()});let n;r("Reject Lexer.NA",()=>{n=od(t,b=>b[pm]===fi.NA)});let i=!1,a;r("Transform Patterns",()=>{i=!1,a=lt(n,b=>{let T=b[pm];if(Al(T)){let E=T.source;return E.length===1&&E!=="^"&&E!=="$"&&E!=="."&&!T.ignoreCase?E:E.length===2&&E[0]==="\\"&&!ci(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],E[1])?E[1]:e.useSticky?O1e(T):I1e(T)}else{if(Vi(T))return i=!0,{exec:T};if(typeof T=="object")return i=!0,T;if(typeof T=="string"){if(T.length===1)return T;{let E=T.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),w=new RegExp(E);return e.useSticky?O1e(w):I1e(w)}}else throw Error("non exhaustive match")}})});let s,l,u,h,f;r("misc mapping",()=>{s=lt(n,b=>b.tokenTypeIdx),l=lt(n,b=>{let T=b.GROUP;if(T!==fi.SKIPPED){if(Bi(T))return T;if(Dr(T))return!1;throw Error("non exhaustive match")}}),u=lt(n,b=>{let T=b.LONGER_ALT;if(T)return zt(T)?lt(T,w=>sS(n,w)):[sS(n,T)]}),h=lt(n,b=>b.PUSH_MODE),f=lt(n,b=>Gt(b,"POP_MODE"))});let d;r("Line Terminator Handling",()=>{let b=U1e(e.lineTerminatorCharacters);d=lt(n,T=>!1),e.positionTracking!=="onlyOffset"&&(d=lt(n,T=>Gt(T,"LINE_BREAKS")?!!T.LINE_BREAKS:q1e(T,b)===!1&&c6(b,T.PATTERN)))});let p,m,g,y;r("Misc Mapping #2",()=>{p=lt(n,G1e),m=lt(a,krt),g=pn(n,(b,T)=>{let E=T.GROUP;return Bi(E)&&E!==fi.SKIPPED&&(b[E]=[]),b},{}),y=lt(a,(b,T)=>({pattern:a[T],longerAlt:u[T],canLineTerminator:d[T],isCustom:p[T],short:m[T],group:l[T],push:h[T],pop:f[T],tokenTypeIdx:s[T],tokenType:n[T]}))});let v=!0,x=[];return e.safeMode||r("First Char Optimization",()=>{x=pn(n,(b,T,E)=>{if(typeof T.PATTERN=="string"){let w=T.PATTERN.charCodeAt(0),k=Bu(w);$F(b,k,y[E])}else if(zt(T.START_CHARS_HINT)){let w;Oe(T.START_CHARS_HINT,k=>{let S=typeof k=="string"?k.charCodeAt(0):k,A=Bu(S);w!==A&&(w=A,$F(b,A,y[E]))})}else if(Al(T.PATTERN))if(T.PATTERN.unicode)v=!1,e.ensureOptimizations&&Sy(`${PT} Unable to analyze < ${T.PATTERN.toString()} > pattern. + The regexp unicode flag is not currently supported by the regexp-to-ast library. + This will disable the lexer's first char optimizations. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{let w=N1e(T.PATTERN,e.ensureOptimizations);Er(w)&&(v=!1),Oe(w,k=>{$F(b,k,y[E])})}else e.ensureOptimizations&&Sy(`${PT} TokenType: <${T.name}> is using a custom token pattern without providing parameter. + This will disable the lexer's first char optimizations. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),v=!1;return b},[])}),{emptyGroups:g,patternIdxToConfig:y,charCodeToPatternIdxToConfig:x,hasCustom:i,canBeOptimized:v}}function B1e(t,e){let r=[],n=lrt(t);r=r.concat(n.errors);let i=crt(n.valid),a=i.valid;return r=r.concat(i.errors),r=r.concat(ort(a)),r=r.concat(yrt(a)),r=r.concat(vrt(a,e)),r=r.concat(xrt(a)),r}function ort(t){let e=[],r=dn(t,n=>Al(n[pm]));return e=e.concat(hrt(r)),e=e.concat(prt(r)),e=e.concat(mrt(r)),e=e.concat(grt(r)),e=e.concat(frt(r)),e}function lrt(t){let e=dn(t,i=>!Gt(i,pm)),r=lt(e,i=>({message:"Token Type: ->"+i.name+"<- missing static 'PATTERN' property",type:hi.MISSING_PATTERN,tokenTypes:[i]})),n=sd(t,e);return{errors:r,valid:n}}function crt(t){let e=dn(t,i=>{let a=i[pm];return!Al(a)&&!Vi(a)&&!Gt(a,"exec")&&!Bi(a)}),r=lt(e,i=>({message:"Token Type: ->"+i.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:hi.INVALID_PATTERN,tokenTypes:[i]})),n=sd(t,e);return{errors:r,valid:n}}function hrt(t){class e extends Pu{static{o(this,"EndAnchorFinder")}constructor(){super(...arguments),this.found=!1}visitEndAnchor(a){this.found=!0}}let r=dn(t,i=>{let a=i.PATTERN;try{let s=_y(a),l=new e;return l.visit(s),l.found}catch{return urt.test(a.source)}});return lt(r,i=>({message:`Unexpected RegExp Anchor Error: + Token Type: ->`+i.name+`<- static 'PATTERN' cannot contain end of input anchor '$' + See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:hi.EOI_ANCHOR_FOUND,tokenTypes:[i]}))}function frt(t){let e=dn(t,n=>n.PATTERN.test(""));return lt(e,n=>({message:"Token Type: ->"+n.name+"<- static 'PATTERN' must not match an empty string",type:hi.EMPTY_MATCH_PATTERN,tokenTypes:[n]}))}function prt(t){class e extends Pu{static{o(this,"StartAnchorFinder")}constructor(){super(...arguments),this.found=!1}visitStartAnchor(a){this.found=!0}}let r=dn(t,i=>{let a=i.PATTERN;try{let s=_y(a),l=new e;return l.visit(s),l.found}catch{return drt.test(a.source)}});return lt(r,i=>({message:`Unexpected RegExp Anchor Error: + Token Type: ->`+i.name+`<- static 'PATTERN' cannot contain start of input anchor '^' + See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:hi.SOI_ANCHOR_FOUND,tokenTypes:[i]}))}function mrt(t){let e=dn(t,n=>{let i=n[pm];return i instanceof RegExp&&(i.multiline||i.global)});return lt(e,n=>({message:"Token Type: ->"+n.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:hi.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[n]}))}function grt(t){let e=[],r=lt(t,a=>pn(t,(s,l)=>(a.PATTERN.source===l.PATTERN.source&&!ci(e,l)&&l.PATTERN!==fi.NA&&(e.push(l),s.push(l)),s),[]));r=xu(r);let n=dn(r,a=>a.length>1);return lt(n,a=>{let s=lt(a,u=>u.name);return{message:`The same RegExp pattern ->${Ta(a).PATTERN}<-has been used in all of the following Token Types: ${s.join(", ")} <-`,type:hi.DUPLICATE_PATTERNS_FOUND,tokenTypes:a}})}function yrt(t){let e=dn(t,n=>{if(!Gt(n,"GROUP"))return!1;let i=n.GROUP;return i!==fi.SKIPPED&&i!==fi.NA&&!Bi(i)});return lt(e,n=>({message:"Token Type: ->"+n.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:hi.INVALID_GROUP_TYPE_FOUND,tokenTypes:[n]}))}function vrt(t,e){let r=dn(t,i=>i.PUSH_MODE!==void 0&&!ci(e,i.PUSH_MODE));return lt(r,i=>({message:`Token Type: ->${i.name}<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->${i.PUSH_MODE}<-which does not exist`,type:hi.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[i]}))}function xrt(t){let e=[],r=pn(t,(n,i,a)=>{let s=i.PATTERN;return s===fi.NA||(Bi(s)?n.push({str:s,idx:a,tokenType:i}):Al(s)&&Trt(s)&&n.push({str:s.source,idx:a,tokenType:i})),n},[]);return Oe(t,(n,i)=>{Oe(r,({str:a,idx:s,tokenType:l})=>{if(i${l.name}<- can never be matched. +Because it appears AFTER the Token Type ->${n.name}<-in the lexer's definition. +See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e.push({message:u,type:hi.UNREACHABLE_PATTERN,tokenTypes:[n,l]})}})}),e}function brt(t,e){if(Al(e)){if(wrt(e))return!1;let r=e.exec(t);return r!==null&&r.index===0}else{if(Vi(e))return e(t,0,[],{});if(Gt(e,"exec"))return e.exec(t,0,[],{});if(typeof e=="string")return e===t;throw Error("non exhaustive match")}}function Trt(t){return Ls([".","\\","[","]","|","^","$","(",")","?","*","+","{"],r=>t.source.indexOf(r)!==-1)===void 0}function wrt(t){return/(\(\?=)|(\(\?!)|(\(\?<=)|(\(\? property in its definition +`,type:hi.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),Gt(t,u6)||n.push({message:"A MultiMode Lexer cannot be initialized without a <"+u6+`> property in its definition +`,type:hi.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),Gt(t,u6)&&Gt(t,Ry)&&!Gt(t.modes,t.defaultMode)&&n.push({message:`A MultiMode Lexer cannot be initialized with a ${Ry}: <${t.defaultMode}>which does not exist +`,type:hi.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),Gt(t,u6)&&Oe(t.modes,(i,a)=>{Oe(i,(s,l)=>{if(Dr(s))n.push({message:`A Lexer cannot be initialized using an undefined Token Type. Mode:<${a}> at index: <${l}> +`,type:hi.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED});else if(Gt(s,"LONGER_ALT")){let u=zt(s.LONGER_ALT)?s.LONGER_ALT:[s.LONGER_ALT];Oe(u,h=>{!Dr(h)&&!ci(i,h)&&n.push({message:`A MultiMode Lexer cannot be initialized with a longer_alt <${h.name}> on token <${s.name}> outside of mode <${a}> +`,type:hi.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE})})}})}),n}function $1e(t,e,r){let n=[],i=!1,a=xu(fn(Gr(t.modes))),s=od(a,u=>u[pm]===fi.NA),l=U1e(r);return e&&Oe(s,u=>{let h=q1e(u,l);if(h!==!1){let d={message:Ert(u,h),type:h.issue,tokenType:u};n.push(d)}else Gt(u,"LINE_BREAKS")?u.LINE_BREAKS===!0&&(i=!0):c6(l,u.PATTERN)&&(i=!0)}),e&&!i&&n.push({message:`Warning: No LINE_BREAKS Found. + This Lexer has been defined to track line and column information, + But none of the Token Types can be identified as matching a line terminator. + See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS + for details.`,type:hi.NO_LINE_BREAKS_FLAGS}),n}function z1e(t){let e={},r=nn(t);return Oe(r,n=>{let i=t[n];if(zt(i))e[n]=[];else throw Error("non exhaustive match")}),e}function G1e(t){let e=t.PATTERN;if(Al(e))return!1;if(Vi(e))return!0;if(Gt(e,"exec"))return!0;if(Bi(e))return!1;throw Error("non exhaustive match")}function krt(t){return Bi(t)&&t.length===1?t.charCodeAt(0):!1}function q1e(t,e){if(Gt(t,"LINE_BREAKS"))return!1;if(Al(t.PATTERN)){try{c6(e,t.PATTERN)}catch(r){return{issue:hi.IDENTIFY_TERMINATOR,errMsg:r.message}}return!1}else{if(Bi(t.PATTERN))return!1;if(G1e(t))return{issue:hi.CUSTOM_LINE_BREAK};throw Error("non exhaustive match")}}function Ert(t,e){if(e.issue===hi.IDENTIFY_TERMINATOR)return`Warning: unable to identify line terminator usage in pattern. + The problem is in the <${t.name}> Token Type + Root cause: ${e.errMsg}. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR`;if(e.issue===hi.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the option. + The problem is in the <${t.name}> Token Type + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK`;throw Error("non exhaustive match")}function U1e(t){return lt(t,r=>Bi(r)?r.charCodeAt(0):r)}function $F(t,e,r){t[e]===void 0?t[e]=[r]:t[e].push(r)}function Bu(t){return t255?255+~~(t/255):t}}var pm,Ry,u6,zF,urt,drt,V1e,Dy,h6,FF=O(()=>{"use strict";_T();BT();rr();Cy();M1e();o6();pm="PATTERN",Ry="defaultMode",u6="modes",zF=typeof new RegExp("(?:)").sticky=="boolean";o(P1e,"analyzeTokenTypes");o(B1e,"validatePatterns");o(ort,"validateRegExpPattern");o(lrt,"findMissingPatterns");o(crt,"findInvalidPatterns");urt=/[^\\][$]/;o(hrt,"findEndOfInputAnchor");o(frt,"findEmptyMatchRegExps");drt=/[^\\[][\^]|^\^/;o(prt,"findStartOfInputAnchor");o(mrt,"findUnsupportedFlags");o(grt,"findDuplicatePatterns");o(yrt,"findInvalidGroupType");o(vrt,"findModesThatDoNotExist");o(xrt,"findUnreachablePatterns");o(brt,"tryToMatchStrToPattern");o(Trt,"noMetaChar");o(wrt,"usesLookAheadOrBehind");o(I1e,"addStartOfInput");o(O1e,"addStickyFlag");o(F1e,"performRuntimeChecks");o($1e,"performWarningRuntimeChecks");o(z1e,"cloneEmptyGroups");o(G1e,"isCustomPattern");o(krt,"isShortPattern");V1e={test:o(function(t){let e=t.length;for(let r=this.lastIndex;r{r.isParent=r.categoryMatches.length>0})}function Crt(t){let e=Tn(t),r=t,n=!0;for(;n;){r=xu(fn(lt(r,a=>a.CATEGORIES)));let i=sd(r,e);e=e.concat(i),Er(i)?n=!1:r=i}return e}function Art(t){Oe(t,e=>{GF(e)||(Y1e[W1e]=e,e.tokenTypeIdx=W1e++),H1e(e)&&!zt(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),H1e(e)||(e.CATEGORIES=[]),Rrt(e)||(e.categoryMatches=[]),Lrt(e)||(e.categoryMatchesMap={})})}function _rt(t){Oe(t,e=>{e.categoryMatches=[],Oe(e.categoryMatchesMap,(r,n)=>{e.categoryMatches.push(Y1e[n].tokenTypeIdx)})})}function Drt(t){Oe(t,e=>{j1e([],e)})}function j1e(t,e){Oe(t,r=>{e.categoryMatchesMap[r.tokenTypeIdx]=!0}),Oe(e.CATEGORIES,r=>{let n=t.concat(e);ci(n,r)||j1e(n,r)})}function GF(t){return Gt(t,"tokenTypeIdx")}function H1e(t){return Gt(t,"CATEGORIES")}function Rrt(t){return Gt(t,"categoryMatches")}function Lrt(t){return Gt(t,"categoryMatchesMap")}function X1e(t){return Gt(t,"tokenTypeIdx")}var W1e,Y1e,mm=O(()=>{"use strict";rr();o(Yh,"tokenStructuredMatcher");o(Ly,"tokenStructuredMatcherNoCategories");W1e=1,Y1e={};o(jh,"augmentTokenTypes");o(Crt,"expandCategories");o(Art,"assignTokenDefaultProps");o(_rt,"assignCategoriesTokensProp");o(Drt,"assignCategoriesMapProp");o(j1e,"singleAssignCategoriesToksMap");o(GF,"hasShortKeyProperty");o(H1e,"hasCategoriesProperty");o(Rrt,"hasExtendingTokensTypesProperty");o(Lrt,"hasExtendingTokensTypesMapProperty");o(X1e,"isTokenType")});var Ny,VF=O(()=>{"use strict";Ny={buildUnableToPopLexerModeMessage(t){return`Unable to pop Lexer Mode after encountering Token ->${t.image}<- The Mode Stack is empty`},buildUnexpectedCharactersMessage(t,e,r,n,i,a){return`unexpected character: ->${t.charAt(e)}<- at offset: ${e}, skipped ${r} characters.`}}});var hi,FT,fi,BT=O(()=>{"use strict";FF();rr();Cy();mm();VF();o6();(function(t){t[t.MISSING_PATTERN=0]="MISSING_PATTERN",t[t.INVALID_PATTERN=1]="INVALID_PATTERN",t[t.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",t[t.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",t[t.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",t[t.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",t[t.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",t[t.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",t[t.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",t[t.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",t[t.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",t[t.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",t[t.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",t[t.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",t[t.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",t[t.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",t[t.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK",t[t.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE=17]="MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE"})(hi||(hi={}));FT={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[` +`,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:Ny,traceInitPerf:!1,skipValidations:!1,recoveryEnabled:!0};Object.freeze(FT);fi=class{static{o(this,"Lexer")}constructor(e,r=FT){if(this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},this.TRACE_INIT=(i,a)=>{if(this.traceInitPerf===!0){this.traceInitIndent++;let s=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent <${i}>`);let{time:l,value:u}=IT(a),h=l>10?console.warn:console.log;return this.traceInitIndent time: ${l}ms`),this.traceInitIndent--,u}else return a()},typeof r=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object. +a boolean 2nd argument is no longer supported`);this.config=$a({},FT,r);let n=this.config.traceInitPerf;n===!0?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):typeof n=="number"&&(this.traceInitMaxIdent=n,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",()=>{let i,a=!0;this.TRACE_INIT("Lexer Config handling",()=>{if(this.config.lineTerminatorsPattern===FT.lineTerminatorsPattern)this.config.lineTerminatorsPattern=V1e;else if(this.config.lineTerminatorCharacters===FT.lineTerminatorCharacters)throw Error(`Error: Missing property on the Lexer config. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(r.safeMode&&r.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');this.trackStartLines=/full|onlyStart/i.test(this.config.positionTracking),this.trackEndLines=/full/i.test(this.config.positionTracking),zt(e)?i={modes:{defaultMode:Tn(e)},defaultMode:Ry}:(a=!1,i=Tn(e))}),this.config.skipValidations===!1&&(this.TRACE_INIT("performRuntimeChecks",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(F1e(i,this.trackStartLines,this.config.lineTerminatorCharacters))}),this.TRACE_INIT("performWarningRuntimeChecks",()=>{this.lexerDefinitionWarning=this.lexerDefinitionWarning.concat($1e(i,this.trackStartLines,this.config.lineTerminatorCharacters))})),i.modes=i.modes?i.modes:{},Oe(i.modes,(l,u)=>{i.modes[u]=od(l,h=>Dr(h))});let s=nn(i.modes);if(Oe(i.modes,(l,u)=>{this.TRACE_INIT(`Mode: <${u}> processing`,()=>{if(this.modes.push(u),this.config.skipValidations===!1&&this.TRACE_INIT("validatePatterns",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(B1e(l,s))}),Er(this.lexerDefinitionErrors)){jh(l);let h;this.TRACE_INIT("analyzeTokenTypes",()=>{h=P1e(l,{lineTerminatorCharacters:this.config.lineTerminatorCharacters,positionTracking:r.positionTracking,ensureOptimizations:r.ensureOptimizations,safeMode:r.safeMode,tracer:this.TRACE_INIT})}),this.patternIdxToConfig[u]=h.patternIdxToConfig,this.charCodeToPatternIdxToConfig[u]=h.charCodeToPatternIdxToConfig,this.emptyGroups=$a({},this.emptyGroups,h.emptyGroups),this.hasCustom=h.hasCustom||this.hasCustom,this.canModeBeOptimized[u]=h.canBeOptimized}})}),this.defaultMode=i.defaultMode,!Er(this.lexerDefinitionErrors)&&!this.config.deferDefinitionErrorsHandling){let u=lt(this.lexerDefinitionErrors,h=>h.message).join(`----------------------- +`);throw new Error(`Errors detected in definition of Lexer: +`+u)}Oe(this.lexerDefinitionWarning,l=>{MT(l.message)}),this.TRACE_INIT("Choosing sub-methods implementations",()=>{if(zF?(this.chopInput=va,this.match=this.matchWithTest):(this.updateLastIndex=ki,this.match=this.matchWithExec),a&&(this.handleModes=ki),this.trackStartLines===!1&&(this.computeNewColumn=va),this.trackEndLines===!1&&(this.updateTokenEndLineColumnLocation=ki),/full/i.test(this.config.positionTracking))this.createTokenInstance=this.createFullToken;else if(/onlyStart/i.test(this.config.positionTracking))this.createTokenInstance=this.createStartOnlyToken;else if(/onlyOffset/i.test(this.config.positionTracking))this.createTokenInstance=this.createOffsetOnlyToken;else throw Error(`Invalid config option: "${this.config.positionTracking}"`);this.hasCustom?(this.addToken=this.addTokenUsingPush,this.handlePayload=this.handlePayloadWithCustom):(this.addToken=this.addTokenUsingMemberAccess,this.handlePayload=this.handlePayloadNoCustom)}),this.TRACE_INIT("Failed Optimization Warnings",()=>{let l=pn(this.canModeBeOptimized,(u,h,f)=>(h===!1&&u.push(f),u),[]);if(r.ensureOptimizations&&!Er(l))throw Error(`Lexer Modes: < ${l.join(", ")} > cannot be optimized. + Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode. + Or inspect the console log for details on how to resolve these issues.`)}),this.TRACE_INIT("clearRegExpParserCache",()=>{D1e()}),this.TRACE_INIT("toFastProperties",()=>{OT(this)})})}tokenize(e,r=this.defaultMode){if(!Er(this.lexerDefinitionErrors)){let i=lt(this.lexerDefinitionErrors,a=>a.message).join(`----------------------- +`);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer: +`+i)}return this.tokenizeInternal(e,r)}tokenizeInternal(e,r){let n,i,a,s,l,u,h,f,d,p,m,g,y,v,x,b,T=e,E=T.length,w=0,k=0,S=this.hasCustom?0:Math.floor(e.length/10),A=new Array(S),L=[],I=this.trackStartLines?1:void 0,N=this.trackStartLines?1:void 0,C=z1e(this.emptyGroups),_=this.trackStartLines,D=this.config.lineTerminatorsPattern,M=0,R=[],P=[],B=[],F=[];Object.freeze(F);let G;function $(){return R}o($,"getPossiblePatternsSlow");function V(Y){let le=Bu(Y),ee=P[le];return ee===void 0?F:ee}o(V,"getPossiblePatternsOptimized");let X=o(Y=>{if(B.length===1&&Y.tokenType.PUSH_MODE===void 0){let le=this.config.errorMessageProvider.buildUnableToPopLexerModeMessage(Y);L.push({offset:Y.startOffset,line:Y.startLine,column:Y.startColumn,length:Y.image.length,message:le})}else{B.pop();let le=ba(B);R=this.patternIdxToConfig[le],P=this.charCodeToPatternIdxToConfig[le],M=R.length;let ee=this.canModeBeOptimized[le]&&this.config.safeMode===!1;P&&ee?G=V:G=$}},"pop_mode");function Q(Y){B.push(Y),P=this.charCodeToPatternIdxToConfig[Y],R=this.patternIdxToConfig[Y],M=R.length,M=R.length;let le=this.canModeBeOptimized[Y]&&this.config.safeMode===!1;P&&le?G=V:G=$}o(Q,"push_mode"),Q.call(this,r);let H,ie=this.config.recoveryEnabled;for(;wu.length){u=s,h=f,H=xe;break}}}break}}if(u!==null){if(d=u.length,p=H.group,p!==void 0&&(m=H.tokenTypeIdx,g=this.createTokenInstance(u,w,m,H.tokenType,I,N,d),this.handlePayload(g,h),p===!1?k=this.addToken(A,k,g):C[p].push(g)),e=this.chopInput(e,d),w=w+d,N=this.computeNewColumn(N,d),_===!0&&H.canLineTerminator===!0){let J=0,te,Z;D.lastIndex=0;do te=D.test(u),te===!0&&(Z=D.lastIndex-1,J++);while(te===!0);J!==0&&(I=I+J,N=d-Z,this.updateTokenEndLineColumnLocation(g,p,Z,J,I,N,d))}this.handleModes(H,X,Q,g)}else{let J=w,te=I,Z=N,xe=ie===!1;for(;xe===!1&&w{"use strict";rr();BT();mm();o(Xh,"tokenLabel");o(qF,"hasTokenLabel");Nrt="parent",K1e="categories",Q1e="label",Z1e="group",J1e="push_mode",eye="pop_mode",tye="longer_alt",rye="line_breaks",nye="start_chars_hint";o(Ud,"createToken");o(Mrt,"createTokenInternal");el=Ud({name:"EOF",pattern:fi.NA});jh([el]);o(Kh,"createTokenInstance");o($T,"tokenMatcher")});var Qh,iye,Lc,My=O(()=>{"use strict";gm();rr();zs();Qh={buildMismatchTokenMessage({expected:t,actual:e,previous:r,ruleName:n}){return`Expecting ${qF(t)?`--> ${Xh(t)} <--`:`token of type --> ${t.name} <--`} but found --> '${e.image}' <--`},buildNotAllInputParsedMessage({firstRedundant:t,ruleName:e}){return"Redundant input, expecting EOF but found: "+t.image},buildNoViableAltMessage({expectedPathsPerAlt:t,actual:e,previous:r,customUserDescription:n,ruleName:i}){let a="Expecting: ",l=` +but found: '`+Ta(e).image+"'";if(n)return a+n+l;{let u=pn(t,(p,m)=>p.concat(m),[]),h=lt(u,p=>`[${lt(p,m=>Xh(m)).join(", ")}]`),d=`one of these possible Token sequences: +${lt(h,(p,m)=>` ${m+1}. ${p}`).join(` +`)}`;return a+d+l}},buildEarlyExitMessage({expectedIterationPaths:t,actual:e,customUserDescription:r,ruleName:n}){let i="Expecting: ",s=` +but found: '`+Ta(e).image+"'";if(r)return i+r+s;{let u=`expecting at least one iteration which starts with one of these possible Token sequences:: + <${lt(t,h=>`[${lt(h,f=>Xh(f)).join(",")}]`).join(" ,")}>`;return i+u+s}}};Object.freeze(Qh);iye={buildRuleNotFoundError(t,e){return"Invalid grammar, reference to a rule which is not defined: ->"+e.nonTerminalName+`<- +inside top level rule: ->`+t.name+"<-"}},Lc={buildDuplicateFoundError(t,e){function r(f){return f instanceof Yr?f.terminalType.name:f instanceof Sn?f.nonTerminalName:""}o(r,"getExtraProductionArgument");let n=t.name,i=Ta(e),a=i.idx,s=ko(i),l=r(i),u=a>0,h=`->${s}${u?a:""}<- ${l?`with argument: ->${l}<-`:""} + appears more than once (${e.length} times) in the top level rule: ->${n}<-. + For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES + `;return h=h.replace(/[ \t]+/g," "),h=h.replace(/\s\s+/g,` +`),h},buildNamespaceConflictError(t){return`Namespace conflict found in grammar. +The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <${t.name}>. +To resolve this make sure each Terminal and Non-Terminal names are unique +This is easy to accomplish by using the convention that Terminal names start with an uppercase letter +and Non-Terminal names start with a lower case letter.`},buildAlternationPrefixAmbiguityError(t){let e=lt(t.prefixPath,i=>Xh(i)).join(", "),r=t.alternation.idx===0?"":t.alternation.idx;return`Ambiguous alternatives: <${t.ambiguityIndices.join(" ,")}> due to common lookahead prefix +in inside <${t.topLevelRule.name}> Rule, +<${e}> may appears as a prefix path in all these alternatives. +See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX +For Further details.`},buildAlternationAmbiguityError(t){let e=lt(t.prefixPath,i=>Xh(i)).join(", "),r=t.alternation.idx===0?"":t.alternation.idx,n=`Ambiguous Alternatives Detected: <${t.ambiguityIndices.join(" ,")}> in inside <${t.topLevelRule.name}> Rule, +<${e}> may appears as a prefix path in all these alternatives. +`;return n=n+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES +For Further details.`,n},buildEmptyRepetitionError(t){let e=ko(t.repetition);return t.repetition.idx!==0&&(e+=t.repetition.idx),`The repetition <${e}> within Rule <${t.topLevelRule.name}> can never consume any tokens. +This could lead to an infinite loop.`},buildTokenNameError(t){return"deprecated"},buildEmptyAlternationError(t){return`Ambiguous empty alternative: <${t.emptyChoiceIdx+1}> in inside <${t.topLevelRule.name}> Rule. +Only the last alternative may be an empty alternative.`},buildTooManyAlternativesError(t){return`An Alternation cannot have more than 256 alternatives: + inside <${t.topLevelRule.name}> Rule. + has ${t.alternation.definition.length+1} alternatives.`},buildLeftRecursionError(t){let e=t.topLevelRule.name,r=lt(t.leftRecursionPath,a=>a.name),n=`${e} --> ${r.concat([e]).join(" --> ")}`;return`Left Recursion found in grammar. +rule: <${e}> can be invoked from itself (directly or indirectly) +without consuming any Tokens. The grammar path that causes this is: + ${n} + To fix this refactor your grammar to remove the left recursion. +see: https://en.wikipedia.org/wiki/LL_parser#Left_factoring.`},buildInvalidRuleNameError(t){return"deprecated"},buildDuplicateRuleNameError(t){let e;return t.topLevelRule instanceof Fs?e=t.topLevelRule.name:e=t.topLevelRule,`Duplicate definition, rule: ->${e}<- is already defined in the grammar: ->${t.grammarName}<-`}}});function aye(t,e){let r=new UF(t,e);return r.resolveRefs(),r.errors}var UF,sye=O(()=>{"use strict";Eo();rr();zs();o(aye,"resolveGrammar");UF=class extends $s{static{o(this,"GastRefResolverVisitor")}constructor(e,r){super(),this.nameToTopRule=e,this.errMsgProvider=r,this.errors=[]}resolveRefs(){Oe(Gr(this.nameToTopRule),e=>{this.currTopLevel=e,e.accept(this)})}visitNonTerminal(e){let r=this.nameToTopRule[e.nonTerminalName];if(r)e.referencedRule=r;else{let n=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,e);this.errors.push({message:n,type:la.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:e.nonTerminalName})}}}});function m6(t,e,r=[]){r=Tn(r);let n=[],i=0;function a(l){return l.concat(Pi(t,i+1))}o(a,"remainingPathWith");function s(l){let u=m6(a(l),e,r);return n.concat(u)}for(o(s,"getAlternativesForProd");r.length{Er(u.definition)===!1&&(n=s(u.definition))}),n;if(l instanceof Yr)r.push(l.terminalType);else throw Error("non exhaustive match")}i++}return n.push({partialPath:r,suffixDef:Pi(t,i)}),n}function g6(t,e,r,n){let i="EXIT_NONE_TERMINAL",a=[i],s="EXIT_ALTERNATIVE",l=!1,u=e.length,h=u-n-1,f=[],d=[];for(d.push({idx:-1,def:t,ruleStack:[],occurrenceStack:[]});!Er(d);){let p=d.pop();if(p===s){l&&ba(d).idx<=h&&d.pop();continue}let m=p.def,g=p.idx,y=p.ruleStack,v=p.occurrenceStack;if(Er(m))continue;let x=m[0];if(x===i){let b={idx:g,def:Pi(m),ruleStack:Nh(y),occurrenceStack:Nh(v)};d.push(b)}else if(x instanceof Yr)if(g=0;b--){let T=x.definition[b],E={idx:g,def:T.definition.concat(Pi(m)),ruleStack:y,occurrenceStack:v};d.push(E),d.push(s)}else if(x instanceof Yn)d.push({idx:g,def:x.definition.concat(Pi(m)),ruleStack:y,occurrenceStack:v});else if(x instanceof Fs)d.push(Irt(x,g,y,v));else throw Error("non exhaustive match")}return f}function Irt(t,e,r,n){let i=Tn(r);i.push(t.name);let a=Tn(n);return a.push(1),{idx:e,def:t.definition,ruleStack:i,occurrenceStack:a}}var WF,f6,Iy,d6,zT,p6,GT,VT=O(()=>{"use strict";rr();NF();i6();zs();WF=class extends Hh{static{o(this,"AbstractNextPossibleTokensWalker")}constructor(e,r){super(),this.topProd=e,this.path=r,this.possibleTokTypes=[],this.nextProductionName="",this.nextProductionOccurrence=0,this.found=!1,this.isAtEndOfPath=!1}startWalking(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=Tn(this.path.ruleStack).reverse(),this.occurrenceStack=Tn(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes}walk(e,r=[]){this.found||super.walk(e,r)}walkProdRef(e,r,n){if(e.referencedRule.name===this.nextProductionName&&e.idx===this.nextProductionOccurrence){let i=r.concat(n);this.updateExpectedNext(),this.walk(e.referencedRule,i)}}updateExpectedNext(){Er(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())}},f6=class extends WF{static{o(this,"NextAfterTokenWalker")}constructor(e,r){super(e,r),this.path=r,this.nextTerminalName="",this.nextTerminalOccurrence=0,this.nextTerminalName=this.path.lastTok.name,this.nextTerminalOccurrence=this.path.lastTokOccurrence}walkTerminal(e,r,n){if(this.isAtEndOfPath&&e.terminalType.name===this.nextTerminalName&&e.idx===this.nextTerminalOccurrence&&!this.found){let i=r.concat(n),a=new Yn({definition:i});this.possibleTokTypes=dm(a),this.found=!0}}},Iy=class extends Hh{static{o(this,"AbstractNextTerminalAfterProductionWalker")}constructor(e,r){super(),this.topRule=e,this.occurrence=r,this.result={token:void 0,occurrence:void 0,isEndOfRule:void 0}}startWalking(){return this.walk(this.topRule),this.result}},d6=class extends Iy{static{o(this,"NextTerminalAfterManyWalker")}walkMany(e,r,n){if(e.idx===this.occurrence){let i=Ta(r.concat(n));this.result.isEndOfRule=i===void 0,i instanceof Yr&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkMany(e,r,n)}},zT=class extends Iy{static{o(this,"NextTerminalAfterManySepWalker")}walkManySep(e,r,n){if(e.idx===this.occurrence){let i=Ta(r.concat(n));this.result.isEndOfRule=i===void 0,i instanceof Yr&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkManySep(e,r,n)}},p6=class extends Iy{static{o(this,"NextTerminalAfterAtLeastOneWalker")}walkAtLeastOne(e,r,n){if(e.idx===this.occurrence){let i=Ta(r.concat(n));this.result.isEndOfRule=i===void 0,i instanceof Yr&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOne(e,r,n)}},GT=class extends Iy{static{o(this,"NextTerminalAfterAtLeastOneSepWalker")}walkAtLeastOneSep(e,r,n){if(e.idx===this.occurrence){let i=Ta(r.concat(n));this.result.isEndOfRule=i===void 0,i instanceof Yr&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOneSep(e,r,n)}};o(m6,"possiblePathsFrom");o(g6,"nextPossibleTokensAfter");o(Irt,"expandTopLevelRule")});function qT(t){if(t instanceof Cn||t==="Option")return di.OPTION;if(t instanceof Jr||t==="Repetition")return di.REPETITION;if(t instanceof jn||t==="RepetitionMandatory")return di.REPETITION_MANDATORY;if(t instanceof Xn||t==="RepetitionMandatoryWithSeparator")return di.REPETITION_MANDATORY_WITH_SEPARATOR;if(t instanceof zn||t==="RepetitionWithSeparator")return di.REPETITION_WITH_SEPARATOR;if(t instanceof Gn||t==="Alternation")return di.ALTERNATION;throw Error("non exhaustive match")}function v6(t){let{occurrence:e,rule:r,prodType:n,maxLookahead:i}=t,a=qT(n);return a===di.ALTERNATION?Oy(e,r,i):Py(e,r,a,i)}function lye(t,e,r,n,i,a){let s=Oy(t,e,r),l=pye(s)?Ly:Yh;return a(s,n,l,i)}function cye(t,e,r,n,i,a){let s=Py(t,e,i,r),l=pye(s)?Ly:Yh;return a(s[0],l,n)}function uye(t,e,r,n){let i=t.length,a=is(t,s=>is(s,l=>l.length===1));if(e)return function(s){let l=lt(s,u=>u.GATE);for(let u=0;ufn(u)),l=pn(s,(u,h,f)=>(Oe(h,d=>{Gt(u,d.tokenTypeIdx)||(u[d.tokenTypeIdx]=f),Oe(d.categoryMatches,p=>{Gt(u,p)||(u[p]=f)})}),u),{});return function(){let u=this.LA(1);return l[u.tokenTypeIdx]}}else return function(){for(let s=0;sa.length===1),i=t.length;if(n&&!r){let a=fn(t);if(a.length===1&&Er(a[0].categoryMatches)){let l=a[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===l}}else{let s=pn(a,(l,u,h)=>(l[u.tokenTypeIdx]=!0,Oe(u.categoryMatches,f=>{l[f]=!0}),l),[]);return function(){let l=this.LA(1);return s[l.tokenTypeIdx]===!0}}}else return function(){e:for(let a=0;am6([s],1)),n=oye(r.length),i=lt(r,s=>{let l={};return Oe(s,u=>{let h=HF(u.partialPath);Oe(h,f=>{l[f]=!0})}),l}),a=r;for(let s=1;s<=e;s++){let l=a;a=oye(l.length);for(let u=0;u{let x=HF(v.partialPath);Oe(x,b=>{i[u][b]=!0})})}}}}return n}function Oy(t,e,r,n){let i=new y6(t,di.ALTERNATION,n);return e.accept(i),fye(i.result,r)}function Py(t,e,r,n){let i=new y6(t,r);e.accept(i);let a=i.result,l=new YF(e,t,r).startWalking(),u=new Yn({definition:a}),h=new Yn({definition:l});return fye([u,h],n)}function x6(t,e){e:for(let r=0;r{let i=e[n];return r===i||i.categoryMatchesMap[r.tokenTypeIdx]})}function pye(t){return is(t,e=>is(e,r=>is(r,n=>Er(n.categoryMatches))))}var di,YF,y6,By=O(()=>{"use strict";rr();VT();i6();mm();zs();(function(t){t[t.OPTION=0]="OPTION",t[t.REPETITION=1]="REPETITION",t[t.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",t[t.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",t[t.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",t[t.ALTERNATION=5]="ALTERNATION"})(di||(di={}));o(qT,"getProdType");o(v6,"getLookaheadPaths");o(lye,"buildLookaheadFuncForOr");o(cye,"buildLookaheadFuncForOptionalProd");o(uye,"buildAlternativesLookAheadFunc");o(hye,"buildSingleAlternativeLookaheadFunction");YF=class extends Hh{static{o(this,"RestDefinitionFinderWalker")}constructor(e,r,n){super(),this.topProd=e,this.targetOccurrence=r,this.targetProdType=n}startWalking(){return this.walk(this.topProd),this.restDef}checkIsTarget(e,r,n,i){return e.idx===this.targetOccurrence&&this.targetProdType===r?(this.restDef=n.concat(i),!0):!1}walkOption(e,r,n){this.checkIsTarget(e,di.OPTION,r,n)||super.walkOption(e,r,n)}walkAtLeastOne(e,r,n){this.checkIsTarget(e,di.REPETITION_MANDATORY,r,n)||super.walkOption(e,r,n)}walkAtLeastOneSep(e,r,n){this.checkIsTarget(e,di.REPETITION_MANDATORY_WITH_SEPARATOR,r,n)||super.walkOption(e,r,n)}walkMany(e,r,n){this.checkIsTarget(e,di.REPETITION,r,n)||super.walkOption(e,r,n)}walkManySep(e,r,n){this.checkIsTarget(e,di.REPETITION_WITH_SEPARATOR,r,n)||super.walkOption(e,r,n)}},y6=class extends $s{static{o(this,"InsideDefinitionFinderVisitor")}constructor(e,r,n){super(),this.targetOccurrence=e,this.targetProdType=r,this.targetRef=n,this.result=[]}checkIsTarget(e,r){e.idx===this.targetOccurrence&&this.targetProdType===r&&(this.targetRef===void 0||e===this.targetRef)&&(this.result=e.definition)}visitOption(e){this.checkIsTarget(e,di.OPTION)}visitRepetition(e){this.checkIsTarget(e,di.REPETITION)}visitRepetitionMandatory(e){this.checkIsTarget(e,di.REPETITION_MANDATORY)}visitRepetitionMandatoryWithSeparator(e){this.checkIsTarget(e,di.REPETITION_MANDATORY_WITH_SEPARATOR)}visitRepetitionWithSeparator(e){this.checkIsTarget(e,di.REPETITION_WITH_SEPARATOR)}visitAlternation(e){this.checkIsTarget(e,di.ALTERNATION)}};o(oye,"initializeArrayOfArrays");o(HF,"pathToHashKeys");o(Ort,"isUniquePrefixHash");o(fye,"lookAheadSequenceFromAlternatives");o(Oy,"getLookaheadPathsForOr");o(Py,"getLookaheadPathsForOptionalProd");o(x6,"containsPath");o(dye,"isStrictPrefixOfPath");o(pye,"areTokenCategoriesNotUsed")});function mye(t){let e=t.lookaheadStrategy.validate({rules:t.rules,tokenTypes:t.tokenTypes,grammarName:t.grammarName});return lt(e,r=>Object.assign({type:la.CUSTOM_LOOKAHEAD_VALIDATION},r))}function gye(t,e,r,n){let i=za(t,u=>Prt(u,r)),a=Vrt(t,e,r),s=za(t,u=>$rt(u,r)),l=za(t,u=>Frt(u,t,n,r));return i.concat(a,s,l)}function Prt(t,e){let r=new jF;t.accept(r);let n=r.allProductions,i=bI(n,Brt),a=go(i,l=>l.length>1);return lt(Gr(a),l=>{let u=Ta(l),h=e.buildDuplicateFoundError(t,l),f=ko(u),d={message:h,type:la.DUPLICATE_PRODUCTIONS,ruleName:t.name,dslName:f,occurrence:u.idx},p=yye(u);return p&&(d.parameter=p),d})}function Brt(t){return`${ko(t)}_#_${t.idx}_#_${yye(t)}`}function yye(t){return t instanceof Yr?t.terminalType.name:t instanceof Sn?t.nonTerminalName:""}function Frt(t,e,r,n){let i=[];if(pn(e,(s,l)=>l.name===t.name?s+1:s,0)>1){let s=n.buildDuplicateRuleNameError({topLevelRule:t,grammarName:r});i.push({message:s,type:la.DUPLICATE_RULE_NAME,ruleName:t.name})}return i}function vye(t,e,r){let n=[],i;return ci(e,t)||(i=`Invalid rule override, rule: ->${t}<- cannot be overridden in the grammar: ->${r}<-as it is not defined in any of the super grammars `,n.push({message:i,type:la.INVALID_RULE_OVERRIDE,ruleName:t})),n}function KF(t,e,r,n=[]){let i=[],a=b6(e.definition);if(Er(a))return[];{let s=t.name;ci(a,t)&&i.push({message:r.buildLeftRecursionError({topLevelRule:t,leftRecursionPath:n}),type:la.LEFT_RECURSION,ruleName:s});let u=sd(a,n.concat([t])),h=za(u,f=>{let d=Tn(n);return d.push(f),KF(t,f,r,d)});return i.concat(h)}}function b6(t){let e=[];if(Er(t))return e;let r=Ta(t);if(r instanceof Sn)e.push(r.referencedRule);else if(r instanceof Yn||r instanceof Cn||r instanceof jn||r instanceof Xn||r instanceof zn||r instanceof Jr)e=e.concat(b6(r.definition));else if(r instanceof Gn)e=fn(lt(r.definition,a=>b6(a.definition)));else if(!(r instanceof Yr))throw Error("non exhaustive match");let n=fm(r),i=t.length>1;if(n&&i){let a=Pi(t);return e.concat(b6(a))}else return e}function xye(t,e){let r=new UT;t.accept(r);let n=r.alternations;return za(n,a=>{let s=Nh(a.definition);return za(s,(l,u)=>{let h=g6([l],[],Yh,1);return Er(h)?[{message:e.buildEmptyAlternationError({topLevelRule:t,alternation:a,emptyChoiceIdx:u}),type:la.NONE_LAST_EMPTY_ALT,ruleName:t.name,occurrence:a.idx,alternative:u+1}]:[]})})}function bye(t,e,r){let n=new UT;t.accept(n);let i=n.alternations;return i=od(i,s=>s.ignoreAmbiguities===!0),za(i,s=>{let l=s.idx,u=s.maxLookahead||e,h=Oy(l,t,u,s),f=zrt(h,s,t,r),d=Grt(h,s,t,r);return f.concat(d)})}function $rt(t,e){let r=new UT;t.accept(r);let n=r.alternations;return za(n,a=>a.definition.length>255?[{message:e.buildTooManyAlternativesError({topLevelRule:t,alternation:a}),type:la.TOO_MANY_ALTS,ruleName:t.name,occurrence:a.idx}]:[])}function Tye(t,e,r){let n=[];return Oe(t,i=>{let a=new XF;i.accept(a);let s=a.allProductions;Oe(s,l=>{let u=qT(l),h=l.maxLookahead||e,f=l.idx,p=Py(f,i,u,h)[0];if(Er(fn(p))){let m=r.buildEmptyRepetitionError({topLevelRule:i,repetition:l});n.push({message:m,type:la.NO_NON_EMPTY_LOOKAHEAD,ruleName:i.name})}})}),n}function zrt(t,e,r,n){let i=[],a=pn(t,(l,u,h)=>(e.definition[h].ignoreAmbiguities===!0||Oe(u,f=>{let d=[h];Oe(t,(p,m)=>{h!==m&&x6(p,f)&&e.definition[m].ignoreAmbiguities!==!0&&d.push(m)}),d.length>1&&!x6(i,f)&&(i.push(f),l.push({alts:d,path:f}))}),l),[]);return lt(a,l=>{let u=lt(l.alts,f=>f+1);return{message:n.buildAlternationAmbiguityError({topLevelRule:r,alternation:e,ambiguityIndices:u,prefixPath:l.path}),type:la.AMBIGUOUS_ALTS,ruleName:r.name,occurrence:e.idx,alternatives:l.alts}})}function Grt(t,e,r,n){let i=pn(t,(s,l,u)=>{let h=lt(l,f=>({idx:u,path:f}));return s.concat(h)},[]);return xu(za(i,s=>{if(e.definition[s.idx].ignoreAmbiguities===!0)return[];let u=s.idx,h=s.path,f=dn(i,p=>e.definition[p.idx].ignoreAmbiguities!==!0&&p.idx{let m=[p.idx+1,u+1],g=e.idx===0?"":e.idx;return{message:n.buildAlternationPrefixAmbiguityError({topLevelRule:r,alternation:e,ambiguityIndices:m,prefixPath:p.path}),type:la.AMBIGUOUS_PREFIX_ALTS,ruleName:r.name,occurrence:g,alternatives:m}})}))}function Vrt(t,e,r){let n=[],i=lt(e,a=>a.name);return Oe(t,a=>{let s=a.name;if(ci(i,s)){let l=r.buildNamespaceConflictError(a);n.push({message:l,type:la.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:s})}}),n}var jF,UT,XF,WT=O(()=>{"use strict";rr();Eo();zs();By();VT();mm();o(mye,"validateLookahead");o(gye,"validateGrammar");o(Prt,"validateDuplicateProductions");o(Brt,"identifyProductionForDuplicates");o(yye,"getExtraProductionArgument");jF=class extends $s{static{o(this,"OccurrenceValidationCollector")}constructor(){super(...arguments),this.allProductions=[]}visitNonTerminal(e){this.allProductions.push(e)}visitOption(e){this.allProductions.push(e)}visitRepetitionWithSeparator(e){this.allProductions.push(e)}visitRepetitionMandatory(e){this.allProductions.push(e)}visitRepetitionMandatoryWithSeparator(e){this.allProductions.push(e)}visitRepetition(e){this.allProductions.push(e)}visitAlternation(e){this.allProductions.push(e)}visitTerminal(e){this.allProductions.push(e)}};o(Frt,"validateRuleDoesNotAlreadyExist");o(vye,"validateRuleIsOverridden");o(KF,"validateNoLeftRecursion");o(b6,"getFirstNoneTerminal");UT=class extends $s{static{o(this,"OrCollector")}constructor(){super(...arguments),this.alternations=[]}visitAlternation(e){this.alternations.push(e)}};o(xye,"validateEmptyOrAlternative");o(bye,"validateAmbiguousAlternationAlternatives");XF=class extends $s{static{o(this,"RepetitionCollector")}constructor(){super(...arguments),this.allProductions=[]}visitRepetitionWithSeparator(e){this.allProductions.push(e)}visitRepetitionMandatory(e){this.allProductions.push(e)}visitRepetitionMandatoryWithSeparator(e){this.allProductions.push(e)}visitRepetition(e){this.allProductions.push(e)}};o($rt,"validateTooManyAlts");o(Tye,"validateSomeNonEmptyLookaheadPath");o(zrt,"checkAlternativesAmbiguities");o(Grt,"checkPrefixAlternativesAmbiguities");o(Vrt,"checkTerminalAndNoneTerminalsNameSpace")});function wye(t){let e=ad(t,{errMsgProvider:iye}),r={};return Oe(t.rules,n=>{r[n.name]=n}),aye(r,e.errMsgProvider)}function kye(t){return t=ad(t,{errMsgProvider:Lc}),gye(t.rules,t.tokenTypes,t.errMsgProvider,t.grammarName)}var Eye=O(()=>{"use strict";rr();sye();WT();My();o(wye,"resolveGrammar");o(kye,"validateGrammar")});function Wd(t){return ci(Dye,t.name)}var Sye,Cye,Aye,_ye,Dye,Fy,ym,HT,YT,jT,$y=O(()=>{"use strict";rr();Sye="MismatchedTokenException",Cye="NoViableAltException",Aye="EarlyExitException",_ye="NotAllInputParsedException",Dye=[Sye,Cye,Aye,_ye];Object.freeze(Dye);o(Wd,"isRecognitionException");Fy=class extends Error{static{o(this,"RecognitionException")}constructor(e,r){super(e),this.token=r,this.resyncedTokens=[],Object.setPrototypeOf(this,new.target.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}},ym=class extends Fy{static{o(this,"MismatchedTokenException")}constructor(e,r,n){super(e,r),this.previousToken=n,this.name=Sye}},HT=class extends Fy{static{o(this,"NoViableAltException")}constructor(e,r,n){super(e,r),this.previousToken=n,this.name=Cye}},YT=class extends Fy{static{o(this,"NotAllInputParsedException")}constructor(e,r){super(e,r),this.name=_ye}},jT=class extends Fy{static{o(this,"EarlyExitException")}constructor(e,r,n){super(e,r),this.previousToken=n,this.name=Aye}}});function qrt(t,e,r,n,i,a,s){let l=this.getKeyForAutomaticLookahead(n,i),u=this.firstAfterRepMap[l];if(u===void 0){let p=this.getCurrRuleFullName(),m=this.getGAstProductions()[p];u=new a(m,i).startWalking(),this.firstAfterRepMap[l]=u}let h=u.token,f=u.occurrence,d=u.isEndOfRule;this.RULE_STACK.length===1&&d&&h===void 0&&(h=el,f=1),!(h===void 0||f===void 0)&&this.shouldInRepetitionRecoveryBeTried(h,f,s)&&this.tryInRepetitionRecovery(t,e,r,h)}var QF,JF,ZF,T6,e$=O(()=>{"use strict";gm();rr();$y();MF();Eo();QF={},JF="InRuleRecoveryException",ZF=class extends Error{static{o(this,"InRuleRecoveryException")}constructor(e){super(e),this.name=JF}},T6=class{static{o(this,"Recoverable")}initRecoverable(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=Gt(e,"recoveryEnabled")?e.recoveryEnabled:Gs.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=qrt)}getTokenToInsert(e){let r=Kh(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return r.isInsertedInRecovery=!0,r}canTokenTypeBeInsertedInRecovery(e){return!0}canTokenTypeBeDeletedInRecovery(e){return!0}tryInRepetitionRecovery(e,r,n,i){let a=this.findReSyncTokenType(),s=this.exportLexerState(),l=[],u=!1,h=this.LA(1),f=this.LA(1),d=o(()=>{let p=this.LA(0),m=this.errorMessageProvider.buildMismatchTokenMessage({expected:i,actual:h,previous:p,ruleName:this.getCurrRuleFullName()}),g=new ym(m,h,this.LA(0));g.resyncedTokens=Nh(l),this.SAVE_ERROR(g)},"generateErrorMessage");for(;!u;)if(this.tokenMatcher(f,i)){d();return}else if(n.call(this)){d(),e.apply(this,r);return}else this.tokenMatcher(f,a)?u=!0:(f=this.SKIP_TOKEN(),this.addToResyncTokens(f,l));this.importLexerState(s)}shouldInRepetitionRecoveryBeTried(e,r,n){return!(n===!1||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,r)))}getFollowsForInRuleRecovery(e,r){let n=this.getCurrentGrammarPath(e,r);return this.getNextPossibleTokenTypes(n)}tryInRuleRecovery(e,r){if(this.canRecoverWithSingleTokenInsertion(e,r))return this.getTokenToInsert(e);if(this.canRecoverWithSingleTokenDeletion(e)){let n=this.SKIP_TOKEN();return this.consumeToken(),n}throw new ZF("sad sad panda")}canPerformInRuleRecovery(e,r){return this.canRecoverWithSingleTokenInsertion(e,r)||this.canRecoverWithSingleTokenDeletion(e)}canRecoverWithSingleTokenInsertion(e,r){if(!this.canTokenTypeBeInsertedInRecovery(e)||Er(r))return!1;let n=this.LA(1);return Ls(r,a=>this.tokenMatcher(n,a))!==void 0}canRecoverWithSingleTokenDeletion(e){return this.canTokenTypeBeDeletedInRecovery(e)?this.tokenMatcher(this.LA(2),e):!1}isInCurrentRuleReSyncSet(e){let r=this.getCurrFollowKey(),n=this.getFollowSetFromFollowKey(r);return ci(n,e)}findReSyncTokenType(){let e=this.flattenFollowSet(),r=this.LA(1),n=2;for(;;){let i=Ls(e,a=>$T(r,a));if(i!==void 0)return i;r=this.LA(n),n++}}getCurrFollowKey(){if(this.RULE_STACK.length===1)return QF;let e=this.getLastExplicitRuleShortName(),r=this.getLastExplicitRuleOccurrenceIndex(),n=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:r,inRule:this.shortRuleNameToFullName(n)}}buildFullFollowKeyStack(){let e=this.RULE_STACK,r=this.RULE_OCCURRENCE_STACK;return lt(e,(n,i)=>i===0?QF:{ruleName:this.shortRuleNameToFullName(n),idxInCallingRule:r[i],inRule:this.shortRuleNameToFullName(e[i-1])})}flattenFollowSet(){let e=lt(this.buildFullFollowKeyStack(),r=>this.getFollowSetFromFollowKey(r));return fn(e)}getFollowSetFromFollowKey(e){if(e===QF)return[el];let r=e.ruleName+e.idxInCallingRule+a6+e.inRule;return this.resyncFollows[r]}addToResyncTokens(e,r){return this.tokenMatcher(e,el)||r.push(e),r}reSyncTo(e){let r=[],n=this.LA(1);for(;this.tokenMatcher(n,e)===!1;)n=this.SKIP_TOKEN(),this.addToResyncTokens(n,r);return Nh(r)}attemptInRepetitionRecovery(e,r,n,i,a,s,l){}getCurrentGrammarPath(e,r){let n=this.getHumanReadableRuleStack(),i=Tn(this.RULE_OCCURRENCE_STACK);return{ruleStack:n,occurrenceStack:i,lastTok:e,lastTokOccurrence:r}}getHumanReadableRuleStack(){return lt(this.RULE_STACK,e=>this.shortRuleNameToFullName(e))}};o(qrt,"attemptInRepetitionRecovery")});function w6(t,e,r){return r|e|t}var k6=O(()=>{"use strict";o(w6,"getKeyForAutomaticLookahead")});var Zh,t$=O(()=>{"use strict";rr();My();Eo();WT();By();Zh=class{static{o(this,"LLkLookaheadStrategy")}constructor(e){var r;this.maxLookahead=(r=e?.maxLookahead)!==null&&r!==void 0?r:Gs.maxLookahead}validate(e){let r=this.validateNoLeftRecursion(e.rules);if(Er(r)){let n=this.validateEmptyOrAlternatives(e.rules),i=this.validateAmbiguousAlternationAlternatives(e.rules,this.maxLookahead),a=this.validateSomeNonEmptyLookaheadPath(e.rules,this.maxLookahead);return[...r,...n,...i,...a]}return r}validateNoLeftRecursion(e){return za(e,r=>KF(r,r,Lc))}validateEmptyOrAlternatives(e){return za(e,r=>xye(r,Lc))}validateAmbiguousAlternationAlternatives(e,r){return za(e,n=>bye(n,r,Lc))}validateSomeNonEmptyLookaheadPath(e,r){return Tye(e,r,Lc)}buildLookaheadForAlternation(e){return lye(e.prodOccurrence,e.rule,e.maxLookahead,e.hasPredicates,e.dynamicTokensEnabled,uye)}buildLookaheadForOptional(e){return cye(e.prodOccurrence,e.rule,e.maxLookahead,e.dynamicTokensEnabled,qT(e.prodType),hye)}}});function Urt(t){E6.reset(),t.accept(E6);let e=E6.dslMethods;return E6.reset(),e}var S6,r$,E6,Rye=O(()=>{"use strict";rr();Eo();k6();zs();t$();S6=class{static{o(this,"LooksAhead")}initLooksAhead(e){this.dynamicTokensEnabled=Gt(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:Gs.dynamicTokensEnabled,this.maxLookahead=Gt(e,"maxLookahead")?e.maxLookahead:Gs.maxLookahead,this.lookaheadStrategy=Gt(e,"lookaheadStrategy")?e.lookaheadStrategy:new Zh({maxLookahead:this.maxLookahead}),this.lookAheadFuncsCache=new Map}preComputeLookaheadFunctions(e){Oe(e,r=>{this.TRACE_INIT(`${r.name} Rule Lookahead`,()=>{let{alternation:n,repetition:i,option:a,repetitionMandatory:s,repetitionMandatoryWithSeparator:l,repetitionWithSeparator:u}=Urt(r);Oe(n,h=>{let f=h.idx===0?"":h.idx;this.TRACE_INIT(`${ko(h)}${f}`,()=>{let d=this.lookaheadStrategy.buildLookaheadForAlternation({prodOccurrence:h.idx,rule:r,maxLookahead:h.maxLookahead||this.maxLookahead,hasPredicates:h.hasPredicates,dynamicTokensEnabled:this.dynamicTokensEnabled}),p=w6(this.fullRuleNameToShort[r.name],256,h.idx);this.setLaFuncCache(p,d)})}),Oe(i,h=>{this.computeLookaheadFunc(r,h.idx,768,"Repetition",h.maxLookahead,ko(h))}),Oe(a,h=>{this.computeLookaheadFunc(r,h.idx,512,"Option",h.maxLookahead,ko(h))}),Oe(s,h=>{this.computeLookaheadFunc(r,h.idx,1024,"RepetitionMandatory",h.maxLookahead,ko(h))}),Oe(l,h=>{this.computeLookaheadFunc(r,h.idx,1536,"RepetitionMandatoryWithSeparator",h.maxLookahead,ko(h))}),Oe(u,h=>{this.computeLookaheadFunc(r,h.idx,1280,"RepetitionWithSeparator",h.maxLookahead,ko(h))})})})}computeLookaheadFunc(e,r,n,i,a,s){this.TRACE_INIT(`${s}${r===0?"":r}`,()=>{let l=this.lookaheadStrategy.buildLookaheadForOptional({prodOccurrence:r,rule:e,maxLookahead:a||this.maxLookahead,dynamicTokensEnabled:this.dynamicTokensEnabled,prodType:i}),u=w6(this.fullRuleNameToShort[e.name],n,r);this.setLaFuncCache(u,l)})}getKeyForAutomaticLookahead(e,r){let n=this.getLastExplicitRuleShortName();return w6(n,e,r)}getLaFuncFromCache(e){return this.lookAheadFuncsCache.get(e)}setLaFuncCache(e,r){this.lookAheadFuncsCache.set(e,r)}},r$=class extends $s{static{o(this,"DslMethodsCollectorVisitor")}constructor(){super(...arguments),this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}reset(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}visitOption(e){this.dslMethods.option.push(e)}visitRepetitionWithSeparator(e){this.dslMethods.repetitionWithSeparator.push(e)}visitRepetitionMandatory(e){this.dslMethods.repetitionMandatory.push(e)}visitRepetitionMandatoryWithSeparator(e){this.dslMethods.repetitionMandatoryWithSeparator.push(e)}visitRepetition(e){this.dslMethods.repetition.push(e)}visitAlternation(e){this.dslMethods.alternation.push(e)}},E6=new r$;o(Urt,"collectMethods")});function a$(t,e){isNaN(t.startOffset)===!0?(t.startOffset=e.startOffset,t.endOffset=e.endOffset):t.endOffset{"use strict";o(a$,"setNodeLocationOnlyOffset");o(s$,"setNodeLocationFull");o(Lye,"addTerminalToCst");o(Nye,"addNoneTerminalToCst")});function o$(t,e){Object.defineProperty(t,Wrt,{enumerable:!1,configurable:!0,writable:!1,value:e})}var Wrt,Iye=O(()=>{"use strict";Wrt="name";o(o$,"defineNameProp")});function Hrt(t,e){let r=nn(t),n=r.length;for(let i=0;is.msg);throw Error(`Errors Detected in CST Visitor <${this.constructor.name}>: + ${a.join(` + +`).replace(/\n/g,` + `)}`)}},"validateVisitor")};return r.prototype=n,r.prototype.constructor=r,r._RULE_NAMES=e,r}function Pye(t,e,r){let n=o(function(){},"derivedConstructor");o$(n,t+"BaseSemanticsWithDefaults");let i=Object.create(r.prototype);return Oe(e,a=>{i[a]=Hrt}),n.prototype=i,n.prototype.constructor=n,n}function Yrt(t,e){return jrt(t,e)}function jrt(t,e){let r=dn(e,i=>Vi(t[i])===!1),n=lt(r,i=>({msg:`Missing visitor method: <${i}> on ${t.constructor.name} CST Visitor.`,type:l$.MISSING_METHOD,methodName:i}));return xu(n)}var l$,Bye=O(()=>{"use strict";rr();Iye();o(Hrt,"defaultVisit");o(Oye,"createBaseSemanticVisitorConstructor");o(Pye,"createBaseVisitorConstructorWithDefaults");(function(t){t[t.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",t[t.MISSING_METHOD=1]="MISSING_METHOD"})(l$||(l$={}));o(Yrt,"validateVisitor");o(jrt,"validateMissingCstMethods")});var D6,Fye=O(()=>{"use strict";Mye();rr();Bye();Eo();D6=class{static{o(this,"TreeBuilder")}initTreeBuilder(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=Gt(e,"nodeLocationTracking")?e.nodeLocationTracking:Gs.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=ki,this.cstFinallyStateUpdate=ki,this.cstPostTerminal=ki,this.cstPostNonTerminal=ki,this.cstPostRule=ki;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=s$,this.setNodeLocationFromNode=s$,this.cstPostRule=ki,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=ki,this.setNodeLocationFromNode=ki,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=a$,this.setNodeLocationFromNode=a$,this.cstPostRule=ki,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=ki,this.setNodeLocationFromNode=ki,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=ki,this.setNodeLocationFromNode=ki,this.cstPostRule=ki,this.setInitialNodeLocation=ki;else throw Error(`Invalid config option: "${e.nodeLocationTracking}"`)}setInitialNodeLocationOnlyOffsetRecovery(e){e.location={startOffset:NaN,endOffset:NaN}}setInitialNodeLocationOnlyOffsetRegular(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}}setInitialNodeLocationFullRecovery(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}}setInitialNodeLocationFullRegular(e){let r=this.LA(1);e.location={startOffset:r.startOffset,startLine:r.startLine,startColumn:r.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}}cstInvocationStateUpdate(e){let r={name:e,children:Object.create(null)};this.setInitialNodeLocation(r),this.CST_STACK.push(r)}cstFinallyStateUpdate(){this.CST_STACK.pop()}cstPostRuleFull(e){let r=this.LA(0),n=e.location;n.startOffset<=r.startOffset?(n.endOffset=r.endOffset,n.endLine=r.endLine,n.endColumn=r.endColumn):(n.startOffset=NaN,n.startLine=NaN,n.startColumn=NaN)}cstPostRuleOnlyOffset(e){let r=this.LA(0),n=e.location;n.startOffset<=r.startOffset?n.endOffset=r.endOffset:n.startOffset=NaN}cstPostTerminal(e,r){let n=this.CST_STACK[this.CST_STACK.length-1];Lye(n,r,e),this.setNodeLocationFromToken(n.location,r)}cstPostNonTerminal(e,r){let n=this.CST_STACK[this.CST_STACK.length-1];Nye(n,r,e),this.setNodeLocationFromNode(n.location,e.location)}getBaseCstVisitorConstructor(){if(Dr(this.baseCstVisitorConstructor)){let e=Oye(this.className,nn(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor}getBaseCstVisitorConstructorWithDefaults(){if(Dr(this.baseCstVisitorWithDefaultsConstructor)){let e=Pye(this.className,nn(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor}getLastExplicitRuleShortName(){let e=this.RULE_STACK;return e[e.length-1]}getPreviousExplicitRuleShortName(){let e=this.RULE_STACK;return e[e.length-2]}getLastExplicitRuleOccurrenceIndex(){let e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]}}});var R6,$ye=O(()=>{"use strict";Eo();R6=class{static{o(this,"LexerAdapter")}initLexerAdapter(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1}set input(e){if(this.selfAnalysisDone!==!0)throw Error("Missing invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length}get input(){return this.tokVector}SKIP_TOKEN(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):zy}LA(e){let r=this.currIdx+e;return r<0||this.tokVectorLength<=r?zy:this.tokVector[r]}consumeToken(){this.currIdx++}exportLexerState(){return this.currIdx}importLexerState(e){this.currIdx=e}resetLexerState(){this.currIdx=-1}moveToTerminatedState(){this.currIdx=this.tokVector.length-1}getLexerPosition(){return this.exportLexerState()}}});var L6,zye=O(()=>{"use strict";rr();$y();Eo();My();WT();zs();L6=class{static{o(this,"RecognizerApi")}ACTION(e){return e.call(this)}consume(e,r,n){return this.consumeInternal(r,e,n)}subrule(e,r,n){return this.subruleInternal(r,e,n)}option(e,r){return this.optionInternal(r,e)}or(e,r){return this.orInternal(r,e)}many(e,r){return this.manyInternal(e,r)}atLeastOne(e,r){return this.atLeastOneInternal(e,r)}CONSUME(e,r){return this.consumeInternal(e,0,r)}CONSUME1(e,r){return this.consumeInternal(e,1,r)}CONSUME2(e,r){return this.consumeInternal(e,2,r)}CONSUME3(e,r){return this.consumeInternal(e,3,r)}CONSUME4(e,r){return this.consumeInternal(e,4,r)}CONSUME5(e,r){return this.consumeInternal(e,5,r)}CONSUME6(e,r){return this.consumeInternal(e,6,r)}CONSUME7(e,r){return this.consumeInternal(e,7,r)}CONSUME8(e,r){return this.consumeInternal(e,8,r)}CONSUME9(e,r){return this.consumeInternal(e,9,r)}SUBRULE(e,r){return this.subruleInternal(e,0,r)}SUBRULE1(e,r){return this.subruleInternal(e,1,r)}SUBRULE2(e,r){return this.subruleInternal(e,2,r)}SUBRULE3(e,r){return this.subruleInternal(e,3,r)}SUBRULE4(e,r){return this.subruleInternal(e,4,r)}SUBRULE5(e,r){return this.subruleInternal(e,5,r)}SUBRULE6(e,r){return this.subruleInternal(e,6,r)}SUBRULE7(e,r){return this.subruleInternal(e,7,r)}SUBRULE8(e,r){return this.subruleInternal(e,8,r)}SUBRULE9(e,r){return this.subruleInternal(e,9,r)}OPTION(e){return this.optionInternal(e,0)}OPTION1(e){return this.optionInternal(e,1)}OPTION2(e){return this.optionInternal(e,2)}OPTION3(e){return this.optionInternal(e,3)}OPTION4(e){return this.optionInternal(e,4)}OPTION5(e){return this.optionInternal(e,5)}OPTION6(e){return this.optionInternal(e,6)}OPTION7(e){return this.optionInternal(e,7)}OPTION8(e){return this.optionInternal(e,8)}OPTION9(e){return this.optionInternal(e,9)}OR(e){return this.orInternal(e,0)}OR1(e){return this.orInternal(e,1)}OR2(e){return this.orInternal(e,2)}OR3(e){return this.orInternal(e,3)}OR4(e){return this.orInternal(e,4)}OR5(e){return this.orInternal(e,5)}OR6(e){return this.orInternal(e,6)}OR7(e){return this.orInternal(e,7)}OR8(e){return this.orInternal(e,8)}OR9(e){return this.orInternal(e,9)}MANY(e){this.manyInternal(0,e)}MANY1(e){this.manyInternal(1,e)}MANY2(e){this.manyInternal(2,e)}MANY3(e){this.manyInternal(3,e)}MANY4(e){this.manyInternal(4,e)}MANY5(e){this.manyInternal(5,e)}MANY6(e){this.manyInternal(6,e)}MANY7(e){this.manyInternal(7,e)}MANY8(e){this.manyInternal(8,e)}MANY9(e){this.manyInternal(9,e)}MANY_SEP(e){this.manySepFirstInternal(0,e)}MANY_SEP1(e){this.manySepFirstInternal(1,e)}MANY_SEP2(e){this.manySepFirstInternal(2,e)}MANY_SEP3(e){this.manySepFirstInternal(3,e)}MANY_SEP4(e){this.manySepFirstInternal(4,e)}MANY_SEP5(e){this.manySepFirstInternal(5,e)}MANY_SEP6(e){this.manySepFirstInternal(6,e)}MANY_SEP7(e){this.manySepFirstInternal(7,e)}MANY_SEP8(e){this.manySepFirstInternal(8,e)}MANY_SEP9(e){this.manySepFirstInternal(9,e)}AT_LEAST_ONE(e){this.atLeastOneInternal(0,e)}AT_LEAST_ONE1(e){return this.atLeastOneInternal(1,e)}AT_LEAST_ONE2(e){this.atLeastOneInternal(2,e)}AT_LEAST_ONE3(e){this.atLeastOneInternal(3,e)}AT_LEAST_ONE4(e){this.atLeastOneInternal(4,e)}AT_LEAST_ONE5(e){this.atLeastOneInternal(5,e)}AT_LEAST_ONE6(e){this.atLeastOneInternal(6,e)}AT_LEAST_ONE7(e){this.atLeastOneInternal(7,e)}AT_LEAST_ONE8(e){this.atLeastOneInternal(8,e)}AT_LEAST_ONE9(e){this.atLeastOneInternal(9,e)}AT_LEAST_ONE_SEP(e){this.atLeastOneSepFirstInternal(0,e)}AT_LEAST_ONE_SEP1(e){this.atLeastOneSepFirstInternal(1,e)}AT_LEAST_ONE_SEP2(e){this.atLeastOneSepFirstInternal(2,e)}AT_LEAST_ONE_SEP3(e){this.atLeastOneSepFirstInternal(3,e)}AT_LEAST_ONE_SEP4(e){this.atLeastOneSepFirstInternal(4,e)}AT_LEAST_ONE_SEP5(e){this.atLeastOneSepFirstInternal(5,e)}AT_LEAST_ONE_SEP6(e){this.atLeastOneSepFirstInternal(6,e)}AT_LEAST_ONE_SEP7(e){this.atLeastOneSepFirstInternal(7,e)}AT_LEAST_ONE_SEP8(e){this.atLeastOneSepFirstInternal(8,e)}AT_LEAST_ONE_SEP9(e){this.atLeastOneSepFirstInternal(9,e)}RULE(e,r,n=Gy){if(ci(this.definedRulesNames,e)){let s={message:Lc.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),type:la.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(s)}this.definedRulesNames.push(e);let i=this.defineRule(e,r,n);return this[e]=i,i}OVERRIDE_RULE(e,r,n=Gy){let i=vye(e,this.definedRulesNames,this.className);this.definitionErrors=this.definitionErrors.concat(i);let a=this.defineRule(e,r,n);return this[e]=a,a}BACKTRACK(e,r){return function(){this.isBackTrackingStack.push(1);let n=this.saveRecogState();try{return e.apply(this,r),!0}catch(i){if(Wd(i))return!1;throw i}finally{this.reloadRecogState(n),this.isBackTrackingStack.pop()}}}getGAstProductions(){return this.gastProductionsCache}getSerializedGastProductions(){return r6(Gr(this.gastProductionsCache))}}});var N6,Gye=O(()=>{"use strict";rr();k6();$y();By();VT();Eo();e$();gm();mm();N6=class{static{o(this,"RecognizerEngine")}initRecognizerEngine(e,r){if(this.className=this.constructor.name,this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=Ly,this.subruleIdx=0,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},Gt(r,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a property. + See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0 + For Further details.`);if(zt(e)){if(Er(e))throw Error(`A Token Vocabulary cannot be empty. + Note that the first argument for the parser constructor + is no longer a Token vector (since v4.0).`);if(typeof e[0].startOffset=="number")throw Error(`The Parser constructor no longer accepts a token vector as the first argument. + See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0 + For Further details.`)}if(zt(e))this.tokensMap=pn(e,(a,s)=>(a[s.name]=s,a),{});else if(Gt(e,"modes")&&is(fn(Gr(e.modes)),X1e)){let a=fn(Gr(e.modes)),s=P1(a);this.tokensMap=pn(s,(l,u)=>(l[u.name]=u,l),{})}else if(On(e))this.tokensMap=Tn(e);else throw new Error(" argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=el;let n=Gt(e,"modes")?fn(Gr(e.modes)):Gr(e),i=is(n,a=>Er(a.categoryMatches));this.tokenMatcher=i?Ly:Yh,jh(Gr(this.tokensMap))}defineRule(e,r,n){if(this.selfAnalysisDone)throw Error(`Grammar rule <${e}> may not be defined after the 'performSelfAnalysis' method has been called' +Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);let i=Gt(n,"resyncEnabled")?n.resyncEnabled:Gy.resyncEnabled,a=Gt(n,"recoveryValueFunc")?n.recoveryValueFunc:Gy.recoveryValueFunc,s=this.ruleShortNameIdx<<12;this.ruleShortNameIdx++,this.shortRuleNameToFull[s]=e,this.fullRuleNameToShort[e]=s;let l;return this.outputCst===!0?l=o(function(...f){try{this.ruleInvocationStateUpdate(s,e,this.subruleIdx),r.apply(this,f);let d=this.CST_STACK[this.CST_STACK.length-1];return this.cstPostRule(d),d}catch(d){return this.invokeRuleCatch(d,i,a)}finally{this.ruleFinallyStateUpdate()}},"invokeRuleWithTry"):l=o(function(...f){try{return this.ruleInvocationStateUpdate(s,e,this.subruleIdx),r.apply(this,f)}catch(d){return this.invokeRuleCatch(d,i,a)}finally{this.ruleFinallyStateUpdate()}},"invokeRuleWithTryCst"),Object.assign(l,{ruleName:e,originalGrammarAction:r})}invokeRuleCatch(e,r,n){let i=this.RULE_STACK.length===1,a=r&&!this.isBackTracking()&&this.recoveryEnabled;if(Wd(e)){let s=e;if(a){let l=this.findReSyncTokenType();if(this.isInCurrentRuleReSyncSet(l))if(s.resyncedTokens=this.reSyncTo(l),this.outputCst){let u=this.CST_STACK[this.CST_STACK.length-1];return u.recoveredNode=!0,u}else return n(e);else{if(this.outputCst){let u=this.CST_STACK[this.CST_STACK.length-1];u.recoveredNode=!0,s.partialCstResult=u}throw s}}else{if(i)return this.moveToTerminatedState(),n(e);throw s}}else throw e}optionInternal(e,r){let n=this.getKeyForAutomaticLookahead(512,r);return this.optionInternalLogic(e,r,n)}optionInternalLogic(e,r,n){let i=this.getLaFuncFromCache(n),a;if(typeof e!="function"){a=e.DEF;let s=e.GATE;if(s!==void 0){let l=i;i=o(()=>s.call(this)&&l.call(this),"lookAheadFunc")}}else a=e;if(i.call(this)===!0)return a.call(this)}atLeastOneInternal(e,r){let n=this.getKeyForAutomaticLookahead(1024,e);return this.atLeastOneInternalLogic(e,r,n)}atLeastOneInternalLogic(e,r,n){let i=this.getLaFuncFromCache(n),a;if(typeof r!="function"){a=r.DEF;let s=r.GATE;if(s!==void 0){let l=i;i=o(()=>s.call(this)&&l.call(this),"lookAheadFunc")}}else a=r;if(i.call(this)===!0){let s=this.doSingleRepetition(a);for(;i.call(this)===!0&&s===!0;)s=this.doSingleRepetition(a)}else throw this.raiseEarlyExitException(e,di.REPETITION_MANDATORY,r.ERR_MSG);this.attemptInRepetitionRecovery(this.atLeastOneInternal,[e,r],i,1024,e,p6)}atLeastOneSepFirstInternal(e,r){let n=this.getKeyForAutomaticLookahead(1536,e);this.atLeastOneSepFirstInternalLogic(e,r,n)}atLeastOneSepFirstInternalLogic(e,r,n){let i=r.DEF,a=r.SEP;if(this.getLaFuncFromCache(n).call(this)===!0){i.call(this);let l=o(()=>this.tokenMatcher(this.LA(1),a),"separatorLookAheadFunc");for(;this.tokenMatcher(this.LA(1),a)===!0;)this.CONSUME(a),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,a,l,i,GT],l,1536,e,GT)}else throw this.raiseEarlyExitException(e,di.REPETITION_MANDATORY_WITH_SEPARATOR,r.ERR_MSG)}manyInternal(e,r){let n=this.getKeyForAutomaticLookahead(768,e);return this.manyInternalLogic(e,r,n)}manyInternalLogic(e,r,n){let i=this.getLaFuncFromCache(n),a;if(typeof r!="function"){a=r.DEF;let l=r.GATE;if(l!==void 0){let u=i;i=o(()=>l.call(this)&&u.call(this),"lookaheadFunction")}}else a=r;let s=!0;for(;i.call(this)===!0&&s===!0;)s=this.doSingleRepetition(a);this.attemptInRepetitionRecovery(this.manyInternal,[e,r],i,768,e,d6,s)}manySepFirstInternal(e,r){let n=this.getKeyForAutomaticLookahead(1280,e);this.manySepFirstInternalLogic(e,r,n)}manySepFirstInternalLogic(e,r,n){let i=r.DEF,a=r.SEP;if(this.getLaFuncFromCache(n).call(this)===!0){i.call(this);let l=o(()=>this.tokenMatcher(this.LA(1),a),"separatorLookAheadFunc");for(;this.tokenMatcher(this.LA(1),a)===!0;)this.CONSUME(a),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,a,l,i,zT],l,1280,e,zT)}}repetitionSepSecondInternal(e,r,n,i,a){for(;n();)this.CONSUME(r),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,r,n,i,a],n,1536,e,a)}doSingleRepetition(e){let r=this.getLexerPosition();return e.call(this),this.getLexerPosition()>r}orInternal(e,r){let n=this.getKeyForAutomaticLookahead(256,r),i=zt(e)?e:e.DEF,s=this.getLaFuncFromCache(n).call(this,i);if(s!==void 0)return i[s].ALT.call(this);this.raiseNoAltException(r,e.ERR_MSG)}ruleFinallyStateUpdate(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){let e=this.LA(1),r=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new YT(r,e))}}subruleInternal(e,r,n){let i;try{let a=n!==void 0?n.ARGS:void 0;return this.subruleIdx=r,i=e.apply(this,a),this.cstPostNonTerminal(i,n!==void 0&&n.LABEL!==void 0?n.LABEL:e.ruleName),i}catch(a){throw this.subruleInternalError(a,n,e.ruleName)}}subruleInternalError(e,r,n){throw Wd(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,r!==void 0&&r.LABEL!==void 0?r.LABEL:n),delete e.partialCstResult),e}consumeInternal(e,r,n){let i;try{let a=this.LA(1);this.tokenMatcher(a,e)===!0?(this.consumeToken(),i=a):this.consumeInternalError(e,a,n)}catch(a){i=this.consumeInternalRecovery(e,r,a)}return this.cstPostTerminal(n!==void 0&&n.LABEL!==void 0?n.LABEL:e.name,i),i}consumeInternalError(e,r,n){let i,a=this.LA(0);throw n!==void 0&&n.ERR_MSG?i=n.ERR_MSG:i=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:r,previous:a,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new ym(i,r,a))}consumeInternalRecovery(e,r,n){if(this.recoveryEnabled&&n.name==="MismatchedTokenException"&&!this.isBackTracking()){let i=this.getFollowsForInRuleRecovery(e,r);try{return this.tryInRuleRecovery(e,i)}catch(a){throw a.name===JF?n:a}}else throw n}saveRecogState(){let e=this.errors,r=Tn(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:r,CST_STACK:this.CST_STACK}}reloadRecogState(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK}ruleInvocationStateUpdate(e,r,n){this.RULE_OCCURRENCE_STACK.push(n),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(r)}isBackTracking(){return this.isBackTrackingStack.length!==0}getCurrRuleFullName(){let e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]}shortRuleNameToFullName(e){return this.shortRuleNameToFull[e]}isAtEndOfInput(){return this.tokenMatcher(this.LA(1),el)}reset(){this.resetLexerState(),this.subruleIdx=0,this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]}}});var M6,Vye=O(()=>{"use strict";$y();rr();By();Eo();M6=class{static{o(this,"ErrorHandler")}initErrorHandler(e){this._errors=[],this.errorMessageProvider=Gt(e,"errorMessageProvider")?e.errorMessageProvider:Gs.errorMessageProvider}SAVE_ERROR(e){if(Wd(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:Tn(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")}get errors(){return Tn(this._errors)}set errors(e){this._errors=e}raiseEarlyExitException(e,r,n){let i=this.getCurrRuleFullName(),a=this.getGAstProductions()[i],l=Py(e,a,r,this.maxLookahead)[0],u=[];for(let f=1;f<=this.maxLookahead;f++)u.push(this.LA(f));let h=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:l,actual:u,previous:this.LA(0),customUserDescription:n,ruleName:i});throw this.SAVE_ERROR(new jT(h,this.LA(1),this.LA(0)))}raiseNoAltException(e,r){let n=this.getCurrRuleFullName(),i=this.getGAstProductions()[n],a=Oy(e,i,this.maxLookahead),s=[];for(let h=1;h<=this.maxLookahead;h++)s.push(this.LA(h));let l=this.LA(0),u=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:a,actual:s,previous:l,customUserDescription:r,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new HT(u,this.LA(1),l))}}});var I6,qye=O(()=>{"use strict";VT();rr();I6=class{static{o(this,"ContentAssist")}initContentAssist(){}computeContentAssist(e,r){let n=this.gastProductionsCache[e];if(Dr(n))throw Error(`Rule ->${e}<- does not exist in this grammar.`);return g6([n],r,this.tokenMatcher,this.maxLookahead)}getNextPossibleTokenTypes(e){let r=Ta(e.ruleStack),i=this.getGAstProductions()[r];return new f6(i,e).startWalking()}}});function KT(t,e,r,n=!1){P6(r);let i=ba(this.recordingProdStack),a=Vi(e)?e:e.DEF,s=new t({definition:[],idx:r});return n&&(s.separator=e.SEP),Gt(e,"MAX_LOOKAHEAD")&&(s.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(s),a.call(this),i.definition.push(s),this.recordingProdStack.pop(),B6}function Qrt(t,e){P6(e);let r=ba(this.recordingProdStack),n=zt(t)===!1,i=n===!1?t:t.DEF,a=new Gn({definition:[],idx:e,ignoreAmbiguities:n&&t.IGNORE_AMBIGUITIES===!0});Gt(t,"MAX_LOOKAHEAD")&&(a.maxLookahead=t.MAX_LOOKAHEAD);let s=wb(i,l=>Vi(l.GATE));return a.hasPredicates=s,r.definition.push(a),Oe(i,l=>{let u=new Yn({definition:[]});a.definition.push(u),Gt(l,"IGNORE_AMBIGUITIES")?u.ignoreAmbiguities=l.IGNORE_AMBIGUITIES:Gt(l,"GATE")&&(u.ignoreAmbiguities=!0),this.recordingProdStack.push(u),l.ALT.call(this),this.recordingProdStack.pop()}),B6}function Hye(t){return t===0?"":`${t}`}function P6(t){if(t<0||t>Wye){let e=new Error(`Invalid DSL Method idx value: <${t}> + Idx value must be a none negative value smaller than ${Wye+1}`);throw e.KNOWN_RECORDER_ERROR=!0,e}}var B6,Uye,Wye,Yye,jye,Krt,O6,Xye=O(()=>{"use strict";rr();zs();BT();mm();gm();Eo();k6();B6={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(B6);Uye=!0,Wye=Math.pow(2,8)-1,Yye=Ud({name:"RECORDING_PHASE_TOKEN",pattern:fi.NA});jh([Yye]);jye=Kh(Yye,`This IToken indicates the Parser is in Recording Phase + See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(jye);Krt={name:`This CSTNode indicates the Parser is in Recording Phase + See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}},O6=class{static{o(this,"GastRecorder")}initGastRecorder(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1}enableRecording(){this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",()=>{for(let e=0;e<10;e++){let r=e>0?e:"";this[`CONSUME${r}`]=function(n,i){return this.consumeInternalRecord(n,e,i)},this[`SUBRULE${r}`]=function(n,i){return this.subruleInternalRecord(n,e,i)},this[`OPTION${r}`]=function(n){return this.optionInternalRecord(n,e)},this[`OR${r}`]=function(n){return this.orInternalRecord(n,e)},this[`MANY${r}`]=function(n){this.manyInternalRecord(e,n)},this[`MANY_SEP${r}`]=function(n){this.manySepFirstInternalRecord(e,n)},this[`AT_LEAST_ONE${r}`]=function(n){this.atLeastOneInternalRecord(e,n)},this[`AT_LEAST_ONE_SEP${r}`]=function(n){this.atLeastOneSepFirstInternalRecord(e,n)}}this.consume=function(e,r,n){return this.consumeInternalRecord(r,e,n)},this.subrule=function(e,r,n){return this.subruleInternalRecord(r,e,n)},this.option=function(e,r){return this.optionInternalRecord(r,e)},this.or=function(e,r){return this.orInternalRecord(r,e)},this.many=function(e,r){this.manyInternalRecord(e,r)},this.atLeastOne=function(e,r){this.atLeastOneInternalRecord(e,r)},this.ACTION=this.ACTION_RECORD,this.BACKTRACK=this.BACKTRACK_RECORD,this.LA=this.LA_RECORD})}disableRecording(){this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",()=>{let e=this;for(let r=0;r<10;r++){let n=r>0?r:"";delete e[`CONSUME${n}`],delete e[`SUBRULE${n}`],delete e[`OPTION${n}`],delete e[`OR${n}`],delete e[`MANY${n}`],delete e[`MANY_SEP${n}`],delete e[`AT_LEAST_ONE${n}`],delete e[`AT_LEAST_ONE_SEP${n}`]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})}ACTION_RECORD(e){}BACKTRACK_RECORD(e,r){return()=>!0}LA_RECORD(e){return zy}topLevelRuleRecord(e,r){try{let n=new Fs({definition:[],name:e});return n.name=e,this.recordingProdStack.push(n),r.call(this),this.recordingProdStack.pop(),n}catch(n){if(n.KNOWN_RECORDER_ERROR!==!0)try{n.message=n.message+` + This error was thrown during the "grammar recording phase" For more info see: + https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw n}throw n}}optionInternalRecord(e,r){return KT.call(this,Cn,e,r)}atLeastOneInternalRecord(e,r){KT.call(this,jn,r,e)}atLeastOneSepFirstInternalRecord(e,r){KT.call(this,Xn,r,e,Uye)}manyInternalRecord(e,r){KT.call(this,Jr,r,e)}manySepFirstInternalRecord(e,r){KT.call(this,zn,r,e,Uye)}orInternalRecord(e,r){return Qrt.call(this,e,r)}subruleInternalRecord(e,r,n){if(P6(r),!e||Gt(e,"ruleName")===!1){let l=new Error(` argument is invalid expecting a Parser method reference but got: <${JSON.stringify(e)}> + inside top level rule: <${this.recordingProdStack[0].name}>`);throw l.KNOWN_RECORDER_ERROR=!0,l}let i=ba(this.recordingProdStack),a=e.ruleName,s=new Sn({idx:r,nonTerminalName:a,label:n?.LABEL,referencedRule:void 0});return i.definition.push(s),this.outputCst?Krt:B6}consumeInternalRecord(e,r,n){if(P6(r),!GF(e)){let s=new Error(` argument is invalid expecting a TokenType reference but got: <${JSON.stringify(e)}> + inside top level rule: <${this.recordingProdStack[0].name}>`);throw s.KNOWN_RECORDER_ERROR=!0,s}let i=ba(this.recordingProdStack),a=new Yr({idx:r,terminalType:e,label:n?.LABEL});return i.definition.push(a),jye}};o(KT,"recordProd");o(Qrt,"recordOrProd");o(Hye,"getIdxSuffix");o(P6,"assertMethodIdxIsValid")});var F6,Kye=O(()=>{"use strict";rr();Cy();Eo();F6=class{static{o(this,"PerformanceTracer")}initPerformanceTracer(e){if(Gt(e,"traceInitPerf")){let r=e.traceInitPerf,n=typeof r=="number";this.traceInitMaxIdent=n?r:1/0,this.traceInitPerf=n?r>0:r}else this.traceInitMaxIdent=0,this.traceInitPerf=Gs.traceInitPerf;this.traceInitIndent=-1}TRACE_INIT(e,r){if(this.traceInitPerf===!0){this.traceInitIndent++;let n=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent <${e}>`);let{time:i,value:a}=IT(r),s=i>10?console.warn:console.log;return this.traceInitIndent time: ${i}ms`),this.traceInitIndent--,a}else return r()}}});function Qye(t,e){e.forEach(r=>{let n=r.prototype;Object.getOwnPropertyNames(n).forEach(i=>{if(i==="constructor")return;let a=Object.getOwnPropertyDescriptor(n,i);a&&(a.get||a.set)?Object.defineProperty(t.prototype,i,a):t.prototype[i]=r.prototype[i]})})}var Zye=O(()=>{"use strict";o(Qye,"applyMixins")});function $6(t=void 0){return function(){return t}}var zy,Gs,Gy,la,QT,ZT,Eo=O(()=>{"use strict";rr();Cy();_1e();gm();My();Eye();e$();Rye();Fye();$ye();zye();Gye();Vye();qye();Xye();Kye();Zye();WT();zy=Kh(el,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(zy);Gs=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:Qh,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1}),Gy=Object.freeze({recoveryValueFunc:o(()=>{},"recoveryValueFunc"),resyncEnabled:!0});(function(t){t[t.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",t[t.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",t[t.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",t[t.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",t[t.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",t[t.LEFT_RECURSION=5]="LEFT_RECURSION",t[t.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",t[t.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",t[t.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",t[t.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",t[t.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",t[t.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",t[t.TOO_MANY_ALTS=12]="TOO_MANY_ALTS",t[t.CUSTOM_LOOKAHEAD_VALIDATION=13]="CUSTOM_LOOKAHEAD_VALIDATION"})(la||(la={}));o($6,"EMPTY_ALT");QT=class t{static{o(this,"Parser")}static performSelfAnalysis(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")}performSelfAnalysis(){this.TRACE_INIT("performSelfAnalysis",()=>{let e;this.selfAnalysisDone=!0;let r=this.className;this.TRACE_INIT("toFastProps",()=>{OT(this)}),this.TRACE_INIT("Grammar Recording",()=>{try{this.enableRecording(),Oe(this.definedRulesNames,i=>{let s=this[i].originalGrammarAction,l;this.TRACE_INIT(`${i} Rule`,()=>{l=this.topLevelRuleRecord(i,s)}),this.gastProductionsCache[i]=l})}finally{this.disableRecording()}});let n=[];if(this.TRACE_INIT("Grammar Resolving",()=>{n=wye({rules:Gr(this.gastProductionsCache)}),this.definitionErrors=this.definitionErrors.concat(n)}),this.TRACE_INIT("Grammar Validations",()=>{if(Er(n)&&this.skipValidations===!1){let i=kye({rules:Gr(this.gastProductionsCache),tokenTypes:Gr(this.tokensMap),errMsgProvider:Lc,grammarName:r}),a=mye({lookaheadStrategy:this.lookaheadStrategy,rules:Gr(this.gastProductionsCache),tokenTypes:Gr(this.tokensMap),grammarName:r});this.definitionErrors=this.definitionErrors.concat(i,a)}}),Er(this.definitionErrors)&&(this.recoveryEnabled&&this.TRACE_INIT("computeAllProdsFollows",()=>{let i=A1e(Gr(this.gastProductionsCache));this.resyncFollows=i}),this.TRACE_INIT("ComputeLookaheadFunctions",()=>{var i,a;(a=(i=this.lookaheadStrategy).initialize)===null||a===void 0||a.call(i,{rules:Gr(this.gastProductionsCache)}),this.preComputeLookaheadFunctions(Gr(this.gastProductionsCache))})),!t.DEFER_DEFINITION_ERRORS_HANDLING&&!Er(this.definitionErrors))throw e=lt(this.definitionErrors,i=>i.message),new Error(`Parser Definition Errors detected: + ${e.join(` +------------------------------- +`)}`)})}constructor(e,r){this.definitionErrors=[],this.selfAnalysisDone=!1;let n=this;if(n.initErrorHandler(r),n.initLexerAdapter(),n.initLooksAhead(r),n.initRecognizerEngine(e,r),n.initRecoverable(r),n.initTreeBuilder(r),n.initContentAssist(),n.initGastRecorder(r),n.initPerformanceTracer(r),Gt(r,"ignoredIssues"))throw new Error(`The IParserConfig property has been deprecated. + Please use the flag on the relevant DSL method instead. + See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES + For further details.`);this.skipValidations=Gt(r,"skipValidations")?r.skipValidations:Gs.skipValidations}};QT.DEFER_DEFINITION_ERRORS_HANDLING=!1;Qye(QT,[T6,S6,D6,R6,N6,L6,M6,I6,O6,F6]);ZT=class extends QT{static{o(this,"EmbeddedActionsParser")}constructor(e,r=Gs){let n=Tn(r);n.outputCst=!1,super(e,n)}}});var Jye=O(()=>{"use strict";zs()});var eve=O(()=>{"use strict"});var tve=O(()=>{"use strict";Jye();eve()});var rve=O(()=>{"use strict";DF()});var Hd=O(()=>{"use strict";DF();Eo();BT();gm();By();t$();My();$y();VF();zs();zs();tve();rve()});function vm(t,e,r){return`${t.name}_${e}_${r}`}function sve(t){let e={decisionMap:{},decisionStates:[],ruleToStartState:new Map,ruleToStopState:new Map,states:[]};int(e,t);let r=t.length;for(let n=0;nove(t,e,s));return Wy(t,e,n,r,...i)}function unt(t,e,r){let n=Ca(t,e,r,{type:Yd});jd(t,n);let i=Wy(t,e,n,r,xm(t,e,r));return hnt(t,e,r,i)}function xm(t,e,r){let n=dn(lt(r.definition,i=>ove(t,e,i)),i=>i!==void 0);return n.length===1?n[0]:n.length===0?void 0:dnt(t,n)}function lve(t,e,r,n,i){let a=n.left,s=n.right,l=Ca(t,e,r,{type:nnt});jd(t,l);let u=Ca(t,e,r,{type:ave});return a.loopback=l,u.loopback=l,t.decisionMap[vm(e,i?"RepetitionMandatoryWithSeparator":"RepetitionMandatory",r.idx)]=l,Hi(s,l),i===void 0?(Hi(l,a),Hi(l,u)):(Hi(l,u),Hi(l,i.left),Hi(i.right,a)),{left:a,right:u}}function cve(t,e,r,n,i){let a=n.left,s=n.right,l=Ca(t,e,r,{type:rnt});jd(t,l);let u=Ca(t,e,r,{type:ave}),h=Ca(t,e,r,{type:tnt});return l.loopback=h,u.loopback=h,Hi(l,a),Hi(l,u),Hi(s,h),i!==void 0?(Hi(h,u),Hi(h,i.left),Hi(i.right,a)):Hi(h,l),t.decisionMap[vm(e,i?"RepetitionWithSeparator":"Repetition",r.idx)]=l,{left:l,right:u}}function hnt(t,e,r,n){let i=n.left,a=n.right;return Hi(i,a),t.decisionMap[vm(e,"Option",r.idx)]=i,n}function jd(t,e){return t.decisionStates.push(e),e.decision=t.decisionStates.length-1,e.decision}function Wy(t,e,r,n,...i){let a=Ca(t,e,n,{type:ent,start:r});r.end=a;for(let l of i)l!==void 0?(Hi(r,l.left),Hi(l.right,a)):Hi(r,a);let s={left:r,right:a};return t.decisionMap[vm(e,fnt(n),n.idx)]=r,s}function fnt(t){if(t instanceof Gn)return"Alternation";if(t instanceof Cn)return"Option";if(t instanceof Jr)return"Repetition";if(t instanceof zn)return"RepetitionWithSeparator";if(t instanceof jn)return"RepetitionMandatory";if(t instanceof Xn)return"RepetitionMandatoryWithSeparator";throw new Error("Invalid production type encountered")}function dnt(t,e){let r=e.length;for(let a=0;a{"use strict";M1();mI();Hd();o(vm,"buildATNKey");Yd=1,Jrt=2,nve=4,ive=5,Uy=7,ent=8,tnt=9,rnt=10,nnt=11,ave=12,JT=class{static{o(this,"AbstractTransition")}constructor(e){this.target=e}isEpsilon(){return!1}},Vy=class extends JT{static{o(this,"AtomTransition")}constructor(e,r){super(e),this.tokenType=r}},e4=class extends JT{static{o(this,"EpsilonTransition")}constructor(e){super(e)}isEpsilon(){return!0}},qy=class extends JT{static{o(this,"RuleTransition")}constructor(e,r,n){super(e),this.rule=r,this.followState=n}isEpsilon(){return!0}};o(sve,"createATN");o(int,"createRuleStartAndStopATNStates");o(ove,"atom");o(ant,"repetition");o(snt,"repetitionSep");o(ont,"repetitionMandatory");o(lnt,"repetitionMandatorySep");o(cnt,"alternation");o(unt,"option");o(xm,"block");o(lve,"plus");o(cve,"star");o(hnt,"optional");o(jd,"defineDecisionState");o(Wy,"makeAlts");o(fnt,"getProdType");o(dnt,"makeBlock");o(u$,"tokenRef");o(pnt,"ruleRef");o(mnt,"buildRuleHandle");o(Hi,"epsilon");o(Ca,"newState");o(h$,"addTransition");o(gnt,"removeState")});function f$(t,e=!0){return`${e?`a${t.alt}`:""}s${t.state.stateNumber}:${t.stack.map(r=>r.stateNumber.toString()).join("_")}`}var t4,Hy,hve=O(()=>{"use strict";M1();t4={},Hy=class{static{o(this,"ATNConfigSet")}constructor(){this.map={},this.configs=[]}get size(){return this.configs.length}finalize(){this.map={}}add(e){let r=f$(e);r in this.map||(this.map[r]=this.configs.length,this.configs.push(e))}get elements(){return this.configs}get alts(){return lt(this.configs,e=>e.alt)}get key(){let e="";for(let r in this.map)e+=r+":";return e}};o(f$,"getATNConfigKey")});function ynt(t,e){let r={};return n=>{let i=n.toString(),a=r[i];return a!==void 0||(a={atnStartState:t,decision:e,states:{}},r[i]=a),a}}function dve(t,e=!0){let r=new Set;for(let n of t){let i=new Set;for(let a of n){if(a===void 0){if(e)break;return!1}let s=[a.tokenTypeIdx].concat(a.categoryMatches);for(let l of s)if(r.has(l)){if(!i.has(l))return!1}else r.add(l),i.add(l)}}return!0}function vnt(t){let e=t.decisionStates.length,r=Array(e);for(let n=0;nXh(i)).join(", "),r=t.production.idx===0?"":t.production.idx,n=`Ambiguous Alternatives Detected: <${t.ambiguityIndices.join(", ")}> in <${knt(t.production)}${r}> inside <${t.topLevelRule.name}> Rule, +<${e}> may appears as a prefix path in all these alternatives. +`;return n=n+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES +For Further details.`,n}function knt(t){if(t instanceof Sn)return"SUBRULE";if(t instanceof Cn)return"OPTION";if(t instanceof Gn)return"OR";if(t instanceof jn)return"AT_LEAST_ONE";if(t instanceof Xn)return"AT_LEAST_ONE_SEP";if(t instanceof zn)return"MANY_SEP";if(t instanceof Jr)return"MANY";if(t instanceof Yr)return"CONSUME";throw Error("non exhaustive match")}function Ent(t,e,r){let n=za(e.configs.elements,a=>a.state.transitions),i=phe(n.filter(a=>a instanceof Vy).map(a=>a.tokenType),a=>a.tokenTypeIdx);return{actualToken:r,possibleTokenTypes:i,tokenPath:t}}function Snt(t,e){return t.edges[e.tokenTypeIdx]}function Cnt(t,e,r){let n=new Hy,i=[];for(let s of t.elements){if(r.is(s.alt)===!1)continue;if(s.state.type===Uy){i.push(s);continue}let l=s.state.transitions.length;for(let u=0;u0&&!Lnt(a))for(let s of i)a.add(s);return a}function Ant(t,e){if(t instanceof Vy&&$T(e,t.tokenType))return t.target}function _nt(t,e){let r;for(let n of t.elements)if(e.is(n.alt)===!0){if(r===void 0)r=n.alt;else if(r!==n.alt)return}return r}function mve(t){return{configs:t,edges:{},isAcceptState:!1,prediction:-1}}function pve(t,e,r,n){return n=gve(t,n),e.edges[r.tokenTypeIdx]=n,n}function gve(t,e){if(e===t4)return e;let r=e.configs.key,n=t.states[r];return n!==void 0?n:(e.configs.finalize(),t.states[r]=e,e)}function Dnt(t){let e=new Hy,r=t.transitions.length;for(let n=0;n0){let i=[...t.stack],s={state:i.pop(),alt:t.alt,stack:i};G6(s,e)}else e.add(t);return}r.epsilonOnlyTransitions||e.add(t);let n=r.transitions.length;for(let i=0;i1)return!0;return!1}function Pnt(t){for(let e of Array.from(t.values()))if(Object.keys(e).length===1)return!0;return!1}var z6,fve,r4,yve=O(()=>{"use strict";Hd();uve();hve();kI();yI();mhe();M1();AE();rS();oS();AI();o(ynt,"createDFACache");z6=class{static{o(this,"PredicateSet")}constructor(){this.predicates=[]}is(e){return e>=this.predicates.length||this.predicates[e]}set(e,r){this.predicates[e]=r}toString(){let e="",r=this.predicates.length;for(let n=0;nconsole.log(n))}initialize(e){this.atn=sve(e.rules),this.dfas=vnt(this.atn)}validateAmbiguousAlternationAlternatives(){return[]}validateEmptyOrAlternatives(){return[]}buildLookaheadForAlternation(e){let{prodOccurrence:r,rule:n,hasPredicates:i,dynamicTokensEnabled:a}=e,s=this.dfas,l=this.logging,u=vm(n,"Alternation",r),f=this.atn.decisionMap[u].decision,d=lt(v6({maxLookahead:1,occurrence:r,prodType:"Alternation",rule:n}),p=>lt(p,m=>m[0]));if(dve(d,!1)&&!a){let p=pn(d,(m,g,y)=>(Oe(g,v=>{v&&(m[v.tokenTypeIdx]=y,Oe(v.categoryMatches,x=>{m[x]=y}))}),m),{});return i?function(m){var g;let y=this.LA(1),v=p[y.tokenTypeIdx];if(m!==void 0&&v!==void 0){let x=(g=m[v])===null||g===void 0?void 0:g.GATE;if(x!==void 0&&x.call(this)===!1)return}return v}:function(){let m=this.LA(1);return p[m.tokenTypeIdx]}}else return i?function(p){let m=new z6,g=p===void 0?0:p.length;for(let v=0;vlt(p,m=>m[0]));if(dve(d)&&d[0][0]&&!a){let p=d[0],m=fn(p);if(m.length===1&&Er(m[0].categoryMatches)){let y=m[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===y}}else{let g=pn(m,(y,v)=>(v!==void 0&&(y[v.tokenTypeIdx]=!0,Oe(v.categoryMatches,x=>{y[x]=!0})),y),{});return function(){let y=this.LA(1);return g[y.tokenTypeIdx]===!0}}}return function(){let p=d$.call(this,s,f,fve,l);return typeof p=="object"?!1:p===0}}};o(dve,"isLL1Sequence");o(vnt,"initATNSimulator");o(d$,"adaptivePredict");o(xnt,"performLookahead");o(bnt,"computeLookaheadTarget");o(Tnt,"reportLookaheadAmbiguity");o(wnt,"buildAmbiguityError");o(knt,"getProductionDslName");o(Ent,"buildAdaptivePredictError");o(Snt,"getExistingTargetState");o(Cnt,"computeReachSet");o(Ant,"getReachableTarget");o(_nt,"getUniqueAlt");o(mve,"newDFAState");o(pve,"addDFAEdge");o(gve,"addDFAState");o(Dnt,"computeStartState");o(G6,"closure");o(Rnt,"getEpsilonTarget");o(Lnt,"hasConfigInRuleStopState");o(Nnt,"allConfigsInRuleStopStates");o(Mnt,"hasConflictTerminatingPrediction");o(Int,"getConflictingAltSets");o(Ont,"hasConflictingAltSet");o(Pnt,"hasStateAssociatedWithOneAlt")});var vve=O(()=>{"use strict";yve()});var K6={};vr(K6,{AnnotatedTextEdit:()=>Jh,ChangeAnnotation:()=>bm,ChangeAnnotationIdentifier:()=>Wa,CodeAction:()=>j$,CodeActionContext:()=>Y$,CodeActionKind:()=>H$,CodeActionTriggerKind:()=>c4,CodeDescription:()=>k$,CodeLens:()=>X$,Color:()=>q6,ColorInformation:()=>y$,ColorPresentation:()=>v$,Command:()=>Tm,CompletionItem:()=>I$,CompletionItemKind:()=>_$,CompletionItemLabelDetails:()=>M$,CompletionItemTag:()=>R$,CompletionList:()=>O$,CreateFile:()=>jy,DeleteFile:()=>Ky,Diagnostic:()=>a4,DiagnosticRelatedInformation:()=>U6,DiagnosticSeverity:()=>T$,DiagnosticTag:()=>w$,DocumentHighlight:()=>z$,DocumentHighlightKind:()=>$$,DocumentLink:()=>Q$,DocumentSymbol:()=>W$,DocumentUri:()=>p$,EOL:()=>Bnt,FoldingRange:()=>b$,FoldingRangeKind:()=>x$,FormattingOptions:()=>K$,Hover:()=>P$,InlayHint:()=>sz,InlayHintKind:()=>j6,InlayHintLabelPart:()=>X6,InlineCompletionContext:()=>fz,InlineCompletionItem:()=>lz,InlineCompletionList:()=>cz,InlineCompletionTriggerKind:()=>uz,InlineValueContext:()=>az,InlineValueEvaluatableExpression:()=>iz,InlineValueText:()=>rz,InlineValueVariableLookup:()=>nz,InsertReplaceEdit:()=>L$,InsertTextFormat:()=>D$,InsertTextMode:()=>N$,Location:()=>i4,LocationLink:()=>g$,MarkedString:()=>l4,MarkupContent:()=>Qy,MarkupKind:()=>Y6,OptionalVersionedTextDocumentIdentifier:()=>o4,ParameterInformation:()=>B$,Position:()=>on,Range:()=>Kr,RenameFile:()=>Xy,SelectedCompletionInfo:()=>hz,SelectionRange:()=>Z$,SemanticTokenModifiers:()=>ez,SemanticTokenTypes:()=>J$,SemanticTokens:()=>tz,SignatureInformation:()=>F$,StringValue:()=>oz,SymbolInformation:()=>q$,SymbolKind:()=>G$,SymbolTag:()=>V$,TextDocument:()=>pz,TextDocumentEdit:()=>s4,TextDocumentIdentifier:()=>S$,TextDocumentItem:()=>A$,TextEdit:()=>Fu,URI:()=>V6,VersionedTextDocumentIdentifier:()=>C$,WorkspaceChange:()=>E$,WorkspaceEdit:()=>W6,WorkspaceFolder:()=>dz,WorkspaceSymbol:()=>U$,integer:()=>m$,uinteger:()=>n4});var p$,V6,m$,n4,on,Kr,i4,g$,q6,y$,v$,x$,b$,U6,T$,w$,k$,a4,Tm,Fu,bm,Wa,Jh,s4,jy,Xy,Ky,W6,Yy,H6,E$,S$,C$,o4,A$,Y6,Qy,_$,D$,R$,L$,N$,M$,I$,O$,l4,P$,B$,F$,$$,z$,G$,V$,q$,U$,W$,H$,c4,Y$,j$,X$,K$,Q$,Z$,J$,ez,tz,rz,nz,iz,az,j6,X6,sz,oz,lz,cz,uz,hz,fz,dz,Bnt,pz,mz,Ye,Zy=O(()=>{"use strict";(function(t){function e(r){return typeof r=="string"}o(e,"is"),t.is=e})(p$||(p$={}));(function(t){function e(r){return typeof r=="string"}o(e,"is"),t.is=e})(V6||(V6={}));(function(t){t.MIN_VALUE=-2147483648,t.MAX_VALUE=2147483647;function e(r){return typeof r=="number"&&t.MIN_VALUE<=r&&r<=t.MAX_VALUE}o(e,"is"),t.is=e})(m$||(m$={}));(function(t){t.MIN_VALUE=0,t.MAX_VALUE=2147483647;function e(r){return typeof r=="number"&&t.MIN_VALUE<=r&&r<=t.MAX_VALUE}o(e,"is"),t.is=e})(n4||(n4={}));(function(t){function e(n,i){return n===Number.MAX_VALUE&&(n=n4.MAX_VALUE),i===Number.MAX_VALUE&&(i=n4.MAX_VALUE),{line:n,character:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Ye.objectLiteral(i)&&Ye.uinteger(i.line)&&Ye.uinteger(i.character)}o(r,"is"),t.is=r})(on||(on={}));(function(t){function e(n,i,a,s){if(Ye.uinteger(n)&&Ye.uinteger(i)&&Ye.uinteger(a)&&Ye.uinteger(s))return{start:on.create(n,i),end:on.create(a,s)};if(on.is(n)&&on.is(i))return{start:n,end:i};throw new Error(`Range#create called with invalid arguments[${n}, ${i}, ${a}, ${s}]`)}o(e,"create"),t.create=e;function r(n){let i=n;return Ye.objectLiteral(i)&&on.is(i.start)&&on.is(i.end)}o(r,"is"),t.is=r})(Kr||(Kr={}));(function(t){function e(n,i){return{uri:n,range:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Ye.objectLiteral(i)&&Kr.is(i.range)&&(Ye.string(i.uri)||Ye.undefined(i.uri))}o(r,"is"),t.is=r})(i4||(i4={}));(function(t){function e(n,i,a,s){return{targetUri:n,targetRange:i,targetSelectionRange:a,originSelectionRange:s}}o(e,"create"),t.create=e;function r(n){let i=n;return Ye.objectLiteral(i)&&Kr.is(i.targetRange)&&Ye.string(i.targetUri)&&Kr.is(i.targetSelectionRange)&&(Kr.is(i.originSelectionRange)||Ye.undefined(i.originSelectionRange))}o(r,"is"),t.is=r})(g$||(g$={}));(function(t){function e(n,i,a,s){return{red:n,green:i,blue:a,alpha:s}}o(e,"create"),t.create=e;function r(n){let i=n;return Ye.objectLiteral(i)&&Ye.numberRange(i.red,0,1)&&Ye.numberRange(i.green,0,1)&&Ye.numberRange(i.blue,0,1)&&Ye.numberRange(i.alpha,0,1)}o(r,"is"),t.is=r})(q6||(q6={}));(function(t){function e(n,i){return{range:n,color:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Ye.objectLiteral(i)&&Kr.is(i.range)&&q6.is(i.color)}o(r,"is"),t.is=r})(y$||(y$={}));(function(t){function e(n,i,a){return{label:n,textEdit:i,additionalTextEdits:a}}o(e,"create"),t.create=e;function r(n){let i=n;return Ye.objectLiteral(i)&&Ye.string(i.label)&&(Ye.undefined(i.textEdit)||Fu.is(i))&&(Ye.undefined(i.additionalTextEdits)||Ye.typedArray(i.additionalTextEdits,Fu.is))}o(r,"is"),t.is=r})(v$||(v$={}));(function(t){t.Comment="comment",t.Imports="imports",t.Region="region"})(x$||(x$={}));(function(t){function e(n,i,a,s,l,u){let h={startLine:n,endLine:i};return Ye.defined(a)&&(h.startCharacter=a),Ye.defined(s)&&(h.endCharacter=s),Ye.defined(l)&&(h.kind=l),Ye.defined(u)&&(h.collapsedText=u),h}o(e,"create"),t.create=e;function r(n){let i=n;return Ye.objectLiteral(i)&&Ye.uinteger(i.startLine)&&Ye.uinteger(i.startLine)&&(Ye.undefined(i.startCharacter)||Ye.uinteger(i.startCharacter))&&(Ye.undefined(i.endCharacter)||Ye.uinteger(i.endCharacter))&&(Ye.undefined(i.kind)||Ye.string(i.kind))}o(r,"is"),t.is=r})(b$||(b$={}));(function(t){function e(n,i){return{location:n,message:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Ye.defined(i)&&i4.is(i.location)&&Ye.string(i.message)}o(r,"is"),t.is=r})(U6||(U6={}));(function(t){t.Error=1,t.Warning=2,t.Information=3,t.Hint=4})(T$||(T$={}));(function(t){t.Unnecessary=1,t.Deprecated=2})(w$||(w$={}));(function(t){function e(r){let n=r;return Ye.objectLiteral(n)&&Ye.string(n.href)}o(e,"is"),t.is=e})(k$||(k$={}));(function(t){function e(n,i,a,s,l,u){let h={range:n,message:i};return Ye.defined(a)&&(h.severity=a),Ye.defined(s)&&(h.code=s),Ye.defined(l)&&(h.source=l),Ye.defined(u)&&(h.relatedInformation=u),h}o(e,"create"),t.create=e;function r(n){var i;let a=n;return Ye.defined(a)&&Kr.is(a.range)&&Ye.string(a.message)&&(Ye.number(a.severity)||Ye.undefined(a.severity))&&(Ye.integer(a.code)||Ye.string(a.code)||Ye.undefined(a.code))&&(Ye.undefined(a.codeDescription)||Ye.string((i=a.codeDescription)===null||i===void 0?void 0:i.href))&&(Ye.string(a.source)||Ye.undefined(a.source))&&(Ye.undefined(a.relatedInformation)||Ye.typedArray(a.relatedInformation,U6.is))}o(r,"is"),t.is=r})(a4||(a4={}));(function(t){function e(n,i,...a){let s={title:n,command:i};return Ye.defined(a)&&a.length>0&&(s.arguments=a),s}o(e,"create"),t.create=e;function r(n){let i=n;return Ye.defined(i)&&Ye.string(i.title)&&Ye.string(i.command)}o(r,"is"),t.is=r})(Tm||(Tm={}));(function(t){function e(a,s){return{range:a,newText:s}}o(e,"replace"),t.replace=e;function r(a,s){return{range:{start:a,end:a},newText:s}}o(r,"insert"),t.insert=r;function n(a){return{range:a,newText:""}}o(n,"del"),t.del=n;function i(a){let s=a;return Ye.objectLiteral(s)&&Ye.string(s.newText)&&Kr.is(s.range)}o(i,"is"),t.is=i})(Fu||(Fu={}));(function(t){function e(n,i,a){let s={label:n};return i!==void 0&&(s.needsConfirmation=i),a!==void 0&&(s.description=a),s}o(e,"create"),t.create=e;function r(n){let i=n;return Ye.objectLiteral(i)&&Ye.string(i.label)&&(Ye.boolean(i.needsConfirmation)||i.needsConfirmation===void 0)&&(Ye.string(i.description)||i.description===void 0)}o(r,"is"),t.is=r})(bm||(bm={}));(function(t){function e(r){let n=r;return Ye.string(n)}o(e,"is"),t.is=e})(Wa||(Wa={}));(function(t){function e(a,s,l){return{range:a,newText:s,annotationId:l}}o(e,"replace"),t.replace=e;function r(a,s,l){return{range:{start:a,end:a},newText:s,annotationId:l}}o(r,"insert"),t.insert=r;function n(a,s){return{range:a,newText:"",annotationId:s}}o(n,"del"),t.del=n;function i(a){let s=a;return Fu.is(s)&&(bm.is(s.annotationId)||Wa.is(s.annotationId))}o(i,"is"),t.is=i})(Jh||(Jh={}));(function(t){function e(n,i){return{textDocument:n,edits:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Ye.defined(i)&&o4.is(i.textDocument)&&Array.isArray(i.edits)}o(r,"is"),t.is=r})(s4||(s4={}));(function(t){function e(n,i,a){let s={kind:"create",uri:n};return i!==void 0&&(i.overwrite!==void 0||i.ignoreIfExists!==void 0)&&(s.options=i),a!==void 0&&(s.annotationId=a),s}o(e,"create"),t.create=e;function r(n){let i=n;return i&&i.kind==="create"&&Ye.string(i.uri)&&(i.options===void 0||(i.options.overwrite===void 0||Ye.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||Ye.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||Wa.is(i.annotationId))}o(r,"is"),t.is=r})(jy||(jy={}));(function(t){function e(n,i,a,s){let l={kind:"rename",oldUri:n,newUri:i};return a!==void 0&&(a.overwrite!==void 0||a.ignoreIfExists!==void 0)&&(l.options=a),s!==void 0&&(l.annotationId=s),l}o(e,"create"),t.create=e;function r(n){let i=n;return i&&i.kind==="rename"&&Ye.string(i.oldUri)&&Ye.string(i.newUri)&&(i.options===void 0||(i.options.overwrite===void 0||Ye.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||Ye.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||Wa.is(i.annotationId))}o(r,"is"),t.is=r})(Xy||(Xy={}));(function(t){function e(n,i,a){let s={kind:"delete",uri:n};return i!==void 0&&(i.recursive!==void 0||i.ignoreIfNotExists!==void 0)&&(s.options=i),a!==void 0&&(s.annotationId=a),s}o(e,"create"),t.create=e;function r(n){let i=n;return i&&i.kind==="delete"&&Ye.string(i.uri)&&(i.options===void 0||(i.options.recursive===void 0||Ye.boolean(i.options.recursive))&&(i.options.ignoreIfNotExists===void 0||Ye.boolean(i.options.ignoreIfNotExists)))&&(i.annotationId===void 0||Wa.is(i.annotationId))}o(r,"is"),t.is=r})(Ky||(Ky={}));(function(t){function e(r){let n=r;return n&&(n.changes!==void 0||n.documentChanges!==void 0)&&(n.documentChanges===void 0||n.documentChanges.every(i=>Ye.string(i.kind)?jy.is(i)||Xy.is(i)||Ky.is(i):s4.is(i)))}o(e,"is"),t.is=e})(W6||(W6={}));Yy=class{static{o(this,"TextEditChangeImpl")}constructor(e,r){this.edits=e,this.changeAnnotations=r}insert(e,r,n){let i,a;if(n===void 0?i=Fu.insert(e,r):Wa.is(n)?(a=n,i=Jh.insert(e,r,n)):(this.assertChangeAnnotations(this.changeAnnotations),a=this.changeAnnotations.manage(n),i=Jh.insert(e,r,a)),this.edits.push(i),a!==void 0)return a}replace(e,r,n){let i,a;if(n===void 0?i=Fu.replace(e,r):Wa.is(n)?(a=n,i=Jh.replace(e,r,n)):(this.assertChangeAnnotations(this.changeAnnotations),a=this.changeAnnotations.manage(n),i=Jh.replace(e,r,a)),this.edits.push(i),a!==void 0)return a}delete(e,r){let n,i;if(r===void 0?n=Fu.del(e):Wa.is(r)?(i=r,n=Jh.del(e,r)):(this.assertChangeAnnotations(this.changeAnnotations),i=this.changeAnnotations.manage(r),n=Jh.del(e,i)),this.edits.push(n),i!==void 0)return i}add(e){this.edits.push(e)}all(){return this.edits}clear(){this.edits.splice(0,this.edits.length)}assertChangeAnnotations(e){if(e===void 0)throw new Error("Text edit change is not configured to manage change annotations.")}},H6=class{static{o(this,"ChangeAnnotations")}constructor(e){this._annotations=e===void 0?Object.create(null):e,this._counter=0,this._size=0}all(){return this._annotations}get size(){return this._size}manage(e,r){let n;if(Wa.is(e)?n=e:(n=this.nextId(),r=e),this._annotations[n]!==void 0)throw new Error(`Id ${n} is already in use.`);if(r===void 0)throw new Error(`No annotation provided for id ${n}`);return this._annotations[n]=r,this._size++,n}nextId(){return this._counter++,this._counter.toString()}},E$=class{static{o(this,"WorkspaceChange")}constructor(e){this._textEditChanges=Object.create(null),e!==void 0?(this._workspaceEdit=e,e.documentChanges?(this._changeAnnotations=new H6(e.changeAnnotations),e.changeAnnotations=this._changeAnnotations.all(),e.documentChanges.forEach(r=>{if(s4.is(r)){let n=new Yy(r.edits,this._changeAnnotations);this._textEditChanges[r.textDocument.uri]=n}})):e.changes&&Object.keys(e.changes).forEach(r=>{let n=new Yy(e.changes[r]);this._textEditChanges[r]=n})):this._workspaceEdit={}}get edit(){return this.initDocumentChanges(),this._changeAnnotations!==void 0&&(this._changeAnnotations.size===0?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit}getTextEditChange(e){if(o4.is(e)){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");let r={uri:e.uri,version:e.version},n=this._textEditChanges[r.uri];if(!n){let i=[],a={textDocument:r,edits:i};this._workspaceEdit.documentChanges.push(a),n=new Yy(i,this._changeAnnotations),this._textEditChanges[r.uri]=n}return n}else{if(this.initChanges(),this._workspaceEdit.changes===void 0)throw new Error("Workspace edit is not configured for normal text edit changes.");let r=this._textEditChanges[e];if(!r){let n=[];this._workspaceEdit.changes[e]=n,r=new Yy(n),this._textEditChanges[e]=r}return r}}initDocumentChanges(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._changeAnnotations=new H6,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())}initChanges(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._workspaceEdit.changes=Object.create(null))}createFile(e,r,n){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");let i;bm.is(r)||Wa.is(r)?i=r:n=r;let a,s;if(i===void 0?a=jy.create(e,n):(s=Wa.is(i)?i:this._changeAnnotations.manage(i),a=jy.create(e,n,s)),this._workspaceEdit.documentChanges.push(a),s!==void 0)return s}renameFile(e,r,n,i){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");let a;bm.is(n)||Wa.is(n)?a=n:i=n;let s,l;if(a===void 0?s=Xy.create(e,r,i):(l=Wa.is(a)?a:this._changeAnnotations.manage(a),s=Xy.create(e,r,i,l)),this._workspaceEdit.documentChanges.push(s),l!==void 0)return l}deleteFile(e,r,n){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");let i;bm.is(r)||Wa.is(r)?i=r:n=r;let a,s;if(i===void 0?a=Ky.create(e,n):(s=Wa.is(i)?i:this._changeAnnotations.manage(i),a=Ky.create(e,n,s)),this._workspaceEdit.documentChanges.push(a),s!==void 0)return s}};(function(t){function e(n){return{uri:n}}o(e,"create"),t.create=e;function r(n){let i=n;return Ye.defined(i)&&Ye.string(i.uri)}o(r,"is"),t.is=r})(S$||(S$={}));(function(t){function e(n,i){return{uri:n,version:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Ye.defined(i)&&Ye.string(i.uri)&&Ye.integer(i.version)}o(r,"is"),t.is=r})(C$||(C$={}));(function(t){function e(n,i){return{uri:n,version:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Ye.defined(i)&&Ye.string(i.uri)&&(i.version===null||Ye.integer(i.version))}o(r,"is"),t.is=r})(o4||(o4={}));(function(t){function e(n,i,a,s){return{uri:n,languageId:i,version:a,text:s}}o(e,"create"),t.create=e;function r(n){let i=n;return Ye.defined(i)&&Ye.string(i.uri)&&Ye.string(i.languageId)&&Ye.integer(i.version)&&Ye.string(i.text)}o(r,"is"),t.is=r})(A$||(A$={}));(function(t){t.PlainText="plaintext",t.Markdown="markdown";function e(r){let n=r;return n===t.PlainText||n===t.Markdown}o(e,"is"),t.is=e})(Y6||(Y6={}));(function(t){function e(r){let n=r;return Ye.objectLiteral(r)&&Y6.is(n.kind)&&Ye.string(n.value)}o(e,"is"),t.is=e})(Qy||(Qy={}));(function(t){t.Text=1,t.Method=2,t.Function=3,t.Constructor=4,t.Field=5,t.Variable=6,t.Class=7,t.Interface=8,t.Module=9,t.Property=10,t.Unit=11,t.Value=12,t.Enum=13,t.Keyword=14,t.Snippet=15,t.Color=16,t.File=17,t.Reference=18,t.Folder=19,t.EnumMember=20,t.Constant=21,t.Struct=22,t.Event=23,t.Operator=24,t.TypeParameter=25})(_$||(_$={}));(function(t){t.PlainText=1,t.Snippet=2})(D$||(D$={}));(function(t){t.Deprecated=1})(R$||(R$={}));(function(t){function e(n,i,a){return{newText:n,insert:i,replace:a}}o(e,"create"),t.create=e;function r(n){let i=n;return i&&Ye.string(i.newText)&&Kr.is(i.insert)&&Kr.is(i.replace)}o(r,"is"),t.is=r})(L$||(L$={}));(function(t){t.asIs=1,t.adjustIndentation=2})(N$||(N$={}));(function(t){function e(r){let n=r;return n&&(Ye.string(n.detail)||n.detail===void 0)&&(Ye.string(n.description)||n.description===void 0)}o(e,"is"),t.is=e})(M$||(M$={}));(function(t){function e(r){return{label:r}}o(e,"create"),t.create=e})(I$||(I$={}));(function(t){function e(r,n){return{items:r||[],isIncomplete:!!n}}o(e,"create"),t.create=e})(O$||(O$={}));(function(t){function e(n){return n.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}o(e,"fromPlainText"),t.fromPlainText=e;function r(n){let i=n;return Ye.string(i)||Ye.objectLiteral(i)&&Ye.string(i.language)&&Ye.string(i.value)}o(r,"is"),t.is=r})(l4||(l4={}));(function(t){function e(r){let n=r;return!!n&&Ye.objectLiteral(n)&&(Qy.is(n.contents)||l4.is(n.contents)||Ye.typedArray(n.contents,l4.is))&&(r.range===void 0||Kr.is(r.range))}o(e,"is"),t.is=e})(P$||(P$={}));(function(t){function e(r,n){return n?{label:r,documentation:n}:{label:r}}o(e,"create"),t.create=e})(B$||(B$={}));(function(t){function e(r,n,...i){let a={label:r};return Ye.defined(n)&&(a.documentation=n),Ye.defined(i)?a.parameters=i:a.parameters=[],a}o(e,"create"),t.create=e})(F$||(F$={}));(function(t){t.Text=1,t.Read=2,t.Write=3})($$||($$={}));(function(t){function e(r,n){let i={range:r};return Ye.number(n)&&(i.kind=n),i}o(e,"create"),t.create=e})(z$||(z$={}));(function(t){t.File=1,t.Module=2,t.Namespace=3,t.Package=4,t.Class=5,t.Method=6,t.Property=7,t.Field=8,t.Constructor=9,t.Enum=10,t.Interface=11,t.Function=12,t.Variable=13,t.Constant=14,t.String=15,t.Number=16,t.Boolean=17,t.Array=18,t.Object=19,t.Key=20,t.Null=21,t.EnumMember=22,t.Struct=23,t.Event=24,t.Operator=25,t.TypeParameter=26})(G$||(G$={}));(function(t){t.Deprecated=1})(V$||(V$={}));(function(t){function e(r,n,i,a,s){let l={name:r,kind:n,location:{uri:a,range:i}};return s&&(l.containerName=s),l}o(e,"create"),t.create=e})(q$||(q$={}));(function(t){function e(r,n,i,a){return a!==void 0?{name:r,kind:n,location:{uri:i,range:a}}:{name:r,kind:n,location:{uri:i}}}o(e,"create"),t.create=e})(U$||(U$={}));(function(t){function e(n,i,a,s,l,u){let h={name:n,detail:i,kind:a,range:s,selectionRange:l};return u!==void 0&&(h.children=u),h}o(e,"create"),t.create=e;function r(n){let i=n;return i&&Ye.string(i.name)&&Ye.number(i.kind)&&Kr.is(i.range)&&Kr.is(i.selectionRange)&&(i.detail===void 0||Ye.string(i.detail))&&(i.deprecated===void 0||Ye.boolean(i.deprecated))&&(i.children===void 0||Array.isArray(i.children))&&(i.tags===void 0||Array.isArray(i.tags))}o(r,"is"),t.is=r})(W$||(W$={}));(function(t){t.Empty="",t.QuickFix="quickfix",t.Refactor="refactor",t.RefactorExtract="refactor.extract",t.RefactorInline="refactor.inline",t.RefactorRewrite="refactor.rewrite",t.Source="source",t.SourceOrganizeImports="source.organizeImports",t.SourceFixAll="source.fixAll"})(H$||(H$={}));(function(t){t.Invoked=1,t.Automatic=2})(c4||(c4={}));(function(t){function e(n,i,a){let s={diagnostics:n};return i!=null&&(s.only=i),a!=null&&(s.triggerKind=a),s}o(e,"create"),t.create=e;function r(n){let i=n;return Ye.defined(i)&&Ye.typedArray(i.diagnostics,a4.is)&&(i.only===void 0||Ye.typedArray(i.only,Ye.string))&&(i.triggerKind===void 0||i.triggerKind===c4.Invoked||i.triggerKind===c4.Automatic)}o(r,"is"),t.is=r})(Y$||(Y$={}));(function(t){function e(n,i,a){let s={title:n},l=!0;return typeof i=="string"?(l=!1,s.kind=i):Tm.is(i)?s.command=i:s.edit=i,l&&a!==void 0&&(s.kind=a),s}o(e,"create"),t.create=e;function r(n){let i=n;return i&&Ye.string(i.title)&&(i.diagnostics===void 0||Ye.typedArray(i.diagnostics,a4.is))&&(i.kind===void 0||Ye.string(i.kind))&&(i.edit!==void 0||i.command!==void 0)&&(i.command===void 0||Tm.is(i.command))&&(i.isPreferred===void 0||Ye.boolean(i.isPreferred))&&(i.edit===void 0||W6.is(i.edit))}o(r,"is"),t.is=r})(j$||(j$={}));(function(t){function e(n,i){let a={range:n};return Ye.defined(i)&&(a.data=i),a}o(e,"create"),t.create=e;function r(n){let i=n;return Ye.defined(i)&&Kr.is(i.range)&&(Ye.undefined(i.command)||Tm.is(i.command))}o(r,"is"),t.is=r})(X$||(X$={}));(function(t){function e(n,i){return{tabSize:n,insertSpaces:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Ye.defined(i)&&Ye.uinteger(i.tabSize)&&Ye.boolean(i.insertSpaces)}o(r,"is"),t.is=r})(K$||(K$={}));(function(t){function e(n,i,a){return{range:n,target:i,data:a}}o(e,"create"),t.create=e;function r(n){let i=n;return Ye.defined(i)&&Kr.is(i.range)&&(Ye.undefined(i.target)||Ye.string(i.target))}o(r,"is"),t.is=r})(Q$||(Q$={}));(function(t){function e(n,i){return{range:n,parent:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Ye.objectLiteral(i)&&Kr.is(i.range)&&(i.parent===void 0||t.is(i.parent))}o(r,"is"),t.is=r})(Z$||(Z$={}));(function(t){t.namespace="namespace",t.type="type",t.class="class",t.enum="enum",t.interface="interface",t.struct="struct",t.typeParameter="typeParameter",t.parameter="parameter",t.variable="variable",t.property="property",t.enumMember="enumMember",t.event="event",t.function="function",t.method="method",t.macro="macro",t.keyword="keyword",t.modifier="modifier",t.comment="comment",t.string="string",t.number="number",t.regexp="regexp",t.operator="operator",t.decorator="decorator"})(J$||(J$={}));(function(t){t.declaration="declaration",t.definition="definition",t.readonly="readonly",t.static="static",t.deprecated="deprecated",t.abstract="abstract",t.async="async",t.modification="modification",t.documentation="documentation",t.defaultLibrary="defaultLibrary"})(ez||(ez={}));(function(t){function e(r){let n=r;return Ye.objectLiteral(n)&&(n.resultId===void 0||typeof n.resultId=="string")&&Array.isArray(n.data)&&(n.data.length===0||typeof n.data[0]=="number")}o(e,"is"),t.is=e})(tz||(tz={}));(function(t){function e(n,i){return{range:n,text:i}}o(e,"create"),t.create=e;function r(n){let i=n;return i!=null&&Kr.is(i.range)&&Ye.string(i.text)}o(r,"is"),t.is=r})(rz||(rz={}));(function(t){function e(n,i,a){return{range:n,variableName:i,caseSensitiveLookup:a}}o(e,"create"),t.create=e;function r(n){let i=n;return i!=null&&Kr.is(i.range)&&Ye.boolean(i.caseSensitiveLookup)&&(Ye.string(i.variableName)||i.variableName===void 0)}o(r,"is"),t.is=r})(nz||(nz={}));(function(t){function e(n,i){return{range:n,expression:i}}o(e,"create"),t.create=e;function r(n){let i=n;return i!=null&&Kr.is(i.range)&&(Ye.string(i.expression)||i.expression===void 0)}o(r,"is"),t.is=r})(iz||(iz={}));(function(t){function e(n,i){return{frameId:n,stoppedLocation:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Ye.defined(i)&&Kr.is(n.stoppedLocation)}o(r,"is"),t.is=r})(az||(az={}));(function(t){t.Type=1,t.Parameter=2;function e(r){return r===1||r===2}o(e,"is"),t.is=e})(j6||(j6={}));(function(t){function e(n){return{value:n}}o(e,"create"),t.create=e;function r(n){let i=n;return Ye.objectLiteral(i)&&(i.tooltip===void 0||Ye.string(i.tooltip)||Qy.is(i.tooltip))&&(i.location===void 0||i4.is(i.location))&&(i.command===void 0||Tm.is(i.command))}o(r,"is"),t.is=r})(X6||(X6={}));(function(t){function e(n,i,a){let s={position:n,label:i};return a!==void 0&&(s.kind=a),s}o(e,"create"),t.create=e;function r(n){let i=n;return Ye.objectLiteral(i)&&on.is(i.position)&&(Ye.string(i.label)||Ye.typedArray(i.label,X6.is))&&(i.kind===void 0||j6.is(i.kind))&&i.textEdits===void 0||Ye.typedArray(i.textEdits,Fu.is)&&(i.tooltip===void 0||Ye.string(i.tooltip)||Qy.is(i.tooltip))&&(i.paddingLeft===void 0||Ye.boolean(i.paddingLeft))&&(i.paddingRight===void 0||Ye.boolean(i.paddingRight))}o(r,"is"),t.is=r})(sz||(sz={}));(function(t){function e(r){return{kind:"snippet",value:r}}o(e,"createSnippet"),t.createSnippet=e})(oz||(oz={}));(function(t){function e(r,n,i,a){return{insertText:r,filterText:n,range:i,command:a}}o(e,"create"),t.create=e})(lz||(lz={}));(function(t){function e(r){return{items:r}}o(e,"create"),t.create=e})(cz||(cz={}));(function(t){t.Invoked=0,t.Automatic=1})(uz||(uz={}));(function(t){function e(r,n){return{range:r,text:n}}o(e,"create"),t.create=e})(hz||(hz={}));(function(t){function e(r,n){return{triggerKind:r,selectedCompletionInfo:n}}o(e,"create"),t.create=e})(fz||(fz={}));(function(t){function e(r){let n=r;return Ye.objectLiteral(n)&&V6.is(n.uri)&&Ye.string(n.name)}o(e,"is"),t.is=e})(dz||(dz={}));Bnt=[` +`,`\r +`,"\r"];(function(t){function e(a,s,l,u){return new mz(a,s,l,u)}o(e,"create"),t.create=e;function r(a){let s=a;return!!(Ye.defined(s)&&Ye.string(s.uri)&&(Ye.undefined(s.languageId)||Ye.string(s.languageId))&&Ye.uinteger(s.lineCount)&&Ye.func(s.getText)&&Ye.func(s.positionAt)&&Ye.func(s.offsetAt))}o(r,"is"),t.is=r;function n(a,s){let l=a.getText(),u=i(s,(f,d)=>{let p=f.range.start.line-d.range.start.line;return p===0?f.range.start.character-d.range.start.character:p}),h=l.length;for(let f=u.length-1;f>=0;f--){let d=u[f],p=a.offsetAt(d.range.start),m=a.offsetAt(d.range.end);if(m<=h)l=l.substring(0,p)+d.newText+l.substring(m,l.length);else throw new Error("Overlapping edit");h=p}return l}o(n,"applyEdits"),t.applyEdits=n;function i(a,s){if(a.length<=1)return a;let l=a.length/2|0,u=a.slice(0,l),h=a.slice(l);i(u,s),i(h,s);let f=0,d=0,p=0;for(;f0&&e.push(r.length),this._lineOffsets=e}return this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let r=this.getLineOffsets(),n=0,i=r.length;if(i===0)return on.create(0,e);for(;ne?i=s:n=s+1}let a=n-1;return on.create(a,e-r[a])}offsetAt(e){let r=this.getLineOffsets();if(e.line>=r.length)return this._content.length;if(e.line<0)return 0;let n=r[e.line],i=e.line+1"u"}o(n,"undefined"),t.undefined=n;function i(m){return m===!0||m===!1}o(i,"boolean"),t.boolean=i;function a(m){return e.call(m)==="[object String]"}o(a,"string"),t.string=a;function s(m){return e.call(m)==="[object Number]"}o(s,"number"),t.number=s;function l(m,g,y){return e.call(m)==="[object Number]"&&g<=m&&m<=y}o(l,"numberRange"),t.numberRange=l;function u(m){return e.call(m)==="[object Number]"&&-2147483648<=m&&m<=2147483647}o(u,"integer"),t.integer=u;function h(m){return e.call(m)==="[object Number]"&&0<=m&&m<=2147483647}o(h,"uinteger"),t.uinteger=h;function f(m){return e.call(m)==="[object Function]"}o(f,"func"),t.func=f;function d(m){return m!==null&&typeof m=="object"}o(d,"objectLiteral"),t.objectLiteral=d;function p(m,g){return Array.isArray(m)&&m.every(g)}o(p,"typedArray"),t.typedArray=p})(Ye||(Ye={}))});var u4,h4,wm,km,gz,Jy,Q6=O(()=>{"use strict";Zy();Sc();u4=class{static{o(this,"CstNodeBuilder")}constructor(){this.nodeStack=[]}get current(){return this.nodeStack[this.nodeStack.length-1]??this.rootNode}buildRootNode(e){return this.rootNode=new Jy(e),this.rootNode.root=this.rootNode,this.nodeStack=[this.rootNode],this.rootNode}buildCompositeNode(e){let r=new km;return r.grammarSource=e,r.root=this.rootNode,this.current.content.push(r),this.nodeStack.push(r),r}buildLeafNode(e,r){let n=new wm(e.startOffset,e.image.length,by(e),e.tokenType,!r);return n.grammarSource=r,n.root=this.rootNode,this.current.content.push(n),n}removeNode(e){let r=e.container;if(r){let n=r.content.indexOf(e);n>=0&&r.content.splice(n,1)}}addHiddenNodes(e){let r=[];for(let a of e){let s=new wm(a.startOffset,a.image.length,by(a),a.tokenType,!0);s.root=this.rootNode,r.push(s)}let n=this.current,i=!1;if(n.content.length>0){n.content.push(...r);return}for(;n.container;){let a=n.container.content.indexOf(n);if(a>0){n.container.content.splice(a,0,...r),i=!0;break}n=n.container}i||this.rootNode.content.unshift(...r)}construct(e){let r=this.current;typeof e.$type=="string"&&!e.$infix&&(this.current.astNode=e),e.$cstNode=r;let n=this.nodeStack.pop();n?.content.length===0&&this.removeNode(n)}},h4=class{static{o(this,"AbstractCstNode")}get hidden(){return!1}get astNode(){let e=typeof this._astNode?.$type=="string"?this._astNode:this.container?.astNode;if(!e)throw new Error("This node has no associated AST element");return e}set astNode(e){this._astNode=e}get text(){return this.root.fullText.substring(this.offset,this.end)}},wm=class extends h4{static{o(this,"LeafCstNodeImpl")}get offset(){return this._offset}get length(){return this._length}get end(){return this._offset+this._length}get hidden(){return this._hidden}get tokenType(){return this._tokenType}get range(){return this._range}constructor(e,r,n,i,a=!1){super(),this._hidden=a,this._offset=e,this._tokenType=i,this._length=r,this._range=n}},km=class extends h4{static{o(this,"CompositeCstNodeImpl")}constructor(){super(...arguments),this.content=new gz(this)}get offset(){return this.firstNonHiddenNode?.offset??0}get length(){return this.end-this.offset}get end(){return this.lastNonHiddenNode?.end??0}get range(){let e=this.firstNonHiddenNode,r=this.lastNonHiddenNode;if(e&&r){if(this._rangeCache===void 0){let{range:n}=e,{range:i}=r;this._rangeCache={start:n.start,end:i.end.line=0;e--){let r=this.content[e];if(!r.hidden)return r}return this.content[this.content.length-1]}},gz=class t extends Array{static{o(this,"CstNodeContainer")}constructor(e){super(),this.parent=e,Object.setPrototypeOf(this,t.prototype)}push(...e){return this.addParents(e),super.push(...e)}unshift(...e){return this.addParents(e),super.unshift(...e)}splice(e,r,...n){return this.addParents(n),super.splice(e,r,...n)}addParents(e){for(let r of e)r.container=this.parent}},Jy=class extends km{static{o(this,"RootCstNodeImpl")}get text(){return this._text.substring(this.offset,this.end)}get fullText(){return this._text}constructor(e){super(),this._text="",this._text=e??""}}});function yz(t){return t.$type===Z6}var Z6,xve,bve,f4,d4,J6,ev,p4,Fnt,eA,vz,m4=O(()=>{"use strict";Zo();Hd();vve();Zo();Rc();us();Q6();Z6=Symbol("Datatype");o(yz,"isDataTypeNode");xve="\u200B",bve=o(t=>t.endsWith(xve)?t:t+xve,"withRuleSuffix"),f4=class{static{o(this,"AbstractLangiumParser")}constructor(e){this._unorderedGroups=new Map,this.allRules=new Map,this.lexer=e.parser.Lexer;let r=this.lexer.definition,n=e.LanguageMetaData.mode==="production";e.shared.profilers.LangiumProfiler?.isActive("parsing")?this.wrapper=new vz(r,{...e.parser.ParserConfig,skipValidations:n,errorMessageProvider:e.parser.ParserErrorMessageProvider},e.shared.profilers.LangiumProfiler.createTask("parsing",e.LanguageMetaData.languageId)):this.wrapper=new eA(r,{...e.parser.ParserConfig,skipValidations:n,errorMessageProvider:e.parser.ParserErrorMessageProvider})}alternatives(e,r){this.wrapper.wrapOr(e,r)}optional(e,r){this.wrapper.wrapOption(e,r)}many(e,r){this.wrapper.wrapMany(e,r)}atLeastOne(e,r){this.wrapper.wrapAtLeastOne(e,r)}getRule(e){return this.allRules.get(e)}isRecording(){return this.wrapper.IS_RECORDING}get unorderedGroups(){return this._unorderedGroups}getRuleStack(){return this.wrapper.RULE_STACK}finalize(){this.wrapper.wrapSelfAnalysis()}},d4=class extends f4{static{o(this,"LangiumParser")}get current(){return this.stack[this.stack.length-1]}constructor(e){super(e),this.nodeBuilder=new u4,this.stack=[],this.assignmentMap=new Map,this.operatorPrecedence=new Map,this.linker=e.references.Linker,this.converter=e.parser.ValueConverter,this.astReflection=e.shared.AstReflection}rule(e,r){let n=this.computeRuleType(e),i;Gd(e)&&(i=e.name,this.registerPrecedenceMap(e));let a=this.wrapper.DEFINE_RULE(bve(e.name),this.startImplementation(n,i,r).bind(this));return this.allRules.set(e.name,a),Sa(e)&&e.entry&&(this.mainRule=a),a}registerPrecedenceMap(e){let r=e.name,n=new Map;for(let i=0;i0&&(r=this.construct()),r===void 0)throw new Error("No result from parser");if(this.stack.length>0)throw new Error("Parser stack is not empty after parsing");return r}startImplementation(e,r,n){return i=>{let a=!this.isRecording()&&e!==void 0;if(a){let s={$type:e};this.stack.push(s),e===Z6?s.value="":r!==void 0&&(s.$infixName=r)}return n(i),a?this.construct():void 0}}extractHiddenTokens(e){let r=this.lexerResult.hidden;if(!r.length)return[];let n=e.startOffset;for(let i=0;in)return r.splice(0,i);return r.splice(0,r.length)}consume(e,r,n){let i=this.wrapper.wrapConsume(e,r);if(!this.isRecording()&&this.isValidToken(i)){let a=this.extractHiddenTokens(i);this.nodeBuilder.addHiddenNodes(a);let s=this.nodeBuilder.buildLeafNode(i,n),{assignment:l,crossRef:u}=this.getAssignment(n),h=this.current;if(l){let f=Pl(n)?i.image:this.converter.convert(i.image,s);this.assign(l.operator,l.feature,f,s,u)}else if(yz(h)){let f=i.image;Pl(n)||(f=this.converter.convert(f,s).toString()),h.value+=f}}}isValidToken(e){return!e.isInsertedInRecovery&&!isNaN(e.startOffset)&&typeof e.endOffset=="number"&&!isNaN(e.endOffset)}subrule(e,r,n,i,a){let s;!this.isRecording()&&!n&&(s=this.nodeBuilder.buildCompositeNode(i));let l;try{l=this.wrapper.wrapSubrule(e,r,a)}finally{this.isRecording()||(l===void 0&&!n&&(l=this.construct()),l!==void 0&&s&&s.length>0&&this.performSubruleAssignment(l,i,s))}}performSubruleAssignment(e,r,n){let{assignment:i,crossRef:a}=this.getAssignment(r);if(i)this.assign(i.operator,i.feature,e,n,a);else if(!i){let s=this.current;if(yz(s))s.value+=e.toString();else if(typeof e=="object"&&e){let u=this.assignWithoutOverride(e,s);this.stack.pop(),this.stack.push(u)}}}action(e,r){if(!this.isRecording()){let n=this.current;if(r.feature&&r.operator){n=this.construct(),this.nodeBuilder.removeNode(n.$cstNode),this.nodeBuilder.buildCompositeNode(r).content.push(n.$cstNode);let a={$type:e};this.stack.push(a),this.assign(r.operator,r.feature,n,n.$cstNode)}else n.$type=e}}construct(){if(this.isRecording())return;let e=this.stack.pop();return this.nodeBuilder.construct(e),"$infixName"in e?this.constructInfix(e,this.operatorPrecedence.get(e.$infixName)):yz(e)?this.converter.convert(e.value,e.$cstNode):($B(this.astReflection,e),e)}constructInfix(e,r){let n=e.parts;if(!Array.isArray(n)||n.length===0)return;let i=e.operators;if(!Array.isArray(i)||n.length<2)return n[0];let a=0,s=-1;for(let y=0;ys?(s=x.precedence,a=y):x.precedence===s&&(x.rightAssoc||(a=y))}let l=i.slice(0,a),u=i.slice(a+1),h=n.slice(0,a+1),f=n.slice(a+1),d={$infixName:e.$infixName,$type:e.$type,$cstNode:e.$cstNode,parts:h,operators:l},p={$infixName:e.$infixName,$type:e.$type,$cstNode:e.$cstNode,parts:f,operators:u},m=this.constructInfix(d,r),g=this.constructInfix(p,r);return{$type:e.$type,$cstNode:e.$cstNode,left:m,operator:i[a],right:g}}getAssignment(e){if(!this.assignmentMap.has(e)){let r=zh(e,Ac);this.assignmentMap.set(e,{assignment:r,crossRef:r&&_c(r.terminal)?r.terminal.isMulti?"multi":"single":void 0})}return this.assignmentMap.get(e)}assign(e,r,n,i,a){let s=this.current,l;switch(a==="single"&&typeof n=="string"?l=this.linker.buildReference(s,r,i,n):a==="multi"&&typeof n=="string"?l=this.linker.buildMultiReference(s,r,i,n):l=n,e){case"=":{s[r]=l;break}case"?=":{s[r]=!0;break}case"+=":Array.isArray(s[r])||(s[r]=[]),s[r].push(l)}}assignWithoutOverride(e,r){for(let[i,a]of Object.entries(r)){let s=e[i];s===void 0?e[i]=a:Array.isArray(s)&&Array.isArray(a)&&(a.push(...s),e[i]=a)}let n=e.$cstNode;return n&&(n.astNode=void 0,e.$cstNode=void 0),e}get definitionErrors(){return this.wrapper.definitionErrors}},J6=class{static{o(this,"AbstractParserErrorMessageProvider")}buildMismatchTokenMessage(e){return Qh.buildMismatchTokenMessage(e)}buildNotAllInputParsedMessage(e){return Qh.buildNotAllInputParsedMessage(e)}buildNoViableAltMessage(e){return Qh.buildNoViableAltMessage(e)}buildEarlyExitMessage(e){return Qh.buildEarlyExitMessage(e)}},ev=class extends J6{static{o(this,"LangiumParserErrorMessageProvider")}buildMismatchTokenMessage({expected:e,actual:r}){return`Expecting ${e.LABEL?"`"+e.LABEL+"`":e.name.endsWith(":KW")?`keyword '${e.name.substring(0,e.name.length-3)}'`:`token of type '${e.name}'`} but found \`${r.image}\`.`}buildNotAllInputParsedMessage({firstRedundant:e}){return`Expecting end of file but found \`${e.image}\`.`}},p4=class extends f4{static{o(this,"LangiumCompletionParser")}constructor(){super(...arguments),this.tokens=[],this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}action(){}construct(){}parse(e){this.resetState();let r=this.lexer.tokenize(e,{mode:"partial"});return this.tokens=r.tokens,this.wrapper.input=[...this.tokens],this.mainRule.call(this.wrapper,{}),this.unorderedGroups.clear(),{tokens:this.tokens,elementStack:[...this.lastElementStack],tokenIndex:this.nextTokenIndex}}rule(e,r){let n=this.wrapper.DEFINE_RULE(bve(e.name),this.startImplementation(r).bind(this));return this.allRules.set(e.name,n),e.entry&&(this.mainRule=n),n}resetState(){this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}startImplementation(e){return r=>{let n=this.keepStackSize();try{e(r)}finally{this.resetStackSize(n)}}}removeUnexpectedElements(){this.elementStack.splice(this.stackSize)}keepStackSize(){let e=this.elementStack.length;return this.stackSize=e,e}resetStackSize(e){this.removeUnexpectedElements(),this.stackSize=e}consume(e,r,n){this.wrapper.wrapConsume(e,r),this.isRecording()||(this.lastElementStack=[...this.elementStack,n],this.nextTokenIndex=this.currIdx+1)}subrule(e,r,n,i,a){this.before(i),this.wrapper.wrapSubrule(e,r,a),this.after(i)}before(e){this.isRecording()||this.elementStack.push(e)}after(e){if(!this.isRecording()){let r=this.elementStack.lastIndexOf(e);r>=0&&this.elementStack.splice(r)}}get currIdx(){return this.wrapper.currIdx}},Fnt={recoveryEnabled:!0,nodeLocationTracking:"full",skipValidations:!0,errorMessageProvider:new ev},eA=class extends ZT{static{o(this,"ChevrotainWrapper")}constructor(e,r){let n=r&&"maxLookahead"in r;super(e,{...Fnt,lookaheadStrategy:n?new Zh({maxLookahead:r.maxLookahead}):new r4({logging:r.skipValidations?()=>{}:void 0}),...r})}get IS_RECORDING(){return this.RECORDING_PHASE}DEFINE_RULE(e,r,n){return this.RULE(e,r,n)}wrapSelfAnalysis(){this.performSelfAnalysis()}wrapConsume(e,r){return this.consume(e,r,void 0)}wrapSubrule(e,r,n){return this.subrule(e,r,{ARGS:[n]})}wrapOr(e,r){this.or(e,r)}wrapOption(e,r){this.option(e,r)}wrapMany(e,r){this.many(e,r)}wrapAtLeastOne(e,r){this.atLeastOne(e,r)}rule(e){return e.call(this,{})}},vz=class extends eA{static{o(this,"ProfilerWrapper")}constructor(e,r,n){super(e,r),this.task=n}rule(e){this.task.start(),this.task.startSubTask(this.ruleName(e));try{return super.rule(e)}finally{this.task.stopSubTask(this.ruleName(e)),this.task.stop()}}ruleName(e){return e.ruleName}subrule(e,r,n){this.task.startSubTask(this.ruleName(r));try{return super.subrule(e,r,n)}finally{this.task.stopSubTask(this.ruleName(r))}}}});function g4(t,e,r){return $nt({parser:e,tokens:r,ruleNames:new Map},t),e}function $nt(t,e){let r=RT(e,!1),n=Hr(e.rules).filter(Sa).filter(a=>r.has(a));for(let a of n){let s={...t,consume:1,optional:1,subrule:1,many:1,or:1};t.parser.rule(a,Em(s,a.definition))}let i=Hr(e.rules).filter(Gd).filter(a=>r.has(a));for(let a of i)t.parser.rule(a,znt(t,a))}function znt(t,e){let r=e.call.rule.ref;if(!r)throw new Error("Could not resolve reference to infix operator rule: "+e.call.rule.$refText);if(Bs(r))throw new Error("Cannot use terminal rule in infix expression");let n=e.operators.precedences.flatMap(m=>m.operators),i={$type:"Group",elements:[]},a={$container:i,$type:"Assignment",feature:"parts",operator:"+=",terminal:e.call},s={$container:i,$type:"Group",elements:[],cardinality:"*"};i.elements.push(a,s);let u={$container:s,$type:"Assignment",feature:"operators",operator:"+=",terminal:{$type:"Alternatives",elements:n}},h={...a,$container:s};s.elements.push(u,h);let d=n.map(m=>t.tokens[m.value]).map((m,g)=>({ALT:o(()=>t.parser.consume(g,m,u),"ALT")})),p;return m=>{p??(p=bz(t,r)),t.parser.subrule(0,p,!1,a,m),t.parser.many(0,{DEF:o(()=>{t.parser.alternatives(0,d),t.parser.subrule(1,p,!1,h,m)},"DEF")})}}function Em(t,e,r=!1){let n;if(Pl(e))n=Ynt(t,e);else if(Uh(e))n=Gnt(t,e);else if(Ac(e))n=Em(t,e.terminal);else if(_c(e))n=Tve(t,e);else if(Dc(e))n=Vnt(t,e);else if(VC(e))n=Unt(t,e);else if(HC(e))n=Wnt(t,e);else if(zd(e))n=Hnt(t,e);else if(HB(e)){let i=t.consume++;n=o(()=>t.parser.consume(i,el,e),"method")}else throw new lm(e.$cstNode,`Unexpected element type: ${e.$type}`);return wve(t,r?void 0:tA(e),n,e.cardinality)}function Gnt(t,e){let r=qd(e);return()=>t.parser.action(r,e)}function Vnt(t,e){let r=e.rule.ref;if(qh(r)){let n=t.subrule++,i=Sa(r)&&r.fragment,a=e.arguments.length>0?qnt(r,e.arguments):()=>({}),s;return l=>{s??(s=bz(t,r)),t.parser.subrule(n,s,i,e,a(l))}}else if(Bs(r)){let n=t.consume++,i=xz(t,r.name);return()=>t.parser.consume(n,i,e)}else if(r)Ou(r);else throw new lm(e.$cstNode,`Undefined rule: ${e.rule.$refText}`)}function qnt(t,e){if(e.some(n=>n.calledByName)){let n=e.map(i=>({parameterName:i.parameter?.ref?.name,predicate:$u(i.value)}));return i=>{let a={};for(let{parameterName:s,predicate:l}of n)s&&(a[s]=l(i));return a}}else{let n=e.map(i=>$u(i.value));return i=>{let a={};for(let s=0;se(n)||r(n)}else if(UB(t)){let e=$u(t.left),r=$u(t.right);return n=>e(n)&&r(n)}else if(XB(t)){let e=$u(t.value);return r=>!e(r)}else if(KB(t)){let e=t.parameter.ref.name;return r=>r!==void 0&&r[e]===!0}else if(VB(t)){let e=!!t.true;return()=>e}Ou(t)}function Unt(t,e){if(e.elements.length===1)return Em(t,e.elements[0]);{let r=[];for(let i of e.elements){let a={ALT:Em(t,i,!0)},s=tA(i);s&&(a.GATE=$u(s)),r.push(a)}let n=t.or++;return i=>t.parser.alternatives(n,r.map(a=>{let s={ALT:o(()=>a.ALT(i),"ALT")},l=a.GATE;return l&&(s.GATE=()=>l(i)),s}))}}function Wnt(t,e){if(e.elements.length===1)return Em(t,e.elements[0]);let r=[];for(let l of e.elements){let u={ALT:Em(t,l,!0)},h=tA(l);h&&(u.GATE=$u(h)),r.push(u)}let n=t.or++,i=o((l,u)=>{let h=u.getRuleStack().join("-");return`uGroup_${l}_${h}`},"idFunc"),a=o(l=>t.parser.alternatives(n,r.map((u,h)=>{let f={ALT:o(()=>!0,"ALT")},d=t.parser;f.ALT=()=>{if(u.ALT(l),!d.isRecording()){let m=i(n,d);d.unorderedGroups.get(m)||d.unorderedGroups.set(m,[]);let g=d.unorderedGroups.get(m);typeof g?.[h]>"u"&&(g[h]=!0)}};let p=u.GATE;return p?f.GATE=()=>p(l):f.GATE=()=>!d.unorderedGroups.get(i(n,d))?.[h],f})),"alternatives"),s=wve(t,tA(e),a,"*");return l=>{s(l),t.parser.isRecording()||t.parser.unorderedGroups.delete(i(n,t.parser))}}function Hnt(t,e){let r=e.elements.map(n=>Em(t,n));return n=>r.forEach(i=>i(n))}function tA(t){if(zd(t))return t.guardCondition}function Tve(t,e,r=e.terminal){if(r)if(Dc(r)&&Sa(r.rule.ref)){let n=r.rule.ref,i=t.subrule++,a;return s=>{a??(a=bz(t,n)),t.parser.subrule(i,a,!1,e,s)}}else if(Dc(r)&&Bs(r.rule.ref)){let n=t.consume++,i=xz(t,r.rule.ref.name);return()=>t.parser.consume(n,i,e)}else if(Pl(r)){let n=t.consume++,i=xz(t,r.value);return()=>t.parser.consume(n,i,e)}else throw new Error("Could not build cross reference parser");else{if(!e.type.ref)throw new Error("Could not resolve reference to type: "+e.type.$refText);let i=JC(e.type.ref)?.terminal;if(!i)throw new Error("Could not find name assignment for type: "+qd(e.type.ref));return Tve(t,e,i)}}function Ynt(t,e){let r=t.consume++,n=t.tokens[e.value];if(!n)throw new Error("Could not find token for keyword: "+e.value);return()=>t.parser.consume(r,n,e)}function wve(t,e,r,n){let i=e&&$u(e);if(!n)if(i){let a=t.or++;return s=>t.parser.alternatives(a,[{ALT:o(()=>r(s),"ALT"),GATE:o(()=>i(s),"GATE")},{ALT:$6(),GATE:o(()=>!i(s),"GATE")}])}else return r;if(n==="*"){let a=t.many++;return s=>t.parser.many(a,{DEF:o(()=>r(s),"DEF"),GATE:i?()=>i(s):void 0})}else if(n==="+"){let a=t.many++;if(i){let s=t.or++;return l=>t.parser.alternatives(s,[{ALT:o(()=>t.parser.atLeastOne(a,{DEF:o(()=>r(l),"DEF")}),"ALT"),GATE:o(()=>i(l),"GATE")},{ALT:$6(),GATE:o(()=>!i(l),"GATE")}])}else return s=>t.parser.atLeastOne(a,{DEF:o(()=>r(s),"DEF")})}else if(n==="?"){let a=t.optional++;return s=>t.parser.optional(a,{DEF:o(()=>r(s),"DEF"),GATE:i?()=>i(s):void 0})}else Ou(n)}function bz(t,e){let r=jnt(t,e),n=t.parser.getRule(r);if(!n)throw new Error(`Rule "${r}" not found."`);return n}function jnt(t,e){if(qh(e))return e.name;if(t.ruleNames.has(e))return t.ruleNames.get(e);{let r=e,n=r.$container,i=e.$type;for(;!Sa(n);)(zd(n)||VC(n)||HC(n))&&(i=n.elements.indexOf(r).toString()+":"+i),r=n,n=n.$container;return i=n.name+":"+i,t.ruleNames.set(e,i),i}}function xz(t,e){let r=t.tokens[e];if(!r)throw new Error(`Token "${e}" not found."`);return r}var rA=O(()=>{"use strict";Hd();Zo();XC();Os();Rc();o(g4,"createParser");o($nt,"buildRules");o(znt,"buildInfixRule");o(Em,"buildElement");o(Gnt,"buildAction");o(Vnt,"buildRuleCall");o(qnt,"buildRuleCallPredicate");o($u,"buildPredicate");o(Unt,"buildAlternatives");o(Wnt,"buildUnorderedGroup");o(Hnt,"buildGroup");o(tA,"getGuardCondition");o(Tve,"buildCrossReference");o(Ynt,"buildKeyword");o(wve,"wrap");o(bz,"getRule");o(jnt,"getRuleName");o(xz,"getToken")});function Tz(t){let e=t.Grammar,r=t.parser.Lexer,n=new p4(t);return g4(e,n,r.definition),n.finalize(),n}var wz=O(()=>{"use strict";m4();rA();o(Tz,"createCompletionParser")});function kz(t){let e=kve(t);return e.finalize(),e}function kve(t){let e=t.Grammar,r=t.parser.Lexer,n=new d4(t);return g4(e,n,r.definition)}var Ez=O(()=>{"use strict";m4();rA();o(kz,"createLangiumParser");o(kve,"prepareLangiumParser")});var ef,nA=O(()=>{"use strict";Hd();Zo();us();Rc();wy();Os();ef=class{static{o(this,"DefaultTokenBuilder")}constructor(){this.diagnostics=[]}buildTokens(e,r){let n=Hr(RT(e,!1)),i=this.buildTerminalTokens(n),a=this.buildKeywordTokens(n,i,r);return a.push(...i),a}flushLexingReport(e){return{diagnostics:this.popDiagnostics()}}popDiagnostics(){let e=[...this.diagnostics];return this.diagnostics=[],e}buildTerminalTokens(e){return e.filter(Bs).filter(r=>!r.fragment).map(r=>this.buildTerminalToken(r)).toArray()}buildTerminalToken(e){let r=ky(e),n=this.requiresCustomPattern(r)?this.regexPatternFunction(r):r,i={name:e.name,PATTERN:n};return typeof n=="function"&&(i.LINE_BREAKS=!0),e.hidden&&(i.GROUP=DT(r)?fi.SKIPPED:"hidden"),i}requiresCustomPattern(e){return!!(e.flags.includes("u")||e.flags.includes("s"))}regexPatternFunction(e){let r=new RegExp(e,e.flags+"y");return(n,i)=>(r.lastIndex=i,r.exec(n))}buildKeywordTokens(e,r,n){return e.filter(qh).flatMap(i=>Ec(i).filter(Pl)).distinct(i=>i.value).toArray().sort((i,a)=>a.value.length-i.value.length).map(i=>this.buildKeywordToken(i,r,!!n?.caseInsensitive))}buildKeywordToken(e,r,n){let i=this.buildKeywordPattern(e,n),a={name:e.value,PATTERN:i,LONGER_ALT:this.findLongerAlt(e,r)};return typeof i=="function"&&(a.LINE_BREAKS=!0),a}buildKeywordPattern(e,r){return r?new RegExp(Vd(e.value),"i"):e.value}findLongerAlt(e,r){return r.reduce((n,i)=>{let a=i?.PATTERN;return a?.source&&mF("^"+a.source+"$",e.value)&&n.push(i),n},[])}}});var Sm,zu,Sz=O(()=>{"use strict";Zo();Rc();Sm=class{static{o(this,"DefaultValueConverter")}convert(e,r){let n=r.grammarSource;if(_c(n)&&(n=vF(n)),Dc(n)){let i=n.rule.ref;if(!i)throw new Error("This cst node was not parsed by a rule.");return this.runConverter(i,e,r)}return e}runConverter(e,r,n){switch(e.name.toUpperCase()){case"INT":return zu.convertInt(r);case"STRING":return zu.convertString(r);case"ID":return zu.convertID(r)}switch(SF(e)?.toLowerCase()){case"number":return zu.convertNumber(r);case"boolean":return zu.convertBoolean(r);case"bigint":return zu.convertBigint(r);case"date":return zu.convertDate(r);default:return r}}};(function(t){function e(h){let f="";for(let d=1;d{"use strict";Object.defineProperty(_z,"__esModule",{value:!0});var Cz;function Az(){if(Cz===void 0)throw new Error("No runtime abstraction layer installed");return Cz}o(Az,"RAL");(function(t){function e(r){if(r===void 0)throw new Error("No runtime abstraction layer provided");Cz=r}o(e,"install"),t.install=e})(Az||(Az={}));_z.default=Az});var tv=nr(hs=>{"use strict";Object.defineProperty(hs,"__esModule",{value:!0});hs.stringArray=hs.array=hs.func=hs.error=hs.number=hs.string=hs.boolean=void 0;function Xnt(t){return t===!0||t===!1}o(Xnt,"boolean");hs.boolean=Xnt;function Eve(t){return typeof t=="string"||t instanceof String}o(Eve,"string");hs.string=Eve;function Knt(t){return typeof t=="number"||t instanceof Number}o(Knt,"number");hs.number=Knt;function Qnt(t){return t instanceof Error}o(Qnt,"error");hs.error=Qnt;function Znt(t){return typeof t=="function"}o(Znt,"func");hs.func=Znt;function Sve(t){return Array.isArray(t)}o(Sve,"array");hs.array=Sve;function Jnt(t){return Sve(t)&&t.every(e=>Eve(e))}o(Jnt,"stringArray");hs.stringArray=Jnt});var Cm=nr(rv=>{"use strict";Object.defineProperty(rv,"__esModule",{value:!0});rv.Emitter=rv.Event=void 0;var eit=Xd(),Cve;(function(t){let e={dispose(){}};t.None=function(){return e}})(Cve||(rv.Event=Cve={}));var Dz=class{static{o(this,"CallbackList")}add(e,r=null,n){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(e),this._contexts.push(r),Array.isArray(n)&&n.push({dispose:o(()=>this.remove(e,r),"dispose")})}remove(e,r=null){if(!this._callbacks)return;let n=!1;for(let i=0,a=this._callbacks.length;i{this._callbacks||(this._callbacks=new Dz),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(e,r);let i={dispose:o(()=>{this._callbacks&&(this._callbacks.remove(e,r),i.dispose=t._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))},"dispose")};return Array.isArray(n)&&n.push(i),i}),this._event}fire(e){this._callbacks&&this._callbacks.invoke.call(this._callbacks,e)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}};rv.Emitter=iA;iA._noop=function(){}});var y4=nr(nv=>{"use strict";Object.defineProperty(nv,"__esModule",{value:!0});nv.CancellationTokenSource=nv.CancellationToken=void 0;var tit=Xd(),rit=tv(),Rz=Cm(),aA;(function(t){t.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:Rz.Event.None}),t.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:Rz.Event.None});function e(r){let n=r;return n&&(n===t.None||n===t.Cancelled||rit.boolean(n.isCancellationRequested)&&!!n.onCancellationRequested)}o(e,"is"),t.is=e})(aA||(nv.CancellationToken=aA={}));var nit=Object.freeze(function(t,e){let r=(0,tit.default)().timer.setTimeout(t.bind(e),0);return{dispose(){r.dispose()}}}),sA=class{static{o(this,"MutableToken")}constructor(){this._isCancelled=!1}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?nit:(this._emitter||(this._emitter=new Rz.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}},Lz=class{static{o(this,"CancellationTokenSource")}get token(){return this._token||(this._token=new sA),this._token}cancel(){this._token?this._token.cancel():this._token=aA.Cancelled}dispose(){this._token?this._token instanceof sA&&this._token.dispose():this._token=aA.None}};nv.CancellationTokenSource=Lz});var Nr={};var Bl=O(()=>{"use strict";jr(Nr,Ra(y4(),1))});function Nz(){return new Promise(t=>{typeof setImmediate>"u"?setTimeout(t,0):setImmediate(t)})}function lA(){return oA=performance.now(),new Nr.CancellationTokenSource}function _ve(t){Ave=t}function Gu(t){return t===Fl}async function Ci(t){if(t===Nr.CancellationToken.None)return;let e=performance.now();if(e-oA>=Ave&&(oA=e,await Nz(),oA=performance.now()),t.isCancellationRequested)throw Fl}var oA,Ave,Fl,Vs,$l=O(()=>{"use strict";Bl();o(Nz,"delayNextTick");oA=0,Ave=10;o(lA,"startCancelableOperation");o(_ve,"setInterruptionPeriod");Fl=Symbol("OperationCancelled");o(Gu,"isOperationCancelled");o(Ci,"interruptAndCheck");Vs=class{static{o(this,"Deferred")}constructor(){this.promise=new Promise((e,r)=>{this.resolve=n=>(e(n),this),this.reject=n=>(r(n),this)})}}});function Mz(t,e){if(t.length<=1)return t;let r=t.length/2|0,n=t.slice(0,r),i=t.slice(r);Mz(n,e),Mz(i,e);let a=0,s=0,l=0;for(;ar.line||e.line===r.line&&e.character>r.character?{start:r,end:e}:t}function iit(t){let e=Lve(t.range);return e!==t.range?{newText:t.newText,range:e}:t}var cA,iv,Nve=O(()=>{"use strict";cA=class t{static{o(this,"FullTextDocument")}constructor(e,r,n,i){this._uri=e,this._languageId=r,this._version=n,this._content=i,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let r=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(r,n)}return this._content}update(e,r){for(let n of e)if(t.isIncremental(n)){let i=Lve(n.range),a=this.offsetAt(i.start),s=this.offsetAt(i.end);this._content=this._content.substring(0,a)+n.text+this._content.substring(s,this._content.length);let l=Math.max(i.start.line,0),u=Math.max(i.end.line,0),h=this._lineOffsets,f=Dve(n.text,!1,a);if(u-l===f.length)for(let p=0,m=f.length;pe?i=s:n=s+1}let a=n-1;return e=this.ensureBeforeEOL(e,r[a]),{line:a,character:e-r[a]}}offsetAt(e){let r=this.getLineOffsets();if(e.line>=r.length)return this._content.length;if(e.line<0)return 0;let n=r[e.line];if(e.character<=0)return n;let i=e.line+1r&&Rve(this._content.charCodeAt(e-1));)e--;return e}get lineCount(){return this.getLineOffsets().length}static isIncremental(e){let r=e;return r!=null&&typeof r.text=="string"&&r.range!==void 0&&(r.rangeLength===void 0||typeof r.rangeLength=="number")}static isFull(e){let r=e;return r!=null&&typeof r.text=="string"&&r.range===void 0&&r.rangeLength===void 0}};(function(t){function e(i,a,s,l){return new cA(i,a,s,l)}o(e,"create"),t.create=e;function r(i,a,s){if(i instanceof cA)return i.update(a,s),i;throw new Error("TextDocument.update: document must be created by TextDocument.create")}o(r,"update"),t.update=r;function n(i,a){let s=i.getText(),l=Mz(a.map(iit),(f,d)=>{let p=f.range.start.line-d.range.start.line;return p===0?f.range.start.character-d.range.start.character:p}),u=0,h=[];for(let f of l){let d=i.offsetAt(f.range.start);if(du&&h.push(s.substring(u,d)),f.newText.length&&h.push(f.newText),u=i.offsetAt(f.range.end)}return h.push(s.substr(u)),h.join("")}o(n,"applyEdits"),t.applyEdits=n})(iv||(iv={}));o(Mz,"mergeSort");o(Dve,"computeLineOffsets");o(Rve,"isEOL");o(Lve,"getWellformedRange");o(iit,"getWellformedEdit")});var Mve,ca,av,Iz=O(()=>{"use strict";(()=>{"use strict";var t={975:N=>{function C(M){if(typeof M!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(M))}o(C,"e");function _(M,R){for(var P,B="",F=0,G=-1,$=0,V=0;V<=M.length;++V){if(V2){var X=B.lastIndexOf("/");if(X!==B.length-1){X===-1?(B="",F=0):F=(B=B.slice(0,X)).length-1-B.lastIndexOf("/"),G=V,$=0;continue}}else if(B.length===2||B.length===1){B="",F=0,G=V,$=0;continue}}R&&(B.length>0?B+="/..":B="..",F=2)}else B.length>0?B+="/"+M.slice(G+1,V):B=M.slice(G+1,V),F=V-G-1;G=V,$=0}else P===46&&$!==-1?++$:$=-1}return B}o(_,"r");var D={resolve:o(function(){for(var M,R="",P=!1,B=arguments.length-1;B>=-1&&!P;B--){var F;B>=0?F=arguments[B]:(M===void 0&&(M=process.cwd()),F=M),C(F),F.length!==0&&(R=F+"/"+R,P=F.charCodeAt(0)===47)}return R=_(R,!P),P?R.length>0?"/"+R:"/":R.length>0?R:"."},"resolve"),normalize:o(function(M){if(C(M),M.length===0)return".";var R=M.charCodeAt(0)===47,P=M.charCodeAt(M.length-1)===47;return(M=_(M,!R)).length!==0||R||(M="."),M.length>0&&P&&(M+="/"),R?"/"+M:M},"normalize"),isAbsolute:o(function(M){return C(M),M.length>0&&M.charCodeAt(0)===47},"isAbsolute"),join:o(function(){if(arguments.length===0)return".";for(var M,R=0;R0&&(M===void 0?M=P:M+="/"+P)}return M===void 0?".":D.normalize(M)},"join"),relative:o(function(M,R){if(C(M),C(R),M===R||(M=D.resolve(M))===(R=D.resolve(R)))return"";for(var P=1;PV){if(R.charCodeAt(G+Q)===47)return R.slice(G+Q+1);if(Q===0)return R.slice(G+Q)}else F>V&&(M.charCodeAt(P+Q)===47?X=Q:Q===0&&(X=0));break}var H=M.charCodeAt(P+Q);if(H!==R.charCodeAt(G+Q))break;H===47&&(X=Q)}var ie="";for(Q=P+X+1;Q<=B;++Q)Q!==B&&M.charCodeAt(Q)!==47||(ie.length===0?ie+="..":ie+="/..");return ie.length>0?ie+R.slice(G+X):(G+=X,R.charCodeAt(G)===47&&++G,R.slice(G))},"relative"),_makeLong:o(function(M){return M},"_makeLong"),dirname:o(function(M){if(C(M),M.length===0)return".";for(var R=M.charCodeAt(0),P=R===47,B=-1,F=!0,G=M.length-1;G>=1;--G)if((R=M.charCodeAt(G))===47){if(!F){B=G;break}}else F=!1;return B===-1?P?"/":".":P&&B===1?"//":M.slice(0,B)},"dirname"),basename:o(function(M,R){if(R!==void 0&&typeof R!="string")throw new TypeError('"ext" argument must be a string');C(M);var P,B=0,F=-1,G=!0;if(R!==void 0&&R.length>0&&R.length<=M.length){if(R.length===M.length&&R===M)return"";var $=R.length-1,V=-1;for(P=M.length-1;P>=0;--P){var X=M.charCodeAt(P);if(X===47){if(!G){B=P+1;break}}else V===-1&&(G=!1,V=P+1),$>=0&&(X===R.charCodeAt($)?--$==-1&&(F=P):($=-1,F=V))}return B===F?F=V:F===-1&&(F=M.length),M.slice(B,F)}for(P=M.length-1;P>=0;--P)if(M.charCodeAt(P)===47){if(!G){B=P+1;break}}else F===-1&&(G=!1,F=P+1);return F===-1?"":M.slice(B,F)},"basename"),extname:o(function(M){C(M);for(var R=-1,P=0,B=-1,F=!0,G=0,$=M.length-1;$>=0;--$){var V=M.charCodeAt($);if(V!==47)B===-1&&(F=!1,B=$+1),V===46?R===-1?R=$:G!==1&&(G=1):R!==-1&&(G=-1);else if(!F){P=$+1;break}}return R===-1||B===-1||G===0||G===1&&R===B-1&&R===P+1?"":M.slice(R,B)},"extname"),format:o(function(M){if(M===null||typeof M!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof M);return(function(R,P){var B=P.dir||P.root,F=P.base||(P.name||"")+(P.ext||"");return B?B===P.root?B+F:B+"/"+F:F})(0,M)},"format"),parse:o(function(M){C(M);var R={root:"",dir:"",base:"",ext:"",name:""};if(M.length===0)return R;var P,B=M.charCodeAt(0),F=B===47;F?(R.root="/",P=1):P=0;for(var G=-1,$=0,V=-1,X=!0,Q=M.length-1,H=0;Q>=P;--Q)if((B=M.charCodeAt(Q))!==47)V===-1&&(X=!1,V=Q+1),B===46?G===-1?G=Q:H!==1&&(H=1):G!==-1&&(H=-1);else if(!X){$=Q+1;break}return G===-1||V===-1||H===0||H===1&&G===V-1&&G===$+1?V!==-1&&(R.base=R.name=$===0&&F?M.slice(1,V):M.slice($,V)):($===0&&F?(R.name=M.slice(1,G),R.base=M.slice(1,V)):(R.name=M.slice($,G),R.base=M.slice($,V)),R.ext=M.slice(G,V)),$>0?R.dir=M.slice(0,$-1):F&&(R.dir="/"),R},"parse"),sep:"/",delimiter:":",win32:null,posix:null};D.posix=D,N.exports=D}},e={};function r(N){var C=e[N];if(C!==void 0)return C.exports;var _=e[N]={exports:{}};return t[N](_,_.exports,r),_.exports}o(r,"r"),r.d=(N,C)=>{for(var _ in C)r.o(C,_)&&!r.o(N,_)&&Object.defineProperty(N,_,{enumerable:!0,get:C[_]})},r.o=(N,C)=>Object.prototype.hasOwnProperty.call(N,C),r.r=N=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(N,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(N,"__esModule",{value:!0})};var n={};let i;r.r(n),r.d(n,{URI:o(()=>p,"URI"),Utils:o(()=>I,"Utils")}),typeof process=="object"?i=process.platform==="win32":typeof navigator=="object"&&(i=navigator.userAgent.indexOf("Windows")>=0);let a=/^\w[\w\d+.-]*$/,s=/^\//,l=/^\/\//;function u(N,C){if(!N.scheme&&C)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${N.authority}", path: "${N.path}", query: "${N.query}", fragment: "${N.fragment}"}`);if(N.scheme&&!a.test(N.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(N.path){if(N.authority){if(!s.test(N.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(l.test(N.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}o(u,"a");let h="",f="/",d=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class p{static{o(this,"l")}static isUri(C){return C instanceof p||!!C&&typeof C.authority=="string"&&typeof C.fragment=="string"&&typeof C.path=="string"&&typeof C.query=="string"&&typeof C.scheme=="string"&&typeof C.fsPath=="string"&&typeof C.with=="function"&&typeof C.toString=="function"}scheme;authority;path;query;fragment;constructor(C,_,D,M,R,P=!1){typeof C=="object"?(this.scheme=C.scheme||h,this.authority=C.authority||h,this.path=C.path||h,this.query=C.query||h,this.fragment=C.fragment||h):(this.scheme=(function(B,F){return B||F?B:"file"})(C,P),this.authority=_||h,this.path=(function(B,F){switch(B){case"https":case"http":case"file":F?F[0]!==f&&(F=f+F):F=f}return F})(this.scheme,D||h),this.query=M||h,this.fragment=R||h,u(this,P))}get fsPath(){return b(this,!1)}with(C){if(!C)return this;let{scheme:_,authority:D,path:M,query:R,fragment:P}=C;return _===void 0?_=this.scheme:_===null&&(_=h),D===void 0?D=this.authority:D===null&&(D=h),M===void 0?M=this.path:M===null&&(M=h),R===void 0?R=this.query:R===null&&(R=h),P===void 0?P=this.fragment:P===null&&(P=h),_===this.scheme&&D===this.authority&&M===this.path&&R===this.query&&P===this.fragment?this:new g(_,D,M,R,P)}static parse(C,_=!1){let D=d.exec(C);return D?new g(D[2]||h,k(D[4]||h),k(D[5]||h),k(D[7]||h),k(D[9]||h),_):new g(h,h,h,h,h)}static file(C){let _=h;if(i&&(C=C.replace(/\\/g,f)),C[0]===f&&C[1]===f){let D=C.indexOf(f,2);D===-1?(_=C.substring(2),C=f):(_=C.substring(2,D),C=C.substring(D)||f)}return new g("file",_,C,h,h)}static from(C){let _=new g(C.scheme,C.authority,C.path,C.query,C.fragment);return u(_,!0),_}toString(C=!1){return T(this,C)}toJSON(){return this}static revive(C){if(C){if(C instanceof p)return C;{let _=new g(C);return _._formatted=C.external,_._fsPath=C._sep===m?C.fsPath:null,_}}return C}}let m=i?1:void 0;class g extends p{static{o(this,"d")}_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=b(this,!1)),this._fsPath}toString(C=!1){return C?T(this,!0):(this._formatted||(this._formatted=T(this,!1)),this._formatted)}toJSON(){let C={$mid:1};return this._fsPath&&(C.fsPath=this._fsPath,C._sep=m),this._formatted&&(C.external=this._formatted),this.path&&(C.path=this.path),this.scheme&&(C.scheme=this.scheme),this.authority&&(C.authority=this.authority),this.query&&(C.query=this.query),this.fragment&&(C.fragment=this.fragment),C}}let y={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function v(N,C,_){let D,M=-1;for(let R=0;R=97&&P<=122||P>=65&&P<=90||P>=48&&P<=57||P===45||P===46||P===95||P===126||C&&P===47||_&&P===91||_&&P===93||_&&P===58)M!==-1&&(D+=encodeURIComponent(N.substring(M,R)),M=-1),D!==void 0&&(D+=N.charAt(R));else{D===void 0&&(D=N.substr(0,R));let B=y[P];B!==void 0?(M!==-1&&(D+=encodeURIComponent(N.substring(M,R)),M=-1),D+=B):M===-1&&(M=R)}}return M!==-1&&(D+=encodeURIComponent(N.substring(M))),D!==void 0?D:N}o(v,"m");function x(N){let C;for(let _=0;_1&&N.scheme==="file"?`//${N.authority}${N.path}`:N.path.charCodeAt(0)===47&&(N.path.charCodeAt(1)>=65&&N.path.charCodeAt(1)<=90||N.path.charCodeAt(1)>=97&&N.path.charCodeAt(1)<=122)&&N.path.charCodeAt(2)===58?C?N.path.substr(1):N.path[1].toLowerCase()+N.path.substr(2):N.path,i&&(_=_.replace(/\//g,"\\")),_}o(b,"v");function T(N,C){let _=C?x:v,D="",{scheme:M,authority:R,path:P,query:B,fragment:F}=N;if(M&&(D+=M,D+=":"),(R||M==="file")&&(D+=f,D+=f),R){let G=R.indexOf("@");if(G!==-1){let $=R.substr(0,G);R=R.substr(G+1),G=$.lastIndexOf(":"),G===-1?D+=_($,!1,!1):(D+=_($.substr(0,G),!1,!1),D+=":",D+=_($.substr(G+1),!1,!0)),D+="@"}R=R.toLowerCase(),G=R.lastIndexOf(":"),G===-1?D+=_(R,!1,!0):(D+=_(R.substr(0,G),!1,!0),D+=R.substr(G))}if(P){if(P.length>=3&&P.charCodeAt(0)===47&&P.charCodeAt(2)===58){let G=P.charCodeAt(1);G>=65&&G<=90&&(P=`/${String.fromCharCode(G+32)}:${P.substr(3)}`)}else if(P.length>=2&&P.charCodeAt(1)===58){let G=P.charCodeAt(0);G>=65&&G<=90&&(P=`${String.fromCharCode(G+32)}:${P.substr(2)}`)}D+=_(P,!0,!1)}return B&&(D+="?",D+=_(B,!1,!1)),F&&(D+="#",D+=C?F:v(F,!1,!1)),D}o(T,"b");function E(N){try{return decodeURIComponent(N)}catch{return N.length>3?N.substr(0,3)+E(N.substr(3)):N}}o(E,"C");let w=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function k(N){return N.match(w)?N.replace(w,(C=>E(C))):N}o(k,"w");var S=r(975);let A=S.posix||S,L="/";var I;(function(N){N.joinPath=function(C,..._){return C.with({path:A.join(C.path,..._)})},N.resolvePath=function(C,..._){let D=C.path,M=!1;D[0]!==L&&(D=L+D,M=!0);let R=A.resolve(D,..._);return M&&R[0]===L&&!C.authority&&(R=R.substring(1)),C.with({path:R})},N.dirname=function(C){if(C.path.length===0||C.path===L)return C;let _=A.dirname(C.path);return _.length===1&&_.charCodeAt(0)===46&&(_=""),C.with({path:_})},N.basename=function(C){return A.basename(C.path)},N.extname=function(C){return A.extname(C.path)}})(I||(I={})),Mve=n})();({URI:ca,Utils:av}=Mve)});var Fi,sv,Nc=O(()=>{"use strict";Iz();(function(t){t.basename=av.basename,t.dirname=av.dirname,t.extname=av.extname,t.joinPath=av.joinPath,t.resolvePath=av.resolvePath;let e=typeof process=="object"&&process?.platform==="win32";function r(s,l){return s?.toString()===l?.toString()}o(r,"equals"),t.equals=r;function n(s,l){let u=typeof s=="string"?ca.parse(s).path:s.path,h=typeof l=="string"?ca.parse(l).path:l.path,f=u.split("/").filter(y=>y.length>0),d=h.split("/").filter(y=>y.length>0);if(e){let y=/^[A-Z]:$/;if(f[0]&&y.test(f[0])&&(f[0]=f[0].toLowerCase()),d[0]&&y.test(d[0])&&(d[0]=d[0].toLowerCase()),f[0]!==d[0])return h.substring(1)}let p=0;for(;p({name:i.name,uri:Fi.joinPath(ca.parse(r),i.name).toString(),element:i.element})):[]}all(){return this.collectValues(this.root)}findAll(e){let r=this.getNode(Fi.normalize(e),!1);return r?this.collectValues(r):[]}getNode(e,r){let n=e.split("/");e.charAt(e.length-1)==="/"&&n.pop();let i=this.root;for(let a of n){let s=i.children.get(a);if(!s)if(r)s={name:a,children:new Map,parent:i},i.children.set(a,s);else return;i=s}return i}collectValues(e){let r=[];e.element&&r.push(e.element);for(let n of e.children.values())r.push(...this.collectValues(n));return r}}});var qr,v4,x4,ov=O(()=>{"use strict";Nve();ov();Bl();Os();Nc();(function(t){t[t.Changed=0]="Changed",t[t.Parsed=1]="Parsed",t[t.IndexedContent=2]="IndexedContent",t[t.ComputedScopes=3]="ComputedScopes",t[t.Linked=4]="Linked",t[t.IndexedReferences=5]="IndexedReferences",t[t.Validated=6]="Validated"})(qr||(qr={}));v4=class{static{o(this,"DefaultLangiumDocumentFactory")}constructor(e){this.serviceRegistry=e.ServiceRegistry,this.textDocuments=e.workspace.TextDocuments,this.fileSystemProvider=e.workspace.FileSystemProvider}async fromUri(e,r=Nr.CancellationToken.None){let n=await this.fileSystemProvider.readFile(e);return this.createAsync(e,n,r)}fromTextDocument(e,r,n){return r=r??ca.parse(e.uri),Nr.CancellationToken.is(n)?this.createAsync(r,e,n):this.create(r,e,n)}fromString(e,r,n){return Nr.CancellationToken.is(n)?this.createAsync(r,e,n):this.create(r,e,n)}fromModel(e,r){return this.create(r,{$model:e})}create(e,r,n){if(typeof r=="string"){let i=this.parse(e,r,n);return this.createLangiumDocument(i,e,void 0,r)}else if("$model"in r){let i={value:r.$model,parserErrors:[],lexerErrors:[]};return this.createLangiumDocument(i,e)}else{let i=this.parse(e,r.getText(),n);return this.createLangiumDocument(i,e,r)}}async createAsync(e,r,n){if(typeof r=="string"){let i=await this.parseAsync(e,r,n);return this.createLangiumDocument(i,e,void 0,r)}else{let i=await this.parseAsync(e,r.getText(),n);return this.createLangiumDocument(i,e,r)}}createLangiumDocument(e,r,n,i){let a;if(n)a={parseResult:e,uri:r,state:qr.Parsed,references:[],textDocument:n};else{let s=this.createTextDocumentGetter(r,i);a={parseResult:e,uri:r,state:qr.Parsed,references:[],get textDocument(){return s()}}}return e.value.$document=a,a}async update(e,r){let n=e.parseResult.value.$cstNode?.root.fullText,i=this.textDocuments?.get(e.uri.toString()),a=i?i.getText():await this.fileSystemProvider.readFile(e.uri);if(i)Object.defineProperty(e,"textDocument",{value:i});else{let s=this.createTextDocumentGetter(e.uri,a);Object.defineProperty(e,"textDocument",{get:s})}return n!==a&&(e.parseResult=await this.parseAsync(e.uri,a,r),e.parseResult.value.$document=e),e.state=qr.Parsed,e}parse(e,r,n){return this.serviceRegistry.getServices(e).parser.LangiumParser.parse(r,n)}parseAsync(e,r,n){return this.serviceRegistry.getServices(e).parser.AsyncParser.parse(r,n)}createTextDocumentGetter(e,r){let n=this.serviceRegistry,i;return()=>i??(i=iv.create(e.toString(),n.getServices(e).LanguageMetaData.languageId,0,r??""))}},x4=class{static{o(this,"DefaultLangiumDocuments")}constructor(e){this.documentTrie=new sv,this.services=e,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory,this.documentBuilder=()=>e.workspace.DocumentBuilder}get all(){return Hr(this.documentTrie.all())}addDocument(e){let r=e.uri.toString();if(this.documentTrie.has(r))throw new Error(`A document with the URI '${r}' is already present.`);this.documentTrie.insert(r,e)}getDocument(e){let r=e.toString();return this.documentTrie.find(r)}getDocuments(e){let r=e.toString();return this.documentTrie.findAll(r)}async getOrCreateDocument(e,r){let n=this.getDocument(e);return n||(n=await this.langiumDocumentFactory.fromUri(e,r),this.addDocument(n),n)}createDocument(e,r,n){if(n)return this.langiumDocumentFactory.fromString(r,e,n).then(i=>(this.addDocument(i),i));{let i=this.langiumDocumentFactory.fromString(r,e);return this.addDocument(i),i}}hasDocument(e){return this.documentTrie.has(e.toString())}invalidateDocument(e){let r=e.toString(),n=this.documentTrie.find(r);return n&&this.documentBuilder().resetToState(n,qr.Changed),n}deleteDocument(e){let r=e.toString(),n=this.documentTrie.find(r);return n&&(n.state=qr.Changed,this.documentTrie.delete(r)),n}deleteDocuments(e){let r=e.toString(),n=this.documentTrie.findAll(r);for(let i of n)i.state=qr.Changed;return this.documentTrie.delete(r),n}}});var Am,b4,Oz=O(()=>{"use strict";Bl();kc();us();$l();ov();Am=Symbol("RefResolving"),b4=class{static{o(this,"DefaultLinker")}constructor(e){this.reflection=e.shared.AstReflection,this.langiumDocuments=()=>e.shared.workspace.LangiumDocuments,this.scopeProvider=e.references.ScopeProvider,this.astNodeLocator=e.workspace.AstNodeLocator,this.profiler=e.shared.profilers.LangiumProfiler,this.languageId=e.LanguageMetaData.languageId}async link(e,r=Nr.CancellationToken.None){if(this.profiler?.isActive("linking")){let n=this.profiler.createTask("linking",this.languageId);n.start();try{for(let i of Ps(e.parseResult.value))await Ci(r),Id(i).forEach(a=>{let s=`${i.$type}:${a.property}`;n.startSubTask(s);try{this.doLink(a,e)}finally{n.stopSubTask(s)}})}finally{n.stop()}}else for(let n of Ps(e.parseResult.value))await Ci(r),Id(n).forEach(i=>this.doLink(i,e))}doLink(e,r){let n=e.reference;if("_ref"in n&&n._ref===void 0){n._ref=Am;try{let i=this.getCandidate(e);if(j0(i))n._ref=i;else{n._nodeDescription=i;let a=this.loadAstNode(i);n._ref=a??this.createLinkingError(e,i)}}catch(i){console.error(`An error occurred while resolving reference to '${n.$refText}':`,i);let a=i.message??String(i);n._ref={info:e,message:`An error occurred while resolving reference to '${n.$refText}': ${a}`}}r.references.push(n)}else if("_items"in n&&n._items===void 0){n._items=Am;try{let i=this.getCandidates(e),a=[];if(j0(i))n._linkingError=i;else for(let s of i){let l=this.loadAstNode(s);l&&a.push({ref:l,$nodeDescription:s})}n._items=a}catch(i){n._linkingError={info:e,message:`An error occurred while resolving reference to '${n.$refText}': ${i}`},n._items=[]}r.references.push(n)}}unlink(e){for(let r of e.references)"_ref"in r?(r._ref=void 0,delete r._nodeDescription):"_items"in r&&(r._items=void 0,delete r._linkingError);e.references=[]}getCandidate(e){return this.scopeProvider.getScope(e).getElement(e.reference.$refText)??this.createLinkingError(e)}getCandidates(e){let n=this.scopeProvider.getScope(e).getElements(e.reference.$refText).distinct(i=>`${i.documentUri}#${i.path}`).toArray();return n.length>0?n:this.createLinkingError(e)}buildReference(e,r,n,i){let a=this,s={$refNode:n,$refText:i,_ref:void 0,get ref(){if(Si(this._ref))return this._ref;if(PB(this._nodeDescription)){let l=a.loadAstNode(this._nodeDescription);this._ref=l??a.createLinkingError({reference:s,container:e,property:r},this._nodeDescription)}else if(this._ref===void 0){this._ref=Am;let l=hy(e).$document,u=a.getLinkedNode({reference:s,container:e,property:r});if(u.error&&l&&l.state0))return this._linkingError=a.createLinkingError({reference:s,container:e,property:r})}};return s}throwCyclicReferenceError(e,r,n){throw new Error(`Cyclic reference resolution detected: ${this.astNodeLocator.getAstNodePath(e)}/${r} (symbol '${n}')`)}getLinkedNode(e){try{let r=this.getCandidate(e);if(j0(r))return{error:r};let n=this.loadAstNode(r);return n?{node:n,descr:r}:{descr:r,error:this.createLinkingError(e,r)}}catch(r){console.error(`An error occurred while resolving reference to '${e.reference.$refText}':`,r);let n=r.message??String(r);return{error:{info:e,message:`An error occurred while resolving reference to '${e.reference.$refText}': ${n}`}}}}loadAstNode(e){if(e.node)return e.node;let r=this.langiumDocuments().getDocument(e.documentUri);if(r)return this.astNodeLocator.getAstNode(r.parseResult.value,e.path)}createLinkingError(e,r){let n=hy(e.container).$document;n&&n.state{"use strict";Rc();o(Ive,"isNamed");T4=class{static{o(this,"DefaultNameProvider")}getName(e){if(Ive(e))return e.name}getNameNode(e){return LT(e.$cstNode,"name")}}});var w4,Bz=O(()=>{"use strict";Rc();kc();us();Sc();Os();Nc();Zo();w4=class{static{o(this,"DefaultReferences")}constructor(e){this.nameProvider=e.references.NameProvider,this.index=e.shared.workspace.IndexManager,this.nodeLocator=e.workspace.AstNodeLocator,this.documents=e.shared.workspace.LangiumDocuments,this.hasMultiReference=Ps(e.Grammar).some(r=>_c(r)&&r.isMulti)}findDeclarations(e){if(e){let r=EF(e),n=e.astNode;if(r&&n){let i=n[r.feature];if(oa(i)||Xo(i))return AC(i);if(Array.isArray(i)){for(let a of i)if((oa(a)||Xo(a))&&a.$refNode&&a.$refNode.offset<=e.offset&&a.$refNode.end>=e.end)return AC(a)}}if(n){let i=this.nameProvider.getNameNode(n);if(i&&(i===e||sF(e,i)))return this.getSelfNodes(n)}}return[]}getSelfNodes(e){if(this.hasMultiReference){let r=this.index.findAllReferences(e,this.nodeLocator.getAstNodePath(e)),n=this.getNodeFromReferenceDescription(r.head());if(n){for(let i of Id(n))if(Xo(i.reference)&&i.reference.items.some(a=>a.ref===e))return i.reference.items.map(a=>a.ref)}return[e]}else return[e]}getNodeFromReferenceDescription(e){if(!e)return;let r=this.documents.getDocument(e.sourceUri);if(r)return this.nodeLocator.getAstNode(r.parseResult.value,e.sourcePath)}findDeclarationNodes(e){let r=this.findDeclarations(e),n=[];for(let i of r){let a=this.nameProvider.getNameNode(i)??i.$cstNode;a&&n.push(a)}return n}findReferences(e,r){let n=[];r.includeDeclaration&&n.push(...this.getSelfReferences(e));let i=this.index.findAllReferences(e,this.nodeLocator.getAstNodePath(e));return r.documentUri&&(i=i.filter(a=>Fi.equals(a.sourceUri,r.documentUri))),n.push(...i),Hr(n)}getSelfReferences(e){let r=this.getSelfNodes(e),n=[];for(let i of r){let a=this.nameProvider.getNameNode(i);if(a){let s=cs(i),l=this.nodeLocator.getAstNodePath(i);n.push({sourceUri:s.uri,sourcePath:l,targetUri:s.uri,targetPath:l,segment:om(a),local:!0})}}return n}}});var fs,_m,Kd=O(()=>{"use strict";Os();fs=class{static{o(this,"MultiMap")}constructor(e){if(this.map=new Map,e)for(let[r,n]of e)this.add(r,n)}get size(){return cy.sum(Hr(this.map.values()).map(e=>e.length))}clear(){this.map.clear()}delete(e,r){if(r===void 0)return this.map.delete(e);{let n=this.map.get(e);if(n){let i=n.indexOf(r);if(i>=0)return n.length===1?this.map.delete(e):n.splice(i,1),!0}return!1}}get(e){return this.map.get(e)??[]}getStream(e){let r=this.map.get(e);return r?Hr(r):Md}has(e,r){if(r===void 0)return this.map.has(e);{let n=this.map.get(e);return n?n.indexOf(r)>=0:!1}}add(e,r){return this.map.has(e)?this.map.get(e).push(r):this.map.set(e,[r]),this}addAll(e,r){return this.map.has(e)?this.map.get(e).push(...r):this.map.set(e,Array.from(r)),this}forEach(e){this.map.forEach((r,n)=>r.forEach(i=>e(i,n,this)))}[Symbol.iterator](){return this.entries().iterator()}entries(){return Hr(this.map.entries()).flatMap(([e,r])=>r.map(n=>[e,n]))}keys(){return Hr(this.map.keys())}values(){return Hr(this.map.values()).flat()}entriesGroupedByKey(){return Hr(this.map.entries())}},_m=class{static{o(this,"BiMap")}get size(){return this.map.size}constructor(e){if(this.map=new Map,this.inverse=new Map,e)for(let[r,n]of e)this.set(r,n)}clear(){this.map.clear(),this.inverse.clear()}set(e,r){return this.map.set(e,r),this.inverse.set(r,e),this}get(e){return this.map.get(e)}getKey(e){return this.inverse.get(e)}delete(e){let r=this.map.get(e);return r!==void 0?(this.map.delete(e),this.inverse.delete(r),!0):!1}}});var k4,Fz=O(()=>{"use strict";us();Bl();Kd();$l();k4=class{static{o(this,"DefaultScopeComputation")}constructor(e){this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider}async collectExportedSymbols(e,r=Nr.CancellationToken.None){return this.collectExportedSymbolsForNode(e.parseResult.value,e,void 0,r)}async collectExportedSymbolsForNode(e,r,n=dT,i=Nr.CancellationToken.None){let a=[];this.addExportedSymbol(e,a,r);for(let s of n(e))await Ci(i),this.addExportedSymbol(s,a,r);return a}addExportedSymbol(e,r,n){let i=this.nameProvider.getName(e);i&&r.push(this.descriptions.createDescription(e,i,n))}async collectLocalSymbols(e,r=Nr.CancellationToken.None){let n=e.parseResult.value,i=new fs;for(let a of Ec(n))await Ci(r),this.addLocalSymbol(a,e,i);return i}addLocalSymbol(e,r,n){let i=e.$container;if(i){let a=this.nameProvider.getName(e);a&&n.add(i,this.descriptions.createDescription(e,a,r))}}}});var lv,$z,E4,ait,zz=O(()=>{"use strict";Kd();Os();lv=class{static{o(this,"StreamScope")}constructor(e,r,n){this.elements=e,this.outerScope=r,this.caseInsensitive=n?.caseInsensitive??!1,this.concatOuterScope=n?.concatOuterScope??!0}getAllElements(){return this.outerScope?this.elements.concat(this.outerScope.getAllElements()):this.elements}getElement(e){let r=this.caseInsensitive?e.toLowerCase():e,n=this.caseInsensitive?this.elements.find(i=>i.name.toLowerCase()===r):this.elements.find(i=>i.name===e);if(n)return n;if(this.outerScope)return this.outerScope.getElement(e)}getElements(e){let r=this.caseInsensitive?e.toLowerCase():e,n=this.caseInsensitive?this.elements.filter(i=>i.name.toLowerCase()===r):this.elements.filter(i=>i.name===e);return(this.concatOuterScope||n.isEmpty())&&this.outerScope?n.concat(this.outerScope.getElements(e)):n}},$z=class{static{o(this,"MapScope")}constructor(e,r,n){this.elements=new Map,this.caseInsensitive=n?.caseInsensitive??!1,this.concatOuterScope=n?.concatOuterScope??!0;for(let i of e){let a=this.caseInsensitive?i.name.toLowerCase():i.name;this.elements.set(a,i)}this.outerScope=r}getElement(e){let r=this.caseInsensitive?e.toLowerCase():e,n=this.elements.get(r);if(n)return n;if(this.outerScope)return this.outerScope.getElement(e)}getElements(e){let r=this.caseInsensitive?e.toLowerCase():e,n=this.elements.get(r),i=n?[n]:[];return(this.concatOuterScope||i.length>0)&&this.outerScope?Hr(i).concat(this.outerScope.getElements(e)):Hr(i)}getAllElements(){let e=Hr(this.elements.values());return this.outerScope&&(e=e.concat(this.outerScope.getAllElements())),e}},E4=class{static{o(this,"MultiMapScope")}constructor(e,r,n){this.elements=new fs,this.caseInsensitive=n?.caseInsensitive??!1,this.concatOuterScope=n?.concatOuterScope??!0;for(let i of e){let a=this.caseInsensitive?i.name.toLowerCase():i.name;this.elements.add(a,i)}this.outerScope=r}getElement(e){let r=this.caseInsensitive?e.toLowerCase():e,n=this.elements.get(r)[0];if(n)return n;if(this.outerScope)return this.outerScope.getElement(e)}getElements(e){let r=this.caseInsensitive?e.toLowerCase():e,n=this.elements.get(r);return(this.concatOuterScope||n.length===0)&&this.outerScope?Hr(n).concat(this.outerScope.getElements(e)):Hr(n)}getAllElements(){let e=Hr(this.elements.values());return this.outerScope&&(e=e.concat(this.outerScope.getAllElements())),e}},ait={getElement(){},getElements(){return Md},getAllElements(){return Md}}});var cv,S4,Dm,uA,uv,hA=O(()=>{"use strict";cv=class{static{o(this,"DisposableCache")}constructor(){this.toDispose=[],this.isDisposed=!1}onDispose(e){this.toDispose.push(e)}dispose(){this.throwIfDisposed(),this.clear(),this.isDisposed=!0,this.toDispose.forEach(e=>e.dispose())}throwIfDisposed(){if(this.isDisposed)throw new Error("This cache has already been disposed")}},S4=class extends cv{static{o(this,"SimpleCache")}constructor(){super(...arguments),this.cache=new Map}has(e){return this.throwIfDisposed(),this.cache.has(e)}set(e,r){this.throwIfDisposed(),this.cache.set(e,r)}get(e,r){if(this.throwIfDisposed(),this.cache.has(e))return this.cache.get(e);if(r){let n=r();return this.cache.set(e,n),n}else return}delete(e){return this.throwIfDisposed(),this.cache.delete(e)}clear(){this.throwIfDisposed(),this.cache.clear()}},Dm=class extends cv{static{o(this,"ContextCache")}constructor(e){super(),this.cache=new Map,this.converter=e??(r=>r)}has(e,r){return this.throwIfDisposed(),this.cacheForContext(e).has(r)}set(e,r,n){this.throwIfDisposed(),this.cacheForContext(e).set(r,n)}get(e,r,n){this.throwIfDisposed();let i=this.cacheForContext(e);if(i.has(r))return i.get(r);if(n){let a=n();return i.set(r,a),a}else return}delete(e,r){return this.throwIfDisposed(),this.cacheForContext(e).delete(r)}clear(e){if(this.throwIfDisposed(),e){let r=this.converter(e);this.cache.delete(r)}else this.cache.clear()}cacheForContext(e){let r=this.converter(e),n=this.cache.get(r);return n||(n=new Map,this.cache.set(r,n)),n}},uA=class extends Dm{static{o(this,"DocumentCache")}constructor(e,r){super(n=>n.toString()),r?(this.toDispose.push(e.workspace.DocumentBuilder.onDocumentPhase(r,n=>{this.clear(n.uri.toString())})),this.toDispose.push(e.workspace.DocumentBuilder.onUpdate((n,i)=>{for(let a of i)this.clear(a)}))):this.toDispose.push(e.workspace.DocumentBuilder.onUpdate((n,i)=>{let a=n.concat(i);for(let s of a)this.clear(s)}))}},uv=class extends S4{static{o(this,"WorkspaceCache")}constructor(e,r){super(),r?(this.toDispose.push(e.workspace.DocumentBuilder.onBuildPhase(r,()=>{this.clear()})),this.toDispose.push(e.workspace.DocumentBuilder.onUpdate((n,i)=>{i.length>0&&this.clear()}))):this.toDispose.push(e.workspace.DocumentBuilder.onUpdate(()=>{this.clear()}))}}});var C4,Gz=O(()=>{"use strict";zz();us();Os();hA();C4=class{static{o(this,"DefaultScopeProvider")}constructor(e){this.reflection=e.shared.AstReflection,this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider,this.indexManager=e.shared.workspace.IndexManager,this.globalScopeCache=new uv(e.shared)}getScope(e){let r=[],n=this.reflection.getReferenceType(e),i=cs(e.container).localSymbols;if(i){let s=e.container;do i.has(s)&&r.push(i.getStream(s).filter(l=>this.reflection.isSubtype(l.type,n))),s=s.$container;while(s)}let a=this.getGlobalScope(n,e);for(let s=r.length-1;s>=0;s--)a=this.createScope(r[s],a);return a}createScope(e,r,n){return new lv(Hr(e),r,n)}createScopeForNodes(e,r,n){let i=Hr(e).map(a=>{let s=this.nameProvider.getName(a);if(s)return this.descriptions.createDescription(a,s)}).nonNullable();return new lv(i,r,n)}getGlobalScope(e,r){return this.globalScopeCache.get(e,()=>new E4(this.indexManager.allElements(e)))}}});function Vz(t){return typeof t.$comment=="string"}function Ove(t){return typeof t=="object"&&!!t&&("$ref"in t||"$error"in t)}var A4,fA=O(()=>{"use strict";Iz();kc();us();Rc();o(Vz,"isAstNodeWithComment");o(Ove,"isIntermediateReference");A4=class{static{o(this,"DefaultJsonSerializer")}constructor(e){this.ignoreProperties=new Set(["$container","$containerProperty","$containerIndex","$document","$cstNode"]),this.langiumDocuments=e.shared.workspace.LangiumDocuments,this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider,this.commentProvider=e.documentation.CommentProvider}serialize(e,r){let n=r??{},i=r?.replacer,a=o((l,u)=>this.replacer(l,u,n),"defaultReplacer"),s=i?(l,u)=>i(l,u,a):a;try{return this.currentDocument=cs(e),JSON.stringify(e,s,r?.space)}finally{this.currentDocument=void 0}}deserialize(e,r){let n=r??{},i=JSON.parse(e);return this.linkNode(i,i,n),i}replacer(e,r,{refText:n,sourceText:i,textRegions:a,comments:s,uriConverter:l}){if(!this.ignoreProperties.has(e))if(oa(r)){let u=r.ref,h=n?r.$refText:void 0;if(u){let f=cs(u),d="";this.currentDocument&&this.currentDocument!==f&&(l?d=l(f.uri,u):d=f.uri.toString());let p=this.astNodeLocator.getAstNodePath(u);return{$ref:`${d}#${p}`,$refText:h}}else return{$error:r.error?.message??"Could not resolve reference",$refText:h}}else if(Xo(r)){let u=n?r.$refText:void 0,h=[];for(let f of r.items){let d=f.ref,p=cs(f.ref),m="";this.currentDocument&&this.currentDocument!==p&&(l?m=l(p.uri,d):m=p.uri.toString());let g=this.astNodeLocator.getAstNodePath(d);h.push(`${m}#${g}`)}return{$refs:h,$refText:u}}else if(Si(r)){let u;if(a&&(u=this.addAstNodeRegionWithAssignmentsTo({...r}),(!e||r.$document)&&u?.$textRegion&&(u.$textRegion.documentURI=this.currentDocument?.uri.toString())),i&&!e&&(u??(u={...r}),u.$sourceText=r.$cstNode?.text),s){u??(u={...r});let h=this.commentProvider.getComment(r);h&&(u.$comment=h.replace(/\r/g,""))}return u??r}else return r}addAstNodeRegionWithAssignmentsTo(e){let r=o(n=>({offset:n.offset,end:n.end,length:n.length,range:n.range}),"createDocumentSegment");if(e.$cstNode){let n=e.$textRegion=r(e.$cstNode),i=n.assignments={};return Object.keys(e).filter(a=>!a.startsWith("$")).forEach(a=>{let s=bF(e.$cstNode,a).map(r);s.length!==0&&(i[a]=s)}),e}}linkNode(e,r,n,i,a,s){for(let[u,h]of Object.entries(e))if(Array.isArray(h))for(let f=0;f{"use strict";Nc();_4=class{static{o(this,"DefaultServiceRegistry")}get map(){return this.fileExtensionMap}constructor(e){this.languageIdMap=new Map,this.fileExtensionMap=new Map,this.fileNameMap=new Map,this.textDocuments=e?.workspace.TextDocuments}register(e){let r=e.LanguageMetaData;for(let n of r.fileExtensions)this.fileExtensionMap.has(n)&&console.warn(`The file extension ${n} is used by multiple languages. It is now assigned to '${r.languageId}'.`),this.fileExtensionMap.set(n,e);if(r.fileNames)for(let n of r.fileNames)this.fileNameMap.has(n)&&console.warn(`The file name ${n} is used by multiple languages. It is now assigned to '${r.languageId}'.`),this.fileNameMap.set(n,e);this.languageIdMap.set(r.languageId,e)}getServices(e){if(this.languageIdMap.size===0)throw new Error("The service registry is empty. Use `register` to register the services of a language.");let r=this.textDocuments?.get(e)?.languageId;if(r!==void 0){let s=this.languageIdMap.get(r);if(s)return s}let n=Fi.extname(e),i=Fi.basename(e),a=this.fileNameMap.get(i)??this.fileExtensionMap.get(n);if(!a)throw r?new Error(`The service registry contains no services for the extension '${n}' for language '${r}'.`):new Error(`The service registry contains no services for the extension '${n}'.`);return a}hasServices(e){try{return this.getServices(e),!0}catch{return!1}}get all(){return Array.from(this.languageIdMap.values())}}});function Rm(t){return{code:t}}var dA,D4,pA=O(()=>{"use strict";tl();Kd();$l();Os();o(Rm,"diagnosticData");(function(t){t.defaults=["fast","slow","built-in"],t.all=t.defaults})(dA||(dA={}));D4=class{static{o(this,"ValidationRegistry")}constructor(e){this.entries=new fs,this.knownCategories=new Set(dA.defaults),this.entriesBefore=[],this.entriesAfter=[],this.reflection=e.shared.AstReflection}register(e,r=this,n="fast"){if(n==="built-in")throw new Error("The 'built-in' category is reserved for lexer, parser, and linker errors.");this.knownCategories.add(n);for(let[i,a]of Object.entries(e)){let s=a;if(Array.isArray(s))for(let l of s){let u={check:this.wrapValidationException(l,r),category:n};this.addEntry(i,u)}else if(typeof s=="function"){let l={check:this.wrapValidationException(s,r),category:n};this.addEntry(i,l)}else Ou(s)}}wrapValidationException(e,r){return async(n,i,a)=>{await this.handleException(()=>e.call(r,n,i,a),"An error occurred during validation",i,n)}}async handleException(e,r,n,i){try{await e()}catch(a){if(Gu(a))throw a;console.error(`${r}:`,a),a instanceof Error&&a.stack&&console.error(a.stack);let s=a instanceof Error?a.message:String(a);n("error",`${r}: ${s}`,{node:i})}}addEntry(e,r){if(e==="AstNode"){this.entries.add("AstNode",r);return}for(let n of this.reflection.getAllSubTypes(e))this.entries.add(n,r)}getChecks(e,r){let n=Hr(this.entries.get(e)).concat(this.entries.get("AstNode"));return r&&(n=n.filter(i=>r.includes(i.category))),n.map(i=>i.check)}registerBeforeDocument(e,r=this){this.entriesBefore.push(this.wrapPreparationException(e,"An error occurred during set-up of the validation",r))}registerAfterDocument(e,r=this){this.entriesAfter.push(this.wrapPreparationException(e,"An error occurred during tear-down of the validation",r))}wrapPreparationException(e,r,n){return async(i,a,s,l)=>{await this.handleException(()=>e.call(n,i,a,s,l),r,a,i)}}get checksBefore(){return this.entriesBefore}get checksAfter(){return this.entriesAfter}getAllValidationCategories(e){return this.knownCategories}}});function Bve(t){if(t.range)return t.range;let e;return typeof t.property=="string"?e=LT(t.node.$cstNode,t.property,t.index):typeof t.keyword=="string"&&(e=wF(t.node.$cstNode,t.keyword,t.index)),e??(e=t.node.$cstNode),e?e.range:{start:{line:0,character:0},end:{line:0,character:0}}}function mA(t){switch(t){case"error":return 1;case"warning":return 2;case"info":return 3;case"hint":return 4;default:throw new Error("Invalid diagnostic severity: "+t)}}function Fve(t){switch(t){case"error":return Rm(zl.LexingError);case"warning":return Rm(zl.LexingWarning);case"info":return Rm(zl.LexingInfo);case"hint":return Rm(zl.LexingHint);default:throw new Error("Invalid diagnostic severity: "+t)}}var Pve,R4,zl,Uz=O(()=>{"use strict";Bl();Rc();us();Sc();$l();pA();Pve=Object.freeze({validateNode:!0,validateChildren:!0}),R4=class{static{o(this,"DefaultDocumentValidator")}constructor(e){this.validationRegistry=e.validation.ValidationRegistry,this.metadata=e.LanguageMetaData,this.profiler=e.shared.profilers.LangiumProfiler,this.languageId=e.LanguageMetaData.languageId}async validateDocument(e,r={},n=Nr.CancellationToken.None){let i=e.parseResult,a=[];if(await Ci(n),(!r.categories||r.categories.includes("built-in"))&&(this.processLexingErrors(i,a,r),r.stopAfterLexingErrors&&a.some(s=>s.data?.code===zl.LexingError)||(this.processParsingErrors(i,a,r),r.stopAfterParsingErrors&&a.some(s=>s.data?.code===zl.ParsingError))||(this.processLinkingErrors(e,a,r),r.stopAfterLinkingErrors&&a.some(s=>s.data?.code===zl.LinkingError))))return a;try{a.push(...await this.validateAst(i.value,r,n))}catch(s){if(Gu(s))throw s;console.error("An error occurred during validation:",s)}return await Ci(n),a}processLexingErrors(e,r,n){let i=[...e.lexerErrors,...e.lexerReport?.diagnostics??[]];for(let a of i){let s=a.severity??"error",l={severity:mA(s),range:{start:{line:a.line-1,character:a.column-1},end:{line:a.line-1,character:a.column+a.length-1}},message:a.message,data:Fve(s),source:this.getSource()};r.push(l)}}processParsingErrors(e,r,n){for(let i of e.parserErrors){let a;if(isNaN(i.token.startOffset)){if("previousToken"in i){let s=i.previousToken;if(isNaN(s.startOffset)){let l={line:0,character:0};a={start:l,end:l}}else{let l={line:s.endLine-1,character:s.endColumn};a={start:l,end:l}}}}else a=by(i.token);if(a){let s={severity:mA("error"),range:a,message:i.message,data:Rm(zl.ParsingError),source:this.getSource()};r.push(s)}}}processLinkingErrors(e,r,n){for(let i of e.references){let a=i.error;if(a){let s={node:a.info.container,range:i.$refNode?.range,property:a.info.property,index:a.info.index,data:{code:zl.LinkingError,containerType:a.info.container.$type,property:a.info.property,refText:a.info.reference.$refText}};r.push(this.toDiagnostic("error",a.message,s))}}}async validateAst(e,r,n=Nr.CancellationToken.None){let i=[],a=o((s,l,u)=>{i.push(this.toDiagnostic(s,l,u))},"acceptor");return await this.validateAstBefore(e,r,a,n),await this.validateAstNodes(e,r,a,n),await this.validateAstAfter(e,r,a,n),i}async validateAstBefore(e,r,n,i=Nr.CancellationToken.None){let a=this.validationRegistry.checksBefore;for(let s of a)await Ci(i),await s(e,n,r.categories??[],i)}async validateAstNodes(e,r,n,i=Nr.CancellationToken.None){if(this.profiler?.isActive("validating")){let a=this.profiler.createTask("validating",this.languageId);a.start();try{let s=Ps(e).iterator();for(let l of s){a.startSubTask(l.$type);let u=this.validateSingleNodeOptions(l,r);if(u.validateNode)try{let h=this.validationRegistry.getChecks(l.$type,r.categories);for(let f of h)await f(l,n,i)}finally{a.stopSubTask(l.$type)}u.validateChildren||s.prune()}}finally{a.stop()}}else{let a=Ps(e).iterator();for(let s of a){await Ci(i);let l=this.validateSingleNodeOptions(s,r);if(l.validateNode){let u=this.validationRegistry.getChecks(s.$type,r.categories);for(let h of u)await h(s,n,i)}l.validateChildren||a.prune()}}}validateSingleNodeOptions(e,r){return Pve}async validateAstAfter(e,r,n,i=Nr.CancellationToken.None){let a=this.validationRegistry.checksAfter;for(let s of a)await Ci(i),await s(e,n,r.categories??[],i)}toDiagnostic(e,r,n){return{message:r,range:Bve(n),severity:mA(e),code:n.code,codeDescription:n.codeDescription,tags:n.tags,relatedInformation:n.relatedInformation,data:n.data,source:this.getSource()}}getSource(){return this.metadata.languageId}};o(Bve,"getDiagnosticRange");o(mA,"toDiagnosticSeverity");o(Fve,"toDiagnosticData");(function(t){t.LexingError="lexing-error",t.LexingWarning="lexing-warning",t.LexingInfo="lexing-info",t.LexingHint="lexing-hint",t.ParsingError="parsing-error",t.LinkingError="linking-error"})(zl||(zl={}))});var L4,N4,Wz=O(()=>{"use strict";Bl();kc();us();Sc();$l();Nc();L4=class{static{o(this,"DefaultAstNodeDescriptionProvider")}constructor(e){this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider}createDescription(e,r,n){let i=n??cs(e);r??(r=this.nameProvider.getName(e));let a=this.astNodeLocator.getAstNodePath(e);if(!r)throw new Error(`Node at path ${a} has no name.`);let s,l=o(()=>s??(s=om(this.nameProvider.getNameNode(e)??e.$cstNode)),"nameSegmentGetter");return{node:e,name:r,get nameSegment(){return l()},selectionSegment:om(e.$cstNode),type:e.$type,documentUri:i.uri,path:a}}},N4=class{static{o(this,"DefaultReferenceDescriptionProvider")}constructor(e){this.nodeLocator=e.workspace.AstNodeLocator}async createDescriptions(e,r=Nr.CancellationToken.None){let n=[],i=e.parseResult.value;for(let a of Ps(i))await Ci(r),Id(a).forEach(s=>{s.reference.error||n.push(...this.createInfoDescriptions(s))});return n}createInfoDescriptions(e){let r=e.reference;if(r.error||!r.$refNode)return[];let n=[];oa(r)&&r.$nodeDescription?n=[r.$nodeDescription]:Xo(r)&&(n=r.items.map(u=>u.$nodeDescription).filter(u=>u!==void 0));let i=cs(e.container).uri,a=this.nodeLocator.getAstNodePath(e.container),s=[],l=om(r.$refNode);for(let u of n)s.push({sourceUri:i,sourcePath:a,targetUri:u.documentUri,targetPath:u.path,segment:l,local:Fi.equals(u.documentUri,i)});return s}}});var M4,Hz=O(()=>{"use strict";M4=class{static{o(this,"DefaultAstNodeLocator")}constructor(){this.segmentSeparator="/",this.indexSeparator="@"}getAstNodePath(e){if(e.$container){let r=this.getAstNodePath(e.$container),n=this.getPathSegment(e);return r+this.segmentSeparator+n}return""}getPathSegment({$containerProperty:e,$containerIndex:r}){if(!e)throw new Error("Missing '$containerProperty' in AST node.");return r!==void 0?e+this.indexSeparator+r:e}getAstNode(e,r){return r.split(this.segmentSeparator).reduce((i,a)=>{if(!i||a.length===0)return i;let s=a.indexOf(this.indexSeparator);if(s>0){let l=a.substring(0,s),u=parseInt(a.substring(s+1));return i[l]?.[u]}return i[a]},e)}}});var pi={};var gA=O(()=>{"use strict";jr(pi,Ra(Cm(),1))});var I4,Yz=O(()=>{"use strict";gA();$l();I4=class{static{o(this,"DefaultConfigurationProvider")}constructor(e){this._ready=new Vs,this.onConfigurationSectionUpdateEmitter=new pi.Emitter,this.settings={},this.workspaceConfig=!1,this.serviceRegistry=e.ServiceRegistry}get ready(){return this._ready.promise}initialize(e){this.workspaceConfig=e.capabilities.workspace?.configuration??!1}async initialized(e){if(this.workspaceConfig){if(e.register){let r=this.serviceRegistry.all;e.register({section:r.map(n=>this.toSectionName(n.LanguageMetaData.languageId))})}if(e.fetchConfiguration){let r=this.serviceRegistry.all.map(i=>({section:this.toSectionName(i.LanguageMetaData.languageId)})),n=await e.fetchConfiguration(r);r.forEach((i,a)=>{this.updateSectionConfiguration(i.section,n[a])})}}this._ready.resolve()}updateConfiguration(e){typeof e.settings!="object"||e.settings===null||Object.entries(e.settings).forEach(([r,n])=>{this.updateSectionConfiguration(r,n),this.onConfigurationSectionUpdateEmitter.fire({section:r,configuration:n})})}updateSectionConfiguration(e,r){this.settings[e]=r}async getConfiguration(e,r){await this.ready;let n=this.toSectionName(e);if(this.settings[n])return this.settings[n][r]}toSectionName(e){return`${e}`}get onConfigurationSectionUpdate(){return this.onConfigurationSectionUpdateEmitter.event}}});var vG=nr(lr=>{"use strict";Object.defineProperty(lr,"__esModule",{value:!0});lr.Message=lr.NotificationType9=lr.NotificationType8=lr.NotificationType7=lr.NotificationType6=lr.NotificationType5=lr.NotificationType4=lr.NotificationType3=lr.NotificationType2=lr.NotificationType1=lr.NotificationType0=lr.NotificationType=lr.RequestType9=lr.RequestType8=lr.RequestType7=lr.RequestType6=lr.RequestType5=lr.RequestType4=lr.RequestType3=lr.RequestType2=lr.RequestType1=lr.RequestType=lr.RequestType0=lr.AbstractMessageSignature=lr.ParameterStructures=lr.ResponseError=lr.ErrorCodes=void 0;var Lm=tv(),jz;(function(t){t.ParseError=-32700,t.InvalidRequest=-32600,t.MethodNotFound=-32601,t.InvalidParams=-32602,t.InternalError=-32603,t.jsonrpcReservedErrorRangeStart=-32099,t.serverErrorStart=-32099,t.MessageWriteError=-32099,t.MessageReadError=-32098,t.PendingResponseRejected=-32097,t.ConnectionInactive=-32096,t.ServerNotInitialized=-32002,t.UnknownErrorCode=-32001,t.jsonrpcReservedErrorRangeEnd=-32e3,t.serverErrorEnd=-32e3})(jz||(lr.ErrorCodes=jz={}));var Xz=class t extends Error{static{o(this,"ResponseError")}constructor(e,r,n){super(r),this.code=Lm.number(e)?e:jz.UnknownErrorCode,this.data=n,Object.setPrototypeOf(this,t.prototype)}toJson(){let e={code:this.code,message:this.message};return this.data!==void 0&&(e.data=this.data),e}};lr.ResponseError=Xz;var So=class t{static{o(this,"ParameterStructures")}constructor(e){this.kind=e}static is(e){return e===t.auto||e===t.byName||e===t.byPosition}toString(){return this.kind}};lr.ParameterStructures=So;So.auto=new So("auto");So.byPosition=new So("byPosition");So.byName=new So("byName");var ni=class{static{o(this,"AbstractMessageSignature")}constructor(e,r){this.method=e,this.numberOfParams=r}get parameterStructures(){return So.auto}};lr.AbstractMessageSignature=ni;var Kz=class extends ni{static{o(this,"RequestType0")}constructor(e){super(e,0)}};lr.RequestType0=Kz;var Qz=class extends ni{static{o(this,"RequestType")}constructor(e,r=So.auto){super(e,1),this._parameterStructures=r}get parameterStructures(){return this._parameterStructures}};lr.RequestType=Qz;var Zz=class extends ni{static{o(this,"RequestType1")}constructor(e,r=So.auto){super(e,1),this._parameterStructures=r}get parameterStructures(){return this._parameterStructures}};lr.RequestType1=Zz;var Jz=class extends ni{static{o(this,"RequestType2")}constructor(e){super(e,2)}};lr.RequestType2=Jz;var eG=class extends ni{static{o(this,"RequestType3")}constructor(e){super(e,3)}};lr.RequestType3=eG;var tG=class extends ni{static{o(this,"RequestType4")}constructor(e){super(e,4)}};lr.RequestType4=tG;var rG=class extends ni{static{o(this,"RequestType5")}constructor(e){super(e,5)}};lr.RequestType5=rG;var nG=class extends ni{static{o(this,"RequestType6")}constructor(e){super(e,6)}};lr.RequestType6=nG;var iG=class extends ni{static{o(this,"RequestType7")}constructor(e){super(e,7)}};lr.RequestType7=iG;var aG=class extends ni{static{o(this,"RequestType8")}constructor(e){super(e,8)}};lr.RequestType8=aG;var sG=class extends ni{static{o(this,"RequestType9")}constructor(e){super(e,9)}};lr.RequestType9=sG;var oG=class extends ni{static{o(this,"NotificationType")}constructor(e,r=So.auto){super(e,1),this._parameterStructures=r}get parameterStructures(){return this._parameterStructures}};lr.NotificationType=oG;var lG=class extends ni{static{o(this,"NotificationType0")}constructor(e){super(e,0)}};lr.NotificationType0=lG;var cG=class extends ni{static{o(this,"NotificationType1")}constructor(e,r=So.auto){super(e,1),this._parameterStructures=r}get parameterStructures(){return this._parameterStructures}};lr.NotificationType1=cG;var uG=class extends ni{static{o(this,"NotificationType2")}constructor(e){super(e,2)}};lr.NotificationType2=uG;var hG=class extends ni{static{o(this,"NotificationType3")}constructor(e){super(e,3)}};lr.NotificationType3=hG;var fG=class extends ni{static{o(this,"NotificationType4")}constructor(e){super(e,4)}};lr.NotificationType4=fG;var dG=class extends ni{static{o(this,"NotificationType5")}constructor(e){super(e,5)}};lr.NotificationType5=dG;var pG=class extends ni{static{o(this,"NotificationType6")}constructor(e){super(e,6)}};lr.NotificationType6=pG;var mG=class extends ni{static{o(this,"NotificationType7")}constructor(e){super(e,7)}};lr.NotificationType7=mG;var gG=class extends ni{static{o(this,"NotificationType8")}constructor(e){super(e,8)}};lr.NotificationType8=gG;var yG=class extends ni{static{o(this,"NotificationType9")}constructor(e){super(e,9)}};lr.NotificationType9=yG;var $ve;(function(t){function e(i){let a=i;return a&&Lm.string(a.method)&&(Lm.string(a.id)||Lm.number(a.id))}o(e,"isRequest"),t.isRequest=e;function r(i){let a=i;return a&&Lm.string(a.method)&&i.id===void 0}o(r,"isNotification"),t.isNotification=r;function n(i){let a=i;return a&&(a.result!==void 0||!!a.error)&&(Lm.string(a.id)||Lm.number(a.id)||a.id===null)}o(n,"isResponse"),t.isResponse=n})($ve||(lr.Message=$ve={}))});var bG=nr(Qd=>{"use strict";var zve;Object.defineProperty(Qd,"__esModule",{value:!0});Qd.LRUCache=Qd.LinkedMap=Qd.Touch=void 0;var ds;(function(t){t.None=0,t.First=1,t.AsOld=t.First,t.Last=2,t.AsNew=t.Last})(ds||(Qd.Touch=ds={}));var yA=class{static{o(this,"LinkedMap")}constructor(){this[zve]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){return this._head?.value}get last(){return this._tail?.value}has(e){return this._map.has(e)}get(e,r=ds.None){let n=this._map.get(e);if(n)return r!==ds.None&&this.touch(n,r),n.value}set(e,r,n=ds.None){let i=this._map.get(e);if(i)i.value=r,n!==ds.None&&this.touch(i,n);else{switch(i={key:e,value:r,next:void 0,previous:void 0},n){case ds.None:this.addItemLast(i);break;case ds.First:this.addItemFirst(i);break;case ds.Last:this.addItemLast(i);break;default:this.addItemLast(i);break}this._map.set(e,i),this._size++}return this}delete(e){return!!this.remove(e)}remove(e){let r=this._map.get(e);if(r)return this._map.delete(e),this.removeItem(r),this._size--,r.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");let e=this._head;return this._map.delete(e.key),this.removeItem(e),this._size--,e.value}forEach(e,r){let n=this._state,i=this._head;for(;i;){if(r?e.bind(r)(i.value,i.key,this):e(i.value,i.key,this),this._state!==n)throw new Error("LinkedMap got modified during iteration.");i=i.next}}keys(){let e=this._state,r=this._head,n={[Symbol.iterator]:()=>n,next:o(()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(r){let i={value:r.key,done:!1};return r=r.next,i}else return{value:void 0,done:!0}},"next")};return n}values(){let e=this._state,r=this._head,n={[Symbol.iterator]:()=>n,next:o(()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(r){let i={value:r.value,done:!1};return r=r.next,i}else return{value:void 0,done:!0}},"next")};return n}entries(){let e=this._state,r=this._head,n={[Symbol.iterator]:()=>n,next:o(()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(r){let i={value:[r.key,r.value],done:!1};return r=r.next,i}else return{value:void 0,done:!0}},"next")};return n}[(zve=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(e){if(e>=this.size)return;if(e===0){this.clear();return}let r=this._head,n=this.size;for(;r&&n>e;)this._map.delete(r.key),r=r.next,n--;this._head=r,this._size=n,r&&(r.previous=void 0),this._state++}addItemFirst(e){if(!this._head&&!this._tail)this._tail=e;else if(this._head)e.next=this._head,this._head.previous=e;else throw new Error("Invalid list");this._head=e,this._state++}addItemLast(e){if(!this._head&&!this._tail)this._head=e;else if(this._tail)e.previous=this._tail,this._tail.next=e;else throw new Error("Invalid list");this._tail=e,this._state++}removeItem(e){if(e===this._head&&e===this._tail)this._head=void 0,this._tail=void 0;else if(e===this._head){if(!e.next)throw new Error("Invalid list");e.next.previous=void 0,this._head=e.next}else if(e===this._tail){if(!e.previous)throw new Error("Invalid list");e.previous.next=void 0,this._tail=e.previous}else{let r=e.next,n=e.previous;if(!r||!n)throw new Error("Invalid list");r.previous=n,n.next=r}e.next=void 0,e.previous=void 0,this._state++}touch(e,r){if(!this._head||!this._tail)throw new Error("Invalid list");if(!(r!==ds.First&&r!==ds.Last)){if(r===ds.First){if(e===this._head)return;let n=e.next,i=e.previous;e===this._tail?(i.next=void 0,this._tail=i):(n.previous=i,i.next=n),e.previous=void 0,e.next=this._head,this._head.previous=e,this._head=e,this._state++}else if(r===ds.Last){if(e===this._tail)return;let n=e.next,i=e.previous;e===this._head?(n.previous=void 0,this._head=n):(n.previous=i,i.next=n),e.next=void 0,e.previous=this._tail,this._tail.next=e,this._tail=e,this._state++}}}toJSON(){let e=[];return this.forEach((r,n)=>{e.push([n,r])}),e}fromJSON(e){this.clear();for(let[r,n]of e)this.set(r,n)}};Qd.LinkedMap=yA;var xG=class extends yA{static{o(this,"LRUCache")}constructor(e,r=1){super(),this._limit=e,this._ratio=Math.min(Math.max(0,r),1)}get limit(){return this._limit}set limit(e){this._limit=e,this.checkTrim()}get ratio(){return this._ratio}set ratio(e){this._ratio=Math.min(Math.max(0,e),1),this.checkTrim()}get(e,r=ds.AsNew){return super.get(e,r)}peek(e){return super.get(e,ds.None)}set(e,r){return super.set(e,r,ds.Last),this.checkTrim(),this}checkTrim(){this.size>this._limit&&this.trimOld(Math.round(this._limit*this._ratio))}};Qd.LRUCache=xG});var Vve=nr(vA=>{"use strict";Object.defineProperty(vA,"__esModule",{value:!0});vA.Disposable=void 0;var Gve;(function(t){function e(r){return{dispose:r}}o(e,"create"),t.create=e})(Gve||(vA.Disposable=Gve={}))});var qve=nr(hv=>{"use strict";Object.defineProperty(hv,"__esModule",{value:!0});hv.SharedArrayReceiverStrategy=hv.SharedArraySenderStrategy=void 0;var sit=y4(),O4;(function(t){t.Continue=0,t.Cancelled=1})(O4||(O4={}));var TG=class{static{o(this,"SharedArraySenderStrategy")}constructor(){this.buffers=new Map}enableCancellation(e){if(e.id===null)return;let r=new SharedArrayBuffer(4),n=new Int32Array(r,0,1);n[0]=O4.Continue,this.buffers.set(e.id,r),e.$cancellationData=r}async sendCancellation(e,r){let n=this.buffers.get(r);if(n===void 0)return;let i=new Int32Array(n,0,1);Atomics.store(i,0,O4.Cancelled)}cleanup(e){this.buffers.delete(e)}dispose(){this.buffers.clear()}};hv.SharedArraySenderStrategy=TG;var wG=class{static{o(this,"SharedArrayBufferCancellationToken")}constructor(e){this.data=new Int32Array(e,0,1)}get isCancellationRequested(){return Atomics.load(this.data,0)===O4.Cancelled}get onCancellationRequested(){throw new Error("Cancellation over SharedArrayBuffer doesn't support cancellation events")}},kG=class{static{o(this,"SharedArrayBufferCancellationTokenSource")}constructor(e){this.token=new wG(e)}cancel(){}dispose(){}},EG=class{static{o(this,"SharedArrayReceiverStrategy")}constructor(){this.kind="request"}createCancellationTokenSource(e){let r=e.$cancellationData;return r===void 0?new sit.CancellationTokenSource:new kG(r)}};hv.SharedArrayReceiverStrategy=EG});var CG=nr(xA=>{"use strict";Object.defineProperty(xA,"__esModule",{value:!0});xA.Semaphore=void 0;var oit=Xd(),SG=class{static{o(this,"Semaphore")}constructor(e=1){if(e<=0)throw new Error("Capacity must be greater than 0");this._capacity=e,this._active=0,this._waiting=[]}lock(e){return new Promise((r,n)=>{this._waiting.push({thunk:e,resolve:r,reject:n}),this.runNext()})}get active(){return this._active}runNext(){this._waiting.length===0||this._active===this._capacity||(0,oit.default)().timer.setImmediate(()=>this.doRunNext())}doRunNext(){if(this._waiting.length===0||this._active===this._capacity)return;let e=this._waiting.shift();if(this._active++,this._active>this._capacity)throw new Error("To many thunks active");try{let r=e.thunk();r instanceof Promise?r.then(n=>{this._active--,e.resolve(n),this.runNext()},n=>{this._active--,e.reject(n),this.runNext()}):(this._active--,e.resolve(r),this.runNext())}catch(r){this._active--,e.reject(r),this.runNext()}}};xA.Semaphore=SG});var Wve=nr(Zd=>{"use strict";Object.defineProperty(Zd,"__esModule",{value:!0});Zd.ReadableStreamMessageReader=Zd.AbstractMessageReader=Zd.MessageReader=void 0;var _G=Xd(),fv=tv(),AG=Cm(),lit=CG(),Uve;(function(t){function e(r){let n=r;return n&&fv.func(n.listen)&&fv.func(n.dispose)&&fv.func(n.onError)&&fv.func(n.onClose)&&fv.func(n.onPartialMessage)}o(e,"is"),t.is=e})(Uve||(Zd.MessageReader=Uve={}));var bA=class{static{o(this,"AbstractMessageReader")}constructor(){this.errorEmitter=new AG.Emitter,this.closeEmitter=new AG.Emitter,this.partialMessageEmitter=new AG.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(e){this.errorEmitter.fire(this.asError(e))}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}get onPartialMessage(){return this.partialMessageEmitter.event}firePartialMessage(e){this.partialMessageEmitter.fire(e)}asError(e){return e instanceof Error?e:new Error(`Reader received error. Reason: ${fv.string(e.message)?e.message:"unknown"}`)}};Zd.AbstractMessageReader=bA;var DG;(function(t){function e(r){let n,i,a,s=new Map,l,u=new Map;if(r===void 0||typeof r=="string")n=r??"utf-8";else{if(n=r.charset??"utf-8",r.contentDecoder!==void 0&&(a=r.contentDecoder,s.set(a.name,a)),r.contentDecoders!==void 0)for(let h of r.contentDecoders)s.set(h.name,h);if(r.contentTypeDecoder!==void 0&&(l=r.contentTypeDecoder,u.set(l.name,l)),r.contentTypeDecoders!==void 0)for(let h of r.contentTypeDecoders)u.set(h.name,h)}return l===void 0&&(l=(0,_G.default)().applicationJson.decoder,u.set(l.name,l)),{charset:n,contentDecoder:a,contentDecoders:s,contentTypeDecoder:l,contentTypeDecoders:u}}o(e,"fromOptions"),t.fromOptions=e})(DG||(DG={}));var RG=class extends bA{static{o(this,"ReadableStreamMessageReader")}constructor(e,r){super(),this.readable=e,this.options=DG.fromOptions(r),this.buffer=(0,_G.default)().messageBuffer.create(this.options.charset),this._partialMessageTimeout=1e4,this.nextMessageLength=-1,this.messageToken=0,this.readSemaphore=new lit.Semaphore(1)}set partialMessageTimeout(e){this._partialMessageTimeout=e}get partialMessageTimeout(){return this._partialMessageTimeout}listen(e){this.nextMessageLength=-1,this.messageToken=0,this.partialMessageTimer=void 0,this.callback=e;let r=this.readable.onData(n=>{this.onData(n)});return this.readable.onError(n=>this.fireError(n)),this.readable.onClose(()=>this.fireClose()),r}onData(e){try{for(this.buffer.append(e);;){if(this.nextMessageLength===-1){let n=this.buffer.tryReadHeaders(!0);if(!n)return;let i=n.get("content-length");if(!i){this.fireError(new Error(`Header must provide a Content-Length property. +${JSON.stringify(Object.fromEntries(n))}`));return}let a=parseInt(i);if(isNaN(a)){this.fireError(new Error(`Content-Length value must be a number. Got ${i}`));return}this.nextMessageLength=a}let r=this.buffer.tryReadBody(this.nextMessageLength);if(r===void 0){this.setPartialMessageTimer();return}this.clearPartialMessageTimer(),this.nextMessageLength=-1,this.readSemaphore.lock(async()=>{let n=this.options.contentDecoder!==void 0?await this.options.contentDecoder.decode(r):r,i=await this.options.contentTypeDecoder.decode(n,this.options);this.callback(i)}).catch(n=>{this.fireError(n)})}}catch(r){this.fireError(r)}}clearPartialMessageTimer(){this.partialMessageTimer&&(this.partialMessageTimer.dispose(),this.partialMessageTimer=void 0)}setPartialMessageTimer(){this.clearPartialMessageTimer(),!(this._partialMessageTimeout<=0)&&(this.partialMessageTimer=(0,_G.default)().timer.setTimeout((e,r)=>{this.partialMessageTimer=void 0,e===this.messageToken&&(this.firePartialMessage({messageToken:e,waitingTime:r}),this.setPartialMessageTimer())},this._partialMessageTimeout,this.messageToken,this._partialMessageTimeout))}};Zd.ReadableStreamMessageReader=RG});var Kve=nr(Jd=>{"use strict";Object.defineProperty(Jd,"__esModule",{value:!0});Jd.WriteableStreamMessageWriter=Jd.AbstractMessageWriter=Jd.MessageWriter=void 0;var Hve=Xd(),P4=tv(),cit=CG(),Yve=Cm(),uit="Content-Length: ",jve=`\r +`,Xve;(function(t){function e(r){let n=r;return n&&P4.func(n.dispose)&&P4.func(n.onClose)&&P4.func(n.onError)&&P4.func(n.write)}o(e,"is"),t.is=e})(Xve||(Jd.MessageWriter=Xve={}));var TA=class{static{o(this,"AbstractMessageWriter")}constructor(){this.errorEmitter=new Yve.Emitter,this.closeEmitter=new Yve.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(e,r,n){this.errorEmitter.fire([this.asError(e),r,n])}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}asError(e){return e instanceof Error?e:new Error(`Writer received error. Reason: ${P4.string(e.message)?e.message:"unknown"}`)}};Jd.AbstractMessageWriter=TA;var LG;(function(t){function e(r){return r===void 0||typeof r=="string"?{charset:r??"utf-8",contentTypeEncoder:(0,Hve.default)().applicationJson.encoder}:{charset:r.charset??"utf-8",contentEncoder:r.contentEncoder,contentTypeEncoder:r.contentTypeEncoder??(0,Hve.default)().applicationJson.encoder}}o(e,"fromOptions"),t.fromOptions=e})(LG||(LG={}));var NG=class extends TA{static{o(this,"WriteableStreamMessageWriter")}constructor(e,r){super(),this.writable=e,this.options=LG.fromOptions(r),this.errorCount=0,this.writeSemaphore=new cit.Semaphore(1),this.writable.onError(n=>this.fireError(n)),this.writable.onClose(()=>this.fireClose())}async write(e){return this.writeSemaphore.lock(async()=>this.options.contentTypeEncoder.encode(e,this.options).then(n=>this.options.contentEncoder!==void 0?this.options.contentEncoder.encode(n):n).then(n=>{let i=[];return i.push(uit,n.byteLength.toString(),jve),i.push(jve),this.doWrite(e,i,n)},n=>{throw this.fireError(n),n}))}async doWrite(e,r,n){try{return await this.writable.write(r.join(""),"ascii"),this.writable.write(n)}catch(i){return this.handleError(i,e),Promise.reject(i)}}handleError(e,r){this.errorCount++,this.fireError(e,r,this.errorCount)}end(){this.writable.end()}};Jd.WriteableStreamMessageWriter=NG});var Qve=nr(wA=>{"use strict";Object.defineProperty(wA,"__esModule",{value:!0});wA.AbstractMessageBuffer=void 0;var hit=13,fit=10,dit=`\r +`,MG=class{static{o(this,"AbstractMessageBuffer")}constructor(e="utf-8"){this._encoding=e,this._chunks=[],this._totalLength=0}get encoding(){return this._encoding}append(e){let r=typeof e=="string"?this.fromString(e,this._encoding):e;this._chunks.push(r),this._totalLength+=r.byteLength}tryReadHeaders(e=!1){if(this._chunks.length===0)return;let r=0,n=0,i=0,a=0;e:for(;nthis._totalLength)throw new Error("Cannot read so many bytes!");if(this._chunks[0].byteLength===e){let a=this._chunks[0];return this._chunks.shift(),this._totalLength-=e,this.asNative(a)}if(this._chunks[0].byteLength>e){let a=this._chunks[0],s=this.asNative(a,e);return this._chunks[0]=a.slice(e),this._totalLength-=e,s}let r=this.allocNative(e),n=0,i=0;for(;e>0;){let a=this._chunks[i];if(a.byteLength>e){let s=a.slice(0,e);r.set(s,n),n+=e,this._chunks[i]=a.slice(e),this._totalLength-=e,e-=e}else r.set(a,n),n+=a.byteLength,this._chunks.shift(),this._totalLength-=a.byteLength,e-=a.byteLength}return r}};wA.AbstractMessageBuffer=MG});var r2e=nr(Rr=>{"use strict";Object.defineProperty(Rr,"__esModule",{value:!0});Rr.createMessageConnection=Rr.ConnectionOptions=Rr.MessageStrategy=Rr.CancellationStrategy=Rr.CancellationSenderStrategy=Rr.CancellationReceiverStrategy=Rr.RequestCancellationReceiverStrategy=Rr.IdCancellationReceiverStrategy=Rr.ConnectionStrategy=Rr.ConnectionError=Rr.ConnectionErrors=Rr.LogTraceNotification=Rr.SetTraceNotification=Rr.TraceFormat=Rr.TraceValues=Rr.Trace=Rr.NullLogger=Rr.ProgressType=Rr.ProgressToken=void 0;var Zve=Xd(),Ai=tv(),br=vG(),Jve=bG(),B4=Cm(),IG=y4(),z4;(function(t){t.type=new br.NotificationType("$/cancelRequest")})(z4||(z4={}));var OG;(function(t){function e(r){return typeof r=="string"||typeof r=="number"}o(e,"is"),t.is=e})(OG||(Rr.ProgressToken=OG={}));var F4;(function(t){t.type=new br.NotificationType("$/progress")})(F4||(F4={}));var PG=class{static{o(this,"ProgressType")}constructor(){}};Rr.ProgressType=PG;var BG;(function(t){function e(r){return Ai.func(r)}o(e,"is"),t.is=e})(BG||(BG={}));Rr.NullLogger=Object.freeze({error:o(()=>{},"error"),warn:o(()=>{},"warn"),info:o(()=>{},"info"),log:o(()=>{},"log")});var vn;(function(t){t[t.Off=0]="Off",t[t.Messages=1]="Messages",t[t.Compact=2]="Compact",t[t.Verbose=3]="Verbose"})(vn||(Rr.Trace=vn={}));var e2e;(function(t){t.Off="off",t.Messages="messages",t.Compact="compact",t.Verbose="verbose"})(e2e||(Rr.TraceValues=e2e={}));(function(t){function e(n){if(!Ai.string(n))return t.Off;switch(n=n.toLowerCase(),n){case"off":return t.Off;case"messages":return t.Messages;case"compact":return t.Compact;case"verbose":return t.Verbose;default:return t.Off}}o(e,"fromString"),t.fromString=e;function r(n){switch(n){case t.Off:return"off";case t.Messages:return"messages";case t.Compact:return"compact";case t.Verbose:return"verbose";default:return"off"}}o(r,"toString"),t.toString=r})(vn||(Rr.Trace=vn={}));var rl;(function(t){t.Text="text",t.JSON="json"})(rl||(Rr.TraceFormat=rl={}));(function(t){function e(r){return Ai.string(r)?(r=r.toLowerCase(),r==="json"?t.JSON:t.Text):t.Text}o(e,"fromString"),t.fromString=e})(rl||(Rr.TraceFormat=rl={}));var FG;(function(t){t.type=new br.NotificationType("$/setTrace")})(FG||(Rr.SetTraceNotification=FG={}));var kA;(function(t){t.type=new br.NotificationType("$/logTrace")})(kA||(Rr.LogTraceNotification=kA={}));var $4;(function(t){t[t.Closed=1]="Closed",t[t.Disposed=2]="Disposed",t[t.AlreadyListening=3]="AlreadyListening"})($4||(Rr.ConnectionErrors=$4={}));var dv=class t extends Error{static{o(this,"ConnectionError")}constructor(e,r){super(r),this.code=e,Object.setPrototypeOf(this,t.prototype)}};Rr.ConnectionError=dv;var $G;(function(t){function e(r){let n=r;return n&&Ai.func(n.cancelUndispatched)}o(e,"is"),t.is=e})($G||(Rr.ConnectionStrategy=$G={}));var EA;(function(t){function e(r){let n=r;return n&&(n.kind===void 0||n.kind==="id")&&Ai.func(n.createCancellationTokenSource)&&(n.dispose===void 0||Ai.func(n.dispose))}o(e,"is"),t.is=e})(EA||(Rr.IdCancellationReceiverStrategy=EA={}));var zG;(function(t){function e(r){let n=r;return n&&n.kind==="request"&&Ai.func(n.createCancellationTokenSource)&&(n.dispose===void 0||Ai.func(n.dispose))}o(e,"is"),t.is=e})(zG||(Rr.RequestCancellationReceiverStrategy=zG={}));var SA;(function(t){t.Message=Object.freeze({createCancellationTokenSource(r){return new IG.CancellationTokenSource}});function e(r){return EA.is(r)||zG.is(r)}o(e,"is"),t.is=e})(SA||(Rr.CancellationReceiverStrategy=SA={}));var CA;(function(t){t.Message=Object.freeze({sendCancellation(r,n){return r.sendNotification(z4.type,{id:n})},cleanup(r){}});function e(r){let n=r;return n&&Ai.func(n.sendCancellation)&&Ai.func(n.cleanup)}o(e,"is"),t.is=e})(CA||(Rr.CancellationSenderStrategy=CA={}));var AA;(function(t){t.Message=Object.freeze({receiver:SA.Message,sender:CA.Message});function e(r){let n=r;return n&&SA.is(n.receiver)&&CA.is(n.sender)}o(e,"is"),t.is=e})(AA||(Rr.CancellationStrategy=AA={}));var _A;(function(t){function e(r){let n=r;return n&&Ai.func(n.handleMessage)}o(e,"is"),t.is=e})(_A||(Rr.MessageStrategy=_A={}));var t2e;(function(t){function e(r){let n=r;return n&&(AA.is(n.cancellationStrategy)||$G.is(n.connectionStrategy)||_A.is(n.messageStrategy))}o(e,"is"),t.is=e})(t2e||(Rr.ConnectionOptions=t2e={}));var Mc;(function(t){t[t.New=1]="New",t[t.Listening=2]="Listening",t[t.Closed=3]="Closed",t[t.Disposed=4]="Disposed"})(Mc||(Mc={}));function pit(t,e,r,n){let i=r!==void 0?r:Rr.NullLogger,a=0,s=0,l=0,u="2.0",h,f=new Map,d,p=new Map,m=new Map,g,y=new Jve.LinkedMap,v=new Map,x=new Set,b=new Map,T=vn.Off,E=rl.Text,w,k=Mc.New,S=new B4.Emitter,A=new B4.Emitter,L=new B4.Emitter,I=new B4.Emitter,N=new B4.Emitter,C=n&&n.cancellationStrategy?n.cancellationStrategy:AA.Message;function _(j){if(j===null)throw new Error("Can't send requests with id null since the response can't be correlated.");return"req-"+j.toString()}o(_,"createRequestQueueKey");function D(j){return j===null?"res-unknown-"+(++l).toString():"res-"+j.toString()}o(D,"createResponseQueueKey");function M(){return"not-"+(++s).toString()}o(M,"createNotificationQueueKey");function R(j,ae){br.Message.isRequest(ae)?j.set(_(ae.id),ae):br.Message.isResponse(ae)?j.set(D(ae.id),ae):j.set(M(),ae)}o(R,"addMessageToQueue");function P(j){}o(P,"cancelUndispatched");function B(){return k===Mc.Listening}o(B,"isListening");function F(){return k===Mc.Closed}o(F,"isClosed");function G(){return k===Mc.Disposed}o(G,"isDisposed");function $(){(k===Mc.New||k===Mc.Listening)&&(k=Mc.Closed,A.fire(void 0))}o($,"closeHandler");function V(j){S.fire([j,void 0,void 0])}o(V,"readErrorHandler");function X(j){S.fire(j)}o(X,"writeErrorHandler"),t.onClose($),t.onError(V),e.onClose($),e.onError(X);function Q(){g||y.size===0||(g=(0,Zve.default)().timer.setImmediate(()=>{g=void 0,ie()}))}o(Q,"triggerMessageQueue");function H(j){br.Message.isRequest(j)?le(j):br.Message.isNotification(j)?J(j):br.Message.isResponse(j)?ee(j):te(j)}o(H,"handleMessage");function ie(){if(y.size===0)return;let j=y.shift();try{let ae=n?.messageStrategy;_A.is(ae)?ae.handleMessage(j,H):H(j)}finally{Q()}}o(ie,"processMessageQueue");let Y=o(j=>{try{if(br.Message.isNotification(j)&&j.method===z4.type.method){let ae=j.params.id,U=_(ae),ce=y.get(U);if(br.Message.isRequest(ce)){let ne=n?.connectionStrategy,se=ne&&ne.cancelUndispatched?ne.cancelUndispatched(ce,P):void 0;if(se&&(se.error!==void 0||se.result!==void 0)){y.delete(U),b.delete(ae),se.id=ce.id,Se(se,j.method,Date.now()),e.write(se).catch(()=>i.error("Sending response for canceled message failed."));return}}let z=b.get(ae);if(z!==void 0){z.cancel(),ke(j);return}else x.add(ae)}R(y,j)}finally{Q()}},"callback");function le(j){if(G())return;function ae(pe,me,Re){let ge={jsonrpc:u,id:j.id};pe instanceof br.ResponseError?ge.error=pe.toJson():ge.result=pe===void 0?null:pe,Se(ge,me,Re),e.write(ge).catch(()=>i.error("Sending response failed."))}o(ae,"reply");function U(pe,me,Re){let ge={jsonrpc:u,id:j.id,error:pe.toJson()};Se(ge,me,Re),e.write(ge).catch(()=>i.error("Sending response failed."))}o(U,"replyError");function ce(pe,me,Re){pe===void 0&&(pe=null);let ge={jsonrpc:u,id:j.id,result:pe};Se(ge,me,Re),e.write(ge).catch(()=>i.error("Sending response failed."))}o(ce,"replySuccess"),Me(j);let z=f.get(j.method),ne,se;z&&(ne=z.type,se=z.handler);let be=Date.now();if(se||h){let pe=j.id??String(Date.now()),me=EA.is(C.receiver)?C.receiver.createCancellationTokenSource(pe):C.receiver.createCancellationTokenSource(j);j.id!==null&&x.has(j.id)&&me.cancel(),j.id!==null&&b.set(pe,me);try{let Re;if(se)if(j.params===void 0){if(ne!==void 0&&ne.numberOfParams!==0){U(new br.ResponseError(br.ErrorCodes.InvalidParams,`Request ${j.method} defines ${ne.numberOfParams} params but received none.`),j.method,be);return}Re=se(me.token)}else if(Array.isArray(j.params)){if(ne!==void 0&&ne.parameterStructures===br.ParameterStructures.byName){U(new br.ResponseError(br.ErrorCodes.InvalidParams,`Request ${j.method} defines parameters by name but received parameters by position`),j.method,be);return}Re=se(...j.params,me.token)}else{if(ne!==void 0&&ne.parameterStructures===br.ParameterStructures.byPosition){U(new br.ResponseError(br.ErrorCodes.InvalidParams,`Request ${j.method} defines parameters by position but received parameters by name`),j.method,be);return}Re=se(j.params,me.token)}else h&&(Re=h(j.method,j.params,me.token));let ge=Re;Re?ge.then?ge.then(Ie=>{b.delete(pe),ae(Ie,j.method,be)},Ie=>{b.delete(pe),Ie instanceof br.ResponseError?U(Ie,j.method,be):Ie&&Ai.string(Ie.message)?U(new br.ResponseError(br.ErrorCodes.InternalError,`Request ${j.method} failed with message: ${Ie.message}`),j.method,be):U(new br.ResponseError(br.ErrorCodes.InternalError,`Request ${j.method} failed unexpectedly without providing any details.`),j.method,be)}):(b.delete(pe),ae(Re,j.method,be)):(b.delete(pe),ce(Re,j.method,be))}catch(Re){b.delete(pe),Re instanceof br.ResponseError?ae(Re,j.method,be):Re&&Ai.string(Re.message)?U(new br.ResponseError(br.ErrorCodes.InternalError,`Request ${j.method} failed with message: ${Re.message}`),j.method,be):U(new br.ResponseError(br.ErrorCodes.InternalError,`Request ${j.method} failed unexpectedly without providing any details.`),j.method,be)}}else U(new br.ResponseError(br.ErrorCodes.MethodNotFound,`Unhandled method ${j.method}`),j.method,be)}o(le,"handleRequest");function ee(j){if(!G())if(j.id===null)j.error?i.error(`Received response message without id: Error is: +${JSON.stringify(j.error,void 0,4)}`):i.error("Received response message without id. No further error information provided.");else{let ae=j.id,U=v.get(ae);if(we(j,U),U!==void 0){v.delete(ae);try{if(j.error){let ce=j.error;U.reject(new br.ResponseError(ce.code,ce.message,ce.data))}else if(j.result!==void 0)U.resolve(j.result);else throw new Error("Should never happen.")}catch(ce){ce.message?i.error(`Response handler '${U.method}' failed with message: ${ce.message}`):i.error(`Response handler '${U.method}' failed unexpectedly.`)}}}}o(ee,"handleResponse");function J(j){if(G())return;let ae,U;if(j.method===z4.type.method){let ce=j.params.id;x.delete(ce),ke(j);return}else{let ce=p.get(j.method);ce&&(U=ce.handler,ae=ce.type)}if(U||d)try{if(ke(j),U)if(j.params===void 0)ae!==void 0&&ae.numberOfParams!==0&&ae.parameterStructures!==br.ParameterStructures.byName&&i.error(`Notification ${j.method} defines ${ae.numberOfParams} params but received none.`),U();else if(Array.isArray(j.params)){let ce=j.params;j.method===F4.type.method&&ce.length===2&&OG.is(ce[0])?U({token:ce[0],value:ce[1]}):(ae!==void 0&&(ae.parameterStructures===br.ParameterStructures.byName&&i.error(`Notification ${j.method} defines parameters by name but received parameters by position`),ae.numberOfParams!==j.params.length&&i.error(`Notification ${j.method} defines ${ae.numberOfParams} params but received ${ce.length} arguments`)),U(...ce))}else ae!==void 0&&ae.parameterStructures===br.ParameterStructures.byPosition&&i.error(`Notification ${j.method} defines parameters by position but received parameters by name`),U(j.params);else d&&d(j.method,j.params)}catch(ce){ce.message?i.error(`Notification handler '${j.method}' failed with message: ${ce.message}`):i.error(`Notification handler '${j.method}' failed unexpectedly.`)}else L.fire(j)}o(J,"handleNotification");function te(j){if(!j){i.error("Received empty message.");return}i.error(`Received message which is neither a response nor a notification message: +${JSON.stringify(j,null,4)}`);let ae=j;if(Ai.string(ae.id)||Ai.number(ae.id)){let U=ae.id,ce=v.get(U);ce&&ce.reject(new Error("The received response has neither a result nor an error property."))}}o(te,"handleInvalidMessage");function Z(j){if(j!=null)switch(T){case vn.Verbose:return JSON.stringify(j,null,4);case vn.Compact:return JSON.stringify(j);default:return}}o(Z,"stringifyTrace");function xe(j){if(!(T===vn.Off||!w))if(E===rl.Text){let ae;(T===vn.Verbose||T===vn.Compact)&&j.params&&(ae=`Params: ${Z(j.params)} + +`),w.log(`Sending request '${j.method} - (${j.id})'.`,ae)}else _e("send-request",j)}o(xe,"traceSendingRequest");function de(j){if(!(T===vn.Off||!w))if(E===rl.Text){let ae;(T===vn.Verbose||T===vn.Compact)&&(j.params?ae=`Params: ${Z(j.params)} + +`:ae=`No parameters provided. + +`),w.log(`Sending notification '${j.method}'.`,ae)}else _e("send-notification",j)}o(de,"traceSendingNotification");function Se(j,ae,U){if(!(T===vn.Off||!w))if(E===rl.Text){let ce;(T===vn.Verbose||T===vn.Compact)&&(j.error&&j.error.data?ce=`Error data: ${Z(j.error.data)} + +`:j.result?ce=`Result: ${Z(j.result)} + +`:j.error===void 0&&(ce=`No result returned. + +`)),w.log(`Sending response '${ae} - (${j.id})'. Processing request took ${Date.now()-U}ms`,ce)}else _e("send-response",j)}o(Se,"traceSendingResponse");function Me(j){if(!(T===vn.Off||!w))if(E===rl.Text){let ae;(T===vn.Verbose||T===vn.Compact)&&j.params&&(ae=`Params: ${Z(j.params)} + +`),w.log(`Received request '${j.method} - (${j.id})'.`,ae)}else _e("receive-request",j)}o(Me,"traceReceivedRequest");function ke(j){if(!(T===vn.Off||!w||j.method===kA.type.method))if(E===rl.Text){let ae;(T===vn.Verbose||T===vn.Compact)&&(j.params?ae=`Params: ${Z(j.params)} + +`:ae=`No parameters provided. + +`),w.log(`Received notification '${j.method}'.`,ae)}else _e("receive-notification",j)}o(ke,"traceReceivedNotification");function we(j,ae){if(!(T===vn.Off||!w))if(E===rl.Text){let U;if((T===vn.Verbose||T===vn.Compact)&&(j.error&&j.error.data?U=`Error data: ${Z(j.error.data)} + +`:j.result?U=`Result: ${Z(j.result)} + +`:j.error===void 0&&(U=`No result returned. + +`)),ae){let ce=j.error?` Request failed: ${j.error.message} (${j.error.code}).`:"";w.log(`Received response '${ae.method} - (${j.id})' in ${Date.now()-ae.timerStart}ms.${ce}`,U)}else w.log(`Received response ${j.id} without active response promise.`,U)}else _e("receive-response",j)}o(we,"traceReceivedResponse");function _e(j,ae){if(!w||T===vn.Off)return;let U={isLSPMessage:!0,type:j,message:ae,timestamp:Date.now()};w.log(U)}o(_e,"logLSPMessage");function $e(){if(F())throw new dv($4.Closed,"Connection is closed.");if(G())throw new dv($4.Disposed,"Connection is disposed.")}o($e,"throwIfClosedOrDisposed");function fe(){if(B())throw new dv($4.AlreadyListening,"Connection is already listening")}o(fe,"throwIfListening");function Ke(){if(!B())throw new Error("Call listen() first.")}o(Ke,"throwIfNotListening");function Te(j){return j===void 0?null:j}o(Te,"undefinedToNull");function Be(j){if(j!==null)return j}o(Be,"nullToUndefined");function Ue(j){return j!=null&&!Array.isArray(j)&&typeof j=="object"}o(Ue,"isNamedParam");function Ge(j,ae){switch(j){case br.ParameterStructures.auto:return Ue(ae)?Be(ae):[Te(ae)];case br.ParameterStructures.byName:if(!Ue(ae))throw new Error("Received parameters by name but param is not an object literal.");return Be(ae);case br.ParameterStructures.byPosition:return[Te(ae)];default:throw new Error(`Unknown parameter structure ${j.toString()}`)}}o(Ge,"computeSingleParam");function Ne(j,ae){let U,ce=j.numberOfParams;switch(ce){case 0:U=void 0;break;case 1:U=Ge(j.parameterStructures,ae[0]);break;default:U=[];for(let z=0;z{$e();let U,ce;if(Ai.string(j)){U=j;let ne=ae[0],se=0,be=br.ParameterStructures.auto;br.ParameterStructures.is(ne)&&(se=1,be=ne);let pe=ae.length,me=pe-se;switch(me){case 0:ce=void 0;break;case 1:ce=Ge(be,ae[se]);break;default:if(be===br.ParameterStructures.byName)throw new Error(`Received ${me} parameters for 'by Name' notification parameter structure.`);ce=ae.slice(se,pe).map(Re=>Te(Re));break}}else{let ne=ae;U=j.method,ce=Ne(j,ne)}let z={jsonrpc:u,method:U,params:ce};return de(z),e.write(z).catch(ne=>{throw i.error("Sending notification failed."),ne})},"sendNotification"),onNotification:o((j,ae)=>{$e();let U;return Ai.func(j)?d=j:ae&&(Ai.string(j)?(U=j,p.set(j,{type:void 0,handler:ae})):(U=j.method,p.set(j.method,{type:j,handler:ae}))),{dispose:o(()=>{U!==void 0?p.delete(U):d=void 0},"dispose")}},"onNotification"),onProgress:o((j,ae,U)=>{if(m.has(ae))throw new Error(`Progress handler for token ${ae} already registered`);return m.set(ae,U),{dispose:o(()=>{m.delete(ae)},"dispose")}},"onProgress"),sendProgress:o((j,ae,U)=>We.sendNotification(F4.type,{token:ae,value:U}),"sendProgress"),onUnhandledProgress:I.event,sendRequest:o((j,...ae)=>{$e(),Ke();let U,ce,z;if(Ai.string(j)){U=j;let pe=ae[0],me=ae[ae.length-1],Re=0,ge=br.ParameterStructures.auto;br.ParameterStructures.is(pe)&&(Re=1,ge=pe);let Ie=ae.length;IG.CancellationToken.is(me)&&(Ie=Ie-1,z=me);let qe=Ie-Re;switch(qe){case 0:ce=void 0;break;case 1:ce=Ge(ge,ae[Re]);break;default:if(ge===br.ParameterStructures.byName)throw new Error(`Received ${qe} parameters for 'by Name' request parameter structure.`);ce=ae.slice(Re,Ie).map(Pe=>Te(Pe));break}}else{let pe=ae;U=j.method,ce=Ne(j,pe);let me=j.numberOfParams;z=IG.CancellationToken.is(pe[me])?pe[me]:void 0}let ne=a++,se;z&&(se=z.onCancellationRequested(()=>{let pe=C.sender.sendCancellation(We,ne);return pe===void 0?(i.log(`Received no promise from cancellation strategy when cancelling id ${ne}`),Promise.resolve()):pe.catch(()=>{i.log(`Sending cancellation messages for id ${ne} failed`)})}));let be={jsonrpc:u,id:ne,method:U,params:ce};return xe(be),typeof C.sender.enableCancellation=="function"&&C.sender.enableCancellation(be),new Promise(async(pe,me)=>{let Re=o(qe=>{pe(qe),C.sender.cleanup(ne),se?.dispose()},"resolveWithCleanup"),ge=o(qe=>{me(qe),C.sender.cleanup(ne),se?.dispose()},"rejectWithCleanup"),Ie={method:U,timerStart:Date.now(),resolve:Re,reject:ge};try{await e.write(be),v.set(ne,Ie)}catch(qe){throw i.error("Sending request failed."),Ie.reject(new br.ResponseError(br.ErrorCodes.MessageWriteError,qe.message?qe.message:"Unknown reason")),qe}})},"sendRequest"),onRequest:o((j,ae)=>{$e();let U=null;return BG.is(j)?(U=void 0,h=j):Ai.string(j)?(U=null,ae!==void 0&&(U=j,f.set(j,{handler:ae,type:void 0}))):ae!==void 0&&(U=j.method,f.set(j.method,{type:j,handler:ae})),{dispose:o(()=>{U!==null&&(U!==void 0?f.delete(U):h=void 0)},"dispose")}},"onRequest"),hasPendingResponse:o(()=>v.size>0,"hasPendingResponse"),trace:o(async(j,ae,U)=>{let ce=!1,z=rl.Text;U!==void 0&&(Ai.boolean(U)?ce=U:(ce=U.sendNotification||!1,z=U.traceFormat||rl.Text)),T=j,E=z,T===vn.Off?w=void 0:w=ae,ce&&!F()&&!G()&&await We.sendNotification(FG.type,{value:vn.toString(j)})},"trace"),onError:S.event,onClose:A.event,onUnhandledNotification:L.event,onDispose:N.event,end:o(()=>{e.end()},"end"),dispose:o(()=>{if(G())return;k=Mc.Disposed,N.fire(void 0);let j=new br.ResponseError(br.ErrorCodes.PendingResponseRejected,"Pending response rejected since connection got disposed");for(let ae of v.values())ae.reject(j);v=new Map,b=new Map,x=new Set,y=new Jve.LinkedMap,Ai.func(e.dispose)&&e.dispose(),Ai.func(t.dispose)&&t.dispose()},"dispose"),listen:o(()=>{$e(),fe(),k=Mc.Listening,t.listen(Y)},"listen"),inspect:o(()=>{(0,Zve.default)().console.log("inspect")},"inspect")};return We.onNotification(kA.type,j=>{if(T===vn.Off||!w)return;let ae=T===vn.Verbose||T===vn.Compact;w.log(j.message,ae?j.verbose:void 0)}),We.onNotification(F4.type,j=>{let ae=m.get(j.token);ae?ae(j.value):I.fire(j)}),We}o(pit,"createMessageConnection");Rr.createMessageConnection=pit});var DA=nr(tt=>{"use strict";Object.defineProperty(tt,"__esModule",{value:!0});tt.ProgressType=tt.ProgressToken=tt.createMessageConnection=tt.NullLogger=tt.ConnectionOptions=tt.ConnectionStrategy=tt.AbstractMessageBuffer=tt.WriteableStreamMessageWriter=tt.AbstractMessageWriter=tt.MessageWriter=tt.ReadableStreamMessageReader=tt.AbstractMessageReader=tt.MessageReader=tt.SharedArrayReceiverStrategy=tt.SharedArraySenderStrategy=tt.CancellationToken=tt.CancellationTokenSource=tt.Emitter=tt.Event=tt.Disposable=tt.LRUCache=tt.Touch=tt.LinkedMap=tt.ParameterStructures=tt.NotificationType9=tt.NotificationType8=tt.NotificationType7=tt.NotificationType6=tt.NotificationType5=tt.NotificationType4=tt.NotificationType3=tt.NotificationType2=tt.NotificationType1=tt.NotificationType0=tt.NotificationType=tt.ErrorCodes=tt.ResponseError=tt.RequestType9=tt.RequestType8=tt.RequestType7=tt.RequestType6=tt.RequestType5=tt.RequestType4=tt.RequestType3=tt.RequestType2=tt.RequestType1=tt.RequestType0=tt.RequestType=tt.Message=tt.RAL=void 0;tt.MessageStrategy=tt.CancellationStrategy=tt.CancellationSenderStrategy=tt.CancellationReceiverStrategy=tt.ConnectionError=tt.ConnectionErrors=tt.LogTraceNotification=tt.SetTraceNotification=tt.TraceFormat=tt.TraceValues=tt.Trace=void 0;var Kn=vG();Object.defineProperty(tt,"Message",{enumerable:!0,get:o(function(){return Kn.Message},"get")});Object.defineProperty(tt,"RequestType",{enumerable:!0,get:o(function(){return Kn.RequestType},"get")});Object.defineProperty(tt,"RequestType0",{enumerable:!0,get:o(function(){return Kn.RequestType0},"get")});Object.defineProperty(tt,"RequestType1",{enumerable:!0,get:o(function(){return Kn.RequestType1},"get")});Object.defineProperty(tt,"RequestType2",{enumerable:!0,get:o(function(){return Kn.RequestType2},"get")});Object.defineProperty(tt,"RequestType3",{enumerable:!0,get:o(function(){return Kn.RequestType3},"get")});Object.defineProperty(tt,"RequestType4",{enumerable:!0,get:o(function(){return Kn.RequestType4},"get")});Object.defineProperty(tt,"RequestType5",{enumerable:!0,get:o(function(){return Kn.RequestType5},"get")});Object.defineProperty(tt,"RequestType6",{enumerable:!0,get:o(function(){return Kn.RequestType6},"get")});Object.defineProperty(tt,"RequestType7",{enumerable:!0,get:o(function(){return Kn.RequestType7},"get")});Object.defineProperty(tt,"RequestType8",{enumerable:!0,get:o(function(){return Kn.RequestType8},"get")});Object.defineProperty(tt,"RequestType9",{enumerable:!0,get:o(function(){return Kn.RequestType9},"get")});Object.defineProperty(tt,"ResponseError",{enumerable:!0,get:o(function(){return Kn.ResponseError},"get")});Object.defineProperty(tt,"ErrorCodes",{enumerable:!0,get:o(function(){return Kn.ErrorCodes},"get")});Object.defineProperty(tt,"NotificationType",{enumerable:!0,get:o(function(){return Kn.NotificationType},"get")});Object.defineProperty(tt,"NotificationType0",{enumerable:!0,get:o(function(){return Kn.NotificationType0},"get")});Object.defineProperty(tt,"NotificationType1",{enumerable:!0,get:o(function(){return Kn.NotificationType1},"get")});Object.defineProperty(tt,"NotificationType2",{enumerable:!0,get:o(function(){return Kn.NotificationType2},"get")});Object.defineProperty(tt,"NotificationType3",{enumerable:!0,get:o(function(){return Kn.NotificationType3},"get")});Object.defineProperty(tt,"NotificationType4",{enumerable:!0,get:o(function(){return Kn.NotificationType4},"get")});Object.defineProperty(tt,"NotificationType5",{enumerable:!0,get:o(function(){return Kn.NotificationType5},"get")});Object.defineProperty(tt,"NotificationType6",{enumerable:!0,get:o(function(){return Kn.NotificationType6},"get")});Object.defineProperty(tt,"NotificationType7",{enumerable:!0,get:o(function(){return Kn.NotificationType7},"get")});Object.defineProperty(tt,"NotificationType8",{enumerable:!0,get:o(function(){return Kn.NotificationType8},"get")});Object.defineProperty(tt,"NotificationType9",{enumerable:!0,get:o(function(){return Kn.NotificationType9},"get")});Object.defineProperty(tt,"ParameterStructures",{enumerable:!0,get:o(function(){return Kn.ParameterStructures},"get")});var GG=bG();Object.defineProperty(tt,"LinkedMap",{enumerable:!0,get:o(function(){return GG.LinkedMap},"get")});Object.defineProperty(tt,"LRUCache",{enumerable:!0,get:o(function(){return GG.LRUCache},"get")});Object.defineProperty(tt,"Touch",{enumerable:!0,get:o(function(){return GG.Touch},"get")});var mit=Vve();Object.defineProperty(tt,"Disposable",{enumerable:!0,get:o(function(){return mit.Disposable},"get")});var n2e=Cm();Object.defineProperty(tt,"Event",{enumerable:!0,get:o(function(){return n2e.Event},"get")});Object.defineProperty(tt,"Emitter",{enumerable:!0,get:o(function(){return n2e.Emitter},"get")});var i2e=y4();Object.defineProperty(tt,"CancellationTokenSource",{enumerable:!0,get:o(function(){return i2e.CancellationTokenSource},"get")});Object.defineProperty(tt,"CancellationToken",{enumerable:!0,get:o(function(){return i2e.CancellationToken},"get")});var a2e=qve();Object.defineProperty(tt,"SharedArraySenderStrategy",{enumerable:!0,get:o(function(){return a2e.SharedArraySenderStrategy},"get")});Object.defineProperty(tt,"SharedArrayReceiverStrategy",{enumerable:!0,get:o(function(){return a2e.SharedArrayReceiverStrategy},"get")});var VG=Wve();Object.defineProperty(tt,"MessageReader",{enumerable:!0,get:o(function(){return VG.MessageReader},"get")});Object.defineProperty(tt,"AbstractMessageReader",{enumerable:!0,get:o(function(){return VG.AbstractMessageReader},"get")});Object.defineProperty(tt,"ReadableStreamMessageReader",{enumerable:!0,get:o(function(){return VG.ReadableStreamMessageReader},"get")});var qG=Kve();Object.defineProperty(tt,"MessageWriter",{enumerable:!0,get:o(function(){return qG.MessageWriter},"get")});Object.defineProperty(tt,"AbstractMessageWriter",{enumerable:!0,get:o(function(){return qG.AbstractMessageWriter},"get")});Object.defineProperty(tt,"WriteableStreamMessageWriter",{enumerable:!0,get:o(function(){return qG.WriteableStreamMessageWriter},"get")});var git=Qve();Object.defineProperty(tt,"AbstractMessageBuffer",{enumerable:!0,get:o(function(){return git.AbstractMessageBuffer},"get")});var Ha=r2e();Object.defineProperty(tt,"ConnectionStrategy",{enumerable:!0,get:o(function(){return Ha.ConnectionStrategy},"get")});Object.defineProperty(tt,"ConnectionOptions",{enumerable:!0,get:o(function(){return Ha.ConnectionOptions},"get")});Object.defineProperty(tt,"NullLogger",{enumerable:!0,get:o(function(){return Ha.NullLogger},"get")});Object.defineProperty(tt,"createMessageConnection",{enumerable:!0,get:o(function(){return Ha.createMessageConnection},"get")});Object.defineProperty(tt,"ProgressToken",{enumerable:!0,get:o(function(){return Ha.ProgressToken},"get")});Object.defineProperty(tt,"ProgressType",{enumerable:!0,get:o(function(){return Ha.ProgressType},"get")});Object.defineProperty(tt,"Trace",{enumerable:!0,get:o(function(){return Ha.Trace},"get")});Object.defineProperty(tt,"TraceValues",{enumerable:!0,get:o(function(){return Ha.TraceValues},"get")});Object.defineProperty(tt,"TraceFormat",{enumerable:!0,get:o(function(){return Ha.TraceFormat},"get")});Object.defineProperty(tt,"SetTraceNotification",{enumerable:!0,get:o(function(){return Ha.SetTraceNotification},"get")});Object.defineProperty(tt,"LogTraceNotification",{enumerable:!0,get:o(function(){return Ha.LogTraceNotification},"get")});Object.defineProperty(tt,"ConnectionErrors",{enumerable:!0,get:o(function(){return Ha.ConnectionErrors},"get")});Object.defineProperty(tt,"ConnectionError",{enumerable:!0,get:o(function(){return Ha.ConnectionError},"get")});Object.defineProperty(tt,"CancellationReceiverStrategy",{enumerable:!0,get:o(function(){return Ha.CancellationReceiverStrategy},"get")});Object.defineProperty(tt,"CancellationSenderStrategy",{enumerable:!0,get:o(function(){return Ha.CancellationSenderStrategy},"get")});Object.defineProperty(tt,"CancellationStrategy",{enumerable:!0,get:o(function(){return Ha.CancellationStrategy},"get")});Object.defineProperty(tt,"MessageStrategy",{enumerable:!0,get:o(function(){return Ha.MessageStrategy},"get")});var yit=Xd();tt.RAL=yit.default});var o2e=nr(YG=>{"use strict";Object.defineProperty(YG,"__esModule",{value:!0});var Vu=DA(),RA=class t extends Vu.AbstractMessageBuffer{static{o(this,"MessageBuffer")}constructor(e="utf-8"){super(e),this.asciiDecoder=new TextDecoder("ascii")}emptyBuffer(){return t.emptyBuffer}fromString(e,r){return new TextEncoder().encode(e)}toString(e,r){return r==="ascii"?this.asciiDecoder.decode(e):new TextDecoder(r).decode(e)}asNative(e,r){return r===void 0?e:e.slice(0,r)}allocNative(e){return new Uint8Array(e)}};RA.emptyBuffer=new Uint8Array(0);var UG=class{static{o(this,"ReadableStreamWrapper")}constructor(e){this.socket=e,this._onData=new Vu.Emitter,this._messageListener=r=>{r.data.arrayBuffer().then(i=>{this._onData.fire(new Uint8Array(i))},()=>{(0,Vu.RAL)().console.error("Converting blob to array buffer failed.")})},this.socket.addEventListener("message",this._messageListener)}onClose(e){return this.socket.addEventListener("close",e),Vu.Disposable.create(()=>this.socket.removeEventListener("close",e))}onError(e){return this.socket.addEventListener("error",e),Vu.Disposable.create(()=>this.socket.removeEventListener("error",e))}onEnd(e){return this.socket.addEventListener("end",e),Vu.Disposable.create(()=>this.socket.removeEventListener("end",e))}onData(e){return this._onData.event(e)}},WG=class{static{o(this,"WritableStreamWrapper")}constructor(e){this.socket=e}onClose(e){return this.socket.addEventListener("close",e),Vu.Disposable.create(()=>this.socket.removeEventListener("close",e))}onError(e){return this.socket.addEventListener("error",e),Vu.Disposable.create(()=>this.socket.removeEventListener("error",e))}onEnd(e){return this.socket.addEventListener("end",e),Vu.Disposable.create(()=>this.socket.removeEventListener("end",e))}write(e,r){if(typeof e=="string"){if(r!==void 0&&r!=="utf-8")throw new Error(`In a Browser environments only utf-8 text encoding is supported. But got encoding: ${r}`);this.socket.send(e)}else this.socket.send(e);return Promise.resolve()}end(){this.socket.close()}},vit=new TextEncoder,s2e=Object.freeze({messageBuffer:Object.freeze({create:o(t=>new RA(t),"create")}),applicationJson:Object.freeze({encoder:Object.freeze({name:"application/json",encode:o((t,e)=>{if(e.charset!=="utf-8")throw new Error(`In a Browser environments only utf-8 text encoding is supported. But got encoding: ${e.charset}`);return Promise.resolve(vit.encode(JSON.stringify(t,void 0,0)))},"encode")}),decoder:Object.freeze({name:"application/json",decode:o((t,e)=>{if(!(t instanceof Uint8Array))throw new Error("In a Browser environments only Uint8Arrays are supported.");return Promise.resolve(JSON.parse(new TextDecoder(e.charset).decode(t)))},"decode")})}),stream:Object.freeze({asReadableStream:o(t=>new UG(t),"asReadableStream"),asWritableStream:o(t=>new WG(t),"asWritableStream")}),console,timer:Object.freeze({setTimeout(t,e,...r){let n=setTimeout(t,e,...r);return{dispose:o(()=>clearTimeout(n),"dispose")}},setImmediate(t,...e){let r=setTimeout(t,0,...e);return{dispose:o(()=>clearTimeout(r),"dispose")}},setInterval(t,e,...r){let n=setInterval(t,e,...r);return{dispose:o(()=>clearInterval(n),"dispose")}}})});function HG(){return s2e}o(HG,"RIL");(function(t){function e(){Vu.RAL.install(s2e)}o(e,"install"),t.install=e})(HG||(HG={}));YG.default=HG});var Nm=nr(nl=>{"use strict";var xit=nl&&nl.__createBinding||(Object.create?(function(t,e,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(e,r);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:o(function(){return e[r]},"get")}),Object.defineProperty(t,n,i)}):(function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]})),bit=nl&&nl.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&xit(e,t,r)};Object.defineProperty(nl,"__esModule",{value:!0});nl.createMessageConnection=nl.BrowserMessageWriter=nl.BrowserMessageReader=void 0;var Tit=o2e();Tit.default.install();var pv=DA();bit(DA(),nl);var jG=class extends pv.AbstractMessageReader{static{o(this,"BrowserMessageReader")}constructor(e){super(),this._onData=new pv.Emitter,this._messageListener=r=>{this._onData.fire(r.data)},e.addEventListener("error",r=>this.fireError(r)),e.onmessage=this._messageListener}listen(e){return this._onData.event(e)}};nl.BrowserMessageReader=jG;var XG=class extends pv.AbstractMessageWriter{static{o(this,"BrowserMessageWriter")}constructor(e){super(),this.port=e,this.errorCount=0,e.addEventListener("error",r=>this.fireError(r))}write(e){try{return this.port.postMessage(e),Promise.resolve()}catch(r){return this.handleError(r,e),Promise.reject(r)}}handleError(e,r){this.errorCount++,this.fireError(e,r,this.errorCount)}end(){}};nl.BrowserMessageWriter=XG;function wit(t,e,r,n){return r===void 0&&(r=pv.NullLogger),pv.ConnectionStrategy.is(n)&&(n={connectionStrategy:n}),(0,pv.createMessageConnection)(t,e,r,n)}o(wit,"createMessageConnection");nl.createMessageConnection=wit});var KG=nr((tyr,l2e)=>{"use strict";l2e.exports=Nm()});var mi=nr(Co=>{"use strict";Object.defineProperty(Co,"__esModule",{value:!0});Co.ProtocolNotificationType=Co.ProtocolNotificationType0=Co.ProtocolRequestType=Co.ProtocolRequestType0=Co.RegistrationType=Co.MessageDirection=void 0;var mv=Nm(),c2e;(function(t){t.clientToServer="clientToServer",t.serverToClient="serverToClient",t.both="both"})(c2e||(Co.MessageDirection=c2e={}));var QG=class{static{o(this,"RegistrationType")}constructor(e){this.method=e}};Co.RegistrationType=QG;var ZG=class extends mv.RequestType0{static{o(this,"ProtocolRequestType0")}constructor(e){super(e)}};Co.ProtocolRequestType0=ZG;var JG=class extends mv.RequestType{static{o(this,"ProtocolRequestType")}constructor(e){super(e,mv.ParameterStructures.byName)}};Co.ProtocolRequestType=JG;var eV=class extends mv.NotificationType0{static{o(this,"ProtocolNotificationType0")}constructor(e){super(e)}};Co.ProtocolNotificationType0=eV;var tV=class extends mv.NotificationType{static{o(this,"ProtocolNotificationType")}constructor(e){super(e,mv.ParameterStructures.byName)}};Co.ProtocolNotificationType=tV});var LA=nr(Yi=>{"use strict";Object.defineProperty(Yi,"__esModule",{value:!0});Yi.objectLiteral=Yi.typedArray=Yi.stringArray=Yi.array=Yi.func=Yi.error=Yi.number=Yi.string=Yi.boolean=void 0;function kit(t){return t===!0||t===!1}o(kit,"boolean");Yi.boolean=kit;function u2e(t){return typeof t=="string"||t instanceof String}o(u2e,"string");Yi.string=u2e;function Eit(t){return typeof t=="number"||t instanceof Number}o(Eit,"number");Yi.number=Eit;function Sit(t){return t instanceof Error}o(Sit,"error");Yi.error=Sit;function Cit(t){return typeof t=="function"}o(Cit,"func");Yi.func=Cit;function h2e(t){return Array.isArray(t)}o(h2e,"array");Yi.array=h2e;function Ait(t){return h2e(t)&&t.every(e=>u2e(e))}o(Ait,"stringArray");Yi.stringArray=Ait;function _it(t,e){return Array.isArray(t)&&t.every(e)}o(_it,"typedArray");Yi.typedArray=_it;function Dit(t){return t!==null&&typeof t=="object"}o(Dit,"objectLiteral");Yi.objectLiteral=Dit});var p2e=nr(NA=>{"use strict";Object.defineProperty(NA,"__esModule",{value:!0});NA.ImplementationRequest=void 0;var f2e=mi(),d2e;(function(t){t.method="textDocument/implementation",t.messageDirection=f2e.MessageDirection.clientToServer,t.type=new f2e.ProtocolRequestType(t.method)})(d2e||(NA.ImplementationRequest=d2e={}))});var y2e=nr(MA=>{"use strict";Object.defineProperty(MA,"__esModule",{value:!0});MA.TypeDefinitionRequest=void 0;var m2e=mi(),g2e;(function(t){t.method="textDocument/typeDefinition",t.messageDirection=m2e.MessageDirection.clientToServer,t.type=new m2e.ProtocolRequestType(t.method)})(g2e||(MA.TypeDefinitionRequest=g2e={}))});var b2e=nr(gv=>{"use strict";Object.defineProperty(gv,"__esModule",{value:!0});gv.DidChangeWorkspaceFoldersNotification=gv.WorkspaceFoldersRequest=void 0;var IA=mi(),v2e;(function(t){t.method="workspace/workspaceFolders",t.messageDirection=IA.MessageDirection.serverToClient,t.type=new IA.ProtocolRequestType0(t.method)})(v2e||(gv.WorkspaceFoldersRequest=v2e={}));var x2e;(function(t){t.method="workspace/didChangeWorkspaceFolders",t.messageDirection=IA.MessageDirection.clientToServer,t.type=new IA.ProtocolNotificationType(t.method)})(x2e||(gv.DidChangeWorkspaceFoldersNotification=x2e={}))});var k2e=nr(OA=>{"use strict";Object.defineProperty(OA,"__esModule",{value:!0});OA.ConfigurationRequest=void 0;var T2e=mi(),w2e;(function(t){t.method="workspace/configuration",t.messageDirection=T2e.MessageDirection.serverToClient,t.type=new T2e.ProtocolRequestType(t.method)})(w2e||(OA.ConfigurationRequest=w2e={}))});var C2e=nr(yv=>{"use strict";Object.defineProperty(yv,"__esModule",{value:!0});yv.ColorPresentationRequest=yv.DocumentColorRequest=void 0;var PA=mi(),E2e;(function(t){t.method="textDocument/documentColor",t.messageDirection=PA.MessageDirection.clientToServer,t.type=new PA.ProtocolRequestType(t.method)})(E2e||(yv.DocumentColorRequest=E2e={}));var S2e;(function(t){t.method="textDocument/colorPresentation",t.messageDirection=PA.MessageDirection.clientToServer,t.type=new PA.ProtocolRequestType(t.method)})(S2e||(yv.ColorPresentationRequest=S2e={}))});var D2e=nr(vv=>{"use strict";Object.defineProperty(vv,"__esModule",{value:!0});vv.FoldingRangeRefreshRequest=vv.FoldingRangeRequest=void 0;var BA=mi(),A2e;(function(t){t.method="textDocument/foldingRange",t.messageDirection=BA.MessageDirection.clientToServer,t.type=new BA.ProtocolRequestType(t.method)})(A2e||(vv.FoldingRangeRequest=A2e={}));var _2e;(function(t){t.method="workspace/foldingRange/refresh",t.messageDirection=BA.MessageDirection.serverToClient,t.type=new BA.ProtocolRequestType0(t.method)})(_2e||(vv.FoldingRangeRefreshRequest=_2e={}))});var N2e=nr(FA=>{"use strict";Object.defineProperty(FA,"__esModule",{value:!0});FA.DeclarationRequest=void 0;var R2e=mi(),L2e;(function(t){t.method="textDocument/declaration",t.messageDirection=R2e.MessageDirection.clientToServer,t.type=new R2e.ProtocolRequestType(t.method)})(L2e||(FA.DeclarationRequest=L2e={}))});var O2e=nr($A=>{"use strict";Object.defineProperty($A,"__esModule",{value:!0});$A.SelectionRangeRequest=void 0;var M2e=mi(),I2e;(function(t){t.method="textDocument/selectionRange",t.messageDirection=M2e.MessageDirection.clientToServer,t.type=new M2e.ProtocolRequestType(t.method)})(I2e||($A.SelectionRangeRequest=I2e={}))});var $2e=nr(ep=>{"use strict";Object.defineProperty(ep,"__esModule",{value:!0});ep.WorkDoneProgressCancelNotification=ep.WorkDoneProgressCreateRequest=ep.WorkDoneProgress=void 0;var Rit=Nm(),zA=mi(),P2e;(function(t){t.type=new Rit.ProgressType;function e(r){return r===t.type}o(e,"is"),t.is=e})(P2e||(ep.WorkDoneProgress=P2e={}));var B2e;(function(t){t.method="window/workDoneProgress/create",t.messageDirection=zA.MessageDirection.serverToClient,t.type=new zA.ProtocolRequestType(t.method)})(B2e||(ep.WorkDoneProgressCreateRequest=B2e={}));var F2e;(function(t){t.method="window/workDoneProgress/cancel",t.messageDirection=zA.MessageDirection.clientToServer,t.type=new zA.ProtocolNotificationType(t.method)})(F2e||(ep.WorkDoneProgressCancelNotification=F2e={}))});var q2e=nr(tp=>{"use strict";Object.defineProperty(tp,"__esModule",{value:!0});tp.CallHierarchyOutgoingCallsRequest=tp.CallHierarchyIncomingCallsRequest=tp.CallHierarchyPrepareRequest=void 0;var xv=mi(),z2e;(function(t){t.method="textDocument/prepareCallHierarchy",t.messageDirection=xv.MessageDirection.clientToServer,t.type=new xv.ProtocolRequestType(t.method)})(z2e||(tp.CallHierarchyPrepareRequest=z2e={}));var G2e;(function(t){t.method="callHierarchy/incomingCalls",t.messageDirection=xv.MessageDirection.clientToServer,t.type=new xv.ProtocolRequestType(t.method)})(G2e||(tp.CallHierarchyIncomingCallsRequest=G2e={}));var V2e;(function(t){t.method="callHierarchy/outgoingCalls",t.messageDirection=xv.MessageDirection.clientToServer,t.type=new xv.ProtocolRequestType(t.method)})(V2e||(tp.CallHierarchyOutgoingCallsRequest=V2e={}))});var X2e=nr(Ao=>{"use strict";Object.defineProperty(Ao,"__esModule",{value:!0});Ao.SemanticTokensRefreshRequest=Ao.SemanticTokensRangeRequest=Ao.SemanticTokensDeltaRequest=Ao.SemanticTokensRequest=Ao.SemanticTokensRegistrationType=Ao.TokenFormat=void 0;var tf=mi(),U2e;(function(t){t.Relative="relative"})(U2e||(Ao.TokenFormat=U2e={}));var G4;(function(t){t.method="textDocument/semanticTokens",t.type=new tf.RegistrationType(t.method)})(G4||(Ao.SemanticTokensRegistrationType=G4={}));var W2e;(function(t){t.method="textDocument/semanticTokens/full",t.messageDirection=tf.MessageDirection.clientToServer,t.type=new tf.ProtocolRequestType(t.method),t.registrationMethod=G4.method})(W2e||(Ao.SemanticTokensRequest=W2e={}));var H2e;(function(t){t.method="textDocument/semanticTokens/full/delta",t.messageDirection=tf.MessageDirection.clientToServer,t.type=new tf.ProtocolRequestType(t.method),t.registrationMethod=G4.method})(H2e||(Ao.SemanticTokensDeltaRequest=H2e={}));var Y2e;(function(t){t.method="textDocument/semanticTokens/range",t.messageDirection=tf.MessageDirection.clientToServer,t.type=new tf.ProtocolRequestType(t.method),t.registrationMethod=G4.method})(Y2e||(Ao.SemanticTokensRangeRequest=Y2e={}));var j2e;(function(t){t.method="workspace/semanticTokens/refresh",t.messageDirection=tf.MessageDirection.serverToClient,t.type=new tf.ProtocolRequestType0(t.method)})(j2e||(Ao.SemanticTokensRefreshRequest=j2e={}))});var Z2e=nr(GA=>{"use strict";Object.defineProperty(GA,"__esModule",{value:!0});GA.ShowDocumentRequest=void 0;var K2e=mi(),Q2e;(function(t){t.method="window/showDocument",t.messageDirection=K2e.MessageDirection.serverToClient,t.type=new K2e.ProtocolRequestType(t.method)})(Q2e||(GA.ShowDocumentRequest=Q2e={}))});var txe=nr(VA=>{"use strict";Object.defineProperty(VA,"__esModule",{value:!0});VA.LinkedEditingRangeRequest=void 0;var J2e=mi(),exe;(function(t){t.method="textDocument/linkedEditingRange",t.messageDirection=J2e.MessageDirection.clientToServer,t.type=new J2e.ProtocolRequestType(t.method)})(exe||(VA.LinkedEditingRangeRequest=exe={}))});var cxe=nr(ps=>{"use strict";Object.defineProperty(ps,"__esModule",{value:!0});ps.WillDeleteFilesRequest=ps.DidDeleteFilesNotification=ps.DidRenameFilesNotification=ps.WillRenameFilesRequest=ps.DidCreateFilesNotification=ps.WillCreateFilesRequest=ps.FileOperationPatternKind=void 0;var Gl=mi(),rxe;(function(t){t.file="file",t.folder="folder"})(rxe||(ps.FileOperationPatternKind=rxe={}));var nxe;(function(t){t.method="workspace/willCreateFiles",t.messageDirection=Gl.MessageDirection.clientToServer,t.type=new Gl.ProtocolRequestType(t.method)})(nxe||(ps.WillCreateFilesRequest=nxe={}));var ixe;(function(t){t.method="workspace/didCreateFiles",t.messageDirection=Gl.MessageDirection.clientToServer,t.type=new Gl.ProtocolNotificationType(t.method)})(ixe||(ps.DidCreateFilesNotification=ixe={}));var axe;(function(t){t.method="workspace/willRenameFiles",t.messageDirection=Gl.MessageDirection.clientToServer,t.type=new Gl.ProtocolRequestType(t.method)})(axe||(ps.WillRenameFilesRequest=axe={}));var sxe;(function(t){t.method="workspace/didRenameFiles",t.messageDirection=Gl.MessageDirection.clientToServer,t.type=new Gl.ProtocolNotificationType(t.method)})(sxe||(ps.DidRenameFilesNotification=sxe={}));var oxe;(function(t){t.method="workspace/didDeleteFiles",t.messageDirection=Gl.MessageDirection.clientToServer,t.type=new Gl.ProtocolNotificationType(t.method)})(oxe||(ps.DidDeleteFilesNotification=oxe={}));var lxe;(function(t){t.method="workspace/willDeleteFiles",t.messageDirection=Gl.MessageDirection.clientToServer,t.type=new Gl.ProtocolRequestType(t.method)})(lxe||(ps.WillDeleteFilesRequest=lxe={}))});var pxe=nr(rp=>{"use strict";Object.defineProperty(rp,"__esModule",{value:!0});rp.MonikerRequest=rp.MonikerKind=rp.UniquenessLevel=void 0;var uxe=mi(),hxe;(function(t){t.document="document",t.project="project",t.group="group",t.scheme="scheme",t.global="global"})(hxe||(rp.UniquenessLevel=hxe={}));var fxe;(function(t){t.$import="import",t.$export="export",t.local="local"})(fxe||(rp.MonikerKind=fxe={}));var dxe;(function(t){t.method="textDocument/moniker",t.messageDirection=uxe.MessageDirection.clientToServer,t.type=new uxe.ProtocolRequestType(t.method)})(dxe||(rp.MonikerRequest=dxe={}))});var vxe=nr(np=>{"use strict";Object.defineProperty(np,"__esModule",{value:!0});np.TypeHierarchySubtypesRequest=np.TypeHierarchySupertypesRequest=np.TypeHierarchyPrepareRequest=void 0;var bv=mi(),mxe;(function(t){t.method="textDocument/prepareTypeHierarchy",t.messageDirection=bv.MessageDirection.clientToServer,t.type=new bv.ProtocolRequestType(t.method)})(mxe||(np.TypeHierarchyPrepareRequest=mxe={}));var gxe;(function(t){t.method="typeHierarchy/supertypes",t.messageDirection=bv.MessageDirection.clientToServer,t.type=new bv.ProtocolRequestType(t.method)})(gxe||(np.TypeHierarchySupertypesRequest=gxe={}));var yxe;(function(t){t.method="typeHierarchy/subtypes",t.messageDirection=bv.MessageDirection.clientToServer,t.type=new bv.ProtocolRequestType(t.method)})(yxe||(np.TypeHierarchySubtypesRequest=yxe={}))});var Txe=nr(Tv=>{"use strict";Object.defineProperty(Tv,"__esModule",{value:!0});Tv.InlineValueRefreshRequest=Tv.InlineValueRequest=void 0;var qA=mi(),xxe;(function(t){t.method="textDocument/inlineValue",t.messageDirection=qA.MessageDirection.clientToServer,t.type=new qA.ProtocolRequestType(t.method)})(xxe||(Tv.InlineValueRequest=xxe={}));var bxe;(function(t){t.method="workspace/inlineValue/refresh",t.messageDirection=qA.MessageDirection.serverToClient,t.type=new qA.ProtocolRequestType0(t.method)})(bxe||(Tv.InlineValueRefreshRequest=bxe={}))});var Sxe=nr(ip=>{"use strict";Object.defineProperty(ip,"__esModule",{value:!0});ip.InlayHintRefreshRequest=ip.InlayHintResolveRequest=ip.InlayHintRequest=void 0;var wv=mi(),wxe;(function(t){t.method="textDocument/inlayHint",t.messageDirection=wv.MessageDirection.clientToServer,t.type=new wv.ProtocolRequestType(t.method)})(wxe||(ip.InlayHintRequest=wxe={}));var kxe;(function(t){t.method="inlayHint/resolve",t.messageDirection=wv.MessageDirection.clientToServer,t.type=new wv.ProtocolRequestType(t.method)})(kxe||(ip.InlayHintResolveRequest=kxe={}));var Exe;(function(t){t.method="workspace/inlayHint/refresh",t.messageDirection=wv.MessageDirection.serverToClient,t.type=new wv.ProtocolRequestType0(t.method)})(Exe||(ip.InlayHintRefreshRequest=Exe={}))});var Nxe=nr(Vl=>{"use strict";Object.defineProperty(Vl,"__esModule",{value:!0});Vl.DiagnosticRefreshRequest=Vl.WorkspaceDiagnosticRequest=Vl.DocumentDiagnosticRequest=Vl.DocumentDiagnosticReportKind=Vl.DiagnosticServerCancellationData=void 0;var Lxe=Nm(),Lit=LA(),kv=mi(),Cxe;(function(t){function e(r){let n=r;return n&&Lit.boolean(n.retriggerRequest)}o(e,"is"),t.is=e})(Cxe||(Vl.DiagnosticServerCancellationData=Cxe={}));var Axe;(function(t){t.Full="full",t.Unchanged="unchanged"})(Axe||(Vl.DocumentDiagnosticReportKind=Axe={}));var _xe;(function(t){t.method="textDocument/diagnostic",t.messageDirection=kv.MessageDirection.clientToServer,t.type=new kv.ProtocolRequestType(t.method),t.partialResult=new Lxe.ProgressType})(_xe||(Vl.DocumentDiagnosticRequest=_xe={}));var Dxe;(function(t){t.method="workspace/diagnostic",t.messageDirection=kv.MessageDirection.clientToServer,t.type=new kv.ProtocolRequestType(t.method),t.partialResult=new Lxe.ProgressType})(Dxe||(Vl.WorkspaceDiagnosticRequest=Dxe={}));var Rxe;(function(t){t.method="workspace/diagnostic/refresh",t.messageDirection=kv.MessageDirection.serverToClient,t.type=new kv.ProtocolRequestType0(t.method)})(Rxe||(Vl.DiagnosticRefreshRequest=Rxe={}))});var $xe=nr(Mi=>{"use strict";Object.defineProperty(Mi,"__esModule",{value:!0});Mi.DidCloseNotebookDocumentNotification=Mi.DidSaveNotebookDocumentNotification=Mi.DidChangeNotebookDocumentNotification=Mi.NotebookCellArrayChange=Mi.DidOpenNotebookDocumentNotification=Mi.NotebookDocumentSyncRegistrationType=Mi.NotebookDocument=Mi.NotebookCell=Mi.ExecutionSummary=Mi.NotebookCellKind=void 0;var V4=(Zy(),G3(K6)),Ic=LA(),qu=mi(),rV;(function(t){t.Markup=1,t.Code=2;function e(r){return r===1||r===2}o(e,"is"),t.is=e})(rV||(Mi.NotebookCellKind=rV={}));var nV;(function(t){function e(i,a){let s={executionOrder:i};return(a===!0||a===!1)&&(s.success=a),s}o(e,"create"),t.create=e;function r(i){let a=i;return Ic.objectLiteral(a)&&V4.uinteger.is(a.executionOrder)&&(a.success===void 0||Ic.boolean(a.success))}o(r,"is"),t.is=r;function n(i,a){return i===a?!0:i==null||a===null||a===void 0?!1:i.executionOrder===a.executionOrder&&i.success===a.success}o(n,"equals"),t.equals=n})(nV||(Mi.ExecutionSummary=nV={}));var UA;(function(t){function e(a,s){return{kind:a,document:s}}o(e,"create"),t.create=e;function r(a){let s=a;return Ic.objectLiteral(s)&&rV.is(s.kind)&&V4.DocumentUri.is(s.document)&&(s.metadata===void 0||Ic.objectLiteral(s.metadata))}o(r,"is"),t.is=r;function n(a,s){let l=new Set;return a.document!==s.document&&l.add("document"),a.kind!==s.kind&&l.add("kind"),a.executionSummary!==s.executionSummary&&l.add("executionSummary"),(a.metadata!==void 0||s.metadata!==void 0)&&!i(a.metadata,s.metadata)&&l.add("metadata"),(a.executionSummary!==void 0||s.executionSummary!==void 0)&&!nV.equals(a.executionSummary,s.executionSummary)&&l.add("executionSummary"),l}o(n,"diff"),t.diff=n;function i(a,s){if(a===s)return!0;if(a==null||s===null||s===void 0||typeof a!=typeof s||typeof a!="object")return!1;let l=Array.isArray(a),u=Array.isArray(s);if(l!==u)return!1;if(l&&u){if(a.length!==s.length)return!1;for(let h=0;h{"use strict";Object.defineProperty(WA,"__esModule",{value:!0});WA.InlineCompletionRequest=void 0;var zxe=mi(),Gxe;(function(t){t.method="textDocument/inlineCompletion",t.messageDirection=zxe.MessageDirection.clientToServer,t.type=new zxe.ProtocolRequestType(t.method)})(Gxe||(WA.InlineCompletionRequest=Gxe={}))});var tTe=nr(Ce=>{"use strict";Object.defineProperty(Ce,"__esModule",{value:!0});Ce.WorkspaceSymbolRequest=Ce.CodeActionResolveRequest=Ce.CodeActionRequest=Ce.DocumentSymbolRequest=Ce.DocumentHighlightRequest=Ce.ReferencesRequest=Ce.DefinitionRequest=Ce.SignatureHelpRequest=Ce.SignatureHelpTriggerKind=Ce.HoverRequest=Ce.CompletionResolveRequest=Ce.CompletionRequest=Ce.CompletionTriggerKind=Ce.PublishDiagnosticsNotification=Ce.WatchKind=Ce.RelativePattern=Ce.FileChangeType=Ce.DidChangeWatchedFilesNotification=Ce.WillSaveTextDocumentWaitUntilRequest=Ce.WillSaveTextDocumentNotification=Ce.TextDocumentSaveReason=Ce.DidSaveTextDocumentNotification=Ce.DidCloseTextDocumentNotification=Ce.DidChangeTextDocumentNotification=Ce.TextDocumentContentChangeEvent=Ce.DidOpenTextDocumentNotification=Ce.TextDocumentSyncKind=Ce.TelemetryEventNotification=Ce.LogMessageNotification=Ce.ShowMessageRequest=Ce.ShowMessageNotification=Ce.MessageType=Ce.DidChangeConfigurationNotification=Ce.ExitNotification=Ce.ShutdownRequest=Ce.InitializedNotification=Ce.InitializeErrorCodes=Ce.InitializeRequest=Ce.WorkDoneProgressOptions=Ce.TextDocumentRegistrationOptions=Ce.StaticRegistrationOptions=Ce.PositionEncodingKind=Ce.FailureHandlingKind=Ce.ResourceOperationKind=Ce.UnregistrationRequest=Ce.RegistrationRequest=Ce.DocumentSelector=Ce.NotebookCellTextDocumentFilter=Ce.NotebookDocumentFilter=Ce.TextDocumentFilter=void 0;Ce.MonikerRequest=Ce.MonikerKind=Ce.UniquenessLevel=Ce.WillDeleteFilesRequest=Ce.DidDeleteFilesNotification=Ce.WillRenameFilesRequest=Ce.DidRenameFilesNotification=Ce.WillCreateFilesRequest=Ce.DidCreateFilesNotification=Ce.FileOperationPatternKind=Ce.LinkedEditingRangeRequest=Ce.ShowDocumentRequest=Ce.SemanticTokensRegistrationType=Ce.SemanticTokensRefreshRequest=Ce.SemanticTokensRangeRequest=Ce.SemanticTokensDeltaRequest=Ce.SemanticTokensRequest=Ce.TokenFormat=Ce.CallHierarchyPrepareRequest=Ce.CallHierarchyOutgoingCallsRequest=Ce.CallHierarchyIncomingCallsRequest=Ce.WorkDoneProgressCancelNotification=Ce.WorkDoneProgressCreateRequest=Ce.WorkDoneProgress=Ce.SelectionRangeRequest=Ce.DeclarationRequest=Ce.FoldingRangeRefreshRequest=Ce.FoldingRangeRequest=Ce.ColorPresentationRequest=Ce.DocumentColorRequest=Ce.ConfigurationRequest=Ce.DidChangeWorkspaceFoldersNotification=Ce.WorkspaceFoldersRequest=Ce.TypeDefinitionRequest=Ce.ImplementationRequest=Ce.ApplyWorkspaceEditRequest=Ce.ExecuteCommandRequest=Ce.PrepareRenameRequest=Ce.RenameRequest=Ce.PrepareSupportDefaultBehavior=Ce.DocumentOnTypeFormattingRequest=Ce.DocumentRangesFormattingRequest=Ce.DocumentRangeFormattingRequest=Ce.DocumentFormattingRequest=Ce.DocumentLinkResolveRequest=Ce.DocumentLinkRequest=Ce.CodeLensRefreshRequest=Ce.CodeLensResolveRequest=Ce.CodeLensRequest=Ce.WorkspaceSymbolResolveRequest=void 0;Ce.InlineCompletionRequest=Ce.DidCloseNotebookDocumentNotification=Ce.DidSaveNotebookDocumentNotification=Ce.DidChangeNotebookDocumentNotification=Ce.NotebookCellArrayChange=Ce.DidOpenNotebookDocumentNotification=Ce.NotebookDocumentSyncRegistrationType=Ce.NotebookDocument=Ce.NotebookCell=Ce.ExecutionSummary=Ce.NotebookCellKind=Ce.DiagnosticRefreshRequest=Ce.WorkspaceDiagnosticRequest=Ce.DocumentDiagnosticRequest=Ce.DocumentDiagnosticReportKind=Ce.DiagnosticServerCancellationData=Ce.InlayHintRefreshRequest=Ce.InlayHintResolveRequest=Ce.InlayHintRequest=Ce.InlineValueRefreshRequest=Ce.InlineValueRequest=Ce.TypeHierarchySupertypesRequest=Ce.TypeHierarchySubtypesRequest=Ce.TypeHierarchyPrepareRequest=void 0;var Et=mi(),qxe=(Zy(),G3(K6)),Aa=LA(),Nit=p2e();Object.defineProperty(Ce,"ImplementationRequest",{enumerable:!0,get:o(function(){return Nit.ImplementationRequest},"get")});var Mit=y2e();Object.defineProperty(Ce,"TypeDefinitionRequest",{enumerable:!0,get:o(function(){return Mit.TypeDefinitionRequest},"get")});var Qbe=b2e();Object.defineProperty(Ce,"WorkspaceFoldersRequest",{enumerable:!0,get:o(function(){return Qbe.WorkspaceFoldersRequest},"get")});Object.defineProperty(Ce,"DidChangeWorkspaceFoldersNotification",{enumerable:!0,get:o(function(){return Qbe.DidChangeWorkspaceFoldersNotification},"get")});var Iit=k2e();Object.defineProperty(Ce,"ConfigurationRequest",{enumerable:!0,get:o(function(){return Iit.ConfigurationRequest},"get")});var Zbe=C2e();Object.defineProperty(Ce,"DocumentColorRequest",{enumerable:!0,get:o(function(){return Zbe.DocumentColorRequest},"get")});Object.defineProperty(Ce,"ColorPresentationRequest",{enumerable:!0,get:o(function(){return Zbe.ColorPresentationRequest},"get")});var Jbe=D2e();Object.defineProperty(Ce,"FoldingRangeRequest",{enumerable:!0,get:o(function(){return Jbe.FoldingRangeRequest},"get")});Object.defineProperty(Ce,"FoldingRangeRefreshRequest",{enumerable:!0,get:o(function(){return Jbe.FoldingRangeRefreshRequest},"get")});var Oit=N2e();Object.defineProperty(Ce,"DeclarationRequest",{enumerable:!0,get:o(function(){return Oit.DeclarationRequest},"get")});var Pit=O2e();Object.defineProperty(Ce,"SelectionRangeRequest",{enumerable:!0,get:o(function(){return Pit.SelectionRangeRequest},"get")});var lV=$2e();Object.defineProperty(Ce,"WorkDoneProgress",{enumerable:!0,get:o(function(){return lV.WorkDoneProgress},"get")});Object.defineProperty(Ce,"WorkDoneProgressCreateRequest",{enumerable:!0,get:o(function(){return lV.WorkDoneProgressCreateRequest},"get")});Object.defineProperty(Ce,"WorkDoneProgressCancelNotification",{enumerable:!0,get:o(function(){return lV.WorkDoneProgressCancelNotification},"get")});var cV=q2e();Object.defineProperty(Ce,"CallHierarchyIncomingCallsRequest",{enumerable:!0,get:o(function(){return cV.CallHierarchyIncomingCallsRequest},"get")});Object.defineProperty(Ce,"CallHierarchyOutgoingCallsRequest",{enumerable:!0,get:o(function(){return cV.CallHierarchyOutgoingCallsRequest},"get")});Object.defineProperty(Ce,"CallHierarchyPrepareRequest",{enumerable:!0,get:o(function(){return cV.CallHierarchyPrepareRequest},"get")});var Sv=X2e();Object.defineProperty(Ce,"TokenFormat",{enumerable:!0,get:o(function(){return Sv.TokenFormat},"get")});Object.defineProperty(Ce,"SemanticTokensRequest",{enumerable:!0,get:o(function(){return Sv.SemanticTokensRequest},"get")});Object.defineProperty(Ce,"SemanticTokensDeltaRequest",{enumerable:!0,get:o(function(){return Sv.SemanticTokensDeltaRequest},"get")});Object.defineProperty(Ce,"SemanticTokensRangeRequest",{enumerable:!0,get:o(function(){return Sv.SemanticTokensRangeRequest},"get")});Object.defineProperty(Ce,"SemanticTokensRefreshRequest",{enumerable:!0,get:o(function(){return Sv.SemanticTokensRefreshRequest},"get")});Object.defineProperty(Ce,"SemanticTokensRegistrationType",{enumerable:!0,get:o(function(){return Sv.SemanticTokensRegistrationType},"get")});var Bit=Z2e();Object.defineProperty(Ce,"ShowDocumentRequest",{enumerable:!0,get:o(function(){return Bit.ShowDocumentRequest},"get")});var Fit=txe();Object.defineProperty(Ce,"LinkedEditingRangeRequest",{enumerable:!0,get:o(function(){return Fit.LinkedEditingRangeRequest},"get")});var Mm=cxe();Object.defineProperty(Ce,"FileOperationPatternKind",{enumerable:!0,get:o(function(){return Mm.FileOperationPatternKind},"get")});Object.defineProperty(Ce,"DidCreateFilesNotification",{enumerable:!0,get:o(function(){return Mm.DidCreateFilesNotification},"get")});Object.defineProperty(Ce,"WillCreateFilesRequest",{enumerable:!0,get:o(function(){return Mm.WillCreateFilesRequest},"get")});Object.defineProperty(Ce,"DidRenameFilesNotification",{enumerable:!0,get:o(function(){return Mm.DidRenameFilesNotification},"get")});Object.defineProperty(Ce,"WillRenameFilesRequest",{enumerable:!0,get:o(function(){return Mm.WillRenameFilesRequest},"get")});Object.defineProperty(Ce,"DidDeleteFilesNotification",{enumerable:!0,get:o(function(){return Mm.DidDeleteFilesNotification},"get")});Object.defineProperty(Ce,"WillDeleteFilesRequest",{enumerable:!0,get:o(function(){return Mm.WillDeleteFilesRequest},"get")});var uV=pxe();Object.defineProperty(Ce,"UniquenessLevel",{enumerable:!0,get:o(function(){return uV.UniquenessLevel},"get")});Object.defineProperty(Ce,"MonikerKind",{enumerable:!0,get:o(function(){return uV.MonikerKind},"get")});Object.defineProperty(Ce,"MonikerRequest",{enumerable:!0,get:o(function(){return uV.MonikerRequest},"get")});var hV=vxe();Object.defineProperty(Ce,"TypeHierarchyPrepareRequest",{enumerable:!0,get:o(function(){return hV.TypeHierarchyPrepareRequest},"get")});Object.defineProperty(Ce,"TypeHierarchySubtypesRequest",{enumerable:!0,get:o(function(){return hV.TypeHierarchySubtypesRequest},"get")});Object.defineProperty(Ce,"TypeHierarchySupertypesRequest",{enumerable:!0,get:o(function(){return hV.TypeHierarchySupertypesRequest},"get")});var eTe=Txe();Object.defineProperty(Ce,"InlineValueRequest",{enumerable:!0,get:o(function(){return eTe.InlineValueRequest},"get")});Object.defineProperty(Ce,"InlineValueRefreshRequest",{enumerable:!0,get:o(function(){return eTe.InlineValueRefreshRequest},"get")});var fV=Sxe();Object.defineProperty(Ce,"InlayHintRequest",{enumerable:!0,get:o(function(){return fV.InlayHintRequest},"get")});Object.defineProperty(Ce,"InlayHintResolveRequest",{enumerable:!0,get:o(function(){return fV.InlayHintResolveRequest},"get")});Object.defineProperty(Ce,"InlayHintRefreshRequest",{enumerable:!0,get:o(function(){return fV.InlayHintRefreshRequest},"get")});var q4=Nxe();Object.defineProperty(Ce,"DiagnosticServerCancellationData",{enumerable:!0,get:o(function(){return q4.DiagnosticServerCancellationData},"get")});Object.defineProperty(Ce,"DocumentDiagnosticReportKind",{enumerable:!0,get:o(function(){return q4.DocumentDiagnosticReportKind},"get")});Object.defineProperty(Ce,"DocumentDiagnosticRequest",{enumerable:!0,get:o(function(){return q4.DocumentDiagnosticRequest},"get")});Object.defineProperty(Ce,"WorkspaceDiagnosticRequest",{enumerable:!0,get:o(function(){return q4.WorkspaceDiagnosticRequest},"get")});Object.defineProperty(Ce,"DiagnosticRefreshRequest",{enumerable:!0,get:o(function(){return q4.DiagnosticRefreshRequest},"get")});var Uu=$xe();Object.defineProperty(Ce,"NotebookCellKind",{enumerable:!0,get:o(function(){return Uu.NotebookCellKind},"get")});Object.defineProperty(Ce,"ExecutionSummary",{enumerable:!0,get:o(function(){return Uu.ExecutionSummary},"get")});Object.defineProperty(Ce,"NotebookCell",{enumerable:!0,get:o(function(){return Uu.NotebookCell},"get")});Object.defineProperty(Ce,"NotebookDocument",{enumerable:!0,get:o(function(){return Uu.NotebookDocument},"get")});Object.defineProperty(Ce,"NotebookDocumentSyncRegistrationType",{enumerable:!0,get:o(function(){return Uu.NotebookDocumentSyncRegistrationType},"get")});Object.defineProperty(Ce,"DidOpenNotebookDocumentNotification",{enumerable:!0,get:o(function(){return Uu.DidOpenNotebookDocumentNotification},"get")});Object.defineProperty(Ce,"NotebookCellArrayChange",{enumerable:!0,get:o(function(){return Uu.NotebookCellArrayChange},"get")});Object.defineProperty(Ce,"DidChangeNotebookDocumentNotification",{enumerable:!0,get:o(function(){return Uu.DidChangeNotebookDocumentNotification},"get")});Object.defineProperty(Ce,"DidSaveNotebookDocumentNotification",{enumerable:!0,get:o(function(){return Uu.DidSaveNotebookDocumentNotification},"get")});Object.defineProperty(Ce,"DidCloseNotebookDocumentNotification",{enumerable:!0,get:o(function(){return Uu.DidCloseNotebookDocumentNotification},"get")});var $it=Vxe();Object.defineProperty(Ce,"InlineCompletionRequest",{enumerable:!0,get:o(function(){return $it.InlineCompletionRequest},"get")});var iV;(function(t){function e(r){let n=r;return Aa.string(n)||Aa.string(n.language)||Aa.string(n.scheme)||Aa.string(n.pattern)}o(e,"is"),t.is=e})(iV||(Ce.TextDocumentFilter=iV={}));var aV;(function(t){function e(r){let n=r;return Aa.objectLiteral(n)&&(Aa.string(n.notebookType)||Aa.string(n.scheme)||Aa.string(n.pattern))}o(e,"is"),t.is=e})(aV||(Ce.NotebookDocumentFilter=aV={}));var sV;(function(t){function e(r){let n=r;return Aa.objectLiteral(n)&&(Aa.string(n.notebook)||aV.is(n.notebook))&&(n.language===void 0||Aa.string(n.language))}o(e,"is"),t.is=e})(sV||(Ce.NotebookCellTextDocumentFilter=sV={}));var oV;(function(t){function e(r){if(!Array.isArray(r))return!1;for(let n of r)if(!Aa.string(n)&&!iV.is(n)&&!sV.is(n))return!1;return!0}o(e,"is"),t.is=e})(oV||(Ce.DocumentSelector=oV={}));var Uxe;(function(t){t.method="client/registerCapability",t.messageDirection=Et.MessageDirection.serverToClient,t.type=new Et.ProtocolRequestType(t.method)})(Uxe||(Ce.RegistrationRequest=Uxe={}));var Wxe;(function(t){t.method="client/unregisterCapability",t.messageDirection=Et.MessageDirection.serverToClient,t.type=new Et.ProtocolRequestType(t.method)})(Wxe||(Ce.UnregistrationRequest=Wxe={}));var Hxe;(function(t){t.Create="create",t.Rename="rename",t.Delete="delete"})(Hxe||(Ce.ResourceOperationKind=Hxe={}));var Yxe;(function(t){t.Abort="abort",t.Transactional="transactional",t.TextOnlyTransactional="textOnlyTransactional",t.Undo="undo"})(Yxe||(Ce.FailureHandlingKind=Yxe={}));var jxe;(function(t){t.UTF8="utf-8",t.UTF16="utf-16",t.UTF32="utf-32"})(jxe||(Ce.PositionEncodingKind=jxe={}));var Xxe;(function(t){function e(r){let n=r;return n&&Aa.string(n.id)&&n.id.length>0}o(e,"hasId"),t.hasId=e})(Xxe||(Ce.StaticRegistrationOptions=Xxe={}));var Kxe;(function(t){function e(r){let n=r;return n&&(n.documentSelector===null||oV.is(n.documentSelector))}o(e,"is"),t.is=e})(Kxe||(Ce.TextDocumentRegistrationOptions=Kxe={}));var Qxe;(function(t){function e(n){let i=n;return Aa.objectLiteral(i)&&(i.workDoneProgress===void 0||Aa.boolean(i.workDoneProgress))}o(e,"is"),t.is=e;function r(n){let i=n;return i&&Aa.boolean(i.workDoneProgress)}o(r,"hasWorkDoneProgress"),t.hasWorkDoneProgress=r})(Qxe||(Ce.WorkDoneProgressOptions=Qxe={}));var Zxe;(function(t){t.method="initialize",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(Zxe||(Ce.InitializeRequest=Zxe={}));var Jxe;(function(t){t.unknownProtocolVersion=1})(Jxe||(Ce.InitializeErrorCodes=Jxe={}));var ebe;(function(t){t.method="initialized",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolNotificationType(t.method)})(ebe||(Ce.InitializedNotification=ebe={}));var tbe;(function(t){t.method="shutdown",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType0(t.method)})(tbe||(Ce.ShutdownRequest=tbe={}));var rbe;(function(t){t.method="exit",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolNotificationType0(t.method)})(rbe||(Ce.ExitNotification=rbe={}));var nbe;(function(t){t.method="workspace/didChangeConfiguration",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolNotificationType(t.method)})(nbe||(Ce.DidChangeConfigurationNotification=nbe={}));var ibe;(function(t){t.Error=1,t.Warning=2,t.Info=3,t.Log=4,t.Debug=5})(ibe||(Ce.MessageType=ibe={}));var abe;(function(t){t.method="window/showMessage",t.messageDirection=Et.MessageDirection.serverToClient,t.type=new Et.ProtocolNotificationType(t.method)})(abe||(Ce.ShowMessageNotification=abe={}));var sbe;(function(t){t.method="window/showMessageRequest",t.messageDirection=Et.MessageDirection.serverToClient,t.type=new Et.ProtocolRequestType(t.method)})(sbe||(Ce.ShowMessageRequest=sbe={}));var obe;(function(t){t.method="window/logMessage",t.messageDirection=Et.MessageDirection.serverToClient,t.type=new Et.ProtocolNotificationType(t.method)})(obe||(Ce.LogMessageNotification=obe={}));var lbe;(function(t){t.method="telemetry/event",t.messageDirection=Et.MessageDirection.serverToClient,t.type=new Et.ProtocolNotificationType(t.method)})(lbe||(Ce.TelemetryEventNotification=lbe={}));var cbe;(function(t){t.None=0,t.Full=1,t.Incremental=2})(cbe||(Ce.TextDocumentSyncKind=cbe={}));var ube;(function(t){t.method="textDocument/didOpen",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolNotificationType(t.method)})(ube||(Ce.DidOpenTextDocumentNotification=ube={}));var hbe;(function(t){function e(n){let i=n;return i!=null&&typeof i.text=="string"&&i.range!==void 0&&(i.rangeLength===void 0||typeof i.rangeLength=="number")}o(e,"isIncremental"),t.isIncremental=e;function r(n){let i=n;return i!=null&&typeof i.text=="string"&&i.range===void 0&&i.rangeLength===void 0}o(r,"isFull"),t.isFull=r})(hbe||(Ce.TextDocumentContentChangeEvent=hbe={}));var fbe;(function(t){t.method="textDocument/didChange",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolNotificationType(t.method)})(fbe||(Ce.DidChangeTextDocumentNotification=fbe={}));var dbe;(function(t){t.method="textDocument/didClose",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolNotificationType(t.method)})(dbe||(Ce.DidCloseTextDocumentNotification=dbe={}));var pbe;(function(t){t.method="textDocument/didSave",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolNotificationType(t.method)})(pbe||(Ce.DidSaveTextDocumentNotification=pbe={}));var mbe;(function(t){t.Manual=1,t.AfterDelay=2,t.FocusOut=3})(mbe||(Ce.TextDocumentSaveReason=mbe={}));var gbe;(function(t){t.method="textDocument/willSave",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolNotificationType(t.method)})(gbe||(Ce.WillSaveTextDocumentNotification=gbe={}));var ybe;(function(t){t.method="textDocument/willSaveWaitUntil",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(ybe||(Ce.WillSaveTextDocumentWaitUntilRequest=ybe={}));var vbe;(function(t){t.method="workspace/didChangeWatchedFiles",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolNotificationType(t.method)})(vbe||(Ce.DidChangeWatchedFilesNotification=vbe={}));var xbe;(function(t){t.Created=1,t.Changed=2,t.Deleted=3})(xbe||(Ce.FileChangeType=xbe={}));var bbe;(function(t){function e(r){let n=r;return Aa.objectLiteral(n)&&(qxe.URI.is(n.baseUri)||qxe.WorkspaceFolder.is(n.baseUri))&&Aa.string(n.pattern)}o(e,"is"),t.is=e})(bbe||(Ce.RelativePattern=bbe={}));var Tbe;(function(t){t.Create=1,t.Change=2,t.Delete=4})(Tbe||(Ce.WatchKind=Tbe={}));var wbe;(function(t){t.method="textDocument/publishDiagnostics",t.messageDirection=Et.MessageDirection.serverToClient,t.type=new Et.ProtocolNotificationType(t.method)})(wbe||(Ce.PublishDiagnosticsNotification=wbe={}));var kbe;(function(t){t.Invoked=1,t.TriggerCharacter=2,t.TriggerForIncompleteCompletions=3})(kbe||(Ce.CompletionTriggerKind=kbe={}));var Ebe;(function(t){t.method="textDocument/completion",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(Ebe||(Ce.CompletionRequest=Ebe={}));var Sbe;(function(t){t.method="completionItem/resolve",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(Sbe||(Ce.CompletionResolveRequest=Sbe={}));var Cbe;(function(t){t.method="textDocument/hover",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(Cbe||(Ce.HoverRequest=Cbe={}));var Abe;(function(t){t.Invoked=1,t.TriggerCharacter=2,t.ContentChange=3})(Abe||(Ce.SignatureHelpTriggerKind=Abe={}));var _be;(function(t){t.method="textDocument/signatureHelp",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(_be||(Ce.SignatureHelpRequest=_be={}));var Dbe;(function(t){t.method="textDocument/definition",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(Dbe||(Ce.DefinitionRequest=Dbe={}));var Rbe;(function(t){t.method="textDocument/references",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(Rbe||(Ce.ReferencesRequest=Rbe={}));var Lbe;(function(t){t.method="textDocument/documentHighlight",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(Lbe||(Ce.DocumentHighlightRequest=Lbe={}));var Nbe;(function(t){t.method="textDocument/documentSymbol",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(Nbe||(Ce.DocumentSymbolRequest=Nbe={}));var Mbe;(function(t){t.method="textDocument/codeAction",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(Mbe||(Ce.CodeActionRequest=Mbe={}));var Ibe;(function(t){t.method="codeAction/resolve",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(Ibe||(Ce.CodeActionResolveRequest=Ibe={}));var Obe;(function(t){t.method="workspace/symbol",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(Obe||(Ce.WorkspaceSymbolRequest=Obe={}));var Pbe;(function(t){t.method="workspaceSymbol/resolve",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(Pbe||(Ce.WorkspaceSymbolResolveRequest=Pbe={}));var Bbe;(function(t){t.method="textDocument/codeLens",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(Bbe||(Ce.CodeLensRequest=Bbe={}));var Fbe;(function(t){t.method="codeLens/resolve",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(Fbe||(Ce.CodeLensResolveRequest=Fbe={}));var $be;(function(t){t.method="workspace/codeLens/refresh",t.messageDirection=Et.MessageDirection.serverToClient,t.type=new Et.ProtocolRequestType0(t.method)})($be||(Ce.CodeLensRefreshRequest=$be={}));var zbe;(function(t){t.method="textDocument/documentLink",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(zbe||(Ce.DocumentLinkRequest=zbe={}));var Gbe;(function(t){t.method="documentLink/resolve",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(Gbe||(Ce.DocumentLinkResolveRequest=Gbe={}));var Vbe;(function(t){t.method="textDocument/formatting",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(Vbe||(Ce.DocumentFormattingRequest=Vbe={}));var qbe;(function(t){t.method="textDocument/rangeFormatting",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(qbe||(Ce.DocumentRangeFormattingRequest=qbe={}));var Ube;(function(t){t.method="textDocument/rangesFormatting",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(Ube||(Ce.DocumentRangesFormattingRequest=Ube={}));var Wbe;(function(t){t.method="textDocument/onTypeFormatting",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(Wbe||(Ce.DocumentOnTypeFormattingRequest=Wbe={}));var Hbe;(function(t){t.Identifier=1})(Hbe||(Ce.PrepareSupportDefaultBehavior=Hbe={}));var Ybe;(function(t){t.method="textDocument/rename",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(Ybe||(Ce.RenameRequest=Ybe={}));var jbe;(function(t){t.method="textDocument/prepareRename",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(jbe||(Ce.PrepareRenameRequest=jbe={}));var Xbe;(function(t){t.method="workspace/executeCommand",t.messageDirection=Et.MessageDirection.clientToServer,t.type=new Et.ProtocolRequestType(t.method)})(Xbe||(Ce.ExecuteCommandRequest=Xbe={}));var Kbe;(function(t){t.method="workspace/applyEdit",t.messageDirection=Et.MessageDirection.serverToClient,t.type=new Et.ProtocolRequestType("workspace/applyEdit")})(Kbe||(Ce.ApplyWorkspaceEditRequest=Kbe={}))});var nTe=nr(HA=>{"use strict";Object.defineProperty(HA,"__esModule",{value:!0});HA.createProtocolConnection=void 0;var rTe=Nm();function zit(t,e,r,n){return rTe.ConnectionStrategy.is(n)&&(n={connectionStrategy:n}),(0,rTe.createMessageConnection)(t,e,r,n)}o(zit,"createProtocolConnection");HA.createProtocolConnection=zit});var aTe=nr(_o=>{"use strict";var Git=_o&&_o.__createBinding||(Object.create?(function(t,e,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(e,r);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:o(function(){return e[r]},"get")}),Object.defineProperty(t,n,i)}):(function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]})),YA=_o&&_o.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&Git(e,t,r)};Object.defineProperty(_o,"__esModule",{value:!0});_o.LSPErrorCodes=_o.createProtocolConnection=void 0;YA(Nm(),_o);YA((Zy(),G3(K6)),_o);YA(mi(),_o);YA(tTe(),_o);var Vit=nTe();Object.defineProperty(_o,"createProtocolConnection",{enumerable:!0,get:o(function(){return Vit.createProtocolConnection},"get")});var iTe;(function(t){t.lspReservedErrorRangeStart=-32899,t.RequestFailed=-32803,t.ServerCancelled=-32802,t.ContentModified=-32801,t.RequestCancelled=-32800,t.lspReservedErrorRangeEnd=-32800})(iTe||(_o.LSPErrorCodes=iTe={}))});var oTe=nr(Wu=>{"use strict";var qit=Wu&&Wu.__createBinding||(Object.create?(function(t,e,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(e,r);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:o(function(){return e[r]},"get")}),Object.defineProperty(t,n,i)}):(function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]})),sTe=Wu&&Wu.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&qit(e,t,r)};Object.defineProperty(Wu,"__esModule",{value:!0});Wu.createProtocolConnection=void 0;var Uit=KG();sTe(KG(),Wu);sTe(aTe(),Wu);function Wit(t,e,r,n){return(0,Uit.createMessageConnection)(t,e,r,n)}o(Wit,"createProtocolConnection");Wu.createProtocolConnection=Wit});var ap,dV=O(()=>{"use strict";(function(t){function e(r){return{dispose:o(async()=>await r(),"dispose")}}o(e,"create"),t.create=e})(ap||(ap={}))});var Cv,U4,pV=O(()=>{"use strict";Cv=Ra(oTe(),1);Bl();dV();Kd();$l();Os();Nc();ov();U4=class{static{o(this,"DefaultDocumentBuilder")}constructor(e){this.updateBuildOptions={validation:{categories:["built-in","fast"]}},this.updateListeners=[],this.buildPhaseListeners=new fs,this.documentPhaseListeners=new fs,this.buildState=new Map,this.documentBuildWaiters=new Map,this.currentState=qr.Changed,this.langiumDocuments=e.workspace.LangiumDocuments,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory,this.textDocuments=e.workspace.TextDocuments,this.indexManager=e.workspace.IndexManager,this.fileSystemProvider=e.workspace.FileSystemProvider,this.workspaceManager=()=>e.workspace.WorkspaceManager,this.serviceRegistry=e.ServiceRegistry}async build(e,r={},n=Nr.CancellationToken.None){for(let i of e){let a=i.uri.toString();if(i.state===qr.Validated){if(typeof r.validation=="boolean"&&r.validation)this.resetToState(i,qr.IndexedReferences);else if(typeof r.validation=="object"){let s=this.findMissingValidationCategories(i,r);s.length>0&&(this.buildState.set(a,{completed:!1,options:{validation:{categories:s}},result:this.buildState.get(a)?.result}),i.state=qr.IndexedReferences)}}else this.buildState.delete(a)}this.currentState=qr.Changed,await this.emitUpdate(e.map(i=>i.uri),[]),await this.buildDocuments(e,r,n)}async update(e,r,n=Nr.CancellationToken.None){this.currentState=qr.Changed;let i=[];for(let u of r){let h=this.langiumDocuments.deleteDocuments(u);for(let f of h)i.push(f.uri),this.cleanUpDeleted(f)}let a=(await Promise.all(e.map(u=>this.findChangedUris(u)))).flat();for(let u of a){let h=this.langiumDocuments.getDocument(u);h===void 0&&(h=this.langiumDocumentFactory.fromModel({$type:"INVALID"},u),h.state=qr.Changed,this.langiumDocuments.addDocument(h)),this.resetToState(h,qr.Changed)}let s=Hr(a).concat(i).map(u=>u.toString()).toSet();this.langiumDocuments.all.filter(u=>!s.has(u.uri.toString())&&this.shouldRelink(u,s)).forEach(u=>this.resetToState(u,qr.ComputedScopes)),await this.emitUpdate(a,i),await Ci(n);let l=this.sortDocuments(this.langiumDocuments.all.filter(u=>u.state=1}findMissingValidationCategories(e,r){let n=this.buildState.get(e.uri.toString()),i=this.serviceRegistry.getServices(e.uri).validation.ValidationRegistry.getAllValidationCategories(e),a=n?.result?.validationChecks?new Set(n?.result?.validationChecks):n?.completed?i:new Set,s=r===void 0||r.validation===!0?i:typeof r.validation=="object"?r.validation.categories??i:[];return Hr(s).filter(l=>!a.has(l)).toArray()}async findChangedUris(e){if(this.langiumDocuments.getDocument(e)??this.textDocuments?.get(e))return[e];try{let n=await this.fileSystemProvider.stat(e);if(n.isDirectory)return await this.workspaceManager().searchFolder(e);if(this.workspaceManager().shouldIncludeEntry(n))return[e]}catch{}return[]}async emitUpdate(e,r){await Promise.all(this.updateListeners.map(n=>n(e,r)))}sortDocuments(e){let r=0,n=e.length-1;for(;r=0&&!this.hasTextDocument(e[n]);)n--;rn.error!==void 0)?!0:this.indexManager.isAffected(e,r)}onUpdate(e){return this.updateListeners.push(e),ap.create(()=>{let r=this.updateListeners.indexOf(e);r>=0&&this.updateListeners.splice(r,1)})}resetToState(e,r){switch(r){case qr.Changed:case qr.Parsed:this.indexManager.removeContent(e.uri);case qr.IndexedContent:e.localSymbols=void 0;case qr.ComputedScopes:this.serviceRegistry.getServices(e.uri).references.Linker.unlink(e);case qr.Linked:this.indexManager.removeReferences(e.uri);case qr.IndexedReferences:e.diagnostics=void 0,this.buildState.delete(e.uri.toString());case qr.Validated:}e.state>r&&(e.state=r)}cleanUpDeleted(e){this.buildState.delete(e.uri.toString()),this.indexManager.remove(e.uri),e.state=qr.Changed}async buildDocuments(e,r,n){this.prepareBuild(e,r),await this.runCancelable(e,qr.Parsed,n,s=>this.langiumDocumentFactory.update(s,n)),await this.runCancelable(e,qr.IndexedContent,n,s=>this.indexManager.updateContent(s,n)),await this.runCancelable(e,qr.ComputedScopes,n,async s=>{let l=this.serviceRegistry.getServices(s.uri).references.ScopeComputation;s.localSymbols=await l.collectLocalSymbols(s,n)});let i=e.filter(s=>this.shouldLink(s));await this.runCancelable(i,qr.Linked,n,s=>this.serviceRegistry.getServices(s.uri).references.Linker.link(s,n)),await this.runCancelable(i,qr.IndexedReferences,n,s=>this.indexManager.updateReferences(s,n));let a=e.filter(s=>this.shouldValidate(s)?!0:(this.markAsCompleted(s),!1));await this.runCancelable(a,qr.Validated,n,async s=>{await this.validate(s,n),this.markAsCompleted(s)})}markAsCompleted(e){let r=this.buildState.get(e.uri.toString());r&&(r.completed=!0)}prepareBuild(e,r){for(let n of e){let i=n.uri.toString(),a=this.buildState.get(i);(!a||a.completed)&&this.buildState.set(i,{completed:!1,options:r,result:a?.result})}}async runCancelable(e,r,n,i){for(let s of e)s.states.state===r);await this.notifyBuildPhase(a,r,n),this.currentState=r}onBuildPhase(e,r){return this.buildPhaseListeners.add(e,r),ap.create(()=>{this.buildPhaseListeners.delete(e,r)})}onDocumentPhase(e,r){return this.documentPhaseListeners.add(e,r),ap.create(()=>{this.documentPhaseListeners.delete(e,r)})}waitUntil(e,r,n){let i;return r&&"path"in r?i=r:n=r,n??(n=Nr.CancellationToken.None),i?this.awaitDocumentState(e,i,n):this.awaitBuilderState(e,n)}awaitDocumentState(e,r,n){let i=this.langiumDocuments.getDocument(r);if(i){if(i.state>=e)return Promise.resolve(r);if(n.isCancellationRequested)return Promise.reject(Fl);if(this.currentState>=e&&e>i.state)return Promise.reject(new Cv.ResponseError(Cv.LSPErrorCodes.RequestFailed,`Document state of ${r.toString()} is ${qr[i.state]}, requiring ${qr[e]}, but workspace state is already ${qr[this.currentState]}. Returning undefined.`))}else return Promise.reject(new Cv.ResponseError(Cv.LSPErrorCodes.ServerCancelled,`No document found for URI: ${r.toString()}`));return new Promise((a,s)=>{let l=this.onDocumentPhase(e,h=>{Fi.equals(h.uri,r)&&(l.dispose(),u.dispose(),a(h.uri))}),u=n.onCancellationRequested(()=>{l.dispose(),u.dispose(),s(Fl)})})}awaitBuilderState(e,r){return this.currentState>=e?Promise.resolve():r.isCancellationRequested?Promise.reject(Fl):new Promise((n,i)=>{let a=this.onBuildPhase(e,()=>{a.dispose(),s.dispose(),n()}),s=r.onCancellationRequested(()=>{a.dispose(),s.dispose(),i(Fl)})})}async notifyDocumentPhase(e,r,n){let a=this.documentPhaseListeners.get(r).slice();for(let s of a)try{await Ci(n),await s(e,n)}catch(l){if(!Gu(l))throw l}}async notifyBuildPhase(e,r,n){if(e.length===0)return;let a=this.buildPhaseListeners.get(r).slice();for(let s of a)await Ci(n),await s(e,n)}shouldLink(e){return this.getBuildOptions(e).eagerLinking??!0}shouldValidate(e){return!!this.getBuildOptions(e).validation}async validate(e,r){let n=this.serviceRegistry.getServices(e.uri).validation.DocumentValidator,i=this.getBuildOptions(e),a=typeof i.validation=="object"?{...i.validation}:{};a.categories=this.findMissingValidationCategories(e,i);let s=await n.validateDocument(e,a,r);e.diagnostics?e.diagnostics.push(...s):e.diagnostics=s;let l=this.buildState.get(e.uri.toString());l&&(l.result??(l.result={}),l.result.validationChecks?l.result.validationChecks=Hr(l.result.validationChecks).concat(a.categories).distinct().toArray():l.result.validationChecks=[...a.categories])}getBuildOptions(e){return this.buildState.get(e.uri.toString())?.options??{}}}});var W4,mV=O(()=>{"use strict";us();hA();Bl();Os();Nc();W4=class{static{o(this,"DefaultIndexManager")}constructor(e){this.symbolIndex=new Map,this.symbolByTypeIndex=new Dm,this.referenceIndex=new Map,this.documents=e.workspace.LangiumDocuments,this.serviceRegistry=e.ServiceRegistry,this.astReflection=e.AstReflection}findAllReferences(e,r){let n=cs(e).uri,i=[];return this.referenceIndex.forEach(a=>{a.forEach(s=>{Fi.equals(s.targetUri,n)&&s.targetPath===r&&i.push(s)})}),Hr(i)}allElements(e,r){let n=Hr(this.symbolIndex.keys());return r&&(n=n.filter(i=>!r||r.has(i))),n.map(i=>this.getFileDescriptions(i,e)).flat()}getFileDescriptions(e,r){return r?this.symbolByTypeIndex.get(e,r,()=>(this.symbolIndex.get(e)??[]).filter(a=>this.astReflection.isSubtype(a.type,r))):this.symbolIndex.get(e)??[]}remove(e){this.removeContent(e),this.removeReferences(e)}removeContent(e){let r=e.toString();this.symbolIndex.delete(r),this.symbolByTypeIndex.clear(r)}removeReferences(e){let r=e.toString();this.referenceIndex.delete(r)}async updateContent(e,r=Nr.CancellationToken.None){let i=await this.serviceRegistry.getServices(e.uri).references.ScopeComputation.collectExportedSymbols(e,r),a=e.uri.toString();this.symbolIndex.set(a,i),this.symbolByTypeIndex.clear(a)}async updateReferences(e,r=Nr.CancellationToken.None){let i=await this.serviceRegistry.getServices(e.uri).workspace.ReferenceDescriptionProvider.createDescriptions(e,r);this.referenceIndex.set(e.uri.toString(),i)}isAffected(e,r){let n=this.referenceIndex.get(e.uri.toString());return n?n.some(i=>!i.local&&r.has(i.targetUri.toString())):!1}}});var H4,gV=O(()=>{"use strict";Bl();$l();Nc();Os();H4=class{static{o(this,"DefaultWorkspaceManager")}constructor(e){this.initialBuildOptions={},this._ready=new Vs,this.serviceRegistry=e.ServiceRegistry,this.langiumDocuments=e.workspace.LangiumDocuments,this.documentBuilder=e.workspace.DocumentBuilder,this.fileSystemProvider=e.workspace.FileSystemProvider,this.mutex=e.workspace.WorkspaceLock}get ready(){return this._ready.promise}get workspaceFolders(){return this.folders}initialize(e){this.folders=e.workspaceFolders??void 0}initialized(e){return this.mutex.write(r=>this.initializeWorkspace(this.folders??[],r))}async initializeWorkspace(e,r=Nr.CancellationToken.None){let n=await this.performStartup(e);await Ci(r),await this.documentBuilder.build(n,this.initialBuildOptions,r)}async performStartup(e){let r=[],n=o(s=>{r.push(s),this.langiumDocuments.hasDocument(s.uri)||this.langiumDocuments.addDocument(s)},"collector");await this.loadAdditionalDocuments(e,n);let i=[];await Promise.all(e.map(s=>this.getRootFolder(s)).map(async s=>this.traverseFolder(s,i)));let a=Hr(i).distinct(s=>s.toString()).filter(s=>!this.langiumDocuments.hasDocument(s));return await this.loadWorkspaceDocuments(a,n),this._ready.resolve(),r}async loadWorkspaceDocuments(e,r){await Promise.all(e.map(async n=>{let i=await this.langiumDocuments.getOrCreateDocument(n);r(i)}))}loadAdditionalDocuments(e,r){return Promise.resolve()}getRootFolder(e){return ca.parse(e.uri)}async traverseFolder(e,r){try{let n=await this.fileSystemProvider.readDirectory(e);await Promise.all(n.map(async i=>{this.shouldIncludeEntry(i)&&(i.isDirectory?await this.traverseFolder(i.uri,r):i.isFile&&r.push(i.uri))}))}catch(n){console.error("Failure to read directory content of "+e.toString(!0),n)}}async searchFolder(e){let r=[];return await this.traverseFolder(e,r),r}shouldIncludeEntry(e){let r=Fi.basename(e.uri);return r.startsWith(".")?!1:e.isDirectory?r!=="node_modules"&&r!=="out":e.isFile?this.serviceRegistry.hasServices(e.uri):!1}}});function XA(t){return Array.isArray(t)&&(t.length===0||"name"in t[0])}function vV(t){return t&&"modes"in t&&"defaultMode"in t}function yV(t){return!XA(t)&&!vV(t)}var Y4,jA,Im,KA=O(()=>{"use strict";Hd();Y4=class{static{o(this,"DefaultLexerErrorMessageProvider")}buildUnexpectedCharactersMessage(e,r,n,i,a){return Ny.buildUnexpectedCharactersMessage(e,r,n,i,a)}buildUnableToPopLexerModeMessage(e){return Ny.buildUnableToPopLexerModeMessage(e)}},jA={mode:"full"},Im=class{static{o(this,"DefaultLexer")}constructor(e){this.errorMessageProvider=e.parser.LexerErrorMessageProvider,this.tokenBuilder=e.parser.TokenBuilder;let r=this.tokenBuilder.buildTokens(e.Grammar,{caseInsensitive:e.LanguageMetaData.caseInsensitive});this.tokenTypes=this.toTokenTypeDictionary(r);let n=yV(r)?Object.values(r):r,i=e.LanguageMetaData.mode==="production";this.chevrotainLexer=new fi(n,{positionTracking:"full",skipValidations:i,errorMessageProvider:this.errorMessageProvider})}get definition(){return this.tokenTypes}tokenize(e,r=jA){let n=this.chevrotainLexer.tokenize(e);return{tokens:n.tokens,errors:n.errors,hidden:n.groups.hidden??[],report:this.tokenBuilder.flushLexingReport?.(e)}}toTokenTypeDictionary(e){if(yV(e))return e;let r=vV(e)?Object.values(e.modes).flat():e,n={};return r.forEach(i=>n[i.name]=i),n}};o(XA,"isTokenTypeArray");o(vV,"isIMultiModeLexerDefinition");o(yV,"isTokenTypeDictionary")});function TV(t,e,r){let n,i;typeof t=="string"?(i=e,n=r):(i=t.range.start,n=e),i||(i=on.create(0,0));let a=uTe(t),s=kV(n),l=Yit({lines:a,position:i,options:s});return Zit({index:0,tokens:l,position:i})}function wV(t,e){let r=kV(e),n=uTe(t);if(n.length===0)return!1;let i=n[0],a=n[n.length-1],s=r.start,l=r.end;return!!s?.exec(i)&&!!l?.exec(a)}function uTe(t){let e="";return typeof t=="string"?e=t:e=t.text,e.split(dF)}function Yit(t){let e=[],r=t.position.line,n=t.position.character;for(let i=0;i=l.length){if(e.length>0){let f=on.create(r,n);e.push({type:"break",content:"",range:Kr.create(f,f)})}}else{lTe.lastIndex=u;let f=lTe.exec(l);if(f){let d=f[0],p=f[1],m=on.create(r,n+u),g=on.create(r,n+u+d.length);e.push({type:"tag",content:p,range:Kr.create(m,g)}),u+=d.length,u=bV(l,u)}if(u0&&e[e.length-1].type==="break"?e.slice(0,-1):e}function jit(t,e,r,n){let i=[];if(t.length===0){let a=on.create(r,n),s=on.create(r,n+e.length);i.push({type:"text",content:e,range:Kr.create(a,s)})}else{let a=0;for(let l of t){let u=l.index,h=e.substring(a,u);h.length>0&&i.push({type:"text",content:e.substring(a,u),range:Kr.create(on.create(r,a+n),on.create(r,u+n))});let f=h.length+1,d=l[1];if(i.push({type:"inline-tag",content:d,range:Kr.create(on.create(r,a+f+n),on.create(r,a+f+d.length+n))}),f+=d.length,l.length===4){f+=l[2].length;let p=l[3];i.push({type:"text",content:p,range:Kr.create(on.create(r,a+f+n),on.create(r,a+f+p.length+n))})}else i.push({type:"text",content:"",range:Kr.create(on.create(r,a+f+n),on.create(r,a+f+n))});a=u+l[0].length}let s=e.substring(a);s.length>0&&i.push({type:"text",content:s,range:Kr.create(on.create(r,a+n),on.create(r,a+n+s.length))})}return i}function bV(t,e){let r=t.substring(e).match(Xit);return r?e+r.index:t.length}function Qit(t){let e=t.match(Kit);if(e&&typeof e.index=="number")return e.index}function Zit(t){let e=on.create(t.position.line,t.position.character);if(t.tokens.length===0)return new QA([],Kr.create(e,e));let r=[];for(;t.index0){let s=bV(e,n);i=e.substring(s),e=e.substring(0,n)}return(t==="linkcode"||t==="link"&&r.link==="code")&&(i=`\`${i}\``),r.renderLink?.(e,i)??nat(e,i)}}function nat(t,e){try{return ca.parse(t,!0),`[${e}](${t})`}catch{return t}}function cTe(t){return t.endsWith(` +`)?` +`:` + +`}var lTe,Hit,Xit,Kit,QA,j4,X4,ZA,EV=O(()=>{"use strict";Zy();wy();Nc();o(TV,"parseJSDoc");o(wV,"isJSDoc");o(uTe,"getLines");lTe=/\s*(@([\p{L}][\p{L}\p{N}]*)?)/uy,Hit=/\{(@[\p{L}][\p{L}\p{N}]*)(\s*)([^\r\n}]+)?\}/gu;o(Yit,"tokenize");o(jit,"buildInlineTokens");Xit=/\S/,Kit=/\s*$/;o(bV,"skipWhitespace");o(Qit,"lastCharacter");o(Zit,"parseJSDocComment");o(Jit,"parseJSDocElement");o(eat,"appendEmptyLine");o(hTe,"parseJSDocText");o(tat,"parseJSDocInline");o(fTe,"parseJSDocTag");o(dTe,"parseJSDocLine");o(kV,"normalizeOptions");o(xV,"normalizeOption");QA=class{static{o(this,"JSDocCommentImpl")}constructor(e,r){this.elements=e,this.range=r}getTag(e){return this.getAllTags().find(r=>r.name===e)}getTags(e){return this.getAllTags().filter(r=>r.name===e)}getAllTags(){return this.elements.filter(e=>"name"in e)}toString(){let e="";for(let r of this.elements)if(e.length===0)e=r.toString();else{let n=r.toString();e+=cTe(e)+n}return e.trim()}toMarkdown(e){let r="";for(let n of this.elements)if(r.length===0)r=n.toMarkdown(e);else{let i=n.toMarkdown(e);r+=cTe(r)+i}return r.trim()}},j4=class{static{o(this,"JSDocTagImpl")}constructor(e,r,n,i){this.name=e,this.content=r,this.inline=n,this.range=i}toString(){let e=`@${this.name}`,r=this.content.toString();return this.content.inlines.length===1?e=`${e} ${r}`:this.content.inlines.length>1&&(e=`${e} +${r}`),this.inline?`{${e}}`:e}toMarkdown(e){return e?.renderTag?.(this)??this.toMarkdownDefault(e)}toMarkdownDefault(e){let r=this.content.toMarkdown(e);if(this.inline){let a=rat(this.name,r,e??{});if(typeof a=="string")return a}let n="";e?.tag==="italic"||e?.tag===void 0?n="*":e?.tag==="bold"?n="**":e?.tag==="bold-italic"&&(n="***");let i=`${n}@${this.name}${n}`;return this.content.inlines.length===1?i=`${i} \u2014 ${r}`:this.content.inlines.length>1&&(i=`${i} +${r}`),this.inline?`{${i}}`:i}};o(rat,"renderInlineTag");o(nat,"renderLinkDefault");X4=class{static{o(this,"JSDocTextImpl")}constructor(e,r){this.inlines=e,this.range=r}toString(){let e="";for(let r=0;rn.range.start.line&&(e+=` +`)}return e}toMarkdown(e){let r="";for(let n=0;ni.range.start.line&&(r+=` +`)}return r}},ZA=class{static{o(this,"JSDocLineImpl")}constructor(e,r){this.text=e,this.range=r}toString(){return this.text}toMarkdown(){return this.text}};o(cTe,"fillNewlines")});var K4,SV=O(()=>{"use strict";us();EV();K4=class{static{o(this,"JSDocDocumentationProvider")}constructor(e){this.indexManager=e.shared.workspace.IndexManager,this.commentProvider=e.documentation.CommentProvider}getDocumentation(e){let r=this.commentProvider.getComment(e);if(r&&wV(r))return TV(r).toMarkdown({renderLink:o((i,a)=>this.documentationLinkRenderer(e,i,a),"renderLink"),renderTag:o(i=>this.documentationTagRenderer(e,i),"renderTag")})}documentationLinkRenderer(e,r,n){let i=this.findNameInLocalSymbols(e,r)??this.findNameInGlobalScope(e,r);if(i&&i.nameSegment){let a=i.nameSegment.range.start.line+1,s=i.nameSegment.range.start.character+1,l=i.documentUri.with({fragment:`L${a},${s}`});return`[${n}](${l.toString()})`}else return}documentationTagRenderer(e,r){}findNameInLocalSymbols(e,r){let i=cs(e).localSymbols;if(!i)return;let a=e;do{let l=i.getStream(a).find(u=>u.name===r);if(l)return l;a=a.$container}while(a)}findNameInGlobalScope(e,r){return this.indexManager.allElements().find(i=>i.name===r)}}});var Q4,CV=O(()=>{"use strict";fA();Sc();Q4=class{static{o(this,"DefaultCommentProvider")}constructor(e){this.grammarConfig=()=>e.parser.GrammarConfig}getComment(e){return Vz(e)?e.$comment:oF(e.$cstNode,this.grammarConfig().multilineCommentRules)?.text}}});var Z4,AV,_V,DV=O(()=>{"use strict";$l();gA();Z4=class{static{o(this,"DefaultAsyncParser")}constructor(e){this.syncParser=e.parser.LangiumParser}parse(e,r){return Promise.resolve(this.syncParser.parse(e))}},AV=class{static{o(this,"AbstractThreadedAsyncParser")}constructor(e){this.threadCount=8,this.terminationDelay=200,this.workerPool=[],this.queue=[],this.hydrator=e.serializer.Hydrator}initializeWorkers(){for(;this.workerPool.length{if(this.queue.length>0){let r=this.queue.shift();r&&(e.lock(),r.resolve(e))}}),this.workerPool.push(e)}}async parse(e,r){let n=await this.acquireParserWorker(r),i=new Vs,a,s=r.onCancellationRequested(()=>{a=setTimeout(()=>{this.terminateWorker(n)},this.terminationDelay)});return n.parse(e).then(l=>{let u=this.hydrator.hydrate(l);i.resolve(u)}).catch(l=>{i.reject(l)}).finally(()=>{s.dispose(),clearTimeout(a)}),i.promise}terminateWorker(e){e.terminate();let r=this.workerPool.indexOf(e);r>=0&&this.workerPool.splice(r,1)}async acquireParserWorker(e){this.initializeWorkers();for(let n of this.workerPool)if(n.ready)return n.lock(),n;let r=new Vs;return e.onCancellationRequested(()=>{let n=this.queue.indexOf(r);n>=0&&this.queue.splice(n,1),r.reject(Fl)}),this.queue.push(r),r.promise}},_V=class{static{o(this,"ParserWorker")}get ready(){return this._ready}get onReady(){return this.onReadyEmitter.event}constructor(e,r,n,i){this.onReadyEmitter=new pi.Emitter,this.deferred=new Vs,this._ready=!0,this._parsing=!1,this.sendMessage=e,this._terminate=i,r(a=>{let s=a;this.deferred.resolve(s),this.unlock()}),n(a=>{this.deferred.reject(a),this.unlock()})}terminate(){this.deferred.reject(Fl),this._terminate()}lock(){this._ready=!1}unlock(){this._parsing=!1,this._ready=!0,this.onReadyEmitter.fire()}parse(e){if(this._parsing)throw new Error("Parser worker is busy");return this._parsing=!0,this.deferred=new Vs,this.sendMessage(e),this.deferred.promise}}});var J4,RV=O(()=>{"use strict";Bl();$l();J4=class{static{o(this,"DefaultWorkspaceLock")}constructor(){this.previousTokenSource=new Nr.CancellationTokenSource,this.writeQueue=[],this.readQueue=[],this.done=!0}write(e){this.cancelWrite();let r=lA();return this.previousTokenSource=r,this.enqueue(this.writeQueue,e,r.token)}read(e){return this.enqueue(this.readQueue,e)}enqueue(e,r,n=Nr.CancellationToken.None){let i=new Vs,a={action:r,deferred:i,cancellationToken:n};return e.push(a),this.performNextOperation(),i.promise}async performNextOperation(){if(!this.done)return;let e=[];if(this.writeQueue.length>0)e.push(this.writeQueue.shift());else if(this.readQueue.length>0)e.push(...this.readQueue.splice(0,this.readQueue.length));else return;this.done=!1,await Promise.all(e.map(async({action:r,deferred:n,cancellationToken:i})=>{try{let a=await Promise.resolve().then(()=>r(i));n.resolve(a)}catch(a){Gu(a)?n.resolve(void 0):n.reject(a)}})),this.done=!0,this.performNextOperation()}cancelWrite(){this.previousTokenSource.cancel()}}});var e3,LV=O(()=>{"use strict";Q6();Zo();kc();us();Kd();Sc();e3=class{static{o(this,"DefaultHydrator")}constructor(e){this.grammarElementIdMap=new _m,this.tokenTypeIdMap=new _m,this.grammar=e.Grammar,this.lexer=e.parser.Lexer,this.linker=e.references.Linker}dehydrate(e){return{lexerErrors:e.lexerErrors,lexerReport:e.lexerReport?this.dehydrateLexerReport(e.lexerReport):void 0,parserErrors:e.parserErrors.map(r=>({...r,message:r.message})),value:this.dehydrateAstNode(e.value,this.createDehyrationContext(e.value))}}dehydrateLexerReport(e){return e}createDehyrationContext(e){let r=new Map,n=new Map;for(let i of Ps(e))r.set(i,{});if(e.$cstNode)for(let i of sm(e.$cstNode))n.set(i,{});return{astNodes:r,cstNodes:n}}dehydrateAstNode(e,r){let n=r.astNodes.get(e);n.$type=e.$type,n.$containerIndex=e.$containerIndex,n.$containerProperty=e.$containerProperty,e.$cstNode!==void 0&&(n.$cstNode=this.dehydrateCstNode(e.$cstNode,r));for(let[i,a]of Object.entries(e))if(!i.startsWith("$"))if(Array.isArray(a)){let s=[];n[i]=s;for(let l of a)Si(l)?s.push(this.dehydrateAstNode(l,r)):oa(l)?s.push(this.dehydrateReference(l,r)):s.push(l)}else Si(a)?n[i]=this.dehydrateAstNode(a,r):oa(a)?n[i]=this.dehydrateReference(a,r):a!==void 0&&(n[i]=a);return n}dehydrateReference(e,r){let n={};return n.$refText=e.$refText,e.$refNode&&(n.$refNode=r.cstNodes.get(e.$refNode)),n}dehydrateCstNode(e,r){let n=r.cstNodes.get(e);return fT(e)?n.fullText=e.fullText:n.grammarSource=this.getGrammarElementId(e.grammarSource),n.hidden=e.hidden,n.astNode=r.astNodes.get(e.astNode),wc(e)?n.content=e.content.map(i=>this.dehydrateCstNode(i,r)):Nd(e)&&(n.tokenType=e.tokenType.name,n.offset=e.offset,n.length=e.length,n.startLine=e.range.start.line,n.startColumn=e.range.start.character,n.endLine=e.range.end.line,n.endColumn=e.range.end.character),n}hydrate(e){let r=e.value,n=this.createHydrationContext(r);return"$cstNode"in r&&this.hydrateCstNode(r.$cstNode,n),{lexerErrors:e.lexerErrors,lexerReport:e.lexerReport,parserErrors:e.parserErrors,value:this.hydrateAstNode(r,n)}}createHydrationContext(e){let r=new Map,n=new Map;for(let a of Ps(e))r.set(a,{});let i;if(e.$cstNode)for(let a of sm(e.$cstNode)){let s;"fullText"in a?(s=new Jy(a.fullText),i=s):"content"in a?s=new km:"tokenType"in a&&(s=this.hydrateCstLeafNode(a)),s&&(n.set(a,s),s.root=i)}return{astNodes:r,cstNodes:n}}hydrateAstNode(e,r){let n=r.astNodes.get(e);n.$type=e.$type,n.$containerIndex=e.$containerIndex,n.$containerProperty=e.$containerProperty,e.$cstNode&&(n.$cstNode=r.cstNodes.get(e.$cstNode));for(let[i,a]of Object.entries(e))if(!i.startsWith("$"))if(Array.isArray(a)){let s=[];n[i]=s;for(let l of a)Si(l)?s.push(this.setParent(this.hydrateAstNode(l,r),n)):oa(l)?s.push(this.hydrateReference(l,n,i,r)):s.push(l)}else Si(a)?n[i]=this.setParent(this.hydrateAstNode(a,r),n):oa(a)?n[i]=this.hydrateReference(a,n,i,r):a!==void 0&&(n[i]=a);return n}setParent(e,r){return e.$container=r,e}hydrateReference(e,r,n,i){return this.linker.buildReference(r,n,i.cstNodes.get(e.$refNode),e.$refText)}hydrateCstNode(e,r,n=0){let i=r.cstNodes.get(e);if(typeof e.grammarSource=="number"&&(i.grammarSource=this.getGrammarElement(e.grammarSource)),i.astNode=r.astNodes.get(e.astNode),wc(i))for(let a of e.content){let s=this.hydrateCstNode(a,r,n++);i.content.push(s)}return i}hydrateCstLeafNode(e){let r=this.getTokenType(e.tokenType),n=e.offset,i=e.length,a=e.startLine,s=e.startColumn,l=e.endLine,u=e.endColumn,h=e.hidden;return new wm(n,i,{start:{line:a,character:s},end:{line:l,character:u}},r,h)}getTokenType(e){return this.lexer.definition[e]}getGrammarElementId(e){if(e)return this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap(),this.grammarElementIdMap.get(e)}getGrammarElement(e){return this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap(),this.grammarElementIdMap.getKey(e)}createGrammarElementIdMap(){let e=0;for(let r of Ps(this.grammar))wT(r)&&this.grammarElementIdMap.set(r,e++)}}});function Ya(t){return{documentation:{CommentProvider:o(e=>new Q4(e),"CommentProvider"),DocumentationProvider:o(e=>new K4(e),"DocumentationProvider")},parser:{AsyncParser:o(e=>new Z4(e),"AsyncParser"),GrammarConfig:o(e=>AF(e),"GrammarConfig"),LangiumParser:o(e=>kz(e),"LangiumParser"),CompletionParser:o(e=>Tz(e),"CompletionParser"),ValueConverter:o(()=>new Sm,"ValueConverter"),TokenBuilder:o(()=>new ef,"TokenBuilder"),Lexer:o(e=>new Im(e),"Lexer"),ParserErrorMessageProvider:o(()=>new ev,"ParserErrorMessageProvider"),LexerErrorMessageProvider:o(()=>new Y4,"LexerErrorMessageProvider")},workspace:{AstNodeLocator:o(()=>new M4,"AstNodeLocator"),AstNodeDescriptionProvider:o(e=>new L4(e),"AstNodeDescriptionProvider"),ReferenceDescriptionProvider:o(e=>new N4(e),"ReferenceDescriptionProvider")},references:{Linker:o(e=>new b4(e),"Linker"),NameProvider:o(()=>new T4,"NameProvider"),ScopeProvider:o(e=>new C4(e),"ScopeProvider"),ScopeComputation:o(e=>new k4(e),"ScopeComputation"),References:o(e=>new w4(e),"References")},serializer:{Hydrator:o(e=>new e3(e),"Hydrator"),JsonSerializer:o(e=>new A4(e),"JsonSerializer")},validation:{DocumentValidator:o(e=>new R4(e),"DocumentValidator"),ValidationRegistry:o(e=>new D4(e),"ValidationRegistry")},shared:o(()=>t.shared,"shared")}}function ja(t){return{ServiceRegistry:o(e=>new _4(e),"ServiceRegistry"),workspace:{LangiumDocuments:o(e=>new x4(e),"LangiumDocuments"),LangiumDocumentFactory:o(e=>new v4(e),"LangiumDocumentFactory"),DocumentBuilder:o(e=>new U4(e),"DocumentBuilder"),IndexManager:o(e=>new W4(e),"IndexManager"),WorkspaceManager:o(e=>new H4(e),"WorkspaceManager"),FileSystemProvider:o(e=>t.fileSystemProvider(e),"FileSystemProvider"),WorkspaceLock:o(()=>new J4,"WorkspaceLock"),ConfigurationProvider:o(e=>new I4(e),"ConfigurationProvider")},profilers:{}}}var NV=O(()=>{"use strict";_F();wz();Ez();nA();Sz();Oz();Pz();Bz();Fz();Gz();fA();qz();Uz();pA();Wz();Hz();Yz();pV();ov();mV();gV();KA();SV();CV();m4();DV();RV();LV();o(Ya,"createDefaultCoreModule");o(ja,"createDefaultSharedCoreModule")});function ii(t,e,r,n,i,a,s,l,u){let h=[t,e,r,n,i,a,s,l,u].reduce(t3,{});return vTe(h)}function yTe(t){if(t&&t[gTe])for(let e of Object.values(t))yTe(e);return t}function vTe(t,e){let r=new Proxy({},{deleteProperty:o(()=>!1,"deleteProperty"),set:o(()=>{throw new Error("Cannot set property on injected service container")},"set"),get:o((n,i)=>i===gTe?!0:mTe(n,i,t,e||r),"get"),getOwnPropertyDescriptor:o((n,i)=>(mTe(n,i,t,e||r),Object.getOwnPropertyDescriptor(n,i)),"getOwnPropertyDescriptor"),has:o((n,i)=>i in t,"has"),ownKeys:o(()=>[...Object.getOwnPropertyNames(t)],"ownKeys")});return r}function mTe(t,e,r,n){if(e in t){if(t[e]instanceof Error)throw new Error("Construction failure. Please make sure that your dependencies are constructable. Cause: "+t[e]);if(t[e]===pTe)throw new Error('Cycle detected. Please make "'+String(e)+'" lazy. Visit https://langium.org/docs/reference/configuration-services/#resolving-cyclic-dependencies');return t[e]}else if(e in r){let i=r[e];t[e]=pTe;try{t[e]=typeof i=="function"?i(n):vTe(i,n)}catch(a){throw t[e]=a instanceof Error?a:void 0,a}return t[e]}else return}function t3(t,e){if(e){for(let[r,n]of Object.entries(e))if(n!=null)if(typeof n=="object"){let i=t[r];typeof i=="object"&&i!==null?t[r]=t3(i,n):t[r]=t3({},n)}else t[r]=n}return t}var MV,gTe,pTe,IV=O(()=>{"use strict";(function(t){t.merge=(e,r)=>t3(t3({},e),r)})(MV||(MV={}));o(ii,"inject");gTe=Symbol("isProxy");o(yTe,"eagerLoad");o(vTe,"_inject");pTe=Symbol();o(mTe,"_resolve");o(t3,"_merge")});var xTe=O(()=>{"use strict"});var bTe=O(()=>{"use strict";CV();SV();EV()});var TTe=O(()=>{"use strict"});var wTe=O(()=>{"use strict";_F();TTe()});var OV,Om,JA,PV,kTe=O(()=>{"use strict";Hd();nA();KA();OV={indentTokenName:"INDENT",dedentTokenName:"DEDENT",whitespaceTokenName:"WS",ignoreIndentationDelimiters:[]};(function(t){t.REGULAR="indentation-sensitive",t.IGNORE_INDENTATION="ignore-indentation"})(Om||(Om={}));JA=class extends ef{static{o(this,"IndentationAwareTokenBuilder")}constructor(e=OV){super(),this.indentationStack=[0],this.whitespaceRegExp=/[ \t]+/y,this.options={...OV,...e},this.indentTokenType=Ud({name:this.options.indentTokenName,pattern:this.indentMatcher.bind(this),line_breaks:!1}),this.dedentTokenType=Ud({name:this.options.dedentTokenName,pattern:this.dedentMatcher.bind(this),line_breaks:!1})}buildTokens(e,r){let n=super.buildTokens(e,r);if(!XA(n))throw new Error("Invalid tokens built by default builder");let{indentTokenName:i,dedentTokenName:a,whitespaceTokenName:s,ignoreIndentationDelimiters:l}=this.options,u,h,f,d=[];for(let p of n){for(let[m,g]of l)p.name===m?p.PUSH_MODE=Om.IGNORE_INDENTATION:p.name===g&&(p.POP_MODE=!0);p.name===a?u=p:p.name===i?h=p:p.name===s?f=p:d.push(p)}if(!u||!h||!f)throw new Error("Some indentation/whitespace tokens not found!");return l.length>0?{modes:{[Om.REGULAR]:[u,h,...d,f],[Om.IGNORE_INDENTATION]:[...d,f]},defaultMode:Om.REGULAR}:[u,h,f,...d]}flushLexingReport(e){return{...super.flushLexingReport(e),remainingDedents:this.flushRemainingDedents(e)}}isStartOfLine(e,r){return r===0||`\r +`.includes(e[r-1])}matchWhitespace(e,r,n,i){this.whitespaceRegExp.lastIndex=r;let a=this.whitespaceRegExp.exec(e);return{currIndentLevel:a?.[0].length??0,prevIndentLevel:this.indentationStack.at(-1),match:a}}createIndentationTokenInstance(e,r,n,i){let a=this.getLineNumber(r,i);return Kh(e,n,i,i+n.length,a,a,1,n.length)}getLineNumber(e,r){return e.substring(0,r).split(/\r\n|\r|\n/).length}indentMatcher(e,r,n,i){if(!this.isStartOfLine(e,r))return null;let{currIndentLevel:a,prevIndentLevel:s,match:l}=this.matchWhitespace(e,r,n,i);return a<=s?null:(this.indentationStack.push(a),l)}dedentMatcher(e,r,n,i){if(!this.isStartOfLine(e,r))return null;let{currIndentLevel:a,prevIndentLevel:s,match:l}=this.matchWhitespace(e,r,n,i);if(a>=s)return null;let u=this.indentationStack.lastIndexOf(a);if(u===-1)return this.diagnostics.push({severity:"error",message:`Invalid dedent level ${a} at offset: ${r}. Current indentation stack: ${this.indentationStack}`,offset:r,length:l?.[0]?.length??0,line:this.getLineNumber(e,r),column:1}),null;let h=this.indentationStack.length-u-1,f=e.substring(0,r).match(/[\r\n]+$/)?.[0].length??1;for(let d=0;d1;)r.push(this.createIndentationTokenInstance(this.dedentTokenType,e,"",e.length)),this.indentationStack.pop();return this.indentationStack=[0],r}},PV=class extends Im{static{o(this,"IndentationAwareLexer")}constructor(e){if(super(e),e.parser.TokenBuilder instanceof JA)this.indentationTokenBuilder=e.parser.TokenBuilder;else throw new Error("IndentationAwareLexer requires an accompanying IndentationAwareTokenBuilder")}tokenize(e,r=jA){let n=super.tokenize(e),i=n.report;r?.mode==="full"&&n.tokens.push(...i.remainingDedents),i.remainingDedents=[];let{indentTokenType:a,dedentTokenType:s}=this.indentationTokenBuilder,l=a.tokenTypeIdx,u=s.tokenTypeIdx,h=[],f=n.tokens.length-1;for(let d=0;d=0&&h.push(n.tokens[f]),n.tokens=h,n}}});var ETe=O(()=>{"use strict"});var STe=O(()=>{"use strict";DV();wz();Q6();kTe();Ez();m4();KA();rA();ETe();nA();Sz()});var CTe=O(()=>{"use strict";Oz();Pz();Bz();zz();Fz();Gz()});var ATe=O(()=>{"use strict";LV();fA()});var e7,Xa,BV=O(()=>{"use strict";e7=class{static{o(this,"EmptyFileSystemProvider")}stat(e){throw new Error("No file system is available.")}statSync(e){throw new Error("No file system is available.")}async exists(){return!1}existsSync(){return!1}readBinary(){throw new Error("No file system is available.")}readBinarySync(){throw new Error("No file system is available.")}readFile(){throw new Error("No file system is available.")}readFileSync(){throw new Error("No file system is available.")}async readDirectory(){return[]}readDirectorySync(){return[]}},Xa={fileSystemProvider:o(()=>new e7,"fileSystemProvider")}});function sat(){let t=ii(ja(Xa),aat),e=ii(Ya({shared:t}),iat);return t.ServiceRegistry.register(e),e}function Hu(t){let e=sat(),r=e.serializer.JsonSerializer.deserialize(t);return e.shared.workspace.LangiumDocumentFactory.fromModel(r,ca.parse(`memory:/${r.name??"grammar"}.langium`)),r}var iat,aat,_Te=O(()=>{"use strict";NV();IV();Zo();BV();Nc();iat={Grammar:o(()=>{},"Grammar"),LanguageMetaData:o(()=>({caseInsensitive:!1,fileExtensions:[".langium"],languageId:"langium"}),"LanguageMetaData")},aat={AstReflection:o(()=>new xy,"AstReflection")};o(sat,"createMinimalGrammarServices");o(Hu,"loadGrammarFromJson")});var ln={};vr(ln,{AstUtils:()=>_C,BiMap:()=>_m,Cancellation:()=>Nr,ContextCache:()=>Dm,CstUtils:()=>jC,DONE_RESULT:()=>ls,Deferred:()=>Vs,Disposable:()=>ap,DisposableCache:()=>cv,DocumentCache:()=>uA,EMPTY_STREAM:()=>Md,ErrorWithLocation:()=>lm,GrammarUtils:()=>t6,MultiMap:()=>fs,OperationCancelled:()=>Fl,Reduction:()=>cy,RegExpUtils:()=>ZC,SimpleCache:()=>S4,StreamImpl:()=>Ko,TreeStreamImpl:()=>Nu,URI:()=>ca,UriTrie:()=>sv,UriUtils:()=>Fi,WorkspaceCache:()=>uv,assertCondition:()=>o1e,assertUnreachable:()=>Ou,delayNextTick:()=>Nz,interruptAndCheck:()=>Ci,isOperationCancelled:()=>Gu,loadGrammarFromJson:()=>Hu,setInterruptionPeriod:()=>_ve,startCancelableOperation:()=>lA,stream:()=>Hr});var DTe=O(()=>{"use strict";hA();gA();jr(ln,pi);Kd();dV();XC();_Te();$l();Os();Nc();us();Bl();Sc();Rc();wy()});var RTe=O(()=>{"use strict";Uz();pA()});var FV,t7,LTe=O(()=>{"use strict";Kd();FV=class{static{o(this,"DefaultLangiumProfiler")}constructor(e){this.activeCategories=new Set,this.allCategories=new Set(["validating","parsing","linking"]),this.activeCategories=e??new Set(this.allCategories),this.records=new fs}isActive(e){return this.activeCategories.has(e)}start(...e){e?e.forEach(r=>this.activeCategories.add(r)):this.activeCategories=new Set(this.allCategories)}stop(...e){e?e.forEach(r=>this.activeCategories.delete(r)):this.activeCategories.clear()}createTask(e,r){if(!this.isActive(e))throw new Error(`Category "${e}" is not active.`);return console.log(`Creating profiling task for '${e}.${r}'.`),new t7(n=>this.records.add(e,this.dumpRecord(e,n)),r)}dumpRecord(e,r){console.info(`Task ${e}.${r.identifier} executed in ${r.duration.toFixed(2)}ms and ended at ${r.date.toISOString()}`);let n=[];for(let s of r.entries.keys()){let l=r.entries.get(s),u=l.reduce((h,f)=>h+f);n.push({name:`${r.identifier}.${s}`,count:l.length,duration:u})}let i=r.duration-n.map(s=>s.duration).reduce((s,l)=>s+l,0);n.push({name:r.identifier,count:1,duration:i}),n.sort((s,l)=>l.duration-s.duration);function a(s){return Math.round(100*s)/100}return o(a,"Round"),console.table(n.map(s=>({Element:s.name,Count:s.count,"Self %":a(100*s.duration/r.duration),"Time (ms)":a(s.duration)}))),r}getRecords(...e){return e.length===0?this.records.values():this.records.entries().filter(r=>e.some(n=>n===r[0])).flatMap(r=>r[1])}},t7=class{static{o(this,"ProfilingTask")}constructor(e,r){this.stack=[],this.entries=new fs,this.addRecord=e,this.identifier=r}start(){if(this.startTime!==void 0)throw new Error(`Task "${this.identifier}" is already started.`);this.startTime=performance.now()}stop(){if(this.startTime===void 0)throw new Error(`Task "${this.identifier}" was not started.`);if(this.stack.length!==0)throw new Error(`Task "${this.identifier}" cannot be stopped before sub-task(s): ${this.stack.map(r=>r.id).join(", ")}.`);let e={identifier:this.identifier,date:new Date,duration:performance.now()-this.startTime,entries:this.entries};this.addRecord(e),this.startTime=void 0,this.entries.clear()}startSubTask(e){this.stack.push({id:e,start:performance.now(),content:0})}stopSubTask(e){let r=this.stack.pop();if(!r)throw new Error(`Task "${this.identifier}.${e}" was not started.`);if(r.id!==e)throw new Error(`Sub-Task "${r.id}" is not already stopped.`);let n=performance.now()-r.start;this.stack.at(-1)!==void 0&&(this.stack[this.stack.length-1].content+=n);let i=n-r.content;this.entries.add(e,i)}}});var NTe=O(()=>{"use strict";Wz();Hz();Yz();pV();ov();BV();mV();RV();gV();LTe()});var _a={};vr(_a,{AbstractAstReflection:()=>Y0,AbstractCstNode:()=>h4,AbstractLangiumParser:()=>f4,AbstractParserErrorMessageProvider:()=>J6,AbstractThreadedAsyncParser:()=>AV,AstUtils:()=>_C,BiMap:()=>_m,Cancellation:()=>Nr,CompositeCstNodeImpl:()=>km,ContextCache:()=>Dm,CstNodeBuilder:()=>u4,CstUtils:()=>jC,DEFAULT_TOKENIZE_OPTIONS:()=>jA,DONE_RESULT:()=>ls,DatatypeSymbol:()=>Z6,DefaultAstNodeDescriptionProvider:()=>L4,DefaultAstNodeLocator:()=>M4,DefaultAsyncParser:()=>Z4,DefaultCommentProvider:()=>Q4,DefaultConfigurationProvider:()=>I4,DefaultDocumentBuilder:()=>U4,DefaultDocumentValidator:()=>R4,DefaultHydrator:()=>e3,DefaultIndexManager:()=>W4,DefaultJsonSerializer:()=>A4,DefaultLangiumDocumentFactory:()=>v4,DefaultLangiumDocuments:()=>x4,DefaultLangiumProfiler:()=>FV,DefaultLexer:()=>Im,DefaultLexerErrorMessageProvider:()=>Y4,DefaultLinker:()=>b4,DefaultNameProvider:()=>T4,DefaultReferenceDescriptionProvider:()=>N4,DefaultReferences:()=>w4,DefaultScopeComputation:()=>k4,DefaultScopeProvider:()=>C4,DefaultServiceRegistry:()=>_4,DefaultTokenBuilder:()=>ef,DefaultValueConverter:()=>Sm,DefaultWorkspaceLock:()=>J4,DefaultWorkspaceManager:()=>H4,Deferred:()=>Vs,Disposable:()=>ap,DisposableCache:()=>cv,DocumentCache:()=>uA,DocumentState:()=>qr,DocumentValidator:()=>zl,EMPTY_SCOPE:()=>ait,EMPTY_STREAM:()=>Md,EmptyFileSystem:()=>Xa,EmptyFileSystemProvider:()=>e7,ErrorWithLocation:()=>lm,GrammarAST:()=>ET,GrammarUtils:()=>t6,IndentationAwareLexer:()=>PV,IndentationAwareTokenBuilder:()=>JA,JSDocDocumentationProvider:()=>K4,LangiumCompletionParser:()=>p4,LangiumParser:()=>d4,LangiumParserErrorMessageProvider:()=>ev,LeafCstNodeImpl:()=>wm,LexingMode:()=>Om,MapScope:()=>$z,Module:()=>MV,MultiMap:()=>fs,MultiMapScope:()=>E4,OperationCancelled:()=>Fl,ParserWorker:()=>_V,ProfilingTask:()=>t7,Reduction:()=>cy,RefResolving:()=>Am,RegExpUtils:()=>ZC,RootCstNodeImpl:()=>Jy,SimpleCache:()=>S4,StreamImpl:()=>Ko,StreamScope:()=>lv,TextDocument:()=>iv,TreeStreamImpl:()=>Nu,URI:()=>ca,UriTrie:()=>sv,UriUtils:()=>Fi,VALIDATE_EACH_NODE:()=>Pve,ValidationCategory:()=>dA,ValidationRegistry:()=>D4,ValueConverter:()=>zu,WorkspaceCache:()=>uv,assertCondition:()=>o1e,assertUnreachable:()=>Ou,createCompletionParser:()=>Tz,createDefaultCoreModule:()=>Ya,createDefaultSharedCoreModule:()=>ja,createGrammarConfig:()=>AF,createLangiumParser:()=>kz,createParser:()=>g4,delayNextTick:()=>Nz,diagnosticData:()=>Rm,eagerLoad:()=>yTe,getDiagnosticRange:()=>Bve,indentationBuilderDefaultOptions:()=>OV,inject:()=>ii,interruptAndCheck:()=>Ci,isAstNode:()=>Si,isAstNodeDescription:()=>PB,isAstNodeWithComment:()=>Vz,isCompositeCstNode:()=>wc,isIMultiModeLexerDefinition:()=>vV,isJSDoc:()=>wV,isLeafCstNode:()=>Nd,isLinkingError:()=>j0,isMultiReference:()=>Xo,isNamed:()=>Ive,isOperationCancelled:()=>Gu,isReference:()=>oa,isRootCstNode:()=>fT,isTokenTypeArray:()=>XA,isTokenTypeDictionary:()=>yV,loadGrammarFromJson:()=>Hu,parseJSDoc:()=>TV,prepareLangiumParser:()=>kve,setInterruptionPeriod:()=>_ve,startCancelableOperation:()=>lA,stream:()=>Hr,toDiagnosticData:()=>Fve,toDiagnosticSeverity:()=>mA});var tl=O(()=>{"use strict";NV();IV();qz();xTe();kc();bTe();wTe();STe();CTe();ATe();DTe();jr(_a,ln);RTe();NTe();Zo()});function GTe(t){return Oc.isInstance(t,ju.$type)}function VTe(t){return Oc.isInstance(t,i3.$type)}function qTe(t){return Oc.isInstance(t,Bm.$type)}function UTe(t){return Oc.isInstance(t,op.$type)}function WTe(t){return Oc.isInstance(t,Dv.$type)}function HTe(t){return Oc.isInstance(t,Fm.$type)}function YTe(t){return Oc.isInstance(t,$m.$type)}function jTe(t){return Oc.isInstance(t,zm.$type)}function XTe(t){return Oc.isInstance(t,lp.$type)}function KTe(t){return Oc.isInstance(t,a3.$type)}function QTe(t){return Oc.isInstance(t,Gm.$type)}var oat,kt,WV,HV,YV,jV,XV,KV,QV,Wxr,ju,r7,i3,MTe,n7,$V,Bm,i7,Av,Yu,zV,op,r3,Dv,n3,GV,a7,Fm,VV,$m,zm,lp,a3,sp,qV,_v,Pm,Gm,UV,ZTe,Oc,ITe,lat,OTe,cat,PTe,uat,BTe,hat,FTe,fat,$Te,dat,zTe,pat,mat,gat,yat,vat,xat,bat,Tat,qs,ZV,JV,eq,tq,rq,nq,iq,wat,kat,Eat,Sat,cp,rf,ms,Cat,gs=O(()=>{"use strict";tl();tl();tl();tl();oat=Object.defineProperty,kt=o((t,e)=>oat(t,"name",{value:e,configurable:!0}),"__name");(t=>{t.Terminals={ARROW_DIRECTION:/L|R|T|B/,ARROW_GROUP:/\{group\}/,ARROW_INTO:/<|>/,ACC_DESCR:/[\t ]*accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/[\t ]*accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,TITLE:/[\t ]*title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,STRING:/"([^"\\]|\\.)*"|'([^'\\]|\\.)*'/,ID:/[\w]([-\w]*\w)?/,NEWLINE:/\r?\n/,WHITESPACE:/[\t ]+/,YAML:/---[\t ]*\r?\n(?:[\S\s]*?\r?\n)?---(?:\r?\n|(?!\S))/,DIRECTIVE:/[\t ]*%%{[\S\s]*?}%%(?:\r?\n|(?!\S))/,SINGLE_LINE_COMMENT:/[\t ]*%%[^\n\r]*/,ARCH_ICON:/\([\w-:]+\)/,ARCH_TITLE:/\[(?:"([^"\\]|\\.)*"|'([^'\\]|\\.)*'|[\w ]+)\]/}})(WV||(WV={}));(t=>{t.Terminals={ACC_DESCR:/[\t ]*accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/[\t ]*accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,TITLE:/[\t ]*title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,INT:/0|[1-9][0-9]*(?!\.)/,STRING:/"([^"\\]|\\.)*"|'([^'\\]|\\.)*'/,NEWLINE:/\r?\n/,WHITESPACE:/[\t ]+/,YAML:/---[\t ]*\r?\n(?:[\S\s]*?\r?\n)?---(?:\r?\n|(?!\S))/,DIRECTIVE:/[\t ]*%%{[\S\s]*?}%%(?:\r?\n|(?!\S))/,SINGLE_LINE_COMMENT:/[\t ]*%%[^\n\r]*/,REFERENCE:/\w([-\./\w]*[-\w])?/}})(HV||(HV={}));(t=>{t.Terminals={ACC_DESCR:/[\t ]*accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/[\t ]*accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,TITLE:/[\t ]*title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,NEWLINE:/\r?\n/,WHITESPACE:/[\t ]+/,YAML:/---[\t ]*\r?\n(?:[\S\s]*?\r?\n)?---(?:\r?\n|(?!\S))/,DIRECTIVE:/[\t ]*%%{[\S\s]*?}%%(?:\r?\n|(?!\S))/,SINGLE_LINE_COMMENT:/[\t ]*%%[^\n\r]*/}})(YV||(YV={}));(t=>{t.Terminals={ACC_DESCR:/[\t ]*accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/[\t ]*accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,TITLE:/[\t ]*title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,INT:/0|[1-9][0-9]*(?!\.)/,STRING:/"([^"\\]|\\.)*"|'([^'\\]|\\.)*'/,NEWLINE:/\r?\n/,WHITESPACE:/[\t ]+/,YAML:/---[\t ]*\r?\n(?:[\S\s]*?\r?\n)?---(?:\r?\n|(?!\S))/,DIRECTIVE:/[\t ]*%%{[\S\s]*?}%%(?:\r?\n|(?!\S))/,SINGLE_LINE_COMMENT:/[\t ]*%%[^\n\r]*/}})(jV||(jV={}));(t=>{t.Terminals={NUMBER_PIE:/(?:-?[0-9]+\.[0-9]+(?!\.))|(?:-?(0|[1-9][0-9]*)(?!\.))/,ACC_DESCR:/[\t ]*accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/[\t ]*accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,TITLE:/[\t ]*title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,STRING:/"([^"\\]|\\.)*"|'([^'\\]|\\.)*'/,NEWLINE:/\r?\n/,WHITESPACE:/[\t ]+/,YAML:/---[\t ]*\r?\n(?:[\S\s]*?\r?\n)?---(?:\r?\n|(?!\S))/,DIRECTIVE:/[\t ]*%%{[\S\s]*?}%%(?:\r?\n|(?!\S))/,SINGLE_LINE_COMMENT:/[\t ]*%%[^\n\r]*/}})(XV||(XV={}));(t=>{t.Terminals={GRATICULE:/circle|polygon/,BOOLEAN:/true|false/,ACC_DESCR:/[\t ]*accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/[\t ]*accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,TITLE:/[\t ]*title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,NUMBER:/(?:[0-9]+\.[0-9]+(?!\.))|(?:0|[1-9][0-9]*(?!\.))/,STRING:/"([^"\\]|\\.)*"|'([^'\\]|\\.)*'/,ID:/[\w]([-\w]*\w)?/,NEWLINE:/\r?\n/,WHITESPACE:/[\t ]+/,YAML:/---[\t ]*\r?\n(?:[\S\s]*?\r?\n)?---(?:\r?\n|(?!\S))/,DIRECTIVE:/[\t ]*%%{[\S\s]*?}%%(?:\r?\n|(?!\S))/,SINGLE_LINE_COMMENT:/[\t ]*%%[^\n\r]*/}})(KV||(KV={}));(t=>{t.Terminals={ACC_DESCR:/[\t ]*accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/[\t ]*accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,TITLE:/[\t ]*title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,TREEMAP_KEYWORD:/treemap-beta|treemap/,CLASS_DEF:/classDef\s+([a-zA-Z_][a-zA-Z0-9_]+)(?:\s+([^;\r\n]*))?(?:;)?/,STYLE_SEPARATOR:/:::/,SEPARATOR:/:/,COMMA:/,/,INDENTATION:/[ \t]{1,}/,WS:/[ \t]+/,ML_COMMENT:/\%\%[^\n]*/,NL:/\r?\n/,ID2:/[a-zA-Z_][a-zA-Z0-9_]*/,NUMBER2:/[0-9_\.\,]+/,STRING2:/"[^"]*"|'[^']*'/}})(QV||(QV={}));Wxr={...WV.Terminals,...HV.Terminals,...YV.Terminals,...jV.Terminals,...XV.Terminals,...KV.Terminals,...QV.Terminals},ju={$type:"Architecture",accDescr:"accDescr",accTitle:"accTitle",edges:"edges",groups:"groups",junctions:"junctions",services:"services",title:"title"};o(GTe,"isArchitecture");kt(GTe,"isArchitecture");r7={$type:"Axis",label:"label",name:"name"},i3={$type:"Branch",name:"name",order:"order"};o(VTe,"isBranch");kt(VTe,"isBranch");MTe={$type:"Checkout",branch:"branch"},n7={$type:"CherryPicking",id:"id",parent:"parent",tags:"tags"},$V={$type:"ClassDefStatement",className:"className",styleText:"styleText"},Bm={$type:"Commit",id:"id",message:"message",tags:"tags",type:"type"};o(qTe,"isCommit");kt(qTe,"isCommit");i7={$type:"Curve",entries:"entries",label:"label",name:"name"},Av={$type:"Direction",accDescr:"accDescr",accTitle:"accTitle",dir:"dir",statements:"statements",title:"title"},Yu={$type:"Edge",lhsDir:"lhsDir",lhsGroup:"lhsGroup",lhsId:"lhsId",lhsInto:"lhsInto",rhsDir:"rhsDir",rhsGroup:"rhsGroup",rhsId:"rhsId",rhsInto:"rhsInto",title:"title"},zV={$type:"Entry",axis:"axis",value:"value"},op={$type:"GitGraph",accDescr:"accDescr",accTitle:"accTitle",statements:"statements",title:"title"};o(UTe,"isGitGraph");kt(UTe,"isGitGraph");r3={$type:"Group",icon:"icon",id:"id",in:"in",title:"title"},Dv={$type:"Info",accDescr:"accDescr",accTitle:"accTitle",title:"title"};o(WTe,"isInfo");kt(WTe,"isInfo");n3={$type:"Item",classSelector:"classSelector",name:"name"},GV={$type:"Junction",id:"id",in:"in"},a7={$type:"Leaf",classSelector:"classSelector",name:"name",value:"value"},Fm={$type:"Merge",branch:"branch",id:"id",tags:"tags",type:"type"};o(HTe,"isMerge");kt(HTe,"isMerge");VV={$type:"Option",name:"name",value:"value"},$m={$type:"Packet",accDescr:"accDescr",accTitle:"accTitle",blocks:"blocks",title:"title"};o(YTe,"isPacket");kt(YTe,"isPacket");zm={$type:"PacketBlock",bits:"bits",end:"end",label:"label",start:"start"};o(jTe,"isPacketBlock");kt(jTe,"isPacketBlock");lp={$type:"Pie",accDescr:"accDescr",accTitle:"accTitle",sections:"sections",showData:"showData",title:"title"};o(XTe,"isPie");kt(XTe,"isPie");a3={$type:"PieSection",label:"label",value:"value"};o(KTe,"isPieSection");kt(KTe,"isPieSection");sp={$type:"Radar",accDescr:"accDescr",accTitle:"accTitle",axes:"axes",curves:"curves",options:"options",title:"title"},qV={$type:"Section",classSelector:"classSelector",name:"name"},_v={$type:"Service",icon:"icon",iconText:"iconText",id:"id",in:"in",title:"title"},Pm={$type:"Statement"},Gm={$type:"Treemap",accDescr:"accDescr",accTitle:"accTitle",title:"title",TreemapRows:"TreemapRows"};o(QTe,"isTreemap");kt(QTe,"isTreemap");UV={$type:"TreemapRow",indent:"indent",item:"item"},ZTe=class extends Y0{static{o(this,"MermaidAstReflection")}constructor(){super(...arguments),this.types={Architecture:{name:ju.$type,properties:{accDescr:{name:ju.accDescr},accTitle:{name:ju.accTitle},edges:{name:ju.edges,defaultValue:[]},groups:{name:ju.groups,defaultValue:[]},junctions:{name:ju.junctions,defaultValue:[]},services:{name:ju.services,defaultValue:[]},title:{name:ju.title}},superTypes:[]},Axis:{name:r7.$type,properties:{label:{name:r7.label},name:{name:r7.name}},superTypes:[]},Branch:{name:i3.$type,properties:{name:{name:i3.name},order:{name:i3.order}},superTypes:[Pm.$type]},Checkout:{name:MTe.$type,properties:{branch:{name:MTe.branch}},superTypes:[Pm.$type]},CherryPicking:{name:n7.$type,properties:{id:{name:n7.id},parent:{name:n7.parent},tags:{name:n7.tags,defaultValue:[]}},superTypes:[Pm.$type]},ClassDefStatement:{name:$V.$type,properties:{className:{name:$V.className},styleText:{name:$V.styleText}},superTypes:[]},Commit:{name:Bm.$type,properties:{id:{name:Bm.id},message:{name:Bm.message},tags:{name:Bm.tags,defaultValue:[]},type:{name:Bm.type}},superTypes:[Pm.$type]},Curve:{name:i7.$type,properties:{entries:{name:i7.entries,defaultValue:[]},label:{name:i7.label},name:{name:i7.name}},superTypes:[]},Direction:{name:Av.$type,properties:{accDescr:{name:Av.accDescr},accTitle:{name:Av.accTitle},dir:{name:Av.dir},statements:{name:Av.statements,defaultValue:[]},title:{name:Av.title}},superTypes:[op.$type]},Edge:{name:Yu.$type,properties:{lhsDir:{name:Yu.lhsDir},lhsGroup:{name:Yu.lhsGroup,defaultValue:!1},lhsId:{name:Yu.lhsId},lhsInto:{name:Yu.lhsInto,defaultValue:!1},rhsDir:{name:Yu.rhsDir},rhsGroup:{name:Yu.rhsGroup,defaultValue:!1},rhsId:{name:Yu.rhsId},rhsInto:{name:Yu.rhsInto,defaultValue:!1},title:{name:Yu.title}},superTypes:[]},Entry:{name:zV.$type,properties:{axis:{name:zV.axis,referenceType:r7.$type},value:{name:zV.value}},superTypes:[]},GitGraph:{name:op.$type,properties:{accDescr:{name:op.accDescr},accTitle:{name:op.accTitle},statements:{name:op.statements,defaultValue:[]},title:{name:op.title}},superTypes:[]},Group:{name:r3.$type,properties:{icon:{name:r3.icon},id:{name:r3.id},in:{name:r3.in},title:{name:r3.title}},superTypes:[]},Info:{name:Dv.$type,properties:{accDescr:{name:Dv.accDescr},accTitle:{name:Dv.accTitle},title:{name:Dv.title}},superTypes:[]},Item:{name:n3.$type,properties:{classSelector:{name:n3.classSelector},name:{name:n3.name}},superTypes:[]},Junction:{name:GV.$type,properties:{id:{name:GV.id},in:{name:GV.in}},superTypes:[]},Leaf:{name:a7.$type,properties:{classSelector:{name:a7.classSelector},name:{name:a7.name},value:{name:a7.value}},superTypes:[n3.$type]},Merge:{name:Fm.$type,properties:{branch:{name:Fm.branch},id:{name:Fm.id},tags:{name:Fm.tags,defaultValue:[]},type:{name:Fm.type}},superTypes:[Pm.$type]},Option:{name:VV.$type,properties:{name:{name:VV.name},value:{name:VV.value,defaultValue:!1}},superTypes:[]},Packet:{name:$m.$type,properties:{accDescr:{name:$m.accDescr},accTitle:{name:$m.accTitle},blocks:{name:$m.blocks,defaultValue:[]},title:{name:$m.title}},superTypes:[]},PacketBlock:{name:zm.$type,properties:{bits:{name:zm.bits},end:{name:zm.end},label:{name:zm.label},start:{name:zm.start}},superTypes:[]},Pie:{name:lp.$type,properties:{accDescr:{name:lp.accDescr},accTitle:{name:lp.accTitle},sections:{name:lp.sections,defaultValue:[]},showData:{name:lp.showData,defaultValue:!1},title:{name:lp.title}},superTypes:[]},PieSection:{name:a3.$type,properties:{label:{name:a3.label},value:{name:a3.value}},superTypes:[]},Radar:{name:sp.$type,properties:{accDescr:{name:sp.accDescr},accTitle:{name:sp.accTitle},axes:{name:sp.axes,defaultValue:[]},curves:{name:sp.curves,defaultValue:[]},options:{name:sp.options,defaultValue:[]},title:{name:sp.title}},superTypes:[]},Section:{name:qV.$type,properties:{classSelector:{name:qV.classSelector},name:{name:qV.name}},superTypes:[n3.$type]},Service:{name:_v.$type,properties:{icon:{name:_v.icon},iconText:{name:_v.iconText},id:{name:_v.id},in:{name:_v.in},title:{name:_v.title}},superTypes:[]},Statement:{name:Pm.$type,properties:{},superTypes:[]},Treemap:{name:Gm.$type,properties:{accDescr:{name:Gm.accDescr},accTitle:{name:Gm.accTitle},title:{name:Gm.title},TreemapRows:{name:Gm.TreemapRows,defaultValue:[]}},superTypes:[]},TreemapRow:{name:UV.$type,properties:{indent:{name:UV.indent},item:{name:UV.item}},superTypes:[]}}}static{kt(this,"MermaidAstReflection")}},Oc=new ZTe,lat=kt(()=>ITe??(ITe=Hu(`{"$type":"Grammar","isDeclared":true,"name":"ArchitectureGrammar","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Architecture","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"architecture-beta"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"*"}]},"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"groups","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"services","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"junctions","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"edges","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}}]},"entry":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"LeftPort","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"lhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},"entry":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"RightPort","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"rhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Keyword","value":":"}]},"entry":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"Arrow","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]},{"$type":"Assignment","feature":"lhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"--"},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]}},{"$type":"Keyword","value":"-"}]}]},{"$type":"Assignment","feature":"rhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}]},"entry":false,"parameters":[]},{"$type":"ParserRule","name":"Group","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"group"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@28"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Service","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"service"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"iconText","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@28"},"arguments":[]}}],"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Junction","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"junction"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Edge","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"lhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Assignment","feature":"lhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"rhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Assignment","feature":"rhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"TerminalRule","name":"ARROW_DIRECTION","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"L"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"R"},"parenthesized":false}],"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"T"},"parenthesized":false}],"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"B"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_GROUP","definition":{"$type":"RegexToken","regex":"/\\\\{group\\\\}/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_INTO","definition":{"$type":"RegexToken","regex":"/<|>/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}],"cardinality":"+"},"entry":false,"parameters":[]},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@18"},"parenthesized":false},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@19"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","name":"ARCH_ICON","definition":{"$type":"RegexToken","regex":"/\\\\([\\\\w-:]+\\\\)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_TITLE","definition":{"$type":"RegexToken","regex":"/\\\\[(?:\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'|[\\\\w ]+)\\\\]/","parenthesized":false},"fragment":false,"hidden":false}],"interfaces":[],"types":[]}`)),"ArchitectureGrammarGrammar"),cat=kt(()=>OTe??(OTe=Hu(`{"$type":"Grammar","isDeclared":true,"name":"GitGraphGrammar","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"GitGraph","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Keyword","value":":"}]},{"$type":"Keyword","value":"gitGraph:"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]},{"$type":"Keyword","value":":"}]}]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]},{"$type":"Assignment","feature":"statements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}}],"cardinality":"*"}]},"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Direction","definition":{"$type":"Assignment","feature":"dir","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"LR"},{"$type":"Keyword","value":"TB"},{"$type":"Keyword","value":"BT"}]}},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Commit","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"commit"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"msg:","cardinality":"?"},{"$type":"Assignment","feature":"message","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Branch","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"branch"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"order:"},{"$type":"Assignment","feature":"order","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Merge","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"merge"},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]}},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Checkout","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"checkout"},{"$type":"Keyword","value":"switch"}]},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"CherryPicking","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"cherry-pick"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"parent:"},{"$type":"Assignment","feature":"parent","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}],"cardinality":"+"},"entry":false,"parameters":[]},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@14"},"parenthesized":false},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@15"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","name":"REFERENCE","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\\\w([-\\\\./\\\\w]*[-\\\\w])?/","parenthesized":false},"fragment":false,"hidden":false}],"interfaces":[],"types":[]}`)),"GitGraphGrammarGrammar"),uat=kt(()=>PTe??(PTe=Hu(`{"$type":"Grammar","isDeclared":true,"name":"InfoGrammar","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Info","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"info"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"Keyword","value":"showInfo"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"*"}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"?"}]},"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"+"},"entry":false,"parameters":[]},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@7"},"parenthesized":false},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@8"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false}],"interfaces":[],"types":[]}`)),"InfoGrammarGrammar"),hat=kt(()=>BTe??(BTe=Hu(`{"$type":"Grammar","isDeclared":true,"name":"PacketGrammar","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Packet","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"packet"},{"$type":"Keyword","value":"packet-beta"}]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]},{"$type":"Assignment","feature":"blocks","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}],"cardinality":"*"}]},"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"PacketBlock","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Assignment","feature":"start","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"end","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}],"cardinality":"?"}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"+"},{"$type":"Assignment","feature":"bits","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]}]},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}],"cardinality":"+"},"entry":false,"parameters":[]},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@8"},"parenthesized":false},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@9"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false}],"interfaces":[],"types":[]}`)),"PacketGrammarGrammar"),fat=kt(()=>FTe??(FTe=Hu(`{"$type":"Grammar","isDeclared":true,"name":"PieGrammar","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Pie","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"pie"},{"$type":"Assignment","feature":"showData","operator":"?=","terminal":{"$type":"Keyword","value":"showData"},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]},{"$type":"Assignment","feature":"sections","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}],"cardinality":"*"}]},"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"PieSection","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"TerminalRule","name":"FLOAT_PIE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/-?[0-9]+\\\\.[0-9]+(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT_PIE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/-?(0|[1-9][0-9]*)(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER_PIE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@2"},"parenthesized":false},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@3"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}],"cardinality":"+"},"entry":false,"parameters":[]},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@11"},"parenthesized":false},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@12"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false}],"interfaces":[],"types":[]}`)),"PieGrammarGrammar"),dat=kt(()=>$Te??($Te=Hu(`{"$type":"Grammar","isDeclared":true,"name":"RadarGrammar","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Radar","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"radar-beta"},{"$type":"Keyword","value":"radar-beta:"},{"$type":"Group","elements":[{"$type":"Keyword","value":"radar-beta"},{"$type":"Keyword","value":":"}]}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]},{"$type":"Group","elements":[{"$type":"Keyword","value":"axis"},{"$type":"Assignment","feature":"axes","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"axes","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"curve"},{"$type":"Assignment","feature":"curves","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"curves","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"options","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"options","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}],"cardinality":"*"}]},"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"Label","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}},{"$type":"Keyword","value":"]"}]},"entry":false,"parameters":[]},{"$type":"ParserRule","name":"Axis","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"?"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Curve","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"?"},{"$type":"Keyword","value":"{"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Keyword","value":"}"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"Entries","definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"}]}]},"entry":false,"parameters":[]},{"$type":"ParserRule","name":"DetailedEntry","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"axis","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@2"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},"deprecatedSyntax":false,"isMulti":false}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"NumberEntry","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Option","definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"showLegend"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"ticks"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"max"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"min"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"graticule"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}}]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"TerminalRule","name":"GRATICULE","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"circle"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"polygon"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}],"cardinality":"+"},"entry":false,"parameters":[]},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@15"},"parenthesized":false},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@16"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false}],"interfaces":[{"$type":"Interface","name":"Entry","attributes":[{"$type":"TypeAttribute","name":"axis","isOptional":true,"type":{"$type":"ReferenceType","referenceType":{"$type":"SimpleType","typeRef":{"$ref":"#/rules@2"}},"isMulti":false}},{"$type":"TypeAttribute","name":"value","type":{"$type":"SimpleType","primitiveType":"number"},"isOptional":false}],"superTypes":[]}],"types":[]}`)),"RadarGrammarGrammar"),pat=kt(()=>zTe??(zTe=Hu(`{"$type":"Grammar","isDeclared":true,"name":"TreemapGrammar","rules":[{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}}],"cardinality":"+"},"entry":false,"parameters":[]},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"ParserRule","entry":true,"name":"Treemap","returnType":{"$ref":"#/interfaces@4"},"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@0"},"arguments":[]},{"$type":"Assignment","feature":"TreemapRows","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}}],"cardinality":"*"}]},"fragment":false,"parameters":[]},{"$type":"TerminalRule","name":"TREEMAP_KEYWORD","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"treemap-beta"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"treemap"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"CLASS_DEF","definition":{"$type":"RegexToken","regex":"/classDef\\\\s+([a-zA-Z_][a-zA-Z0-9_]+)(?:\\\\s+([^;\\\\r\\\\n]*))?(?:;)?/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STYLE_SEPARATOR","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":":::"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"SEPARATOR","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":":"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"COMMA","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":","},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INDENTATION","definition":{"$type":"RegexToken","regex":"/[ \\\\t]{1,}/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WS","definition":{"$type":"RegexToken","regex":"/[ \\\\t]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"ML_COMMENT","definition":{"$type":"RegexToken","regex":"/\\\\%\\\\%[^\\\\n]*/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"NL","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/","parenthesized":false},"fragment":false},{"$type":"ParserRule","name":"TreemapRow","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"indent","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"item","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"ClassDef","dataType":"string","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Item","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Section","returnType":{"$ref":"#/interfaces@1"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]},{"$type":"Assignment","feature":"classSelector","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}],"cardinality":"?"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Leaf","returnType":{"$ref":"#/interfaces@2"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[],"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[],"cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]},{"$type":"Assignment","feature":"classSelector","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}],"cardinality":"?"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"TerminalRule","name":"ID2","definition":{"$type":"RegexToken","regex":"/[a-zA-Z_][a-zA-Z0-9_]*/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER2","definition":{"$type":"RegexToken","regex":"/[0-9_\\\\.\\\\,]+/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"MyNumber","dataType":"number","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]},"entry":false,"fragment":false,"parameters":[]},{"$type":"TerminalRule","name":"STRING2","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|'[^']*'/","parenthesized":false},"fragment":false,"hidden":false}],"interfaces":[{"$type":"Interface","name":"Item","attributes":[{"$type":"TypeAttribute","name":"name","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false},{"$type":"TypeAttribute","name":"classSelector","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]},{"$type":"Interface","name":"Section","superTypes":[{"$ref":"#/interfaces@0"}],"attributes":[]},{"$type":"Interface","name":"Leaf","superTypes":[{"$ref":"#/interfaces@0"}],"attributes":[{"$type":"TypeAttribute","name":"value","type":{"$type":"SimpleType","primitiveType":"number"},"isOptional":false}]},{"$type":"Interface","name":"ClassDefStatement","attributes":[{"$type":"TypeAttribute","name":"className","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false},{"$type":"TypeAttribute","name":"styleText","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false}],"superTypes":[]},{"$type":"Interface","name":"Treemap","attributes":[{"$type":"TypeAttribute","name":"TreemapRows","type":{"$type":"ArrayType","elementType":{"$type":"SimpleType","typeRef":{"$ref":"#/rules@15"}}},"isOptional":false},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"imports":[],"types":[],"$comment":"/**\\n * Treemap grammar for Langium\\n * Converted from mindmap grammar\\n *\\n * The ML_COMMENT and NL hidden terminals handle whitespace, comments, and newlines\\n * before the treemap keyword, allowing for empty lines and comments before the\\n * treemap declaration.\\n */"}`)),"TreemapGrammarGrammar"),mat={languageId:"architecture",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},gat={languageId:"gitGraph",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},yat={languageId:"info",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},vat={languageId:"packet",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},xat={languageId:"pie",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},bat={languageId:"radar",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Tat={languageId:"treemap",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},qs={AstReflection:kt(()=>new ZTe,"AstReflection")},ZV={Grammar:kt(()=>lat(),"Grammar"),LanguageMetaData:kt(()=>mat,"LanguageMetaData"),parser:{}},JV={Grammar:kt(()=>cat(),"Grammar"),LanguageMetaData:kt(()=>gat,"LanguageMetaData"),parser:{}},eq={Grammar:kt(()=>uat(),"Grammar"),LanguageMetaData:kt(()=>yat,"LanguageMetaData"),parser:{}},tq={Grammar:kt(()=>hat(),"Grammar"),LanguageMetaData:kt(()=>vat,"LanguageMetaData"),parser:{}},rq={Grammar:kt(()=>fat(),"Grammar"),LanguageMetaData:kt(()=>xat,"LanguageMetaData"),parser:{}},nq={Grammar:kt(()=>dat(),"Grammar"),LanguageMetaData:kt(()=>bat,"LanguageMetaData"),parser:{}},iq={Grammar:kt(()=>pat(),"Grammar"),LanguageMetaData:kt(()=>Tat,"LanguageMetaData"),parser:{}},wat=/accDescr(?:[\t ]*:([^\n\r]*)|\s*{([^}]*)})/,kat=/accTitle[\t ]*:([^\n\r]*)/,Eat=/title([\t ][^\n\r]*|)/,Sat={ACC_DESCR:wat,ACC_TITLE:kat,TITLE:Eat},cp=class extends Sm{static{o(this,"AbstractMermaidValueConverter")}static{kt(this,"AbstractMermaidValueConverter")}runConverter(t,e,r){let n=this.runCommonConverter(t,e,r);return n===void 0&&(n=this.runCustomConverter(t,e,r)),n===void 0?super.runConverter(t,e,r):n}runCommonConverter(t,e,r){let n=Sat[t.name];if(n===void 0)return;let i=n.exec(e);if(i!==null){if(i[1]!==void 0)return i[1].trim().replace(/[\t ]{2,}/gm," ");if(i[2]!==void 0)return i[2].replace(/^\s*/gm,"").replace(/\s+$/gm,"").replace(/[\t ]{2,}/gm," ").replace(/[\n\r]{2,}/gm,` +`)}}},rf=class extends cp{static{o(this,"CommonValueConverter")}static{kt(this,"CommonValueConverter")}runCustomConverter(t,e,r){}},ms=class extends ef{static{o(this,"AbstractMermaidTokenBuilder")}static{kt(this,"AbstractMermaidTokenBuilder")}constructor(t){super(),this.keywords=new Set(t)}buildKeywordTokens(t,e,r){let n=super.buildKeywordTokens(t,e,r);return n.forEach(i=>{this.keywords.has(i.name)&&i.PATTERN!==void 0&&(i.PATTERN=new RegExp(i.PATTERN.toString()+"(?:(?=%%)|(?!\\S))"))}),n}},Cat=class extends ms{static{o(this,"CommonTokenBuilder")}static{kt(this,"CommonTokenBuilder")}}});function o7(t=Xa){let e=ii(ja(t),qs),r=ii(Ya({shared:e}),JV,s7);return e.ServiceRegistry.register(r),{shared:e,GitGraph:r}}var Aat,s7,aq=O(()=>{"use strict";gs();tl();Aat=class extends ms{static{o(this,"GitGraphTokenBuilder")}static{kt(this,"GitGraphTokenBuilder")}constructor(){super(["gitGraph"])}},s7={parser:{TokenBuilder:kt(()=>new Aat,"TokenBuilder"),ValueConverter:kt(()=>new rf,"ValueConverter")}};o(o7,"createGitGraphServices");kt(o7,"createGitGraphServices")});function c7(t=Xa){let e=ii(ja(t),qs),r=ii(Ya({shared:e}),eq,l7);return e.ServiceRegistry.register(r),{shared:e,Info:r}}var _at,l7,sq=O(()=>{"use strict";gs();tl();_at=class extends ms{static{o(this,"InfoTokenBuilder")}static{kt(this,"InfoTokenBuilder")}constructor(){super(["info","showInfo"])}},l7={parser:{TokenBuilder:kt(()=>new _at,"TokenBuilder"),ValueConverter:kt(()=>new rf,"ValueConverter")}};o(c7,"createInfoServices");kt(c7,"createInfoServices")});function h7(t=Xa){let e=ii(ja(t),qs),r=ii(Ya({shared:e}),tq,u7);return e.ServiceRegistry.register(r),{shared:e,Packet:r}}var Dat,u7,oq=O(()=>{"use strict";gs();tl();Dat=class extends ms{static{o(this,"PacketTokenBuilder")}static{kt(this,"PacketTokenBuilder")}constructor(){super(["packet"])}},u7={parser:{TokenBuilder:kt(()=>new Dat,"TokenBuilder"),ValueConverter:kt(()=>new rf,"ValueConverter")}};o(h7,"createPacketServices");kt(h7,"createPacketServices")});function d7(t=Xa){let e=ii(ja(t),qs),r=ii(Ya({shared:e}),rq,f7);return e.ServiceRegistry.register(r),{shared:e,Pie:r}}var Rat,Lat,f7,lq=O(()=>{"use strict";gs();tl();Rat=class extends ms{static{o(this,"PieTokenBuilder")}static{kt(this,"PieTokenBuilder")}constructor(){super(["pie","showData"])}},Lat=class extends cp{static{o(this,"PieValueConverter")}static{kt(this,"PieValueConverter")}runCustomConverter(t,e,r){if(t.name==="PIE_SECTION_LABEL")return e.replace(/"/g,"").trim()}},f7={parser:{TokenBuilder:kt(()=>new Rat,"TokenBuilder"),ValueConverter:kt(()=>new Lat,"ValueConverter")}};o(d7,"createPieServices");kt(d7,"createPieServices")});function m7(t=Xa){let e=ii(ja(t),qs),r=ii(Ya({shared:e}),ZV,p7);return e.ServiceRegistry.register(r),{shared:e,Architecture:r}}var Nat,Mat,p7,cq=O(()=>{"use strict";gs();tl();Nat=class extends ms{static{o(this,"ArchitectureTokenBuilder")}static{kt(this,"ArchitectureTokenBuilder")}constructor(){super(["architecture"])}},Mat=class extends cp{static{o(this,"ArchitectureValueConverter")}static{kt(this,"ArchitectureValueConverter")}runCustomConverter(t,e,r){if(t.name==="ARCH_ICON")return e.replace(/[()]/g,"").trim();if(t.name==="ARCH_TEXT_ICON")return e.replace(/["()]/g,"");if(t.name==="ARCH_TITLE"){let n=e.replace(/^\[|]$/g,"").trim();return(n.startsWith('"')&&n.endsWith('"')||n.startsWith("'")&&n.endsWith("'"))&&(n=n.slice(1,-1),n=n.replace(/\\"/g,'"').replace(/\\'/g,"'")),n.trim()}}},p7={parser:{TokenBuilder:kt(()=>new Nat,"TokenBuilder"),ValueConverter:kt(()=>new Mat,"ValueConverter")}};o(m7,"createArchitectureServices");kt(m7,"createArchitectureServices")});function y7(t=Xa){let e=ii(ja(t),qs),r=ii(Ya({shared:e}),nq,g7);return e.ServiceRegistry.register(r),{shared:e,Radar:r}}var Iat,g7,uq=O(()=>{"use strict";gs();tl();Iat=class extends ms{static{o(this,"RadarTokenBuilder")}static{kt(this,"RadarTokenBuilder")}constructor(){super(["radar-beta"])}},g7={parser:{TokenBuilder:kt(()=>new Iat,"TokenBuilder"),ValueConverter:kt(()=>new rf,"ValueConverter")}};o(y7,"createRadarServices");kt(y7,"createRadarServices")});function JTe(t){let e=t.validation.TreemapValidator,r=t.validation.ValidationRegistry;if(r){let n={Treemap:e.checkSingleRoot.bind(e)};r.register(n,e)}}function x7(t=Xa){let e=ii(ja(t),qs),r=ii(Ya({shared:e}),iq,v7);return e.ServiceRegistry.register(r),JTe(r),{shared:e,Treemap:r}}var Oat,Pat,Bat,Fat,v7,hq=O(()=>{"use strict";gs();tl();Oat=class extends ms{static{o(this,"TreemapTokenBuilder")}static{kt(this,"TreemapTokenBuilder")}constructor(){super(["treemap"])}},Pat=/classDef\s+([A-Z_a-z]\w+)(?:\s+([^\n\r;]*))?;?/,Bat=class extends cp{static{o(this,"TreemapValueConverter")}static{kt(this,"TreemapValueConverter")}runCustomConverter(t,e,r){if(t.name==="NUMBER2")return parseFloat(e.replace(/,/g,""));if(t.name==="SEPARATOR")return e.substring(1,e.length-1);if(t.name==="STRING2")return e.substring(1,e.length-1);if(t.name==="INDENTATION")return e.length;if(t.name==="ClassDef"){if(typeof e!="string")return e;let n=Pat.exec(e);if(n)return{$type:"ClassDefStatement",className:n[1],styleText:n[2]||void 0}}}};o(JTe,"registerValidationChecks");kt(JTe,"registerValidationChecks");Fat=class{static{o(this,"TreemapValidator")}static{kt(this,"TreemapValidator")}checkSingleRoot(t,e){let r;for(let n of t.TreemapRows)n.item&&(r===void 0&&n.indent===void 0?r=0:n.indent===void 0?e("error","Multiple root nodes are not allowed in a treemap.",{node:n,property:"item"}):r!==void 0&&r>=parseInt(n.indent,10)&&e("error","Multiple root nodes are not allowed in a treemap.",{node:n,property:"item"}))}},v7={parser:{TokenBuilder:kt(()=>new Oat,"TokenBuilder"),ValueConverter:kt(()=>new Bat,"ValueConverter")},validation:{TreemapValidator:kt(()=>new Fat,"TreemapValidator")}};o(x7,"createTreemapServices");kt(x7,"createTreemapServices")});var e4e={};vr(e4e,{InfoModule:()=>l7,createInfoServices:()=>c7});var t4e=O(()=>{"use strict";sq();gs()});var r4e={};vr(r4e,{PacketModule:()=>u7,createPacketServices:()=>h7});var n4e=O(()=>{"use strict";oq();gs()});var i4e={};vr(i4e,{PieModule:()=>f7,createPieServices:()=>d7});var a4e=O(()=>{"use strict";lq();gs()});var s4e={};vr(s4e,{ArchitectureModule:()=>p7,createArchitectureServices:()=>m7});var o4e=O(()=>{"use strict";cq();gs()});var l4e={};vr(l4e,{GitGraphModule:()=>s7,createGitGraphServices:()=>o7});var c4e=O(()=>{"use strict";aq();gs()});var u4e={};vr(u4e,{RadarModule:()=>g7,createRadarServices:()=>y7});var h4e=O(()=>{"use strict";uq();gs()});var f4e={};vr(f4e,{TreemapModule:()=>v7,createTreemapServices:()=>x7});var d4e=O(()=>{"use strict";hq();gs()});async function Us(t,e){let r=$at[t];if(!r)throw new Error(`Unknown diagram type: ${t}`);nf[t]||await r();let i=nf[t].parse(e);if(i.lexerErrors.length>0||i.parserErrors.length>0)throw new zat(i);return i.value}var nf,$at,zat,up=O(()=>{"use strict";aq();sq();oq();lq();cq();uq();hq();gs();nf={},$at={info:kt(async()=>{let{createInfoServices:t}=await Promise.resolve().then(()=>(t4e(),e4e)),e=t().Info.parser.LangiumParser;nf.info=e},"info"),packet:kt(async()=>{let{createPacketServices:t}=await Promise.resolve().then(()=>(n4e(),r4e)),e=t().Packet.parser.LangiumParser;nf.packet=e},"packet"),pie:kt(async()=>{let{createPieServices:t}=await Promise.resolve().then(()=>(a4e(),i4e)),e=t().Pie.parser.LangiumParser;nf.pie=e},"pie"),architecture:kt(async()=>{let{createArchitectureServices:t}=await Promise.resolve().then(()=>(o4e(),s4e)),e=t().Architecture.parser.LangiumParser;nf.architecture=e},"architecture"),gitGraph:kt(async()=>{let{createGitGraphServices:t}=await Promise.resolve().then(()=>(c4e(),l4e)),e=t().GitGraph.parser.LangiumParser;nf.gitGraph=e},"gitGraph"),radar:kt(async()=>{let{createRadarServices:t}=await Promise.resolve().then(()=>(h4e(),u4e)),e=t().Radar.parser.LangiumParser;nf.radar=e},"radar"),treemap:kt(async()=>{let{createTreemapServices:t}=await Promise.resolve().then(()=>(d4e(),f4e)),e=t().Treemap.parser.LangiumParser;nf.treemap=e},"treemap")};o(Us,"parse");kt(Us,"parse");zat=class extends Error{static{o(this,"MermaidParseError")}constructor(t){let e=t.lexerErrors.map(n=>{let i=n.line!==void 0&&!isNaN(n.line)?n.line:"?",a=n.column!==void 0&&!isNaN(n.column)?n.column:"?";return`Lexer error on line ${i}, column ${a}: ${n.message}`}).join(` +`),r=t.parserErrors.map(n=>{let i=n.token.startLine!==void 0&&!isNaN(n.token.startLine)?n.token.startLine:"?",a=n.token.startColumn!==void 0&&!isNaN(n.token.startColumn)?n.token.startColumn:"?";return`Parse error on line ${i}, column ${a}: ${n.message}`}).join(` +`);super(`Parsing failed: ${e} ${r}`),this.result=t}static{kt(this,"MermaidParseError")}}});function ql(t,e){t.accDescr&&e.setAccDescription?.(t.accDescr),t.accTitle&&e.setAccTitle?.(t.accTitle),t.title&&e.setDiagramTitle?.(t.title)}var Vm=O(()=>{"use strict";o(ql,"populateCommonDb")});var gn,b7=O(()=>{"use strict";gn={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4}});var Rv,fq=O(()=>{"use strict";Rv=class{constructor(e){this.init=e;this.records=this.init()}static{o(this,"ImperativeState")}reset(){this.records=this.init()}}});function dq(){return NN({length:7})}function Vat(t,e){let r=Object.create(null);return t.reduce((n,i)=>{let a=e(i);return r[a]||(r[a]=!0,n.push(i)),n},[])}function p4e(t,e,r){let n=t.indexOf(e);n===-1?t.push(r):t.splice(n,1,r)}function g4e(t){let e=t.reduce((i,a)=>i.seq>a.seq?i:a,t[0]),r="";t.forEach(function(i){i===e?r+=" *":r+=" |"});let n=[r,e.id,e.seq];for(let i in Mt.records.branches)Mt.records.branches.get(i)===e.id&&n.push(i);if(K.debug(n.join(" ")),e.parents&&e.parents.length==2&&e.parents[0]&&e.parents[1]){let i=Mt.records.commits.get(e.parents[0]);p4e(t,e,i),e.parents[1]&&t.push(Mt.records.commits.get(e.parents[1]))}else{if(e.parents.length==0)return;if(e.parents[0]){let i=Mt.records.commits.get(e.parents[0]);p4e(t,e,i)}}t=Vat(t,i=>i.id),g4e(t)}var Gat,qm,Mt,qat,Uat,Wat,Hat,Yat,jat,Xat,m4e,Kat,Qat,Zat,Jat,est,y4e,tst,rst,nst,T7,pq=O(()=>{"use strict";xt();ar();$r();Ur();si();b7();fq();La();Gat=gr.gitGraph,qm=o(()=>Pn({...Gat,...Zt().gitGraph}),"getConfig"),Mt=new Rv(()=>{let t=qm(),e=t.mainBranchName,r=t.mainBranchOrder;return{mainBranchName:e,commits:new Map,head:null,branchConfig:new Map([[e,{name:e,order:r}]]),branches:new Map([[e,null]]),currBranch:e,direction:"LR",seq:0,options:{}}});o(dq,"getID");o(Vat,"uniqBy");qat=o(function(t){Mt.records.direction=t},"setDirection"),Uat=o(function(t){K.debug("options str",t),t=t?.trim(),t=t||"{}";try{Mt.records.options=JSON.parse(t)}catch(e){K.error("error while parsing gitGraph options",e.message)}},"setOptions"),Wat=o(function(){return Mt.records.options},"getOptions"),Hat=o(function(t){let e=t.msg,r=t.id,n=t.type,i=t.tags;K.info("commit",e,r,n,i),K.debug("Entering commit:",e,r,n,i);let a=qm();r=st.sanitizeText(r,a),e=st.sanitizeText(e,a),i=i?.map(l=>st.sanitizeText(l,a));let s={id:r||Mt.records.seq+"-"+dq(),message:e,seq:Mt.records.seq++,type:n??gn.NORMAL,tags:i??[],parents:Mt.records.head==null?[]:[Mt.records.head.id],branch:Mt.records.currBranch};Mt.records.head=s,K.info("main branch",a.mainBranchName),Mt.records.commits.has(s.id)&&K.warn(`Commit ID ${s.id} already exists`),Mt.records.commits.set(s.id,s),Mt.records.branches.set(Mt.records.currBranch,s.id),K.debug("in pushCommit "+s.id)},"commit"),Yat=o(function(t){let e=t.name,r=t.order;if(e=st.sanitizeText(e,qm()),Mt.records.branches.has(e))throw new Error(`Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout ${e}")`);Mt.records.branches.set(e,Mt.records.head!=null?Mt.records.head.id:null),Mt.records.branchConfig.set(e,{name:e,order:r}),m4e(e),K.debug("in createBranch")},"branch"),jat=o(t=>{let e=t.branch,r=t.id,n=t.type,i=t.tags,a=qm();e=st.sanitizeText(e,a),r&&(r=st.sanitizeText(r,a));let s=Mt.records.branches.get(Mt.records.currBranch),l=Mt.records.branches.get(e),u=s?Mt.records.commits.get(s):void 0,h=l?Mt.records.commits.get(l):void 0;if(u&&h&&u.branch===e)throw new Error(`Cannot merge branch '${e}' into itself.`);if(Mt.records.currBranch===e){let p=new Error('Incorrect usage of "merge". Cannot merge a branch to itself');throw p.hash={text:`merge ${e}`,token:`merge ${e}`,expected:["branch abc"]},p}if(u===void 0||!u){let p=new Error(`Incorrect usage of "merge". Current branch (${Mt.records.currBranch})has no commits`);throw p.hash={text:`merge ${e}`,token:`merge ${e}`,expected:["commit"]},p}if(!Mt.records.branches.has(e)){let p=new Error('Incorrect usage of "merge". Branch to be merged ('+e+") does not exist");throw p.hash={text:`merge ${e}`,token:`merge ${e}`,expected:[`branch ${e}`]},p}if(h===void 0||!h){let p=new Error('Incorrect usage of "merge". Branch to be merged ('+e+") has no commits");throw p.hash={text:`merge ${e}`,token:`merge ${e}`,expected:['"commit"']},p}if(u===h){let p=new Error('Incorrect usage of "merge". Both branches have same head');throw p.hash={text:`merge ${e}`,token:`merge ${e}`,expected:["branch abc"]},p}if(r&&Mt.records.commits.has(r)){let p=new Error('Incorrect usage of "merge". Commit with id:'+r+" already exists, use different custom id");throw p.hash={text:`merge ${e} ${r} ${n} ${i?.join(" ")}`,token:`merge ${e} ${r} ${n} ${i?.join(" ")}`,expected:[`merge ${e} ${r}_UNIQUE ${n} ${i?.join(" ")}`]},p}let f=l||"",d={id:r||`${Mt.records.seq}-${dq()}`,message:`merged branch ${e} into ${Mt.records.currBranch}`,seq:Mt.records.seq++,parents:Mt.records.head==null?[]:[Mt.records.head.id,f],branch:Mt.records.currBranch,type:gn.MERGE,customType:n,customId:!!r,tags:i??[]};Mt.records.head=d,Mt.records.commits.set(d.id,d),Mt.records.branches.set(Mt.records.currBranch,d.id),K.debug(Mt.records.branches),K.debug("in mergeBranch")},"merge"),Xat=o(function(t){let e=t.id,r=t.targetId,n=t.tags,i=t.parent;K.debug("Entering cherryPick:",e,r,n);let a=qm();if(e=st.sanitizeText(e,a),r=st.sanitizeText(r,a),n=n?.map(u=>st.sanitizeText(u,a)),i=st.sanitizeText(i,a),!e||!Mt.records.commits.has(e)){let u=new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');throw u.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]},u}let s=Mt.records.commits.get(e);if(s===void 0||!s)throw new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');if(i&&!(Array.isArray(s.parents)&&s.parents.includes(i)))throw new Error("Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit.");let l=s.branch;if(s.type===gn.MERGE&&!i)throw new Error("Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified.");if(!r||!Mt.records.commits.has(r)){if(l===Mt.records.currBranch){let d=new Error('Incorrect usage of "cherryPick". Source commit is already on current branch');throw d.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]},d}let u=Mt.records.branches.get(Mt.records.currBranch);if(u===void 0||!u){let d=new Error(`Incorrect usage of "cherry-pick". Current branch (${Mt.records.currBranch})has no commits`);throw d.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]},d}let h=Mt.records.commits.get(u);if(h===void 0||!h){let d=new Error(`Incorrect usage of "cherry-pick". Current branch (${Mt.records.currBranch})has no commits`);throw d.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]},d}let f={id:Mt.records.seq+"-"+dq(),message:`cherry-picked ${s?.message} into ${Mt.records.currBranch}`,seq:Mt.records.seq++,parents:Mt.records.head==null?[]:[Mt.records.head.id,s.id],branch:Mt.records.currBranch,type:gn.CHERRY_PICK,tags:n?n.filter(Boolean):[`cherry-pick:${s.id}${s.type===gn.MERGE?`|parent:${i}`:""}`]};Mt.records.head=f,Mt.records.commits.set(f.id,f),Mt.records.branches.set(Mt.records.currBranch,f.id),K.debug(Mt.records.branches),K.debug("in cherryPick")}},"cherryPick"),m4e=o(function(t){if(t=st.sanitizeText(t,qm()),Mt.records.branches.has(t)){Mt.records.currBranch=t;let e=Mt.records.branches.get(Mt.records.currBranch);e===void 0||!e?Mt.records.head=null:Mt.records.head=Mt.records.commits.get(e)??null}else{let e=new Error(`Trying to checkout branch which is not yet created. (Help try using "branch ${t}")`);throw e.hash={text:`checkout ${t}`,token:`checkout ${t}`,expected:[`branch ${t}`]},e}},"checkout");o(p4e,"upsert");o(g4e,"prettyPrintCommitHistory");Kat=o(function(){K.debug(Mt.records.commits);let t=y4e()[0];g4e([t])},"prettyPrint"),Qat=o(function(){Mt.reset(),_r()},"clear"),Zat=o(function(){return[...Mt.records.branchConfig.values()].map((e,r)=>e.order!==null&&e.order!==void 0?e:{...e,order:parseFloat(`0.${r}`)}).sort((e,r)=>(e.order??0)-(r.order??0)).map(({name:e})=>({name:e}))},"getBranchesAsObjArray"),Jat=o(function(){return Mt.records.branches},"getBranches"),est=o(function(){return Mt.records.commits},"getCommits"),y4e=o(function(){let t=[...Mt.records.commits.values()];return t.forEach(function(e){K.debug(e.id)}),t.sort((e,r)=>e.seq-r.seq),t},"getCommitsArray"),tst=o(function(){return Mt.records.currBranch},"getCurrentBranch"),rst=o(function(){return Mt.records.direction},"getDirection"),nst=o(function(){return Mt.records.head},"getHead"),T7={commitType:gn,getConfig:qm,setDirection:qat,setOptions:Uat,getOptions:Wat,commit:Hat,branch:Yat,merge:jat,cherryPick:Xat,checkout:m4e,prettyPrint:Kat,clear:Qat,getBranchesAsObjArray:Zat,getBranches:Jat,getCommits:est,getCommitsArray:y4e,getCurrentBranch:tst,getDirection:rst,getHead:nst,setAccTitle:Lr,getAccTitle:Or,getAccDescription:Br,setAccDescription:Pr,setDiagramTitle:zr,getDiagramTitle:Fr}});var ist,ast,sst,ost,lst,cst,ust,v4e,x4e=O(()=>{"use strict";up();xt();Vm();pq();b7();ist=o((t,e)=>{ql(t,e),t.dir&&e.setDirection(t.dir);for(let r of t.statements)ast(r,e)},"populate"),ast=o((t,e)=>{let n={Commit:o(i=>e.commit(sst(i)),"Commit"),Branch:o(i=>e.branch(ost(i)),"Branch"),Merge:o(i=>e.merge(lst(i)),"Merge"),Checkout:o(i=>e.checkout(cst(i)),"Checkout"),CherryPicking:o(i=>e.cherryPick(ust(i)),"CherryPicking")}[t.$type];n?n(t):K.error(`Unknown statement type: ${t.$type}`)},"parseStatement"),sst=o(t=>({id:t.id,msg:t.message??"",type:t.type!==void 0?gn[t.type]:gn.NORMAL,tags:t.tags??void 0}),"parseCommit"),ost=o(t=>({name:t.name,order:t.order??0}),"parseBranch"),lst=o(t=>({branch:t.branch,id:t.id??"",type:t.type!==void 0?gn[t.type]:void 0,tags:t.tags??void 0}),"parseMerge"),cst=o(t=>t.branch,"parseCheckout"),ust=o(t=>({id:t.id,targetId:"",tags:t.tags?.length===0?void 0:t.tags,parent:t.parent}),"parseCherryPicking"),v4e={parse:o(async t=>{let e=await Us("gitGraph",t);K.debug(e),ist(e,T7)},"parse")}});var fp,dp,Xu,af,Um,Do,Ro,w7,s3,k7,hp,en,hst,T4e,w4e,fst,dst,pst,mst,gst,yst,vst,xst,bst,Tst,wst,kst,b4e,Est,o3,Sst,Cst,Ast,_st,Dst,k4e,E4e=O(()=>{"use strict";Ar();jt();xt();ar();b7();fp=10,dp=40,Xu=4,af=2,Um=8,Do=new Map,Ro=new Map,w7=30,s3=new Map,k7=[],hp=0,en="LR",hst=o(()=>{Do.clear(),Ro.clear(),s3.clear(),hp=0,k7=[],en="LR"},"clear"),T4e=o(t=>{let e=document.createElementNS("http://www.w3.org/2000/svg","text");return(typeof t=="string"?t.split(/\\n|\n|/gi):t).forEach(n=>{let i=document.createElementNS("http://www.w3.org/2000/svg","tspan");i.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),i.setAttribute("dy","1em"),i.setAttribute("x","0"),i.setAttribute("class","row"),i.textContent=n.trim(),e.appendChild(i)}),e},"drawText"),w4e=o(t=>{let e,r,n;return en==="BT"?(r=o((i,a)=>i<=a,"comparisonFunc"),n=1/0):(r=o((i,a)=>i>=a,"comparisonFunc"),n=0),t.forEach(i=>{let a=en==="TB"||en=="BT"?Ro.get(i)?.y:Ro.get(i)?.x;a!==void 0&&r(a,n)&&(e=i,n=a)}),e},"findClosestParent"),fst=o(t=>{let e="",r=1/0;return t.forEach(n=>{let i=Ro.get(n).y;i<=r&&(e=n,r=i)}),e||void 0},"findClosestParentBT"),dst=o((t,e,r)=>{let n=r,i=r,a=[];t.forEach(s=>{let l=e.get(s);if(!l)throw new Error(`Commit not found for key ${s}`);l.parents.length?(n=mst(l),i=Math.max(n,i)):a.push(l),gst(l,n)}),n=i,a.forEach(s=>{yst(s,n,r)}),t.forEach(s=>{let l=e.get(s);if(l?.parents.length){let u=fst(l.parents);n=Ro.get(u).y-dp,n<=i&&(i=n);let h=Do.get(l.branch).pos,f=n-fp;Ro.set(l.id,{x:h,y:f})}})},"setParallelBTPos"),pst=o(t=>{let e=w4e(t.parents.filter(n=>n!==null));if(!e)throw new Error(`Closest parent not found for commit ${t.id}`);let r=Ro.get(e)?.y;if(r===void 0)throw new Error(`Closest parent position not found for commit ${t.id}`);return r},"findClosestParentPos"),mst=o(t=>pst(t)+dp,"calculateCommitPosition"),gst=o((t,e)=>{let r=Do.get(t.branch);if(!r)throw new Error(`Branch not found for commit ${t.id}`);let n=r.pos,i=e+fp;return Ro.set(t.id,{x:n,y:i}),{x:n,y:i}},"setCommitPosition"),yst=o((t,e,r)=>{let n=Do.get(t.branch);if(!n)throw new Error(`Branch not found for commit ${t.id}`);let i=e+r,a=n.pos;Ro.set(t.id,{x:a,y:i})},"setRootPosition"),vst=o((t,e,r,n,i,a)=>{if(a===gn.HIGHLIGHT)t.append("rect").attr("x",r.x-10).attr("y",r.y-10).attr("width",20).attr("height",20).attr("class",`commit ${e.id} commit-highlight${i%Um} ${n}-outer`),t.append("rect").attr("x",r.x-6).attr("y",r.y-6).attr("width",12).attr("height",12).attr("class",`commit ${e.id} commit${i%Um} ${n}-inner`);else if(a===gn.CHERRY_PICK)t.append("circle").attr("cx",r.x).attr("cy",r.y).attr("r",10).attr("class",`commit ${e.id} ${n}`),t.append("circle").attr("cx",r.x-3).attr("cy",r.y+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${e.id} ${n}`),t.append("circle").attr("cx",r.x+3).attr("cy",r.y+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${e.id} ${n}`),t.append("line").attr("x1",r.x+3).attr("y1",r.y+1).attr("x2",r.x).attr("y2",r.y-5).attr("stroke","#fff").attr("class",`commit ${e.id} ${n}`),t.append("line").attr("x1",r.x-3).attr("y1",r.y+1).attr("x2",r.x).attr("y2",r.y-5).attr("stroke","#fff").attr("class",`commit ${e.id} ${n}`);else{let s=t.append("circle");if(s.attr("cx",r.x),s.attr("cy",r.y),s.attr("r",e.type===gn.MERGE?9:10),s.attr("class",`commit ${e.id} commit${i%Um}`),a===gn.MERGE){let l=t.append("circle");l.attr("cx",r.x),l.attr("cy",r.y),l.attr("r",6),l.attr("class",`commit ${n} ${e.id} commit${i%Um}`)}a===gn.REVERSE&&t.append("path").attr("d",`M ${r.x-5},${r.y-5}L${r.x+5},${r.y+5}M${r.x-5},${r.y+5}L${r.x+5},${r.y-5}`).attr("class",`commit ${n} ${e.id} commit${i%Um}`)}},"drawCommitBullet"),xst=o((t,e,r,n,i)=>{if(e.type!==gn.CHERRY_PICK&&(e.customId&&e.type===gn.MERGE||e.type!==gn.MERGE)&&i.showCommitLabel){let a=t.append("g"),s=a.insert("rect").attr("class","commit-label-bkg"),l=a.append("text").attr("x",n).attr("y",r.y+25).attr("class","commit-label").text(e.id),u=l.node()?.getBBox();if(u&&(s.attr("x",r.posWithOffset-u.width/2-af).attr("y",r.y+13.5).attr("width",u.width+2*af).attr("height",u.height+2*af),en==="TB"||en==="BT"?(s.attr("x",r.x-(u.width+4*Xu+5)).attr("y",r.y-12),l.attr("x",r.x-(u.width+4*Xu)).attr("y",r.y+u.height-12)):l.attr("x",r.posWithOffset-u.width/2),i.rotateCommitLabel))if(en==="TB"||en==="BT")l.attr("transform","rotate(-45, "+r.x+", "+r.y+")"),s.attr("transform","rotate(-45, "+r.x+", "+r.y+")");else{let h=-7.5-(u.width+10)/25*9.5,f=10+u.width/25*8.5;a.attr("transform","translate("+h+", "+f+") rotate(-45, "+n+", "+r.y+")")}}},"drawCommitLabel"),bst=o((t,e,r,n)=>{if(e.tags.length>0){let i=0,a=0,s=0,l=[];for(let u of e.tags.reverse()){let h=t.insert("polygon"),f=t.append("circle"),d=t.append("text").attr("y",r.y-16-i).attr("class","tag-label").text(u),p=d.node()?.getBBox();if(!p)throw new Error("Tag bbox not found");a=Math.max(a,p.width),s=Math.max(s,p.height),d.attr("x",r.posWithOffset-p.width/2),l.push({tag:d,hole:f,rect:h,yOffset:i}),i+=20}for(let{tag:u,hole:h,rect:f,yOffset:d}of l){let p=s/2,m=r.y-19.2-d;if(f.attr("class","tag-label-bkg").attr("points",` + ${n-a/2-Xu/2},${m+af} + ${n-a/2-Xu/2},${m-af} + ${r.posWithOffset-a/2-Xu},${m-p-af} + ${r.posWithOffset+a/2+Xu},${m-p-af} + ${r.posWithOffset+a/2+Xu},${m+p+af} + ${r.posWithOffset-a/2-Xu},${m+p+af}`),h.attr("cy",m).attr("cx",n-a/2+Xu/2).attr("r",1.5).attr("class","tag-hole"),en==="TB"||en==="BT"){let g=n+d;f.attr("class","tag-label-bkg").attr("points",` + ${r.x},${g+2} + ${r.x},${g-2} + ${r.x+fp},${g-p-2} + ${r.x+fp+a+4},${g-p-2} + ${r.x+fp+a+4},${g+p+2} + ${r.x+fp},${g+p+2}`).attr("transform","translate(12,12) rotate(45, "+r.x+","+n+")"),h.attr("cx",r.x+Xu/2).attr("cy",g).attr("transform","translate(12,12) rotate(45, "+r.x+","+n+")"),u.attr("x",r.x+5).attr("y",g+3).attr("transform","translate(14,14) rotate(45, "+r.x+","+n+")")}}}},"drawCommitTags"),Tst=o(t=>{switch(t.customType??t.type){case gn.NORMAL:return"commit-normal";case gn.REVERSE:return"commit-reverse";case gn.HIGHLIGHT:return"commit-highlight";case gn.MERGE:return"commit-merge";case gn.CHERRY_PICK:return"commit-cherry-pick";default:return"commit-normal"}},"getCommitClassType"),wst=o((t,e,r,n)=>{let i={x:0,y:0};if(t.parents.length>0){let a=w4e(t.parents);if(a){let s=n.get(a)??i;return e==="TB"?s.y+dp:e==="BT"?(n.get(t.id)??i).y-dp:s.x+dp}}else return e==="TB"?w7:e==="BT"?(n.get(t.id)??i).y-dp:0;return 0},"calculatePosition"),kst=o((t,e,r)=>{let n=en==="BT"&&r?e:e+fp,i=en==="TB"||en==="BT"?n:Do.get(t.branch)?.pos,a=en==="TB"||en==="BT"?Do.get(t.branch)?.pos:n;if(a===void 0||i===void 0)throw new Error(`Position were undefined for commit ${t.id}`);return{x:a,y:i,posWithOffset:n}},"getCommitPosition"),b4e=o((t,e,r,n)=>{let i=t.append("g").attr("class","commit-bullets"),a=t.append("g").attr("class","commit-labels"),s=en==="TB"||en==="BT"?w7:0,l=[...e.keys()],u=n.parallelCommits??!1,h=o((d,p)=>{let m=e.get(d)?.seq,g=e.get(p)?.seq;return m!==void 0&&g!==void 0?m-g:0},"sortKeys"),f=l.sort(h);en==="BT"&&(u&&dst(f,e,s),f=f.reverse()),f.forEach(d=>{let p=e.get(d);if(!p)throw new Error(`Commit not found for key ${d}`);u&&(s=wst(p,en,s,Ro));let m=kst(p,s,u);if(r){let g=Tst(p),y=p.customType??p.type,v=Do.get(p.branch)?.index??0;vst(i,p,m,g,v,y),xst(a,p,m,s,n),bst(a,p,m,s)}en==="TB"||en==="BT"?Ro.set(p.id,{x:m.x,y:m.posWithOffset}):Ro.set(p.id,{x:m.posWithOffset,y:m.y}),s=en==="BT"&&u?s+dp:s+dp+fp,s>hp&&(hp=s)})},"drawCommits"),Est=o((t,e,r,n,i)=>{let s=(en==="TB"||en==="BT"?r.xh.branch===s,"isOnBranchToGetCurve"),u=o(h=>h.seq>t.seq&&h.sequ(h)&&l(h))},"shouldRerouteArrow"),o3=o((t,e,r=0)=>{let n=t+Math.abs(t-e)/2;if(r>5)return n;if(k7.every(s=>Math.abs(s-n)>=10))return k7.push(n),n;let a=Math.abs(t-e);return o3(t,e-a/5,r+1)},"findLane"),Sst=o((t,e,r,n)=>{let i=Ro.get(e.id),a=Ro.get(r.id);if(i===void 0||a===void 0)throw new Error(`Commit positions not found for commits ${e.id} and ${r.id}`);let s=Est(e,r,i,a,n),l="",u="",h=0,f=0,d=Do.get(r.branch)?.index;r.type===gn.MERGE&&e.id!==r.parents[0]&&(d=Do.get(e.branch)?.index);let p;if(s){l="A 10 10, 0, 0, 0,",u="A 10 10, 0, 0, 1,",h=10,f=10;let m=i.ya.x&&(l="A 20 20, 0, 0, 0,",u="A 20 20, 0, 0, 1,",h=20,f=20,r.type===gn.MERGE&&e.id!==r.parents[0]?p=`M ${i.x} ${i.y} L ${i.x} ${a.y-h} ${u} ${i.x-f} ${a.y} L ${a.x} ${a.y}`:p=`M ${i.x} ${i.y} L ${a.x+h} ${i.y} ${l} ${a.x} ${i.y+f} L ${a.x} ${a.y}`),i.x===a.x&&(p=`M ${i.x} ${i.y} L ${a.x} ${a.y}`)):en==="BT"?(i.xa.x&&(l="A 20 20, 0, 0, 0,",u="A 20 20, 0, 0, 1,",h=20,f=20,r.type===gn.MERGE&&e.id!==r.parents[0]?p=`M ${i.x} ${i.y} L ${i.x} ${a.y+h} ${l} ${i.x-f} ${a.y} L ${a.x} ${a.y}`:p=`M ${i.x} ${i.y} L ${a.x+h} ${i.y} ${u} ${a.x} ${i.y-f} L ${a.x} ${a.y}`),i.x===a.x&&(p=`M ${i.x} ${i.y} L ${a.x} ${a.y}`)):(i.ya.y&&(r.type===gn.MERGE&&e.id!==r.parents[0]?p=`M ${i.x} ${i.y} L ${a.x-h} ${i.y} ${l} ${a.x} ${i.y-f} L ${a.x} ${a.y}`:p=`M ${i.x} ${i.y} L ${i.x} ${a.y+h} ${u} ${i.x+f} ${a.y} L ${a.x} ${a.y}`),i.y===a.y&&(p=`M ${i.x} ${i.y} L ${a.x} ${a.y}`));if(p===void 0)throw new Error("Line definition not found");t.append("path").attr("d",p).attr("class","arrow arrow"+d%Um)},"drawArrow"),Cst=o((t,e)=>{let r=t.append("g").attr("class","commit-arrows");[...e.keys()].forEach(n=>{let i=e.get(n);i.parents&&i.parents.length>0&&i.parents.forEach(a=>{Sst(r,e.get(a),i,e)})})},"drawArrows"),Ast=o((t,e,r)=>{let n=t.append("g");e.forEach((i,a)=>{let s=a%Um,l=Do.get(i.name)?.pos;if(l===void 0)throw new Error(`Position not found for branch ${i.name}`);let u=n.append("line");u.attr("x1",0),u.attr("y1",l),u.attr("x2",hp),u.attr("y2",l),u.attr("class","branch branch"+s),en==="TB"?(u.attr("y1",w7),u.attr("x1",l),u.attr("y2",hp),u.attr("x2",l)):en==="BT"&&(u.attr("y1",hp),u.attr("x1",l),u.attr("y2",w7),u.attr("x2",l)),k7.push(l);let h=i.name,f=T4e(h),d=n.insert("rect"),m=n.insert("g").attr("class","branchLabel").insert("g").attr("class","label branch-label"+s);m.node().appendChild(f);let g=f.getBBox();d.attr("class","branchLabelBkg label"+s).attr("rx",4).attr("ry",4).attr("x",-g.width-4-(r.rotateCommitLabel===!0?30:0)).attr("y",-g.height/2+8).attr("width",g.width+18).attr("height",g.height+4),m.attr("transform","translate("+(-g.width-14-(r.rotateCommitLabel===!0?30:0))+", "+(l-g.height/2-1)+")"),en==="TB"?(d.attr("x",l-g.width/2-10).attr("y",0),m.attr("transform","translate("+(l-g.width/2-5)+", 0)")):en==="BT"?(d.attr("x",l-g.width/2-10).attr("y",hp),m.attr("transform","translate("+(l-g.width/2-5)+", "+hp+")")):d.attr("transform","translate(-19, "+(l-g.height/2)+")")})},"drawBranches"),_st=o(function(t,e,r,n,i){return Do.set(t,{pos:e,index:r}),e+=50+(i?40:0)+(en==="TB"||en==="BT"?n.width/2:0),e},"setBranchPosition"),Dst=o(function(t,e,r,n){hst(),K.debug("in gitgraph renderer",t+` +`,"id:",e,r);let i=n.db;if(!i.getConfig){K.error("getConfig method is not available on db");return}let a=i.getConfig(),s=a.rotateCommitLabel??!1;s3=i.getCommits();let l=i.getBranchesAsObjArray();en=i.getDirection();let u=je(`[id="${e}"]`),h=0;l.forEach((f,d)=>{let p=T4e(f.name),m=u.append("g"),g=m.insert("g").attr("class","branchLabel"),y=g.insert("g").attr("class","label branch-label");y.node()?.appendChild(p);let v=p.getBBox();h=_st(f.name,h,d,v,s),y.remove(),g.remove(),m.remove()}),b4e(u,s3,!1,a),a.showBranches&&Ast(u,l,a),Cst(u,s3),b4e(u,s3,!0,a),Xt.insertTitle(u,"gitTitleText",a.titleTopMargin??0,i.getDiagramTitle()),_D(void 0,u,a.diagramPadding,a.useMaxWidth)},"draw"),k4e={draw:Dst}});var Rst,S4e,C4e=O(()=>{"use strict";Rst=o(t=>` + .commit-id, + .commit-msg, + .branch-label { + fill: lightgrey; + color: lightgrey; + font-family: 'trebuchet ms', verdana, arial, sans-serif; + font-family: var(--mermaid-font-family); + } + ${[0,1,2,3,4,5,6,7].map(e=>` + .branch-label${e} { fill: ${t["gitBranchLabel"+e]}; } + .commit${e} { stroke: ${t["git"+e]}; fill: ${t["git"+e]}; } + .commit-highlight${e} { stroke: ${t["gitInv"+e]}; fill: ${t["gitInv"+e]}; } + .label${e} { fill: ${t["git"+e]}; } + .arrow${e} { stroke: ${t["git"+e]}; } + `).join(` +`)} + + .branch { + stroke-width: 1; + stroke: ${t.lineColor}; + stroke-dasharray: 2; + } + .commit-label { font-size: ${t.commitLabelFontSize}; fill: ${t.commitLabelColor};} + .commit-label-bkg { font-size: ${t.commitLabelFontSize}; fill: ${t.commitLabelBackground}; opacity: 0.5; } + .tag-label { font-size: ${t.tagLabelFontSize}; fill: ${t.tagLabelColor};} + .tag-label-bkg { fill: ${t.tagLabelBackground}; stroke: ${t.tagLabelBorder}; } + .tag-hole { fill: ${t.textColor}; } + + .commit-merge { + stroke: ${t.primaryColor}; + fill: ${t.primaryColor}; + } + .commit-reverse { + stroke: ${t.primaryColor}; + fill: ${t.primaryColor}; + stroke-width: 3; + } + .commit-highlight-outer { + } + .commit-highlight-inner { + stroke: ${t.primaryColor}; + fill: ${t.primaryColor}; + } + + .arrow { stroke-width: 8; stroke-linecap: round; fill: none} + .gitTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; + } +`,"getStyles"),S4e=Rst});var A4e={};vr(A4e,{diagram:()=>Lst});var Lst,_4e=O(()=>{"use strict";x4e();pq();E4e();C4e();Lst={parser:v4e,db:T7,renderer:k4e,styles:S4e}});var mq,L4e,N4e=O(()=>{"use strict";mq=(function(){var t=o(function(_,D,M,R){for(M=M||{},R=_.length;R--;M[_[R]]=D);return M},"o"),e=[6,8,10,12,13,14,15,16,17,18,20,21,22,23,24,25,26,27,28,29,30,31,33,35,36,38,40],r=[1,26],n=[1,27],i=[1,28],a=[1,29],s=[1,30],l=[1,31],u=[1,32],h=[1,33],f=[1,34],d=[1,9],p=[1,10],m=[1,11],g=[1,12],y=[1,13],v=[1,14],x=[1,15],b=[1,16],T=[1,19],E=[1,20],w=[1,21],k=[1,22],S=[1,23],A=[1,25],L=[1,35],I={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,gantt:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NL:10,weekday:11,weekday_monday:12,weekday_tuesday:13,weekday_wednesday:14,weekday_thursday:15,weekday_friday:16,weekday_saturday:17,weekday_sunday:18,weekend:19,weekend_friday:20,weekend_saturday:21,dateFormat:22,inclusiveEndDates:23,topAxis:24,axisFormat:25,tickInterval:26,excludes:27,includes:28,todayMarker:29,title:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,section:36,clickStatement:37,taskTxt:38,taskData:39,click:40,callbackname:41,callbackargs:42,href:43,clickStatementDebug:44,$accept:0,$end:1},terminals_:{2:"error",4:"gantt",6:"EOF",8:"SPACE",10:"NL",12:"weekday_monday",13:"weekday_tuesday",14:"weekday_wednesday",15:"weekday_thursday",16:"weekday_friday",17:"weekday_saturday",18:"weekday_sunday",20:"weekend_friday",21:"weekend_saturday",22:"dateFormat",23:"inclusiveEndDates",24:"topAxis",25:"axisFormat",26:"tickInterval",27:"excludes",28:"includes",29:"todayMarker",30:"title",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",36:"section",38:"taskTxt",39:"taskData",40:"click",41:"callbackname",42:"callbackargs",43:"href"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[19,1],[19,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,2],[37,2],[37,3],[37,3],[37,4],[37,3],[37,4],[37,2],[44,2],[44,3],[44,3],[44,4],[44,3],[44,4],[44,2]],performAction:o(function(D,M,R,P,B,F,G){var $=F.length-1;switch(B){case 1:return F[$-1];case 2:this.$=[];break;case 3:F[$-1].push(F[$]),this.$=F[$-1];break;case 4:case 5:this.$=F[$];break;case 6:case 7:this.$=[];break;case 8:P.setWeekday("monday");break;case 9:P.setWeekday("tuesday");break;case 10:P.setWeekday("wednesday");break;case 11:P.setWeekday("thursday");break;case 12:P.setWeekday("friday");break;case 13:P.setWeekday("saturday");break;case 14:P.setWeekday("sunday");break;case 15:P.setWeekend("friday");break;case 16:P.setWeekend("saturday");break;case 17:P.setDateFormat(F[$].substr(11)),this.$=F[$].substr(11);break;case 18:P.enableInclusiveEndDates(),this.$=F[$].substr(18);break;case 19:P.TopAxis(),this.$=F[$].substr(8);break;case 20:P.setAxisFormat(F[$].substr(11)),this.$=F[$].substr(11);break;case 21:P.setTickInterval(F[$].substr(13)),this.$=F[$].substr(13);break;case 22:P.setExcludes(F[$].substr(9)),this.$=F[$].substr(9);break;case 23:P.setIncludes(F[$].substr(9)),this.$=F[$].substr(9);break;case 24:P.setTodayMarker(F[$].substr(12)),this.$=F[$].substr(12);break;case 27:P.setDiagramTitle(F[$].substr(6)),this.$=F[$].substr(6);break;case 28:this.$=F[$].trim(),P.setAccTitle(this.$);break;case 29:case 30:this.$=F[$].trim(),P.setAccDescription(this.$);break;case 31:P.addSection(F[$].substr(8)),this.$=F[$].substr(8);break;case 33:P.addTask(F[$-1],F[$]),this.$="task";break;case 34:this.$=F[$-1],P.setClickEvent(F[$-1],F[$],null);break;case 35:this.$=F[$-2],P.setClickEvent(F[$-2],F[$-1],F[$]);break;case 36:this.$=F[$-2],P.setClickEvent(F[$-2],F[$-1],null),P.setLink(F[$-2],F[$]);break;case 37:this.$=F[$-3],P.setClickEvent(F[$-3],F[$-2],F[$-1]),P.setLink(F[$-3],F[$]);break;case 38:this.$=F[$-2],P.setClickEvent(F[$-2],F[$],null),P.setLink(F[$-2],F[$-1]);break;case 39:this.$=F[$-3],P.setClickEvent(F[$-3],F[$-1],F[$]),P.setLink(F[$-3],F[$-2]);break;case 40:this.$=F[$-1],P.setLink(F[$-1],F[$]);break;case 41:case 47:this.$=F[$-1]+" "+F[$];break;case 42:case 43:case 45:this.$=F[$-2]+" "+F[$-1]+" "+F[$];break;case 44:case 46:this.$=F[$-3]+" "+F[$-2]+" "+F[$-1]+" "+F[$];break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:17,12:r,13:n,14:i,15:a,16:s,17:l,18:u,19:18,20:h,21:f,22:d,23:p,24:m,25:g,26:y,27:v,28:x,29:b,30:T,31:E,33:w,35:k,36:S,37:24,38:A,40:L},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:36,11:17,12:r,13:n,14:i,15:a,16:s,17:l,18:u,19:18,20:h,21:f,22:d,23:p,24:m,25:g,26:y,27:v,28:x,29:b,30:T,31:E,33:w,35:k,36:S,37:24,38:A,40:L},t(e,[2,5]),t(e,[2,6]),t(e,[2,17]),t(e,[2,18]),t(e,[2,19]),t(e,[2,20]),t(e,[2,21]),t(e,[2,22]),t(e,[2,23]),t(e,[2,24]),t(e,[2,25]),t(e,[2,26]),t(e,[2,27]),{32:[1,37]},{34:[1,38]},t(e,[2,30]),t(e,[2,31]),t(e,[2,32]),{39:[1,39]},t(e,[2,8]),t(e,[2,9]),t(e,[2,10]),t(e,[2,11]),t(e,[2,12]),t(e,[2,13]),t(e,[2,14]),t(e,[2,15]),t(e,[2,16]),{41:[1,40],43:[1,41]},t(e,[2,4]),t(e,[2,28]),t(e,[2,29]),t(e,[2,33]),t(e,[2,34],{42:[1,42],43:[1,43]}),t(e,[2,40],{41:[1,44]}),t(e,[2,35],{43:[1,45]}),t(e,[2,36]),t(e,[2,38],{42:[1,46]}),t(e,[2,37]),t(e,[2,39])],defaultActions:{},parseError:o(function(D,M){if(M.recoverable)this.trace(D);else{var R=new Error(D);throw R.hash=M,R}},"parseError"),parse:o(function(D){var M=this,R=[0],P=[],B=[null],F=[],G=this.table,$="",V=0,X=0,Q=0,H=2,ie=1,Y=F.slice.call(arguments,1),le=Object.create(this.lexer),ee={yy:{}};for(var J in this.yy)Object.prototype.hasOwnProperty.call(this.yy,J)&&(ee.yy[J]=this.yy[J]);le.setInput(D,ee.yy),ee.yy.lexer=le,ee.yy.parser=this,typeof le.yylloc>"u"&&(le.yylloc={});var te=le.yylloc;F.push(te);var Z=le.options&&le.options.ranges;typeof ee.yy.parseError=="function"?this.parseError=ee.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function xe(Ne){R.length=R.length-2*Ne,B.length=B.length-Ne,F.length=F.length-Ne}o(xe,"popStack");function de(){var Ne;return Ne=P.pop()||le.lex()||ie,typeof Ne!="number"&&(Ne instanceof Array&&(P=Ne,Ne=P.pop()),Ne=M.symbols_[Ne]||Ne),Ne}o(de,"lex");for(var Se,Me,ke,we,_e,$e,fe={},Ke,Te,Be,Ue;;){if(ke=R[R.length-1],this.defaultActions[ke]?we=this.defaultActions[ke]:((Se===null||typeof Se>"u")&&(Se=de()),we=G[ke]&&G[ke][Se]),typeof we>"u"||!we.length||!we[0]){var Ge="";Ue=[];for(Ke in G[ke])this.terminals_[Ke]&&Ke>H&&Ue.push("'"+this.terminals_[Ke]+"'");le.showPosition?Ge="Parse error on line "+(V+1)+`: +`+le.showPosition()+` +Expecting `+Ue.join(", ")+", got '"+(this.terminals_[Se]||Se)+"'":Ge="Parse error on line "+(V+1)+": Unexpected "+(Se==ie?"end of input":"'"+(this.terminals_[Se]||Se)+"'"),this.parseError(Ge,{text:le.match,token:this.terminals_[Se]||Se,line:le.yylineno,loc:te,expected:Ue})}if(we[0]instanceof Array&&we.length>1)throw new Error("Parse Error: multiple actions possible at state: "+ke+", token: "+Se);switch(we[0]){case 1:R.push(Se),B.push(le.yytext),F.push(le.yylloc),R.push(we[1]),Se=null,Me?(Se=Me,Me=null):(X=le.yyleng,$=le.yytext,V=le.yylineno,te=le.yylloc,Q>0&&Q--);break;case 2:if(Te=this.productions_[we[1]][1],fe.$=B[B.length-Te],fe._$={first_line:F[F.length-(Te||1)].first_line,last_line:F[F.length-1].last_line,first_column:F[F.length-(Te||1)].first_column,last_column:F[F.length-1].last_column},Z&&(fe._$.range=[F[F.length-(Te||1)].range[0],F[F.length-1].range[1]]),$e=this.performAction.apply(fe,[$,X,V,ee.yy,we[1],B,F].concat(Y)),typeof $e<"u")return $e;Te&&(R=R.slice(0,-1*Te*2),B=B.slice(0,-1*Te),F=F.slice(0,-1*Te)),R.push(this.productions_[we[1]][0]),B.push(fe.$),F.push(fe._$),Be=G[R[R.length-2]][R[R.length-1]],R.push(Be);break;case 3:return!0}}return!0},"parse")},N=(function(){var _={EOF:1,parseError:o(function(M,R){if(this.yy.parser)this.yy.parser.parseError(M,R);else throw new Error(M)},"parseError"),setInput:o(function(D,M){return this.yy=M||this.yy||{},this._input=D,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var D=this._input[0];this.yytext+=D,this.yyleng++,this.offset++,this.match+=D,this.matched+=D;var M=D.match(/(?:\r\n?|\n).*/g);return M?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),D},"input"),unput:o(function(D){var M=D.length,R=D.split(/(?:\r\n?|\n)/g);this._input=D+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-M),this.offset-=M;var P=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),R.length-1&&(this.yylineno-=R.length-1);var B=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:R?(R.length===P.length?this.yylloc.first_column:0)+P[P.length-R.length].length-R[0].length:this.yylloc.first_column-M},this.options.ranges&&(this.yylloc.range=[B[0],B[0]+this.yyleng-M]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(D){this.unput(this.match.slice(D))},"less"),pastInput:o(function(){var D=this.matched.substr(0,this.matched.length-this.match.length);return(D.length>20?"...":"")+D.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var D=this.match;return D.length<20&&(D+=this._input.substr(0,20-D.length)),(D.substr(0,20)+(D.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var D=this.pastInput(),M=new Array(D.length+1).join("-");return D+this.upcomingInput()+` +`+M+"^"},"showPosition"),test_match:o(function(D,M){var R,P,B;if(this.options.backtrack_lexer&&(B={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(B.yylloc.range=this.yylloc.range.slice(0))),P=D[0].match(/(?:\r\n?|\n).*/g),P&&(this.yylineno+=P.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:P?P[P.length-1].length-P[P.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+D[0].length},this.yytext+=D[0],this.match+=D[0],this.matches=D,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(D[0].length),this.matched+=D[0],R=this.performAction.call(this,this.yy,this,M,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),R)return R;if(this._backtrack){for(var F in B)this[F]=B[F];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var D,M,R,P;this._more||(this.yytext="",this.match="");for(var B=this._currentRules(),F=0;FM[0].length)){if(M=R,P=F,this.options.backtrack_lexer){if(D=this.test_match(R,B[F]),D!==!1)return D;if(this._backtrack){M=!1;continue}else return!1}else if(!this.options.flex)break}return M?(D=this.test_match(M,B[P]),D!==!1?D:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var M=this.next();return M||this.lex()},"lex"),begin:o(function(M){this.conditionStack.push(M)},"begin"),popState:o(function(){var M=this.conditionStack.length-1;return M>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(M){return M=this.conditionStack.length-1-Math.abs(M||0),M>=0?this.conditionStack[M]:"INITIAL"},"topState"),pushState:o(function(M){this.begin(M)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(M,R,P,B){var F=B;switch(P){case 0:return this.begin("open_directive"),"open_directive";break;case 1:return this.begin("acc_title"),31;break;case 2:return this.popState(),"acc_title_value";break;case 3:return this.begin("acc_descr"),33;break;case 4:return this.popState(),"acc_descr_value";break;case 5:this.begin("acc_descr_multiline");break;case 6:this.popState();break;case 7:return"acc_descr_multiline_value";case 8:break;case 9:break;case 10:break;case 11:return 10;case 12:break;case 13:break;case 14:this.begin("href");break;case 15:this.popState();break;case 16:return 43;case 17:this.begin("callbackname");break;case 18:this.popState();break;case 19:this.popState(),this.begin("callbackargs");break;case 20:return 41;case 21:this.popState();break;case 22:return 42;case 23:this.begin("click");break;case 24:this.popState();break;case 25:return 40;case 26:return 4;case 27:return 22;case 28:return 23;case 29:return 24;case 30:return 25;case 31:return 26;case 32:return 28;case 33:return 27;case 34:return 29;case 35:return 12;case 36:return 13;case 37:return 14;case 38:return 15;case 39:return 16;case 40:return 17;case 41:return 18;case 42:return 20;case 43:return 21;case 44:return"date";case 45:return 30;case 46:return"accDescription";case 47:return 36;case 48:return 38;case 49:return 39;case 50:return":";case 51:return 6;case 52:return"INVALID"}},"anonymous"),rules:[/^(?:%%\{)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:%%(?!\{)*[^\n]*)/i,/^(?:[^\}]%%*[^\n]*)/i,/^(?:%%*[^\n]*[\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:%[^\n]*)/i,/^(?:href[\s]+["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:call[\s]+)/i,/^(?:\([\s]*\))/i,/^(?:\()/i,/^(?:[^(]*)/i,/^(?:\))/i,/^(?:[^)]*)/i,/^(?:click[\s]+)/i,/^(?:[\s\n])/i,/^(?:[^\s\n]*)/i,/^(?:gantt\b)/i,/^(?:dateFormat\s[^#\n;]+)/i,/^(?:inclusiveEndDates\b)/i,/^(?:topAxis\b)/i,/^(?:axisFormat\s[^#\n;]+)/i,/^(?:tickInterval\s[^#\n;]+)/i,/^(?:includes\s[^#\n;]+)/i,/^(?:excludes\s[^#\n;]+)/i,/^(?:todayMarker\s[^\n;]+)/i,/^(?:weekday\s+monday\b)/i,/^(?:weekday\s+tuesday\b)/i,/^(?:weekday\s+wednesday\b)/i,/^(?:weekday\s+thursday\b)/i,/^(?:weekday\s+friday\b)/i,/^(?:weekday\s+saturday\b)/i,/^(?:weekday\s+sunday\b)/i,/^(?:weekend\s+friday\b)/i,/^(?:weekend\s+saturday\b)/i,/^(?:\d\d\d\d-\d\d-\d\d\b)/i,/^(?:title\s[^\n]+)/i,/^(?:accDescription\s[^#\n;]+)/i,/^(?:section\s[^\n]+)/i,/^(?:[^:\n]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[6,7],inclusive:!1},acc_descr:{rules:[4],inclusive:!1},acc_title:{rules:[2],inclusive:!1},callbackargs:{rules:[21,22],inclusive:!1},callbackname:{rules:[18,19,20],inclusive:!1},href:{rules:[15,16],inclusive:!1},click:{rules:[24,25],inclusive:!1},INITIAL:{rules:[0,1,3,5,8,9,10,11,12,13,14,17,23,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52],inclusive:!0}}};return _})();I.lexer=N;function C(){this.yy={}}return o(C,"Parser"),C.prototype=I,I.Parser=C,new C})();mq.parser=mq;L4e=mq});var M4e=nr((gq,yq)=>{"use strict";(function(t,e){typeof gq=="object"&&typeof yq<"u"?yq.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs_plugin_isoWeek=e()})(gq,(function(){"use strict";var t="day";return function(e,r,n){var i=o(function(l){return l.add(4-l.isoWeekday(),t)},"a"),a=r.prototype;a.isoWeekYear=function(){return i(this).year()},a.isoWeek=function(l){if(!this.$utils().u(l))return this.add(7*(l-this.isoWeek()),t);var u,h,f,d,p=i(this),m=(u=this.isoWeekYear(),h=this.$u,f=(h?n.utc:n)().year(u).startOf("year"),d=4-f.isoWeekday(),f.isoWeekday()>4&&(d+=7),f.add(d,t));return p.diff(m,"week")+1},a.isoWeekday=function(l){return this.$utils().u(l)?this.day()||7:this.day(this.day()%7?l:l-7)};var s=a.startOf;a.startOf=function(l,u){var h=this.$utils(),f=!!h.u(u)||u;return h.p(l)==="isoweek"?f?this.date(this.date()-(this.isoWeekday()-1)).startOf("day"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf("day"):s.bind(this)(l,u)}}}))});var I4e=nr((vq,xq)=>{"use strict";(function(t,e){typeof vq=="object"&&typeof xq<"u"?xq.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs_plugin_customParseFormat=e()})(vq,(function(){"use strict";var t={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},e=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,r=/\d/,n=/\d\d/,i=/\d\d?/,a=/\d*[^-_:/,()\s\d]+/,s={},l=o(function(g){return(g=+g)+(g>68?1900:2e3)},"a"),u=o(function(g){return function(y){this[g]=+y}},"f"),h=[/[+-]\d\d:?(\d\d)?|Z/,function(g){(this.zone||(this.zone={})).offset=(function(y){if(!y||y==="Z")return 0;var v=y.match(/([+-]|\d\d)/g),x=60*v[1]+(+v[2]||0);return x===0?0:v[0]==="+"?-x:x})(g)}],f=o(function(g){var y=s[g];return y&&(y.indexOf?y:y.s.concat(y.f))},"u"),d=o(function(g,y){var v,x=s.meridiem;if(x){for(var b=1;b<=24;b+=1)if(g.indexOf(x(b,0,y))>-1){v=b>12;break}}else v=g===(y?"pm":"PM");return v},"d"),p={A:[a,function(g){this.afternoon=d(g,!1)}],a:[a,function(g){this.afternoon=d(g,!0)}],Q:[r,function(g){this.month=3*(g-1)+1}],S:[r,function(g){this.milliseconds=100*+g}],SS:[n,function(g){this.milliseconds=10*+g}],SSS:[/\d{3}/,function(g){this.milliseconds=+g}],s:[i,u("seconds")],ss:[i,u("seconds")],m:[i,u("minutes")],mm:[i,u("minutes")],H:[i,u("hours")],h:[i,u("hours")],HH:[i,u("hours")],hh:[i,u("hours")],D:[i,u("day")],DD:[n,u("day")],Do:[a,function(g){var y=s.ordinal,v=g.match(/\d+/);if(this.day=v[0],y)for(var x=1;x<=31;x+=1)y(x).replace(/\[|\]/g,"")===g&&(this.day=x)}],w:[i,u("week")],ww:[n,u("week")],M:[i,u("month")],MM:[n,u("month")],MMM:[a,function(g){var y=f("months"),v=(f("monthsShort")||y.map((function(x){return x.slice(0,3)}))).indexOf(g)+1;if(v<1)throw new Error;this.month=v%12||v}],MMMM:[a,function(g){var y=f("months").indexOf(g)+1;if(y<1)throw new Error;this.month=y%12||y}],Y:[/[+-]?\d+/,u("year")],YY:[n,function(g){this.year=l(g)}],YYYY:[/\d{4}/,u("year")],Z:h,ZZ:h};function m(g){var y,v;y=g,v=s&&s.formats;for(var x=(g=y.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(A,L,I){var N=I&&I.toUpperCase();return L||v[I]||t[I]||v[N].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(C,_,D){return _||D.slice(1)}))}))).match(e),b=x.length,T=0;T-1)return new Date((R==="X"?1e3:1)*M);var F=m(R)(M),G=F.year,$=F.month,V=F.day,X=F.hours,Q=F.minutes,H=F.seconds,ie=F.milliseconds,Y=F.zone,le=F.week,ee=new Date,J=V||(G||$?1:ee.getDate()),te=G||ee.getFullYear(),Z=0;G&&!$||(Z=$>0?$-1:ee.getMonth());var xe,de=X||0,Se=Q||0,Me=H||0,ke=ie||0;return Y?new Date(Date.UTC(te,Z,J,de,Se,Me,ke+60*Y.offset*1e3)):P?new Date(Date.UTC(te,Z,J,de,Se,Me,ke)):(xe=new Date(te,Z,J,de,Se,Me,ke),le&&(xe=B(xe).week(le).toDate()),xe)}catch{return new Date("")}})(E,S,w,v),this.init(),N&&N!==!0&&(this.$L=this.locale(N).$L),I&&E!=this.format(S)&&(this.$d=new Date("")),s={}}else if(S instanceof Array)for(var C=S.length,_=1;_<=C;_+=1){k[1]=S[_-1];var D=v.apply(this,k);if(D.isValid()){this.$d=D.$d,this.$L=D.$L,this.init();break}_===C&&(this.$d=new Date(""))}else b.call(this,T)}}}))});var O4e=nr((bq,Tq)=>{"use strict";(function(t,e){typeof bq=="object"&&typeof Tq<"u"?Tq.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs_plugin_advancedFormat=e()})(bq,(function(){"use strict";return function(t,e){var r=e.prototype,n=r.format;r.format=function(i){var a=this,s=this.$locale();if(!this.isValid())return n.bind(this)(i);var l=this.$utils(),u=(i||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,(function(h){switch(h){case"Q":return Math.ceil((a.$M+1)/3);case"Do":return s.ordinal(a.$D);case"gggg":return a.weekYear();case"GGGG":return a.isoWeekYear();case"wo":return s.ordinal(a.week(),"W");case"w":case"ww":return l.s(a.week(),h==="w"?1:2,"0");case"W":case"WW":return l.s(a.isoWeek(),h==="W"?1:2,"0");case"k":case"kk":return l.s(String(a.$H===0?24:a.$H),h==="k"?1:2,"0");case"X":return Math.floor(a.$d.getTime()/1e3);case"x":return a.$d.getTime();case"z":return"["+a.offsetName()+"]";case"zzz":return"["+a.offsetName("long")+"]";default:return h}}));return n.bind(this)(u)}}}))});function Q4e(t,e,r){let n=!0;for(;n;)n=!1,r.forEach(function(i){let a="^\\s*"+i+"\\s*$",s=new RegExp(a);t[0].match(s)&&(e[i]=!0,t.shift(1),n=!0)})}var F4e,il,$4e,z4e,G4e,P4e,Ku,Sq,Cq,Aq,l3,c3,_q,Dq,C7,Nv,Rq,V4e,Lq,u3,Nq,Mq,A7,wq,Ost,Pst,Bst,Fst,$st,zst,Gst,Vst,qst,Ust,Wst,Hst,Yst,jst,Xst,Kst,Qst,Zst,Jst,eot,tot,rot,not,q4e,iot,aot,sot,U4e,oot,kq,W4e,H4e,E7,Lv,lot,cot,Eq,S7,ua,Y4e,uot,Wm,hot,B4e,fot,j4e,dot,X4e,pot,mot,K4e,Z4e=O(()=>{"use strict";F4e=Ra(Wg(),1),il=Ra(U3(),1),$4e=Ra(M4e(),1),z4e=Ra(I4e(),1),G4e=Ra(O4e(),1);xt();jt();ar();si();il.default.extend($4e.default);il.default.extend(z4e.default);il.default.extend(G4e.default);P4e={friday:5,saturday:6},Ku="",Sq="",Aq="",l3=[],c3=[],_q=new Map,Dq=[],C7=[],Nv="",Rq="",V4e=["active","done","crit","milestone","vert"],Lq=[],u3=!1,Nq=!1,Mq="sunday",A7="saturday",wq=0,Ost=o(function(){Dq=[],C7=[],Nv="",Lq=[],E7=0,Eq=void 0,S7=void 0,ua=[],Ku="",Sq="",Rq="",Cq=void 0,Aq="",l3=[],c3=[],u3=!1,Nq=!1,wq=0,_q=new Map,_r(),Mq="sunday",A7="saturday"},"clear"),Pst=o(function(t){Sq=t},"setAxisFormat"),Bst=o(function(){return Sq},"getAxisFormat"),Fst=o(function(t){Cq=t},"setTickInterval"),$st=o(function(){return Cq},"getTickInterval"),zst=o(function(t){Aq=t},"setTodayMarker"),Gst=o(function(){return Aq},"getTodayMarker"),Vst=o(function(t){Ku=t},"setDateFormat"),qst=o(function(){u3=!0},"enableInclusiveEndDates"),Ust=o(function(){return u3},"endDatesAreInclusive"),Wst=o(function(){Nq=!0},"enableTopAxis"),Hst=o(function(){return Nq},"topAxisEnabled"),Yst=o(function(t){Rq=t},"setDisplayMode"),jst=o(function(){return Rq},"getDisplayMode"),Xst=o(function(){return Ku},"getDateFormat"),Kst=o(function(t){l3=t.toLowerCase().split(/[\s,]+/)},"setIncludes"),Qst=o(function(){return l3},"getIncludes"),Zst=o(function(t){c3=t.toLowerCase().split(/[\s,]+/)},"setExcludes"),Jst=o(function(){return c3},"getExcludes"),eot=o(function(){return _q},"getLinks"),tot=o(function(t){Nv=t,Dq.push(t)},"addSection"),rot=o(function(){return Dq},"getSections"),not=o(function(){let t=B4e(),e=10,r=0;for(;!t&&r{let u=l.trim();return u==="x"||u==="X"},"isTimestampFormat")(e)&&/^\d+$/.test(r))return new Date(Number(r));let a=/^after\s+(?[\d\w- ]+)/.exec(r);if(a!==null){let l=null;for(let h of a.groups.ids.split(" ")){let f=Wm(h);f!==void 0&&(!l||f.endTime>l.endTime)&&(l=f)}if(l)return l.endTime;let u=new Date;return u.setHours(0,0,0,0),u}let s=(0,il.default)(r,e.trim(),!0);if(s.isValid())return s.toDate();{K.debug("Invalid date:"+r),K.debug("With date format:"+e.trim());let l=new Date(r);if(l===void 0||isNaN(l.getTime())||l.getFullYear()<-1e4||l.getFullYear()>1e4)throw new Error("Invalid date:"+r);return l}},"getStartDate"),W4e=o(function(t){let e=/^(\d+(?:\.\d+)?)([Mdhmswy]|ms)$/.exec(t.trim());return e!==null?[Number.parseFloat(e[1]),e[2]]:[NaN,"ms"]},"parseDuration"),H4e=o(function(t,e,r,n=!1){r=r.trim();let a=/^until\s+(?[\d\w- ]+)/.exec(r);if(a!==null){let f=null;for(let p of a.groups.ids.split(" ")){let m=Wm(p);m!==void 0&&(!f||m.startTime{window.open(r,"_self")}),_q.set(n,r))}),j4e(t,"clickable")},"setLink"),j4e=o(function(t,e){t.split(",").forEach(function(r){let n=Wm(r);n!==void 0&&n.classes.push(e)})},"setClass"),dot=o(function(t,e,r){if(ve().securityLevel!=="loose"||e===void 0)return;let n=[];if(typeof r=="string"){n=r.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let a=0;a{Xt.runFunc(e,...n)})},"setClickFun"),X4e=o(function(t,e){Lq.push(function(){let r=document.querySelector(`[id="${t}"]`);r!==null&&r.addEventListener("click",function(){e()})},function(){let r=document.querySelector(`[id="${t}-text"]`);r!==null&&r.addEventListener("click",function(){e()})})},"pushFun"),pot=o(function(t,e,r){t.split(",").forEach(function(n){dot(n,e,r)}),j4e(t,"clickable")},"setClickEvent"),mot=o(function(t){Lq.forEach(function(e){e(t)})},"bindFunctions"),K4e={getConfig:o(()=>ve().gantt,"getConfig"),clear:Ost,setDateFormat:Vst,getDateFormat:Xst,enableInclusiveEndDates:qst,endDatesAreInclusive:Ust,enableTopAxis:Wst,topAxisEnabled:Hst,setAxisFormat:Pst,getAxisFormat:Bst,setTickInterval:Fst,getTickInterval:$st,setTodayMarker:zst,getTodayMarker:Gst,setAccTitle:Lr,getAccTitle:Or,setDiagramTitle:zr,getDiagramTitle:Fr,setDisplayMode:Yst,getDisplayMode:jst,setAccDescription:Pr,getAccDescription:Br,addSection:tot,getSections:rot,getTasks:not,addTask:uot,findTaskById:Wm,addTaskOrg:hot,setIncludes:Kst,getIncludes:Qst,setExcludes:Zst,getExcludes:Jst,setClickEvent:pot,setLink:fot,getLinks:eot,bindFunctions:mot,parseDuration:W4e,isInvalidDate:q4e,setWeekday:iot,getWeekday:aot,setWeekend:sot};o(Q4e,"getTaskTags")});var J4e=nr((Iq,Oq)=>{"use strict";(function(t,e){typeof Iq=="object"&&typeof Oq<"u"?Oq.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs_plugin_duration=e()})(Iq,(function(){"use strict";var t,e,r=1e3,n=6e4,i=36e5,a=864e5,s=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,l=31536e6,u=2628e6,h=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/,f={years:l,months:u,days:a,hours:i,minutes:n,seconds:r,milliseconds:1,weeks:6048e5},d=o(function(E){return E instanceof b},"c"),p=o(function(E,w,k){return new b(E,k,w.$l)},"f"),m=o(function(E){return e.p(E)+"s"},"m"),g=o(function(E){return E<0},"l"),y=o(function(E){return g(E)?Math.ceil(E):Math.floor(E)},"$"),v=o(function(E){return Math.abs(E)},"y"),x=o(function(E,w){return E?g(E)?{negative:!0,format:""+v(E)+w}:{negative:!1,format:""+E+w}:{negative:!1,format:""}},"v"),b=(function(){function E(k,S,A){var L=this;if(this.$d={},this.$l=A,k===void 0&&(this.$ms=0,this.parseFromMilliseconds()),S)return p(k*f[m(S)],this);if(typeof k=="number")return this.$ms=k,this.parseFromMilliseconds(),this;if(typeof k=="object")return Object.keys(k).forEach((function(C){L.$d[m(C)]=k[C]})),this.calMilliseconds(),this;if(typeof k=="string"){var I=k.match(h);if(I){var N=I.slice(2).map((function(C){return C!=null?Number(C):0}));return this.$d.years=N[0],this.$d.months=N[1],this.$d.weeks=N[2],this.$d.days=N[3],this.$d.hours=N[4],this.$d.minutes=N[5],this.$d.seconds=N[6],this.calMilliseconds(),this}}return this}o(E,"l");var w=E.prototype;return w.calMilliseconds=function(){var k=this;this.$ms=Object.keys(this.$d).reduce((function(S,A){return S+(k.$d[A]||0)*f[A]}),0)},w.parseFromMilliseconds=function(){var k=this.$ms;this.$d.years=y(k/l),k%=l,this.$d.months=y(k/u),k%=u,this.$d.days=y(k/a),k%=a,this.$d.hours=y(k/i),k%=i,this.$d.minutes=y(k/n),k%=n,this.$d.seconds=y(k/r),k%=r,this.$d.milliseconds=k},w.toISOString=function(){var k=x(this.$d.years,"Y"),S=x(this.$d.months,"M"),A=+this.$d.days||0;this.$d.weeks&&(A+=7*this.$d.weeks);var L=x(A,"D"),I=x(this.$d.hours,"H"),N=x(this.$d.minutes,"M"),C=this.$d.seconds||0;this.$d.milliseconds&&(C+=this.$d.milliseconds/1e3,C=Math.round(1e3*C)/1e3);var _=x(C,"S"),D=k.negative||S.negative||L.negative||I.negative||N.negative||_.negative,M=I.format||N.format||_.format?"T":"",R=(D?"-":"")+"P"+k.format+S.format+L.format+M+I.format+N.format+_.format;return R==="P"||R==="-P"?"P0D":R},w.toJSON=function(){return this.toISOString()},w.format=function(k){var S=k||"YYYY-MM-DDTHH:mm:ss",A={Y:this.$d.years,YY:e.s(this.$d.years,2,"0"),YYYY:e.s(this.$d.years,4,"0"),M:this.$d.months,MM:e.s(this.$d.months,2,"0"),D:this.$d.days,DD:e.s(this.$d.days,2,"0"),H:this.$d.hours,HH:e.s(this.$d.hours,2,"0"),m:this.$d.minutes,mm:e.s(this.$d.minutes,2,"0"),s:this.$d.seconds,ss:e.s(this.$d.seconds,2,"0"),SSS:e.s(this.$d.milliseconds,3,"0")};return S.replace(s,(function(L,I){return I||String(A[L])}))},w.as=function(k){return this.$ms/f[m(k)]},w.get=function(k){var S=this.$ms,A=m(k);return A==="milliseconds"?S%=1e3:S=A==="weeks"?y(S/f[A]):this.$d[A],S||0},w.add=function(k,S,A){var L;return L=S?k*f[m(S)]:d(k)?k.$ms:p(k,this).$ms,p(this.$ms+L*(A?-1:1),this)},w.subtract=function(k,S){return this.add(k,S,!0)},w.locale=function(k){var S=this.clone();return S.$l=k,S},w.clone=function(){return p(this.$ms,this)},w.humanize=function(k){return t().add(this.$ms,"ms").locale(this.$l).fromNow(!k)},w.valueOf=function(){return this.asMilliseconds()},w.milliseconds=function(){return this.get("milliseconds")},w.asMilliseconds=function(){return this.as("milliseconds")},w.seconds=function(){return this.get("seconds")},w.asSeconds=function(){return this.as("seconds")},w.minutes=function(){return this.get("minutes")},w.asMinutes=function(){return this.as("minutes")},w.hours=function(){return this.get("hours")},w.asHours=function(){return this.as("hours")},w.days=function(){return this.get("days")},w.asDays=function(){return this.as("days")},w.weeks=function(){return this.get("weeks")},w.asWeeks=function(){return this.as("weeks")},w.months=function(){return this.get("months")},w.asMonths=function(){return this.as("months")},w.years=function(){return this.get("years")},w.asYears=function(){return this.as("years")},E})(),T=o(function(E,w,k){return E.add(w.years()*k,"y").add(w.months()*k,"M").add(w.days()*k,"d").add(w.hours()*k,"h").add(w.minutes()*k,"m").add(w.seconds()*k,"s").add(w.milliseconds()*k,"ms")},"p");return function(E,w,k){t=k,e=k().$utils(),k.duration=function(L,I){var N=k.locale();return p(L,{$l:N},I)},k.isDuration=d;var S=w.prototype.add,A=w.prototype.subtract;w.prototype.add=function(L,I){return d(L)?T(this,L,1):S.bind(this)(L,I)},w.prototype.subtract=function(L,I){return d(L)?T(this,L,-1):A.bind(this)(L,I)}}}))});var Mv,t3e,got,e3e,yot,sf,Pq,vot,r3e,n3e=O(()=>{"use strict";Mv=Ra(U3(),1),t3e=Ra(J4e(),1);xt();Ar();Ur();jt();Ti();Mv.default.extend(t3e.default);got=o(function(){K.debug("Something is calling, setConf, remove the call")},"setConf"),e3e={monday:If,tuesday:M5,wednesday:I5,thursday:iu,friday:O5,saturday:P5,sunday:oc},yot=o((t,e)=>{let r=[...t].map(()=>-1/0),n=[...t].sort((a,s)=>a.startTime-s.startTime||a.order-s.order),i=0;for(let a of n)for(let s=0;s=r[s]){r[s]=a.endTime,a.order=s+e,s>i&&(i=s);break}return i},"getMaxIntersections"),Pq=1e4,vot=o(function(t,e,r,n){let i=ve().gantt,a=ve().securityLevel,s;a==="sandbox"&&(s=je("#i"+e));let l=a==="sandbox"?je(s.nodes()[0].contentDocument.body):je("body"),u=a==="sandbox"?s.nodes()[0].contentDocument:document,h=u.getElementById(e);sf=h.parentElement.offsetWidth,sf===void 0&&(sf=1200),i.useWidth!==void 0&&(sf=i.useWidth);let f=n.db.getTasks(),d=[];for(let L of f)d.push(L.type);d=A(d);let p={},m=2*i.topPadding;if(n.db.getDisplayMode()==="compact"||i.displayMode==="compact"){let L={};for(let N of f)L[N.section]===void 0?L[N.section]=[N]:L[N.section].push(N);let I=0;for(let N of Object.keys(L)){let C=yot(L[N],I)+1;I+=C,m+=C*(i.barHeight+i.barGap),p[N]=C}}else{m+=f.length*(i.barHeight+i.barGap);for(let L of d)p[L]=f.filter(I=>I.type===L).length}h.setAttribute("viewBox","0 0 "+sf+" "+m);let g=l.select(`[id="${e}"]`),y=$5().domain([Uw(f,function(L){return L.startTime}),qw(f,function(L){return L.endTime})]).rangeRound([0,sf-i.leftPadding-i.rightPadding]);function v(L,I){let N=L.startTime,C=I.startTime,_=0;return N>C?_=1:N$.vert===V.vert?0:$.vert?1:-1);let P=[...new Set(L.map($=>$.order))].map($=>L.find(V=>V.order===$));g.append("g").selectAll("rect").data(P).enter().append("rect").attr("x",0).attr("y",function($,V){return V=$.order,V*I+N-2}).attr("width",function(){return M-i.rightPadding/2}).attr("height",I).attr("class",function($){for(let[V,X]of d.entries())if($.type===X)return"section section"+V%i.numberSectionStyles;return"section section0"}).enter();let B=g.append("g").selectAll("rect").data(L).enter(),F=n.db.getLinks();if(B.append("rect").attr("id",function($){return $.id}).attr("rx",3).attr("ry",3).attr("x",function($){return $.milestone?y($.startTime)+C+.5*(y($.endTime)-y($.startTime))-.5*_:y($.startTime)+C}).attr("y",function($,V){return V=$.order,$.vert?i.gridLineStartPadding:V*I+N}).attr("width",function($){return $.milestone?_:$.vert?.08*_:y($.renderEndTime||$.endTime)-y($.startTime)}).attr("height",function($){return $.vert?f.length*(i.barHeight+i.barGap)+i.barHeight*2:_}).attr("transform-origin",function($,V){return V=$.order,(y($.startTime)+C+.5*(y($.endTime)-y($.startTime))).toString()+"px "+(V*I+N+.5*_).toString()+"px"}).attr("class",function($){let V="task",X="";$.classes.length>0&&(X=$.classes.join(" "));let Q=0;for(let[ie,Y]of d.entries())$.type===Y&&(Q=ie%i.numberSectionStyles);let H="";return $.active?$.crit?H+=" activeCrit":H=" active":$.done?$.crit?H=" doneCrit":H=" done":$.crit&&(H+=" crit"),H.length===0&&(H=" task"),$.milestone&&(H=" milestone "+H),$.vert&&(H=" vert "+H),H+=Q,H+=" "+X,V+H}),B.append("text").attr("id",function($){return $.id+"-text"}).text(function($){return $.task}).attr("font-size",i.fontSize).attr("x",function($){let V=y($.startTime),X=y($.renderEndTime||$.endTime);if($.milestone&&(V+=.5*(y($.endTime)-y($.startTime))-.5*_,X=V+_),$.vert)return y($.startTime)+C;let Q=this.getBBox().width;return Q>X-V?X+Q+1.5*i.leftPadding>M?V+C-5:X+C+5:(X-V)/2+V+C}).attr("y",function($,V){return $.vert?i.gridLineStartPadding+f.length*(i.barHeight+i.barGap)+60:(V=$.order,V*I+i.barHeight/2+(i.fontSize/2-2)+N)}).attr("text-height",_).attr("class",function($){let V=y($.startTime),X=y($.endTime);$.milestone&&(X=V+_);let Q=this.getBBox().width,H="";$.classes.length>0&&(H=$.classes.join(" "));let ie=0;for(let[le,ee]of d.entries())$.type===ee&&(ie=le%i.numberSectionStyles);let Y="";return $.active&&($.crit?Y="activeCritText"+ie:Y="activeText"+ie),$.done?$.crit?Y=Y+" doneCritText"+ie:Y=Y+" doneText"+ie:$.crit&&(Y=Y+" critText"+ie),$.milestone&&(Y+=" milestoneText"),$.vert&&(Y+=" vertText"),Q>X-V?X+Q+1.5*i.leftPadding>M?H+" taskTextOutsideLeft taskTextOutside"+ie+" "+Y:H+" taskTextOutsideRight taskTextOutside"+ie+" "+Y+" width-"+Q:H+" taskText taskText"+ie+" "+Y+" width-"+Q}),ve().securityLevel==="sandbox"){let $;$=je("#i"+e);let V=$.nodes()[0].contentDocument;B.filter(function(X){return F.has(X.id)}).each(function(X){var Q=V.querySelector("#"+X.id),H=V.querySelector("#"+X.id+"-text");let ie=Q.parentNode;var Y=V.createElement("a");Y.setAttribute("xlink:href",F.get(X.id)),Y.setAttribute("target","_top"),ie.appendChild(Y),Y.appendChild(Q),Y.appendChild(H)})}}o(b,"drawRects");function T(L,I,N,C,_,D,M,R){if(M.length===0&&R.length===0)return;let P,B;for(let{startTime:Q,endTime:H}of D)(P===void 0||QB)&&(B=H);if(!P||!B)return;if((0,Mv.default)(B).diff((0,Mv.default)(P),"year")>5){K.warn("The difference between the min and max time is more than 5 years. This will cause performance issues. Skipping drawing exclude days.");return}let F=n.db.getDateFormat(),G=[],$=null,V=(0,Mv.default)(P);for(;V.valueOf()<=B;)n.db.isInvalidDate(V,F,M,R)?$?$.end=V:$={start:V,end:V}:$&&(G.push($),$=null),V=V.add(1,"d");g.append("g").selectAll("rect").data(G).enter().append("rect").attr("id",Q=>"exclude-"+Q.start.format("YYYY-MM-DD")).attr("x",Q=>y(Q.start.startOf("day"))+N).attr("y",i.gridLineStartPadding).attr("width",Q=>y(Q.end.endOf("day"))-y(Q.start.startOf("day"))).attr("height",_-I-i.gridLineStartPadding).attr("transform-origin",function(Q,H){return(y(Q.start)+N+.5*(y(Q.end)-y(Q.start))).toString()+"px "+(H*L+.5*_).toString()+"px"}).attr("class","exclude-range")}o(T,"drawExcludeDays");function E(L,I,N,C){if(N<=0||L>I)return 1/0;let _=I-L,D=Mv.default.duration({[C??"day"]:N}).asMilliseconds();return D<=0?1/0:Math.ceil(_/D)}o(E,"getEstimatedTickCount");function w(L,I,N,C){let _=n.db.getDateFormat(),D=n.db.getAxisFormat(),M;D?M=D:_==="D"?M="%d":M=i.axisFormat??"%Y-%m-%d";let R=GD(y).tickSize(-C+I+i.gridLineStartPadding).tickFormat(r0(M)),B=/^([1-9]\d*)(millisecond|second|minute|hour|day|week|month)$/.exec(n.db.getTickInterval()||i.tickInterval);if(B!==null){let F=parseInt(B[1],10);if(isNaN(F)||F<=0)K.warn(`Invalid tick interval value: "${B[1]}". Skipping custom tick interval.`);else{let G=B[2],$=n.db.getWeekday()||i.weekday,V=y.domain(),X=V[0],Q=V[1],H=E(X,Q,F,G);if(H>Pq)K.warn(`The tick interval "${F}${G}" would generate ${H} ticks, which exceeds the maximum allowed (${Pq}). This may indicate an invalid date or time range. Skipping custom tick interval.`);else switch(G){case"millisecond":R.ticks(ru.every(F));break;case"second":R.ticks($o.every(F));break;case"minute":R.ticks(yh.every(F));break;case"hour":R.ticks(vh.every(F));break;case"day":R.ticks(gl.every(F));break;case"week":R.ticks(e3e[$].every(F));break;case"month":R.ticks(xh.every(F));break}}}if(g.append("g").attr("class","grid").attr("transform","translate("+L+", "+(C-50)+")").call(R).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10).attr("dy","1em"),n.db.topAxisEnabled()||i.topAxis){let F=zD(y).tickSize(-C+I+i.gridLineStartPadding).tickFormat(r0(M));if(B!==null){let G=parseInt(B[1],10);if(isNaN(G)||G<=0)K.warn(`Invalid tick interval value: "${B[1]}". Skipping custom tick interval.`);else{let $=B[2],V=n.db.getWeekday()||i.weekday,X=y.domain(),Q=X[0],H=X[1];if(E(Q,H,G,$)<=Pq)switch($){case"millisecond":F.ticks(ru.every(G));break;case"second":F.ticks($o.every(G));break;case"minute":F.ticks(yh.every(G));break;case"hour":F.ticks(vh.every(G));break;case"day":F.ticks(gl.every(G));break;case"week":F.ticks(e3e[V].every(G));break;case"month":F.ticks(xh.every(G));break}}}g.append("g").attr("class","grid").attr("transform","translate("+L+", "+I+")").call(F).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10)}}o(w,"makeGrid");function k(L,I){let N=0,C=Object.keys(p).map(_=>[_,p[_]]);g.append("g").selectAll("text").data(C).enter().append(function(_){let D=_[0].split(st.lineBreakRegex),M=-(D.length-1)/2,R=u.createElementNS("http://www.w3.org/2000/svg","text");R.setAttribute("dy",M+"em");for(let[P,B]of D.entries()){let F=u.createElementNS("http://www.w3.org/2000/svg","tspan");F.setAttribute("alignment-baseline","central"),F.setAttribute("x","10"),P>0&&F.setAttribute("dy","1em"),F.textContent=B,R.appendChild(F)}return R}).attr("x",10).attr("y",function(_,D){if(D>0)for(let M=0;M{"use strict";xot=o(t=>` + .mermaid-main-font { + font-family: ${t.fontFamily}; + } + + .exclude-range { + fill: ${t.excludeBkgColor}; + } + + .section { + stroke: none; + opacity: 0.2; + } + + .section0 { + fill: ${t.sectionBkgColor}; + } + + .section2 { + fill: ${t.sectionBkgColor2}; + } + + .section1, + .section3 { + fill: ${t.altSectionBkgColor}; + opacity: 0.2; + } + + .sectionTitle0 { + fill: ${t.titleColor}; + } + + .sectionTitle1 { + fill: ${t.titleColor}; + } + + .sectionTitle2 { + fill: ${t.titleColor}; + } + + .sectionTitle3 { + fill: ${t.titleColor}; + } + + .sectionTitle { + text-anchor: start; + font-family: ${t.fontFamily}; + } + + + /* Grid and axis */ + + .grid .tick { + stroke: ${t.gridColor}; + opacity: 0.8; + shape-rendering: crispEdges; + } + + .grid .tick text { + font-family: ${t.fontFamily}; + fill: ${t.textColor}; + } + + .grid path { + stroke-width: 0; + } + + + /* Today line */ + + .today { + fill: none; + stroke: ${t.todayLineColor}; + stroke-width: 2px; + } + + + /* Task styling */ + + /* Default task */ + + .task { + stroke-width: 2; + } + + .taskText { + text-anchor: middle; + font-family: ${t.fontFamily}; + } + + .taskTextOutsideRight { + fill: ${t.taskTextDarkColor}; + text-anchor: start; + font-family: ${t.fontFamily}; + } + + .taskTextOutsideLeft { + fill: ${t.taskTextDarkColor}; + text-anchor: end; + } + + + /* Special case clickable */ + + .task.clickable { + cursor: pointer; + } + + .taskText.clickable { + cursor: pointer; + fill: ${t.taskTextClickableColor} !important; + font-weight: bold; + } + + .taskTextOutsideLeft.clickable { + cursor: pointer; + fill: ${t.taskTextClickableColor} !important; + font-weight: bold; + } + + .taskTextOutsideRight.clickable { + cursor: pointer; + fill: ${t.taskTextClickableColor} !important; + font-weight: bold; + } + + + /* Specific task settings for the sections*/ + + .taskText0, + .taskText1, + .taskText2, + .taskText3 { + fill: ${t.taskTextColor}; + } + + .task0, + .task1, + .task2, + .task3 { + fill: ${t.taskBkgColor}; + stroke: ${t.taskBorderColor}; + } + + .taskTextOutside0, + .taskTextOutside2 + { + fill: ${t.taskTextOutsideColor}; + } + + .taskTextOutside1, + .taskTextOutside3 { + fill: ${t.taskTextOutsideColor}; + } + + + /* Active task */ + + .active0, + .active1, + .active2, + .active3 { + fill: ${t.activeTaskBkgColor}; + stroke: ${t.activeTaskBorderColor}; + } + + .activeText0, + .activeText1, + .activeText2, + .activeText3 { + fill: ${t.taskTextDarkColor} !important; + } + + + /* Completed task */ + + .done0, + .done1, + .done2, + .done3 { + stroke: ${t.doneTaskBorderColor}; + fill: ${t.doneTaskBkgColor}; + stroke-width: 2; + } + + .doneText0, + .doneText1, + .doneText2, + .doneText3 { + fill: ${t.taskTextDarkColor} !important; + } + + /* Done task text displayed outside the bar sits against the diagram background, + not against the done-task bar, so it must use the outside/contrast color. */ + .doneText0.taskTextOutsideLeft, + .doneText0.taskTextOutsideRight, + .doneText1.taskTextOutsideLeft, + .doneText1.taskTextOutsideRight, + .doneText2.taskTextOutsideLeft, + .doneText2.taskTextOutsideRight, + .doneText3.taskTextOutsideLeft, + .doneText3.taskTextOutsideRight { + fill: ${t.taskTextOutsideColor} !important; + } + + + /* Tasks on the critical line */ + + .crit0, + .crit1, + .crit2, + .crit3 { + stroke: ${t.critBorderColor}; + fill: ${t.critBkgColor}; + stroke-width: 2; + } + + .activeCrit0, + .activeCrit1, + .activeCrit2, + .activeCrit3 { + stroke: ${t.critBorderColor}; + fill: ${t.activeTaskBkgColor}; + stroke-width: 2; + } + + .doneCrit0, + .doneCrit1, + .doneCrit2, + .doneCrit3 { + stroke: ${t.critBorderColor}; + fill: ${t.doneTaskBkgColor}; + stroke-width: 2; + cursor: pointer; + shape-rendering: crispEdges; + } + + .milestone { + transform: rotate(45deg) scale(0.8,0.8); + } + + .milestoneText { + font-style: italic; + } + .doneCritText0, + .doneCritText1, + .doneCritText2, + .doneCritText3 { + fill: ${t.taskTextDarkColor} !important; + } + + /* Done-crit task text outside the bar \u2014 same reasoning as doneText above. */ + .doneCritText0.taskTextOutsideLeft, + .doneCritText0.taskTextOutsideRight, + .doneCritText1.taskTextOutsideLeft, + .doneCritText1.taskTextOutsideRight, + .doneCritText2.taskTextOutsideLeft, + .doneCritText2.taskTextOutsideRight, + .doneCritText3.taskTextOutsideLeft, + .doneCritText3.taskTextOutsideRight { + fill: ${t.taskTextOutsideColor} !important; + } + + .vert { + stroke: ${t.vertLineColor}; + } + + .vertText { + font-size: 15px; + text-anchor: middle; + fill: ${t.vertLineColor} !important; + } + + .activeCritText0, + .activeCritText1, + .activeCritText2, + .activeCritText3 { + fill: ${t.taskTextDarkColor} !important; + } + + .titleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.titleColor||t.textColor}; + font-family: ${t.fontFamily}; + } +`,"getStyles"),i3e=xot});var s3e={};vr(s3e,{diagram:()=>bot});var bot,o3e=O(()=>{"use strict";N4e();Z4e();n3e();a3e();bot={parser:L4e,db:K4e,renderer:r3e,styles:i3e}});var u3e,h3e=O(()=>{"use strict";up();xt();u3e={parse:o(async t=>{let e=await Us("info",t);K.debug(e)},"parse")}});var Eot,Sot,f3e,d3e=O(()=>{"use strict";Eot={version:"11.13.0"},Sot=o(()=>Eot.version,"getVersion"),f3e={getVersion:Sot}});var Ii,Ul=O(()=>{"use strict";Ar();jt();Ii=o(t=>{let{securityLevel:e}=ve(),r=je("body");if(e==="sandbox"){let a=je(`#i${t}`).node()?.contentDocument??document;r=je(a.body)}return r.select(`#${t}`)},"selectSvgElement")});var Cot,p3e,m3e=O(()=>{"use strict";xt();Ul();Ti();Cot=o((t,e,r)=>{K.debug(`rendering info diagram +`+t);let n=Ii(e);Zr(n,100,400,!0),n.append("g").append("text").attr("x",100).attr("y",40).attr("class","version").attr("font-size",32).style("text-anchor","middle").text(`v${r}`)},"draw"),p3e={draw:Cot}});var g3e={};vr(g3e,{diagram:()=>Aot});var Aot,y3e=O(()=>{"use strict";h3e();d3e();m3e();Aot={parser:u3e,db:f3e,renderer:p3e}});var b3e,Bq,_7,Fq,Rot,Lot,Not,Mot,Iot,Oot,Pot,D7,$q=O(()=>{"use strict";xt();si();La();b3e=gr.pie,Bq={sections:new Map,showData:!1,config:b3e},_7=Bq.sections,Fq=Bq.showData,Rot=structuredClone(b3e),Lot=o(()=>structuredClone(Rot),"getConfig"),Not=o(()=>{_7=new Map,Fq=Bq.showData,_r()},"clear"),Mot=o(({label:t,value:e})=>{if(e<0)throw new Error(`"${t}" has invalid value: ${e}. Negative values are not allowed in pie charts. All slice values must be >= 0.`);_7.has(t)||(_7.set(t,e),K.debug(`added new section: ${t}, with value: ${e}`))},"addSection"),Iot=o(()=>_7,"getSections"),Oot=o(t=>{Fq=t},"setShowData"),Pot=o(()=>Fq,"getShowData"),D7={getConfig:Lot,clear:Not,setDiagramTitle:zr,getDiagramTitle:Fr,setAccTitle:Lr,getAccTitle:Or,setAccDescription:Pr,getAccDescription:Br,addSection:Mot,getSections:Iot,setShowData:Oot,getShowData:Pot}});var Bot,T3e,w3e=O(()=>{"use strict";up();xt();Vm();$q();Bot=o((t,e)=>{ql(t,e),e.setShowData(t.showData),t.sections.map(e.addSection)},"populateDb"),T3e={parse:o(async t=>{let e=await Us("pie",t);K.debug(e),Bot(e,D7)},"parse")}});var Fot,k3e,E3e=O(()=>{"use strict";Fot=o(t=>` + .pieCircle{ + stroke: ${t.pieStrokeColor}; + stroke-width : ${t.pieStrokeWidth}; + opacity : ${t.pieOpacity}; + } + .pieOuterCircle{ + stroke: ${t.pieOuterStrokeColor}; + stroke-width: ${t.pieOuterStrokeWidth}; + fill: none; + } + .pieTitleText { + text-anchor: middle; + font-size: ${t.pieTitleTextSize}; + fill: ${t.pieTitleTextColor}; + font-family: ${t.fontFamily}; + } + .slice { + font-family: ${t.fontFamily}; + fill: ${t.pieSectionTextColor}; + font-size:${t.pieSectionTextSize}; + // fill: white; + } + .legend text { + fill: ${t.pieLegendTextColor}; + font-family: ${t.fontFamily}; + font-size: ${t.pieLegendTextSize}; + } +`,"getStyles"),k3e=Fot});var $ot,zot,S3e,C3e=O(()=>{"use strict";Ar();jt();xt();Ul();Ti();ar();$ot=o(t=>{let e=[...t.values()].reduce((i,a)=>i+a,0),r=[...t.entries()].map(([i,a])=>({label:i,value:a})).filter(i=>i.value/e*100>=1).sort((i,a)=>a.value-i.value);return W5().value(i=>i.value)(r)},"createPieArcs"),zot=o((t,e,r,n)=>{K.debug(`rendering pie chart +`+t);let i=n.db,a=ve(),s=Pn(i.getConfig(),a.pie),l=40,u=18,h=4,f=450,d=f,p=Ii(e),m=p.append("g");m.attr("transform","translate("+d/2+","+f/2+")");let{themeVariables:g}=a,[y]=Uo(g.pieOuterStrokeWidth);y??=2;let v=s.textPosition,x=Math.min(d,f)/2-l,b=uc().innerRadius(0).outerRadius(x),T=uc().innerRadius(x*v).outerRadius(x*v);m.append("circle").attr("cx",0).attr("cy",0).attr("r",x+y/2).attr("class","pieOuterCircle");let E=i.getSections(),w=$ot(E),k=[g.pie1,g.pie2,g.pie3,g.pie4,g.pie5,g.pie6,g.pie7,g.pie8,g.pie9,g.pie10,g.pie11,g.pie12],S=0;E.forEach(D=>{S+=D});let A=w.filter(D=>(D.data.value/S*100).toFixed(0)!=="0"),L=Fo(k);m.selectAll("mySlices").data(A).enter().append("path").attr("d",b).attr("fill",D=>L(D.data.label)).attr("class","pieCircle"),m.selectAll("mySlices").data(A).enter().append("text").text(D=>(D.data.value/S*100).toFixed(0)+"%").attr("transform",D=>"translate("+T.centroid(D)+")").style("text-anchor","middle").attr("class","slice"),m.append("text").text(i.getDiagramTitle()).attr("x",0).attr("y",-(f-50)/2).attr("class","pieTitleText");let I=[...E.entries()].map(([D,M])=>({label:D,value:M})),N=m.selectAll(".legend").data(I).enter().append("g").attr("class","legend").attr("transform",(D,M)=>{let R=u+h,P=R*I.length/2,B=12*u,F=M*R-P;return"translate("+B+","+F+")"});N.append("rect").attr("width",u).attr("height",u).style("fill",D=>L(D.label)).style("stroke",D=>L(D.label)),N.append("text").attr("x",u+h).attr("y",u-h).text(D=>i.getShowData()?`${D.label} [${D.value}]`:D.label);let C=Math.max(...N.selectAll("text").nodes().map(D=>D?.getBoundingClientRect().width??0)),_=d+l+u+h+C;p.attr("viewBox",`0 0 ${_} ${f}`),Zr(p,f,_,s.useMaxWidth)},"draw"),S3e={draw:zot}});var A3e={};vr(A3e,{diagram:()=>Got});var Got,_3e=O(()=>{"use strict";w3e();$q();E3e();C3e();Got={parser:T3e,db:D7,renderer:S3e,styles:k3e}});var zq,R3e,L3e=O(()=>{"use strict";zq=(function(){var t=o(function(ce,z,ne,se){for(ne=ne||{},se=ce.length;se--;ne[ce[se]]=z);return ne},"o"),e=[1,3],r=[1,4],n=[1,5],i=[1,6],a=[1,7],s=[1,4,5,10,12,13,14,18,25,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],l=[1,4,5,10,12,13,14,18,25,28,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],u=[55,56,57],h=[2,36],f=[1,37],d=[1,36],p=[1,38],m=[1,35],g=[1,43],y=[1,41],v=[1,14],x=[1,23],b=[1,18],T=[1,19],E=[1,20],w=[1,21],k=[1,22],S=[1,24],A=[1,25],L=[1,26],I=[1,27],N=[1,28],C=[1,29],_=[1,32],D=[1,33],M=[1,34],R=[1,39],P=[1,40],B=[1,42],F=[1,44],G=[1,62],$=[1,61],V=[4,5,8,10,12,13,14,18,44,47,49,55,56,57,63,64,65,66,67],X=[1,65],Q=[1,66],H=[1,67],ie=[1,68],Y=[1,69],le=[1,70],ee=[1,71],J=[1,72],te=[1,73],Z=[1,74],xe=[1,75],de=[1,76],Se=[4,5,6,7,8,9,10,11,12,13,14,15,18],Me=[1,90],ke=[1,91],we=[1,92],_e=[1,99],$e=[1,93],fe=[1,96],Ke=[1,94],Te=[1,95],Be=[1,97],Ue=[1,98],Ge=[1,102],Ne=[10,55,56,57],We=[4,5,6,8,10,11,13,17,18,19,20,55,56,57],j={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,idStringToken:3,ALPHA:4,NUM:5,NODE_STRING:6,DOWN:7,MINUS:8,DEFAULT:9,COMMA:10,COLON:11,AMP:12,BRKT:13,MULT:14,UNICODE_TEXT:15,styleComponent:16,UNIT:17,SPACE:18,STYLE:19,PCT:20,idString:21,style:22,stylesOpt:23,classDefStatement:24,CLASSDEF:25,start:26,eol:27,QUADRANT:28,document:29,line:30,statement:31,axisDetails:32,quadrantDetails:33,points:34,title:35,title_value:36,acc_title:37,acc_title_value:38,acc_descr:39,acc_descr_value:40,acc_descr_multiline_value:41,section:42,text:43,point_start:44,point_x:45,point_y:46,class_name:47,"X-AXIS":48,"AXIS-TEXT-DELIMITER":49,"Y-AXIS":50,QUADRANT_1:51,QUADRANT_2:52,QUADRANT_3:53,QUADRANT_4:54,NEWLINE:55,SEMI:56,EOF:57,alphaNumToken:58,textNoTagsToken:59,STR:60,MD_STR:61,alphaNum:62,PUNCTUATION:63,PLUS:64,EQUALS:65,DOT:66,UNDERSCORE:67,$accept:0,$end:1},terminals_:{2:"error",4:"ALPHA",5:"NUM",6:"NODE_STRING",7:"DOWN",8:"MINUS",9:"DEFAULT",10:"COMMA",11:"COLON",12:"AMP",13:"BRKT",14:"MULT",15:"UNICODE_TEXT",17:"UNIT",18:"SPACE",19:"STYLE",20:"PCT",25:"CLASSDEF",28:"QUADRANT",35:"title",36:"title_value",37:"acc_title",38:"acc_title_value",39:"acc_descr",40:"acc_descr_value",41:"acc_descr_multiline_value",42:"section",44:"point_start",45:"point_x",46:"point_y",47:"class_name",48:"X-AXIS",49:"AXIS-TEXT-DELIMITER",50:"Y-AXIS",51:"QUADRANT_1",52:"QUADRANT_2",53:"QUADRANT_3",54:"QUADRANT_4",55:"NEWLINE",56:"SEMI",57:"EOF",60:"STR",61:"MD_STR",63:"PUNCTUATION",64:"PLUS",65:"EQUALS",66:"DOT",67:"UNDERSCORE"},productions_:[0,[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[21,1],[21,2],[22,1],[22,2],[23,1],[23,3],[24,5],[26,2],[26,2],[26,2],[29,0],[29,2],[30,2],[31,0],[31,1],[31,2],[31,1],[31,1],[31,1],[31,2],[31,2],[31,2],[31,1],[31,1],[34,4],[34,5],[34,5],[34,6],[32,4],[32,3],[32,2],[32,4],[32,3],[32,2],[33,2],[33,2],[33,2],[33,2],[27,1],[27,1],[27,1],[43,1],[43,2],[43,1],[43,1],[62,1],[62,2],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[59,1],[59,1],[59,1]],performAction:o(function(z,ne,se,be,pe,me,Re){var ge=me.length-1;switch(pe){case 23:this.$=me[ge];break;case 24:this.$=me[ge-1]+""+me[ge];break;case 26:this.$=me[ge-1]+me[ge];break;case 27:this.$=[me[ge].trim()];break;case 28:me[ge-2].push(me[ge].trim()),this.$=me[ge-2];break;case 29:this.$=me[ge-4],be.addClass(me[ge-2],me[ge]);break;case 37:this.$=[];break;case 42:this.$=me[ge].trim(),be.setDiagramTitle(this.$);break;case 43:this.$=me[ge].trim(),be.setAccTitle(this.$);break;case 44:case 45:this.$=me[ge].trim(),be.setAccDescription(this.$);break;case 46:be.addSection(me[ge].substr(8)),this.$=me[ge].substr(8);break;case 47:be.addPoint(me[ge-3],"",me[ge-1],me[ge],[]);break;case 48:be.addPoint(me[ge-4],me[ge-3],me[ge-1],me[ge],[]);break;case 49:be.addPoint(me[ge-4],"",me[ge-2],me[ge-1],me[ge]);break;case 50:be.addPoint(me[ge-5],me[ge-4],me[ge-2],me[ge-1],me[ge]);break;case 51:be.setXAxisLeftText(me[ge-2]),be.setXAxisRightText(me[ge]);break;case 52:me[ge-1].text+=" \u27F6 ",be.setXAxisLeftText(me[ge-1]);break;case 53:be.setXAxisLeftText(me[ge]);break;case 54:be.setYAxisBottomText(me[ge-2]),be.setYAxisTopText(me[ge]);break;case 55:me[ge-1].text+=" \u27F6 ",be.setYAxisBottomText(me[ge-1]);break;case 56:be.setYAxisBottomText(me[ge]);break;case 57:be.setQuadrant1Text(me[ge]);break;case 58:be.setQuadrant2Text(me[ge]);break;case 59:be.setQuadrant3Text(me[ge]);break;case 60:be.setQuadrant4Text(me[ge]);break;case 64:this.$={text:me[ge],type:"text"};break;case 65:this.$={text:me[ge-1].text+""+me[ge],type:me[ge-1].type};break;case 66:this.$={text:me[ge],type:"text"};break;case 67:this.$={text:me[ge],type:"markdown"};break;case 68:this.$=me[ge];break;case 69:this.$=me[ge-1]+""+me[ge];break}},"anonymous"),table:[{18:e,26:1,27:2,28:r,55:n,56:i,57:a},{1:[3]},{18:e,26:8,27:2,28:r,55:n,56:i,57:a},{18:e,26:9,27:2,28:r,55:n,56:i,57:a},t(s,[2,33],{29:10}),t(l,[2,61]),t(l,[2,62]),t(l,[2,63]),{1:[2,30]},{1:[2,31]},t(u,h,{30:11,31:12,24:13,32:15,33:16,34:17,43:30,58:31,1:[2,32],4:f,5:d,10:p,12:m,13:g,14:y,18:v,25:x,35:b,37:T,39:E,41:w,42:k,48:S,50:A,51:L,52:I,53:N,54:C,60:_,61:D,63:M,64:R,65:P,66:B,67:F}),t(s,[2,34]),{27:45,55:n,56:i,57:a},t(u,[2,37]),t(u,h,{24:13,32:15,33:16,34:17,43:30,58:31,31:46,4:f,5:d,10:p,12:m,13:g,14:y,18:v,25:x,35:b,37:T,39:E,41:w,42:k,48:S,50:A,51:L,52:I,53:N,54:C,60:_,61:D,63:M,64:R,65:P,66:B,67:F}),t(u,[2,39]),t(u,[2,40]),t(u,[2,41]),{36:[1,47]},{38:[1,48]},{40:[1,49]},t(u,[2,45]),t(u,[2,46]),{18:[1,50]},{4:f,5:d,10:p,12:m,13:g,14:y,43:51,58:31,60:_,61:D,63:M,64:R,65:P,66:B,67:F},{4:f,5:d,10:p,12:m,13:g,14:y,43:52,58:31,60:_,61:D,63:M,64:R,65:P,66:B,67:F},{4:f,5:d,10:p,12:m,13:g,14:y,43:53,58:31,60:_,61:D,63:M,64:R,65:P,66:B,67:F},{4:f,5:d,10:p,12:m,13:g,14:y,43:54,58:31,60:_,61:D,63:M,64:R,65:P,66:B,67:F},{4:f,5:d,10:p,12:m,13:g,14:y,43:55,58:31,60:_,61:D,63:M,64:R,65:P,66:B,67:F},{4:f,5:d,10:p,12:m,13:g,14:y,43:56,58:31,60:_,61:D,63:M,64:R,65:P,66:B,67:F},{4:f,5:d,8:G,10:p,12:m,13:g,14:y,18:$,44:[1,57],47:[1,58],58:60,59:59,63:M,64:R,65:P,66:B,67:F},t(V,[2,64]),t(V,[2,66]),t(V,[2,67]),t(V,[2,70]),t(V,[2,71]),t(V,[2,72]),t(V,[2,73]),t(V,[2,74]),t(V,[2,75]),t(V,[2,76]),t(V,[2,77]),t(V,[2,78]),t(V,[2,79]),t(V,[2,80]),t(s,[2,35]),t(u,[2,38]),t(u,[2,42]),t(u,[2,43]),t(u,[2,44]),{3:64,4:X,5:Q,6:H,7:ie,8:Y,9:le,10:ee,11:J,12:te,13:Z,14:xe,15:de,21:63},t(u,[2,53],{59:59,58:60,4:f,5:d,8:G,10:p,12:m,13:g,14:y,18:$,49:[1,77],63:M,64:R,65:P,66:B,67:F}),t(u,[2,56],{59:59,58:60,4:f,5:d,8:G,10:p,12:m,13:g,14:y,18:$,49:[1,78],63:M,64:R,65:P,66:B,67:F}),t(u,[2,57],{59:59,58:60,4:f,5:d,8:G,10:p,12:m,13:g,14:y,18:$,63:M,64:R,65:P,66:B,67:F}),t(u,[2,58],{59:59,58:60,4:f,5:d,8:G,10:p,12:m,13:g,14:y,18:$,63:M,64:R,65:P,66:B,67:F}),t(u,[2,59],{59:59,58:60,4:f,5:d,8:G,10:p,12:m,13:g,14:y,18:$,63:M,64:R,65:P,66:B,67:F}),t(u,[2,60],{59:59,58:60,4:f,5:d,8:G,10:p,12:m,13:g,14:y,18:$,63:M,64:R,65:P,66:B,67:F}),{45:[1,79]},{44:[1,80]},t(V,[2,65]),t(V,[2,81]),t(V,[2,82]),t(V,[2,83]),{3:82,4:X,5:Q,6:H,7:ie,8:Y,9:le,10:ee,11:J,12:te,13:Z,14:xe,15:de,18:[1,81]},t(Se,[2,23]),t(Se,[2,1]),t(Se,[2,2]),t(Se,[2,3]),t(Se,[2,4]),t(Se,[2,5]),t(Se,[2,6]),t(Se,[2,7]),t(Se,[2,8]),t(Se,[2,9]),t(Se,[2,10]),t(Se,[2,11]),t(Se,[2,12]),t(u,[2,52],{58:31,43:83,4:f,5:d,10:p,12:m,13:g,14:y,60:_,61:D,63:M,64:R,65:P,66:B,67:F}),t(u,[2,55],{58:31,43:84,4:f,5:d,10:p,12:m,13:g,14:y,60:_,61:D,63:M,64:R,65:P,66:B,67:F}),{46:[1,85]},{45:[1,86]},{4:Me,5:ke,6:we,8:_e,11:$e,13:fe,16:89,17:Ke,18:Te,19:Be,20:Ue,22:88,23:87},t(Se,[2,24]),t(u,[2,51],{59:59,58:60,4:f,5:d,8:G,10:p,12:m,13:g,14:y,18:$,63:M,64:R,65:P,66:B,67:F}),t(u,[2,54],{59:59,58:60,4:f,5:d,8:G,10:p,12:m,13:g,14:y,18:$,63:M,64:R,65:P,66:B,67:F}),t(u,[2,47],{22:88,16:89,23:100,4:Me,5:ke,6:we,8:_e,11:$e,13:fe,17:Ke,18:Te,19:Be,20:Ue}),{46:[1,101]},t(u,[2,29],{10:Ge}),t(Ne,[2,27],{16:103,4:Me,5:ke,6:we,8:_e,11:$e,13:fe,17:Ke,18:Te,19:Be,20:Ue}),t(We,[2,25]),t(We,[2,13]),t(We,[2,14]),t(We,[2,15]),t(We,[2,16]),t(We,[2,17]),t(We,[2,18]),t(We,[2,19]),t(We,[2,20]),t(We,[2,21]),t(We,[2,22]),t(u,[2,49],{10:Ge}),t(u,[2,48],{22:88,16:89,23:104,4:Me,5:ke,6:we,8:_e,11:$e,13:fe,17:Ke,18:Te,19:Be,20:Ue}),{4:Me,5:ke,6:we,8:_e,11:$e,13:fe,16:89,17:Ke,18:Te,19:Be,20:Ue,22:105},t(We,[2,26]),t(u,[2,50],{10:Ge}),t(Ne,[2,28],{16:103,4:Me,5:ke,6:we,8:_e,11:$e,13:fe,17:Ke,18:Te,19:Be,20:Ue})],defaultActions:{8:[2,30],9:[2,31]},parseError:o(function(z,ne){if(ne.recoverable)this.trace(z);else{var se=new Error(z);throw se.hash=ne,se}},"parseError"),parse:o(function(z){var ne=this,se=[0],be=[],pe=[null],me=[],Re=this.table,ge="",Ie=0,qe=0,Pe=0,Xe=2,oe=1,et=me.slice.call(arguments,1),he=Object.create(this.lexer),ot={yy:{}};for(var Dt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Dt)&&(ot.yy[Dt]=this.yy[Dt]);he.setInput(z,ot.yy),ot.yy.lexer=he,ot.yy.parser=this,typeof he.yylloc>"u"&&(he.yylloc={});var It=he.yylloc;me.push(It);var wt=he.options&&he.options.ranges;typeof ot.yy.parseError=="function"?this.parseError=ot.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Rt(mt){se.length=se.length-2*mt,pe.length=pe.length-mt,me.length=me.length-mt}o(Rt,"popStack");function it(){var mt;return mt=be.pop()||he.lex()||oe,typeof mt!="number"&&(mt instanceof Array&&(be=mt,mt=be.pop()),mt=ne.symbols_[mt]||mt),mt}o(it,"lex");for(var at,Ct,yt,dt,Ht,cr,Kt={},kr,ur,tr,hr;;){if(yt=se[se.length-1],this.defaultActions[yt]?dt=this.defaultActions[yt]:((at===null||typeof at>"u")&&(at=it()),dt=Re[yt]&&Re[yt][at]),typeof dt>"u"||!dt.length||!dt[0]){var _n="";hr=[];for(kr in Re[yt])this.terminals_[kr]&&kr>Xe&&hr.push("'"+this.terminals_[kr]+"'");he.showPosition?_n="Parse error on line "+(Ie+1)+`: +`+he.showPosition()+` +Expecting `+hr.join(", ")+", got '"+(this.terminals_[at]||at)+"'":_n="Parse error on line "+(Ie+1)+": Unexpected "+(at==oe?"end of input":"'"+(this.terminals_[at]||at)+"'"),this.parseError(_n,{text:he.match,token:this.terminals_[at]||at,line:he.yylineno,loc:It,expected:hr})}if(dt[0]instanceof Array&&dt.length>1)throw new Error("Parse Error: multiple actions possible at state: "+yt+", token: "+at);switch(dt[0]){case 1:se.push(at),pe.push(he.yytext),me.push(he.yylloc),se.push(dt[1]),at=null,Ct?(at=Ct,Ct=null):(qe=he.yyleng,ge=he.yytext,Ie=he.yylineno,It=he.yylloc,Pe>0&&Pe--);break;case 2:if(ur=this.productions_[dt[1]][1],Kt.$=pe[pe.length-ur],Kt._$={first_line:me[me.length-(ur||1)].first_line,last_line:me[me.length-1].last_line,first_column:me[me.length-(ur||1)].first_column,last_column:me[me.length-1].last_column},wt&&(Kt._$.range=[me[me.length-(ur||1)].range[0],me[me.length-1].range[1]]),cr=this.performAction.apply(Kt,[ge,qe,Ie,ot.yy,dt[1],pe,me].concat(et)),typeof cr<"u")return cr;ur&&(se=se.slice(0,-1*ur*2),pe=pe.slice(0,-1*ur),me=me.slice(0,-1*ur)),se.push(this.productions_[dt[1]][0]),pe.push(Kt.$),me.push(Kt._$),tr=Re[se[se.length-2]][se[se.length-1]],se.push(tr);break;case 3:return!0}}return!0},"parse")},ae=(function(){var ce={EOF:1,parseError:o(function(ne,se){if(this.yy.parser)this.yy.parser.parseError(ne,se);else throw new Error(ne)},"parseError"),setInput:o(function(z,ne){return this.yy=ne||this.yy||{},this._input=z,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var z=this._input[0];this.yytext+=z,this.yyleng++,this.offset++,this.match+=z,this.matched+=z;var ne=z.match(/(?:\r\n?|\n).*/g);return ne?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),z},"input"),unput:o(function(z){var ne=z.length,se=z.split(/(?:\r\n?|\n)/g);this._input=z+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-ne),this.offset-=ne;var be=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),se.length-1&&(this.yylineno-=se.length-1);var pe=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:se?(se.length===be.length?this.yylloc.first_column:0)+be[be.length-se.length].length-se[0].length:this.yylloc.first_column-ne},this.options.ranges&&(this.yylloc.range=[pe[0],pe[0]+this.yyleng-ne]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(z){this.unput(this.match.slice(z))},"less"),pastInput:o(function(){var z=this.matched.substr(0,this.matched.length-this.match.length);return(z.length>20?"...":"")+z.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var z=this.match;return z.length<20&&(z+=this._input.substr(0,20-z.length)),(z.substr(0,20)+(z.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var z=this.pastInput(),ne=new Array(z.length+1).join("-");return z+this.upcomingInput()+` +`+ne+"^"},"showPosition"),test_match:o(function(z,ne){var se,be,pe;if(this.options.backtrack_lexer&&(pe={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(pe.yylloc.range=this.yylloc.range.slice(0))),be=z[0].match(/(?:\r\n?|\n).*/g),be&&(this.yylineno+=be.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:be?be[be.length-1].length-be[be.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+z[0].length},this.yytext+=z[0],this.match+=z[0],this.matches=z,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(z[0].length),this.matched+=z[0],se=this.performAction.call(this,this.yy,this,ne,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),se)return se;if(this._backtrack){for(var me in pe)this[me]=pe[me];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var z,ne,se,be;this._more||(this.yytext="",this.match="");for(var pe=this._currentRules(),me=0;mene[0].length)){if(ne=se,be=me,this.options.backtrack_lexer){if(z=this.test_match(se,pe[me]),z!==!1)return z;if(this._backtrack){ne=!1;continue}else return!1}else if(!this.options.flex)break}return ne?(z=this.test_match(ne,pe[be]),z!==!1?z:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var ne=this.next();return ne||this.lex()},"lex"),begin:o(function(ne){this.conditionStack.push(ne)},"begin"),popState:o(function(){var ne=this.conditionStack.length-1;return ne>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(ne){return ne=this.conditionStack.length-1-Math.abs(ne||0),ne>=0?this.conditionStack[ne]:"INITIAL"},"topState"),pushState:o(function(ne){this.begin(ne)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(ne,se,be,pe){var me=pe;switch(be){case 0:break;case 1:break;case 2:return 55;case 3:break;case 4:return this.begin("title"),35;break;case 5:return this.popState(),"title_value";break;case 6:return this.begin("acc_title"),37;break;case 7:return this.popState(),"acc_title_value";break;case 8:return this.begin("acc_descr"),39;break;case 9:return this.popState(),"acc_descr_value";break;case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 48;case 14:return 50;case 15:return 49;case 16:return 51;case 17:return 52;case 18:return 53;case 19:return 54;case 20:return 25;case 21:this.begin("md_string");break;case 22:return"MD_STR";case 23:this.popState();break;case 24:this.begin("string");break;case 25:this.popState();break;case 26:return"STR";case 27:this.begin("class_name");break;case 28:return this.popState(),47;break;case 29:return this.begin("point_start"),44;break;case 30:return this.begin("point_x"),45;break;case 31:this.popState();break;case 32:this.popState(),this.begin("point_y");break;case 33:return this.popState(),46;break;case 34:return 28;case 35:return 4;case 36:return 11;case 37:return 64;case 38:return 10;case 39:return 65;case 40:return 65;case 41:return 14;case 42:return 13;case 43:return 67;case 44:return 66;case 45:return 12;case 46:return 8;case 47:return 5;case 48:return 18;case 49:return 56;case 50:return 63;case 51:return 57}},"anonymous"),rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?: *x-axis *)/i,/^(?: *y-axis *)/i,/^(?: *--+> *)/i,/^(?: *quadrant-1 *)/i,/^(?: *quadrant-2 *)/i,/^(?: *quadrant-3 *)/i,/^(?: *quadrant-4 *)/i,/^(?:classDef\b)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?::::)/i,/^(?:^\w+)/i,/^(?:\s*:\s*\[\s*)/i,/^(?:(1)|(0(.\d+)?))/i,/^(?:\s*\] *)/i,/^(?:\s*,\s*)/i,/^(?:(1)|(0(.\d+)?))/i,/^(?: *quadrantChart *)/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s)/i,/^(?:;)/i,/^(?:[!"#$%&'*+,-.`?\\_/])/i,/^(?:$)/i],conditions:{class_name:{rules:[28],inclusive:!1},point_y:{rules:[33],inclusive:!1},point_x:{rules:[32],inclusive:!1},point_start:{rules:[30,31],inclusive:!1},acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},title:{rules:[5],inclusive:!1},md_string:{rules:[22,23],inclusive:!1},string:{rules:[25,26],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,6,8,10,13,14,15,16,17,18,19,20,21,24,27,29,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],inclusive:!0}}};return ce})();j.lexer=ae;function U(){this.yy={}}return o(U,"Parser"),U.prototype=j,j.Parser=U,new U})();zq.parser=zq;R3e=zq});var Ws,R7,N3e=O(()=>{"use strict";Ar();La();xt();y2();Ws=yf(),R7=class{constructor(){this.classes=new Map;this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData()}static{o(this,"QuadrantBuilder")}getDefaultData(){return{titleText:"",quadrant1Text:"",quadrant2Text:"",quadrant3Text:"",quadrant4Text:"",xAxisLeftText:"",xAxisRightText:"",yAxisBottomText:"",yAxisTopText:"",points:[]}}getDefaultConfig(){return{showXAxis:!0,showYAxis:!0,showTitle:!0,chartHeight:gr.quadrantChart?.chartWidth||500,chartWidth:gr.quadrantChart?.chartHeight||500,titlePadding:gr.quadrantChart?.titlePadding||10,titleFontSize:gr.quadrantChart?.titleFontSize||20,quadrantPadding:gr.quadrantChart?.quadrantPadding||5,xAxisLabelPadding:gr.quadrantChart?.xAxisLabelPadding||5,yAxisLabelPadding:gr.quadrantChart?.yAxisLabelPadding||5,xAxisLabelFontSize:gr.quadrantChart?.xAxisLabelFontSize||16,yAxisLabelFontSize:gr.quadrantChart?.yAxisLabelFontSize||16,quadrantLabelFontSize:gr.quadrantChart?.quadrantLabelFontSize||16,quadrantTextTopPadding:gr.quadrantChart?.quadrantTextTopPadding||5,pointTextPadding:gr.quadrantChart?.pointTextPadding||5,pointLabelFontSize:gr.quadrantChart?.pointLabelFontSize||12,pointRadius:gr.quadrantChart?.pointRadius||5,xAxisPosition:gr.quadrantChart?.xAxisPosition||"top",yAxisPosition:gr.quadrantChart?.yAxisPosition||"left",quadrantInternalBorderStrokeWidth:gr.quadrantChart?.quadrantInternalBorderStrokeWidth||1,quadrantExternalBorderStrokeWidth:gr.quadrantChart?.quadrantExternalBorderStrokeWidth||2}}getDefaultThemeConfig(){return{quadrant1Fill:Ws.quadrant1Fill,quadrant2Fill:Ws.quadrant2Fill,quadrant3Fill:Ws.quadrant3Fill,quadrant4Fill:Ws.quadrant4Fill,quadrant1TextFill:Ws.quadrant1TextFill,quadrant2TextFill:Ws.quadrant2TextFill,quadrant3TextFill:Ws.quadrant3TextFill,quadrant4TextFill:Ws.quadrant4TextFill,quadrantPointFill:Ws.quadrantPointFill,quadrantPointTextFill:Ws.quadrantPointTextFill,quadrantXAxisTextFill:Ws.quadrantXAxisTextFill,quadrantYAxisTextFill:Ws.quadrantYAxisTextFill,quadrantTitleFill:Ws.quadrantTitleFill,quadrantInternalBorderStrokeFill:Ws.quadrantInternalBorderStrokeFill,quadrantExternalBorderStrokeFill:Ws.quadrantExternalBorderStrokeFill}}clear(){this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData(),this.classes=new Map,K.info("clear called")}setData(e){this.data={...this.data,...e}}addPoints(e){this.data.points=[...e,...this.data.points]}addClass(e,r){this.classes.set(e,r)}setConfig(e){K.trace("setConfig called with: ",e),this.config={...this.config,...e}}setThemeConfig(e){K.trace("setThemeConfig called with: ",e),this.themeConfig={...this.themeConfig,...e}}calculateSpace(e,r,n,i){let a=this.config.xAxisLabelPadding*2+this.config.xAxisLabelFontSize,s={top:e==="top"&&r?a:0,bottom:e==="bottom"&&r?a:0},l=this.config.yAxisLabelPadding*2+this.config.yAxisLabelFontSize,u={left:this.config.yAxisPosition==="left"&&n?l:0,right:this.config.yAxisPosition==="right"&&n?l:0},h=this.config.titleFontSize+this.config.titlePadding*2,f={top:i?h:0},d=this.config.quadrantPadding+u.left,p=this.config.quadrantPadding+s.top+f.top,m=this.config.chartWidth-this.config.quadrantPadding*2-u.left-u.right,g=this.config.chartHeight-this.config.quadrantPadding*2-s.top-s.bottom-f.top,y=m/2,v=g/2;return{xAxisSpace:s,yAxisSpace:u,titleSpace:f,quadrantSpace:{quadrantLeft:d,quadrantTop:p,quadrantWidth:m,quadrantHalfWidth:y,quadrantHeight:g,quadrantHalfHeight:v}}}getAxisLabels(e,r,n,i){let{quadrantSpace:a,titleSpace:s}=i,{quadrantHalfHeight:l,quadrantHeight:u,quadrantLeft:h,quadrantHalfWidth:f,quadrantTop:d,quadrantWidth:p}=a,m=!!this.data.xAxisRightText,g=!!this.data.yAxisTopText,y=[];return this.data.xAxisLeftText&&r&&y.push({text:this.data.xAxisLeftText,fill:this.themeConfig.quadrantXAxisTextFill,x:h+(m?f/2:0),y:e==="top"?this.config.xAxisLabelPadding+s.top:this.config.xAxisLabelPadding+d+u+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:m?"center":"left",horizontalPos:"top",rotation:0}),this.data.xAxisRightText&&r&&y.push({text:this.data.xAxisRightText,fill:this.themeConfig.quadrantXAxisTextFill,x:h+f+(m?f/2:0),y:e==="top"?this.config.xAxisLabelPadding+s.top:this.config.xAxisLabelPadding+d+u+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:m?"center":"left",horizontalPos:"top",rotation:0}),this.data.yAxisBottomText&&n&&y.push({text:this.data.yAxisBottomText,fill:this.themeConfig.quadrantYAxisTextFill,x:this.config.yAxisPosition==="left"?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+h+p+this.config.quadrantPadding,y:d+u-(g?l/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:g?"center":"left",horizontalPos:"top",rotation:-90}),this.data.yAxisTopText&&n&&y.push({text:this.data.yAxisTopText,fill:this.themeConfig.quadrantYAxisTextFill,x:this.config.yAxisPosition==="left"?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+h+p+this.config.quadrantPadding,y:d+l-(g?l/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:g?"center":"left",horizontalPos:"top",rotation:-90}),y}getQuadrants(e){let{quadrantSpace:r}=e,{quadrantHalfHeight:n,quadrantLeft:i,quadrantHalfWidth:a,quadrantTop:s}=r,l=[{text:{text:this.data.quadrant1Text,fill:this.themeConfig.quadrant1TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:i+a,y:s,width:a,height:n,fill:this.themeConfig.quadrant1Fill},{text:{text:this.data.quadrant2Text,fill:this.themeConfig.quadrant2TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:i,y:s,width:a,height:n,fill:this.themeConfig.quadrant2Fill},{text:{text:this.data.quadrant3Text,fill:this.themeConfig.quadrant3TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:i,y:s+n,width:a,height:n,fill:this.themeConfig.quadrant3Fill},{text:{text:this.data.quadrant4Text,fill:this.themeConfig.quadrant4TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:i+a,y:s+n,width:a,height:n,fill:this.themeConfig.quadrant4Fill}];for(let u of l)u.text.x=u.x+u.width/2,this.data.points.length===0?(u.text.y=u.y+u.height/2,u.text.horizontalPos="middle"):(u.text.y=u.y+this.config.quadrantTextTopPadding,u.text.horizontalPos="top");return l}getQuadrantPoints(e){let{quadrantSpace:r}=e,{quadrantHeight:n,quadrantLeft:i,quadrantTop:a,quadrantWidth:s}=r,l=sc().domain([0,1]).range([i,s+i]),u=sc().domain([0,1]).range([n+a,a]);return this.data.points.map(f=>{let d=this.classes.get(f.className);return d&&(f={...d,...f}),{x:l(f.x),y:u(f.y),fill:f.color??this.themeConfig.quadrantPointFill,radius:f.radius??this.config.pointRadius,text:{text:f.text,fill:this.themeConfig.quadrantPointTextFill,x:l(f.x),y:u(f.y)+this.config.pointTextPadding,verticalPos:"center",horizontalPos:"top",fontSize:this.config.pointLabelFontSize,rotation:0},strokeColor:f.strokeColor??this.themeConfig.quadrantPointFill,strokeWidth:f.strokeWidth??"0px"}})}getBorders(e){let r=this.config.quadrantExternalBorderStrokeWidth/2,{quadrantSpace:n}=e,{quadrantHalfHeight:i,quadrantHeight:a,quadrantLeft:s,quadrantHalfWidth:l,quadrantTop:u,quadrantWidth:h}=n;return[{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s-r,y1:u,x2:s+h+r,y2:u},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s+h,y1:u+r,x2:s+h,y2:u+a-r},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s-r,y1:u+a,x2:s+h+r,y2:u+a},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s,y1:u+r,x2:s,y2:u+a-r},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:s+l,y1:u+r,x2:s+l,y2:u+a-r},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:s+r,y1:u+i,x2:s+h-r,y2:u+i}]}getTitle(e){if(e)return{text:this.data.titleText,fill:this.themeConfig.quadrantTitleFill,fontSize:this.config.titleFontSize,horizontalPos:"top",verticalPos:"center",rotation:0,y:this.config.titlePadding,x:this.config.chartWidth/2}}build(){let e=this.config.showXAxis&&!!(this.data.xAxisLeftText||this.data.xAxisRightText),r=this.config.showYAxis&&!!(this.data.yAxisTopText||this.data.yAxisBottomText),n=this.config.showTitle&&!!this.data.titleText,i=this.data.points.length>0?"bottom":this.config.xAxisPosition,a=this.calculateSpace(i,e,r,n);return{points:this.getQuadrantPoints(a),quadrants:this.getQuadrants(a),axisLabels:this.getAxisLabels(i,e,r,a),borderLines:this.getBorders(a),title:this.getTitle(n)}}}});function Gq(t){return!/^#?([\dA-Fa-f]{6}|[\dA-Fa-f]{3})$/.test(t)}function M3e(t){return!/^\d+$/.test(t)}function I3e(t){return!/^\d+px$/.test(t)}var Hm,O3e=O(()=>{"use strict";Hm=class extends Error{static{o(this,"InvalidStyleError")}constructor(e,r,n){super(`value for ${e} ${r} is invalid, please use a valid ${n}`),this.name="InvalidStyleError"}};o(Gq,"validateHexCode");o(M3e,"validateNumber");o(I3e,"validateSizeInPixels")});function of(t){return wr(t.trim(),Uot)}function Wot(t){Ka.setData({quadrant1Text:of(t.text)})}function Hot(t){Ka.setData({quadrant2Text:of(t.text)})}function Yot(t){Ka.setData({quadrant3Text:of(t.text)})}function jot(t){Ka.setData({quadrant4Text:of(t.text)})}function Xot(t){Ka.setData({xAxisLeftText:of(t.text)})}function Kot(t){Ka.setData({xAxisRightText:of(t.text)})}function Qot(t){Ka.setData({yAxisTopText:of(t.text)})}function Zot(t){Ka.setData({yAxisBottomText:of(t.text)})}function Vq(t){let e={};for(let r of t){let[n,i]=r.trim().split(/\s*:\s*/);if(n==="radius"){if(M3e(i))throw new Hm(n,i,"number");e.radius=parseInt(i)}else if(n==="color"){if(Gq(i))throw new Hm(n,i,"hex code");e.color=i}else if(n==="stroke-color"){if(Gq(i))throw new Hm(n,i,"hex code");e.strokeColor=i}else if(n==="stroke-width"){if(I3e(i))throw new Hm(n,i,"number of pixels (eg. 10px)");e.strokeWidth=i}else throw new Error(`style named ${n} is not supported.`)}return e}function Jot(t,e,r,n,i){let a=Vq(i);Ka.addPoints([{x:r,y:n,text:of(t.text),className:e,...a}])}function elt(t,e){Ka.addClass(t,Vq(e))}function tlt(t){Ka.setConfig({chartWidth:t})}function rlt(t){Ka.setConfig({chartHeight:t})}function nlt(){let t=ve(),{themeVariables:e,quadrantChart:r}=t;return r&&Ka.setConfig(r),Ka.setThemeConfig({quadrant1Fill:e.quadrant1Fill,quadrant2Fill:e.quadrant2Fill,quadrant3Fill:e.quadrant3Fill,quadrant4Fill:e.quadrant4Fill,quadrant1TextFill:e.quadrant1TextFill,quadrant2TextFill:e.quadrant2TextFill,quadrant3TextFill:e.quadrant3TextFill,quadrant4TextFill:e.quadrant4TextFill,quadrantPointFill:e.quadrantPointFill,quadrantPointTextFill:e.quadrantPointTextFill,quadrantXAxisTextFill:e.quadrantXAxisTextFill,quadrantYAxisTextFill:e.quadrantYAxisTextFill,quadrantExternalBorderStrokeFill:e.quadrantExternalBorderStrokeFill,quadrantInternalBorderStrokeFill:e.quadrantInternalBorderStrokeFill,quadrantTitleFill:e.quadrantTitleFill}),Ka.setData({titleText:Fr()}),Ka.build()}var Uot,Ka,ilt,P3e,B3e=O(()=>{"use strict";jt();Ur();si();N3e();O3e();Uot=ve();o(of,"textSanitizer");Ka=new R7;o(Wot,"setQuadrant1Text");o(Hot,"setQuadrant2Text");o(Yot,"setQuadrant3Text");o(jot,"setQuadrant4Text");o(Xot,"setXAxisLeftText");o(Kot,"setXAxisRightText");o(Qot,"setYAxisTopText");o(Zot,"setYAxisBottomText");o(Vq,"parseStyles");o(Jot,"addPoint");o(elt,"addClass");o(tlt,"setWidth");o(rlt,"setHeight");o(nlt,"getQuadrantData");ilt=o(function(){Ka.clear(),_r()},"clear"),P3e={setWidth:tlt,setHeight:rlt,setQuadrant1Text:Wot,setQuadrant2Text:Hot,setQuadrant3Text:Yot,setQuadrant4Text:jot,setXAxisLeftText:Xot,setXAxisRightText:Kot,setYAxisTopText:Qot,setYAxisBottomText:Zot,parseStyles:Vq,addPoint:Jot,addClass:elt,getQuadrantData:nlt,clear:ilt,setAccTitle:Lr,getAccTitle:Or,setDiagramTitle:zr,getDiagramTitle:Fr,getAccDescription:Br,setAccDescription:Pr}});var alt,F3e,$3e=O(()=>{"use strict";Ar();jt();xt();Ti();alt=o((t,e,r,n)=>{function i(A){return A==="top"?"hanging":"middle"}o(i,"getDominantBaseLine");function a(A){return A==="left"?"start":"middle"}o(a,"getTextAnchor");function s(A){return`translate(${A.x}, ${A.y}) rotate(${A.rotation||0})`}o(s,"getTransformation");let l=ve();K.debug(`Rendering quadrant chart +`+t);let u=l.securityLevel,h;u==="sandbox"&&(h=je("#i"+e));let d=(u==="sandbox"?je(h.nodes()[0].contentDocument.body):je("body")).select(`[id="${e}"]`),p=d.append("g").attr("class","main"),m=l.quadrantChart?.chartWidth??500,g=l.quadrantChart?.chartHeight??500;Zr(d,g,m,l.quadrantChart?.useMaxWidth??!0),d.attr("viewBox","0 0 "+m+" "+g),n.db.setHeight(g),n.db.setWidth(m);let y=n.db.getQuadrantData(),v=p.append("g").attr("class","quadrants"),x=p.append("g").attr("class","border"),b=p.append("g").attr("class","data-points"),T=p.append("g").attr("class","labels"),E=p.append("g").attr("class","title");y.title&&E.append("text").attr("x",0).attr("y",0).attr("fill",y.title.fill).attr("font-size",y.title.fontSize).attr("dominant-baseline",i(y.title.horizontalPos)).attr("text-anchor",a(y.title.verticalPos)).attr("transform",s(y.title)).text(y.title.text),y.borderLines&&x.selectAll("line").data(y.borderLines).enter().append("line").attr("x1",A=>A.x1).attr("y1",A=>A.y1).attr("x2",A=>A.x2).attr("y2",A=>A.y2).style("stroke",A=>A.strokeFill).style("stroke-width",A=>A.strokeWidth);let w=v.selectAll("g.quadrant").data(y.quadrants).enter().append("g").attr("class","quadrant");w.append("rect").attr("x",A=>A.x).attr("y",A=>A.y).attr("width",A=>A.width).attr("height",A=>A.height).attr("fill",A=>A.fill),w.append("text").attr("x",0).attr("y",0).attr("fill",A=>A.text.fill).attr("font-size",A=>A.text.fontSize).attr("dominant-baseline",A=>i(A.text.horizontalPos)).attr("text-anchor",A=>a(A.text.verticalPos)).attr("transform",A=>s(A.text)).text(A=>A.text.text),T.selectAll("g.label").data(y.axisLabels).enter().append("g").attr("class","label").append("text").attr("x",0).attr("y",0).text(A=>A.text).attr("fill",A=>A.fill).attr("font-size",A=>A.fontSize).attr("dominant-baseline",A=>i(A.horizontalPos)).attr("text-anchor",A=>a(A.verticalPos)).attr("transform",A=>s(A));let S=b.selectAll("g.data-point").data(y.points).enter().append("g").attr("class","data-point");S.append("circle").attr("cx",A=>A.x).attr("cy",A=>A.y).attr("r",A=>A.radius).attr("fill",A=>A.fill).attr("stroke",A=>A.strokeColor).attr("stroke-width",A=>A.strokeWidth),S.append("text").attr("x",0).attr("y",0).text(A=>A.text.text).attr("fill",A=>A.text.fill).attr("font-size",A=>A.text.fontSize).attr("dominant-baseline",A=>i(A.text.horizontalPos)).attr("text-anchor",A=>a(A.text.verticalPos)).attr("transform",A=>s(A.text))},"draw"),F3e={draw:alt}});var z3e={};vr(z3e,{diagram:()=>slt});var slt,G3e=O(()=>{"use strict";L3e();B3e();$3e();slt={parser:R3e,db:P3e,renderer:F3e,styles:o(()=>"","styles")}});var qq,U3e,W3e=O(()=>{"use strict";qq=(function(){var t=o(function(M,R,P,B){for(P=P||{},B=M.length;B--;P[M[B]]=R);return P},"o"),e=[1,10,12,14,16,18,19,21,23],r=[2,6],n=[1,3],i=[1,5],a=[1,6],s=[1,7],l=[1,5,10,12,14,16,18,19,21,23,34,35,36],u=[1,25],h=[1,26],f=[1,28],d=[1,29],p=[1,30],m=[1,31],g=[1,32],y=[1,33],v=[1,34],x=[1,35],b=[1,36],T=[1,37],E=[1,43],w=[1,42],k=[1,47],S=[1,50],A=[1,10,12,14,16,18,19,21,23,34,35,36],L=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36],I=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36,41,42,43,44,45,46,47,48,49,50],N=[1,64],C={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,commaSeparatedNumbers:25,SQUARE_BRACES_END:26,NUMBER_WITH_DECIMAL:27,COMMA:28,xAxisData:29,bandData:30,ARROW_DELIMITER:31,commaSeparatedTexts:32,yAxisData:33,NEWLINE:34,SEMI:35,EOF:36,alphaNum:37,STR:38,MD_STR:39,alphaNumToken:40,AMP:41,NUM:42,ALPHA:43,PLUS:44,EQUALS:45,MULT:46,DOT:47,BRKT:48,MINUS:49,UNDERSCORE:50,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",27:"NUMBER_WITH_DECIMAL",28:"COMMA",31:"ARROW_DELIMITER",34:"NEWLINE",35:"SEMI",36:"EOF",38:"STR",39:"MD_STR",41:"AMP",42:"NUM",43:"ALPHA",44:"PLUS",45:"EQUALS",46:"MULT",47:"DOT",48:"BRKT",49:"MINUS",50:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[13,1],[13,2],[13,1],[29,1],[29,3],[30,3],[32,3],[32,1],[15,1],[15,2],[15,1],[33,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[37,1],[37,2],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1]],performAction:o(function(R,P,B,F,G,$,V){var X=$.length-1;switch(G){case 5:F.setOrientation($[X]);break;case 9:F.setDiagramTitle($[X].text.trim());break;case 12:F.setLineData({text:"",type:"text"},$[X]);break;case 13:F.setLineData($[X-1],$[X]);break;case 14:F.setBarData({text:"",type:"text"},$[X]);break;case 15:F.setBarData($[X-1],$[X]);break;case 16:this.$=$[X].trim(),F.setAccTitle(this.$);break;case 17:case 18:this.$=$[X].trim(),F.setAccDescription(this.$);break;case 19:this.$=$[X-1];break;case 20:this.$=[Number($[X-2]),...$[X]];break;case 21:this.$=[Number($[X])];break;case 22:F.setXAxisTitle($[X]);break;case 23:F.setXAxisTitle($[X-1]);break;case 24:F.setXAxisTitle({type:"text",text:""});break;case 25:F.setXAxisBand($[X]);break;case 26:F.setXAxisRangeData(Number($[X-2]),Number($[X]));break;case 27:this.$=$[X-1];break;case 28:this.$=[$[X-2],...$[X]];break;case 29:this.$=[$[X]];break;case 30:F.setYAxisTitle($[X]);break;case 31:F.setYAxisTitle($[X-1]);break;case 32:F.setYAxisTitle({type:"text",text:""});break;case 33:F.setYAxisRangeData(Number($[X-2]),Number($[X]));break;case 37:this.$={text:$[X],type:"text"};break;case 38:this.$={text:$[X],type:"text"};break;case 39:this.$={text:$[X],type:"markdown"};break;case 40:this.$=$[X];break;case 41:this.$=$[X-1]+""+$[X];break}},"anonymous"),table:[t(e,r,{3:1,4:2,7:4,5:n,34:i,35:a,36:s}),{1:[3]},t(e,r,{4:2,7:4,3:8,5:n,34:i,35:a,36:s}),t(e,r,{4:2,7:4,6:9,3:10,5:n,8:[1,11],34:i,35:a,36:s}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},t(l,[2,34]),t(l,[2,35]),t(l,[2,36]),{1:[2,1]},t(e,r,{4:2,7:4,3:21,5:n,34:i,35:a,36:s}),{1:[2,3]},t(l,[2,5]),t(e,[2,7],{4:22,34:i,35:a,36:s}),{11:23,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:T},{11:39,13:38,24:E,27:w,29:40,30:41,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:T},{11:45,15:44,27:k,33:46,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:T},{11:49,17:48,24:S,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:T},{11:52,17:51,24:S,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:T},{20:[1,53]},{22:[1,54]},t(A,[2,18]),{1:[2,2]},t(A,[2,8]),t(A,[2,9]),t(L,[2,37],{40:55,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:T}),t(L,[2,38]),t(L,[2,39]),t(I,[2,40]),t(I,[2,42]),t(I,[2,43]),t(I,[2,44]),t(I,[2,45]),t(I,[2,46]),t(I,[2,47]),t(I,[2,48]),t(I,[2,49]),t(I,[2,50]),t(I,[2,51]),t(A,[2,10]),t(A,[2,22],{30:41,29:56,24:E,27:w}),t(A,[2,24]),t(A,[2,25]),{31:[1,57]},{11:59,32:58,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:T},t(A,[2,11]),t(A,[2,30],{33:60,27:k}),t(A,[2,32]),{31:[1,61]},t(A,[2,12]),{17:62,24:S},{25:63,27:N},t(A,[2,14]),{17:65,24:S},t(A,[2,16]),t(A,[2,17]),t(I,[2,41]),t(A,[2,23]),{27:[1,66]},{26:[1,67]},{26:[2,29],28:[1,68]},t(A,[2,31]),{27:[1,69]},t(A,[2,13]),{26:[1,70]},{26:[2,21],28:[1,71]},t(A,[2,15]),t(A,[2,26]),t(A,[2,27]),{11:59,32:72,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:T},t(A,[2,33]),t(A,[2,19]),{25:73,27:N},{26:[2,28]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],72:[2,28],73:[2,20]},parseError:o(function(R,P){if(P.recoverable)this.trace(R);else{var B=new Error(R);throw B.hash=P,B}},"parseError"),parse:o(function(R){var P=this,B=[0],F=[],G=[null],$=[],V=this.table,X="",Q=0,H=0,ie=0,Y=2,le=1,ee=$.slice.call(arguments,1),J=Object.create(this.lexer),te={yy:{}};for(var Z in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Z)&&(te.yy[Z]=this.yy[Z]);J.setInput(R,te.yy),te.yy.lexer=J,te.yy.parser=this,typeof J.yylloc>"u"&&(J.yylloc={});var xe=J.yylloc;$.push(xe);var de=J.options&&J.options.ranges;typeof te.yy.parseError=="function"?this.parseError=te.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Se(j){B.length=B.length-2*j,G.length=G.length-j,$.length=$.length-j}o(Se,"popStack");function Me(){var j;return j=F.pop()||J.lex()||le,typeof j!="number"&&(j instanceof Array&&(F=j,j=F.pop()),j=P.symbols_[j]||j),j}o(Me,"lex");for(var ke,we,_e,$e,fe,Ke,Te={},Be,Ue,Ge,Ne;;){if(_e=B[B.length-1],this.defaultActions[_e]?$e=this.defaultActions[_e]:((ke===null||typeof ke>"u")&&(ke=Me()),$e=V[_e]&&V[_e][ke]),typeof $e>"u"||!$e.length||!$e[0]){var We="";Ne=[];for(Be in V[_e])this.terminals_[Be]&&Be>Y&&Ne.push("'"+this.terminals_[Be]+"'");J.showPosition?We="Parse error on line "+(Q+1)+`: +`+J.showPosition()+` +Expecting `+Ne.join(", ")+", got '"+(this.terminals_[ke]||ke)+"'":We="Parse error on line "+(Q+1)+": Unexpected "+(ke==le?"end of input":"'"+(this.terminals_[ke]||ke)+"'"),this.parseError(We,{text:J.match,token:this.terminals_[ke]||ke,line:J.yylineno,loc:xe,expected:Ne})}if($e[0]instanceof Array&&$e.length>1)throw new Error("Parse Error: multiple actions possible at state: "+_e+", token: "+ke);switch($e[0]){case 1:B.push(ke),G.push(J.yytext),$.push(J.yylloc),B.push($e[1]),ke=null,we?(ke=we,we=null):(H=J.yyleng,X=J.yytext,Q=J.yylineno,xe=J.yylloc,ie>0&&ie--);break;case 2:if(Ue=this.productions_[$e[1]][1],Te.$=G[G.length-Ue],Te._$={first_line:$[$.length-(Ue||1)].first_line,last_line:$[$.length-1].last_line,first_column:$[$.length-(Ue||1)].first_column,last_column:$[$.length-1].last_column},de&&(Te._$.range=[$[$.length-(Ue||1)].range[0],$[$.length-1].range[1]]),Ke=this.performAction.apply(Te,[X,H,Q,te.yy,$e[1],G,$].concat(ee)),typeof Ke<"u")return Ke;Ue&&(B=B.slice(0,-1*Ue*2),G=G.slice(0,-1*Ue),$=$.slice(0,-1*Ue)),B.push(this.productions_[$e[1]][0]),G.push(Te.$),$.push(Te._$),Ge=V[B[B.length-2]][B[B.length-1]],B.push(Ge);break;case 3:return!0}}return!0},"parse")},_=(function(){var M={EOF:1,parseError:o(function(P,B){if(this.yy.parser)this.yy.parser.parseError(P,B);else throw new Error(P)},"parseError"),setInput:o(function(R,P){return this.yy=P||this.yy||{},this._input=R,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var R=this._input[0];this.yytext+=R,this.yyleng++,this.offset++,this.match+=R,this.matched+=R;var P=R.match(/(?:\r\n?|\n).*/g);return P?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),R},"input"),unput:o(function(R){var P=R.length,B=R.split(/(?:\r\n?|\n)/g);this._input=R+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-P),this.offset-=P;var F=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),B.length-1&&(this.yylineno-=B.length-1);var G=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:B?(B.length===F.length?this.yylloc.first_column:0)+F[F.length-B.length].length-B[0].length:this.yylloc.first_column-P},this.options.ranges&&(this.yylloc.range=[G[0],G[0]+this.yyleng-P]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(R){this.unput(this.match.slice(R))},"less"),pastInput:o(function(){var R=this.matched.substr(0,this.matched.length-this.match.length);return(R.length>20?"...":"")+R.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var R=this.match;return R.length<20&&(R+=this._input.substr(0,20-R.length)),(R.substr(0,20)+(R.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var R=this.pastInput(),P=new Array(R.length+1).join("-");return R+this.upcomingInput()+` +`+P+"^"},"showPosition"),test_match:o(function(R,P){var B,F,G;if(this.options.backtrack_lexer&&(G={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(G.yylloc.range=this.yylloc.range.slice(0))),F=R[0].match(/(?:\r\n?|\n).*/g),F&&(this.yylineno+=F.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:F?F[F.length-1].length-F[F.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+R[0].length},this.yytext+=R[0],this.match+=R[0],this.matches=R,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(R[0].length),this.matched+=R[0],B=this.performAction.call(this,this.yy,this,P,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),B)return B;if(this._backtrack){for(var $ in G)this[$]=G[$];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var R,P,B,F;this._more||(this.yytext="",this.match="");for(var G=this._currentRules(),$=0;$P[0].length)){if(P=B,F=$,this.options.backtrack_lexer){if(R=this.test_match(B,G[$]),R!==!1)return R;if(this._backtrack){P=!1;continue}else return!1}else if(!this.options.flex)break}return P?(R=this.test_match(P,G[F]),R!==!1?R:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var P=this.next();return P||this.lex()},"lex"),begin:o(function(P){this.conditionStack.push(P)},"begin"),popState:o(function(){var P=this.conditionStack.length-1;return P>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(P){return P=this.conditionStack.length-1-Math.abs(P||0),P>=0?this.conditionStack[P]:"INITIAL"},"topState"),pushState:o(function(P){this.begin(P)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(P,B,F,G){var $=G;switch(F){case 0:break;case 1:break;case 2:return this.popState(),34;break;case 3:return this.popState(),34;break;case 4:return 34;case 5:break;case 6:return 10;case 7:return this.pushState("acc_title"),19;break;case 8:return this.popState(),"acc_title_value";break;case 9:return this.pushState("acc_descr"),21;break;case 10:return this.popState(),"acc_descr_value";break;case 11:this.pushState("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 5;case 15:return 5;case 16:return 8;case 17:return this.pushState("axis_data"),"X_AXIS";break;case 18:return this.pushState("axis_data"),"Y_AXIS";break;case 19:return this.pushState("axis_band_data"),24;break;case 20:return 31;case 21:return this.pushState("data"),16;break;case 22:return this.pushState("data"),18;break;case 23:return this.pushState("data_inner"),24;break;case 24:return 27;case 25:return this.popState(),26;break;case 26:this.popState();break;case 27:this.pushState("string");break;case 28:this.popState();break;case 29:return"STR";case 30:return 24;case 31:return 26;case 32:return 43;case 33:return"COLON";case 34:return 44;case 35:return 28;case 36:return 45;case 37:return 46;case 38:return 48;case 39:return 50;case 40:return 47;case 41:return 41;case 42:return 49;case 43:return 42;case 44:break;case 45:return 35;case 46:return 36}},"anonymous"),rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:(\r?\n))/i,/^(?:(\r?\n))/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:\})/i,/^(?:[^\}]*)/i,/^(?:xychart-beta\b)/i,/^(?:xychart\b)/i,/^(?:(?:vertical|horizontal))/i,/^(?:x-axis\b)/i,/^(?:y-axis\b)/i,/^(?:\[)/i,/^(?:-->)/i,/^(?:line\b)/i,/^(?:bar\b)/i,/^(?:\[)/i,/^(?:[+-]?(?:\d+(?:\.\d+)?|\.\d+))/i,/^(?:\])/i,/^(?:(?:`\) \{ this\.pushState\(md_string\); \}\n\(\?:\(\?!`"\)\.\)\+ \{ return MD_STR; \}\n\(\?:`))/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s+)/i,/^(?:;)/i,/^(?:$)/i],conditions:{data_inner:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,18,21,22,24,25,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},data:{rules:[0,1,3,4,5,6,7,9,11,14,15,16,17,18,21,22,23,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},axis_band_data:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,18,21,22,25,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},axis_data:{rules:[0,1,2,4,5,6,7,9,11,14,15,16,17,18,19,20,21,22,24,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},title:{rules:[],inclusive:!1},md_string:{rules:[],inclusive:!1},string:{rules:[28,29],inclusive:!1},INITIAL:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,18,21,22,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0}}};return M})();C.lexer=_;function D(){this.yy={}}return o(D,"Parser"),D.prototype=C,C.Parser=D,new D})();qq.parser=qq;U3e=qq});function Uq(t){return t.type==="bar"}function L7(t){return t.type==="band"}function Iv(t){return t.type==="linear"}var N7=O(()=>{"use strict";o(Uq,"isBarPlot");o(L7,"isBandAxisData");o(Iv,"isLinearAxisData")});var Ov,Wq=O(()=>{"use strict";co();Ov=class{constructor(e){this.parentGroup=e}static{o(this,"TextDimensionCalculatorWithFont")}getMaxDimension(e,r){if(!this.parentGroup)return{width:e.reduce((a,s)=>Math.max(s.length,a),0)*r,height:r};let n={width:0,height:0},i=this.parentGroup.append("g").attr("visibility","hidden").attr("font-size",r);for(let a of e){let s=gie(i,1,a),l=s?s.width:a.length*r,u=s?s.height:r;n.width=Math.max(n.width,l),n.height=Math.max(n.height,u)}return i.remove(),n}}});var Pv,Hq=O(()=>{"use strict";Pv=class{constructor(e,r,n,i){this.axisConfig=e;this.title=r;this.textDimensionCalculator=n;this.axisThemeConfig=i;this.boundingRect={x:0,y:0,width:0,height:0};this.axisPosition="left";this.showTitle=!1;this.showLabel=!1;this.showTick=!1;this.showAxisLine=!1;this.outerPadding=0;this.titleTextHeight=0;this.labelTextHeight=0;this.range=[0,10],this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left"}static{o(this,"BaseAxis")}setRange(e){this.range=e,this.axisPosition==="left"||this.axisPosition==="right"?this.boundingRect.height=e[1]-e[0]:this.boundingRect.width=e[1]-e[0],this.recalculateScale()}getRange(){return[this.range[0]+this.outerPadding,this.range[1]-this.outerPadding]}setAxisPosition(e){this.axisPosition=e,this.setRange(this.range)}getTickDistance(){let e=this.getRange();return Math.abs(e[0]-e[1])/this.getTickValues().length}getAxisOuterPadding(){return this.outerPadding}getLabelDimension(){return this.textDimensionCalculator.getMaxDimension(this.getTickValues().map(e=>e.toString()),this.axisConfig.labelFontSize)}recalculateOuterPaddingToDrawBar(){.7*this.getTickDistance()>this.outerPadding*2&&(this.outerPadding=Math.floor(.7*this.getTickDistance()/2)),this.recalculateScale()}calculateSpaceIfDrawnHorizontally(e){let r=e.height;if(this.axisConfig.showAxisLine&&r>this.axisConfig.axisLineWidth&&(r-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){let n=this.getLabelDimension(),i=.2*e.width;this.outerPadding=Math.min(n.width/2,i);let a=n.height+this.axisConfig.labelPadding*2;this.labelTextHeight=n.height,a<=r&&(r-=a,this.showLabel=!0)}if(this.axisConfig.showTick&&r>=this.axisConfig.tickLength&&(this.showTick=!0,r-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){let n=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),i=n.height+this.axisConfig.titlePadding*2;this.titleTextHeight=n.height,i<=r&&(r-=i,this.showTitle=!0)}this.boundingRect.width=e.width,this.boundingRect.height=e.height-r}calculateSpaceIfDrawnVertical(e){let r=e.width;if(this.axisConfig.showAxisLine&&r>this.axisConfig.axisLineWidth&&(r-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){let n=this.getLabelDimension(),i=.2*e.height;this.outerPadding=Math.min(n.height/2,i);let a=n.width+this.axisConfig.labelPadding*2;a<=r&&(r-=a,this.showLabel=!0)}if(this.axisConfig.showTick&&r>=this.axisConfig.tickLength&&(this.showTick=!0,r-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){let n=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),i=n.height+this.axisConfig.titlePadding*2;this.titleTextHeight=n.height,i<=r&&(r-=i,this.showTitle=!0)}this.boundingRect.width=e.width-r,this.boundingRect.height=e.height}calculateSpace(e){return this.axisPosition==="left"||this.axisPosition==="right"?this.calculateSpaceIfDrawnVertical(e):this.calculateSpaceIfDrawnHorizontally(e),this.recalculateScale(),{width:this.boundingRect.width,height:this.boundingRect.height}}setBoundingBoxXY(e){this.boundingRect.x=e.x,this.boundingRect.y=e.y}getDrawableElementsForLeftAxis(){let e=[];if(this.showAxisLine){let r=this.boundingRect.x+this.boundingRect.width-this.axisConfig.axisLineWidth/2;e.push({type:"path",groupTexts:["left-axis","axisl-line"],data:[{path:`M ${r},${this.boundingRect.y} L ${r},${this.boundingRect.y+this.boundingRect.height} `,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&e.push({type:"text",groupTexts:["left-axis","label"],data:this.getTickValues().map(r=>({text:r.toString(),x:this.boundingRect.x+this.boundingRect.width-(this.showLabel?this.axisConfig.labelPadding:0)-(this.showTick?this.axisConfig.tickLength:0)-(this.showAxisLine?this.axisConfig.axisLineWidth:0),y:this.getScaleValue(r),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"middle",horizontalPos:"right"}))}),this.showTick){let r=this.boundingRect.x+this.boundingRect.width-(this.showAxisLine?this.axisConfig.axisLineWidth:0);e.push({type:"path",groupTexts:["left-axis","ticks"],data:this.getTickValues().map(n=>({path:`M ${r},${this.getScaleValue(n)} L ${r-this.axisConfig.tickLength},${this.getScaleValue(n)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&e.push({type:"text",groupTexts:["left-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.axisConfig.titlePadding,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:270,verticalPos:"top",horizontalPos:"center"}]}),e}getDrawableElementsForBottomAxis(){let e=[];if(this.showAxisLine){let r=this.boundingRect.y+this.axisConfig.axisLineWidth/2;e.push({type:"path",groupTexts:["bottom-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${r} L ${this.boundingRect.x+this.boundingRect.width},${r}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&e.push({type:"text",groupTexts:["bottom-axis","label"],data:this.getTickValues().map(r=>({text:r.toString(),x:this.getScaleValue(r),y:this.boundingRect.y+this.axisConfig.labelPadding+(this.showTick?this.axisConfig.tickLength:0)+(this.showAxisLine?this.axisConfig.axisLineWidth:0),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){let r=this.boundingRect.y+(this.showAxisLine?this.axisConfig.axisLineWidth:0);e.push({type:"path",groupTexts:["bottom-axis","ticks"],data:this.getTickValues().map(n=>({path:`M ${this.getScaleValue(n)},${r} L ${this.getScaleValue(n)},${r+this.axisConfig.tickLength}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&e.push({type:"text",groupTexts:["bottom-axis","title"],data:[{text:this.title,x:this.range[0]+(this.range[1]-this.range[0])/2,y:this.boundingRect.y+this.boundingRect.height-this.axisConfig.titlePadding-this.titleTextHeight,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),e}getDrawableElementsForTopAxis(){let e=[];if(this.showAxisLine){let r=this.boundingRect.y+this.boundingRect.height-this.axisConfig.axisLineWidth/2;e.push({type:"path",groupTexts:["top-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${r} L ${this.boundingRect.x+this.boundingRect.width},${r}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&e.push({type:"text",groupTexts:["top-axis","label"],data:this.getTickValues().map(r=>({text:r.toString(),x:this.getScaleValue(r),y:this.boundingRect.y+(this.showTitle?this.titleTextHeight+this.axisConfig.titlePadding*2:0)+this.axisConfig.labelPadding,fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){let r=this.boundingRect.y;e.push({type:"path",groupTexts:["top-axis","ticks"],data:this.getTickValues().map(n=>({path:`M ${this.getScaleValue(n)},${r+this.boundingRect.height-(this.showAxisLine?this.axisConfig.axisLineWidth:0)} L ${this.getScaleValue(n)},${r+this.boundingRect.height-this.axisConfig.tickLength-(this.showAxisLine?this.axisConfig.axisLineWidth:0)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&e.push({type:"text",groupTexts:["top-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.axisConfig.titlePadding,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),e}getDrawableElements(){if(this.axisPosition==="left")return this.getDrawableElementsForLeftAxis();if(this.axisPosition==="right")throw Error("Drawing of right axis is not implemented");return this.axisPosition==="bottom"?this.getDrawableElementsForBottomAxis():this.axisPosition==="top"?this.getDrawableElementsForTopAxis():[]}}});var M7,H3e=O(()=>{"use strict";Ar();xt();Hq();M7=class extends Pv{static{o(this,"BandAxis")}constructor(e,r,n,i,a){super(e,i,a,r),this.categories=n,this.scale=Og().domain(this.categories).range(this.getRange())}setRange(e){super.setRange(e)}recalculateScale(){this.scale=Og().domain(this.categories).range(this.getRange()).paddingInner(1).paddingOuter(0).align(.5),K.trace("BandAxis axis final categories, range: ",this.categories,this.getRange())}getTickValues(){return this.categories}getScaleValue(e){return this.scale(e)??this.getRange()[0]}}});var I7,Y3e=O(()=>{"use strict";Ar();Hq();I7=class extends Pv{static{o(this,"LinearAxis")}constructor(e,r,n,i,a){super(e,i,a,r),this.domain=n,this.scale=sc().domain(this.domain).range(this.getRange())}getTickValues(){return this.scale.ticks()}recalculateScale(){let e=[...this.domain];this.axisPosition==="left"&&e.reverse(),this.scale=sc().domain(e).range(this.getRange())}getScaleValue(e){return this.scale(e)}}});function Yq(t,e,r,n){let i=new Ov(n);return L7(t)?new M7(e,r,t.categories,t.title,i):new I7(e,r,[t.min,t.max],t.title,i)}var j3e=O(()=>{"use strict";N7();Wq();H3e();Y3e();o(Yq,"getAxis")});function X3e(t,e,r,n){let i=new Ov(n);return new jq(i,t,e,r)}var jq,K3e=O(()=>{"use strict";Wq();jq=class{constructor(e,r,n,i){this.textDimensionCalculator=e;this.chartConfig=r;this.chartData=n;this.chartThemeConfig=i;this.boundingRect={x:0,y:0,width:0,height:0},this.showChartTitle=!1}static{o(this,"ChartTitle")}setBoundingBoxXY(e){this.boundingRect.x=e.x,this.boundingRect.y=e.y}calculateSpace(e){let r=this.textDimensionCalculator.getMaxDimension([this.chartData.title],this.chartConfig.titleFontSize),n=Math.max(r.width,e.width),i=r.height+2*this.chartConfig.titlePadding;return r.width<=n&&r.height<=i&&this.chartConfig.showTitle&&this.chartData.title&&(this.boundingRect.width=n,this.boundingRect.height=i,this.showChartTitle=!0),{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){let e=[];return this.showChartTitle&&e.push({groupTexts:["chart-title"],type:"text",data:[{fontSize:this.chartConfig.titleFontSize,text:this.chartData.title,verticalPos:"middle",horizontalPos:"center",x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.chartThemeConfig.titleColor,rotation:0}]}),e}};o(X3e,"getChartTitleComponent")});var O7,Q3e=O(()=>{"use strict";Ar();O7=class{constructor(e,r,n,i,a){this.plotData=e;this.xAxis=r;this.yAxis=n;this.orientation=i;this.plotIndex=a}static{o(this,"LinePlot")}getDrawableElement(){let e=this.plotData.data.map(n=>[this.xAxis.getScaleValue(n[0]),this.yAxis.getScaleValue(n[1])]),r;return this.orientation==="horizontal"?r=hc().y(n=>n[0]).x(n=>n[1])(e):r=hc().x(n=>n[0]).y(n=>n[1])(e),r?[{groupTexts:["plot",`line-plot-${this.plotIndex}`],type:"path",data:[{path:r,strokeFill:this.plotData.strokeFill,strokeWidth:this.plotData.strokeWidth}]}]:[]}}});var P7,Z3e=O(()=>{"use strict";P7=class{constructor(e,r,n,i,a,s){this.barData=e;this.boundingRect=r;this.xAxis=n;this.yAxis=i;this.orientation=a;this.plotIndex=s}static{o(this,"BarPlot")}getDrawableElement(){let e=this.barData.data.map(a=>[this.xAxis.getScaleValue(a[0]),this.yAxis.getScaleValue(a[1])]),n=Math.min(this.xAxis.getAxisOuterPadding()*2,this.xAxis.getTickDistance())*(1-.05),i=n/2;return this.orientation==="horizontal"?[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:e.map(a=>({x:this.boundingRect.x,y:a[0]-i,height:n,width:a[1]-this.boundingRect.x,fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]:[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:e.map(a=>({x:a[0]-i,y:a[1],width:n,height:this.boundingRect.y+this.boundingRect.height-a[1],fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]}}});function J3e(t,e,r){return new Xq(t,e,r)}var Xq,ewe=O(()=>{"use strict";Q3e();Z3e();Xq=class{constructor(e,r,n){this.chartConfig=e;this.chartData=r;this.chartThemeConfig=n;this.boundingRect={x:0,y:0,width:0,height:0}}static{o(this,"BasePlot")}setAxes(e,r){this.xAxis=e,this.yAxis=r}setBoundingBoxXY(e){this.boundingRect.x=e.x,this.boundingRect.y=e.y}calculateSpace(e){return this.boundingRect.width=e.width,this.boundingRect.height=e.height,{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){if(!(this.xAxis&&this.yAxis))throw Error("Axes must be passed to render Plots");let e=[];for(let[r,n]of this.chartData.plots.entries())switch(n.type){case"line":{let i=new O7(n,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,r);e.push(...i.getDrawableElement())}break;case"bar":{let i=new P7(n,this.boundingRect,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,r);e.push(...i.getDrawableElement())}break}return e}};o(J3e,"getPlotComponent")});var B7,twe=O(()=>{"use strict";j3e();K3e();ewe();N7();B7=class{constructor(e,r,n,i){this.chartConfig=e;this.chartData=r;this.componentStore={title:X3e(e,r,n,i),plot:J3e(e,r,n),xAxis:Yq(r.xAxis,e.xAxis,{titleColor:n.xAxisTitleColor,labelColor:n.xAxisLabelColor,tickColor:n.xAxisTickColor,axisLineColor:n.xAxisLineColor},i),yAxis:Yq(r.yAxis,e.yAxis,{titleColor:n.yAxisTitleColor,labelColor:n.yAxisLabelColor,tickColor:n.yAxisTickColor,axisLineColor:n.yAxisLineColor},i)}}static{o(this,"Orchestrator")}calculateVerticalSpace(){let e=this.chartConfig.width,r=this.chartConfig.height,n=0,i=0,a=Math.floor(e*this.chartConfig.plotReservedSpacePercent/100),s=Math.floor(r*this.chartConfig.plotReservedSpacePercent/100),l=this.componentStore.plot.calculateSpace({width:a,height:s});e-=l.width,r-=l.height,l=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:r}),i=l.height,r-=l.height,this.componentStore.xAxis.setAxisPosition("bottom"),l=this.componentStore.xAxis.calculateSpace({width:e,height:r}),r-=l.height,this.componentStore.yAxis.setAxisPosition("left"),l=this.componentStore.yAxis.calculateSpace({width:e,height:r}),n=l.width,e-=l.width,e>0&&(a+=e,e=0),r>0&&(s+=r,r=0),this.componentStore.plot.calculateSpace({width:a,height:s}),this.componentStore.plot.setBoundingBoxXY({x:n,y:i}),this.componentStore.xAxis.setRange([n,n+a]),this.componentStore.xAxis.setBoundingBoxXY({x:n,y:i+s}),this.componentStore.yAxis.setRange([i,i+s]),this.componentStore.yAxis.setBoundingBoxXY({x:0,y:i}),this.chartData.plots.some(u=>Uq(u))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateHorizontalSpace(){let e=this.chartConfig.width,r=this.chartConfig.height,n=0,i=0,a=0,s=Math.floor(e*this.chartConfig.plotReservedSpacePercent/100),l=Math.floor(r*this.chartConfig.plotReservedSpacePercent/100),u=this.componentStore.plot.calculateSpace({width:s,height:l});e-=u.width,r-=u.height,u=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:r}),n=u.height,r-=u.height,this.componentStore.xAxis.setAxisPosition("left"),u=this.componentStore.xAxis.calculateSpace({width:e,height:r}),e-=u.width,i=u.width,this.componentStore.yAxis.setAxisPosition("top"),u=this.componentStore.yAxis.calculateSpace({width:e,height:r}),r-=u.height,a=n+u.height,e>0&&(s+=e,e=0),r>0&&(l+=r,r=0),this.componentStore.plot.calculateSpace({width:s,height:l}),this.componentStore.plot.setBoundingBoxXY({x:i,y:a}),this.componentStore.yAxis.setRange([i,i+s]),this.componentStore.yAxis.setBoundingBoxXY({x:i,y:n}),this.componentStore.xAxis.setRange([a,a+l]),this.componentStore.xAxis.setBoundingBoxXY({x:0,y:a}),this.chartData.plots.some(h=>Uq(h))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateSpace(){this.chartConfig.chartOrientation==="horizontal"?this.calculateHorizontalSpace():this.calculateVerticalSpace()}getDrawableElement(){this.calculateSpace();let e=[];this.componentStore.plot.setAxes(this.componentStore.xAxis,this.componentStore.yAxis);for(let r of Object.values(this.componentStore))e.push(...r.getDrawableElements());return e}}});var F7,rwe=O(()=>{"use strict";twe();F7=class{static{o(this,"XYChartBuilder")}static build(e,r,n,i){return new B7(e,r,n,i).getDrawableElement()}}});function iwe(){let t=yf(),e=Zt();return Pn(t.xyChart,e.themeVariables.xyChart)}function awe(){let t=Zt();return Pn(gr.xyChart,t.xyChart)}function swe(){return{yAxis:{type:"linear",title:"",min:1/0,max:-1/0},xAxis:{type:"band",title:"",categories:[]},title:"",plots:[]}}function Zq(t){let e=Zt();return wr(t.trim(),e)}function ult(t){nwe=t}function hlt(t){t==="horizontal"?f3.chartOrientation="horizontal":f3.chartOrientation="vertical"}function flt(t){An.xAxis.title=Zq(t.text)}function owe(t,e){An.xAxis={type:"linear",title:An.xAxis.title,min:t,max:e},$7=!0}function dlt(t){An.xAxis={type:"band",title:An.xAxis.title,categories:t.map(e=>Zq(e.text))},$7=!0}function plt(t){An.yAxis.title=Zq(t.text)}function mlt(t,e){An.yAxis={type:"linear",title:An.yAxis.title,min:t,max:e},Qq=!0}function glt(t){let e=Math.min(...t),r=Math.max(...t),n=Iv(An.yAxis)?An.yAxis.min:1/0,i=Iv(An.yAxis)?An.yAxis.max:-1/0;An.yAxis={type:"linear",title:An.yAxis.title,min:Math.min(n,e),max:Math.max(i,r)}}function lwe(t){let e=[];if(t.length===0)return e;if(!$7){let r=Iv(An.xAxis)?An.xAxis.min:1/0,n=Iv(An.xAxis)?An.xAxis.max:-1/0;owe(Math.min(r,1),Math.max(n,t.length))}if(Qq||glt(t),L7(An.xAxis)&&(e=An.xAxis.categories.map((r,n)=>[r,t[n]])),Iv(An.xAxis)){let r=An.xAxis.min,n=An.xAxis.max,i=(n-r)/(t.length-1),a=[];for(let s=r;s<=n;s+=i)a.push(`${s}`);e=a.map((s,l)=>[s,t[l]])}return e}function cwe(t){return Kq[t===0?0:t%Kq.length]}function ylt(t,e){let r=lwe(e);An.plots.push({type:"line",strokeFill:cwe(h3),strokeWidth:2,data:r}),h3++}function vlt(t,e){let r=lwe(e);An.plots.push({type:"bar",fill:cwe(h3),data:r}),h3++}function xlt(){if(An.plots.length===0)throw Error("No Plot to render, please provide a plot with some data");return An.title=Fr(),F7.build(f3,An,d3,nwe)}function blt(){return d3}function Tlt(){return f3}function wlt(){return An}var h3,nwe,f3,d3,An,Kq,$7,Qq,klt,uwe,hwe=O(()=>{"use strict";$r();La();y2();ar();Ur();si();rwe();N7();h3=0,f3=awe(),d3=iwe(),An=swe(),Kq=d3.plotColorPalette.split(",").map(t=>t.trim()),$7=!1,Qq=!1;o(iwe,"getChartDefaultThemeConfig");o(awe,"getChartDefaultConfig");o(swe,"getChartDefaultData");o(Zq,"textSanitizer");o(ult,"setTmpSVGG");o(hlt,"setOrientation");o(flt,"setXAxisTitle");o(owe,"setXAxisRangeData");o(dlt,"setXAxisBand");o(plt,"setYAxisTitle");o(mlt,"setYAxisRangeData");o(glt,"setYAxisRangeFromPlotData");o(lwe,"transformDataWithoutCategory");o(cwe,"getPlotColorFromPalette");o(ylt,"setLineData");o(vlt,"setBarData");o(xlt,"getDrawableElem");o(blt,"getChartThemeConfig");o(Tlt,"getChartConfig");o(wlt,"getXYChartData");klt=o(function(){_r(),h3=0,f3=awe(),An=swe(),d3=iwe(),Kq=d3.plotColorPalette.split(",").map(t=>t.trim()),$7=!1,Qq=!1},"clear"),uwe={getDrawableElem:xlt,clear:klt,setAccTitle:Lr,getAccTitle:Or,setDiagramTitle:zr,getDiagramTitle:Fr,getAccDescription:Br,setAccDescription:Pr,setOrientation:hlt,setXAxisTitle:flt,setXAxisRangeData:owe,setXAxisBand:dlt,setYAxisTitle:plt,setYAxisRangeData:mlt,setLineData:ylt,setBarData:vlt,setTmpSVGG:ult,getChartThemeConfig:blt,getChartConfig:Tlt,getXYChartData:wlt}});var Elt,fwe,dwe=O(()=>{"use strict";xt();Ul();Ti();Elt=o((t,e,r,n)=>{let i=n.db,a=i.getChartThemeConfig(),s=i.getChartConfig(),l=i.getXYChartData().plots[0].data.map(T=>T[1]);function u(T){return T==="top"?"text-before-edge":"middle"}o(u,"getDominantBaseLine");function h(T){return T==="left"?"start":T==="right"?"end":"middle"}o(h,"getTextAnchor");function f(T){return`translate(${T.x}, ${T.y}) rotate(${T.rotation||0})`}o(f,"getTextTransformation"),K.debug(`Rendering xychart chart +`+t);let d=Ii(e),p=d.append("g").attr("class","main"),m=p.append("rect").attr("width",s.width).attr("height",s.height).attr("class","background");Zr(d,s.height,s.width,!0),d.attr("viewBox",`0 0 ${s.width} ${s.height}`),m.attr("fill",a.backgroundColor),i.setTmpSVGG(d.append("g").attr("class","mermaid-tmp-group"));let g=i.getDrawableElem(),y={};function v(T){let E=p,w="";for(let[k]of T.entries()){let S=p;k>0&&y[w]&&(S=y[w]),w+=T[k],E=y[w],E||(E=y[w]=S.append("g").attr("class",T[k]))}return E}o(v,"getGroup");for(let T of g){if(T.data.length===0)continue;let E=v(T.groupTexts);switch(T.type){case"rect":if(E.selectAll("rect").data(T.data).enter().append("rect").attr("x",w=>w.x).attr("y",w=>w.y).attr("width",w=>w.width).attr("height",w=>w.height).attr("fill",w=>w.fill).attr("stroke",w=>w.strokeFill).attr("stroke-width",w=>w.strokeWidth),s.showDataLabel)if(s.chartOrientation==="horizontal"){let S=function(I,N){let{data:C,label:_}=I;return N*_.length*.7<=C.width-10};var x=S;o(S,"fitsHorizontally");let w=.7,k=T.data.map((I,N)=>({data:I,label:l[N].toString()})).filter(I=>I.data.width>0&&I.data.height>0),A=k.map(I=>{let{data:N}=I,C=N.height*.7;for(;!S(I,C)&&C>0;)C-=1;return C}),L=Math.floor(Math.min(...A));E.selectAll("text").data(k).enter().append("text").attr("x",I=>I.data.x+I.data.width-10).attr("y",I=>I.data.y+I.data.height/2).attr("text-anchor","end").attr("dominant-baseline","middle").attr("fill","black").attr("font-size",`${L}px`).text(I=>I.label)}else{let S=function(I,N,C){let{data:_,label:D}=I,R=N*D.length*.7,P=_.x+_.width/2,B=P-R/2,F=P+R/2,G=B>=_.x&&F<=_.x+_.width,$=_.y+C+N<=_.y+_.height;return G&&$};var b=S;o(S,"fitsInBar");let w=10,k=T.data.map((I,N)=>({data:I,label:l[N].toString()})).filter(I=>I.data.width>0&&I.data.height>0),A=k.map(I=>{let{data:N,label:C}=I,_=N.width/(C.length*.7);for(;!S(I,_,10)&&_>0;)_-=1;return _}),L=Math.floor(Math.min(...A));E.selectAll("text").data(k).enter().append("text").attr("x",I=>I.data.x+I.data.width/2).attr("y",I=>I.data.y+10).attr("text-anchor","middle").attr("dominant-baseline","hanging").attr("fill","black").attr("font-size",`${L}px`).text(I=>I.label)}break;case"text":E.selectAll("text").data(T.data).enter().append("text").attr("x",0).attr("y",0).attr("fill",w=>w.fill).attr("font-size",w=>w.fontSize).attr("dominant-baseline",w=>u(w.verticalPos)).attr("text-anchor",w=>h(w.horizontalPos)).attr("transform",w=>f(w)).text(w=>w.text);break;case"path":E.selectAll("path").data(T.data).enter().append("path").attr("d",w=>w.path).attr("fill",w=>w.fill?w.fill:"none").attr("stroke",w=>w.strokeFill).attr("stroke-width",w=>w.strokeWidth);break}}},"draw"),fwe={draw:Elt}});var pwe={};vr(pwe,{diagram:()=>Slt});var Slt,mwe=O(()=>{"use strict";W3e();hwe();dwe();Slt={parser:U3e,db:uwe,renderer:fwe}});var Jq,vwe,xwe=O(()=>{"use strict";Jq=(function(){var t=o(function(j,ae,U,ce){for(U=U||{},ce=j.length;ce--;U[j[ce]]=ae);return U},"o"),e=[1,3],r=[1,4],n=[1,5],i=[1,6],a=[5,6,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,77,89,90],s=[1,22],l=[2,7],u=[1,26],h=[1,27],f=[1,28],d=[1,29],p=[1,33],m=[1,34],g=[1,35],y=[1,36],v=[1,37],x=[1,38],b=[1,24],T=[1,31],E=[1,32],w=[1,30],k=[1,39],S=[1,40],A=[5,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,77,89,90],L=[1,61],I=[89,90],N=[5,8,9,11,13,21,22,23,24,27,29,41,42,43,44,45,46,54,61,63,72,74,75,76,77,80,81,82,83,84,85,86,87,88,89,90],C=[27,29],_=[1,70],D=[1,71],M=[1,72],R=[1,73],P=[1,74],B=[1,75],F=[1,76],G=[1,83],$=[1,80],V=[1,84],X=[1,85],Q=[1,86],H=[1,87],ie=[1,88],Y=[1,89],le=[1,90],ee=[1,91],J=[1,92],te=[5,8,9,11,13,21,22,23,24,27,41,42,43,44,45,46,54,72,74,75,76,77,80,81,82,83,84,85,86,87,88,89,90],Z=[63,64],xe=[1,101],de=[5,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,76,77,89,90],Se=[5,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,75,76,77,80,81,82,83,84,85,86,87,88,89,90],Me=[1,110],ke=[1,106],we=[1,107],_e=[1,108],$e=[1,109],fe=[1,111],Ke=[1,116],Te=[1,117],Be=[1,114],Ue=[1,115],Ge={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,directive:4,NEWLINE:5,RD:6,diagram:7,EOF:8,acc_title:9,acc_title_value:10,acc_descr:11,acc_descr_value:12,acc_descr_multiline_value:13,requirementDef:14,elementDef:15,relationshipDef:16,direction:17,styleStatement:18,classDefStatement:19,classStatement:20,direction_tb:21,direction_bt:22,direction_rl:23,direction_lr:24,requirementType:25,requirementName:26,STRUCT_START:27,requirementBody:28,STYLE_SEPARATOR:29,idList:30,ID:31,COLONSEP:32,id:33,TEXT:34,text:35,RISK:36,riskLevel:37,VERIFYMTHD:38,verifyType:39,STRUCT_STOP:40,REQUIREMENT:41,FUNCTIONAL_REQUIREMENT:42,INTERFACE_REQUIREMENT:43,PERFORMANCE_REQUIREMENT:44,PHYSICAL_REQUIREMENT:45,DESIGN_CONSTRAINT:46,LOW_RISK:47,MED_RISK:48,HIGH_RISK:49,VERIFY_ANALYSIS:50,VERIFY_DEMONSTRATION:51,VERIFY_INSPECTION:52,VERIFY_TEST:53,ELEMENT:54,elementName:55,elementBody:56,TYPE:57,type:58,DOCREF:59,ref:60,END_ARROW_L:61,relationship:62,LINE:63,END_ARROW_R:64,CONTAINS:65,COPIES:66,DERIVES:67,SATISFIES:68,VERIFIES:69,REFINES:70,TRACES:71,CLASSDEF:72,stylesOpt:73,CLASS:74,ALPHA:75,COMMA:76,STYLE:77,style:78,styleComponent:79,NUM:80,COLON:81,UNIT:82,SPACE:83,BRKT:84,PCT:85,MINUS:86,LABEL:87,SEMICOLON:88,unqString:89,qString:90,$accept:0,$end:1},terminals_:{2:"error",5:"NEWLINE",6:"RD",8:"EOF",9:"acc_title",10:"acc_title_value",11:"acc_descr",12:"acc_descr_value",13:"acc_descr_multiline_value",21:"direction_tb",22:"direction_bt",23:"direction_rl",24:"direction_lr",27:"STRUCT_START",29:"STYLE_SEPARATOR",31:"ID",32:"COLONSEP",34:"TEXT",36:"RISK",38:"VERIFYMTHD",40:"STRUCT_STOP",41:"REQUIREMENT",42:"FUNCTIONAL_REQUIREMENT",43:"INTERFACE_REQUIREMENT",44:"PERFORMANCE_REQUIREMENT",45:"PHYSICAL_REQUIREMENT",46:"DESIGN_CONSTRAINT",47:"LOW_RISK",48:"MED_RISK",49:"HIGH_RISK",50:"VERIFY_ANALYSIS",51:"VERIFY_DEMONSTRATION",52:"VERIFY_INSPECTION",53:"VERIFY_TEST",54:"ELEMENT",57:"TYPE",59:"DOCREF",61:"END_ARROW_L",63:"LINE",64:"END_ARROW_R",65:"CONTAINS",66:"COPIES",67:"DERIVES",68:"SATISFIES",69:"VERIFIES",70:"REFINES",71:"TRACES",72:"CLASSDEF",74:"CLASS",75:"ALPHA",76:"COMMA",77:"STYLE",80:"NUM",81:"COLON",82:"UNIT",83:"SPACE",84:"BRKT",85:"PCT",86:"MINUS",87:"LABEL",88:"SEMICOLON",89:"unqString",90:"qString"},productions_:[0,[3,3],[3,2],[3,4],[4,2],[4,2],[4,1],[7,0],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[17,1],[17,1],[17,1],[17,1],[14,5],[14,7],[28,5],[28,5],[28,5],[28,5],[28,2],[28,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[37,1],[37,1],[37,1],[39,1],[39,1],[39,1],[39,1],[15,5],[15,7],[56,5],[56,5],[56,2],[56,1],[16,5],[16,5],[62,1],[62,1],[62,1],[62,1],[62,1],[62,1],[62,1],[19,3],[20,3],[20,3],[30,1],[30,3],[30,1],[30,3],[18,3],[73,1],[73,3],[78,1],[78,2],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[26,1],[26,1],[33,1],[33,1],[35,1],[35,1],[55,1],[55,1],[58,1],[58,1],[60,1],[60,1]],performAction:o(function(ae,U,ce,z,ne,se,be){var pe=se.length-1;switch(ne){case 4:this.$=se[pe].trim(),z.setAccTitle(this.$);break;case 5:case 6:this.$=se[pe].trim(),z.setAccDescription(this.$);break;case 7:this.$=[];break;case 17:z.setDirection("TB");break;case 18:z.setDirection("BT");break;case 19:z.setDirection("RL");break;case 20:z.setDirection("LR");break;case 21:z.addRequirement(se[pe-3],se[pe-4]);break;case 22:z.addRequirement(se[pe-5],se[pe-6]),z.setClass([se[pe-5]],se[pe-3]);break;case 23:z.setNewReqId(se[pe-2]);break;case 24:z.setNewReqText(se[pe-2]);break;case 25:z.setNewReqRisk(se[pe-2]);break;case 26:z.setNewReqVerifyMethod(se[pe-2]);break;case 29:this.$=z.RequirementType.REQUIREMENT;break;case 30:this.$=z.RequirementType.FUNCTIONAL_REQUIREMENT;break;case 31:this.$=z.RequirementType.INTERFACE_REQUIREMENT;break;case 32:this.$=z.RequirementType.PERFORMANCE_REQUIREMENT;break;case 33:this.$=z.RequirementType.PHYSICAL_REQUIREMENT;break;case 34:this.$=z.RequirementType.DESIGN_CONSTRAINT;break;case 35:this.$=z.RiskLevel.LOW_RISK;break;case 36:this.$=z.RiskLevel.MED_RISK;break;case 37:this.$=z.RiskLevel.HIGH_RISK;break;case 38:this.$=z.VerifyType.VERIFY_ANALYSIS;break;case 39:this.$=z.VerifyType.VERIFY_DEMONSTRATION;break;case 40:this.$=z.VerifyType.VERIFY_INSPECTION;break;case 41:this.$=z.VerifyType.VERIFY_TEST;break;case 42:z.addElement(se[pe-3]);break;case 43:z.addElement(se[pe-5]),z.setClass([se[pe-5]],se[pe-3]);break;case 44:z.setNewElementType(se[pe-2]);break;case 45:z.setNewElementDocRef(se[pe-2]);break;case 48:z.addRelationship(se[pe-2],se[pe],se[pe-4]);break;case 49:z.addRelationship(se[pe-2],se[pe-4],se[pe]);break;case 50:this.$=z.Relationships.CONTAINS;break;case 51:this.$=z.Relationships.COPIES;break;case 52:this.$=z.Relationships.DERIVES;break;case 53:this.$=z.Relationships.SATISFIES;break;case 54:this.$=z.Relationships.VERIFIES;break;case 55:this.$=z.Relationships.REFINES;break;case 56:this.$=z.Relationships.TRACES;break;case 57:this.$=se[pe-2],z.defineClass(se[pe-1],se[pe]);break;case 58:z.setClass(se[pe-1],se[pe]);break;case 59:z.setClass([se[pe-2]],se[pe]);break;case 60:case 62:this.$=[se[pe]];break;case 61:case 63:this.$=se[pe-2].concat([se[pe]]);break;case 64:this.$=se[pe-2],z.setCssStyle(se[pe-1],se[pe]);break;case 65:this.$=[se[pe]];break;case 66:se[pe-2].push(se[pe]),this.$=se[pe-2];break;case 68:this.$=se[pe-1]+se[pe];break}},"anonymous"),table:[{3:1,4:2,6:e,9:r,11:n,13:i},{1:[3]},{3:8,4:2,5:[1,7],6:e,9:r,11:n,13:i},{5:[1,9]},{10:[1,10]},{12:[1,11]},t(a,[2,6]),{3:12,4:2,6:e,9:r,11:n,13:i},{1:[2,2]},{4:17,5:s,7:13,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:f,24:d,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:T,74:E,77:w,89:k,90:S},t(a,[2,4]),t(a,[2,5]),{1:[2,1]},{8:[1,41]},{4:17,5:s,7:42,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:f,24:d,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:T,74:E,77:w,89:k,90:S},{4:17,5:s,7:43,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:f,24:d,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:T,74:E,77:w,89:k,90:S},{4:17,5:s,7:44,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:f,24:d,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:T,74:E,77:w,89:k,90:S},{4:17,5:s,7:45,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:f,24:d,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:T,74:E,77:w,89:k,90:S},{4:17,5:s,7:46,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:f,24:d,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:T,74:E,77:w,89:k,90:S},{4:17,5:s,7:47,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:f,24:d,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:T,74:E,77:w,89:k,90:S},{4:17,5:s,7:48,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:f,24:d,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:T,74:E,77:w,89:k,90:S},{4:17,5:s,7:49,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:f,24:d,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:T,74:E,77:w,89:k,90:S},{4:17,5:s,7:50,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:f,24:d,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:T,74:E,77:w,89:k,90:S},{26:51,89:[1,52],90:[1,53]},{55:54,89:[1,55],90:[1,56]},{29:[1,59],61:[1,57],63:[1,58]},t(A,[2,17]),t(A,[2,18]),t(A,[2,19]),t(A,[2,20]),{30:60,33:62,75:L,89:k,90:S},{30:63,33:62,75:L,89:k,90:S},{30:64,33:62,75:L,89:k,90:S},t(I,[2,29]),t(I,[2,30]),t(I,[2,31]),t(I,[2,32]),t(I,[2,33]),t(I,[2,34]),t(N,[2,81]),t(N,[2,82]),{1:[2,3]},{8:[2,8]},{8:[2,9]},{8:[2,10]},{8:[2,11]},{8:[2,12]},{8:[2,13]},{8:[2,14]},{8:[2,15]},{8:[2,16]},{27:[1,65],29:[1,66]},t(C,[2,79]),t(C,[2,80]),{27:[1,67],29:[1,68]},t(C,[2,85]),t(C,[2,86]),{62:69,65:_,66:D,67:M,68:R,69:P,70:B,71:F},{62:77,65:_,66:D,67:M,68:R,69:P,70:B,71:F},{30:78,33:62,75:L,89:k,90:S},{73:79,75:G,76:$,78:81,79:82,80:V,81:X,82:Q,83:H,84:ie,85:Y,86:le,87:ee,88:J},t(te,[2,60]),t(te,[2,62]),{73:93,75:G,76:$,78:81,79:82,80:V,81:X,82:Q,83:H,84:ie,85:Y,86:le,87:ee,88:J},{30:94,33:62,75:L,76:$,89:k,90:S},{5:[1,95]},{30:96,33:62,75:L,89:k,90:S},{5:[1,97]},{30:98,33:62,75:L,89:k,90:S},{63:[1,99]},t(Z,[2,50]),t(Z,[2,51]),t(Z,[2,52]),t(Z,[2,53]),t(Z,[2,54]),t(Z,[2,55]),t(Z,[2,56]),{64:[1,100]},t(A,[2,59],{76:$}),t(A,[2,64],{76:xe}),{33:103,75:[1,102],89:k,90:S},t(de,[2,65],{79:104,75:G,80:V,81:X,82:Q,83:H,84:ie,85:Y,86:le,87:ee,88:J}),t(Se,[2,67]),t(Se,[2,69]),t(Se,[2,70]),t(Se,[2,71]),t(Se,[2,72]),t(Se,[2,73]),t(Se,[2,74]),t(Se,[2,75]),t(Se,[2,76]),t(Se,[2,77]),t(Se,[2,78]),t(A,[2,57],{76:xe}),t(A,[2,58],{76:$}),{5:Me,28:105,31:ke,34:we,36:_e,38:$e,40:fe},{27:[1,112],76:$},{5:Ke,40:Te,56:113,57:Be,59:Ue},{27:[1,118],76:$},{33:119,89:k,90:S},{33:120,89:k,90:S},{75:G,78:121,79:82,80:V,81:X,82:Q,83:H,84:ie,85:Y,86:le,87:ee,88:J},t(te,[2,61]),t(te,[2,63]),t(Se,[2,68]),t(A,[2,21]),{32:[1,122]},{32:[1,123]},{32:[1,124]},{32:[1,125]},{5:Me,28:126,31:ke,34:we,36:_e,38:$e,40:fe},t(A,[2,28]),{5:[1,127]},t(A,[2,42]),{32:[1,128]},{32:[1,129]},{5:Ke,40:Te,56:130,57:Be,59:Ue},t(A,[2,47]),{5:[1,131]},t(A,[2,48]),t(A,[2,49]),t(de,[2,66],{79:104,75:G,80:V,81:X,82:Q,83:H,84:ie,85:Y,86:le,87:ee,88:J}),{33:132,89:k,90:S},{35:133,89:[1,134],90:[1,135]},{37:136,47:[1,137],48:[1,138],49:[1,139]},{39:140,50:[1,141],51:[1,142],52:[1,143],53:[1,144]},t(A,[2,27]),{5:Me,28:145,31:ke,34:we,36:_e,38:$e,40:fe},{58:146,89:[1,147],90:[1,148]},{60:149,89:[1,150],90:[1,151]},t(A,[2,46]),{5:Ke,40:Te,56:152,57:Be,59:Ue},{5:[1,153]},{5:[1,154]},{5:[2,83]},{5:[2,84]},{5:[1,155]},{5:[2,35]},{5:[2,36]},{5:[2,37]},{5:[1,156]},{5:[2,38]},{5:[2,39]},{5:[2,40]},{5:[2,41]},t(A,[2,22]),{5:[1,157]},{5:[2,87]},{5:[2,88]},{5:[1,158]},{5:[2,89]},{5:[2,90]},t(A,[2,43]),{5:Me,28:159,31:ke,34:we,36:_e,38:$e,40:fe},{5:Me,28:160,31:ke,34:we,36:_e,38:$e,40:fe},{5:Me,28:161,31:ke,34:we,36:_e,38:$e,40:fe},{5:Me,28:162,31:ke,34:we,36:_e,38:$e,40:fe},{5:Ke,40:Te,56:163,57:Be,59:Ue},{5:Ke,40:Te,56:164,57:Be,59:Ue},t(A,[2,23]),t(A,[2,24]),t(A,[2,25]),t(A,[2,26]),t(A,[2,44]),t(A,[2,45])],defaultActions:{8:[2,2],12:[2,1],41:[2,3],42:[2,8],43:[2,9],44:[2,10],45:[2,11],46:[2,12],47:[2,13],48:[2,14],49:[2,15],50:[2,16],134:[2,83],135:[2,84],137:[2,35],138:[2,36],139:[2,37],141:[2,38],142:[2,39],143:[2,40],144:[2,41],147:[2,87],148:[2,88],150:[2,89],151:[2,90]},parseError:o(function(ae,U){if(U.recoverable)this.trace(ae);else{var ce=new Error(ae);throw ce.hash=U,ce}},"parseError"),parse:o(function(ae){var U=this,ce=[0],z=[],ne=[null],se=[],be=this.table,pe="",me=0,Re=0,ge=0,Ie=2,qe=1,Pe=se.slice.call(arguments,1),Xe=Object.create(this.lexer),oe={yy:{}};for(var et in this.yy)Object.prototype.hasOwnProperty.call(this.yy,et)&&(oe.yy[et]=this.yy[et]);Xe.setInput(ae,oe.yy),oe.yy.lexer=Xe,oe.yy.parser=this,typeof Xe.yylloc>"u"&&(Xe.yylloc={});var he=Xe.yylloc;se.push(he);var ot=Xe.options&&Xe.options.ranges;typeof oe.yy.parseError=="function"?this.parseError=oe.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Dt(tr){ce.length=ce.length-2*tr,ne.length=ne.length-tr,se.length=se.length-tr}o(Dt,"popStack");function It(){var tr;return tr=z.pop()||Xe.lex()||qe,typeof tr!="number"&&(tr instanceof Array&&(z=tr,tr=z.pop()),tr=U.symbols_[tr]||tr),tr}o(It,"lex");for(var wt,Rt,it,at,Ct,yt,dt={},Ht,cr,Kt,kr;;){if(it=ce[ce.length-1],this.defaultActions[it]?at=this.defaultActions[it]:((wt===null||typeof wt>"u")&&(wt=It()),at=be[it]&&be[it][wt]),typeof at>"u"||!at.length||!at[0]){var ur="";kr=[];for(Ht in be[it])this.terminals_[Ht]&&Ht>Ie&&kr.push("'"+this.terminals_[Ht]+"'");Xe.showPosition?ur="Parse error on line "+(me+1)+`: +`+Xe.showPosition()+` +Expecting `+kr.join(", ")+", got '"+(this.terminals_[wt]||wt)+"'":ur="Parse error on line "+(me+1)+": Unexpected "+(wt==qe?"end of input":"'"+(this.terminals_[wt]||wt)+"'"),this.parseError(ur,{text:Xe.match,token:this.terminals_[wt]||wt,line:Xe.yylineno,loc:he,expected:kr})}if(at[0]instanceof Array&&at.length>1)throw new Error("Parse Error: multiple actions possible at state: "+it+", token: "+wt);switch(at[0]){case 1:ce.push(wt),ne.push(Xe.yytext),se.push(Xe.yylloc),ce.push(at[1]),wt=null,Rt?(wt=Rt,Rt=null):(Re=Xe.yyleng,pe=Xe.yytext,me=Xe.yylineno,he=Xe.yylloc,ge>0&&ge--);break;case 2:if(cr=this.productions_[at[1]][1],dt.$=ne[ne.length-cr],dt._$={first_line:se[se.length-(cr||1)].first_line,last_line:se[se.length-1].last_line,first_column:se[se.length-(cr||1)].first_column,last_column:se[se.length-1].last_column},ot&&(dt._$.range=[se[se.length-(cr||1)].range[0],se[se.length-1].range[1]]),yt=this.performAction.apply(dt,[pe,Re,me,oe.yy,at[1],ne,se].concat(Pe)),typeof yt<"u")return yt;cr&&(ce=ce.slice(0,-1*cr*2),ne=ne.slice(0,-1*cr),se=se.slice(0,-1*cr)),ce.push(this.productions_[at[1]][0]),ne.push(dt.$),se.push(dt._$),Kt=be[ce[ce.length-2]][ce[ce.length-1]],ce.push(Kt);break;case 3:return!0}}return!0},"parse")},Ne=(function(){var j={EOF:1,parseError:o(function(U,ce){if(this.yy.parser)this.yy.parser.parseError(U,ce);else throw new Error(U)},"parseError"),setInput:o(function(ae,U){return this.yy=U||this.yy||{},this._input=ae,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var ae=this._input[0];this.yytext+=ae,this.yyleng++,this.offset++,this.match+=ae,this.matched+=ae;var U=ae.match(/(?:\r\n?|\n).*/g);return U?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),ae},"input"),unput:o(function(ae){var U=ae.length,ce=ae.split(/(?:\r\n?|\n)/g);this._input=ae+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-U),this.offset-=U;var z=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),ce.length-1&&(this.yylineno-=ce.length-1);var ne=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:ce?(ce.length===z.length?this.yylloc.first_column:0)+z[z.length-ce.length].length-ce[0].length:this.yylloc.first_column-U},this.options.ranges&&(this.yylloc.range=[ne[0],ne[0]+this.yyleng-U]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(ae){this.unput(this.match.slice(ae))},"less"),pastInput:o(function(){var ae=this.matched.substr(0,this.matched.length-this.match.length);return(ae.length>20?"...":"")+ae.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var ae=this.match;return ae.length<20&&(ae+=this._input.substr(0,20-ae.length)),(ae.substr(0,20)+(ae.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var ae=this.pastInput(),U=new Array(ae.length+1).join("-");return ae+this.upcomingInput()+` +`+U+"^"},"showPosition"),test_match:o(function(ae,U){var ce,z,ne;if(this.options.backtrack_lexer&&(ne={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(ne.yylloc.range=this.yylloc.range.slice(0))),z=ae[0].match(/(?:\r\n?|\n).*/g),z&&(this.yylineno+=z.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:z?z[z.length-1].length-z[z.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+ae[0].length},this.yytext+=ae[0],this.match+=ae[0],this.matches=ae,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(ae[0].length),this.matched+=ae[0],ce=this.performAction.call(this,this.yy,this,U,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),ce)return ce;if(this._backtrack){for(var se in ne)this[se]=ne[se];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var ae,U,ce,z;this._more||(this.yytext="",this.match="");for(var ne=this._currentRules(),se=0;seU[0].length)){if(U=ce,z=se,this.options.backtrack_lexer){if(ae=this.test_match(ce,ne[se]),ae!==!1)return ae;if(this._backtrack){U=!1;continue}else return!1}else if(!this.options.flex)break}return U?(ae=this.test_match(U,ne[z]),ae!==!1?ae:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var U=this.next();return U||this.lex()},"lex"),begin:o(function(U){this.conditionStack.push(U)},"begin"),popState:o(function(){var U=this.conditionStack.length-1;return U>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(U){return U=this.conditionStack.length-1-Math.abs(U||0),U>=0?this.conditionStack[U]:"INITIAL"},"topState"),pushState:o(function(U){this.begin(U)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(U,ce,z,ne){var se=ne;switch(z){case 0:return"title";case 1:return this.begin("acc_title"),9;break;case 2:return this.popState(),"acc_title_value";break;case 3:return this.begin("acc_descr"),11;break;case 4:return this.popState(),"acc_descr_value";break;case 5:this.begin("acc_descr_multiline");break;case 6:this.popState();break;case 7:return"acc_descr_multiline_value";case 8:return 21;case 9:return 22;case 10:return 23;case 11:return 24;case 12:return 5;case 13:break;case 14:break;case 15:break;case 16:return 8;case 17:return 6;case 18:return 27;case 19:return 40;case 20:return 29;case 21:return 32;case 22:return 31;case 23:return 34;case 24:return 36;case 25:return 38;case 26:return 41;case 27:return 42;case 28:return 43;case 29:return 44;case 30:return 45;case 31:return 46;case 32:return 47;case 33:return 48;case 34:return 49;case 35:return 50;case 36:return 51;case 37:return 52;case 38:return 53;case 39:return 54;case 40:return 65;case 41:return 66;case 42:return 67;case 43:return 68;case 44:return 69;case 45:return 70;case 46:return 71;case 47:return 57;case 48:return 59;case 49:return this.begin("style"),77;break;case 50:return 75;case 51:return 81;case 52:return 88;case 53:return"PERCENT";case 54:return 86;case 55:return 84;case 56:break;case 57:this.begin("string");break;case 58:this.popState();break;case 59:return this.begin("style"),72;break;case 60:return this.begin("style"),74;break;case 61:return 61;case 62:return 64;case 63:return 63;case 64:this.begin("string");break;case 65:this.popState();break;case 66:return"qString";case 67:return ce.yytext=ce.yytext.trim(),89;break;case 68:return 75;case 69:return 80;case 70:return 76}},"anonymous"),rules:[/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:(\r?\n)+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:$)/i,/^(?:requirementDiagram\b)/i,/^(?:\{)/i,/^(?:\})/i,/^(?::{3})/i,/^(?::)/i,/^(?:id\b)/i,/^(?:text\b)/i,/^(?:risk\b)/i,/^(?:verifyMethod\b)/i,/^(?:requirement\b)/i,/^(?:functionalRequirement\b)/i,/^(?:interfaceRequirement\b)/i,/^(?:performanceRequirement\b)/i,/^(?:physicalRequirement\b)/i,/^(?:designConstraint\b)/i,/^(?:low\b)/i,/^(?:medium\b)/i,/^(?:high\b)/i,/^(?:analysis\b)/i,/^(?:demonstration\b)/i,/^(?:inspection\b)/i,/^(?:test\b)/i,/^(?:element\b)/i,/^(?:contains\b)/i,/^(?:copies\b)/i,/^(?:derives\b)/i,/^(?:satisfies\b)/i,/^(?:verifies\b)/i,/^(?:refines\b)/i,/^(?:traces\b)/i,/^(?:type\b)/i,/^(?:docref\b)/i,/^(?:style\b)/i,/^(?:\w+)/i,/^(?::)/i,/^(?:;)/i,/^(?:%)/i,/^(?:-)/i,/^(?:#)/i,/^(?: )/i,/^(?:["])/i,/^(?:\n)/i,/^(?:classDef\b)/i,/^(?:class\b)/i,/^(?:<-)/i,/^(?:->)/i,/^(?:-)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[\w][^:,\r\n\{\<\>\-\=]*)/i,/^(?:\w+)/i,/^(?:[0-9]+)/i,/^(?:,)/i],conditions:{acc_descr_multiline:{rules:[6,7,68,69,70],inclusive:!1},acc_descr:{rules:[4,68,69,70],inclusive:!1},acc_title:{rules:[2,68,69,70],inclusive:!1},style:{rules:[50,51,52,53,54,55,56,57,58,68,69,70],inclusive:!1},unqString:{rules:[68,69,70],inclusive:!1},token:{rules:[68,69,70],inclusive:!1},string:{rules:[65,66,68,69,70],inclusive:!1},INITIAL:{rules:[0,1,3,5,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,59,60,61,62,63,64,67,68,69,70],inclusive:!0}}};return j})();Ge.lexer=Ne;function We(){this.yy={}}return o(We,"Parser"),We.prototype=Ge,Ge.Parser=We,new We})();Jq.parser=Jq;vwe=Jq});var z7,bwe=O(()=>{"use strict";jt();xt();si();z7=class{constructor(){this.relations=[];this.latestRequirement=this.getInitialRequirement();this.requirements=new Map;this.latestElement=this.getInitialElement();this.elements=new Map;this.classes=new Map;this.direction="TB";this.RequirementType={REQUIREMENT:"Requirement",FUNCTIONAL_REQUIREMENT:"Functional Requirement",INTERFACE_REQUIREMENT:"Interface Requirement",PERFORMANCE_REQUIREMENT:"Performance Requirement",PHYSICAL_REQUIREMENT:"Physical Requirement",DESIGN_CONSTRAINT:"Design Constraint"};this.RiskLevel={LOW_RISK:"Low",MED_RISK:"Medium",HIGH_RISK:"High"};this.VerifyType={VERIFY_ANALYSIS:"Analysis",VERIFY_DEMONSTRATION:"Demonstration",VERIFY_INSPECTION:"Inspection",VERIFY_TEST:"Test"};this.Relationships={CONTAINS:"contains",COPIES:"copies",DERIVES:"derives",SATISFIES:"satisfies",VERIFIES:"verifies",REFINES:"refines",TRACES:"traces"};this.setAccTitle=Lr;this.getAccTitle=Or;this.setAccDescription=Pr;this.getAccDescription=Br;this.setDiagramTitle=zr;this.getDiagramTitle=Fr;this.getConfig=o(()=>ve().requirement,"getConfig");this.clear(),this.setDirection=this.setDirection.bind(this),this.addRequirement=this.addRequirement.bind(this),this.setNewReqId=this.setNewReqId.bind(this),this.setNewReqRisk=this.setNewReqRisk.bind(this),this.setNewReqText=this.setNewReqText.bind(this),this.setNewReqVerifyMethod=this.setNewReqVerifyMethod.bind(this),this.addElement=this.addElement.bind(this),this.setNewElementType=this.setNewElementType.bind(this),this.setNewElementDocRef=this.setNewElementDocRef.bind(this),this.addRelationship=this.addRelationship.bind(this),this.setCssStyle=this.setCssStyle.bind(this),this.setClass=this.setClass.bind(this),this.defineClass=this.defineClass.bind(this),this.setAccTitle=this.setAccTitle.bind(this),this.setAccDescription=this.setAccDescription.bind(this)}static{o(this,"RequirementDB")}getDirection(){return this.direction}setDirection(e){this.direction=e}resetLatestRequirement(){this.latestRequirement=this.getInitialRequirement()}resetLatestElement(){this.latestElement=this.getInitialElement()}getInitialRequirement(){return{requirementId:"",text:"",risk:"",verifyMethod:"",name:"",type:"",cssStyles:[],classes:["default"]}}getInitialElement(){return{name:"",type:"",docRef:"",cssStyles:[],classes:["default"]}}addRequirement(e,r){return this.requirements.has(e)||this.requirements.set(e,{name:e,type:r,requirementId:this.latestRequirement.requirementId,text:this.latestRequirement.text,risk:this.latestRequirement.risk,verifyMethod:this.latestRequirement.verifyMethod,cssStyles:[],classes:["default"]}),this.resetLatestRequirement(),this.requirements.get(e)}getRequirements(){return this.requirements}setNewReqId(e){this.latestRequirement!==void 0&&(this.latestRequirement.requirementId=e)}setNewReqText(e){this.latestRequirement!==void 0&&(this.latestRequirement.text=e)}setNewReqRisk(e){this.latestRequirement!==void 0&&(this.latestRequirement.risk=e)}setNewReqVerifyMethod(e){this.latestRequirement!==void 0&&(this.latestRequirement.verifyMethod=e)}addElement(e){return this.elements.has(e)||(this.elements.set(e,{name:e,type:this.latestElement.type,docRef:this.latestElement.docRef,cssStyles:[],classes:["default"]}),K.info("Added new element: ",e)),this.resetLatestElement(),this.elements.get(e)}getElements(){return this.elements}setNewElementType(e){this.latestElement!==void 0&&(this.latestElement.type=e)}setNewElementDocRef(e){this.latestElement!==void 0&&(this.latestElement.docRef=e)}addRelationship(e,r,n){this.relations.push({type:e,src:r,dst:n})}getRelationships(){return this.relations}clear(){this.relations=[],this.resetLatestRequirement(),this.requirements=new Map,this.resetLatestElement(),this.elements=new Map,this.classes=new Map,_r()}setCssStyle(e,r){for(let n of e){let i=this.requirements.get(n)??this.elements.get(n);if(!r||!i)return;for(let a of r)a.includes(",")?i.cssStyles.push(...a.split(",")):i.cssStyles.push(a)}}setClass(e,r){for(let n of e){let i=this.requirements.get(n)??this.elements.get(n);if(i)for(let a of r){i.classes.push(a);let s=this.classes.get(a)?.styles;s&&i.cssStyles.push(...s)}}}defineClass(e,r){for(let n of e){let i=this.classes.get(n);i===void 0&&(i={id:n,styles:[],textStyles:[]},this.classes.set(n,i)),r&&r.forEach(function(a){if(/color/.exec(a)){let s=a.replace("fill","bgFill");i.textStyles.push(s)}i.styles.push(a)}),this.requirements.forEach(a=>{a.classes.includes(n)&&a.cssStyles.push(...r.flatMap(s=>s.split(",")))}),this.elements.forEach(a=>{a.classes.includes(n)&&a.cssStyles.push(...r.flatMap(s=>s.split(",")))})}}getClasses(){return this.classes}getData(){let e=ve(),r=[],n=[];for(let i of this.requirements.values()){let a=i;a.id=i.name,a.cssStyles=i.cssStyles,a.cssClasses=i.classes.join(" "),a.shape="requirementBox",a.look=e.look,r.push(a)}for(let i of this.elements.values()){let a=i;a.shape="requirementBox",a.look=e.look,a.id=i.name,a.cssStyles=i.cssStyles,a.cssClasses=i.classes.join(" "),r.push(a)}for(let i of this.relations){let a=0,s=i.type===this.Relationships.CONTAINS,l={id:`${i.src}-${i.dst}-${a}`,start:this.requirements.get(i.src)?.name??this.elements.get(i.src)?.name,end:this.requirements.get(i.dst)?.name??this.elements.get(i.dst)?.name,label:`\xAB${i.type}\xBB`,classes:"relationshipLine",style:["fill:none",s?"":"stroke-dasharray: 10,7"],labelpos:"c",thickness:"normal",type:"normal",pattern:s?"normal":"dashed",arrowTypeStart:s?"requirement_contains":"",arrowTypeEnd:s?"":"requirement_arrow",look:e.look,labelType:"markdown"};n.push(l),a++}return{nodes:r,edges:n,other:{},config:e,direction:this.getDirection()}}}});var Dlt,Twe,wwe=O(()=>{"use strict";Dlt=o(t=>` + + marker { + fill: ${t.relationColor}; + stroke: ${t.relationColor}; + } + + marker.cross { + stroke: ${t.lineColor}; + } + + svg { + font-family: ${t.fontFamily}; + font-size: ${t.fontSize}; + } + + .reqBox { + fill: ${t.requirementBackground}; + fill-opacity: 1.0; + stroke: ${t.requirementBorderColor}; + stroke-width: ${t.requirementBorderSize}; + } + + .reqTitle, .reqLabel{ + fill: ${t.requirementTextColor}; + } + .reqLabelBox { + fill: ${t.relationLabelBackground}; + fill-opacity: 1.0; + } + + .req-title-line { + stroke: ${t.requirementBorderColor}; + stroke-width: ${t.requirementBorderSize}; + } + .relationshipLine { + stroke: ${t.relationColor}; + stroke-width: 1; + } + .relationshipLabel { + fill: ${t.relationLabelColor}; + } + .edgeLabel { + background-color: ${t.edgeLabelBackground}; + } + .edgeLabel .label rect { + fill: ${t.edgeLabelBackground}; + } + .edgeLabel .label text { + fill: ${t.relationLabelColor}; + } + .divider { + stroke: ${t.nodeBorder}; + stroke-width: 1; + } + .label { + font-family: ${t.fontFamily}; + color: ${t.nodeTextColor||t.textColor}; + } + .label text,span { + fill: ${t.nodeTextColor||t.textColor}; + color: ${t.nodeTextColor||t.textColor}; + } + .labelBkg { + background-color: ${t.edgeLabelBackground}; + } + +`,"getStyles"),Twe=Dlt});var eU={};vr(eU,{draw:()=>Rlt});var Rlt,kwe=O(()=>{"use strict";jt();xt();b0();Rd();Ld();ar();Rlt=o(async function(t,e,r,n){K.info("REF0:"),K.info("Drawing requirement diagram (unified)",e);let{securityLevel:i,state:a,layout:s}=ve(),l=n.db.getData(),u=Sl(e,i);l.type=n.type,l.layoutAlgorithm=Ru(s),l.nodeSpacing=a?.nodeSpacing??50,l.rankSpacing=a?.rankSpacing??50,l.markers=["requirement_contains","requirement_arrow"],l.diagramId=e,await Ol(l,u);let h=8;Xt.insertTitle(u,"requirementDiagramTitleText",a?.titleTopMargin??25,n.db.getDiagramTitle()),bo(u,h,"requirementDiagram",a?.useMaxWidth??!0)},"draw")});var Ewe={};vr(Ewe,{diagram:()=>Llt});var Llt,Swe=O(()=>{"use strict";xwe();bwe();wwe();kwe();Llt={parser:vwe,get db(){return new z7},renderer:eU,styles:Twe}});var tU,_we,Dwe=O(()=>{"use strict";tU=(function(){var t=o(function(Re,ge,Ie,qe){for(Ie=Ie||{},qe=Re.length;qe--;Ie[Re[qe]]=ge);return Ie},"o"),e=[1,2],r=[1,3],n=[1,4],i=[2,4],a=[1,9],s=[1,11],l=[1,12],u=[1,14],h=[1,15],f=[1,17],d=[1,18],p=[1,19],m=[1,25],g=[1,26],y=[1,27],v=[1,28],x=[1,29],b=[1,30],T=[1,31],E=[1,32],w=[1,33],k=[1,34],S=[1,35],A=[1,36],L=[1,37],I=[1,38],N=[1,39],C=[1,40],_=[1,42],D=[1,43],M=[1,44],R=[1,45],P=[1,46],B=[1,47],F=[1,4,5,10,14,15,17,19,22,24,30,31,32,34,36,37,38,39,40,42,44,45,47,48,49,50,51,53,54,56,61,62,63,64,73],G=[1,74],$=[1,80],V=[1,81],X=[1,82],Q=[1,83],H=[1,84],ie=[1,85],Y=[1,86],le=[1,87],ee=[1,88],J=[1,89],te=[1,90],Z=[1,91],xe=[1,92],de=[1,93],Se=[1,94],Me=[1,95],ke=[1,96],we=[1,97],_e=[1,98],$e=[1,99],fe=[1,100],Ke=[1,101],Te=[1,102],Be=[1,103],Ue=[1,104],Ge=[1,105],Ne=[2,78],We=[4,5,17,51,53,54],j=[4,5,10,14,15,17,19,22,24,30,31,32,34,36,37,38,39,40,42,44,45,47,51,53,54,56,61,62,63,64,73],ae=[4,5,10,14,15,17,19,22,24,30,31,32,34,36,37,38,39,40,42,44,45,47,50,51,53,54,56,61,62,63,64,73],U=[4,5,10,14,15,17,19,22,24,30,31,32,34,36,37,38,39,40,42,44,45,47,49,51,53,54,56,61,62,63,64,73],ce=[4,5,10,14,15,17,19,22,24,30,31,32,34,36,37,38,39,40,42,44,45,47,48,51,53,54,56,61,62,63,64,73],z=[5,52],ne=[70,71,72,73],se=[1,151],be={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,SPACE:4,NEWLINE:5,SD:6,document:7,line:8,statement:9,INVALID:10,box_section:11,box_line:12,participant_statement:13,create:14,box:15,restOfLine:16,end:17,signal:18,autonumber:19,NUM:20,off:21,activate:22,actor:23,deactivate:24,note_statement:25,links_statement:26,link_statement:27,properties_statement:28,details_statement:29,title:30,legacy_title:31,acc_title:32,acc_title_value:33,acc_descr:34,acc_descr_value:35,acc_descr_multiline_value:36,loop:37,rect:38,opt:39,alt:40,else_sections:41,par:42,par_sections:43,par_over:44,critical:45,option_sections:46,break:47,option:48,and:49,else:50,participant:51,AS:52,participant_actor:53,destroy:54,actor_with_config:55,note:56,placement:57,text2:58,over:59,actor_pair:60,links:61,link:62,properties:63,details:64,spaceList:65,",":66,left_of:67,right_of:68,signaltype:69,"+":70,"-":71,"()":72,ACTOR:73,config_object:74,CONFIG_START:75,CONFIG_CONTENT:76,CONFIG_END:77,SOLID_OPEN_ARROW:78,DOTTED_OPEN_ARROW:79,SOLID_ARROW:80,SOLID_ARROW_TOP:81,SOLID_ARROW_BOTTOM:82,STICK_ARROW_TOP:83,STICK_ARROW_BOTTOM:84,SOLID_ARROW_TOP_DOTTED:85,SOLID_ARROW_BOTTOM_DOTTED:86,STICK_ARROW_TOP_DOTTED:87,STICK_ARROW_BOTTOM_DOTTED:88,SOLID_ARROW_TOP_REVERSE:89,SOLID_ARROW_BOTTOM_REVERSE:90,STICK_ARROW_TOP_REVERSE:91,STICK_ARROW_BOTTOM_REVERSE:92,SOLID_ARROW_TOP_REVERSE_DOTTED:93,SOLID_ARROW_BOTTOM_REVERSE_DOTTED:94,STICK_ARROW_TOP_REVERSE_DOTTED:95,STICK_ARROW_BOTTOM_REVERSE_DOTTED:96,BIDIRECTIONAL_SOLID_ARROW:97,DOTTED_ARROW:98,BIDIRECTIONAL_DOTTED_ARROW:99,SOLID_CROSS:100,DOTTED_CROSS:101,SOLID_POINT:102,DOTTED_POINT:103,TXT:104,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NEWLINE",6:"SD",10:"INVALID",14:"create",15:"box",16:"restOfLine",17:"end",19:"autonumber",20:"NUM",21:"off",22:"activate",24:"deactivate",30:"title",31:"legacy_title",32:"acc_title",33:"acc_title_value",34:"acc_descr",35:"acc_descr_value",36:"acc_descr_multiline_value",37:"loop",38:"rect",39:"opt",40:"alt",42:"par",44:"par_over",45:"critical",47:"break",48:"option",49:"and",50:"else",51:"participant",52:"AS",53:"participant_actor",54:"destroy",56:"note",59:"over",61:"links",62:"link",63:"properties",64:"details",66:",",67:"left_of",68:"right_of",70:"+",71:"-",72:"()",73:"ACTOR",75:"CONFIG_START",76:"CONFIG_CONTENT",77:"CONFIG_END",78:"SOLID_OPEN_ARROW",79:"DOTTED_OPEN_ARROW",80:"SOLID_ARROW",81:"SOLID_ARROW_TOP",82:"SOLID_ARROW_BOTTOM",83:"STICK_ARROW_TOP",84:"STICK_ARROW_BOTTOM",85:"SOLID_ARROW_TOP_DOTTED",86:"SOLID_ARROW_BOTTOM_DOTTED",87:"STICK_ARROW_TOP_DOTTED",88:"STICK_ARROW_BOTTOM_DOTTED",89:"SOLID_ARROW_TOP_REVERSE",90:"SOLID_ARROW_BOTTOM_REVERSE",91:"STICK_ARROW_TOP_REVERSE",92:"STICK_ARROW_BOTTOM_REVERSE",93:"SOLID_ARROW_TOP_REVERSE_DOTTED",94:"SOLID_ARROW_BOTTOM_REVERSE_DOTTED",95:"STICK_ARROW_TOP_REVERSE_DOTTED",96:"STICK_ARROW_BOTTOM_REVERSE_DOTTED",97:"BIDIRECTIONAL_SOLID_ARROW",98:"DOTTED_ARROW",99:"BIDIRECTIONAL_DOTTED_ARROW",100:"SOLID_CROSS",101:"DOTTED_CROSS",102:"SOLID_POINT",103:"DOTTED_POINT",104:"TXT"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[8,1],[11,0],[11,2],[12,2],[12,1],[12,1],[9,1],[9,2],[9,4],[9,2],[9,4],[9,3],[9,3],[9,2],[9,3],[9,3],[9,2],[9,2],[9,2],[9,2],[9,2],[9,1],[9,1],[9,2],[9,2],[9,1],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[46,1],[46,4],[43,1],[43,4],[41,1],[41,4],[13,5],[13,3],[13,5],[13,3],[13,3],[13,5],[13,3],[13,5],[13,3],[25,4],[25,4],[26,3],[27,3],[28,3],[29,3],[65,2],[65,1],[60,3],[60,1],[57,1],[57,1],[18,5],[18,5],[18,5],[18,5],[18,6],[18,4],[55,2],[74,3],[23,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[58,1]],performAction:o(function(ge,Ie,qe,Pe,Xe,oe,et){var he=oe.length-1;switch(Xe){case 3:return Pe.apply(oe[he]),oe[he];break;case 4:case 10:this.$=[];break;case 5:case 11:oe[he-1].push(oe[he]),this.$=oe[he-1];break;case 6:case 7:case 12:case 13:this.$=oe[he];break;case 8:case 9:case 14:this.$=[];break;case 16:oe[he].type="createParticipant",this.$=oe[he];break;case 17:oe[he-1].unshift({type:"boxStart",boxData:Pe.parseBoxData(oe[he-2])}),oe[he-1].push({type:"boxEnd",boxText:oe[he-2]}),this.$=oe[he-1];break;case 19:this.$={type:"sequenceIndex",sequenceIndex:Number(oe[he-2]),sequenceIndexStep:Number(oe[he-1]),sequenceVisible:!0,signalType:Pe.LINETYPE.AUTONUMBER};break;case 20:this.$={type:"sequenceIndex",sequenceIndex:Number(oe[he-1]),sequenceIndexStep:1,sequenceVisible:!0,signalType:Pe.LINETYPE.AUTONUMBER};break;case 21:this.$={type:"sequenceIndex",sequenceVisible:!1,signalType:Pe.LINETYPE.AUTONUMBER};break;case 22:this.$={type:"sequenceIndex",sequenceVisible:!0,signalType:Pe.LINETYPE.AUTONUMBER};break;case 23:this.$={type:"activeStart",signalType:Pe.LINETYPE.ACTIVE_START,actor:oe[he-1].actor};break;case 24:this.$={type:"activeEnd",signalType:Pe.LINETYPE.ACTIVE_END,actor:oe[he-1].actor};break;case 30:Pe.setDiagramTitle(oe[he].substring(6)),this.$=oe[he].substring(6);break;case 31:Pe.setDiagramTitle(oe[he].substring(7)),this.$=oe[he].substring(7);break;case 32:this.$=oe[he].trim(),Pe.setAccTitle(this.$);break;case 33:case 34:this.$=oe[he].trim(),Pe.setAccDescription(this.$);break;case 35:oe[he-1].unshift({type:"loopStart",loopText:Pe.parseMessage(oe[he-2]),signalType:Pe.LINETYPE.LOOP_START}),oe[he-1].push({type:"loopEnd",loopText:oe[he-2],signalType:Pe.LINETYPE.LOOP_END}),this.$=oe[he-1];break;case 36:oe[he-1].unshift({type:"rectStart",color:Pe.parseMessage(oe[he-2]),signalType:Pe.LINETYPE.RECT_START}),oe[he-1].push({type:"rectEnd",color:Pe.parseMessage(oe[he-2]),signalType:Pe.LINETYPE.RECT_END}),this.$=oe[he-1];break;case 37:oe[he-1].unshift({type:"optStart",optText:Pe.parseMessage(oe[he-2]),signalType:Pe.LINETYPE.OPT_START}),oe[he-1].push({type:"optEnd",optText:Pe.parseMessage(oe[he-2]),signalType:Pe.LINETYPE.OPT_END}),this.$=oe[he-1];break;case 38:oe[he-1].unshift({type:"altStart",altText:Pe.parseMessage(oe[he-2]),signalType:Pe.LINETYPE.ALT_START}),oe[he-1].push({type:"altEnd",signalType:Pe.LINETYPE.ALT_END}),this.$=oe[he-1];break;case 39:oe[he-1].unshift({type:"parStart",parText:Pe.parseMessage(oe[he-2]),signalType:Pe.LINETYPE.PAR_START}),oe[he-1].push({type:"parEnd",signalType:Pe.LINETYPE.PAR_END}),this.$=oe[he-1];break;case 40:oe[he-1].unshift({type:"parStart",parText:Pe.parseMessage(oe[he-2]),signalType:Pe.LINETYPE.PAR_OVER_START}),oe[he-1].push({type:"parEnd",signalType:Pe.LINETYPE.PAR_END}),this.$=oe[he-1];break;case 41:oe[he-1].unshift({type:"criticalStart",criticalText:Pe.parseMessage(oe[he-2]),signalType:Pe.LINETYPE.CRITICAL_START}),oe[he-1].push({type:"criticalEnd",signalType:Pe.LINETYPE.CRITICAL_END}),this.$=oe[he-1];break;case 42:oe[he-1].unshift({type:"breakStart",breakText:Pe.parseMessage(oe[he-2]),signalType:Pe.LINETYPE.BREAK_START}),oe[he-1].push({type:"breakEnd",optText:Pe.parseMessage(oe[he-2]),signalType:Pe.LINETYPE.BREAK_END}),this.$=oe[he-1];break;case 44:this.$=oe[he-3].concat([{type:"option",optionText:Pe.parseMessage(oe[he-1]),signalType:Pe.LINETYPE.CRITICAL_OPTION},oe[he]]);break;case 46:this.$=oe[he-3].concat([{type:"and",parText:Pe.parseMessage(oe[he-1]),signalType:Pe.LINETYPE.PAR_AND},oe[he]]);break;case 48:this.$=oe[he-3].concat([{type:"else",altText:Pe.parseMessage(oe[he-1]),signalType:Pe.LINETYPE.ALT_ELSE},oe[he]]);break;case 49:oe[he-3].draw="participant",oe[he-3].type="addParticipant",oe[he-3].description=Pe.parseMessage(oe[he-1]),this.$=oe[he-3];break;case 50:oe[he-1].draw="participant",oe[he-1].type="addParticipant",this.$=oe[he-1];break;case 51:oe[he-3].draw="actor",oe[he-3].type="addParticipant",oe[he-3].description=Pe.parseMessage(oe[he-1]),this.$=oe[he-3];break;case 52:case 57:oe[he-1].draw="actor",oe[he-1].type="addParticipant",this.$=oe[he-1];break;case 53:oe[he-1].type="destroyParticipant",this.$=oe[he-1];break;case 54:oe[he-3].draw="participant",oe[he-3].type="addParticipant",oe[he-3].description=Pe.parseMessage(oe[he-1]),this.$=oe[he-3];break;case 55:oe[he-1].draw="participant",oe[he-1].type="addParticipant",this.$=oe[he-1];break;case 56:oe[he-3].draw="actor",oe[he-3].type="addParticipant",oe[he-3].description=Pe.parseMessage(oe[he-1]),this.$=oe[he-3];break;case 58:this.$=[oe[he-1],{type:"addNote",placement:oe[he-2],actor:oe[he-1].actor,text:oe[he]}];break;case 59:oe[he-2]=[].concat(oe[he-1],oe[he-1]).slice(0,2),oe[he-2][0]=oe[he-2][0].actor,oe[he-2][1]=oe[he-2][1].actor,this.$=[oe[he-1],{type:"addNote",placement:Pe.PLACEMENT.OVER,actor:oe[he-2].slice(0,2),text:oe[he]}];break;case 60:this.$=[oe[he-1],{type:"addLinks",actor:oe[he-1].actor,text:oe[he]}];break;case 61:this.$=[oe[he-1],{type:"addALink",actor:oe[he-1].actor,text:oe[he]}];break;case 62:this.$=[oe[he-1],{type:"addProperties",actor:oe[he-1].actor,text:oe[he]}];break;case 63:this.$=[oe[he-1],{type:"addDetails",actor:oe[he-1].actor,text:oe[he]}];break;case 66:this.$=[oe[he-2],oe[he]];break;case 67:this.$=oe[he];break;case 68:this.$=Pe.PLACEMENT.LEFTOF;break;case 69:this.$=Pe.PLACEMENT.RIGHTOF;break;case 70:this.$=[oe[he-4],oe[he-1],{type:"addMessage",from:oe[he-4].actor,to:oe[he-1].actor,signalType:oe[he-3],msg:oe[he],activate:!0},{type:"activeStart",signalType:Pe.LINETYPE.ACTIVE_START,actor:oe[he-1].actor}];break;case 71:this.$=[oe[he-4],oe[he-1],{type:"addMessage",from:oe[he-4].actor,to:oe[he-1].actor,signalType:oe[he-3],msg:oe[he]},{type:"activeEnd",signalType:Pe.LINETYPE.ACTIVE_END,actor:oe[he-4].actor}];break;case 72:this.$=[oe[he-4],oe[he-1],{type:"addMessage",from:oe[he-4].actor,to:oe[he-1].actor,signalType:oe[he-3],msg:oe[he],activate:!0,centralConnection:Pe.LINETYPE.CENTRAL_CONNECTION},{type:"centralConnection",signalType:Pe.LINETYPE.CENTRAL_CONNECTION,actor:oe[he-1].actor}];break;case 73:this.$=[oe[he-4],oe[he-1],{type:"addMessage",from:oe[he-4].actor,to:oe[he-1].actor,signalType:oe[he-2],msg:oe[he],activate:!1,centralConnection:Pe.LINETYPE.CENTRAL_CONNECTION_REVERSE},{type:"centralConnectionReverse",signalType:Pe.LINETYPE.CENTRAL_CONNECTION_REVERSE,actor:oe[he-4].actor}];break;case 74:this.$=[oe[he-5],oe[he-1],{type:"addMessage",from:oe[he-5].actor,to:oe[he-1].actor,signalType:oe[he-3],msg:oe[he],activate:!0,centralConnection:Pe.LINETYPE.CENTRAL_CONNECTION_DUAL},{type:"centralConnection",signalType:Pe.LINETYPE.CENTRAL_CONNECTION,actor:oe[he-1].actor},{type:"centralConnectionReverse",signalType:Pe.LINETYPE.CENTRAL_CONNECTION_REVERSE,actor:oe[he-5].actor}];break;case 75:this.$=[oe[he-3],oe[he-1],{type:"addMessage",from:oe[he-3].actor,to:oe[he-1].actor,signalType:oe[he-2],msg:oe[he]}];break;case 76:this.$={type:"addParticipant",actor:oe[he-1],config:oe[he]};break;case 77:this.$=oe[he-1].trim();break;case 78:this.$={type:"addParticipant",actor:oe[he]};break;case 79:this.$=Pe.LINETYPE.SOLID_OPEN;break;case 80:this.$=Pe.LINETYPE.DOTTED_OPEN;break;case 81:this.$=Pe.LINETYPE.SOLID;break;case 82:this.$=Pe.LINETYPE.SOLID_TOP;break;case 83:this.$=Pe.LINETYPE.SOLID_BOTTOM;break;case 84:this.$=Pe.LINETYPE.STICK_TOP;break;case 85:this.$=Pe.LINETYPE.STICK_BOTTOM;break;case 86:this.$=Pe.LINETYPE.SOLID_TOP_DOTTED;break;case 87:this.$=Pe.LINETYPE.SOLID_BOTTOM_DOTTED;break;case 88:this.$=Pe.LINETYPE.STICK_TOP_DOTTED;break;case 89:this.$=Pe.LINETYPE.STICK_BOTTOM_DOTTED;break;case 90:this.$=Pe.LINETYPE.SOLID_ARROW_TOP_REVERSE;break;case 91:this.$=Pe.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE;break;case 92:this.$=Pe.LINETYPE.STICK_ARROW_TOP_REVERSE;break;case 93:this.$=Pe.LINETYPE.STICK_ARROW_BOTTOM_REVERSE;break;case 94:this.$=Pe.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED;break;case 95:this.$=Pe.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED;break;case 96:this.$=Pe.LINETYPE.STICK_ARROW_TOP_REVERSE_DOTTED;break;case 97:this.$=Pe.LINETYPE.STICK_ARROW_BOTTOM_REVERSE_DOTTED;break;case 98:this.$=Pe.LINETYPE.BIDIRECTIONAL_SOLID;break;case 99:this.$=Pe.LINETYPE.DOTTED;break;case 100:this.$=Pe.LINETYPE.BIDIRECTIONAL_DOTTED;break;case 101:this.$=Pe.LINETYPE.SOLID_CROSS;break;case 102:this.$=Pe.LINETYPE.DOTTED_CROSS;break;case 103:this.$=Pe.LINETYPE.SOLID_POINT;break;case 104:this.$=Pe.LINETYPE.DOTTED_POINT;break;case 105:this.$=Pe.parseMessage(oe[he].trim().substring(1));break}},"anonymous"),table:[{3:1,4:e,5:r,6:n},{1:[3]},{3:5,4:e,5:r,6:n},{3:6,4:e,5:r,6:n},t([1,4,5,10,14,15,19,22,24,30,31,32,34,36,37,38,39,40,42,44,45,47,51,53,54,56,61,62,63,64,73],i,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:a,5:s,8:8,9:10,10:l,13:13,14:u,15:h,18:16,19:f,22:d,23:41,24:p,25:20,26:21,27:22,28:23,29:24,30:m,31:g,32:y,34:v,36:x,37:b,38:T,39:E,40:w,42:k,44:S,45:A,47:L,51:I,53:N,54:C,56:_,61:D,62:M,63:R,64:P,73:B},t(F,[2,5]),{9:48,13:13,14:u,15:h,18:16,19:f,22:d,23:41,24:p,25:20,26:21,27:22,28:23,29:24,30:m,31:g,32:y,34:v,36:x,37:b,38:T,39:E,40:w,42:k,44:S,45:A,47:L,51:I,53:N,54:C,56:_,61:D,62:M,63:R,64:P,73:B},t(F,[2,7]),t(F,[2,8]),t(F,[2,9]),t(F,[2,15]),{13:49,51:I,53:N,54:C},{16:[1,50]},{5:[1,51]},{5:[1,54],20:[1,52],21:[1,53]},{23:55,73:B},{23:56,73:B},{5:[1,57]},{5:[1,58]},{5:[1,59]},{5:[1,60]},{5:[1,61]},t(F,[2,30]),t(F,[2,31]),{33:[1,62]},{35:[1,63]},t(F,[2,34]),{16:[1,64]},{16:[1,65]},{16:[1,66]},{16:[1,67]},{16:[1,68]},{16:[1,69]},{16:[1,70]},{16:[1,71]},{23:72,55:73,73:G},{23:75,55:76,73:G},{23:77,73:B},{69:78,72:[1,79],78:$,79:V,80:X,81:Q,82:H,83:ie,84:Y,85:le,86:ee,87:J,88:te,89:Z,90:xe,91:de,92:Se,93:Me,94:ke,95:we,96:_e,97:$e,98:fe,99:Ke,100:Te,101:Be,102:Ue,103:Ge},{57:106,59:[1,107],67:[1,108],68:[1,109]},{23:110,73:B},{23:111,73:B},{23:112,73:B},{23:113,73:B},t([5,66,72,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104],Ne),t(F,[2,6]),t(F,[2,16]),t(We,[2,10],{11:114}),t(F,[2,18]),{5:[1,116],20:[1,115]},{5:[1,117]},t(F,[2,22]),{5:[1,118]},{5:[1,119]},t(F,[2,25]),t(F,[2,26]),t(F,[2,27]),t(F,[2,28]),t(F,[2,29]),t(F,[2,32]),t(F,[2,33]),t(j,i,{7:120}),t(j,i,{7:121}),t(j,i,{7:122}),t(ae,i,{41:123,7:124}),t(U,i,{43:125,7:126}),t(U,i,{7:126,43:127}),t(ce,i,{46:128,7:129}),t(j,i,{7:130}),{5:[1,132],52:[1,131]},{5:[1,134],52:[1,133]},t(z,Ne,{74:135,75:[1,136]}),{5:[1,138],52:[1,137]},{5:[1,140],52:[1,139]},{5:[1,141]},{23:145,70:[1,142],71:[1,143],72:[1,144],73:B},{69:146,78:$,79:V,80:X,81:Q,82:H,83:ie,84:Y,85:le,86:ee,87:J,88:te,89:Z,90:xe,91:de,92:Se,93:Me,94:ke,95:we,96:_e,97:$e,98:fe,99:Ke,100:Te,101:Be,102:Ue,103:Ge},t(ne,[2,79]),t(ne,[2,80]),t(ne,[2,81]),t(ne,[2,82]),t(ne,[2,83]),t(ne,[2,84]),t(ne,[2,85]),t(ne,[2,86]),t(ne,[2,87]),t(ne,[2,88]),t(ne,[2,89]),t(ne,[2,90]),t(ne,[2,91]),t(ne,[2,92]),t(ne,[2,93]),t(ne,[2,94]),t(ne,[2,95]),t(ne,[2,96]),t(ne,[2,97]),t(ne,[2,98]),t(ne,[2,99]),t(ne,[2,100]),t(ne,[2,101]),t(ne,[2,102]),t(ne,[2,103]),t(ne,[2,104]),{23:147,73:B},{23:149,60:148,73:B},{73:[2,68]},{73:[2,69]},{58:150,104:se},{58:152,104:se},{58:153,104:se},{58:154,104:se},{4:[1,157],5:[1,159],12:156,13:158,17:[1,155],51:I,53:N,54:C},{5:[1,160]},t(F,[2,20]),t(F,[2,21]),t(F,[2,23]),t(F,[2,24]),{4:a,5:s,8:8,9:10,10:l,13:13,14:u,15:h,17:[1,161],18:16,19:f,22:d,23:41,24:p,25:20,26:21,27:22,28:23,29:24,30:m,31:g,32:y,34:v,36:x,37:b,38:T,39:E,40:w,42:k,44:S,45:A,47:L,51:I,53:N,54:C,56:_,61:D,62:M,63:R,64:P,73:B},{4:a,5:s,8:8,9:10,10:l,13:13,14:u,15:h,17:[1,162],18:16,19:f,22:d,23:41,24:p,25:20,26:21,27:22,28:23,29:24,30:m,31:g,32:y,34:v,36:x,37:b,38:T,39:E,40:w,42:k,44:S,45:A,47:L,51:I,53:N,54:C,56:_,61:D,62:M,63:R,64:P,73:B},{4:a,5:s,8:8,9:10,10:l,13:13,14:u,15:h,17:[1,163],18:16,19:f,22:d,23:41,24:p,25:20,26:21,27:22,28:23,29:24,30:m,31:g,32:y,34:v,36:x,37:b,38:T,39:E,40:w,42:k,44:S,45:A,47:L,51:I,53:N,54:C,56:_,61:D,62:M,63:R,64:P,73:B},{17:[1,164]},{4:a,5:s,8:8,9:10,10:l,13:13,14:u,15:h,17:[2,47],18:16,19:f,22:d,23:41,24:p,25:20,26:21,27:22,28:23,29:24,30:m,31:g,32:y,34:v,36:x,37:b,38:T,39:E,40:w,42:k,44:S,45:A,47:L,50:[1,165],51:I,53:N,54:C,56:_,61:D,62:M,63:R,64:P,73:B},{17:[1,166]},{4:a,5:s,8:8,9:10,10:l,13:13,14:u,15:h,17:[2,45],18:16,19:f,22:d,23:41,24:p,25:20,26:21,27:22,28:23,29:24,30:m,31:g,32:y,34:v,36:x,37:b,38:T,39:E,40:w,42:k,44:S,45:A,47:L,49:[1,167],51:I,53:N,54:C,56:_,61:D,62:M,63:R,64:P,73:B},{17:[1,168]},{17:[1,169]},{4:a,5:s,8:8,9:10,10:l,13:13,14:u,15:h,17:[2,43],18:16,19:f,22:d,23:41,24:p,25:20,26:21,27:22,28:23,29:24,30:m,31:g,32:y,34:v,36:x,37:b,38:T,39:E,40:w,42:k,44:S,45:A,47:L,48:[1,170],51:I,53:N,54:C,56:_,61:D,62:M,63:R,64:P,73:B},{4:a,5:s,8:8,9:10,10:l,13:13,14:u,15:h,17:[1,171],18:16,19:f,22:d,23:41,24:p,25:20,26:21,27:22,28:23,29:24,30:m,31:g,32:y,34:v,36:x,37:b,38:T,39:E,40:w,42:k,44:S,45:A,47:L,51:I,53:N,54:C,56:_,61:D,62:M,63:R,64:P,73:B},{16:[1,172]},t(F,[2,50]),{16:[1,173]},t(F,[2,55]),t(z,[2,76]),{76:[1,174]},{16:[1,175]},t(F,[2,52]),{16:[1,176]},t(F,[2,57]),t(F,[2,53]),{23:177,73:B},{23:178,73:B},{23:179,73:B},{58:180,104:se},{23:181,72:[1,182],73:B},{58:183,104:se},{58:184,104:se},{66:[1,185],104:[2,67]},{5:[2,60]},{5:[2,105]},{5:[2,61]},{5:[2,62]},{5:[2,63]},t(F,[2,17]),t(We,[2,11]),{13:186,51:I,53:N,54:C},t(We,[2,13]),t(We,[2,14]),t(F,[2,19]),t(F,[2,35]),t(F,[2,36]),t(F,[2,37]),t(F,[2,38]),{16:[1,187]},t(F,[2,39]),{16:[1,188]},t(F,[2,40]),t(F,[2,41]),{16:[1,189]},t(F,[2,42]),{5:[1,190]},{5:[1,191]},{77:[1,192]},{5:[1,193]},{5:[1,194]},{58:195,104:se},{58:196,104:se},{58:197,104:se},{5:[2,75]},{58:198,104:se},{23:199,73:B},{5:[2,58]},{5:[2,59]},{23:200,73:B},t(We,[2,12]),t(ae,i,{7:124,41:201}),t(U,i,{7:126,43:202}),t(ce,i,{7:129,46:203}),t(F,[2,49]),t(F,[2,54]),t(z,[2,77]),t(F,[2,51]),t(F,[2,56]),{5:[2,70]},{5:[2,71]},{5:[2,72]},{5:[2,73]},{58:204,104:se},{104:[2,66]},{17:[2,48]},{17:[2,46]},{17:[2,44]},{5:[2,74]}],defaultActions:{5:[2,1],6:[2,2],108:[2,68],109:[2,69],150:[2,60],151:[2,105],152:[2,61],153:[2,62],154:[2,63],180:[2,75],183:[2,58],184:[2,59],195:[2,70],196:[2,71],197:[2,72],198:[2,73],200:[2,66],201:[2,48],202:[2,46],203:[2,44],204:[2,74]},parseError:o(function(ge,Ie){if(Ie.recoverable)this.trace(ge);else{var qe=new Error(ge);throw qe.hash=Ie,qe}},"parseError"),parse:o(function(ge){var Ie=this,qe=[0],Pe=[],Xe=[null],oe=[],et=this.table,he="",ot=0,Dt=0,It=0,wt=2,Rt=1,it=oe.slice.call(arguments,1),at=Object.create(this.lexer),Ct={yy:{}};for(var yt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,yt)&&(Ct.yy[yt]=this.yy[yt]);at.setInput(ge,Ct.yy),Ct.yy.lexer=at,Ct.yy.parser=this,typeof at.yylloc>"u"&&(at.yylloc={});var dt=at.yylloc;oe.push(dt);var Ht=at.options&&at.options.ranges;typeof Ct.yy.parseError=="function"?this.parseError=Ct.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function cr(Cr){qe.length=qe.length-2*Cr,Xe.length=Xe.length-Cr,oe.length=oe.length-Cr}o(cr,"popStack");function Kt(){var Cr;return Cr=Pe.pop()||at.lex()||Rt,typeof Cr!="number"&&(Cr instanceof Array&&(Pe=Cr,Cr=Pe.pop()),Cr=Ie.symbols_[Cr]||Cr),Cr}o(Kt,"lex");for(var kr,ur,tr,hr,_n,mt,Le={},ct,St,Mr,tn;;){if(tr=qe[qe.length-1],this.defaultActions[tr]?hr=this.defaultActions[tr]:((kr===null||typeof kr>"u")&&(kr=Kt()),hr=et[tr]&&et[tr][kr]),typeof hr>"u"||!hr.length||!hr[0]){var cn="";tn=[];for(ct in et[tr])this.terminals_[ct]&&ct>wt&&tn.push("'"+this.terminals_[ct]+"'");at.showPosition?cn="Parse error on line "+(ot+1)+`: +`+at.showPosition()+` +Expecting `+tn.join(", ")+", got '"+(this.terminals_[kr]||kr)+"'":cn="Parse error on line "+(ot+1)+": Unexpected "+(kr==Rt?"end of input":"'"+(this.terminals_[kr]||kr)+"'"),this.parseError(cn,{text:at.match,token:this.terminals_[kr]||kr,line:at.yylineno,loc:dt,expected:tn})}if(hr[0]instanceof Array&&hr.length>1)throw new Error("Parse Error: multiple actions possible at state: "+tr+", token: "+kr);switch(hr[0]){case 1:qe.push(kr),Xe.push(at.yytext),oe.push(at.yylloc),qe.push(hr[1]),kr=null,ur?(kr=ur,ur=null):(Dt=at.yyleng,he=at.yytext,ot=at.yylineno,dt=at.yylloc,It>0&&It--);break;case 2:if(St=this.productions_[hr[1]][1],Le.$=Xe[Xe.length-St],Le._$={first_line:oe[oe.length-(St||1)].first_line,last_line:oe[oe.length-1].last_line,first_column:oe[oe.length-(St||1)].first_column,last_column:oe[oe.length-1].last_column},Ht&&(Le._$.range=[oe[oe.length-(St||1)].range[0],oe[oe.length-1].range[1]]),mt=this.performAction.apply(Le,[he,Dt,ot,Ct.yy,hr[1],Xe,oe].concat(it)),typeof mt<"u")return mt;St&&(qe=qe.slice(0,-1*St*2),Xe=Xe.slice(0,-1*St),oe=oe.slice(0,-1*St)),qe.push(this.productions_[hr[1]][0]),Xe.push(Le.$),oe.push(Le._$),Mr=et[qe[qe.length-2]][qe[qe.length-1]],qe.push(Mr);break;case 3:return!0}}return!0},"parse")},pe=(function(){var Re={EOF:1,parseError:o(function(Ie,qe){if(this.yy.parser)this.yy.parser.parseError(Ie,qe);else throw new Error(Ie)},"parseError"),setInput:o(function(ge,Ie){return this.yy=Ie||this.yy||{},this._input=ge,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var ge=this._input[0];this.yytext+=ge,this.yyleng++,this.offset++,this.match+=ge,this.matched+=ge;var Ie=ge.match(/(?:\r\n?|\n).*/g);return Ie?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),ge},"input"),unput:o(function(ge){var Ie=ge.length,qe=ge.split(/(?:\r\n?|\n)/g);this._input=ge+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Ie),this.offset-=Ie;var Pe=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),qe.length-1&&(this.yylineno-=qe.length-1);var Xe=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:qe?(qe.length===Pe.length?this.yylloc.first_column:0)+Pe[Pe.length-qe.length].length-qe[0].length:this.yylloc.first_column-Ie},this.options.ranges&&(this.yylloc.range=[Xe[0],Xe[0]+this.yyleng-Ie]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(ge){this.unput(this.match.slice(ge))},"less"),pastInput:o(function(){var ge=this.matched.substr(0,this.matched.length-this.match.length);return(ge.length>20?"...":"")+ge.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var ge=this.match;return ge.length<20&&(ge+=this._input.substr(0,20-ge.length)),(ge.substr(0,20)+(ge.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var ge=this.pastInput(),Ie=new Array(ge.length+1).join("-");return ge+this.upcomingInput()+` +`+Ie+"^"},"showPosition"),test_match:o(function(ge,Ie){var qe,Pe,Xe;if(this.options.backtrack_lexer&&(Xe={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(Xe.yylloc.range=this.yylloc.range.slice(0))),Pe=ge[0].match(/(?:\r\n?|\n).*/g),Pe&&(this.yylineno+=Pe.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Pe?Pe[Pe.length-1].length-Pe[Pe.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+ge[0].length},this.yytext+=ge[0],this.match+=ge[0],this.matches=ge,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(ge[0].length),this.matched+=ge[0],qe=this.performAction.call(this,this.yy,this,Ie,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),qe)return qe;if(this._backtrack){for(var oe in Xe)this[oe]=Xe[oe];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var ge,Ie,qe,Pe;this._more||(this.yytext="",this.match="");for(var Xe=this._currentRules(),oe=0;oeIe[0].length)){if(Ie=qe,Pe=oe,this.options.backtrack_lexer){if(ge=this.test_match(qe,Xe[oe]),ge!==!1)return ge;if(this._backtrack){Ie=!1;continue}else return!1}else if(!this.options.flex)break}return Ie?(ge=this.test_match(Ie,Xe[Pe]),ge!==!1?ge:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var Ie=this.next();return Ie||this.lex()},"lex"),begin:o(function(Ie){this.conditionStack.push(Ie)},"begin"),popState:o(function(){var Ie=this.conditionStack.length-1;return Ie>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(Ie){return Ie=this.conditionStack.length-1-Math.abs(Ie||0),Ie>=0?this.conditionStack[Ie]:"INITIAL"},"topState"),pushState:o(function(Ie){this.begin(Ie)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(Ie,qe,Pe,Xe){var oe=Xe;switch(Pe){case 0:return 5;case 1:break;case 2:break;case 3:break;case 4:break;case 5:break;case 6:return 20;case 7:return this.begin("CONFIG"),75;break;case 8:return 76;case 9:return this.popState(),this.begin("ALIAS"),77;break;case 10:return this.popState(),this.popState(),77;break;case 11:return qe.yytext=qe.yytext.trim(),73;break;case 12:return qe.yytext=qe.yytext.trim(),this.begin("ALIAS"),73;break;case 13:return qe.yytext=qe.yytext.trim(),this.popState(),73;break;case 14:return this.popState(),10;break;case 15:return this.begin("LINE"),15;break;case 16:return this.begin("ID"),51;break;case 17:return this.begin("ID"),53;break;case 18:return 14;case 19:return this.begin("ID"),54;break;case 20:return this.popState(),this.popState(),this.begin("LINE"),52;break;case 21:return this.popState(),this.popState(),5;break;case 22:return this.begin("LINE"),37;break;case 23:return this.begin("LINE"),38;break;case 24:return this.begin("LINE"),39;break;case 25:return this.begin("LINE"),40;break;case 26:return this.begin("LINE"),50;break;case 27:return this.begin("LINE"),42;break;case 28:return this.begin("LINE"),44;break;case 29:return this.begin("LINE"),49;break;case 30:return this.begin("LINE"),45;break;case 31:return this.begin("LINE"),48;break;case 32:return this.begin("LINE"),47;break;case 33:return this.popState(),16;break;case 34:return 17;case 35:return 67;case 36:return 68;case 37:return 61;case 38:return 62;case 39:return 63;case 40:return 64;case 41:return 59;case 42:return 56;case 43:return this.begin("ID"),22;break;case 44:return this.begin("ID"),24;break;case 45:return 30;case 46:return 31;case 47:return this.begin("acc_title"),32;break;case 48:return this.popState(),"acc_title_value";break;case 49:return this.begin("acc_descr"),34;break;case 50:return this.popState(),"acc_descr_value";break;case 51:this.begin("acc_descr_multiline");break;case 52:this.popState();break;case 53:return"acc_descr_multiline_value";case 54:return 6;case 55:return 19;case 56:return 21;case 57:return 66;case 58:return 5;case 59:return qe.yytext=qe.yytext.trim(),73;break;case 60:return 80;case 61:return 97;case 62:return 98;case 63:return 99;case 64:return 78;case 65:return 79;case 66:return 100;case 67:return 101;case 68:return 102;case 69:return 103;case 70:return 85;case 71:return 86;case 72:return 87;case 73:return 88;case 74:return 93;case 75:return 94;case 76:return 95;case 77:return 96;case 78:return 81;case 79:return 82;case 80:return 83;case 81:return 84;case 82:return 89;case 83:return 90;case 84:return 91;case 85:return 92;case 86:return 104;case 87:return 104;case 88:return 70;case 89:return 71;case 90:return 72;case 91:return 5;case 92:return 10}},"anonymous"),rules:[/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[0-9]+(?=[ \n]+))/i,/^(?:@\{)/i,/^(?:[^\}]+)/i,/^(?:\}(?=\s+as\s))/i,/^(?:\})/i,/^(?:[^\<->\->:\n,;@\s]+(?=@\{))/i,/^(?:[^<>:\n,;@\s]+(?=\s+as\s))/i,/^(?:[^<>:\n,;@]+(?=\s*[\n;#]|$))/i,/^(?:[^<>:\n,;@]*<[^\n]*)/i,/^(?:box\b)/i,/^(?:participant\b)/i,/^(?:actor\b)/i,/^(?:create\b)/i,/^(?:destroy\b)/i,/^(?:as\b)/i,/^(?:(?:))/i,/^(?:loop\b)/i,/^(?:rect\b)/i,/^(?:opt\b)/i,/^(?:alt\b)/i,/^(?:else\b)/i,/^(?:par\b)/i,/^(?:par_over\b)/i,/^(?:and\b)/i,/^(?:critical\b)/i,/^(?:option\b)/i,/^(?:break\b)/i,/^(?:(?:[:]?(?:no)?wrap)?[^#\n;]*)/i,/^(?:end\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:links\b)/i,/^(?:link\b)/i,/^(?:properties\b)/i,/^(?:details\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:activate\b)/i,/^(?:deactivate\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:title:\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:sequenceDiagram\b)/i,/^(?:autonumber\b)/i,/^(?:off\b)/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^\/\\\+\()\+<\->\->:\n,;]+((?!(-x|--x|-\)|--\)|-\|\\|-\\|-\/|-\/\/|-\|\/|\/\|-|\\\|-|\/\/-|\\\\-|\/\|-|--\|\\|--|\(\)))[\-]*[^\+<\->\->:\n,;]+)*)/i,/^(?:->>)/i,/^(?:<<->>)/i,/^(?:-->>)/i,/^(?:<<-->>)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:-[x])/i,/^(?:--[x])/i,/^(?:-[\)])/i,/^(?:--[\)])/i,/^(?:--\|\\)/i,/^(?:--\|\/)/i,/^(?:--\\\\)/i,/^(?:--\/\/)/i,/^(?:\/\|--)/i,/^(?:\\\|--)/i,/^(?:\/\/--)/i,/^(?:\\\\--)/i,/^(?:-\|\\)/i,/^(?:-\|\/)/i,/^(?:-\\\\)/i,/^(?:-\/\/)/i,/^(?:\/\|-)/i,/^(?:\\\|-)/i,/^(?:\/\/-)/i,/^(?:\\\\-)/i,/^(?::(?:(?:no)?wrap)?[^#\n;]*)/i,/^(?::)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:\(\))/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[52,53],inclusive:!1},acc_descr:{rules:[50],inclusive:!1},acc_title:{rules:[48],inclusive:!1},ID:{rules:[2,3,7,11,12,13,14],inclusive:!1},ALIAS:{rules:[2,3,20,21],inclusive:!1},LINE:{rules:[2,3,33],inclusive:!1},CONFIG:{rules:[8,9,10],inclusive:!1},CONFIG_DATA:{rules:[],inclusive:!1},INITIAL:{rules:[0,1,3,4,5,6,15,16,17,18,19,22,23,24,25,26,27,28,29,30,31,32,34,35,36,37,38,39,40,41,42,43,44,45,46,47,49,51,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92],inclusive:!0}}};return Re})();be.lexer=pe;function me(){this.yy={}}return o(me,"Parser"),me.prototype=be,be.Parser=me,new me})();tU.parser=tU;_we=tU});var Olt,Plt,Blt,p3,G7,rU=O(()=>{"use strict";jt();ib();xt();fq();Ur();si();Olt={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25,AUTONUMBER:26,CRITICAL_START:27,CRITICAL_OPTION:28,CRITICAL_END:29,BREAK_START:30,BREAK_END:31,PAR_OVER_START:32,BIDIRECTIONAL_SOLID:33,BIDIRECTIONAL_DOTTED:34,SOLID_TOP:41,SOLID_BOTTOM:42,STICK_TOP:43,STICK_BOTTOM:44,SOLID_ARROW_TOP_REVERSE:45,SOLID_ARROW_BOTTOM_REVERSE:46,STICK_ARROW_TOP_REVERSE:47,STICK_ARROW_BOTTOM_REVERSE:48,SOLID_TOP_DOTTED:51,SOLID_BOTTOM_DOTTED:52,STICK_TOP_DOTTED:53,STICK_BOTTOM_DOTTED:54,SOLID_ARROW_TOP_REVERSE_DOTTED:55,SOLID_ARROW_BOTTOM_REVERSE_DOTTED:56,STICK_ARROW_TOP_REVERSE_DOTTED:57,STICK_ARROW_BOTTOM_REVERSE_DOTTED:58,CENTRAL_CONNECTION:59,CENTRAL_CONNECTION_REVERSE:60,CENTRAL_CONNECTION_DUAL:61},Plt={FILLED:0,OPEN:1},Blt={LEFTOF:0,RIGHTOF:1,OVER:2},p3={ACTOR:"actor",BOUNDARY:"boundary",COLLECTIONS:"collections",CONTROL:"control",DATABASE:"database",ENTITY:"entity",PARTICIPANT:"participant",QUEUE:"queue"},G7=class{constructor(){this.state=new Rv(()=>({prevActor:void 0,actors:new Map,createdActors:new Map,destroyedActors:new Map,boxes:[],messages:[],notes:[],sequenceNumbersEnabled:!1,wrapEnabled:void 0,currentBox:void 0,lastCreated:void 0,lastDestroyed:void 0}));this.setAccTitle=Lr;this.setAccDescription=Pr;this.setDiagramTitle=zr;this.getAccTitle=Or;this.getAccDescription=Br;this.getDiagramTitle=Fr;this.apply=this.apply.bind(this),this.parseBoxData=this.parseBoxData.bind(this),this.parseMessage=this.parseMessage.bind(this),this.clear(),this.setWrap(ve().wrap),this.LINETYPE=Olt,this.ARROWTYPE=Plt,this.PLACEMENT=Blt}static{o(this,"SequenceDB")}addBox(e){this.state.records.boxes.push({name:e.text,wrap:e.wrap??this.autoWrap(),fill:e.color,actorKeys:[]}),this.state.records.currentBox=this.state.records.boxes.slice(-1)[0]}addActor(e,r,n,i,a){let s=this.state.records.currentBox,l;if(a!==void 0){let h;a.includes(` +`)?h=a+` +`:h=`{ +`+a+` +}`,l=Kf(h,{schema:Xf})}i=l?.type??i,l?.alias&&(!n||n.text===r)&&(n={text:l.alias,wrap:n?.wrap,type:i});let u=this.state.records.actors.get(e);if(u){if(this.state.records.currentBox&&u.box&&this.state.records.currentBox!==u.box)throw new Error(`A same participant should only be defined in one Box: ${u.name} can't be in '${u.box.name}' and in '${this.state.records.currentBox.name}' at the same time.`);if(s=u.box?u.box:this.state.records.currentBox,u.box=s,u&&r===u.name&&n==null)return}if(n?.text==null&&(n={text:r,type:i}),(i==null||n.text==null)&&(n={text:r,type:i}),this.state.records.actors.set(e,{box:s,name:r,description:n.text,wrap:n.wrap??this.autoWrap(),prevActor:this.state.records.prevActor,links:{},properties:{},actorCnt:null,rectData:null,type:i??"participant"}),this.state.records.prevActor){let h=this.state.records.actors.get(this.state.records.prevActor);h&&(h.nextActor=e)}this.state.records.currentBox&&this.state.records.currentBox.actorKeys.push(e),this.state.records.prevActor=e}activationCount(e){let r,n=0;if(!e)return 0;for(r=0;r>-",token:"->>-",line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["'ACTIVE_PARTICIPANT'"]},u}return this.state.records.messages.push({id:this.state.records.messages.length.toString(),from:e,to:r,message:n?.text??"",wrap:n?.wrap??this.autoWrap(),type:i,activate:a,centralConnection:s??0}),!0}hasAtLeastOneBox(){return this.state.records.boxes.length>0}hasAtLeastOneBoxWithTitle(){return this.state.records.boxes.some(e=>e.name)}getMessages(){return this.state.records.messages}getBoxes(){return this.state.records.boxes}getActors(){return this.state.records.actors}getCreatedActors(){return this.state.records.createdActors}getDestroyedActors(){return this.state.records.destroyedActors}getActor(e){return this.state.records.actors.get(e)}getActorKeys(){return[...this.state.records.actors.keys()]}enableSequenceNumbers(){this.state.records.sequenceNumbersEnabled=!0}disableSequenceNumbers(){this.state.records.sequenceNumbersEnabled=!1}showSequenceNumbers(){return this.state.records.sequenceNumbersEnabled}setWrap(e){this.state.records.wrapEnabled=e}extractWrap(e){if(e===void 0)return{};e=e.trim();let r=/^:?wrap:/.exec(e)!==null?!0:/^:?nowrap:/.exec(e)!==null?!1:void 0;return{cleanedText:(r===void 0?e:e.replace(/^:?(?:no)?wrap:/,"")).trim(),wrap:r}}autoWrap(){return this.state.records.wrapEnabled!==void 0?this.state.records.wrapEnabled:ve().sequence?.wrap??!1}clear(){this.state.reset(),_r()}parseMessage(e){let r=e.trim(),{wrap:n,cleanedText:i}=this.extractWrap(r),a={text:i,wrap:n};return K.debug(`parseMessage: ${JSON.stringify(a)}`),a}parseBoxData(e){let r=/^((?:rgba?|hsla?)\s*\(.*\)|\w*)(.*)$/.exec(e),n=r?.[1]?r[1].trim():"transparent",i=r?.[2]?r[2].trim():void 0;if(window?.CSS)window.CSS.supports("color",n)||(n="transparent",i=e.trim());else{let l=new Option().style;l.color=n,l.color!==n&&(n="transparent",i=e.trim())}let{wrap:a,cleanedText:s}=this.extractWrap(i);return{text:s?wr(s,ve()):void 0,color:n,wrap:a}}addNote(e,r,n){let i={actor:e,placement:r,message:n.text,wrap:n.wrap??this.autoWrap()},a=[].concat(e,e);this.state.records.notes.push(i),this.state.records.messages.push({id:this.state.records.messages.length.toString(),from:a[0],to:a[1],message:n.text,wrap:n.wrap??this.autoWrap(),type:this.LINETYPE.NOTE,placement:r})}addLinks(e,r){let n=this.getActor(e);try{let i=wr(r.text,ve());i=i.replace(/=/g,"="),i=i.replace(/&/g,"&");let a=JSON.parse(i);this.insertLinks(n,a)}catch(i){K.error("error while parsing actor link text",i)}}addALink(e,r){let n=this.getActor(e);try{let i={},a=wr(r.text,ve()),s=a.indexOf("@");a=a.replace(/=/g,"="),a=a.replace(/&/g,"&");let l=a.slice(0,s-1).trim(),u=a.slice(s+1).trim();i[l]=u,this.insertLinks(n,i)}catch(i){K.error("error while parsing actor link text",i)}}insertLinks(e,r){if(e.links==null)e.links=r;else for(let n in r)e.links[n]=r[n]}addProperties(e,r){let n=this.getActor(e);try{let i=wr(r.text,ve()),a=JSON.parse(i);this.insertProperties(n,a)}catch(i){K.error("error while parsing actor properties text",i)}}insertProperties(e,r){if(e.properties==null)e.properties=r;else for(let n in r)e.properties[n]=r[n]}boxEnd(){this.state.records.currentBox=void 0}addDetails(e,r){let n=this.getActor(e),i=document.getElementById(r.text);try{let a=i.innerHTML,s=JSON.parse(a);s.properties&&this.insertProperties(n,s.properties),s.links&&this.insertLinks(n,s.links)}catch(a){K.error("error while parsing actor details text",a)}}getActorProperty(e,r){if(e?.properties!==void 0)return e.properties[r]}apply(e){if(Array.isArray(e))e.forEach(r=>{this.apply(r)});else switch(e.type){case"sequenceIndex":this.state.records.messages.push({id:this.state.records.messages.length.toString(),from:void 0,to:void 0,message:{start:e.sequenceIndex,step:e.sequenceIndexStep,visible:e.sequenceVisible},wrap:!1,type:e.signalType});break;case"addParticipant":this.addActor(e.actor,e.actor,e.description,e.draw,e.config);break;case"createParticipant":if(this.state.records.actors.has(e.actor))throw new Error("It is not possible to have actors with the same id, even if one is destroyed before the next is created. Use 'AS' aliases to simulate the behavior");this.state.records.lastCreated=e.actor,this.addActor(e.actor,e.actor,e.description,e.draw,e.config),this.state.records.createdActors.set(e.actor,this.state.records.messages.length);break;case"destroyParticipant":this.state.records.lastDestroyed=e.actor,this.state.records.destroyedActors.set(e.actor,this.state.records.messages.length);break;case"activeStart":this.addSignal(e.actor,void 0,void 0,e.signalType);break;case"centralConnection":this.addSignal(e.actor,void 0,void 0,e.signalType);break;case"centralConnectionReverse":this.addSignal(e.actor,void 0,void 0,e.signalType);break;case"activeEnd":this.addSignal(e.actor,void 0,void 0,e.signalType);break;case"addNote":this.addNote(e.actor,e.placement,e.text);break;case"addLinks":this.addLinks(e.actor,e.text);break;case"addALink":this.addALink(e.actor,e.text);break;case"addProperties":this.addProperties(e.actor,e.text);break;case"addDetails":this.addDetails(e.actor,e.text);break;case"addMessage":if(this.state.records.lastCreated){if(e.to!==this.state.records.lastCreated)throw new Error("The created participant "+this.state.records.lastCreated.name+" does not have an associated creating message after its declaration. Please check the sequence diagram.");this.state.records.lastCreated=void 0}else if(this.state.records.lastDestroyed){if(e.to!==this.state.records.lastDestroyed&&e.from!==this.state.records.lastDestroyed)throw new Error("The destroyed participant "+this.state.records.lastDestroyed.name+" does not have an associated destroying message after its declaration. Please check the sequence diagram.");this.state.records.lastDestroyed=void 0}this.addSignal(e.from,e.to,e.msg,e.signalType,e.activate,e.centralConnection);break;case"boxStart":this.addBox(e.boxData);break;case"boxEnd":this.boxEnd();break;case"loopStart":this.addSignal(void 0,void 0,e.loopText,e.signalType);break;case"loopEnd":this.addSignal(void 0,void 0,void 0,e.signalType);break;case"rectStart":this.addSignal(void 0,void 0,e.color,e.signalType);break;case"rectEnd":this.addSignal(void 0,void 0,void 0,e.signalType);break;case"optStart":this.addSignal(void 0,void 0,e.optText,e.signalType);break;case"optEnd":this.addSignal(void 0,void 0,void 0,e.signalType);break;case"altStart":this.addSignal(void 0,void 0,e.altText,e.signalType);break;case"else":this.addSignal(void 0,void 0,e.altText,e.signalType);break;case"altEnd":this.addSignal(void 0,void 0,void 0,e.signalType);break;case"setAccTitle":Lr(e.text);break;case"parStart":this.addSignal(void 0,void 0,e.parText,e.signalType);break;case"and":this.addSignal(void 0,void 0,e.parText,e.signalType);break;case"parEnd":this.addSignal(void 0,void 0,void 0,e.signalType);break;case"criticalStart":this.addSignal(void 0,void 0,e.criticalText,e.signalType);break;case"option":this.addSignal(void 0,void 0,e.optionText,e.signalType);break;case"criticalEnd":this.addSignal(void 0,void 0,void 0,e.signalType);break;case"breakStart":this.addSignal(void 0,void 0,e.breakText,e.signalType);break;case"breakEnd":this.addSignal(void 0,void 0,void 0,e.signalType);break}}getConfig(){return ve().sequence}}});var Flt,Rwe,Lwe=O(()=>{"use strict";Flt=o(t=>`.actor { + stroke: ${t.actorBorder}; + fill: ${t.actorBkg}; + } + + text.actor > tspan { + fill: ${t.actorTextColor}; + stroke: none; + } + + .actor-line { + stroke: ${t.actorLineColor}; + } + + .innerArc { + stroke-width: 1.5; + stroke-dasharray: none; + } + + .messageLine0 { + stroke-width: 1.5; + stroke-dasharray: none; + stroke: ${t.signalColor}; + } + + .messageLine1 { + stroke-width: 1.5; + stroke-dasharray: 2, 2; + stroke: ${t.signalColor}; + } + + #arrowhead path { + fill: ${t.signalColor}; + stroke: ${t.signalColor}; + } + + .sequenceNumber { + fill: ${t.sequenceNumberColor}; + } + + #sequencenumber { + fill: ${t.signalColor}; + } + + #crosshead path { + fill: ${t.signalColor}; + stroke: ${t.signalColor}; + } + + .messageText { + fill: ${t.signalTextColor}; + stroke: none; + } + + .labelBox { + stroke: ${t.labelBoxBorderColor}; + fill: ${t.labelBoxBkgColor}; + } + + .labelText, .labelText > tspan { + fill: ${t.labelTextColor}; + stroke: none; + } + + .loopText, .loopText > tspan { + fill: ${t.loopTextColor}; + stroke: none; + } + + .loopLine { + stroke-width: 2px; + stroke-dasharray: 2, 2; + stroke: ${t.labelBoxBorderColor}; + fill: ${t.labelBoxBorderColor}; + } + + .note { + //stroke: #decc93; + stroke: ${t.noteBorderColor}; + fill: ${t.noteBkgColor}; + } + + .noteText, .noteText > tspan { + fill: ${t.noteTextColor}; + stroke: none; + } + + .activation0 { + fill: ${t.activationBkgColor}; + stroke: ${t.activationBorderColor}; + } + + .activation1 { + fill: ${t.activationBkgColor}; + stroke: ${t.activationBorderColor}; + } + + .activation2 { + fill: ${t.activationBkgColor}; + stroke: ${t.activationBorderColor}; + } + + .actorPopupMenu { + position: absolute; + } + + .actorPopupMenuPanel { + position: absolute; + fill: ${t.actorBkg}; + box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); + filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4)); +} + .actor-man line { + stroke: ${t.actorBorder}; + fill: ${t.actorBkg}; + } + .actor-man circle, line { + stroke: ${t.actorBorder}; + fill: ${t.actorBkg}; + stroke-width: 2px; + } + +`,"getStyles"),Rwe=Flt});var nU,pp,mp,gp,V7,Ym,m3,$lt,q7,g3,jm,Nwe,Qr,iU,zlt,Glt,Vlt,qlt,Ult,Wlt,Hlt,Ylt,jlt,Xlt,Klt,Qlt,Zlt,Mwe,Jlt,ect,tct,rct,nct,ict,act,Iwe,sct,lf,oct,lct,cct,uct,hct,Qn,Owe=O(()=>{"use strict";nU=Ra(Wg(),1);$r();ar();Ur();a0();pp=36,mp="actor-top",gp="actor-bottom",V7="actor-box",Ym="actor-man",m3=o(function(t,e){return i0(t,e)},"drawRect"),$lt=o(function(t,e,r,n,i){if(e.links===void 0||e.links===null||Object.keys(e.links).length===0)return{height:0,width:0};let a=e.links,s=e.actorCnt,l=e.rectData;var u="none";i&&(u="block !important");let h=t.append("g");h.attr("id","actor"+s+"_popup"),h.attr("class","actorPopupMenu"),h.attr("display",u);var f="";l.class!==void 0&&(f=" "+l.class);let d=l.width>r?l.width:r,p=h.append("rect");if(p.attr("class","actorPopupMenuPanel"+f),p.attr("x",l.x),p.attr("y",l.height),p.attr("fill",l.fill),p.attr("stroke",l.stroke),p.attr("width",d),p.attr("height",l.height),p.attr("rx",l.rx),p.attr("ry",l.ry),a!=null){var m=20;for(let v in a){var g=h.append("a"),y=(0,nU.sanitizeUrl)(a[v]);g.attr("xlink:href",y),g.attr("target","_blank"),oct(n)(v,g,l.x+10,l.height+m,d,20,{class:"actor"},n),m+=30}}return p.attr("height",m),{height:l.height+m,width:d}},"drawPopup"),q7=o(function(t){return"var pu = document.getElementById('"+t+"'); if (pu != null) { pu.style.display = pu.style.display == 'block' ? 'none' : 'block'; }"},"popupMenuToggle"),g3=o(async function(t,e,r=null){let n=t.append("foreignObject"),i=await gg(e.text,Zt()),s=n.append("xhtml:div").attr("style","width: fit-content;").attr("xmlns","http://www.w3.org/1999/xhtml").html(i).node().getBoundingClientRect();if(n.attr("height",Math.round(s.height)).attr("width",Math.round(s.width)),e.class==="noteText"){let l=t.node().firstChild;l.setAttribute("height",s.height+2*e.textMargin);let u=l.getBBox();n.attr("x",Math.round(u.x+u.width/2-s.width/2)).attr("y",Math.round(u.y+u.height/2-s.height/2))}else if(r){let{startx:l,stopx:u,starty:h}=r;if(l>u){let f=l;l=u,u=f}n.attr("x",Math.round(l+Math.abs(l-u)/2-s.width/2)),e.class==="loopText"?n.attr("y",Math.round(h)):n.attr("y",Math.round(h-s.height))}return[n]},"drawKatex"),jm=o(function(t,e){let r=0,n=0,i=e.text.split(st.lineBreakRegex),[a,s]=Uo(e.fontSize),l=[],u=0,h=o(()=>e.y,"yfunc");if(e.valign!==void 0&&e.textMargin!==void 0&&e.textMargin>0)switch(e.valign){case"top":case"start":h=o(()=>Math.round(e.y+e.textMargin),"yfunc");break;case"middle":case"center":h=o(()=>Math.round(e.y+(r+n+e.textMargin)/2),"yfunc");break;case"bottom":case"end":h=o(()=>Math.round(e.y+(r+n+2*e.textMargin)-e.textMargin),"yfunc");break}if(e.anchor!==void 0&&e.textMargin!==void 0&&e.width!==void 0)switch(e.anchor){case"left":case"start":e.x=Math.round(e.x+e.textMargin),e.anchor="start",e.dominantBaseline="middle",e.alignmentBaseline="middle";break;case"middle":case"center":e.x=Math.round(e.x+e.width/2),e.anchor="middle",e.dominantBaseline="middle",e.alignmentBaseline="middle";break;case"right":case"end":e.x=Math.round(e.x+e.width-e.textMargin),e.anchor="end",e.dominantBaseline="middle",e.alignmentBaseline="middle";break}for(let[f,d]of i.entries()){e.textMargin!==void 0&&e.textMargin===0&&a!==void 0&&(u=f*a);let p=t.append("text");p.attr("x",e.x),p.attr("y",h()),e.anchor!==void 0&&p.attr("text-anchor",e.anchor).attr("dominant-baseline",e.dominantBaseline).attr("alignment-baseline",e.alignmentBaseline),e.fontFamily!==void 0&&p.style("font-family",e.fontFamily),s!==void 0&&p.style("font-size",s),e.fontWeight!==void 0&&p.style("font-weight",e.fontWeight),e.fill!==void 0&&p.attr("fill",e.fill),e.class!==void 0&&p.attr("class",e.class),e.dy!==void 0?p.attr("dy",e.dy):u!==0&&p.attr("dy",u);let m=d||AN;if(e.tspan){let g=p.append("tspan");g.attr("x",e.x),e.fill!==void 0&&g.attr("fill",e.fill),g.text(m)}else p.text(m);e.valign!==void 0&&e.textMargin!==void 0&&e.textMargin>0&&(n+=(p._groups||p)[0][0].getBBox().height,r=n),l.push(p)}return l},"drawText"),Nwe=o(function(t,e){function r(i,a,s,l,u){return i+","+a+" "+(i+s)+","+a+" "+(i+s)+","+(a+l-u)+" "+(i+s-u*1.2)+","+(a+l)+" "+i+","+(a+l)}o(r,"genPoints");let n=t.append("polygon");return n.attr("points",r(e.x,e.y,e.width,e.height,7)),n.attr("class","labelBox"),e.y=e.y+e.height/2,jm(t,e),n},"drawLabel"),Qr=-1,iU=o((t,e,r,n)=>{t.select&&r.forEach(i=>{let a=e.get(i),s=t.select("#actor"+a.actorCnt);!n.mirrorActors&&a.stopy?s.attr("y2",a.stopy+a.height/2):n.mirrorActors&&s.attr("y2",a.stopy)})},"fixLifeLineHeights"),zlt=o(function(t,e,r,n){let i=n?e.stopy:e.starty,a=e.x+e.width/2,s=i+e.height,l=t.append("g").lower();var u=l;n||(Qr++,Object.keys(e.links||{}).length&&!r.forceMenus&&u.attr("onclick",q7(`actor${Qr}_popup`)).attr("cursor","pointer"),u.append("line").attr("id","actor"+Qr).attr("x1",a).attr("y1",s).attr("x2",a).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",e.name),u=l.append("g"),e.actorCnt=Qr,e.links!=null&&u.attr("id","root-"+Qr));let h=Oa();var f="actor";e.properties?.class?f=e.properties.class:h.fill="#eaeaea",n?f+=` ${gp}`:f+=` ${mp}`,h.x=e.x,h.y=i,h.width=e.width,h.height=e.height,h.class=f,h.rx=3,h.ry=3,h.name=e.name;let d=m3(u,h);if(e.rectData=h,e.properties?.icon){let m=e.properties.icon.trim();m.charAt(0)==="@"?ak(u,h.x+h.width-20,h.y+10,m.substr(1)):ik(u,h.x+h.width-20,h.y+10,m)}lf(r,Jn(e.description))(e.description,u,h.x,h.y,h.width,h.height,{class:`actor ${V7}`},r);let p=e.height;if(d.node){let m=d.node().getBBox();e.height=m.height,p=m.height}return p},"drawActorTypeParticipant"),Glt=o(function(t,e,r,n){let i=n?e.stopy:e.starty,a=e.x+e.width/2,s=i+e.height,l=t.append("g").lower();var u=l;n||(Qr++,Object.keys(e.links||{}).length&&!r.forceMenus&&u.attr("onclick",q7(`actor${Qr}_popup`)).attr("cursor","pointer"),u.append("line").attr("id","actor"+Qr).attr("x1",a).attr("y1",s).attr("x2",a).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",e.name),u=l.append("g"),e.actorCnt=Qr,e.links!=null&&u.attr("id","root-"+Qr));let h=Oa();var f="actor";e.properties?.class?f=e.properties.class:h.fill="#eaeaea",n?f+=` ${gp}`:f+=` ${mp}`,h.x=e.x,h.y=i,h.width=e.width,h.height=e.height,h.class=f,h.name=e.name;let d=6,p={...h,x:h.x+-d,y:h.y+ +d,class:"actor"},m=m3(u,h);if(m3(u,p),e.rectData=h,e.properties?.icon){let y=e.properties.icon.trim();y.charAt(0)==="@"?ak(u,h.x+h.width-20,h.y+10,y.substr(1)):ik(u,h.x+h.width-20,h.y+10,y)}lf(r,Jn(e.description))(e.description,u,h.x-d,h.y+d,h.width,h.height,{class:`actor ${V7}`},r);let g=e.height;if(m.node){let y=m.node().getBBox();e.height=y.height,g=y.height}return g},"drawActorTypeCollections"),Vlt=o(function(t,e,r,n){let i=n?e.stopy:e.starty,a=e.x+e.width/2,s=i+e.height,l=t.append("g").lower(),u=l;n||(Qr++,Object.keys(e.links||{}).length&&!r.forceMenus&&u.attr("onclick",q7(`actor${Qr}_popup`)).attr("cursor","pointer"),u.append("line").attr("id","actor"+Qr).attr("x1",a).attr("y1",s).attr("x2",a).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",e.name),u=l.append("g"),e.actorCnt=Qr,e.links!=null&&u.attr("id","root-"+Qr));let h=Oa(),f="actor";e.properties?.class?f=e.properties.class:h.fill="#eaeaea",n?f+=` ${gp}`:f+=` ${mp}`,h.x=e.x,h.y=i,h.width=e.width,h.height=e.height,h.class=f,h.name=e.name;let d=h.height/2,p=d/(2.5+h.height/50),m=u.append("g"),g=u.append("g");if(m.append("path").attr("d",`M ${h.x},${h.y+d} + a ${p},${d} 0 0 0 0,${h.height} + h ${h.width-2*p} + a ${p},${d} 0 0 0 0,-${h.height} + Z + `).attr("class",f),g.append("path").attr("d",`M ${h.x},${h.y+d} + a ${p},${d} 0 0 0 0,${h.height}`).attr("stroke","#666").attr("stroke-width","1px").attr("class",f),m.attr("transform",`translate(${p}, ${-(h.height/2)})`),g.attr("transform",`translate(${h.width-p}, ${-h.height/2})`),e.rectData=h,e.properties?.icon){let x=e.properties.icon.trim(),b=h.x+h.width-20,T=h.y+10;x.charAt(0)==="@"?ak(u,b,T,x.substr(1)):ik(u,b,T,x)}lf(r,Jn(e.description))(e.description,u,h.x,h.y,h.width,h.height,{class:`actor ${V7}`},r);let y=e.height,v=m.select("path:last-child");if(v.node()){let x=v.node().getBBox();e.height=x.height,y=x.height}return y},"drawActorTypeQueue"),qlt=o(function(t,e,r,n){let i=n?e.stopy:e.starty,a=e.x+e.width/2,s=i+75,l=t.append("g").lower();n||(Qr++,l.append("line").attr("id","actor"+Qr).attr("x1",a).attr("y1",s).attr("x2",a).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",e.name),e.actorCnt=Qr);let u=t.append("g"),h=Ym;n?h+=` ${gp}`:h+=` ${mp}`,u.attr("class",h),u.attr("name",e.name);let f=Oa();f.x=e.x,f.y=i,f.fill="#eaeaea",f.width=e.width,f.height=e.height,f.class="actor";let d=e.x+e.width/2,p=i+32,m=22;u.append("defs").append("marker").attr("id","filled-head-control").attr("refX",11).attr("refY",5.8).attr("markerWidth",20).attr("markerHeight",28).attr("orient","172.5").append("path").attr("d","M 14.4 5.6 L 7.2 10.4 L 8.8 5.6 L 7.2 0.8 Z"),u.append("circle").attr("cx",d).attr("cy",p).attr("r",m).attr("fill","#eaeaf7").attr("stroke","#666").attr("stroke-width",1.2),u.append("line").attr("marker-end","url(#filled-head-control)").attr("transform",`translate(${d}, ${p-m})`);let g=u.node().getBBox();return e.height=g.height+2*(r?.sequence?.labelBoxHeight??0),lf(r,Jn(e.description))(e.description,u,f.x,f.y+m+(n?5:12),f.width,f.height,{class:`actor ${Ym}`},r),e.height},"drawActorTypeControl"),Ult=o(function(t,e,r,n){let i=n?e.stopy:e.starty,a=e.x+e.width/2,s=i+75,l=t.append("g").lower(),u=t.append("g"),h="actor";n?h+=` ${gp}`:h+=` ${mp}`,u.attr("class",h),u.attr("name",e.name);let f=Oa();f.x=e.x,f.y=i,f.fill="#eaeaea",f.width=e.width,f.height=e.height,f.class="actor";let d=e.x+e.width/2,p=i+(n?10:25),m=22;u.append("circle").attr("cx",d).attr("cy",p).attr("r",m).attr("width",e.width).attr("height",e.height),u.append("line").attr("x1",d-m).attr("x2",d+m).attr("y1",p+m).attr("y2",p+m).attr("stroke-width",2);let g=u.node().getBBox();return e.height=g.height+(r?.sequence?.labelBoxHeight??0),n||(Qr++,l.append("line").attr("id","actor"+Qr).attr("x1",a).attr("y1",s).attr("x2",a).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",e.name),e.actorCnt=Qr),lf(r,Jn(e.description))(e.description,u,f.x,f.y+(n?15:30),f.width,f.height,{class:`actor ${Ym}`},r),n?u.attr("transform",`translate(0, ${m})`):u.attr("transform",`translate(0, ${m/2-5})`),e.height},"drawActorTypeEntity"),Wlt=o(function(t,e,r,n){let i=n?e.stopy:e.starty,a=e.x+e.width/2,s=i+e.height+2*r.boxTextMargin,l=t.append("g").lower(),u=l;n||(Qr++,Object.keys(e.links||{}).length&&!r.forceMenus&&u.attr("onclick",q7(`actor${Qr}_popup`)).attr("cursor","pointer"),u.append("line").attr("id","actor"+Qr).attr("x1",a).attr("y1",s).attr("x2",a).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",e.name),u=l.append("g"),e.actorCnt=Qr,e.links!=null&&u.attr("id","root-"+Qr));let h=Oa(),f="actor";e.properties?.class?f=e.properties.class:h.fill="#eaeaea",n?f+=` ${gp}`:f+=` ${mp}`,h.x=e.x,h.y=i,h.width=e.width,h.height=e.height,h.class=f,h.name=e.name,h.x=e.x,h.y=i;let d=h.width/3,p=h.width/3,m=d/2,g=m/(2.5+d/50),y=u.append("g"),v=` + M ${h.x},${h.y+g} + a ${m},${g} 0 0 0 ${d},0 + a ${m},${g} 0 0 0 -${d},0 + l 0,${p-2*g} + a ${m},${g} 0 0 0 ${d},0 + l 0,-${p-2*g} +`;y.append("path").attr("d",v).attr("fill","#eaeaea").attr("stroke","#000").attr("stroke-width",1).attr("class",f),y.attr("transform",`translate(${d}, ${g})`),e.rectData=h,lf(r,Jn(e.description))(e.description,u,h.x,h.y+35,h.width,h.height,{class:`actor ${V7}`},r);let x=y.select("path:last-child");if(x.node()){let b=x.node().getBBox();e.height=b.height+(r.sequence.labelBoxHeight??0)}return e.height},"drawActorTypeDatabase"),Hlt=o(function(t,e,r,n){let i=n?e.stopy:e.starty,a=e.x+e.width/2,s=i+80,l=22,u=t.append("g").lower();n||(Qr++,u.append("line").attr("id","actor"+Qr).attr("x1",a).attr("y1",s).attr("x2",a).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",e.name),e.actorCnt=Qr);let h=t.append("g"),f=Ym;n?f+=` ${gp}`:f+=` ${mp}`,h.attr("class",f),h.attr("name",e.name);let d=Oa();d.x=e.x,d.y=i,d.fill="#eaeaea",d.width=e.width,d.height=e.height,d.class="actor",h.append("line").attr("id","actor-man-torso"+Qr).attr("x1",e.x+e.width/2-l*2.5).attr("y1",i+12).attr("x2",e.x+e.width/2-15).attr("y2",i+12),h.append("line").attr("id","actor-man-arms"+Qr).attr("x1",e.x+e.width/2-l*2.5).attr("y1",i+2).attr("x2",e.x+e.width/2-l*2.5).attr("y2",i+22),h.append("circle").attr("cx",e.x+e.width/2).attr("cy",i+12).attr("r",l);let p=h.node().getBBox();return e.height=p.height+(r.sequence.labelBoxHeight??0),lf(r,Jn(e.description))(e.description,h,d.x,d.y+15,d.width,d.height,{class:`actor ${Ym}`},r),n?h.attr("transform",`translate(0,${l/2+10})`):h.attr("transform",`translate(0,${l/2+10})`),e.height},"drawActorTypeBoundary"),Ylt=o(function(t,e,r,n){let i=n?e.stopy:e.starty,a=e.x+e.width/2,s=i+80,l=t.append("g").lower();n||(Qr++,l.append("line").attr("id","actor"+Qr).attr("x1",a).attr("y1",s).attr("x2",a).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",e.name),e.actorCnt=Qr);let u=t.append("g"),h=Ym;n?h+=` ${gp}`:h+=` ${mp}`,u.attr("class",h),u.attr("name",e.name);let f=Oa();f.x=e.x,f.y=i,f.fill="#eaeaea",f.width=e.width,f.height=e.height,f.class="actor",f.rx=3,f.ry=3,u.append("line").attr("id","actor-man-torso"+Qr).attr("x1",a).attr("y1",i+25).attr("x2",a).attr("y2",i+45),u.append("line").attr("id","actor-man-arms"+Qr).attr("x1",a-pp/2).attr("y1",i+33).attr("x2",a+pp/2).attr("y2",i+33),u.append("line").attr("x1",a-pp/2).attr("y1",i+60).attr("x2",a).attr("y2",i+45),u.append("line").attr("x1",a).attr("y1",i+45).attr("x2",a+pp/2-2).attr("y2",i+60);let d=u.append("circle");d.attr("cx",e.x+e.width/2),d.attr("cy",i+10),d.attr("r",15),d.attr("width",e.width),d.attr("height",e.height);let p=u.node().getBBox();return e.height=p.height,lf(r,Jn(e.description))(e.description,u,f.x,f.y+35,f.width,f.height,{class:`actor ${Ym}`},r),e.height},"drawActorTypeActor"),jlt=o(async function(t,e,r,n){switch(e.type){case"actor":return await Ylt(t,e,r,n);case"participant":return await zlt(t,e,r,n);case"boundary":return await Hlt(t,e,r,n);case"control":return await qlt(t,e,r,n);case"entity":return await Ult(t,e,r,n);case"database":return await Wlt(t,e,r,n);case"collections":return await Glt(t,e,r,n);case"queue":return await Vlt(t,e,r,n)}},"drawActor"),Xlt=o(function(t,e,r){let i=t.append("g");Mwe(i,e),e.name&&lf(r)(e.name,i,e.x,e.y+r.boxTextMargin+(e.textMaxHeight||0)/2,e.width,0,{class:"text"},r),i.lower()},"drawBox"),Klt=o(function(t){return t.append("g")},"anchorElement"),Qlt=o(function(t,e,r,n,i){let a=Oa(),s=e.anchored;a.x=e.startx,a.y=e.starty,a.class="activation"+i%3,a.width=e.stopx-e.startx,a.height=r-e.starty,m3(s,a)},"drawActivation"),Zlt=o(async function(t,e,r,n){let{boxMargin:i,boxTextMargin:a,labelBoxHeight:s,labelBoxWidth:l,messageFontFamily:u,messageFontSize:h,messageFontWeight:f}=n,d=t.append("g"),p=o(function(y,v,x,b){return d.append("line").attr("x1",y).attr("y1",v).attr("x2",x).attr("y2",b).attr("class","loopLine")},"drawLoopLine");p(e.startx,e.starty,e.stopx,e.starty),p(e.stopx,e.starty,e.stopx,e.stopy),p(e.startx,e.stopy,e.stopx,e.stopy),p(e.startx,e.starty,e.startx,e.stopy),e.sections!==void 0&&e.sections.forEach(function(y){p(e.startx,y.y,e.stopx,y.y).style("stroke-dasharray","3, 3")});let m=Fx();m.text=r,m.x=e.startx,m.y=e.starty,m.fontFamily=u,m.fontSize=h,m.fontWeight=f,m.anchor="middle",m.valign="middle",m.tspan=!1,m.width=l||50,m.height=s||20,m.textMargin=a,m.class="labelText",Nwe(d,m),m=Iwe(),m.text=e.title,m.x=e.startx+l/2+(e.stopx-e.startx)/2,m.y=e.starty+i+a,m.anchor="middle",m.valign="middle",m.textMargin=a,m.class="loopText",m.fontFamily=u,m.fontSize=h,m.fontWeight=f,m.wrap=!0;let g=Jn(m.text)?await g3(d,m,e):jm(d,m);if(e.sectionTitles!==void 0){for(let[y,v]of Object.entries(e.sectionTitles))if(v.message){m.text=v.message,m.x=e.startx+(e.stopx-e.startx)/2,m.y=e.sections[y].y+i+a,m.class="loopText",m.anchor="middle",m.valign="middle",m.tspan=!1,m.fontFamily=u,m.fontSize=h,m.fontWeight=f,m.wrap=e.wrap,Jn(m.text)?(e.starty=e.sections[y].y,await g3(d,m,e)):jm(d,m);let x=Math.round(g.map(b=>(b._groups||b)[0][0].getBBox().height).reduce((b,T)=>b+T));e.sections[y].height+=x-(i+a)}}return e.height=Math.round(e.stopy-e.starty),d},"drawLoop"),Mwe=o(function(t,e){nk(t,e)},"drawBackgroundRect"),Jlt=o(function(t){t.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},"insertDatabaseIcon"),ect=o(function(t){t.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},"insertComputerIcon"),tct=o(function(t){t.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},"insertClockIcon"),rct=o(function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",7.9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto-start-reverse").append("path").attr("d","M -1 0 L 10 5 L 0 10 z")},"insertArrowHead"),nct=o(function(t){t.append("defs").append("marker").attr("id","filled-head").attr("refX",15.5).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"insertArrowFilledHead"),ict=o(function(t){t.append("defs").append("marker").attr("id","sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)},"insertSequenceNumber"),act=o(function(t){t.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",4).attr("refY",4.5).append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1pt").attr("d","M 1,2 L 6,7 M 6,2 L 1,7")},"insertArrowCrossHead"),Iwe=o(function(){return{x:0,y:0,fill:void 0,anchor:void 0,style:"#666",width:void 0,height:void 0,textMargin:0,rx:0,ry:0,tspan:!0,valign:void 0}},"getTextObj"),sct=o(function(){return{x:0,y:0,fill:"#EDF2AE",stroke:"#666",width:100,anchor:"start",height:100,rx:0,ry:0}},"getNoteRect"),lf=(function(){function t(a,s,l,u,h,f,d){let p=s.append("text").attr("x",l+h/2).attr("y",u+f/2+5).style("text-anchor","middle").text(a);i(p,d)}o(t,"byText");function e(a,s,l,u,h,f,d,p){let{actorFontSize:m,actorFontFamily:g,actorFontWeight:y}=p,[v,x]=Uo(m),b=a.split(st.lineBreakRegex);for(let T=0;T{let s=Xm(Ve),l=a.actorKeys.reduce((d,p)=>d+=t.get(p).width+(t.get(p).margin||0),0),u=Ve.boxMargin*8;l+=u,l-=2*Ve.boxTextMargin,a.wrap&&(a.name=Xt.wrapLabel(a.name,l-2*Ve.wrapPadding,s));let h=Xt.calculateTextDimensions(a.name,s);i=st.getMax(h.height,i);let f=st.getMax(l,h.width+2*Ve.wrapPadding);if(a.margin=Ve.boxTextMargin,la.textMaxHeight=i),st.getMax(n,Ve.height)}var Ve,ut,fct,dct,Xm,Bv,aU,mct,gct,sU,Fwe,$we,U7,Pwe,vct,bct,wct,kct,Ect,Bwe,Sct,zwe,Cct,Act,_ct,Gwe,Vwe=O(()=>{"use strict";Ar();Owe();xt();Ur();Ur();a0();jt();sg();ar();Ti();rU();Ve={},ut={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],activations:[],models:{getHeight:o(function(){return Math.max.apply(null,this.actors.length===0?[0]:this.actors.map(t=>t.height||0))+(this.loops.length===0?0:this.loops.map(t=>t.height||0).reduce((t,e)=>t+e))+(this.messages.length===0?0:this.messages.map(t=>t.height||0).reduce((t,e)=>t+e))+(this.notes.length===0?0:this.notes.map(t=>t.height||0).reduce((t,e)=>t+e))},"getHeight"),clear:o(function(){this.actors=[],this.boxes=[],this.loops=[],this.messages=[],this.notes=[]},"clear"),addBox:o(function(t){this.boxes.push(t)},"addBox"),addActor:o(function(t){this.actors.push(t)},"addActor"),addLoop:o(function(t){this.loops.push(t)},"addLoop"),addMessage:o(function(t){this.messages.push(t)},"addMessage"),addNote:o(function(t){this.notes.push(t)},"addNote"),lastActor:o(function(){return this.actors[this.actors.length-1]},"lastActor"),lastLoop:o(function(){return this.loops[this.loops.length-1]},"lastLoop"),lastMessage:o(function(){return this.messages[this.messages.length-1]},"lastMessage"),lastNote:o(function(){return this.notes[this.notes.length-1]},"lastNote"),actors:[],boxes:[],loops:[],messages:[],notes:[]},init:o(function(){this.sequenceItems=[],this.activations=[],this.models.clear(),this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0,$we(ve())},"init"),updateVal:o(function(t,e,r,n){t[e]===void 0?t[e]=r:t[e]=n(r,t[e])},"updateVal"),updateBounds:o(function(t,e,r,n){let i=this,a=0;function s(l){return o(function(h){a++;let f=i.sequenceItems.length-a+1;i.updateVal(h,"starty",e-f*Ve.boxMargin,Math.min),i.updateVal(h,"stopy",n+f*Ve.boxMargin,Math.max),i.updateVal(ut.data,"startx",t-f*Ve.boxMargin,Math.min),i.updateVal(ut.data,"stopx",r+f*Ve.boxMargin,Math.max),l!=="activation"&&(i.updateVal(h,"startx",t-f*Ve.boxMargin,Math.min),i.updateVal(h,"stopx",r+f*Ve.boxMargin,Math.max),i.updateVal(ut.data,"starty",e-f*Ve.boxMargin,Math.min),i.updateVal(ut.data,"stopy",n+f*Ve.boxMargin,Math.max))},"updateItemBounds")}o(s,"updateFn"),this.sequenceItems.forEach(s()),this.activations.forEach(s("activation"))},"updateBounds"),insert:o(function(t,e,r,n){let i=st.getMin(t,r),a=st.getMax(t,r),s=st.getMin(e,n),l=st.getMax(e,n);this.updateVal(ut.data,"startx",i,Math.min),this.updateVal(ut.data,"starty",s,Math.min),this.updateVal(ut.data,"stopx",a,Math.max),this.updateVal(ut.data,"stopy",l,Math.max),this.updateBounds(i,s,a,l)},"insert"),newActivation:o(function(t,e,r){let n=r.get(t.from),i=U7(t.from).length||0,a=n.x+n.width/2+(i-1)*Ve.activationWidth/2;this.activations.push({startx:a,starty:this.verticalPos+2,stopx:a+Ve.activationWidth,stopy:void 0,actor:t.from,anchored:Qn.anchorElement(e)})},"newActivation"),endActivation:o(function(t){let e=this.activations.map(function(r){return r.actor}).lastIndexOf(t.from);return this.activations.splice(e,1)[0]},"endActivation"),createLoop:o(function(t={message:void 0,wrap:!1,width:void 0},e){return{startx:void 0,starty:this.verticalPos,stopx:void 0,stopy:void 0,title:t.message,wrap:t.wrap,width:t.width,height:0,fill:e}},"createLoop"),newLoop:o(function(t={message:void 0,wrap:!1,width:void 0},e){this.sequenceItems.push(this.createLoop(t,e))},"newLoop"),endLoop:o(function(){return this.sequenceItems.pop()},"endLoop"),isLoopOverlap:o(function(){return this.sequenceItems.length?this.sequenceItems[this.sequenceItems.length-1].overlap:!1},"isLoopOverlap"),addSectionToLoop:o(function(t){let e=this.sequenceItems.pop();e.sections=e.sections||[],e.sectionTitles=e.sectionTitles||[],e.sections.push({y:ut.getVerticalPos(),height:0}),e.sectionTitles.push(t),this.sequenceItems.push(e)},"addSectionToLoop"),saveVerticalPos:o(function(){this.isLoopOverlap()&&(this.savedVerticalPos=this.verticalPos)},"saveVerticalPos"),resetVerticalPos:o(function(){this.isLoopOverlap()&&(this.verticalPos=this.savedVerticalPos)},"resetVerticalPos"),bumpVerticalPos:o(function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=st.getMax(this.data.stopy,this.verticalPos)},"bumpVerticalPos"),getVerticalPos:o(function(){return this.verticalPos},"getVerticalPos"),getBounds:o(function(){return{bounds:this.data,models:this.models}},"getBounds")},fct=o(async function(t,e){ut.bumpVerticalPos(Ve.boxMargin),e.height=Ve.boxMargin,e.starty=ut.getVerticalPos();let r=Oa();r.x=e.startx,r.y=e.starty,r.width=e.width||Ve.width,r.class="note";let n=t.append("g"),i=Qn.drawRect(n,r),a=Fx();a.x=e.startx,a.y=e.starty,a.width=r.width,a.dy="1em",a.text=e.message,a.class="noteText",a.fontFamily=Ve.noteFontFamily,a.fontSize=Ve.noteFontSize,a.fontWeight=Ve.noteFontWeight,a.anchor=Ve.noteAlign,a.textMargin=Ve.noteMargin,a.valign="center";let s=Jn(a.text)?await g3(n,a):jm(n,a),l=Math.round(s.map(u=>(u._groups||u)[0][0].getBBox().height).reduce((u,h)=>u+h));i.attr("height",l+2*Ve.noteMargin),e.height+=l+2*Ve.noteMargin,ut.bumpVerticalPos(l+2*Ve.noteMargin),e.stopy=e.starty+l+2*Ve.noteMargin,e.stopx=e.startx+r.width,ut.insert(e.startx,e.starty,e.stopx,e.stopy),ut.models.addNote(e)},"drawNote"),dct=o(function(t,e,r,n,i,a,s){let l=n.db.getActors(),u=l.get(e.from),h=l.get(e.to),f=r.sequenceVisible,d=u.x+u.width/2,p=h.x+h.width/2,m=d<=p,g=zwe(e,n),y=t.append("g"),v=16.5,x=o((k,S)=>{let A=k?v:-v;return S?-A:A},"getCircleOffset"),b=o(k=>{y.append("circle").attr("cx",k).attr("cy",s).attr("r",5).attr("width",10).attr("height",10)},"drawCircle"),{CENTRAL_CONNECTION:T,CENTRAL_CONNECTION_REVERSE:E,CENTRAL_CONNECTION_DUAL:w}=n.db.LINETYPE;if(f)switch(e.centralConnection){case T:g&&(p+=x(m,!0));break;case E:g||(d+=x(m,!1));break;case w:g?p+=x(m,!0):d+=x(m,!1);break}switch(e.centralConnection){case T:b(p);break;case E:b(d);break;case w:b(d),b(p);break}},"drawCentralConnection"),Xm=o(t=>({fontFamily:t.messageFontFamily,fontSize:t.messageFontSize,fontWeight:t.messageFontWeight}),"messageFont"),Bv=o(t=>({fontFamily:t.noteFontFamily,fontSize:t.noteFontSize,fontWeight:t.noteFontWeight}),"noteFont"),aU=o(t=>({fontFamily:t.actorFontFamily,fontSize:t.actorFontSize,fontWeight:t.actorFontWeight}),"actorFont");o(pct,"boundMessage");mct=o(async function(t,e,r,n,i){let{startx:a,stopx:s,starty:l,message:u,type:h,sequenceIndex:f,sequenceVisible:d}=e,p=Xt.calculateTextDimensions(u,Xm(Ve)),m=Fx();m.x=a,m.y=l+10,m.width=s-a,m.class="messageText",m.dy="1em",m.text=u,m.fontFamily=Ve.messageFontFamily,m.fontSize=Ve.messageFontSize,m.fontWeight=Ve.messageFontWeight,m.anchor=Ve.messageAlign,m.valign="center",m.textMargin=Ve.wrapPadding,m.tspan=!1,Jn(m.text)?await g3(t,m,{startx:a,stopx:s,starty:r}):jm(t,m);let g=p.width,y;if(a===s){let x=d||Ve.showSequenceNumbers,b=zwe(i,n),T=Cct(i,n),E=a+(x&&(b||T)?10:0);Ve.rightAngles?y=t.append("path").attr("d",`M ${E},${r} H ${a+st.getMax(Ve.width/2,g/2)} V ${r+25} H ${a}`):y=t.append("path").attr("d","M "+E+","+r+" C "+(E+60)+","+(r-10)+" "+(a+60)+","+(r+30)+" "+a+","+(r+20))}else y=t.append("line"),y.attr("x1",a),y.attr("y1",r),y.attr("x2",s),y.attr("y2",r),Bwe(i,n)&&dct(t,i,e,n,a,s,r);h===n.db.LINETYPE.DOTTED||h===n.db.LINETYPE.DOTTED_CROSS||h===n.db.LINETYPE.DOTTED_POINT||h===n.db.LINETYPE.DOTTED_OPEN||h===n.db.LINETYPE.BIDIRECTIONAL_DOTTED||h===n.db.LINETYPE.SOLID_TOP_DOTTED||h===n.db.LINETYPE.SOLID_BOTTOM_DOTTED||h===n.db.LINETYPE.STICK_TOP_DOTTED||h===n.db.LINETYPE.STICK_BOTTOM_DOTTED||h===n.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED||h===n.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED||h===n.db.LINETYPE.STICK_ARROW_TOP_REVERSE_DOTTED||h===n.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE_DOTTED?(y.style("stroke-dasharray","3, 3"),y.attr("class","messageLine1")):y.attr("class","messageLine0");let v="";if(Ve.arrowMarkerAbsolute&&(v=Op(!0)),y.attr("stroke-width",2),y.attr("stroke","none"),y.style("fill","none"),(h===n.db.LINETYPE.SOLID_TOP||h===n.db.LINETYPE.SOLID_TOP_DOTTED)&&y.attr("marker-end","url("+v+"#solidTopArrowHead)"),(h===n.db.LINETYPE.SOLID_BOTTOM||h===n.db.LINETYPE.SOLID_BOTTOM_DOTTED)&&y.attr("marker-end","url("+v+"#solidBottomArrowHead)"),(h===n.db.LINETYPE.STICK_TOP||h===n.db.LINETYPE.STICK_TOP_DOTTED)&&y.attr("marker-end","url("+v+"#stickTopArrowHead)"),(h===n.db.LINETYPE.STICK_BOTTOM||h===n.db.LINETYPE.STICK_BOTTOM_DOTTED)&&y.attr("marker-end","url("+v+"#stickBottomArrowHead)"),(h===n.db.LINETYPE.SOLID_ARROW_TOP_REVERSE||h===n.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED)&&y.attr("marker-start","url("+v+"#solidBottomArrowHead)"),(h===n.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE||h===n.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED)&&y.attr("marker-start","url("+v+"#solidTopArrowHead)"),(h===n.db.LINETYPE.STICK_ARROW_TOP_REVERSE||h===n.db.LINETYPE.STICK_ARROW_TOP_REVERSE_DOTTED)&&y.attr("marker-start","url("+v+"#stickBottomArrowHead)"),(h===n.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE||h===n.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE_DOTTED)&&y.attr("marker-start","url("+v+"#stickTopArrowHead)"),(h===n.db.LINETYPE.SOLID||h===n.db.LINETYPE.DOTTED)&&y.attr("marker-end","url("+v+"#arrowhead)"),(h===n.db.LINETYPE.BIDIRECTIONAL_SOLID||h===n.db.LINETYPE.BIDIRECTIONAL_DOTTED)&&(y.attr("marker-start","url("+v+"#arrowhead)"),y.attr("marker-end","url("+v+"#arrowhead)")),(h===n.db.LINETYPE.SOLID_POINT||h===n.db.LINETYPE.DOTTED_POINT)&&y.attr("marker-end","url("+v+"#filled-head)"),(h===n.db.LINETYPE.SOLID_CROSS||h===n.db.LINETYPE.DOTTED_CROSS)&&y.attr("marker-end","url("+v+"#crosshead)"),d||Ve.showSequenceNumbers){let x=h===n.db.LINETYPE.BIDIRECTIONAL_SOLID||h===n.db.LINETYPE.BIDIRECTIONAL_DOTTED,b=h===n.db.LINETYPE.SOLID_ARROW_TOP_REVERSE||h===n.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED||h===n.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE||h===n.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED||h===n.db.LINETYPE.STICK_ARROW_TOP_REVERSE||h===n.db.LINETYPE.STICK_ARROW_TOP_REVERSE_DOTTED||h===n.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE||h===n.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE_DOTTED,T=6,E=Bwe(i,n),w=a,k=s;x?(aa?k=s-2*T:(k=s-T,w+=i?.centralConnection===n.db.LINETYPE.CENTRAL_CONNECTION_DUAL||i?.centralConnection===n.db.LINETYPE.CENTRAL_CONNECTION_REVERSE?-7.5:0),k+=E?15:0,y.attr("x2",k),y.attr("x1",w)):y.attr("x1",a+T);let S=0,A=a===s,L=a<=s;A?S=e.fromBounds+1:b?S=L?e.toBounds-1:e.fromBounds+1:S=L?e.fromBounds+1:e.toBounds-1,t.append("line").attr("x1",S).attr("y1",r).attr("x2",S).attr("y2",r).attr("stroke-width",0).attr("marker-start","url("+v+"#sequencenumber)"),t.append("text").attr("x",S).attr("y",r+4).attr("font-family","sans-serif").attr("font-size","12px").attr("text-anchor","middle").attr("class","sequenceNumber").text(f)}},"drawMessage"),gct=o(function(t,e,r,n,i,a,s){let l=0,u=0,h,f=0;for(let d of n){let p=e.get(d),m=p.box;h&&h!=m&&(s||ut.models.addBox(h),u+=Ve.boxMargin+h.margin),m&&m!=h&&(s||(m.x=l+u,m.y=i),u+=m.margin),p.width=p.width||Ve.width,p.height=st.getMax(p.height||Ve.height,Ve.height),p.margin=p.margin||Ve.actorMargin,f=st.getMax(f,p.height),r.get(p.name)&&(u+=p.width/2),p.x=l+u,p.starty=ut.getVerticalPos(),ut.insert(p.x,i,p.x+p.width,p.height),l+=p.width+u,p.box&&(p.box.width=l+m.margin-p.box.x),u=p.margin,h=p.box,ut.models.addActor(p)}h&&!s&&ut.models.addBox(h),ut.bumpVerticalPos(f)},"addActorRenderingData"),sU=o(async function(t,e,r,n){if(n){let i=0;ut.bumpVerticalPos(Ve.boxMargin*2);for(let a of r){let s=e.get(a);s.stopy||(s.stopy=ut.getVerticalPos());let l=await Qn.drawActor(t,s,Ve,!0);i=st.getMax(i,l)}ut.bumpVerticalPos(i+Ve.boxMargin)}else for(let i of r){let a=e.get(i);await Qn.drawActor(t,a,Ve,!1)}},"drawActors"),Fwe=o(function(t,e,r,n){let i=0,a=0;for(let s of r){let l=e.get(s),u=bct(l),h=Qn.drawPopup(t,l,u,Ve,Ve.forceMenus,n);h.height>i&&(i=h.height),h.width+l.x>a&&(a=h.width+l.x)}return{maxHeight:i,maxWidth:a}},"drawActorsPopup"),$we=o(function(t){Vn(Ve,t),t.fontFamily&&(Ve.actorFontFamily=Ve.noteFontFamily=Ve.messageFontFamily=t.fontFamily),t.fontSize&&(Ve.actorFontSize=Ve.noteFontSize=Ve.messageFontSize=t.fontSize),t.fontWeight&&(Ve.actorFontWeight=Ve.noteFontWeight=Ve.messageFontWeight=t.fontWeight)},"setConf"),U7=o(function(t){return ut.activations.filter(function(e){return e.actor===t})},"actorActivations"),Pwe=o(function(t,e){let r=e.get(t),n=U7(t),i=n.reduce(function(s,l){return st.getMin(s,l.startx)},r.x+r.width/2-1),a=n.reduce(function(s,l){return st.getMax(s,l.stopx)},r.x+r.width/2+1);return[i,a]},"activationBounds");o(Qu,"adjustLoopHeightForWrap");o(yct,"adjustCreatedDestroyedData");vct=o(async function(t,e,r,n){let{securityLevel:i,sequence:a}=ve();Ve=a;let s;i==="sandbox"&&(s=je("#i"+e));let l=i==="sandbox"?je(s.nodes()[0].contentDocument.body):je("body"),u=i==="sandbox"?s.nodes()[0].contentDocument:document;ut.init(),K.debug(n.db);let h=i==="sandbox"?l.select(`[id="${e}"]`):je(`[id="${e}"]`),f=n.db.getActors(),d=n.db.getCreatedActors(),p=n.db.getDestroyedActors(),m=n.db.getBoxes(),g=n.db.getActorKeys(),y=n.db.getMessages(),v=n.db.getDiagramTitle(),x=n.db.hasAtLeastOneBox(),b=n.db.hasAtLeastOneBoxWithTitle(),T=await xct(f,y,n);if(Ve.height=await Tct(f,T,m),Qn.insertComputerIcon(h),Qn.insertDatabaseIcon(h),Qn.insertClockIcon(h),x&&(ut.bumpVerticalPos(Ve.boxMargin),b&&ut.bumpVerticalPos(m[0].textMaxHeight)),Ve.hideUnusedParticipants===!0){let B=new Set;y.forEach(F=>{B.add(F.from),B.add(F.to)}),g=g.filter(F=>B.has(F))}gct(h,f,d,g,0,y,!1);let E=await _ct(y,f,T,n);Qn.insertArrowHead(h),Qn.insertArrowCrossHead(h),Qn.insertArrowFilledHead(h),Qn.insertSequenceNumber(h),Qn.insertSolidTopArrowHead(h),Qn.insertSolidBottomArrowHead(h),Qn.insertStickTopArrowHead(h),Qn.insertStickBottomArrowHead(h);function w(B,F){let G=ut.endActivation(B);G.starty+18>F&&(G.starty=F-6,F+=12),Qn.drawActivation(h,G,F,Ve,U7(B.from).length),ut.insert(G.startx,F-10,G.stopx,F)}o(w,"activeEnd");let k=1,S=1,A=[],L=[],I=0;for(let B of y){let F,G,$;switch(B.type){case n.db.LINETYPE.NOTE:ut.resetVerticalPos(),G=B.noteModel,await fct(h,G);break;case n.db.LINETYPE.ACTIVE_START:ut.newActivation(B,h,f);break;case n.db.LINETYPE.CENTRAL_CONNECTION:ut.newActivation(B,h,f);break;case n.db.LINETYPE.CENTRAL_CONNECTION_REVERSE:ut.newActivation(B,h,f);break;case n.db.LINETYPE.ACTIVE_END:w(B,ut.getVerticalPos());break;case n.db.LINETYPE.LOOP_START:Qu(E,B,Ve.boxMargin,Ve.boxMargin+Ve.boxTextMargin,V=>ut.newLoop(V));break;case n.db.LINETYPE.LOOP_END:F=ut.endLoop(),await Qn.drawLoop(h,F,"loop",Ve),ut.bumpVerticalPos(F.stopy-ut.getVerticalPos()),ut.models.addLoop(F);break;case n.db.LINETYPE.RECT_START:Qu(E,B,Ve.boxMargin,Ve.boxMargin,V=>ut.newLoop(void 0,V.message));break;case n.db.LINETYPE.RECT_END:F=ut.endLoop(),L.push(F),ut.models.addLoop(F),ut.bumpVerticalPos(F.stopy-ut.getVerticalPos());break;case n.db.LINETYPE.OPT_START:Qu(E,B,Ve.boxMargin,Ve.boxMargin+Ve.boxTextMargin,V=>ut.newLoop(V));break;case n.db.LINETYPE.OPT_END:F=ut.endLoop(),await Qn.drawLoop(h,F,"opt",Ve),ut.bumpVerticalPos(F.stopy-ut.getVerticalPos()),ut.models.addLoop(F);break;case n.db.LINETYPE.ALT_START:Qu(E,B,Ve.boxMargin,Ve.boxMargin+Ve.boxTextMargin,V=>ut.newLoop(V));break;case n.db.LINETYPE.ALT_ELSE:Qu(E,B,Ve.boxMargin+Ve.boxTextMargin,Ve.boxMargin,V=>ut.addSectionToLoop(V));break;case n.db.LINETYPE.ALT_END:F=ut.endLoop(),await Qn.drawLoop(h,F,"alt",Ve),ut.bumpVerticalPos(F.stopy-ut.getVerticalPos()),ut.models.addLoop(F);break;case n.db.LINETYPE.PAR_START:case n.db.LINETYPE.PAR_OVER_START:Qu(E,B,Ve.boxMargin,Ve.boxMargin+Ve.boxTextMargin,V=>ut.newLoop(V)),ut.saveVerticalPos();break;case n.db.LINETYPE.PAR_AND:Qu(E,B,Ve.boxMargin+Ve.boxTextMargin,Ve.boxMargin,V=>ut.addSectionToLoop(V));break;case n.db.LINETYPE.PAR_END:F=ut.endLoop(),await Qn.drawLoop(h,F,"par",Ve),ut.bumpVerticalPos(F.stopy-ut.getVerticalPos()),ut.models.addLoop(F);break;case n.db.LINETYPE.AUTONUMBER:k=B.message.start||k,S=B.message.step||S,B.message.visible?n.db.enableSequenceNumbers():n.db.disableSequenceNumbers();break;case n.db.LINETYPE.CRITICAL_START:Qu(E,B,Ve.boxMargin,Ve.boxMargin+Ve.boxTextMargin,V=>ut.newLoop(V));break;case n.db.LINETYPE.CRITICAL_OPTION:Qu(E,B,Ve.boxMargin+Ve.boxTextMargin,Ve.boxMargin,V=>ut.addSectionToLoop(V));break;case n.db.LINETYPE.CRITICAL_END:F=ut.endLoop(),await Qn.drawLoop(h,F,"critical",Ve),ut.bumpVerticalPos(F.stopy-ut.getVerticalPos()),ut.models.addLoop(F);break;case n.db.LINETYPE.BREAK_START:Qu(E,B,Ve.boxMargin,Ve.boxMargin+Ve.boxTextMargin,V=>ut.newLoop(V));break;case n.db.LINETYPE.BREAK_END:F=ut.endLoop(),await Qn.drawLoop(h,F,"break",Ve),ut.bumpVerticalPos(F.stopy-ut.getVerticalPos()),ut.models.addLoop(F);break;default:try{$=B.msgModel,$.starty=ut.getVerticalPos(),$.sequenceIndex=k,$.sequenceVisible=n.db.showSequenceNumbers();let V=await pct(h,$);yct(B,$,V,I,f,d,p),A.push({messageModel:$,lineStartY:V,msg:B}),ut.models.addMessage($)}catch(V){K.error("error while drawing message",V)}}[n.db.LINETYPE.SOLID_OPEN,n.db.LINETYPE.DOTTED_OPEN,n.db.LINETYPE.SOLID,n.db.LINETYPE.SOLID_TOP,n.db.LINETYPE.SOLID_BOTTOM,n.db.LINETYPE.STICK_TOP,n.db.LINETYPE.STICK_BOTTOM,n.db.LINETYPE.SOLID_TOP_DOTTED,n.db.LINETYPE.SOLID_BOTTOM_DOTTED,n.db.LINETYPE.STICK_TOP_DOTTED,n.db.LINETYPE.STICK_BOTTOM_DOTTED,n.db.LINETYPE.SOLID_ARROW_TOP_REVERSE,n.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE,n.db.LINETYPE.STICK_ARROW_TOP_REVERSE,n.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE,n.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED,n.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED,n.db.LINETYPE.STICK_ARROW_TOP_REVERSE_DOTTED,n.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE_DOTTED,n.db.LINETYPE.DOTTED,n.db.LINETYPE.SOLID_CROSS,n.db.LINETYPE.DOTTED_CROSS,n.db.LINETYPE.SOLID_POINT,n.db.LINETYPE.DOTTED_POINT,n.db.LINETYPE.BIDIRECTIONAL_SOLID,n.db.LINETYPE.BIDIRECTIONAL_DOTTED].includes(B.type)&&(k=k+S),I++}K.debug("createdActors",d),K.debug("destroyedActors",p),await sU(h,f,g,!1);for(let B of A)await mct(h,B.messageModel,B.lineStartY,n,B.msg);Ve.mirrorActors&&await sU(h,f,g,!0),L.forEach(B=>Qn.drawBackgroundRect(h,B)),iU(h,f,g,Ve);for(let B of ut.models.boxes){B.height=ut.getVerticalPos()-B.y,ut.insert(B.x,B.y,B.x+B.width,B.height);let F=Ve.boxMargin*2;B.startx=B.x-F,B.starty=B.y-F*.25,B.stopx=B.startx+B.width+2*F,B.stopy=B.starty+B.height+F*.75,B.stroke="rgb(0,0,0, 0.5)",Qn.drawBox(h,B,Ve)}x&&ut.bumpVerticalPos(Ve.boxMargin);let N=Fwe(h,f,g,u),{bounds:C}=ut.getBounds();C.startx===void 0&&(C.startx=0),C.starty===void 0&&(C.starty=0),C.stopx===void 0&&(C.stopx=0),C.stopy===void 0&&(C.stopy=0);let _=C.stopy-C.starty;_2,d=o(y=>l?-y:y,"adjustValue");t.from===t.to?h=u:(t.activate&&!f&&(h+=d(Ve.activationWidth/2-1)),[r.db.LINETYPE.SOLID_OPEN,r.db.LINETYPE.DOTTED_OPEN,r.db.LINETYPE.STICK_TOP,r.db.LINETYPE.STICK_BOTTOM,r.db.LINETYPE.STICK_TOP_DOTTED,r.db.LINETYPE.STICK_BOTTOM_DOTTED,r.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED,r.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED,r.db.LINETYPE.STICK_ARROW_TOP_REVERSE,r.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE,r.db.LINETYPE.STICK_ARROW_TOP_REVERSE_DOTTED,r.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE_DOTTED,r.db.LINETYPE.SOLID_ARROW_TOP_REVERSE,r.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE].includes(t.type)||(h+=d(3)),[r.db.LINETYPE.BIDIRECTIONAL_SOLID,r.db.LINETYPE.BIDIRECTIONAL_DOTTED,r.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED,r.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED,r.db.LINETYPE.SOLID_ARROW_TOP_REVERSE,r.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE].includes(t.type)&&(u-=d(3)));let p=[n,i,a,s],m=Math.abs(u-h);t.wrap&&t.message&&(t.message=Xt.wrapLabel(t.message,st.getMax(m+2*Ve.wrapPadding,Ve.width),Xm(Ve)));let g=Xt.calculateTextDimensions(t.message,Xm(Ve));return{width:st.getMax(t.wrap?0:g.width+2*Ve.wrapPadding,m+2*Ve.wrapPadding,Ve.width),height:0,startx:u,stopx:h,starty:0,stopy:0,message:t.message,type:t.type,wrap:t.wrap,fromBounds:Math.min.apply(null,p),toBounds:Math.max.apply(null,p)}},"buildMessageModel"),_ct=o(async function(t,e,r,n){let i={},a=[],s,l,u;for(let h of t){switch(h.type){case n.db.LINETYPE.LOOP_START:case n.db.LINETYPE.ALT_START:case n.db.LINETYPE.OPT_START:case n.db.LINETYPE.PAR_START:case n.db.LINETYPE.PAR_OVER_START:case n.db.LINETYPE.CRITICAL_START:case n.db.LINETYPE.BREAK_START:a.push({id:h.id,msg:h.message,from:Number.MAX_SAFE_INTEGER,to:Number.MIN_SAFE_INTEGER,width:0});break;case n.db.LINETYPE.ALT_ELSE:case n.db.LINETYPE.PAR_AND:case n.db.LINETYPE.CRITICAL_OPTION:h.message&&(s=a.pop(),i[s.id]=s,i[h.id]=s,a.push(s));break;case n.db.LINETYPE.LOOP_END:case n.db.LINETYPE.ALT_END:case n.db.LINETYPE.OPT_END:case n.db.LINETYPE.PAR_END:case n.db.LINETYPE.CRITICAL_END:case n.db.LINETYPE.BREAK_END:s=a.pop(),i[s.id]=s;break;case n.db.LINETYPE.ACTIVE_START:{let d=e.get(h.from?h.from:h.to.actor),p=U7(h.from?h.from:h.to.actor).length,m=d.x+d.width/2+(p-1)*Ve.activationWidth/2,g={startx:m,stopx:m+Ve.activationWidth,actor:h.from,enabled:!0};ut.activations.push(g)}break;case n.db.LINETYPE.ACTIVE_END:{let d=ut.activations.map(p=>p.actor).lastIndexOf(h.from);ut.activations.splice(d,1).splice(0,1)}break}h.placement!==void 0?(l=await wct(h,e,n),h.noteModel=l,a.forEach(d=>{s=d,s.from=st.getMin(s.from,l.startx),s.to=st.getMax(s.to,l.startx+l.width),s.width=st.getMax(s.width,Math.abs(s.from-s.to))-Ve.labelBoxWidth})):(u=Act(h,e,n),h.msgModel=u,u.startx&&u.stopx&&a.length>0&&a.forEach(d=>{if(s=d,u.startx===u.stopx){let p=e.get(h.from),m=e.get(h.to);s.from=st.getMin(p.x-u.width/2,p.x-p.width/2,s.from),s.to=st.getMax(m.x+u.width/2,m.x+p.width/2,s.to),s.width=st.getMax(s.width,Math.abs(s.to-s.from))-Ve.labelBoxWidth}else s.from=st.getMin(u.startx,s.from),s.to=st.getMax(u.stopx,s.to),s.width=st.getMax(s.width,u.width)-Ve.labelBoxWidth}))}return ut.activations=[],K.debug("Loop type widths:",i),i},"calculateLoopBounds"),Gwe={bounds:ut,drawActors:sU,drawActorsPopup:Fwe,setConf:$we,draw:vct}});var qwe={};vr(qwe,{diagram:()=>Dct});var Dct,Uwe=O(()=>{"use strict";Dwe();rU();Lwe();jt();Vwe();Dct={parser:_we,get db(){return new G7},renderer:Gwe,styles:Rwe,init:o(t=>{t.sequence||(t.sequence={}),t.wrap&&(t.sequence.wrap=t.wrap,z2({sequence:{wrap:t.wrap}}))},"init")}});var oU,W7,lU=O(()=>{"use strict";oU=(function(){var t=o(function(Ue,Ge,Ne,We){for(Ne=Ne||{},We=Ue.length;We--;Ne[Ue[We]]=Ge);return Ne},"o"),e=[1,18],r=[1,19],n=[1,20],i=[1,41],a=[1,42],s=[1,26],l=[1,24],u=[1,25],h=[1,32],f=[1,33],d=[1,34],p=[1,45],m=[1,35],g=[1,36],y=[1,37],v=[1,38],x=[1,27],b=[1,28],T=[1,29],E=[1,30],w=[1,31],k=[1,44],S=[1,46],A=[1,43],L=[1,47],I=[1,9],N=[1,8,9],C=[1,58],_=[1,59],D=[1,60],M=[1,61],R=[1,62],P=[1,63],B=[1,64],F=[1,8,9,41],G=[1,76],$=[1,8,9,12,13,22,39,41,44,68,69,70,71,72,73,74,79,81],V=[1,8,9,12,13,18,20,22,39,41,44,50,60,68,69,70,71,72,73,74,79,81,86,100,102,103],X=[13,60,86,100,102,103],Q=[13,60,73,74,86,100,102,103],H=[13,60,68,69,70,71,72,86,100,102,103],ie=[1,101],Y=[1,118],le=[1,114],ee=[1,110],J=[1,116],te=[1,111],Z=[1,112],xe=[1,113],de=[1,115],Se=[1,117],Me=[22,48,60,61,82,86,87,88,89,90],ke=[1,8,9,39,41,44],we=[1,8,9,22],_e=[1,147],$e=[1,8,9,61],fe=[1,8,9,22,48,60,61,82,86,87,88,89,90],Ke={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mermaidDoc:4,statements:5,graphConfig:6,CLASS_DIAGRAM:7,NEWLINE:8,EOF:9,statement:10,classLabel:11,SQS:12,STR:13,SQE:14,namespaceName:15,alphaNumToken:16,classLiteralName:17,DOT:18,className:19,GENERICTYPE:20,relationStatement:21,LABEL:22,namespaceStatement:23,classStatement:24,memberStatement:25,annotationStatement:26,clickStatement:27,styleStatement:28,cssClassStatement:29,noteStatement:30,classDefStatement:31,direction:32,acc_title:33,acc_title_value:34,acc_descr:35,acc_descr_value:36,acc_descr_multiline_value:37,namespaceIdentifier:38,STRUCT_START:39,classStatements:40,STRUCT_STOP:41,NAMESPACE:42,classIdentifier:43,STYLE_SEPARATOR:44,members:45,CLASS:46,emptyBody:47,SPACE:48,ANNOTATION_START:49,ANNOTATION_END:50,MEMBER:51,SEPARATOR:52,relation:53,NOTE_FOR:54,noteText:55,NOTE:56,CLASSDEF:57,classList:58,stylesOpt:59,ALPHA:60,COMMA:61,direction_tb:62,direction_bt:63,direction_rl:64,direction_lr:65,relationType:66,lineType:67,AGGREGATION:68,EXTENSION:69,COMPOSITION:70,DEPENDENCY:71,LOLLIPOP:72,LINE:73,DOTTED_LINE:74,CALLBACK:75,LINK:76,LINK_TARGET:77,CLICK:78,CALLBACK_NAME:79,CALLBACK_ARGS:80,HREF:81,STYLE:82,CSSCLASS:83,style:84,styleComponent:85,NUM:86,COLON:87,UNIT:88,BRKT:89,PCT:90,commentToken:91,textToken:92,graphCodeTokens:93,textNoTagsToken:94,TAGSTART:95,TAGEND:96,"==":97,"--":98,DEFAULT:99,MINUS:100,keywords:101,UNICODE_TEXT:102,BQUOTE_STR:103,$accept:0,$end:1},terminals_:{2:"error",7:"CLASS_DIAGRAM",8:"NEWLINE",9:"EOF",12:"SQS",13:"STR",14:"SQE",18:"DOT",20:"GENERICTYPE",22:"LABEL",33:"acc_title",34:"acc_title_value",35:"acc_descr",36:"acc_descr_value",37:"acc_descr_multiline_value",39:"STRUCT_START",41:"STRUCT_STOP",42:"NAMESPACE",44:"STYLE_SEPARATOR",46:"CLASS",48:"SPACE",49:"ANNOTATION_START",50:"ANNOTATION_END",51:"MEMBER",52:"SEPARATOR",54:"NOTE_FOR",56:"NOTE",57:"CLASSDEF",60:"ALPHA",61:"COMMA",62:"direction_tb",63:"direction_bt",64:"direction_rl",65:"direction_lr",68:"AGGREGATION",69:"EXTENSION",70:"COMPOSITION",71:"DEPENDENCY",72:"LOLLIPOP",73:"LINE",74:"DOTTED_LINE",75:"CALLBACK",76:"LINK",77:"LINK_TARGET",78:"CLICK",79:"CALLBACK_NAME",80:"CALLBACK_ARGS",81:"HREF",82:"STYLE",83:"CSSCLASS",86:"NUM",87:"COLON",88:"UNIT",89:"BRKT",90:"PCT",93:"graphCodeTokens",95:"TAGSTART",96:"TAGEND",97:"==",98:"--",99:"DEFAULT",100:"MINUS",101:"keywords",102:"UNICODE_TEXT",103:"BQUOTE_STR"},productions_:[0,[3,1],[3,1],[4,1],[6,4],[5,1],[5,2],[5,3],[11,3],[15,1],[15,1],[15,3],[15,2],[19,1],[19,3],[19,1],[19,2],[19,2],[19,2],[10,1],[10,2],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,2],[10,1],[23,4],[23,5],[38,2],[40,1],[40,2],[40,3],[40,1],[40,2],[40,3],[24,1],[24,3],[24,4],[24,3],[24,6],[43,2],[43,3],[47,0],[47,2],[47,2],[26,4],[45,1],[45,2],[25,1],[25,2],[25,1],[25,1],[21,3],[21,4],[21,4],[21,5],[30,3],[30,2],[31,3],[58,1],[58,3],[32,1],[32,1],[32,1],[32,1],[53,3],[53,2],[53,2],[53,1],[66,1],[66,1],[66,1],[66,1],[66,1],[67,1],[67,1],[27,3],[27,4],[27,3],[27,4],[27,4],[27,5],[27,3],[27,4],[27,4],[27,5],[27,4],[27,5],[27,5],[27,6],[28,3],[29,3],[59,1],[59,3],[84,1],[84,2],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[91,1],[91,1],[92,1],[92,1],[92,1],[92,1],[92,1],[92,1],[92,1],[94,1],[94,1],[94,1],[94,1],[16,1],[16,1],[16,1],[16,1],[17,1],[55,1]],performAction:o(function(Ge,Ne,We,j,ae,U,ce){var z=U.length-1;switch(ae){case 8:this.$=U[z-1];break;case 9:case 10:case 13:case 15:this.$=U[z];break;case 11:case 14:this.$=U[z-2]+"."+U[z];break;case 12:case 16:this.$=U[z-1]+U[z];break;case 17:case 18:this.$=U[z-1]+"~"+U[z]+"~";break;case 19:j.addRelation(U[z]);break;case 20:U[z-1].title=j.cleanupLabel(U[z]),j.addRelation(U[z-1]);break;case 31:this.$=U[z].trim(),j.setAccTitle(this.$);break;case 32:case 33:this.$=U[z].trim(),j.setAccDescription(this.$);break;case 34:j.addClassesToNamespace(U[z-3],U[z-1][0],U[z-1][1]);break;case 35:j.addClassesToNamespace(U[z-4],U[z-1][0],U[z-1][1]);break;case 36:this.$=U[z],j.addNamespace(U[z]);break;case 37:this.$=[[U[z]],[]];break;case 38:this.$=[[U[z-1]],[]];break;case 39:U[z][0].unshift(U[z-2]),this.$=U[z];break;case 40:this.$=[[],[U[z]]];break;case 41:this.$=[[],[U[z-1]]];break;case 42:U[z][1].unshift(U[z-2]),this.$=U[z];break;case 44:j.setCssClass(U[z-2],U[z]);break;case 45:j.addMembers(U[z-3],U[z-1]);break;case 47:j.setCssClass(U[z-5],U[z-3]),j.addMembers(U[z-5],U[z-1]);break;case 48:this.$=U[z],j.addClass(U[z]);break;case 49:this.$=U[z-1],j.addClass(U[z-1]),j.setClassLabel(U[z-1],U[z]);break;case 53:j.addAnnotation(U[z],U[z-2]);break;case 54:case 67:this.$=[U[z]];break;case 55:U[z].push(U[z-1]),this.$=U[z];break;case 56:break;case 57:j.addMember(U[z-1],j.cleanupLabel(U[z]));break;case 58:break;case 59:break;case 60:this.$={id1:U[z-2],id2:U[z],relation:U[z-1],relationTitle1:"none",relationTitle2:"none"};break;case 61:this.$={id1:U[z-3],id2:U[z],relation:U[z-1],relationTitle1:U[z-2],relationTitle2:"none"};break;case 62:this.$={id1:U[z-3],id2:U[z],relation:U[z-2],relationTitle1:"none",relationTitle2:U[z-1]};break;case 63:this.$={id1:U[z-4],id2:U[z],relation:U[z-2],relationTitle1:U[z-3],relationTitle2:U[z-1]};break;case 64:this.$=j.addNote(U[z],U[z-1]);break;case 65:this.$=j.addNote(U[z]);break;case 66:this.$=U[z-2],j.defineClass(U[z-1],U[z]);break;case 68:this.$=U[z-2].concat([U[z]]);break;case 69:j.setDirection("TB");break;case 70:j.setDirection("BT");break;case 71:j.setDirection("RL");break;case 72:j.setDirection("LR");break;case 73:this.$={type1:U[z-2],type2:U[z],lineType:U[z-1]};break;case 74:this.$={type1:"none",type2:U[z],lineType:U[z-1]};break;case 75:this.$={type1:U[z-1],type2:"none",lineType:U[z]};break;case 76:this.$={type1:"none",type2:"none",lineType:U[z]};break;case 77:this.$=j.relationType.AGGREGATION;break;case 78:this.$=j.relationType.EXTENSION;break;case 79:this.$=j.relationType.COMPOSITION;break;case 80:this.$=j.relationType.DEPENDENCY;break;case 81:this.$=j.relationType.LOLLIPOP;break;case 82:this.$=j.lineType.LINE;break;case 83:this.$=j.lineType.DOTTED_LINE;break;case 84:case 90:this.$=U[z-2],j.setClickEvent(U[z-1],U[z]);break;case 85:case 91:this.$=U[z-3],j.setClickEvent(U[z-2],U[z-1]),j.setTooltip(U[z-2],U[z]);break;case 86:this.$=U[z-2],j.setLink(U[z-1],U[z]);break;case 87:this.$=U[z-3],j.setLink(U[z-2],U[z-1],U[z]);break;case 88:this.$=U[z-3],j.setLink(U[z-2],U[z-1]),j.setTooltip(U[z-2],U[z]);break;case 89:this.$=U[z-4],j.setLink(U[z-3],U[z-2],U[z]),j.setTooltip(U[z-3],U[z-1]);break;case 92:this.$=U[z-3],j.setClickEvent(U[z-2],U[z-1],U[z]);break;case 93:this.$=U[z-4],j.setClickEvent(U[z-3],U[z-2],U[z-1]),j.setTooltip(U[z-3],U[z]);break;case 94:this.$=U[z-3],j.setLink(U[z-2],U[z]);break;case 95:this.$=U[z-4],j.setLink(U[z-3],U[z-1],U[z]);break;case 96:this.$=U[z-4],j.setLink(U[z-3],U[z-1]),j.setTooltip(U[z-3],U[z]);break;case 97:this.$=U[z-5],j.setLink(U[z-4],U[z-2],U[z]),j.setTooltip(U[z-4],U[z-1]);break;case 98:this.$=U[z-2],j.setCssStyle(U[z-1],U[z]);break;case 99:j.setCssClass(U[z-1],U[z]);break;case 100:this.$=[U[z]];break;case 101:U[z-2].push(U[z]),this.$=U[z-2];break;case 103:this.$=U[z-1]+U[z];break}},"anonymous"),table:[{3:1,4:2,5:3,6:4,7:[1,6],10:5,16:39,17:40,19:21,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,33:e,35:r,37:n,38:22,42:i,43:23,46:a,49:s,51:l,52:u,54:h,56:f,57:d,60:p,62:m,63:g,64:y,65:v,75:x,76:b,78:T,82:E,83:w,86:k,100:S,102:A,103:L},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,3]},t(I,[2,5],{8:[1,48]}),{8:[1,49]},t(N,[2,19],{22:[1,50]}),t(N,[2,21]),t(N,[2,22]),t(N,[2,23]),t(N,[2,24]),t(N,[2,25]),t(N,[2,26]),t(N,[2,27]),t(N,[2,28]),t(N,[2,29]),t(N,[2,30]),{34:[1,51]},{36:[1,52]},t(N,[2,33]),t(N,[2,56],{53:53,66:56,67:57,13:[1,54],22:[1,55],68:C,69:_,70:D,71:M,72:R,73:P,74:B}),{39:[1,65]},t(F,[2,43],{39:[1,67],44:[1,66]}),t(N,[2,58]),t(N,[2,59]),{16:68,60:p,86:k,100:S,102:A},{16:39,17:40,19:69,60:p,86:k,100:S,102:A,103:L},{16:39,17:40,19:70,60:p,86:k,100:S,102:A,103:L},{16:39,17:40,19:71,60:p,86:k,100:S,102:A,103:L},{60:[1,72]},{13:[1,73]},{16:39,17:40,19:74,60:p,86:k,100:S,102:A,103:L},{13:G,55:75},{58:77,60:[1,78]},t(N,[2,69]),t(N,[2,70]),t(N,[2,71]),t(N,[2,72]),t($,[2,13],{16:39,17:40,19:80,18:[1,79],20:[1,81],60:p,86:k,100:S,102:A,103:L}),t($,[2,15],{20:[1,82]}),{15:83,16:84,17:85,60:p,86:k,100:S,102:A,103:L},{16:39,17:40,19:86,60:p,86:k,100:S,102:A,103:L},t(V,[2,126]),t(V,[2,127]),t(V,[2,128]),t(V,[2,129]),t([1,8,9,12,13,20,22,39,41,44,68,69,70,71,72,73,74,79,81],[2,130]),t(I,[2,6],{10:5,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,19:21,38:22,43:23,16:39,17:40,5:87,33:e,35:r,37:n,42:i,46:a,49:s,51:l,52:u,54:h,56:f,57:d,60:p,62:m,63:g,64:y,65:v,75:x,76:b,78:T,82:E,83:w,86:k,100:S,102:A,103:L}),{5:88,10:5,16:39,17:40,19:21,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,33:e,35:r,37:n,38:22,42:i,43:23,46:a,49:s,51:l,52:u,54:h,56:f,57:d,60:p,62:m,63:g,64:y,65:v,75:x,76:b,78:T,82:E,83:w,86:k,100:S,102:A,103:L},t(N,[2,20]),t(N,[2,31]),t(N,[2,32]),{13:[1,90],16:39,17:40,19:89,60:p,86:k,100:S,102:A,103:L},{53:91,66:56,67:57,68:C,69:_,70:D,71:M,72:R,73:P,74:B},t(N,[2,57]),{67:92,73:P,74:B},t(X,[2,76],{66:93,68:C,69:_,70:D,71:M,72:R}),t(Q,[2,77]),t(Q,[2,78]),t(Q,[2,79]),t(Q,[2,80]),t(Q,[2,81]),t(H,[2,82]),t(H,[2,83]),{8:[1,95],24:96,30:97,40:94,43:23,46:a,54:h,56:f},{16:98,60:p,86:k,100:S,102:A},{41:[1,100],45:99,51:ie},{50:[1,102]},{13:[1,103]},{13:[1,104]},{79:[1,105],81:[1,106]},{22:Y,48:le,59:107,60:ee,82:J,84:108,85:109,86:te,87:Z,88:xe,89:de,90:Se},{60:[1,119]},{13:G,55:120},t(F,[2,65]),t(F,[2,131]),{22:Y,48:le,59:121,60:ee,61:[1,122],82:J,84:108,85:109,86:te,87:Z,88:xe,89:de,90:Se},t(Me,[2,67]),{16:39,17:40,19:123,60:p,86:k,100:S,102:A,103:L},t($,[2,16]),t($,[2,17]),t($,[2,18]),{39:[2,36]},{15:125,16:84,17:85,18:[1,124],39:[2,9],60:p,86:k,100:S,102:A,103:L},{39:[2,10]},t(ke,[2,48],{11:126,12:[1,127]}),t(I,[2,7]),{9:[1,128]},t(we,[2,60]),{16:39,17:40,19:129,60:p,86:k,100:S,102:A,103:L},{13:[1,131],16:39,17:40,19:130,60:p,86:k,100:S,102:A,103:L},t(X,[2,75],{66:132,68:C,69:_,70:D,71:M,72:R}),t(X,[2,74]),{41:[1,133]},{24:96,30:97,40:134,43:23,46:a,54:h,56:f},{8:[1,135],41:[2,37]},{8:[1,136],41:[2,40]},t(F,[2,44],{39:[1,137]}),{41:[1,138]},t(F,[2,46]),{41:[2,54],45:139,51:ie},{16:39,17:40,19:140,60:p,86:k,100:S,102:A,103:L},t(N,[2,84],{13:[1,141]}),t(N,[2,86],{13:[1,143],77:[1,142]}),t(N,[2,90],{13:[1,144],80:[1,145]}),{13:[1,146]},t(N,[2,98],{61:_e}),t($e,[2,100],{85:148,22:Y,48:le,60:ee,82:J,86:te,87:Z,88:xe,89:de,90:Se}),t(fe,[2,102]),t(fe,[2,104]),t(fe,[2,105]),t(fe,[2,106]),t(fe,[2,107]),t(fe,[2,108]),t(fe,[2,109]),t(fe,[2,110]),t(fe,[2,111]),t(fe,[2,112]),t(N,[2,99]),t(F,[2,64]),t(N,[2,66],{61:_e}),{60:[1,149]},t($,[2,14]),{15:150,16:84,17:85,60:p,86:k,100:S,102:A,103:L},{39:[2,12]},t(ke,[2,49]),{13:[1,151]},{1:[2,4]},t(we,[2,62]),t(we,[2,61]),{16:39,17:40,19:152,60:p,86:k,100:S,102:A,103:L},t(X,[2,73]),t(N,[2,34]),{41:[1,153]},{24:96,30:97,40:154,41:[2,38],43:23,46:a,54:h,56:f},{24:96,30:97,40:155,41:[2,41],43:23,46:a,54:h,56:f},{45:156,51:ie},t(F,[2,45]),{41:[2,55]},t(N,[2,53]),t(N,[2,85]),t(N,[2,87]),t(N,[2,88],{77:[1,157]}),t(N,[2,91]),t(N,[2,92],{13:[1,158]}),t(N,[2,94],{13:[1,160],77:[1,159]}),{22:Y,48:le,60:ee,82:J,84:161,85:109,86:te,87:Z,88:xe,89:de,90:Se},t(fe,[2,103]),t(Me,[2,68]),{39:[2,11]},{14:[1,162]},t(we,[2,63]),t(N,[2,35]),{41:[2,39]},{41:[2,42]},{41:[1,163]},t(N,[2,89]),t(N,[2,93]),t(N,[2,95]),t(N,[2,96],{77:[1,164]}),t($e,[2,101],{85:148,22:Y,48:le,60:ee,82:J,86:te,87:Z,88:xe,89:de,90:Se}),t(ke,[2,8]),t(F,[2,47]),t(N,[2,97])],defaultActions:{2:[2,1],3:[2,2],4:[2,3],83:[2,36],85:[2,10],125:[2,12],128:[2,4],139:[2,55],150:[2,11],154:[2,39],155:[2,42]},parseError:o(function(Ge,Ne){if(Ne.recoverable)this.trace(Ge);else{var We=new Error(Ge);throw We.hash=Ne,We}},"parseError"),parse:o(function(Ge){var Ne=this,We=[0],j=[],ae=[null],U=[],ce=this.table,z="",ne=0,se=0,be=0,pe=2,me=1,Re=U.slice.call(arguments,1),ge=Object.create(this.lexer),Ie={yy:{}};for(var qe in this.yy)Object.prototype.hasOwnProperty.call(this.yy,qe)&&(Ie.yy[qe]=this.yy[qe]);ge.setInput(Ge,Ie.yy),Ie.yy.lexer=ge,Ie.yy.parser=this,typeof ge.yylloc>"u"&&(ge.yylloc={});var Pe=ge.yylloc;U.push(Pe);var Xe=ge.options&&ge.options.ranges;typeof Ie.yy.parseError=="function"?this.parseError=Ie.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function oe(cr){We.length=We.length-2*cr,ae.length=ae.length-cr,U.length=U.length-cr}o(oe,"popStack");function et(){var cr;return cr=j.pop()||ge.lex()||me,typeof cr!="number"&&(cr instanceof Array&&(j=cr,cr=j.pop()),cr=Ne.symbols_[cr]||cr),cr}o(et,"lex");for(var he,ot,Dt,It,wt,Rt,it={},at,Ct,yt,dt;;){if(Dt=We[We.length-1],this.defaultActions[Dt]?It=this.defaultActions[Dt]:((he===null||typeof he>"u")&&(he=et()),It=ce[Dt]&&ce[Dt][he]),typeof It>"u"||!It.length||!It[0]){var Ht="";dt=[];for(at in ce[Dt])this.terminals_[at]&&at>pe&&dt.push("'"+this.terminals_[at]+"'");ge.showPosition?Ht="Parse error on line "+(ne+1)+`: +`+ge.showPosition()+` +Expecting `+dt.join(", ")+", got '"+(this.terminals_[he]||he)+"'":Ht="Parse error on line "+(ne+1)+": Unexpected "+(he==me?"end of input":"'"+(this.terminals_[he]||he)+"'"),this.parseError(Ht,{text:ge.match,token:this.terminals_[he]||he,line:ge.yylineno,loc:Pe,expected:dt})}if(It[0]instanceof Array&&It.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Dt+", token: "+he);switch(It[0]){case 1:We.push(he),ae.push(ge.yytext),U.push(ge.yylloc),We.push(It[1]),he=null,ot?(he=ot,ot=null):(se=ge.yyleng,z=ge.yytext,ne=ge.yylineno,Pe=ge.yylloc,be>0&&be--);break;case 2:if(Ct=this.productions_[It[1]][1],it.$=ae[ae.length-Ct],it._$={first_line:U[U.length-(Ct||1)].first_line,last_line:U[U.length-1].last_line,first_column:U[U.length-(Ct||1)].first_column,last_column:U[U.length-1].last_column},Xe&&(it._$.range=[U[U.length-(Ct||1)].range[0],U[U.length-1].range[1]]),Rt=this.performAction.apply(it,[z,se,ne,Ie.yy,It[1],ae,U].concat(Re)),typeof Rt<"u")return Rt;Ct&&(We=We.slice(0,-1*Ct*2),ae=ae.slice(0,-1*Ct),U=U.slice(0,-1*Ct)),We.push(this.productions_[It[1]][0]),ae.push(it.$),U.push(it._$),yt=ce[We[We.length-2]][We[We.length-1]],We.push(yt);break;case 3:return!0}}return!0},"parse")},Te=(function(){var Ue={EOF:1,parseError:o(function(Ne,We){if(this.yy.parser)this.yy.parser.parseError(Ne,We);else throw new Error(Ne)},"parseError"),setInput:o(function(Ge,Ne){return this.yy=Ne||this.yy||{},this._input=Ge,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var Ge=this._input[0];this.yytext+=Ge,this.yyleng++,this.offset++,this.match+=Ge,this.matched+=Ge;var Ne=Ge.match(/(?:\r\n?|\n).*/g);return Ne?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),Ge},"input"),unput:o(function(Ge){var Ne=Ge.length,We=Ge.split(/(?:\r\n?|\n)/g);this._input=Ge+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Ne),this.offset-=Ne;var j=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),We.length-1&&(this.yylineno-=We.length-1);var ae=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:We?(We.length===j.length?this.yylloc.first_column:0)+j[j.length-We.length].length-We[0].length:this.yylloc.first_column-Ne},this.options.ranges&&(this.yylloc.range=[ae[0],ae[0]+this.yyleng-Ne]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(Ge){this.unput(this.match.slice(Ge))},"less"),pastInput:o(function(){var Ge=this.matched.substr(0,this.matched.length-this.match.length);return(Ge.length>20?"...":"")+Ge.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var Ge=this.match;return Ge.length<20&&(Ge+=this._input.substr(0,20-Ge.length)),(Ge.substr(0,20)+(Ge.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var Ge=this.pastInput(),Ne=new Array(Ge.length+1).join("-");return Ge+this.upcomingInput()+` +`+Ne+"^"},"showPosition"),test_match:o(function(Ge,Ne){var We,j,ae;if(this.options.backtrack_lexer&&(ae={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(ae.yylloc.range=this.yylloc.range.slice(0))),j=Ge[0].match(/(?:\r\n?|\n).*/g),j&&(this.yylineno+=j.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:j?j[j.length-1].length-j[j.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+Ge[0].length},this.yytext+=Ge[0],this.match+=Ge[0],this.matches=Ge,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(Ge[0].length),this.matched+=Ge[0],We=this.performAction.call(this,this.yy,this,Ne,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),We)return We;if(this._backtrack){for(var U in ae)this[U]=ae[U];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var Ge,Ne,We,j;this._more||(this.yytext="",this.match="");for(var ae=this._currentRules(),U=0;UNe[0].length)){if(Ne=We,j=U,this.options.backtrack_lexer){if(Ge=this.test_match(We,ae[U]),Ge!==!1)return Ge;if(this._backtrack){Ne=!1;continue}else return!1}else if(!this.options.flex)break}return Ne?(Ge=this.test_match(Ne,ae[j]),Ge!==!1?Ge:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var Ne=this.next();return Ne||this.lex()},"lex"),begin:o(function(Ne){this.conditionStack.push(Ne)},"begin"),popState:o(function(){var Ne=this.conditionStack.length-1;return Ne>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(Ne){return Ne=this.conditionStack.length-1-Math.abs(Ne||0),Ne>=0?this.conditionStack[Ne]:"INITIAL"},"topState"),pushState:o(function(Ne){this.begin(Ne)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:o(function(Ne,We,j,ae){var U=ae;switch(j){case 0:return 62;case 1:return 63;case 2:return 64;case 3:return 65;case 4:break;case 5:break;case 6:return this.begin("acc_title"),33;break;case 7:return this.popState(),"acc_title_value";break;case 8:return this.begin("acc_descr"),35;break;case 9:return this.popState(),"acc_descr_value";break;case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 8;case 14:break;case 15:return 7;case 16:return 7;case 17:return"EDGE_STATE";case 18:this.begin("callback_name");break;case 19:this.popState();break;case 20:this.popState(),this.begin("callback_args");break;case 21:return 79;case 22:this.popState();break;case 23:return 80;case 24:this.popState();break;case 25:return"STR";case 26:this.begin("string");break;case 27:return 82;case 28:return 57;case 29:return this.begin("namespace"),42;break;case 30:return this.popState(),8;break;case 31:break;case 32:return this.begin("namespace-body"),39;break;case 33:return this.popState(),41;break;case 34:return"EOF_IN_STRUCT";case 35:return 8;case 36:break;case 37:return"EDGE_STATE";case 38:return this.begin("class"),46;break;case 39:return this.popState(),8;break;case 40:break;case 41:return this.popState(),this.popState(),41;break;case 42:return this.begin("class-body"),39;break;case 43:return this.popState(),41;break;case 44:return"EOF_IN_STRUCT";case 45:return"EDGE_STATE";case 46:return"OPEN_IN_STRUCT";case 47:break;case 48:return"MEMBER";case 49:return 83;case 50:return 75;case 51:return 76;case 52:return 78;case 53:return 54;case 54:return 56;case 55:return 49;case 56:return 50;case 57:return 81;case 58:this.popState();break;case 59:return"GENERICTYPE";case 60:this.begin("generic");break;case 61:this.popState();break;case 62:return"BQUOTE_STR";case 63:this.begin("bqstring");break;case 64:return 77;case 65:return 77;case 66:return 77;case 67:return 77;case 68:return 69;case 69:return 69;case 70:return 71;case 71:return 71;case 72:return 70;case 73:return 68;case 74:return 72;case 75:return 73;case 76:return 74;case 77:return 22;case 78:return 44;case 79:return 100;case 80:return 18;case 81:return"PLUS";case 82:return 87;case 83:return 61;case 84:return 89;case 85:return 89;case 86:return 90;case 87:return"EQUALS";case 88:return"EQUALS";case 89:return 60;case 90:return 12;case 91:return 14;case 92:return"PUNCTUATION";case 93:return 86;case 94:return 102;case 95:return 48;case 96:return 48;case 97:return 9}},"anonymous"),rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:classDiagram-v2\b)/,/^(?:classDiagram\b)/,/^(?:\[\*\])/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:["])/,/^(?:[^"]*)/,/^(?:["])/,/^(?:style\b)/,/^(?:classDef\b)/,/^(?:namespace\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[{])/,/^(?:[}])/,/^(?:$)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:\[\*\])/,/^(?:class\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[}])/,/^(?:[{])/,/^(?:[}])/,/^(?:$)/,/^(?:\[\*\])/,/^(?:[{])/,/^(?:[\n])/,/^(?:[^{}\n]*)/,/^(?:cssClass\b)/,/^(?:callback\b)/,/^(?:link\b)/,/^(?:click\b)/,/^(?:note for\b)/,/^(?:note\b)/,/^(?:<<)/,/^(?:>>)/,/^(?:href\b)/,/^(?:[~])/,/^(?:[^~]*)/,/^(?:~)/,/^(?:[`])/,/^(?:[^`]+)/,/^(?:[`])/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:\s*<\|)/,/^(?:\s*\|>)/,/^(?:\s*>)/,/^(?:\s*<)/,/^(?:\s*\*)/,/^(?:\s*o\b)/,/^(?:\s*\(\))/,/^(?:--)/,/^(?:\.\.)/,/^(?::{1}[^:\n;]+)/,/^(?::{3})/,/^(?:-)/,/^(?:\.)/,/^(?:\+)/,/^(?::)/,/^(?:,)/,/^(?:#)/,/^(?:#)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:\w+)/,/^(?:\[)/,/^(?:\])/,/^(?:[!"#$%&'*+,-.`?\\/])/,/^(?:[0-9]+)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\s)/,/^(?:\s)/,/^(?:$)/],conditions:{"namespace-body":{rules:[26,33,34,35,36,37,38,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},namespace:{rules:[26,29,30,31,32,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},"class-body":{rules:[26,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},class:{rules:[26,39,40,41,42,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},acc_descr_multiline:{rules:[11,12,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},acc_descr:{rules:[9,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},acc_title:{rules:[7,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},callback_args:{rules:[22,23,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},callback_name:{rules:[19,20,21,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},href:{rules:[26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},struct:{rules:[26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},generic:{rules:[26,49,50,51,52,53,54,55,56,57,58,59,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},bqstring:{rules:[26,49,50,51,52,53,54,55,56,57,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},string:{rules:[24,25,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,26,27,28,29,38,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97],inclusive:!0}}};return Ue})();Ke.lexer=Te;function Be(){this.yy={}}return o(Be,"Parser"),Be.prototype=Ke,Ke.Parser=Be,new Be})();oU.parser=oU;W7=oU});var Ywe,y3,jwe=O(()=>{"use strict";jt();Ur();Ywe=["#","+","~","-",""],y3=class{static{o(this,"ClassMember")}constructor(e,r){this.memberType=r,this.visibility="",this.classifier="",this.text="";let n=wr(e,ve());this.parseMember(n)}getDisplayDetails(){let e=this.visibility+jc(this.id);this.memberType==="method"&&(e+=`(${jc(this.parameters.trim())})`,this.returnType&&(e+=" : "+jc(this.returnType))),e=e.trim();let r=this.parseClassifier();return{displayText:e,cssStyle:r}}parseMember(e){let r="";if(this.memberType==="method"){let a=/([#+~-])?(.+)\((.*)\)([\s$*])?(.*)([$*])?/.exec(e);if(a){let s=a[1]?a[1].trim():"";if(Ywe.includes(s)&&(this.visibility=s),this.id=a[2],this.parameters=a[3]?a[3].trim():"",r=a[4]?a[4].trim():"",this.returnType=a[5]?a[5].trim():"",r===""){let l=this.returnType.substring(this.returnType.length-1);/[$*]/.exec(l)&&(r=l,this.returnType=this.returnType.substring(0,this.returnType.length-1))}}}else{let i=e.length,a=e.substring(0,1),s=e.substring(i-1);Ywe.includes(a)&&(this.visibility=a),/[$*]/.exec(s)&&(r=s),this.id=e.substring(this.visibility===""?0:1,r===""?i:i-1)}this.classifier=r,this.id=this.id.startsWith(" ")?" "+this.id.trim():this.id.trim();let n=`${this.visibility?"\\"+this.visibility:""}${jc(this.id)}${this.memberType==="method"?`(${jc(this.parameters)})${this.returnType?" : "+jc(this.returnType):""}`:""}`;this.text=n.replaceAll("<","<").replaceAll(">",">"),this.text.startsWith("\\<")&&(this.text=this.text.replace("\\<","~"))}parseClassifier(){switch(this.classifier){case"*":return"font-style:italic;";case"$":return"text-decoration:underline;";default:return""}}}});var H7,Xwe,Km,Fv,cU=O(()=>{"use strict";Ar();xt();jt();Ur();ar();si();a0();jwe();S2();H7="classId-",Xwe=0,Km=o(t=>st.sanitizeText(t,ve()),"sanitizeText"),Fv=class{constructor(){this.relations=[];this.classes=new Map;this.styleClasses=new Map;this.notes=new Map;this.interfaces=[];this.namespaces=new Map;this.namespaceCounter=0;this.functions=[];this.lineType={LINE:0,DOTTED_LINE:1};this.relationType={AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3,LOLLIPOP:4};this.setupToolTips=o(e=>{let r=sk();je(e).select("svg").selectAll("g").filter(function(){return je(this).attr("title")!==null}).on("mouseover",a=>{let s=je(a.currentTarget),l=s.attr("title");if(!l)return;let u=a.currentTarget.getBoundingClientRect();r.transition().duration(200).style("opacity",".9"),r.html(fl.sanitize(l)).style("left",`${window.scrollX+u.left+u.width/2}px`).style("top",`${window.scrollY+u.bottom+4}px`),s.classed("hover",!0)}).on("mouseout",a=>{r.transition().duration(500).style("opacity",0),je(a.currentTarget).classed("hover",!1)})},"setupToolTips");this.direction="TB";this.setAccTitle=Lr;this.getAccTitle=Or;this.setAccDescription=Pr;this.getAccDescription=Br;this.setDiagramTitle=zr;this.getDiagramTitle=Fr;this.getConfig=o(()=>ve().class,"getConfig");this.functions.push(this.setupToolTips.bind(this)),this.clear(),this.addRelation=this.addRelation.bind(this),this.addClassesToNamespace=this.addClassesToNamespace.bind(this),this.addNamespace=this.addNamespace.bind(this),this.setCssClass=this.setCssClass.bind(this),this.addMembers=this.addMembers.bind(this),this.addClass=this.addClass.bind(this),this.setClassLabel=this.setClassLabel.bind(this),this.addAnnotation=this.addAnnotation.bind(this),this.addMember=this.addMember.bind(this),this.cleanupLabel=this.cleanupLabel.bind(this),this.addNote=this.addNote.bind(this),this.defineClass=this.defineClass.bind(this),this.setDirection=this.setDirection.bind(this),this.setLink=this.setLink.bind(this),this.bindFunctions=this.bindFunctions.bind(this),this.clear=this.clear.bind(this),this.setTooltip=this.setTooltip.bind(this),this.setClickEvent=this.setClickEvent.bind(this),this.setCssStyle=this.setCssStyle.bind(this)}static{o(this,"ClassDB")}splitClassNameAndType(e){let r=st.sanitizeText(e,ve()),n="",i=r;if(r.indexOf("~")>0){let a=r.split("~");i=Km(a[0]),n=Km(a[1])}return{className:i,type:n}}setClassLabel(e,r){let n=st.sanitizeText(e,ve());r&&(r=Km(r));let{className:i}=this.splitClassNameAndType(n);this.classes.get(i).label=r,this.classes.get(i).text=`${r}${this.classes.get(i).type?`<${this.classes.get(i).type}>`:""}`}addClass(e){let r=st.sanitizeText(e,ve()),{className:n,type:i}=this.splitClassNameAndType(r);if(this.classes.has(n))return;let a=st.sanitizeText(n,ve());this.classes.set(a,{id:a,type:i,label:a,text:`${a}${i?`<${i}>`:""}`,shape:"classBox",cssClasses:"default",methods:[],members:[],annotations:[],styles:[],domId:H7+a+"-"+Xwe}),Xwe++}addInterface(e,r){let n={id:`interface${this.interfaces.length}`,label:e,classId:r};this.interfaces.push(n)}lookUpDomId(e){let r=st.sanitizeText(e,ve());if(this.classes.has(r))return this.classes.get(r).domId;throw new Error("Class not found: "+r)}clear(){this.relations=[],this.classes=new Map,this.notes=new Map,this.interfaces=[],this.functions=[],this.functions.push(this.setupToolTips.bind(this)),this.namespaces=new Map,this.namespaceCounter=0,this.direction="TB",_r()}getClass(e){return this.classes.get(e)}getClasses(){return this.classes}getRelations(){return this.relations}getNote(e){let r=typeof e=="number"?`note${e}`:e;return this.notes.get(r)}getNotes(){return this.notes}addRelation(e){K.debug("Adding relation: "+JSON.stringify(e));let r=[this.relationType.LOLLIPOP,this.relationType.AGGREGATION,this.relationType.COMPOSITION,this.relationType.DEPENDENCY,this.relationType.EXTENSION];e.relation.type1===this.relationType.LOLLIPOP&&!r.includes(e.relation.type2)?(this.addClass(e.id2),this.addInterface(e.id1,e.id2),e.id1=`interface${this.interfaces.length-1}`):e.relation.type2===this.relationType.LOLLIPOP&&!r.includes(e.relation.type1)?(this.addClass(e.id1),this.addInterface(e.id2,e.id1),e.id2=`interface${this.interfaces.length-1}`):(this.addClass(e.id1),this.addClass(e.id2)),e.id1=this.splitClassNameAndType(e.id1).className,e.id2=this.splitClassNameAndType(e.id2).className,e.relationTitle1=st.sanitizeText(e.relationTitle1.trim(),ve()),e.relationTitle2=st.sanitizeText(e.relationTitle2.trim(),ve()),this.relations.push(e)}addAnnotation(e,r){let n=this.splitClassNameAndType(e).className;this.classes.get(n).annotations.push(r)}addMember(e,r){this.addClass(e);let n=this.splitClassNameAndType(e).className,i=this.classes.get(n);if(typeof r=="string"){let a=r.trim();a.startsWith("<<")&&a.endsWith(">>")?i.annotations.push(Km(a.substring(2,a.length-2))):a.indexOf(")")>0?i.methods.push(new y3(a,"method")):a&&i.members.push(new y3(a,"attribute"))}}addMembers(e,r){Array.isArray(r)&&(r.reverse(),r.forEach(n=>this.addMember(e,n)))}addNote(e,r){let n=this.notes.size,i={id:`note${n}`,class:r,text:e,index:n};return this.notes.set(i.id,i),i.id}cleanupLabel(e){return e.startsWith(":")&&(e=e.substring(1)),Km(e.trim())}setCssClass(e,r){e.split(",").forEach(n=>{let i=n;/\d/.exec(n[0])&&(i=H7+i);let a=this.classes.get(i);a&&(a.cssClasses+=" "+r)})}defineClass(e,r){for(let n of e){let i=this.styleClasses.get(n);i===void 0&&(i={id:n,styles:[],textStyles:[]},this.styleClasses.set(n,i)),r&&r.forEach(a=>{if(/color/.exec(a)){let s=a.replace("fill","bgFill");i.textStyles.push(s)}i.styles.push(a)}),this.classes.forEach(a=>{a.cssClasses.includes(n)&&a.styles.push(...r.flatMap(s=>s.split(",")))})}}setTooltip(e,r){e.split(",").forEach(n=>{r!==void 0&&(this.classes.get(n).tooltip=Km(r))})}getTooltip(e,r){return r&&this.namespaces.has(r)?this.namespaces.get(r).classes.get(e).tooltip:this.classes.get(e).tooltip}setLink(e,r,n){let i=ve();e.split(",").forEach(a=>{let s=a;/\d/.exec(a[0])&&(s=H7+s);let l=this.classes.get(s);l&&(l.link=Xt.formatUrl(r,i),i.securityLevel==="sandbox"?l.linkTarget="_top":typeof n=="string"?l.linkTarget=Km(n):l.linkTarget="_blank")}),this.setCssClass(e,"clickable")}setClickEvent(e,r,n){e.split(",").forEach(i=>{this.setClickFunc(i,r,n),this.classes.get(i).haveCallback=!0}),this.setCssClass(e,"clickable")}setClickFunc(e,r,n){let i=st.sanitizeText(e,ve());if(ve().securityLevel!=="loose"||r===void 0)return;let s=i;if(this.classes.has(s)){let l=this.lookUpDomId(s),u=[];if(typeof n=="string"){u=n.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let h=0;h{let h=document.querySelector(`[id="${l}"]`);h!==null&&h.addEventListener("click",()=>{Xt.runFunc(r,...u)},!1)})}}bindFunctions(e){this.functions.forEach(r=>{r(e)})}escapeHtml(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}getDirection(){return this.direction}setDirection(e){this.direction=e}addNamespace(e){this.namespaces.has(e)||(this.namespaces.set(e,{id:e,classes:new Map,notes:new Map,children:new Map,domId:H7+e+"-"+this.namespaceCounter}),this.namespaceCounter++)}getNamespace(e){return this.namespaces.get(e)}getNamespaces(){return this.namespaces}addClassesToNamespace(e,r,n){if(this.namespaces.has(e)){for(let i of r){let{className:a}=this.splitClassNameAndType(i),s=this.getClass(a);s.parent=e,this.namespaces.get(e).classes.set(a,s)}for(let i of n){let a=this.getNote(i);a.parent=e,this.namespaces.get(e).notes.set(i,a)}}}setCssStyle(e,r){let n=this.classes.get(e);if(!(!r||!n))for(let i of r)i.includes(",")?n.styles.push(...i.split(",")):n.styles.push(i)}getArrowMarker(e){let r;switch(e){case 0:r="aggregation";break;case 1:r="extension";break;case 2:r="composition";break;case 3:r="dependency";break;case 4:r="lollipop";break;default:r="none"}return r}getData(){let e=[],r=[],n=ve();for(let a of this.namespaces.values()){let s={id:a.id,label:a.id,isGroup:!0,padding:n.class.padding??16,shape:"rect",cssStyles:[],look:n.look};e.push(s)}for(let a of this.classes.values()){let s={...a,type:void 0,isGroup:!1,parentId:a.parent,look:n.look};e.push(s)}for(let a of this.notes.values()){let s={id:a.id,label:a.text,isGroup:!1,shape:"note",padding:n.class.padding??6,cssStyles:["text-align: left","white-space: nowrap",`fill: ${n.themeVariables.noteBkgColor}`,`stroke: ${n.themeVariables.noteBorderColor}`],look:n.look,parentId:a.parent,labelType:"markdown"};e.push(s);let l=this.classes.get(a.class)?.id;if(l){let u={id:`edgeNote${a.index}`,start:a.id,end:l,type:"normal",thickness:"normal",classes:"relation",arrowTypeStart:"none",arrowTypeEnd:"none",arrowheadStyle:"",labelStyle:[""],style:["fill: none"],pattern:"dotted",look:n.look};r.push(u)}}for(let a of this.interfaces){let s={id:a.id,label:a.label,isGroup:!1,shape:"rect",cssStyles:["opacity: 0;"],look:n.look};e.push(s)}let i=0;for(let a of this.relations){i++;let s={id:hu(a.id1,a.id2,{prefix:"id",counter:i}),start:a.id1,end:a.id2,type:"normal",label:a.title,labelpos:"c",thickness:"normal",classes:"relation",arrowTypeStart:this.getArrowMarker(a.relation.type1),arrowTypeEnd:this.getArrowMarker(a.relation.type2),startLabelRight:a.relationTitle1==="none"?"":a.relationTitle1,endLabelLeft:a.relationTitle2==="none"?"":a.relationTitle2,arrowheadStyle:"",labelStyle:["display: inline-block"],style:a.style||"",pattern:a.relation.lineType==1?"dashed":"solid",look:n.look,labelType:"markdown"};r.push(s)}return{nodes:e,edges:r,other:{},config:n,direction:this.getDirection()}}}});var Mct,Y7,uU=O(()=>{"use strict";ly();Mct=o(t=>`g.classGroup text { + fill: ${t.nodeBorder||t.classText}; + stroke: none; + font-family: ${t.fontFamily}; + font-size: 10px; + + .title { + font-weight: bolder; + } + +} + + .cluster-label text { + fill: ${t.titleColor}; + } + .cluster-label span { + color: ${t.titleColor}; + } + .cluster-label span p { + background-color: transparent; + } + + .cluster rect { + fill: ${t.clusterBkg}; + stroke: ${t.clusterBorder}; + stroke-width: 1px; + } + + .cluster text { + fill: ${t.titleColor}; + } + + .cluster span { + color: ${t.titleColor}; + } + +.nodeLabel, .edgeLabel { + color: ${t.classText}; +} +.edgeLabel .label rect { + fill: ${t.mainBkg}; +} +.label text { + fill: ${t.classText}; +} + +.labelBkg { + background: ${t.mainBkg}; +} +.edgeLabel .label span { + background: ${t.mainBkg}; +} + +.classTitle { + font-weight: bolder; +} +.node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + stroke-width: 1px; + } + + +.divider { + stroke: ${t.nodeBorder}; + stroke-width: 1; +} + +g.clickable { + cursor: pointer; +} + +g.classGroup rect { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; +} + +g.classGroup line { + stroke: ${t.nodeBorder}; + stroke-width: 1; +} + +.classLabel .box { + stroke: none; + stroke-width: 0; + fill: ${t.mainBkg}; + opacity: 0.5; +} + +.classLabel .label { + fill: ${t.nodeBorder}; + font-size: 10px; +} + +.relation { + stroke: ${t.lineColor}; + stroke-width: 1; + fill: none; +} + +.dashed-line{ + stroke-dasharray: 3; +} + +.dotted-line{ + stroke-dasharray: 1 2; +} + +#compositionStart, .composition { + fill: ${t.lineColor} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#compositionEnd, .composition { + fill: ${t.lineColor} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#dependencyStart, .dependency { + fill: ${t.lineColor} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#dependencyStart, .dependency { + fill: ${t.lineColor} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#extensionStart, .extension { + fill: transparent !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#extensionEnd, .extension { + fill: transparent !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#aggregationStart, .aggregation { + fill: transparent !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#aggregationEnd, .aggregation { + fill: transparent !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#lollipopStart, .lollipop { + fill: ${t.mainBkg} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#lollipopEnd, .lollipop { + fill: ${t.mainBkg} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +.edgeTerminals { + font-size: 11px; + line-height: initial; +} + +.classTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; +} + ${Lu()} +`,"getStyles"),Y7=Mct});var Ict,Oct,Pct,j7,hU=O(()=>{"use strict";jt();xt();b0();Rd();Ld();ar();Ict=o((t,e="TB")=>{if(!t.doc)return e;let r=e;for(let n of t.doc)n.stmt==="dir"&&(r=n.value);return r},"getDir"),Oct=o(function(t,e){return e.db.getClasses()},"getClasses"),Pct=o(async function(t,e,r,n){K.info("REF0:"),K.info("Drawing class diagram (v3)",e);let{securityLevel:i,state:a,layout:s}=ve(),l=n.db.getData(),u=Sl(e,i);l.type=n.type,l.layoutAlgorithm=Ru(s),l.nodeSpacing=a?.nodeSpacing||50,l.rankSpacing=a?.rankSpacing||50,l.markers=["aggregation","extension","composition","dependency","lollipop"],l.diagramId=e,await Ol(l,u);let h=8;Xt.insertTitle(u,"classDiagramTitleText",a?.titleTopMargin??25,n.db.getDiagramTitle()),bo(u,h,"classDiagram",a?.useMaxWidth??!0)},"draw"),j7={getClasses:Oct,draw:Pct,getDir:Ict}});var Kwe={};vr(Kwe,{diagram:()=>Bct});var Bct,Qwe=O(()=>{"use strict";lU();cU();uU();hU();Bct={parser:W7,get db(){return new Fv},renderer:j7,styles:Y7,init:o(t=>{t.class||(t.class={}),t.class.arrowMarkerAbsolute=t.arrowMarkerAbsolute},"init")}});var e5e={};vr(e5e,{diagram:()=>Gct});var Gct,t5e=O(()=>{"use strict";lU();cU();uU();hU();Gct={parser:W7,get db(){return new Fv},renderer:j7,styles:Y7,init:o(t=>{t.class||(t.class={}),t.class.arrowMarkerAbsolute=t.arrowMarkerAbsolute},"init")}});var fU,X7,dU=O(()=>{"use strict";fU=(function(){var t=o(function(F,G,$,V){for($=$||{},V=F.length;V--;$[F[V]]=G);return $},"o"),e=[1,2],r=[1,3],n=[1,4],i=[2,4],a=[1,9],s=[1,11],l=[1,16],u=[1,17],h=[1,18],f=[1,19],d=[1,33],p=[1,20],m=[1,21],g=[1,22],y=[1,23],v=[1,24],x=[1,26],b=[1,27],T=[1,28],E=[1,29],w=[1,30],k=[1,31],S=[1,32],A=[1,35],L=[1,36],I=[1,37],N=[1,38],C=[1,34],_=[1,4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,41,45,48,51,52,53,54,57],D=[1,4,5,14,15,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,39,40,41,45,48,51,52,53,54,57],M=[4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,41,45,48,51,52,53,54,57],R={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,SPACE:4,NL:5,SD:6,document:7,line:8,statement:9,classDefStatement:10,styleStatement:11,cssClassStatement:12,idStatement:13,DESCR:14,"-->":15,HIDE_EMPTY:16,scale:17,WIDTH:18,COMPOSIT_STATE:19,STRUCT_START:20,STRUCT_STOP:21,STATE_DESCR:22,AS:23,ID:24,FORK:25,JOIN:26,CHOICE:27,CONCURRENT:28,note:29,notePosition:30,NOTE_TEXT:31,direction:32,acc_title:33,acc_title_value:34,acc_descr:35,acc_descr_value:36,acc_descr_multiline_value:37,CLICK:38,STRING:39,HREF:40,classDef:41,CLASSDEF_ID:42,CLASSDEF_STYLEOPTS:43,DEFAULT:44,style:45,STYLE_IDS:46,STYLEDEF_STYLEOPTS:47,class:48,CLASSENTITY_IDS:49,STYLECLASS:50,direction_tb:51,direction_bt:52,direction_rl:53,direction_lr:54,eol:55,";":56,EDGE_STATE:57,STYLE_SEPARATOR:58,left_of:59,right_of:60,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NL",6:"SD",14:"DESCR",15:"-->",16:"HIDE_EMPTY",17:"scale",18:"WIDTH",19:"COMPOSIT_STATE",20:"STRUCT_START",21:"STRUCT_STOP",22:"STATE_DESCR",23:"AS",24:"ID",25:"FORK",26:"JOIN",27:"CHOICE",28:"CONCURRENT",29:"note",31:"NOTE_TEXT",33:"acc_title",34:"acc_title_value",35:"acc_descr",36:"acc_descr_value",37:"acc_descr_multiline_value",38:"CLICK",39:"STRING",40:"HREF",41:"classDef",42:"CLASSDEF_ID",43:"CLASSDEF_STYLEOPTS",44:"DEFAULT",45:"style",46:"STYLE_IDS",47:"STYLEDEF_STYLEOPTS",48:"class",49:"CLASSENTITY_IDS",50:"STYLECLASS",51:"direction_tb",52:"direction_bt",53:"direction_rl",54:"direction_lr",56:";",57:"EDGE_STATE",58:"STYLE_SEPARATOR",59:"left_of",60:"right_of"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[9,1],[9,1],[9,1],[9,1],[9,2],[9,3],[9,4],[9,1],[9,2],[9,1],[9,4],[9,3],[9,6],[9,1],[9,1],[9,1],[9,1],[9,4],[9,4],[9,1],[9,2],[9,2],[9,1],[9,5],[9,5],[10,3],[10,3],[11,3],[12,3],[32,1],[32,1],[32,1],[32,1],[55,1],[55,1],[13,1],[13,1],[13,3],[13,3],[30,1],[30,1]],performAction:o(function(G,$,V,X,Q,H,ie){var Y=H.length-1;switch(Q){case 3:return X.setRootDoc(H[Y]),H[Y];break;case 4:this.$=[];break;case 5:H[Y]!="nl"&&(H[Y-1].push(H[Y]),this.$=H[Y-1]);break;case 6:case 7:this.$=H[Y];break;case 8:this.$="nl";break;case 12:this.$=H[Y];break;case 13:let te=H[Y-1];te.description=X.trimColon(H[Y]),this.$=te;break;case 14:this.$={stmt:"relation",state1:H[Y-2],state2:H[Y]};break;case 15:let Z=X.trimColon(H[Y]);this.$={stmt:"relation",state1:H[Y-3],state2:H[Y-1],description:Z};break;case 19:this.$={stmt:"state",id:H[Y-3],type:"default",description:"",doc:H[Y-1]};break;case 20:var le=H[Y],ee=H[Y-2].trim();if(H[Y].match(":")){var J=H[Y].split(":");le=J[0],ee=[ee,J[1]]}this.$={stmt:"state",id:le,type:"default",description:ee};break;case 21:this.$={stmt:"state",id:H[Y-3],type:"default",description:H[Y-5],doc:H[Y-1]};break;case 22:this.$={stmt:"state",id:H[Y],type:"fork"};break;case 23:this.$={stmt:"state",id:H[Y],type:"join"};break;case 24:this.$={stmt:"state",id:H[Y],type:"choice"};break;case 25:this.$={stmt:"state",id:X.getDividerId(),type:"divider"};break;case 26:this.$={stmt:"state",id:H[Y-1].trim(),note:{position:H[Y-2].trim(),text:H[Y].trim()}};break;case 29:this.$=H[Y].trim(),X.setAccTitle(this.$);break;case 30:case 31:this.$=H[Y].trim(),X.setAccDescription(this.$);break;case 32:this.$={stmt:"click",id:H[Y-3],url:H[Y-2],tooltip:H[Y-1]};break;case 33:this.$={stmt:"click",id:H[Y-3],url:H[Y-1],tooltip:""};break;case 34:case 35:this.$={stmt:"classDef",id:H[Y-1].trim(),classes:H[Y].trim()};break;case 36:this.$={stmt:"style",id:H[Y-1].trim(),styleClass:H[Y].trim()};break;case 37:this.$={stmt:"applyClass",id:H[Y-1].trim(),styleClass:H[Y].trim()};break;case 38:X.setDirection("TB"),this.$={stmt:"dir",value:"TB"};break;case 39:X.setDirection("BT"),this.$={stmt:"dir",value:"BT"};break;case 40:X.setDirection("RL"),this.$={stmt:"dir",value:"RL"};break;case 41:X.setDirection("LR"),this.$={stmt:"dir",value:"LR"};break;case 44:case 45:this.$={stmt:"state",id:H[Y].trim(),type:"default",description:""};break;case 46:this.$={stmt:"state",id:H[Y-2].trim(),classes:[H[Y].trim()],type:"default",description:""};break;case 47:this.$={stmt:"state",id:H[Y-2].trim(),classes:[H[Y].trim()],type:"default",description:""};break}},"anonymous"),table:[{3:1,4:e,5:r,6:n},{1:[3]},{3:5,4:e,5:r,6:n},{3:6,4:e,5:r,6:n},t([1,4,5,16,17,19,22,24,25,26,27,28,29,33,35,37,38,41,45,48,51,52,53,54,57],i,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:a,5:s,8:8,9:10,10:12,11:13,12:14,13:15,16:l,17:u,19:h,22:f,24:d,25:p,26:m,27:g,28:y,29:v,32:25,33:x,35:b,37:T,38:E,41:w,45:k,48:S,51:A,52:L,53:I,54:N,57:C},t(_,[2,5]),{9:39,10:12,11:13,12:14,13:15,16:l,17:u,19:h,22:f,24:d,25:p,26:m,27:g,28:y,29:v,32:25,33:x,35:b,37:T,38:E,41:w,45:k,48:S,51:A,52:L,53:I,54:N,57:C},t(_,[2,7]),t(_,[2,8]),t(_,[2,9]),t(_,[2,10]),t(_,[2,11]),t(_,[2,12],{14:[1,40],15:[1,41]}),t(_,[2,16]),{18:[1,42]},t(_,[2,18],{20:[1,43]}),{23:[1,44]},t(_,[2,22]),t(_,[2,23]),t(_,[2,24]),t(_,[2,25]),{30:45,31:[1,46],59:[1,47],60:[1,48]},t(_,[2,28]),{34:[1,49]},{36:[1,50]},t(_,[2,31]),{13:51,24:d,57:C},{42:[1,52],44:[1,53]},{46:[1,54]},{49:[1,55]},t(D,[2,44],{58:[1,56]}),t(D,[2,45],{58:[1,57]}),t(_,[2,38]),t(_,[2,39]),t(_,[2,40]),t(_,[2,41]),t(_,[2,6]),t(_,[2,13]),{13:58,24:d,57:C},t(_,[2,17]),t(M,i,{7:59}),{24:[1,60]},{24:[1,61]},{23:[1,62]},{24:[2,48]},{24:[2,49]},t(_,[2,29]),t(_,[2,30]),{39:[1,63],40:[1,64]},{43:[1,65]},{43:[1,66]},{47:[1,67]},{50:[1,68]},{24:[1,69]},{24:[1,70]},t(_,[2,14],{14:[1,71]}),{4:a,5:s,8:8,9:10,10:12,11:13,12:14,13:15,16:l,17:u,19:h,21:[1,72],22:f,24:d,25:p,26:m,27:g,28:y,29:v,32:25,33:x,35:b,37:T,38:E,41:w,45:k,48:S,51:A,52:L,53:I,54:N,57:C},t(_,[2,20],{20:[1,73]}),{31:[1,74]},{24:[1,75]},{39:[1,76]},{39:[1,77]},t(_,[2,34]),t(_,[2,35]),t(_,[2,36]),t(_,[2,37]),t(D,[2,46]),t(D,[2,47]),t(_,[2,15]),t(_,[2,19]),t(M,i,{7:78}),t(_,[2,26]),t(_,[2,27]),{5:[1,79]},{5:[1,80]},{4:a,5:s,8:8,9:10,10:12,11:13,12:14,13:15,16:l,17:u,19:h,21:[1,81],22:f,24:d,25:p,26:m,27:g,28:y,29:v,32:25,33:x,35:b,37:T,38:E,41:w,45:k,48:S,51:A,52:L,53:I,54:N,57:C},t(_,[2,32]),t(_,[2,33]),t(_,[2,21])],defaultActions:{5:[2,1],6:[2,2],47:[2,48],48:[2,49]},parseError:o(function(G,$){if($.recoverable)this.trace(G);else{var V=new Error(G);throw V.hash=$,V}},"parseError"),parse:o(function(G){var $=this,V=[0],X=[],Q=[null],H=[],ie=this.table,Y="",le=0,ee=0,J=0,te=2,Z=1,xe=H.slice.call(arguments,1),de=Object.create(this.lexer),Se={yy:{}};for(var Me in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Me)&&(Se.yy[Me]=this.yy[Me]);de.setInput(G,Se.yy),Se.yy.lexer=de,Se.yy.parser=this,typeof de.yylloc>"u"&&(de.yylloc={});var ke=de.yylloc;H.push(ke);var we=de.options&&de.options.ranges;typeof Se.yy.parseError=="function"?this.parseError=Se.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function _e(z){V.length=V.length-2*z,Q.length=Q.length-z,H.length=H.length-z}o(_e,"popStack");function $e(){var z;return z=X.pop()||de.lex()||Z,typeof z!="number"&&(z instanceof Array&&(X=z,z=X.pop()),z=$.symbols_[z]||z),z}o($e,"lex");for(var fe,Ke,Te,Be,Ue,Ge,Ne={},We,j,ae,U;;){if(Te=V[V.length-1],this.defaultActions[Te]?Be=this.defaultActions[Te]:((fe===null||typeof fe>"u")&&(fe=$e()),Be=ie[Te]&&ie[Te][fe]),typeof Be>"u"||!Be.length||!Be[0]){var ce="";U=[];for(We in ie[Te])this.terminals_[We]&&We>te&&U.push("'"+this.terminals_[We]+"'");de.showPosition?ce="Parse error on line "+(le+1)+`: +`+de.showPosition()+` +Expecting `+U.join(", ")+", got '"+(this.terminals_[fe]||fe)+"'":ce="Parse error on line "+(le+1)+": Unexpected "+(fe==Z?"end of input":"'"+(this.terminals_[fe]||fe)+"'"),this.parseError(ce,{text:de.match,token:this.terminals_[fe]||fe,line:de.yylineno,loc:ke,expected:U})}if(Be[0]instanceof Array&&Be.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Te+", token: "+fe);switch(Be[0]){case 1:V.push(fe),Q.push(de.yytext),H.push(de.yylloc),V.push(Be[1]),fe=null,Ke?(fe=Ke,Ke=null):(ee=de.yyleng,Y=de.yytext,le=de.yylineno,ke=de.yylloc,J>0&&J--);break;case 2:if(j=this.productions_[Be[1]][1],Ne.$=Q[Q.length-j],Ne._$={first_line:H[H.length-(j||1)].first_line,last_line:H[H.length-1].last_line,first_column:H[H.length-(j||1)].first_column,last_column:H[H.length-1].last_column},we&&(Ne._$.range=[H[H.length-(j||1)].range[0],H[H.length-1].range[1]]),Ge=this.performAction.apply(Ne,[Y,ee,le,Se.yy,Be[1],Q,H].concat(xe)),typeof Ge<"u")return Ge;j&&(V=V.slice(0,-1*j*2),Q=Q.slice(0,-1*j),H=H.slice(0,-1*j)),V.push(this.productions_[Be[1]][0]),Q.push(Ne.$),H.push(Ne._$),ae=ie[V[V.length-2]][V[V.length-1]],V.push(ae);break;case 3:return!0}}return!0},"parse")},P=(function(){var F={EOF:1,parseError:o(function($,V){if(this.yy.parser)this.yy.parser.parseError($,V);else throw new Error($)},"parseError"),setInput:o(function(G,$){return this.yy=$||this.yy||{},this._input=G,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var G=this._input[0];this.yytext+=G,this.yyleng++,this.offset++,this.match+=G,this.matched+=G;var $=G.match(/(?:\r\n?|\n).*/g);return $?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),G},"input"),unput:o(function(G){var $=G.length,V=G.split(/(?:\r\n?|\n)/g);this._input=G+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-$),this.offset-=$;var X=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),V.length-1&&(this.yylineno-=V.length-1);var Q=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:V?(V.length===X.length?this.yylloc.first_column:0)+X[X.length-V.length].length-V[0].length:this.yylloc.first_column-$},this.options.ranges&&(this.yylloc.range=[Q[0],Q[0]+this.yyleng-$]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(G){this.unput(this.match.slice(G))},"less"),pastInput:o(function(){var G=this.matched.substr(0,this.matched.length-this.match.length);return(G.length>20?"...":"")+G.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var G=this.match;return G.length<20&&(G+=this._input.substr(0,20-G.length)),(G.substr(0,20)+(G.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var G=this.pastInput(),$=new Array(G.length+1).join("-");return G+this.upcomingInput()+` +`+$+"^"},"showPosition"),test_match:o(function(G,$){var V,X,Q;if(this.options.backtrack_lexer&&(Q={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(Q.yylloc.range=this.yylloc.range.slice(0))),X=G[0].match(/(?:\r\n?|\n).*/g),X&&(this.yylineno+=X.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:X?X[X.length-1].length-X[X.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+G[0].length},this.yytext+=G[0],this.match+=G[0],this.matches=G,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(G[0].length),this.matched+=G[0],V=this.performAction.call(this,this.yy,this,$,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),V)return V;if(this._backtrack){for(var H in Q)this[H]=Q[H];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var G,$,V,X;this._more||(this.yytext="",this.match="");for(var Q=this._currentRules(),H=0;H$[0].length)){if($=V,X=H,this.options.backtrack_lexer){if(G=this.test_match(V,Q[H]),G!==!1)return G;if(this._backtrack){$=!1;continue}else return!1}else if(!this.options.flex)break}return $?(G=this.test_match($,Q[X]),G!==!1?G:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var $=this.next();return $||this.lex()},"lex"),begin:o(function($){this.conditionStack.push($)},"begin"),popState:o(function(){var $=this.conditionStack.length-1;return $>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function($){return $=this.conditionStack.length-1-Math.abs($||0),$>=0?this.conditionStack[$]:"INITIAL"},"topState"),pushState:o(function($){this.begin($)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function($,V,X,Q){var H=Q;switch(X){case 0:return 38;case 1:return 40;case 2:return 39;case 3:return 44;case 4:return 51;case 5:return 52;case 6:return 53;case 7:return 54;case 8:break;case 9:break;case 10:return 5;case 11:break;case 12:break;case 13:break;case 14:break;case 15:return this.pushState("SCALE"),17;break;case 16:return 18;case 17:this.popState();break;case 18:return this.begin("acc_title"),33;break;case 19:return this.popState(),"acc_title_value";break;case 20:return this.begin("acc_descr"),35;break;case 21:return this.popState(),"acc_descr_value";break;case 22:this.begin("acc_descr_multiline");break;case 23:this.popState();break;case 24:return"acc_descr_multiline_value";case 25:return this.pushState("CLASSDEF"),41;break;case 26:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";break;case 27:return this.popState(),this.pushState("CLASSDEFID"),42;break;case 28:return this.popState(),43;break;case 29:return this.pushState("CLASS"),48;break;case 30:return this.popState(),this.pushState("CLASS_STYLE"),49;break;case 31:return this.popState(),50;break;case 32:return this.pushState("STYLE"),45;break;case 33:return this.popState(),this.pushState("STYLEDEF_STYLES"),46;break;case 34:return this.popState(),47;break;case 35:return this.pushState("SCALE"),17;break;case 36:return 18;case 37:this.popState();break;case 38:this.pushState("STATE");break;case 39:return this.popState(),V.yytext=V.yytext.slice(0,-8).trim(),25;break;case 40:return this.popState(),V.yytext=V.yytext.slice(0,-8).trim(),26;break;case 41:return this.popState(),V.yytext=V.yytext.slice(0,-10).trim(),27;break;case 42:return this.popState(),V.yytext=V.yytext.slice(0,-8).trim(),25;break;case 43:return this.popState(),V.yytext=V.yytext.slice(0,-8).trim(),26;break;case 44:return this.popState(),V.yytext=V.yytext.slice(0,-10).trim(),27;break;case 45:return 51;case 46:return 52;case 47:return 53;case 48:return 54;case 49:this.pushState("STATE_STRING");break;case 50:return this.pushState("STATE_ID"),"AS";break;case 51:return this.popState(),"ID";break;case 52:this.popState();break;case 53:return"STATE_DESCR";case 54:return 19;case 55:this.popState();break;case 56:return this.popState(),this.pushState("struct"),20;break;case 57:break;case 58:return this.popState(),21;break;case 59:break;case 60:return this.begin("NOTE"),29;break;case 61:return this.popState(),this.pushState("NOTE_ID"),59;break;case 62:return this.popState(),this.pushState("NOTE_ID"),60;break;case 63:this.popState(),this.pushState("FLOATING_NOTE");break;case 64:return this.popState(),this.pushState("FLOATING_NOTE_ID"),"AS";break;case 65:break;case 66:return"NOTE_TEXT";case 67:return this.popState(),"ID";break;case 68:return this.popState(),this.pushState("NOTE_TEXT"),24;break;case 69:return this.popState(),V.yytext=V.yytext.substr(2).trim(),31;break;case 70:return this.popState(),V.yytext=V.yytext.slice(0,-8).trim(),31;break;case 71:return 6;case 72:return 6;case 73:return 16;case 74:return 57;case 75:return 24;case 76:return V.yytext=V.yytext.trim(),14;break;case 77:return 15;case 78:return 28;case 79:return 58;case 80:return 5;case 81:return"INVALID"}},"anonymous"),rules:[/^(?:click\b)/i,/^(?:href\b)/i,/^(?:"[^"]*")/i,/^(?:default\b)/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:[\s]+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:classDef\s+)/i,/^(?:DEFAULT\s+)/i,/^(?:\w+\s+)/i,/^(?:[^\n]*)/i,/^(?:class\s+)/i,/^(?:(\w+)+((,\s*\w+)*))/i,/^(?:[^\n]*)/i,/^(?:style\s+)/i,/^(?:[\w,]+\s+)/i,/^(?:[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:state\s+)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*\[\[fork\]\])/i,/^(?:.*\[\[join\]\])/i,/^(?:.*\[\[choice\]\])/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:["])/i,/^(?:\s*as\s+)/i,/^(?:[^\n\{]*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n\s\{]+)/i,/^(?:\n)/i,/^(?:\{)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:\})/i,/^(?:[\n])/i,/^(?:note\s+)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:")/i,/^(?:\s*as\s*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n]*)/i,/^(?:\s*[^:\n\s\-]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:[\s\S]*?end note\b)/i,/^(?:stateDiagram\s+)/i,/^(?:stateDiagram-v2\s+)/i,/^(?:hide empty description\b)/i,/^(?:\[\*\])/i,/^(?:[^:\n\s\-\{]+)/i,/^(?:\s*:(?:[^:\n;]|:[^:\n;])+)/i,/^(?:-->)/i,/^(?:--)/i,/^(?::::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{LINE:{rules:[12,13],inclusive:!1},struct:{rules:[12,13,25,29,32,38,45,46,47,48,57,58,59,60,74,75,76,77,78],inclusive:!1},FLOATING_NOTE_ID:{rules:[67],inclusive:!1},FLOATING_NOTE:{rules:[64,65,66],inclusive:!1},NOTE_TEXT:{rules:[69,70],inclusive:!1},NOTE_ID:{rules:[68],inclusive:!1},NOTE:{rules:[61,62,63],inclusive:!1},STYLEDEF_STYLEOPTS:{rules:[],inclusive:!1},STYLEDEF_STYLES:{rules:[34],inclusive:!1},STYLE_IDS:{rules:[],inclusive:!1},STYLE:{rules:[33],inclusive:!1},CLASS_STYLE:{rules:[31],inclusive:!1},CLASS:{rules:[30],inclusive:!1},CLASSDEFID:{rules:[28],inclusive:!1},CLASSDEF:{rules:[26,27],inclusive:!1},acc_descr_multiline:{rules:[23,24],inclusive:!1},acc_descr:{rules:[21],inclusive:!1},acc_title:{rules:[19],inclusive:!1},SCALE:{rules:[16,17,36,37],inclusive:!1},ALIAS:{rules:[],inclusive:!1},STATE_ID:{rules:[51],inclusive:!1},STATE_STRING:{rules:[52,53],inclusive:!1},FORK_STATE:{rules:[],inclusive:!1},STATE:{rules:[12,13,39,40,41,42,43,44,49,50,54,55,56],inclusive:!1},ID:{rules:[12,13],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,13,14,15,18,20,22,25,29,32,35,38,56,60,71,72,73,74,75,76,77,79,80,81],inclusive:!0}}};return F})();R.lexer=P;function B(){this.yy={}}return o(B,"Parser"),B.prototype=R,R.Parser=B,new B})();fU.parser=fU;X7=fU});var yp,Qm,v3,i5e,a5e,s5e,Zm,K7,pU,mU,gU,yU,Q7,Z7,o5e,l5e,vU,xU,c5e,u5e,$v,Wct,h5e,bU,Hct,Yct,f5e,d5e,jct,p5e,Xct,m5e,TU,wU,g5e,J7,y5e,kU,e_=O(()=>{"use strict";yp="state",Qm="root",v3="relation",i5e="classDef",a5e="style",s5e="applyClass",Zm="default",K7="divider",pU="fill:none",mU="fill: #333",gU="markdown",yU="normal",Q7="rect",Z7="rectWithTitle",o5e="stateStart",l5e="stateEnd",vU="divider",xU="roundedWithTitle",c5e="note",u5e="noteGroup",$v="statediagram",Wct="state",h5e=`${$v}-${Wct}`,bU="transition",Hct="note",Yct="note-edge",f5e=`${bU} ${Yct}`,d5e=`${$v}-${Hct}`,jct="cluster",p5e=`${$v}-${jct}`,Xct="cluster-alt",m5e=`${$v}-${Xct}`,TU="parent",wU="note",g5e="state",J7="----",y5e=`${J7}${wU}`,kU=`${J7}${TU}`});function EU(t="",e=0,r="",n=J7){let i=r!==null&&r.length>0?`${n}${r}`:"";return`${g5e}-${t}${i}-${e}`}function t_(t,e,r){if(!e.id||e.id===""||e.id==="")return;e.cssClasses&&(Array.isArray(e.cssCompiledStyles)||(e.cssCompiledStyles=[]),e.cssClasses.split(" ").forEach(i=>{let a=r.get(i);a&&(e.cssCompiledStyles=[...e.cssCompiledStyles??[],...a.styles])}));let n=t.find(i=>i.id===e.id);n?Object.assign(n,e):t.push(e)}function Qct(t){return t?.classes?.join(" ")??""}function Zct(t){return t?.styles??[]}var r_,vp,Kct,v5e,zv,b5e,T5e=O(()=>{"use strict";jt();xt();Ur();e_();r_=new Map,vp=0;o(EU,"stateDomId");Kct=o((t,e,r,n,i,a,s,l)=>{K.trace("items",e),e.forEach(u=>{switch(u.stmt){case yp:zv(t,u,r,n,i,a,s,l);break;case Zm:zv(t,u,r,n,i,a,s,l);break;case v3:{zv(t,u.state1,r,n,i,a,s,l),zv(t,u.state2,r,n,i,a,s,l);let h={id:"edge"+vp,start:u.state1.id,end:u.state2.id,arrowhead:"normal",arrowTypeEnd:"arrow_barb",style:pU,labelStyle:"",label:st.sanitizeText(u.description??"",ve()),arrowheadStyle:mU,labelpos:"c",labelType:gU,thickness:yU,classes:bU,look:s};i.push(h),vp++}break}})},"setupDoc"),v5e=o((t,e="TB")=>{let r=e;if(t.doc)for(let n of t.doc)n.stmt==="dir"&&(r=n.value);return r},"getDir");o(t_,"insertOrUpdateNode");o(Qct,"getClassesFromDbInfo");o(Zct,"getStylesFromDbInfo");zv=o((t,e,r,n,i,a,s,l)=>{let u=e.id,h=r.get(u),f=Qct(h),d=Zct(h),p=ve();if(K.info("dataFetcher parsedItem",e,h,d),u!=="root"){let m=Q7;e.start===!0?m=o5e:e.start===!1&&(m=l5e),e.type!==Zm&&(m=e.type),r_.get(u)||r_.set(u,{id:u,shape:m,description:st.sanitizeText(u,p),cssClasses:`${f} ${h5e}`,cssStyles:d});let g=r_.get(u);e.description&&(Array.isArray(g.description)?(g.shape=Z7,g.description.push(e.description)):g.description?.length&&g.description.length>0?(g.shape=Z7,g.description===u?g.description=[e.description]:g.description=[g.description,e.description]):(g.shape=Q7,g.description=e.description),g.description=st.sanitizeTextOrArray(g.description,p)),g.description?.length===1&&g.shape===Z7&&(g.type==="group"?g.shape=xU:g.shape=Q7),!g.type&&e.doc&&(K.info("Setting cluster for XCX",u,v5e(e)),g.type="group",g.isGroup=!0,g.dir=v5e(e),g.shape=e.type===K7?vU:xU,g.cssClasses=`${g.cssClasses} ${p5e} ${a?m5e:""}`);let y={labelStyle:"",shape:g.shape,label:g.description,cssClasses:g.cssClasses,cssCompiledStyles:[],cssStyles:g.cssStyles,id:u,dir:g.dir,domId:EU(u,vp),type:g.type,isGroup:g.type==="group",padding:8,rx:10,ry:10,look:s,labelType:"markdown"};if(y.shape===vU&&(y.label=""),t&&t.id!=="root"&&(K.trace("Setting node ",u," to be child of its parent ",t.id),y.parentId=t.id),y.centerLabel=!0,e.note){let v={labelStyle:"",shape:c5e,label:e.note.text,labelType:"markdown",cssClasses:d5e,cssStyles:[],cssCompiledStyles:[],id:u+y5e+"-"+vp,domId:EU(u,vp,wU),type:g.type,isGroup:g.type==="group",padding:p.flowchart?.padding,look:s,position:e.note.position},x=u+kU,b={labelStyle:"",shape:u5e,label:e.note.text,cssClasses:g.cssClasses,cssStyles:[],id:u+kU,domId:EU(u,vp,TU),type:"group",isGroup:!0,padding:16,look:s,position:e.note.position};vp++,b.id=x,v.parentId=x,t_(n,b,l),t_(n,v,l),t_(n,y,l);let T=u,E=v.id;e.note.position==="left of"&&(T=v.id,E=u),i.push({id:T+"-"+E,start:T,end:E,arrowhead:"none",arrowTypeEnd:"",style:pU,labelStyle:"",classes:f5e,arrowheadStyle:mU,labelpos:"c",labelType:gU,thickness:yU,look:s})}else t_(n,y,l)}e.doc&&(K.trace("Adding nodes children "),Kct(e,e.doc,r,n,i,!a,s,l))},"dataFetcher"),b5e=o(()=>{r_.clear(),vp=0},"reset")});var CU,Jct,eut,w5e,AU=O(()=>{"use strict";jt();xt();b0();Rd();Ld();ar();e_();CU=o((t,e="TB")=>{if(!t.doc)return e;let r=e;for(let n of t.doc)n.stmt==="dir"&&(r=n.value);return r},"getDir"),Jct=o(function(t,e){return e.db.getClasses()},"getClasses"),eut=o(async function(t,e,r,n){K.info("REF0:"),K.info("Drawing state diagram (v2)",e);let{securityLevel:i,state:a,layout:s}=ve();n.db.extract(n.db.getRootDocV2());let l=n.db.getData(),u=Sl(e,i);l.type=n.type,l.layoutAlgorithm=s,l.nodeSpacing=a?.nodeSpacing||50,l.rankSpacing=a?.rankSpacing||50,l.markers=["barb"],l.diagramId=e,await Ol(l,u);let h=8;try{(typeof n.db.getLinks=="function"?n.db.getLinks():new Map).forEach((d,p)=>{let m=typeof p=="string"?p:typeof p?.id=="string"?p.id:"";if(!m){K.warn("\u26A0\uFE0F Invalid or missing stateId from key:",JSON.stringify(p));return}let g=u.node()?.querySelectorAll("g"),y;if(g?.forEach(T=>{T.textContent?.trim()===m&&(y=T)}),!y){K.warn("\u26A0\uFE0F Could not find node matching text:",m);return}let v=y.parentNode;if(!v){K.warn("\u26A0\uFE0F Node has no parent, cannot wrap:",m);return}let x=document.createElementNS("http://www.w3.org/2000/svg","a"),b=d.url.replace(/^"+|"+$/g,"");if(x.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",b),x.setAttribute("target","_blank"),d.tooltip){let T=d.tooltip.replace(/^"+|"+$/g,"");x.setAttribute("title",T)}v.replaceChild(x,y),x.appendChild(y),K.info("\u{1F517} Wrapped node in
    tag for:",m,d.url)})}catch(f){K.error("\u274C Error injecting clickable links:",f)}Xt.insertTitle(u,"statediagramTitleText",a?.titleTopMargin??25,n.db.getDiagramTitle()),bo(u,h,$v,a?.useMaxWidth??!0)},"draw"),w5e={getClasses:Jct,draw:eut,getDir:CU}});var Hs,E5e,S5e,n_,Wl,i_=O(()=>{"use strict";jt();xt();ar();Ur();si();T5e();AU();e_();Hs={START_NODE:"[*]",START_TYPE:"start",END_NODE:"[*]",END_TYPE:"end",COLOR_KEYWORD:"color",FILL_KEYWORD:"fill",BG_FILL:"bgFill",STYLECLASS_SEP:","},E5e=o(()=>new Map,"newClassesList"),S5e=o(()=>({relations:[],states:new Map,documents:{}}),"newDoc"),n_=o(t=>JSON.parse(JSON.stringify(t)),"clone"),Wl=class{constructor(e){this.version=e;this.nodes=[];this.edges=[];this.rootDoc=[];this.classes=E5e();this.documents={root:S5e()};this.currentDocument=this.documents.root;this.startEndCount=0;this.dividerCnt=0;this.links=new Map;this.getAccTitle=Or;this.setAccTitle=Lr;this.getAccDescription=Br;this.setAccDescription=Pr;this.setDiagramTitle=zr;this.getDiagramTitle=Fr;this.clear(),this.setRootDoc=this.setRootDoc.bind(this),this.getDividerId=this.getDividerId.bind(this),this.setDirection=this.setDirection.bind(this),this.trimColon=this.trimColon.bind(this)}static{o(this,"StateDB")}static{this.relationType={AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3}}extract(e){this.clear(!0);for(let i of Array.isArray(e)?e:e.doc)switch(i.stmt){case yp:this.addState(i.id.trim(),i.type,i.doc,i.description,i.note);break;case v3:this.addRelation(i.state1,i.state2,i.description);break;case i5e:this.addStyleClass(i.id.trim(),i.classes);break;case a5e:this.handleStyleDef(i);break;case s5e:this.setCssClass(i.id.trim(),i.styleClass);break;case"click":this.addLink(i.id,i.url,i.tooltip);break}let r=this.getStates(),n=ve();b5e(),zv(void 0,this.getRootDocV2(),r,this.nodes,this.edges,!0,n.look,this.classes);for(let i of this.nodes)if(Array.isArray(i.label)){if(i.description=i.label.slice(1),i.isGroup&&i.description.length>0)throw new Error(`Group nodes can only have label. Remove the additional description for node [${i.id}]`);i.label=i.label[0]}}handleStyleDef(e){let r=e.id.trim().split(","),n=e.styleClass.split(",");for(let i of r){let a=this.getState(i);if(!a){let s=i.trim();this.addState(s),a=this.getState(s)}a&&(a.styles=n.map(s=>s.replace(/;/g,"")?.trim()))}}setRootDoc(e){K.info("Setting root doc",e),this.rootDoc=e,this.version===1?this.extract(e):this.extract(this.getRootDocV2())}docTranslator(e,r,n){if(r.stmt===v3){this.docTranslator(e,r.state1,!0),this.docTranslator(e,r.state2,!1);return}if(r.stmt===yp&&(r.id===Hs.START_NODE?(r.id=e.id+(n?"_start":"_end"),r.start=n):r.id=r.id.trim()),r.stmt!==Qm&&r.stmt!==yp||!r.doc)return;let i=[],a=[];for(let s of r.doc)if(s.type===K7){let l=n_(s);l.doc=n_(a),i.push(l),a=[]}else a.push(s);if(i.length>0&&a.length>0){let s={stmt:yp,id:LN(),type:"divider",doc:n_(a)};i.push(n_(s)),r.doc=i}r.doc.forEach(s=>this.docTranslator(r,s,!0))}getRootDocV2(){return this.docTranslator({id:Qm,stmt:Qm},{id:Qm,stmt:Qm,doc:this.rootDoc},!0),{id:Qm,doc:this.rootDoc}}addState(e,r=Zm,n=void 0,i=void 0,a=void 0,s=void 0,l=void 0,u=void 0){let h=e?.trim();if(!this.currentDocument.states.has(h))K.info("Adding state ",h,i),this.currentDocument.states.set(h,{stmt:yp,id:h,descriptions:[],type:r,doc:n,note:a,classes:[],styles:[],textStyles:[]});else{let f=this.currentDocument.states.get(h);if(!f)throw new Error(`State not found: ${h}`);f.doc||(f.doc=n),f.type||(f.type=r)}if(i&&(K.info("Setting state description",h,i),(Array.isArray(i)?i:[i]).forEach(d=>this.addDescription(h,d.trim()))),a){let f=this.currentDocument.states.get(h);if(!f)throw new Error(`State not found: ${h}`);f.note=a,f.note.text=st.sanitizeText(f.note.text,ve())}s&&(K.info("Setting state classes",h,s),(Array.isArray(s)?s:[s]).forEach(d=>this.setCssClass(h,d.trim()))),l&&(K.info("Setting state styles",h,l),(Array.isArray(l)?l:[l]).forEach(d=>this.setStyle(h,d.trim()))),u&&(K.info("Setting state styles",h,l),(Array.isArray(u)?u:[u]).forEach(d=>this.setTextStyle(h,d.trim())))}clear(e){this.nodes=[],this.edges=[],this.documents={root:S5e()},this.currentDocument=this.documents.root,this.startEndCount=0,this.classes=E5e(),e||(this.links=new Map,_r())}getState(e){return this.currentDocument.states.get(e)}getStates(){return this.currentDocument.states}logDocuments(){K.info("Documents = ",this.documents)}getRelations(){return this.currentDocument.relations}addLink(e,r,n){this.links.set(e,{url:r,tooltip:n}),K.warn("Adding link",e,r,n)}getLinks(){return this.links}startIdIfNeeded(e=""){return e===Hs.START_NODE?(this.startEndCount++,`${Hs.START_TYPE}${this.startEndCount}`):e}startTypeIfNeeded(e="",r=Zm){return e===Hs.START_NODE?Hs.START_TYPE:r}endIdIfNeeded(e=""){return e===Hs.END_NODE?(this.startEndCount++,`${Hs.END_TYPE}${this.startEndCount}`):e}endTypeIfNeeded(e="",r=Zm){return e===Hs.END_NODE?Hs.END_TYPE:r}addRelationObjs(e,r,n=""){let i=this.startIdIfNeeded(e.id.trim()),a=this.startTypeIfNeeded(e.id.trim(),e.type),s=this.startIdIfNeeded(r.id.trim()),l=this.startTypeIfNeeded(r.id.trim(),r.type);this.addState(i,a,e.doc,e.description,e.note,e.classes,e.styles,e.textStyles),this.addState(s,l,r.doc,r.description,r.note,r.classes,r.styles,r.textStyles),this.currentDocument.relations.push({id1:i,id2:s,relationTitle:st.sanitizeText(n,ve())})}addRelation(e,r,n){if(typeof e=="object"&&typeof r=="object")this.addRelationObjs(e,r,n);else if(typeof e=="string"&&typeof r=="string"){let i=this.startIdIfNeeded(e.trim()),a=this.startTypeIfNeeded(e),s=this.endIdIfNeeded(r.trim()),l=this.endTypeIfNeeded(r);this.addState(i,a),this.addState(s,l),this.currentDocument.relations.push({id1:i,id2:s,relationTitle:n?st.sanitizeText(n,ve()):void 0})}}addDescription(e,r){let n=this.currentDocument.states.get(e),i=r.startsWith(":")?r.replace(":","").trim():r;n?.descriptions?.push(st.sanitizeText(i,ve()))}cleanupLabel(e){return e.startsWith(":")?e.slice(2).trim():e.trim()}getDividerId(){return this.dividerCnt++,`divider-id-${this.dividerCnt}`}addStyleClass(e,r=""){this.classes.has(e)||this.classes.set(e,{id:e,styles:[],textStyles:[]});let n=this.classes.get(e);r&&n&&r.split(Hs.STYLECLASS_SEP).forEach(i=>{let a=i.replace(/([^;]*);/,"$1").trim();if(RegExp(Hs.COLOR_KEYWORD).exec(i)){let l=a.replace(Hs.FILL_KEYWORD,Hs.BG_FILL).replace(Hs.COLOR_KEYWORD,Hs.FILL_KEYWORD);n.textStyles.push(l)}n.styles.push(a)})}getClasses(){return this.classes}setCssClass(e,r){e.split(",").forEach(n=>{let i=this.getState(n);if(!i){let a=n.trim();this.addState(a),i=this.getState(a)}i?.classes?.push(r)})}setStyle(e,r){this.getState(e)?.styles?.push(r)}setTextStyle(e,r){this.getState(e)?.textStyles?.push(r)}getDirectionStatement(){return this.rootDoc.find(e=>e.stmt==="dir")}getDirection(){return this.getDirectionStatement()?.value??"TB"}setDirection(e){let r=this.getDirectionStatement();r?r.value=e:this.rootDoc.unshift({stmt:"dir",value:e})}trimColon(e){return e.startsWith(":")?e.slice(1).trim():e.trim()}getData(){let e=ve();return{nodes:this.nodes,edges:this.edges,other:{},config:e,direction:CU(this.getRootDocV2())}}getConfig(){return ve().state}}});var rut,a_,_U=O(()=>{"use strict";rut=o(t=>` +defs #statediagram-barbEnd { + fill: ${t.transitionColor}; + stroke: ${t.transitionColor}; + } +g.stateGroup text { + fill: ${t.nodeBorder}; + stroke: none; + font-size: 10px; +} +g.stateGroup text { + fill: ${t.textColor}; + stroke: none; + font-size: 10px; + +} +g.stateGroup .state-title { + font-weight: bolder; + fill: ${t.stateLabelColor}; +} + +g.stateGroup rect { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; +} + +g.stateGroup line { + stroke: ${t.lineColor}; + stroke-width: 1; +} + +.transition { + stroke: ${t.transitionColor}; + stroke-width: 1; + fill: none; +} + +.stateGroup .composit { + fill: ${t.background}; + border-bottom: 1px +} + +.stateGroup .alt-composit { + fill: #e0e0e0; + border-bottom: 1px +} + +.state-note { + stroke: ${t.noteBorderColor}; + fill: ${t.noteBkgColor}; + + text { + fill: ${t.noteTextColor}; + stroke: none; + font-size: 10px; + } +} + +.stateLabel .box { + stroke: none; + stroke-width: 0; + fill: ${t.mainBkg}; + opacity: 0.5; +} + +.edgeLabel .label rect { + fill: ${t.labelBackgroundColor}; + opacity: 0.5; +} +.edgeLabel { + background-color: ${t.edgeLabelBackground}; + p { + background-color: ${t.edgeLabelBackground}; + } + rect { + opacity: 0.5; + background-color: ${t.edgeLabelBackground}; + fill: ${t.edgeLabelBackground}; + } + text-align: center; +} +.edgeLabel .label text { + fill: ${t.transitionLabelColor||t.tertiaryTextColor}; +} +.label div .edgeLabel { + color: ${t.transitionLabelColor||t.tertiaryTextColor}; +} + +.stateLabel text { + fill: ${t.stateLabelColor}; + font-size: 10px; + font-weight: bold; +} + +.node circle.state-start { + fill: ${t.specialStateColor}; + stroke: ${t.specialStateColor}; +} + +.node .fork-join { + fill: ${t.specialStateColor}; + stroke: ${t.specialStateColor}; +} + +.node circle.state-end { + fill: ${t.innerEndBackground}; + stroke: ${t.background}; + stroke-width: 1.5 +} +.end-state-inner { + fill: ${t.compositeBackground||t.background}; + // stroke: ${t.background}; + stroke-width: 1.5 +} + +.node rect { + fill: ${t.stateBkg||t.mainBkg}; + stroke: ${t.stateBorder||t.nodeBorder}; + stroke-width: 1px; +} +.node polygon { + fill: ${t.mainBkg}; + stroke: ${t.stateBorder||t.nodeBorder};; + stroke-width: 1px; +} +#statediagram-barbEnd { + fill: ${t.lineColor}; +} + +.statediagram-cluster rect { + fill: ${t.compositeTitleBackground}; + stroke: ${t.stateBorder||t.nodeBorder}; + stroke-width: 1px; +} + +.cluster-label, .nodeLabel { + color: ${t.stateLabelColor}; + // line-height: 1; +} + +.statediagram-cluster rect.outer { + rx: 5px; + ry: 5px; +} +.statediagram-state .divider { + stroke: ${t.stateBorder||t.nodeBorder}; +} + +.statediagram-state .title-state { + rx: 5px; + ry: 5px; +} +.statediagram-cluster.statediagram-cluster .inner { + fill: ${t.compositeBackground||t.background}; +} +.statediagram-cluster.statediagram-cluster-alt .inner { + fill: ${t.altBackground?t.altBackground:"#efefef"}; +} + +.statediagram-cluster .inner { + rx:0; + ry:0; +} + +.statediagram-state rect.basic { + rx: 5px; + ry: 5px; +} +.statediagram-state rect.divider { + stroke-dasharray: 10,10; + fill: ${t.altBackground?t.altBackground:"#efefef"}; +} + +.note-edge { + stroke-dasharray: 5; +} + +.statediagram-note rect { + fill: ${t.noteBkgColor}; + stroke: ${t.noteBorderColor}; + stroke-width: 1px; + rx: 0; + ry: 0; +} +.statediagram-note rect { + fill: ${t.noteBkgColor}; + stroke: ${t.noteBorderColor}; + stroke-width: 1px; + rx: 0; + ry: 0; +} + +.statediagram-note text { + fill: ${t.noteTextColor}; +} + +.statediagram-note .nodeLabel { + color: ${t.noteTextColor}; +} +.statediagram .edgeLabel { + color: red; // ${t.noteTextColor}; +} + +#dependencyStart, #dependencyEnd { + fill: ${t.lineColor}; + stroke: ${t.lineColor}; + stroke-width: 1; +} + +.statediagramTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; +} +`,"getStyles"),a_=rut});var nut,iut,aut,sut,A5e,out,lut,cut,uut,DU,C5e,_5e,D5e=O(()=>{"use strict";Ar();i_();ar();Ur();jt();xt();nut=o(t=>t.append("circle").attr("class","start-state").attr("r",ve().state.sizeUnit).attr("cx",ve().state.padding+ve().state.sizeUnit).attr("cy",ve().state.padding+ve().state.sizeUnit),"drawStartState"),iut=o(t=>t.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",ve().state.textHeight).attr("class","divider").attr("x2",ve().state.textHeight*2).attr("y1",0).attr("y2",0),"drawDivider"),aut=o((t,e)=>{let r=t.append("text").attr("x",2*ve().state.padding).attr("y",ve().state.textHeight+2*ve().state.padding).attr("font-size",ve().state.fontSize).attr("class","state-title").text(e.id),n=r.node().getBBox();return t.insert("rect",":first-child").attr("x",ve().state.padding).attr("y",ve().state.padding).attr("width",n.width+2*ve().state.padding).attr("height",n.height+2*ve().state.padding).attr("rx",ve().state.radius),r},"drawSimpleState"),sut=o((t,e)=>{let r=o(function(p,m,g){let y=p.append("tspan").attr("x",2*ve().state.padding).text(m);g||y.attr("dy",ve().state.textHeight)},"addTspan"),i=t.append("text").attr("x",2*ve().state.padding).attr("y",ve().state.textHeight+1.3*ve().state.padding).attr("font-size",ve().state.fontSize).attr("class","state-title").text(e.descriptions[0]).node().getBBox(),a=i.height,s=t.append("text").attr("x",ve().state.padding).attr("y",a+ve().state.padding*.4+ve().state.dividerMargin+ve().state.textHeight).attr("class","state-description"),l=!0,u=!0;e.descriptions.forEach(function(p){l||(r(s,p,u),u=!1),l=!1});let h=t.append("line").attr("x1",ve().state.padding).attr("y1",ve().state.padding+a+ve().state.dividerMargin/2).attr("y2",ve().state.padding+a+ve().state.dividerMargin/2).attr("class","descr-divider"),f=s.node().getBBox(),d=Math.max(f.width,i.width);return h.attr("x2",d+3*ve().state.padding),t.insert("rect",":first-child").attr("x",ve().state.padding).attr("y",ve().state.padding).attr("width",d+2*ve().state.padding).attr("height",f.height+a+2*ve().state.padding).attr("rx",ve().state.radius),t},"drawDescrState"),A5e=o((t,e,r)=>{let n=ve().state.padding,i=2*ve().state.padding,a=t.node().getBBox(),s=a.width,l=a.x,u=t.append("text").attr("x",0).attr("y",ve().state.titleShift).attr("font-size",ve().state.fontSize).attr("class","state-title").text(e.id),f=u.node().getBBox().width+i,d=Math.max(f,s);d===s&&(d=d+i);let p,m=t.node().getBBox();e.doc,p=l-n,f>s&&(p=(s-d)/2+n),Math.abs(l-m.x)s&&(p=l-(f-s)/2);let g=1-ve().state.textHeight;return t.insert("rect",":first-child").attr("x",p).attr("y",g).attr("class",r?"alt-composit":"composit").attr("width",d).attr("height",m.height+ve().state.textHeight+ve().state.titleShift+1).attr("rx","0"),u.attr("x",p+n),f<=s&&u.attr("x",l+(d-i)/2-f/2+n),t.insert("rect",":first-child").attr("x",p).attr("y",ve().state.titleShift-ve().state.textHeight-ve().state.padding).attr("width",d).attr("height",ve().state.textHeight*3).attr("rx",ve().state.radius),t.insert("rect",":first-child").attr("x",p).attr("y",ve().state.titleShift-ve().state.textHeight-ve().state.padding).attr("width",d).attr("height",m.height+3+2*ve().state.textHeight).attr("rx",ve().state.radius),t},"addTitleAndBox"),out=o(t=>(t.append("circle").attr("class","end-state-outer").attr("r",ve().state.sizeUnit+ve().state.miniPadding).attr("cx",ve().state.padding+ve().state.sizeUnit+ve().state.miniPadding).attr("cy",ve().state.padding+ve().state.sizeUnit+ve().state.miniPadding),t.append("circle").attr("class","end-state-inner").attr("r",ve().state.sizeUnit).attr("cx",ve().state.padding+ve().state.sizeUnit+2).attr("cy",ve().state.padding+ve().state.sizeUnit+2)),"drawEndState"),lut=o((t,e)=>{let r=ve().state.forkWidth,n=ve().state.forkHeight;if(e.parentId){let i=r;r=n,n=i}return t.append("rect").style("stroke","black").style("fill","black").attr("width",r).attr("height",n).attr("x",ve().state.padding).attr("y",ve().state.padding)},"drawForkJoinState"),cut=o((t,e,r,n)=>{let i=0,a=n.append("text");a.style("text-anchor","start"),a.attr("class","noteText");let s=t.replace(/\r\n/g,"
    ");s=s.replace(/\n/g,"
    ");let l=s.split(st.lineBreakRegex),u=1.25*ve().state.noteMargin;for(let h of l){let f=h.trim();if(f.length>0){let d=a.append("tspan");if(d.text(f),u===0){let p=d.node().getBBox();u+=p.height}i+=u,d.attr("x",e+ve().state.noteMargin),d.attr("y",r+i+1.25*ve().state.noteMargin)}}return{textWidth:a.node().getBBox().width,textHeight:i}},"_drawLongText"),uut=o((t,e)=>{e.attr("class","state-note");let r=e.append("rect").attr("x",0).attr("y",ve().state.padding),n=e.append("g"),{textWidth:i,textHeight:a}=cut(t,0,0,n);return r.attr("height",a+2*ve().state.noteMargin),r.attr("width",i+ve().state.noteMargin*2),r},"drawNote"),DU=o(function(t,e){let r=e.id,n={id:r,label:e.id,width:0,height:0},i=t.append("g").attr("id",r).attr("class","stateGroup");e.type==="start"&&nut(i),e.type==="end"&&out(i),(e.type==="fork"||e.type==="join")&&lut(i,e),e.type==="note"&&uut(e.note.text,i),e.type==="divider"&&iut(i),e.type==="default"&&e.descriptions.length===0&&aut(i,e),e.type==="default"&&e.descriptions.length>0&&sut(i,e);let a=i.node().getBBox();return n.width=a.width+2*ve().state.padding,n.height=a.height+2*ve().state.padding,n},"drawState"),C5e=0,_5e=o(function(t,e,r){let n=o(function(u){switch(u){case Wl.relationType.AGGREGATION:return"aggregation";case Wl.relationType.EXTENSION:return"extension";case Wl.relationType.COMPOSITION:return"composition";case Wl.relationType.DEPENDENCY:return"dependency"}},"getRelationType");e.points=e.points.filter(u=>!Number.isNaN(u.y));let i=e.points,a=hc().x(function(u){return u.x}).y(function(u){return u.y}).curve(fc),s=t.append("path").attr("d",a(i)).attr("id","edge"+C5e).attr("class","transition"),l="";if(ve().state.arrowMarkerAbsolute&&(l=Op(!0)),s.attr("marker-end","url("+l+"#"+n(Wl.relationType.DEPENDENCY)+"End)"),r.title!==void 0){let u=t.append("g").attr("class","stateLabel"),{x:h,y:f}=Xt.calcLabelPosition(e.points),d=st.getRows(r.title),p=0,m=[],g=0,y=0;for(let b=0;b<=d.length;b++){let T=u.append("text").attr("text-anchor","middle").text(d[b]).attr("x",h).attr("y",f+p),E=T.node().getBBox();g=Math.max(g,E.width),y=Math.min(y,E.x),K.info(E.x,h,f+p),p===0&&(p=T.node().getBBox().height,K.info("Title height",p,f)),m.push(T)}let v=p*d.length;if(d.length>1){let b=(d.length-1)*p*.5;m.forEach((T,E)=>T.attr("y",f+E*p-b)),v=p*d.length}let x=u.node().getBBox();u.insert("rect",":first-child").attr("class","box").attr("x",h-g/2-ve().state.padding/2).attr("y",f-v/2-ve().state.padding/2-3.5).attr("width",g+ve().state.padding).attr("height",v+ve().state.padding),K.info(x)}C5e++},"drawEdge")});var al,RU,hut,fut,dut,put,R5e,L5e,N5e=O(()=>{"use strict";Ar();rO();Dl();xt();Ur();D5e();jt();Ti();RU={},hut=o(function(){},"setConf"),fut=o(function(t){t.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},"insertMarkers"),dut=o(function(t,e,r,n){al=ve().state;let i=ve().securityLevel,a;i==="sandbox"&&(a=je("#i"+e));let s=i==="sandbox"?je(a.nodes()[0].contentDocument.body):je("body"),l=i==="sandbox"?a.nodes()[0].contentDocument:document;K.debug("Rendering diagram "+t);let u=s.select(`[id='${e}']`);fut(u);let h=n.db.getRootDoc();R5e(h,u,void 0,!1,s,l,n);let f=al.padding,d=u.node().getBBox(),p=d.width+f*2,m=d.height+f*2,g=p*1.75;Zr(u,m,g,al.useMaxWidth),u.attr("viewBox",`${d.x-al.padding} ${d.y-al.padding} `+p+" "+m)},"draw"),put=o(t=>t?t.length*al.fontSizeFactor:1,"getLabelWidth"),R5e=o((t,e,r,n,i,a,s)=>{let l=new wn({compound:!0,multigraph:!0}),u,h=!0;for(u=0;u{let w=E.parentElement,k=0,S=0;w&&(w.parentElement&&(k=w.parentElement.getBBox().width),S=parseInt(w.getAttribute("data-x-shift"),10),Number.isNaN(S)&&(S=0)),E.setAttribute("x1",0-S+8),E.setAttribute("x2",k-S-8)})):K.debug("No Node "+b+": "+JSON.stringify(l.node(b)))});let v=y.getBBox();l.edges().forEach(function(b){b!==void 0&&l.edge(b)!==void 0&&(K.debug("Edge "+b.v+" -> "+b.w+": "+JSON.stringify(l.edge(b))),_5e(e,l.edge(b),l.edge(b).relation))}),v=y.getBBox();let x={id:r||"root",label:r||"root",width:0,height:0};return x.width=v.width+2*al.padding,x.height=v.height+2*al.padding,K.debug("Doc rendered",x,l),x},"renderDoc"),L5e={setConf:hut,draw:dut}});var M5e={};vr(M5e,{diagram:()=>mut});var mut,I5e=O(()=>{"use strict";dU();i_();_U();N5e();mut={parser:X7,get db(){return new Wl(1)},renderer:L5e,styles:a_,init:o(t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute},"init")}});var B5e={};vr(B5e,{diagram:()=>xut});var xut,F5e=O(()=>{"use strict";dU();i_();_U();AU();xut={parser:X7,get db(){return new Wl(2)},renderer:w5e,styles:a_,init:o(t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute},"init")}});var LU,G5e,V5e=O(()=>{"use strict";LU=(function(){var t=o(function(d,p,m,g){for(m=m||{},g=d.length;g--;m[d[g]]=p);return m},"o"),e=[6,8,10,11,12,14,16,17,18],r=[1,9],n=[1,10],i=[1,11],a=[1,12],s=[1,13],l=[1,14],u={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,taskName:18,taskData:19,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",18:"taskName",19:"taskData"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,2]],performAction:o(function(p,m,g,y,v,x,b){var T=x.length-1;switch(v){case 1:return x[T-1];case 2:this.$=[];break;case 3:x[T-1].push(x[T]),this.$=x[T-1];break;case 4:case 5:this.$=x[T];break;case 6:case 7:this.$=[];break;case 8:y.setDiagramTitle(x[T].substr(6)),this.$=x[T].substr(6);break;case 9:this.$=x[T].trim(),y.setAccTitle(this.$);break;case 10:case 11:this.$=x[T].trim(),y.setAccDescription(this.$);break;case 12:y.addSection(x[T].substr(8)),this.$=x[T].substr(8);break;case 13:y.addTask(x[T-1],x[T]),this.$="task";break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:r,12:n,14:i,16:a,17:s,18:l},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:15,11:r,12:n,14:i,16:a,17:s,18:l},t(e,[2,5]),t(e,[2,6]),t(e,[2,8]),{13:[1,16]},{15:[1,17]},t(e,[2,11]),t(e,[2,12]),{19:[1,18]},t(e,[2,4]),t(e,[2,9]),t(e,[2,10]),t(e,[2,13])],defaultActions:{},parseError:o(function(p,m){if(m.recoverable)this.trace(p);else{var g=new Error(p);throw g.hash=m,g}},"parseError"),parse:o(function(p){var m=this,g=[0],y=[],v=[null],x=[],b=this.table,T="",E=0,w=0,k=0,S=2,A=1,L=x.slice.call(arguments,1),I=Object.create(this.lexer),N={yy:{}};for(var C in this.yy)Object.prototype.hasOwnProperty.call(this.yy,C)&&(N.yy[C]=this.yy[C]);I.setInput(p,N.yy),N.yy.lexer=I,N.yy.parser=this,typeof I.yylloc>"u"&&(I.yylloc={});var _=I.yylloc;x.push(_);var D=I.options&&I.options.ranges;typeof N.yy.parseError=="function"?this.parseError=N.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function M(ee){g.length=g.length-2*ee,v.length=v.length-ee,x.length=x.length-ee}o(M,"popStack");function R(){var ee;return ee=y.pop()||I.lex()||A,typeof ee!="number"&&(ee instanceof Array&&(y=ee,ee=y.pop()),ee=m.symbols_[ee]||ee),ee}o(R,"lex");for(var P,B,F,G,$,V,X={},Q,H,ie,Y;;){if(F=g[g.length-1],this.defaultActions[F]?G=this.defaultActions[F]:((P===null||typeof P>"u")&&(P=R()),G=b[F]&&b[F][P]),typeof G>"u"||!G.length||!G[0]){var le="";Y=[];for(Q in b[F])this.terminals_[Q]&&Q>S&&Y.push("'"+this.terminals_[Q]+"'");I.showPosition?le="Parse error on line "+(E+1)+`: +`+I.showPosition()+` +Expecting `+Y.join(", ")+", got '"+(this.terminals_[P]||P)+"'":le="Parse error on line "+(E+1)+": Unexpected "+(P==A?"end of input":"'"+(this.terminals_[P]||P)+"'"),this.parseError(le,{text:I.match,token:this.terminals_[P]||P,line:I.yylineno,loc:_,expected:Y})}if(G[0]instanceof Array&&G.length>1)throw new Error("Parse Error: multiple actions possible at state: "+F+", token: "+P);switch(G[0]){case 1:g.push(P),v.push(I.yytext),x.push(I.yylloc),g.push(G[1]),P=null,B?(P=B,B=null):(w=I.yyleng,T=I.yytext,E=I.yylineno,_=I.yylloc,k>0&&k--);break;case 2:if(H=this.productions_[G[1]][1],X.$=v[v.length-H],X._$={first_line:x[x.length-(H||1)].first_line,last_line:x[x.length-1].last_line,first_column:x[x.length-(H||1)].first_column,last_column:x[x.length-1].last_column},D&&(X._$.range=[x[x.length-(H||1)].range[0],x[x.length-1].range[1]]),V=this.performAction.apply(X,[T,w,E,N.yy,G[1],v,x].concat(L)),typeof V<"u")return V;H&&(g=g.slice(0,-1*H*2),v=v.slice(0,-1*H),x=x.slice(0,-1*H)),g.push(this.productions_[G[1]][0]),v.push(X.$),x.push(X._$),ie=b[g[g.length-2]][g[g.length-1]],g.push(ie);break;case 3:return!0}}return!0},"parse")},h=(function(){var d={EOF:1,parseError:o(function(m,g){if(this.yy.parser)this.yy.parser.parseError(m,g);else throw new Error(m)},"parseError"),setInput:o(function(p,m){return this.yy=m||this.yy||{},this._input=p,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var p=this._input[0];this.yytext+=p,this.yyleng++,this.offset++,this.match+=p,this.matched+=p;var m=p.match(/(?:\r\n?|\n).*/g);return m?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),p},"input"),unput:o(function(p){var m=p.length,g=p.split(/(?:\r\n?|\n)/g);this._input=p+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-m),this.offset-=m;var y=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),g.length-1&&(this.yylineno-=g.length-1);var v=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:g?(g.length===y.length?this.yylloc.first_column:0)+y[y.length-g.length].length-g[0].length:this.yylloc.first_column-m},this.options.ranges&&(this.yylloc.range=[v[0],v[0]+this.yyleng-m]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(p){this.unput(this.match.slice(p))},"less"),pastInput:o(function(){var p=this.matched.substr(0,this.matched.length-this.match.length);return(p.length>20?"...":"")+p.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var p=this.match;return p.length<20&&(p+=this._input.substr(0,20-p.length)),(p.substr(0,20)+(p.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var p=this.pastInput(),m=new Array(p.length+1).join("-");return p+this.upcomingInput()+` +`+m+"^"},"showPosition"),test_match:o(function(p,m){var g,y,v;if(this.options.backtrack_lexer&&(v={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(v.yylloc.range=this.yylloc.range.slice(0))),y=p[0].match(/(?:\r\n?|\n).*/g),y&&(this.yylineno+=y.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:y?y[y.length-1].length-y[y.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+p[0].length},this.yytext+=p[0],this.match+=p[0],this.matches=p,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(p[0].length),this.matched+=p[0],g=this.performAction.call(this,this.yy,this,m,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),g)return g;if(this._backtrack){for(var x in v)this[x]=v[x];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var p,m,g,y;this._more||(this.yytext="",this.match="");for(var v=this._currentRules(),x=0;xm[0].length)){if(m=g,y=x,this.options.backtrack_lexer){if(p=this.test_match(g,v[x]),p!==!1)return p;if(this._backtrack){m=!1;continue}else return!1}else if(!this.options.flex)break}return m?(p=this.test_match(m,v[y]),p!==!1?p:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var m=this.next();return m||this.lex()},"lex"),begin:o(function(m){this.conditionStack.push(m)},"begin"),popState:o(function(){var m=this.conditionStack.length-1;return m>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(m){return m=this.conditionStack.length-1-Math.abs(m||0),m>=0?this.conditionStack[m]:"INITIAL"},"topState"),pushState:o(function(m){this.begin(m)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(m,g,y,v){var x=v;switch(y){case 0:break;case 1:break;case 2:return 10;case 3:break;case 4:break;case 5:return 4;case 6:return 11;case 7:return this.begin("acc_title"),12;break;case 8:return this.popState(),"acc_title_value";break;case 9:return this.begin("acc_descr"),14;break;case 10:return this.popState(),"acc_descr_value";break;case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 17;case 15:return 18;case 16:return 19;case 17:return":";case 18:return 6;case 19:return"INVALID"}},"anonymous"),rules:[/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:journey\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,9,11,14,15,16,17,18,19],inclusive:!0}}};return d})();u.lexer=h;function f(){this.yy={}}return o(f,"Parser"),f.prototype=u,u.Parser=f,new f})();LU.parser=LU;G5e=LU});var Gv,NU,x3,b3,kut,Eut,Sut,Cut,Aut,_ut,Dut,q5e,Rut,MU,U5e=O(()=>{"use strict";jt();si();Gv="",NU=[],x3=[],b3=[],kut=o(function(){NU.length=0,x3.length=0,Gv="",b3.length=0,_r()},"clear"),Eut=o(function(t){Gv=t,NU.push(t)},"addSection"),Sut=o(function(){return NU},"getSections"),Cut=o(function(){let t=q5e(),e=100,r=0;for(;!t&&r{r.people&&t.push(...r.people)}),[...new Set(t)].sort()},"updateActors"),_ut=o(function(t,e){let r=e.substr(1).split(":"),n=0,i=[];r.length===1?(n=Number(r[0]),i=[]):(n=Number(r[0]),i=r[1].split(","));let a=i.map(l=>l.trim()),s={section:Gv,type:Gv,people:a,task:t,score:n};b3.push(s)},"addTask"),Dut=o(function(t){let e={section:Gv,type:Gv,description:t,task:t,classes:[]};x3.push(e)},"addTaskOrg"),q5e=o(function(){let t=o(function(r){return b3[r].processed},"compileTask"),e=!0;for(let[r,n]of b3.entries())t(r),e=e&&n.processed;return e},"compileTasks"),Rut=o(function(){return Aut()},"getActors"),MU={getConfig:o(()=>ve().journey,"getConfig"),clear:kut,setDiagramTitle:zr,getDiagramTitle:Fr,setAccTitle:Lr,getAccTitle:Or,setAccDescription:Pr,getAccDescription:Br,addSection:Eut,getSections:Sut,getTasks:Cut,addTask:_ut,addTaskOrg:Dut,getActors:Rut}});var Lut,W5e,H5e=O(()=>{"use strict";ly();Lut=o(t=>`.label { + font-family: ${t.fontFamily}; + color: ${t.textColor}; + } + .mouth { + stroke: #666; + } + + line { + stroke: ${t.textColor} + } + + .legend { + fill: ${t.textColor}; + font-family: ${t.fontFamily}; + } + + .label text { + fill: #333; + } + .label { + color: ${t.textColor} + } + + .face { + ${t.faceColor?`fill: ${t.faceColor}`:"fill: #FFF8DC"}; + stroke: #999; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + stroke-width: 1px; + } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${t.arrowheadColor}; + } + + .edgePath .path { + stroke: ${t.lineColor}; + stroke-width: 1.5px; + } + + .flowchart-link { + stroke: ${t.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${t.edgeLabelBackground}; + rect { + opacity: 0.5; + } + text-align: center; + } + + .cluster rect { + } + + .cluster text { + fill: ${t.titleColor}; + } + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${t.fontFamily}; + font-size: 12px; + background: ${t.tertiaryColor}; + border: 1px solid ${t.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .task-type-0, .section-type-0 { + ${t.fillType0?`fill: ${t.fillType0}`:""}; + } + .task-type-1, .section-type-1 { + ${t.fillType0?`fill: ${t.fillType1}`:""}; + } + .task-type-2, .section-type-2 { + ${t.fillType0?`fill: ${t.fillType2}`:""}; + } + .task-type-3, .section-type-3 { + ${t.fillType0?`fill: ${t.fillType3}`:""}; + } + .task-type-4, .section-type-4 { + ${t.fillType0?`fill: ${t.fillType4}`:""}; + } + .task-type-5, .section-type-5 { + ${t.fillType0?`fill: ${t.fillType5}`:""}; + } + .task-type-6, .section-type-6 { + ${t.fillType0?`fill: ${t.fillType6}`:""}; + } + .task-type-7, .section-type-7 { + ${t.fillType0?`fill: ${t.fillType7}`:""}; + } + + .actor-0 { + ${t.actor0?`fill: ${t.actor0}`:""}; + } + .actor-1 { + ${t.actor1?`fill: ${t.actor1}`:""}; + } + .actor-2 { + ${t.actor2?`fill: ${t.actor2}`:""}; + } + .actor-3 { + ${t.actor3?`fill: ${t.actor3}`:""}; + } + .actor-4 { + ${t.actor4?`fill: ${t.actor4}`:""}; + } + .actor-5 { + ${t.actor5?`fill: ${t.actor5}`:""}; + } + ${Lu()} +`,"getStyles"),W5e=Lut});var IU,Nut,j5e,X5e,Mut,Iut,Y5e,Out,Put,K5e,But,Vv,Q5e=O(()=>{"use strict";Ar();a0();IU=o(function(t,e){return i0(t,e)},"drawRect"),Nut=o(function(t,e){let n=t.append("circle").attr("cx",e.cx).attr("cy",e.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),i=t.append("g");i.append("circle").attr("cx",e.cx-15/3).attr("cy",e.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),i.append("circle").attr("cx",e.cx+15/3).attr("cy",e.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666");function a(u){let h=uc().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);u.append("path").attr("class","mouth").attr("d",h).attr("transform","translate("+e.cx+","+(e.cy+2)+")")}o(a,"smile");function s(u){let h=uc().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);u.append("path").attr("class","mouth").attr("d",h).attr("transform","translate("+e.cx+","+(e.cy+7)+")")}o(s,"sad");function l(u){u.append("line").attr("class","mouth").attr("stroke",2).attr("x1",e.cx-5).attr("y1",e.cy+7).attr("x2",e.cx+5).attr("y2",e.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return o(l,"ambivalent"),e.score>3?a(i):e.score<3?s(i):l(i),n},"drawFace"),j5e=o(function(t,e){let r=t.append("circle");return r.attr("cx",e.cx),r.attr("cy",e.cy),r.attr("class","actor-"+e.pos),r.attr("fill",e.fill),r.attr("stroke",e.stroke),r.attr("r",e.r),r.class!==void 0&&r.attr("class",r.class),e.title!==void 0&&r.append("title").text(e.title),r},"drawCircle"),X5e=o(function(t,e){return Gee(t,e)},"drawText"),Mut=o(function(t,e){function r(i,a,s,l,u){return i+","+a+" "+(i+s)+","+a+" "+(i+s)+","+(a+l-u)+" "+(i+s-u*1.2)+","+(a+l)+" "+i+","+(a+l)}o(r,"genPoints");let n=t.append("polygon");n.attr("points",r(e.x,e.y,50,20,7)),n.attr("class","labelBox"),e.y=e.y+e.labelMargin,e.x=e.x+.5*e.labelMargin,X5e(t,e)},"drawLabel"),Iut=o(function(t,e,r){let n=t.append("g"),i=Oa();i.x=e.x,i.y=e.y,i.fill=e.fill,i.width=r.width*e.taskCount+r.diagramMarginX*(e.taskCount-1),i.height=r.height,i.class="journey-section section-type-"+e.num,i.rx=3,i.ry=3,IU(n,i),K5e(r)(e.text,n,i.x,i.y,i.width,i.height,{class:"journey-section section-type-"+e.num},r,e.colour)},"drawSection"),Y5e=-1,Out=o(function(t,e,r){let n=e.x+r.width/2,i=t.append("g");Y5e++,i.append("line").attr("id","task"+Y5e).attr("x1",n).attr("y1",e.y).attr("x2",n).attr("y2",450).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),Nut(i,{cx:n,cy:300+(5-e.score)*30,score:e.score});let s=Oa();s.x=e.x,s.y=e.y,s.fill=e.fill,s.width=r.width,s.height=r.height,s.class="task task-type-"+e.num,s.rx=3,s.ry=3,IU(i,s);let l=e.x+14;e.people.forEach(u=>{let h=e.actors[u].color,f={cx:l,cy:e.y,r:7,fill:h,stroke:"#000",title:u,pos:e.actors[u].position};j5e(i,f),l+=10}),K5e(r)(e.task,i,s.x,s.y,s.width,s.height,{class:"task"},r,e.colour)},"drawTask"),Put=o(function(t,e){nk(t,e)},"drawBackgroundRect"),K5e=(function(){function t(i,a,s,l,u,h,f,d){let p=a.append("text").attr("x",s+u/2).attr("y",l+h/2+5).style("font-color",d).style("text-anchor","middle").text(i);n(p,f)}o(t,"byText");function e(i,a,s,l,u,h,f,d,p){let{taskFontSize:m,taskFontFamily:g}=d,y=i.split(//gi);for(let v=0;v{let a=cf[i].color,s={cx:20,cy:n,r:7,fill:a,stroke:"#000",pos:cf[i].position};Vv.drawCircle(t,s);let l=t.append("text").attr("visibility","hidden").text(i),u=l.node().getBoundingClientRect().width;l.remove();let h=[];if(u<=r)h=[i];else{let f=i.split(" "),d="";l=t.append("text").attr("visibility","hidden"),f.forEach(p=>{let m=d?`${d} ${p}`:p;if(l.text(m),l.node().getBoundingClientRect().width>r){if(d&&h.push(d),d=p,l.text(p),l.node().getBoundingClientRect().width>r){let y="";for(let v of p)y+=v,l.text(y+"-"),l.node().getBoundingClientRect().width>r&&(h.push(y.slice(0,-1)+"-"),y=v);d=y}}else d=m}),d&&h.push(d),l.remove()}h.forEach((f,d)=>{let p={x:40,y:n+7+d*20,fill:"#666",text:f,textMargin:e.boxTextMargin??5},g=Vv.drawText(t,p).node().getBoundingClientRect().width;g>s_&&g>e.leftMargin-g&&(s_=g)}),n+=Math.max(20,h.length*20)})}var Fut,cf,s_,Pc,xp,zut,Hl,OU,Z5e,Gut,PU,J5e=O(()=>{"use strict";Ar();Q5e();jt();Ti();Fut=o(function(t){Object.keys(t).forEach(function(r){Pc[r]=t[r]})},"setConf"),cf={},s_=0;o($ut,"drawActorLegend");Pc=ve().journey,xp=0,zut=o(function(t,e,r,n){let i=ve(),a=i.journey.titleColor,s=i.journey.titleFontSize,l=i.journey.titleFontFamily,u=i.securityLevel,h;u==="sandbox"&&(h=je("#i"+e));let f=u==="sandbox"?je(h.nodes()[0].contentDocument.body):je("body");Hl.init();let d=f.select("#"+e);Vv.initGraphics(d);let p=n.db.getTasks(),m=n.db.getDiagramTitle(),g=n.db.getActors();for(let E in cf)delete cf[E];let y=0;g.forEach(E=>{cf[E]={color:Pc.actorColours[y%Pc.actorColours.length],position:y},y++}),$ut(d),xp=Pc.leftMargin+s_,Hl.insert(0,0,xp,Object.keys(cf).length*50),Gut(d,p,0);let v=Hl.getBounds();m&&d.append("text").text(m).attr("x",xp).attr("font-size",s).attr("font-weight","bold").attr("y",25).attr("fill",a).attr("font-family",l);let x=v.stopy-v.starty+2*Pc.diagramMarginY,b=xp+v.stopx+2*Pc.diagramMarginX;Zr(d,x,b,Pc.useMaxWidth),d.append("line").attr("x1",xp).attr("y1",Pc.height*4).attr("x2",b-xp-4).attr("y2",Pc.height*4).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)");let T=m?70:0;d.attr("viewBox",`${v.startx} -25 ${b} ${x+T}`),d.attr("preserveAspectRatio","xMinYMin meet"),d.attr("height",x+T+25)},"draw"),Hl={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],init:o(function(){this.sequenceItems=[],this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0},"init"),updateVal:o(function(t,e,r,n){t[e]===void 0?t[e]=r:t[e]=n(r,t[e])},"updateVal"),updateBounds:o(function(t,e,r,n){let i=ve().journey,a=this,s=0;function l(u){return o(function(f){s++;let d=a.sequenceItems.length-s+1;a.updateVal(f,"starty",e-d*i.boxMargin,Math.min),a.updateVal(f,"stopy",n+d*i.boxMargin,Math.max),a.updateVal(Hl.data,"startx",t-d*i.boxMargin,Math.min),a.updateVal(Hl.data,"stopx",r+d*i.boxMargin,Math.max),u!=="activation"&&(a.updateVal(f,"startx",t-d*i.boxMargin,Math.min),a.updateVal(f,"stopx",r+d*i.boxMargin,Math.max),a.updateVal(Hl.data,"starty",e-d*i.boxMargin,Math.min),a.updateVal(Hl.data,"stopy",n+d*i.boxMargin,Math.max))},"updateItemBounds")}o(l,"updateFn"),this.sequenceItems.forEach(l())},"updateBounds"),insert:o(function(t,e,r,n){let i=Math.min(t,r),a=Math.max(t,r),s=Math.min(e,n),l=Math.max(e,n);this.updateVal(Hl.data,"startx",i,Math.min),this.updateVal(Hl.data,"starty",s,Math.min),this.updateVal(Hl.data,"stopx",a,Math.max),this.updateVal(Hl.data,"stopy",l,Math.max),this.updateBounds(i,s,a,l)},"insert"),bumpVerticalPos:o(function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=this.verticalPos},"bumpVerticalPos"),getVerticalPos:o(function(){return this.verticalPos},"getVerticalPos"),getBounds:o(function(){return this.data},"getBounds")},OU=Pc.sectionFills,Z5e=Pc.sectionColours,Gut=o(function(t,e,r){let n=ve().journey,i="",a=n.height*2+n.diagramMarginY,s=r+a,l=0,u="#CCC",h="black",f=0;for(let[d,p]of e.entries()){if(i!==p.section){u=OU[l%OU.length],f=l%OU.length,h=Z5e[l%Z5e.length];let g=0,y=p.section;for(let x=d;x(cf[y]&&(g[y]=cf[y]),g),{});p.x=d*n.taskMargin+d*n.width+xp,p.y=s,p.width=n.diagramMarginX,p.height=n.diagramMarginY,p.colour=h,p.fill=u,p.num=f,p.actors=m,Vv.drawTask(t,p,n),Hl.insert(p.x,p.y,p.x+p.width+n.taskMargin,450)}},"drawTasks"),PU={setConf:Fut,draw:zut}});var eke={};vr(eke,{diagram:()=>Vut});var Vut,tke=O(()=>{"use strict";V5e();U5e();H5e();J5e();Vut={parser:G5e,db:MU,renderer:PU,styles:W5e,init:o(t=>{PU.setConf(t.journey),MU.clear()},"init")}});var FU,lke,cke=O(()=>{"use strict";FU=(function(){var t=o(function(p,m,g,y){for(g=g||{},y=p.length;y--;g[p[y]]=m);return g},"o"),e=[6,8,10,11,12,14,16,17,20,21],r=[1,9],n=[1,10],i=[1,11],a=[1,12],s=[1,13],l=[1,16],u=[1,17],h={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,timeline:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,period_statement:18,event_statement:19,period:20,event:21,$accept:0,$end:1},terminals_:{2:"error",4:"timeline",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",20:"period",21:"event"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,1],[18,1],[19,1]],performAction:o(function(m,g,y,v,x,b,T){var E=b.length-1;switch(x){case 1:return b[E-1];case 2:this.$=[];break;case 3:b[E-1].push(b[E]),this.$=b[E-1];break;case 4:case 5:this.$=b[E];break;case 6:case 7:this.$=[];break;case 8:v.getCommonDb().setDiagramTitle(b[E].substr(6)),this.$=b[E].substr(6);break;case 9:this.$=b[E].trim(),v.getCommonDb().setAccTitle(this.$);break;case 10:case 11:this.$=b[E].trim(),v.getCommonDb().setAccDescription(this.$);break;case 12:v.addSection(b[E].substr(8)),this.$=b[E].substr(8);break;case 15:v.addTask(b[E],0,""),this.$=b[E];break;case 16:v.addEvent(b[E].substr(2)),this.$=b[E];break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:r,12:n,14:i,16:a,17:s,18:14,19:15,20:l,21:u},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:18,11:r,12:n,14:i,16:a,17:s,18:14,19:15,20:l,21:u},t(e,[2,5]),t(e,[2,6]),t(e,[2,8]),{13:[1,19]},{15:[1,20]},t(e,[2,11]),t(e,[2,12]),t(e,[2,13]),t(e,[2,14]),t(e,[2,15]),t(e,[2,16]),t(e,[2,4]),t(e,[2,9]),t(e,[2,10])],defaultActions:{},parseError:o(function(m,g){if(g.recoverable)this.trace(m);else{var y=new Error(m);throw y.hash=g,y}},"parseError"),parse:o(function(m){var g=this,y=[0],v=[],x=[null],b=[],T=this.table,E="",w=0,k=0,S=0,A=2,L=1,I=b.slice.call(arguments,1),N=Object.create(this.lexer),C={yy:{}};for(var _ in this.yy)Object.prototype.hasOwnProperty.call(this.yy,_)&&(C.yy[_]=this.yy[_]);N.setInput(m,C.yy),C.yy.lexer=N,C.yy.parser=this,typeof N.yylloc>"u"&&(N.yylloc={});var D=N.yylloc;b.push(D);var M=N.options&&N.options.ranges;typeof C.yy.parseError=="function"?this.parseError=C.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function R(J){y.length=y.length-2*J,x.length=x.length-J,b.length=b.length-J}o(R,"popStack");function P(){var J;return J=v.pop()||N.lex()||L,typeof J!="number"&&(J instanceof Array&&(v=J,J=v.pop()),J=g.symbols_[J]||J),J}o(P,"lex");for(var B,F,G,$,V,X,Q={},H,ie,Y,le;;){if(G=y[y.length-1],this.defaultActions[G]?$=this.defaultActions[G]:((B===null||typeof B>"u")&&(B=P()),$=T[G]&&T[G][B]),typeof $>"u"||!$.length||!$[0]){var ee="";le=[];for(H in T[G])this.terminals_[H]&&H>A&&le.push("'"+this.terminals_[H]+"'");N.showPosition?ee="Parse error on line "+(w+1)+`: +`+N.showPosition()+` +Expecting `+le.join(", ")+", got '"+(this.terminals_[B]||B)+"'":ee="Parse error on line "+(w+1)+": Unexpected "+(B==L?"end of input":"'"+(this.terminals_[B]||B)+"'"),this.parseError(ee,{text:N.match,token:this.terminals_[B]||B,line:N.yylineno,loc:D,expected:le})}if($[0]instanceof Array&&$.length>1)throw new Error("Parse Error: multiple actions possible at state: "+G+", token: "+B);switch($[0]){case 1:y.push(B),x.push(N.yytext),b.push(N.yylloc),y.push($[1]),B=null,F?(B=F,F=null):(k=N.yyleng,E=N.yytext,w=N.yylineno,D=N.yylloc,S>0&&S--);break;case 2:if(ie=this.productions_[$[1]][1],Q.$=x[x.length-ie],Q._$={first_line:b[b.length-(ie||1)].first_line,last_line:b[b.length-1].last_line,first_column:b[b.length-(ie||1)].first_column,last_column:b[b.length-1].last_column},M&&(Q._$.range=[b[b.length-(ie||1)].range[0],b[b.length-1].range[1]]),X=this.performAction.apply(Q,[E,k,w,C.yy,$[1],x,b].concat(I)),typeof X<"u")return X;ie&&(y=y.slice(0,-1*ie*2),x=x.slice(0,-1*ie),b=b.slice(0,-1*ie)),y.push(this.productions_[$[1]][0]),x.push(Q.$),b.push(Q._$),Y=T[y[y.length-2]][y[y.length-1]],y.push(Y);break;case 3:return!0}}return!0},"parse")},f=(function(){var p={EOF:1,parseError:o(function(g,y){if(this.yy.parser)this.yy.parser.parseError(g,y);else throw new Error(g)},"parseError"),setInput:o(function(m,g){return this.yy=g||this.yy||{},this._input=m,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var m=this._input[0];this.yytext+=m,this.yyleng++,this.offset++,this.match+=m,this.matched+=m;var g=m.match(/(?:\r\n?|\n).*/g);return g?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),m},"input"),unput:o(function(m){var g=m.length,y=m.split(/(?:\r\n?|\n)/g);this._input=m+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-g),this.offset-=g;var v=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),y.length-1&&(this.yylineno-=y.length-1);var x=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:y?(y.length===v.length?this.yylloc.first_column:0)+v[v.length-y.length].length-y[0].length:this.yylloc.first_column-g},this.options.ranges&&(this.yylloc.range=[x[0],x[0]+this.yyleng-g]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(m){this.unput(this.match.slice(m))},"less"),pastInput:o(function(){var m=this.matched.substr(0,this.matched.length-this.match.length);return(m.length>20?"...":"")+m.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var m=this.match;return m.length<20&&(m+=this._input.substr(0,20-m.length)),(m.substr(0,20)+(m.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var m=this.pastInput(),g=new Array(m.length+1).join("-");return m+this.upcomingInput()+` +`+g+"^"},"showPosition"),test_match:o(function(m,g){var y,v,x;if(this.options.backtrack_lexer&&(x={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(x.yylloc.range=this.yylloc.range.slice(0))),v=m[0].match(/(?:\r\n?|\n).*/g),v&&(this.yylineno+=v.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:v?v[v.length-1].length-v[v.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+m[0].length},this.yytext+=m[0],this.match+=m[0],this.matches=m,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(m[0].length),this.matched+=m[0],y=this.performAction.call(this,this.yy,this,g,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),y)return y;if(this._backtrack){for(var b in x)this[b]=x[b];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var m,g,y,v;this._more||(this.yytext="",this.match="");for(var x=this._currentRules(),b=0;bg[0].length)){if(g=y,v=b,this.options.backtrack_lexer){if(m=this.test_match(y,x[b]),m!==!1)return m;if(this._backtrack){g=!1;continue}else return!1}else if(!this.options.flex)break}return g?(m=this.test_match(g,x[v]),m!==!1?m:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var g=this.next();return g||this.lex()},"lex"),begin:o(function(g){this.conditionStack.push(g)},"begin"),popState:o(function(){var g=this.conditionStack.length-1;return g>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(g){return g=this.conditionStack.length-1-Math.abs(g||0),g>=0?this.conditionStack[g]:"INITIAL"},"topState"),pushState:o(function(g){this.begin(g)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(g,y,v,x){var b=x;switch(v){case 0:break;case 1:break;case 2:return 10;case 3:break;case 4:break;case 5:return 4;case 6:return 11;case 7:return this.begin("acc_title"),12;break;case 8:return this.popState(),"acc_title_value";break;case 9:return this.begin("acc_descr"),14;break;case 10:return this.popState(),"acc_descr_value";break;case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 17;case 15:return 21;case 16:return 20;case 17:return 6;case 18:return"INVALID"}},"anonymous"),rules:[/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:timeline\b)/i,/^(?:title\s[^\n]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^:\n]+)/i,/^(?::\s(?:[^:\n]|:(?!\s))+)/i,/^(?:[^#:\n]+)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,9,11,14,15,16,17,18],inclusive:!0}}};return p})();h.lexer=f;function d(){this.yy={}}return o(d,"Parser"),d.prototype=h,h.Parser=d,new d})();FU.parser=FU;lke=FU});var zU={};vr(zU,{addEvent:()=>vke,addSection:()=>pke,addTask:()=>yke,addTaskOrg:()=>xke,clear:()=>dke,default:()=>Qut,getCommonDb:()=>fke,getSections:()=>mke,getTasks:()=>gke});var qv,hke,$U,o_,Uv,fke,dke,pke,mke,gke,yke,vke,xke,uke,Qut,bke=O(()=>{"use strict";si();qv="",hke=0,$U=[],o_=[],Uv=[],fke=o(()=>$2,"getCommonDb"),dke=o(function(){$U.length=0,o_.length=0,qv="",Uv.length=0,_r()},"clear"),pke=o(function(t){qv=t,$U.push(t)},"addSection"),mke=o(function(){return $U},"getSections"),gke=o(function(){let t=uke(),e=100,r=0;for(;!t&&rr.id===hke-1).events.push(t)},"addEvent"),xke=o(function(t){let e={section:qv,type:qv,description:t,task:t,classes:[]};o_.push(e)},"addTaskOrg"),uke=o(function(){let t=o(function(r){return Uv[r].processed},"compileTask"),e=!0;for(let[r,n]of Uv.entries())t(r),e=e&&n.processed;return e},"compileTasks"),Qut={clear:dke,getCommonDb:fke,addSection:pke,getSections:mke,getTasks:gke,addTask:yke,addTaskOrg:xke,addEvent:vke}});function Eke(t,e){t.each(function(){var r=je(this),n=r.text().split(/(\s+|
    )/).reverse(),i,a=[],s=1.1,l=r.attr("y"),u=parseFloat(r.attr("dy")),h=r.text(null).append("tspan").attr("x",0).attr("y",l).attr("dy",u+"em");for(let f=0;fe||i==="
    ")&&(a.pop(),h.text(a.join(" ").trim()),i==="
    "?a=[""]:a=[i],h=r.append("tspan").attr("x",0).attr("y",l).attr("dy",s+"em").text(i))})}var Zut,l_,Jut,eht,wke,tht,rht,Tke,nht,iht,aht,GU,kke,sht,oht,lht,cht,bp,Ske=O(()=>{"use strict";Ar();Zut=12,l_=o(function(t,e){let r=t.append("rect");return r.attr("x",e.x),r.attr("y",e.y),r.attr("fill",e.fill),r.attr("stroke",e.stroke),r.attr("width",e.width),r.attr("height",e.height),r.attr("rx",e.rx),r.attr("ry",e.ry),e.class!==void 0&&r.attr("class",e.class),r},"drawRect"),Jut=o(function(t,e){let n=t.append("circle").attr("cx",e.cx).attr("cy",e.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),i=t.append("g");i.append("circle").attr("cx",e.cx-15/3).attr("cy",e.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),i.append("circle").attr("cx",e.cx+15/3).attr("cy",e.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666");function a(u){let h=uc().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);u.append("path").attr("class","mouth").attr("d",h).attr("transform","translate("+e.cx+","+(e.cy+2)+")")}o(a,"smile");function s(u){let h=uc().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);u.append("path").attr("class","mouth").attr("d",h).attr("transform","translate("+e.cx+","+(e.cy+7)+")")}o(s,"sad");function l(u){u.append("line").attr("class","mouth").attr("stroke",2).attr("x1",e.cx-5).attr("y1",e.cy+7).attr("x2",e.cx+5).attr("y2",e.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return o(l,"ambivalent"),e.score>3?a(i):e.score<3?s(i):l(i),n},"drawFace"),eht=o(function(t,e){let r=t.append("circle");return r.attr("cx",e.cx),r.attr("cy",e.cy),r.attr("class","actor-"+e.pos),r.attr("fill",e.fill),r.attr("stroke",e.stroke),r.attr("r",e.r),r.class!==void 0&&r.attr("class",r.class),e.title!==void 0&&r.append("title").text(e.title),r},"drawCircle"),wke=o(function(t,e){let r=e.text.replace(//gi," "),n=t.append("text");n.attr("x",e.x),n.attr("y",e.y),n.attr("class","legend"),n.style("text-anchor",e.anchor),e.class!==void 0&&n.attr("class",e.class);let i=n.append("tspan");return i.attr("x",e.x+e.textMargin*2),i.text(r),n},"drawText"),tht=o(function(t,e){function r(i,a,s,l,u){return i+","+a+" "+(i+s)+","+a+" "+(i+s)+","+(a+l-u)+" "+(i+s-u*1.2)+","+(a+l)+" "+i+","+(a+l)}o(r,"genPoints");let n=t.append("polygon");n.attr("points",r(e.x,e.y,50,20,7)),n.attr("class","labelBox"),e.y=e.y+e.labelMargin,e.x=e.x+.5*e.labelMargin,wke(t,e)},"drawLabel"),rht=o(function(t,e,r){let n=t.append("g"),i=GU();i.x=e.x,i.y=e.y,i.fill=e.fill,i.width=r.width,i.height=r.height,i.class="journey-section section-type-"+e.num,i.rx=3,i.ry=3,l_(n,i),kke(r)(e.text,n,i.x,i.y,i.width,i.height,{class:"journey-section section-type-"+e.num},r,e.colour)},"drawSection"),Tke=-1,nht=o(function(t,e,r){let n=e.x+r.width/2,i=t.append("g");Tke++,i.append("line").attr("id","task"+Tke).attr("x1",n).attr("y1",e.y).attr("x2",n).attr("y2",450).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),Jut(i,{cx:n,cy:300+(5-e.score)*30,score:e.score});let s=GU();s.x=e.x,s.y=e.y,s.fill=e.fill,s.width=r.width,s.height=r.height,s.class="task task-type-"+e.num,s.rx=3,s.ry=3,l_(i,s),kke(r)(e.task,i,s.x,s.y,s.width,s.height,{class:"task"},r,e.colour)},"drawTask"),iht=o(function(t,e){l_(t,{x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,class:"rect"}).lower()},"drawBackgroundRect"),aht=o(function(){return{x:0,y:0,fill:void 0,"text-anchor":"start",width:100,height:100,textMargin:0,rx:0,ry:0}},"getTextObj"),GU=o(function(){return{x:0,y:0,width:100,anchor:"start",height:100,rx:0,ry:0}},"getNoteRect"),kke=(function(){function t(i,a,s,l,u,h,f,d){let p=a.append("text").attr("x",s+u/2).attr("y",l+h/2+5).style("font-color",d).style("text-anchor","middle").text(i);n(p,f)}o(t,"byText");function e(i,a,s,l,u,h,f,d,p){let{taskFontSize:m,taskFontFamily:g}=d,y=i.split(//gi);for(let v=0;v{"use strict";Ar();Ske();xt();jt();Ti();uht=o(function(t,e,r,n){let i=ve(),a=i.timeline?.leftMargin??50;K.debug("timeline",n.db);let s=i.securityLevel,l;s==="sandbox"&&(l=je("#i"+e));let h=(s==="sandbox"?je(l.nodes()[0].contentDocument.body):je("body")).select("#"+e);h.append("g");let f=n.db.getTasks(),d=n.db.getCommonDb().getDiagramTitle();K.debug("task",f),bp.initGraphics(h);let p=n.db.getSections();K.debug("sections",p);let m=0,g=0,y=0,v=0,x=50+a,b=50;v=50;let T=0,E=!0;p.forEach(function(L){let I={number:T,descr:L,section:T,width:150,padding:20,maxHeight:m},N=bp.getVirtualNodeHeight(h,I,i);K.debug("sectionHeight before draw",N),m=Math.max(m,N+20)});let w=0,k=0;K.debug("tasks.length",f.length);for(let[L,I]of f.entries()){let N={number:L,descr:I,section:I.section,width:150,padding:20,maxHeight:g},C=bp.getVirtualNodeHeight(h,N,i);K.debug("taskHeight before draw",C),g=Math.max(g,C+20),w=Math.max(w,I.events.length);let _=0;for(let D of I.events){let M={descr:D,section:I.section,number:I.section,width:150,padding:20,maxHeight:50};_+=bp.getVirtualNodeHeight(h,M,i)}I.events.length>0&&(_+=(I.events.length-1)*10),k=Math.max(k,_)}K.debug("maxSectionHeight before draw",m),K.debug("maxTaskHeight before draw",g),p&&p.length>0?p.forEach(L=>{let I=f.filter(D=>D.section===L),N={number:T,descr:L,section:T,width:200*Math.max(I.length,1)-50,padding:20,maxHeight:m};K.debug("sectionNode",N);let C=h.append("g"),_=bp.drawNode(C,N,T,i);K.debug("sectionNode output",_),C.attr("transform",`translate(${x}, ${v})`),b+=m+50,I.length>0&&Cke(h,I,T,x,b,g,i,w,k,m,!1),x+=200*Math.max(I.length,1),b=v,T++}):(E=!1,Cke(h,f,T,x,b,g,i,w,k,m,!0));let S=h.node().getBBox();K.debug("bounds",S),d&&h.append("text").text(d).attr("x",S.width/2-a).attr("font-size","4ex").attr("font-weight","bold").attr("y",20),y=E?m+g+150:g+100,h.append("g").attr("class","lineWrapper").append("line").attr("x1",a).attr("y1",y).attr("x2",S.width+3*a).attr("y2",y).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)"),Kc(void 0,h,i.timeline?.padding??50,i.timeline?.useMaxWidth??!1)},"draw"),Cke=o(function(t,e,r,n,i,a,s,l,u,h,f){for(let d of e){let p={descr:d.task,section:r,number:r,width:150,padding:20,maxHeight:a};K.debug("taskNode",p);let m=t.append("g").attr("class","taskWrapper"),y=bp.drawNode(m,p,r,s).height;if(K.debug("taskHeight after draw",y),m.attr("transform",`translate(${n}, ${i})`),a=Math.max(a,y),d.events){let v=t.append("g").attr("class","lineWrapper"),x=a;i+=100,x=x+hht(t,d.events,r,n,i,s),i-=100,v.append("line").attr("x1",n+190/2).attr("y1",i+a).attr("x2",n+190/2).attr("y2",i+a+100+u+100).attr("stroke-width",2).attr("stroke","black").attr("marker-end","url(#arrowhead)").attr("stroke-dasharray","5,5")}n=n+200,f&&!s.timeline?.disableMulticolor&&r++}i=i-10},"drawTasks"),hht=o(function(t,e,r,n,i,a){let s=0,l=i;i=i+100;for(let u of e){let h={descr:u,section:r,number:r,width:150,padding:20,maxHeight:50};K.debug("eventNode",h);let f=t.append("g").attr("class","eventWrapper"),p=bp.drawNode(f,h,r,a).height;s=s+p,f.attr("transform",`translate(${n}, ${i})`),i=i+10+p}return i=l,s},"drawEvents"),Ake={setConf:o(()=>{},"setConf"),draw:uht}});var fht,dht,Dke,Rke=O(()=>{"use strict";Ys();fht=o(t=>{let e="";for(let r=0;r` + .edge { + stroke-width: 3; + } + ${fht(t)} + .section-root rect, .section-root path, .section-root circle { + fill: ${t.git0}; + } + .section-root text { + fill: ${t.gitBranchLabel0}; + } + .icon-container { + height:100%; + display: flex; + justify-content: center; + align-items: center; + } + .edge { + fill: none; + } + .eventWrapper { + filter: brightness(120%); + } +`,"getStyles"),Dke=dht});var Lke={};vr(Lke,{diagram:()=>pht});var pht,Nke=O(()=>{"use strict";cke();bke();_ke();Rke();pht={db:zU,renderer:Ake,parser:lke,styles:Dke}});var VU,Oke,Pke=O(()=>{"use strict";VU=(function(){var t=o(function(E,w,k,S){for(k=k||{},S=E.length;S--;k[E[S]]=w);return k},"o"),e=[1,4],r=[1,13],n=[1,12],i=[1,15],a=[1,16],s=[1,20],l=[1,19],u=[6,7,8],h=[1,26],f=[1,24],d=[1,25],p=[6,7,11],m=[1,6,13,15,16,19,22],g=[1,33],y=[1,34],v=[1,6,7,11,13,15,16,19,22],x={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,MINDMAP:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,ICON:15,CLASS:16,nodeWithId:17,nodeWithoutId:18,NODE_DSTART:19,NODE_DESCR:20,NODE_DEND:21,NODE_ID:22,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"MINDMAP",11:"EOF",13:"SPACELIST",15:"ICON",16:"CLASS",19:"NODE_DSTART",20:"NODE_DESCR",21:"NODE_DEND",22:"NODE_ID"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,2],[12,2],[12,1],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[18,3],[17,1],[17,4]],performAction:o(function(w,k,S,A,L,I,N){var C=I.length-1;switch(L){case 6:case 7:return A;case 8:A.getLogger().trace("Stop NL ");break;case 9:A.getLogger().trace("Stop EOF ");break;case 11:A.getLogger().trace("Stop NL2 ");break;case 12:A.getLogger().trace("Stop EOF2 ");break;case 15:A.getLogger().info("Node: ",I[C].id),A.addNode(I[C-1].length,I[C].id,I[C].descr,I[C].type);break;case 16:A.getLogger().trace("Icon: ",I[C]),A.decorateNode({icon:I[C]});break;case 17:case 21:A.decorateNode({class:I[C]});break;case 18:A.getLogger().trace("SPACELIST");break;case 19:A.getLogger().trace("Node: ",I[C].id),A.addNode(0,I[C].id,I[C].descr,I[C].type);break;case 20:A.decorateNode({icon:I[C]});break;case 25:A.getLogger().trace("node found ..",I[C-2]),this.$={id:I[C-1],descr:I[C-1],type:A.getType(I[C-2],I[C])};break;case 26:this.$={id:I[C],descr:I[C],type:A.nodeType.DEFAULT};break;case 27:A.getLogger().trace("node found ..",I[C-3]),this.$={id:I[C-3],descr:I[C-1],type:A.getType(I[C-2],I[C])};break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:e},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:e},{6:r,7:[1,10],9:9,12:11,13:n,14:14,15:i,16:a,17:17,18:18,19:s,22:l},t(u,[2,3]),{1:[2,2]},t(u,[2,4]),t(u,[2,5]),{1:[2,6],6:r,12:21,13:n,14:14,15:i,16:a,17:17,18:18,19:s,22:l},{6:r,9:22,12:11,13:n,14:14,15:i,16:a,17:17,18:18,19:s,22:l},{6:h,7:f,10:23,11:d},t(p,[2,22],{17:17,18:18,14:27,15:[1,28],16:[1,29],19:s,22:l}),t(p,[2,18]),t(p,[2,19]),t(p,[2,20]),t(p,[2,21]),t(p,[2,23]),t(p,[2,24]),t(p,[2,26],{19:[1,30]}),{20:[1,31]},{6:h,7:f,10:32,11:d},{1:[2,7],6:r,12:21,13:n,14:14,15:i,16:a,17:17,18:18,19:s,22:l},t(m,[2,14],{7:g,11:y}),t(v,[2,8]),t(v,[2,9]),t(v,[2,10]),t(p,[2,15]),t(p,[2,16]),t(p,[2,17]),{20:[1,35]},{21:[1,36]},t(m,[2,13],{7:g,11:y}),t(v,[2,11]),t(v,[2,12]),{21:[1,37]},t(p,[2,25]),t(p,[2,27])],defaultActions:{2:[2,1],6:[2,2]},parseError:o(function(w,k){if(k.recoverable)this.trace(w);else{var S=new Error(w);throw S.hash=k,S}},"parseError"),parse:o(function(w){var k=this,S=[0],A=[],L=[null],I=[],N=this.table,C="",_=0,D=0,M=0,R=2,P=1,B=I.slice.call(arguments,1),F=Object.create(this.lexer),G={yy:{}};for(var $ in this.yy)Object.prototype.hasOwnProperty.call(this.yy,$)&&(G.yy[$]=this.yy[$]);F.setInput(w,G.yy),G.yy.lexer=F,G.yy.parser=this,typeof F.yylloc>"u"&&(F.yylloc={});var V=F.yylloc;I.push(V);var X=F.options&&F.options.ranges;typeof G.yy.parseError=="function"?this.parseError=G.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Q(we){S.length=S.length-2*we,L.length=L.length-we,I.length=I.length-we}o(Q,"popStack");function H(){var we;return we=A.pop()||F.lex()||P,typeof we!="number"&&(we instanceof Array&&(A=we,we=A.pop()),we=k.symbols_[we]||we),we}o(H,"lex");for(var ie,Y,le,ee,J,te,Z={},xe,de,Se,Me;;){if(le=S[S.length-1],this.defaultActions[le]?ee=this.defaultActions[le]:((ie===null||typeof ie>"u")&&(ie=H()),ee=N[le]&&N[le][ie]),typeof ee>"u"||!ee.length||!ee[0]){var ke="";Me=[];for(xe in N[le])this.terminals_[xe]&&xe>R&&Me.push("'"+this.terminals_[xe]+"'");F.showPosition?ke="Parse error on line "+(_+1)+`: +`+F.showPosition()+` +Expecting `+Me.join(", ")+", got '"+(this.terminals_[ie]||ie)+"'":ke="Parse error on line "+(_+1)+": Unexpected "+(ie==P?"end of input":"'"+(this.terminals_[ie]||ie)+"'"),this.parseError(ke,{text:F.match,token:this.terminals_[ie]||ie,line:F.yylineno,loc:V,expected:Me})}if(ee[0]instanceof Array&&ee.length>1)throw new Error("Parse Error: multiple actions possible at state: "+le+", token: "+ie);switch(ee[0]){case 1:S.push(ie),L.push(F.yytext),I.push(F.yylloc),S.push(ee[1]),ie=null,Y?(ie=Y,Y=null):(D=F.yyleng,C=F.yytext,_=F.yylineno,V=F.yylloc,M>0&&M--);break;case 2:if(de=this.productions_[ee[1]][1],Z.$=L[L.length-de],Z._$={first_line:I[I.length-(de||1)].first_line,last_line:I[I.length-1].last_line,first_column:I[I.length-(de||1)].first_column,last_column:I[I.length-1].last_column},X&&(Z._$.range=[I[I.length-(de||1)].range[0],I[I.length-1].range[1]]),te=this.performAction.apply(Z,[C,D,_,G.yy,ee[1],L,I].concat(B)),typeof te<"u")return te;de&&(S=S.slice(0,-1*de*2),L=L.slice(0,-1*de),I=I.slice(0,-1*de)),S.push(this.productions_[ee[1]][0]),L.push(Z.$),I.push(Z._$),Se=N[S[S.length-2]][S[S.length-1]],S.push(Se);break;case 3:return!0}}return!0},"parse")},b=(function(){var E={EOF:1,parseError:o(function(k,S){if(this.yy.parser)this.yy.parser.parseError(k,S);else throw new Error(k)},"parseError"),setInput:o(function(w,k){return this.yy=k||this.yy||{},this._input=w,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var w=this._input[0];this.yytext+=w,this.yyleng++,this.offset++,this.match+=w,this.matched+=w;var k=w.match(/(?:\r\n?|\n).*/g);return k?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),w},"input"),unput:o(function(w){var k=w.length,S=w.split(/(?:\r\n?|\n)/g);this._input=w+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-k),this.offset-=k;var A=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),S.length-1&&(this.yylineno-=S.length-1);var L=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:S?(S.length===A.length?this.yylloc.first_column:0)+A[A.length-S.length].length-S[0].length:this.yylloc.first_column-k},this.options.ranges&&(this.yylloc.range=[L[0],L[0]+this.yyleng-k]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(w){this.unput(this.match.slice(w))},"less"),pastInput:o(function(){var w=this.matched.substr(0,this.matched.length-this.match.length);return(w.length>20?"...":"")+w.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var w=this.match;return w.length<20&&(w+=this._input.substr(0,20-w.length)),(w.substr(0,20)+(w.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var w=this.pastInput(),k=new Array(w.length+1).join("-");return w+this.upcomingInput()+` +`+k+"^"},"showPosition"),test_match:o(function(w,k){var S,A,L;if(this.options.backtrack_lexer&&(L={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(L.yylloc.range=this.yylloc.range.slice(0))),A=w[0].match(/(?:\r\n?|\n).*/g),A&&(this.yylineno+=A.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:A?A[A.length-1].length-A[A.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+w[0].length},this.yytext+=w[0],this.match+=w[0],this.matches=w,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(w[0].length),this.matched+=w[0],S=this.performAction.call(this,this.yy,this,k,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),S)return S;if(this._backtrack){for(var I in L)this[I]=L[I];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var w,k,S,A;this._more||(this.yytext="",this.match="");for(var L=this._currentRules(),I=0;Ik[0].length)){if(k=S,A=I,this.options.backtrack_lexer){if(w=this.test_match(S,L[I]),w!==!1)return w;if(this._backtrack){k=!1;continue}else return!1}else if(!this.options.flex)break}return k?(w=this.test_match(k,L[A]),w!==!1?w:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var k=this.next();return k||this.lex()},"lex"),begin:o(function(k){this.conditionStack.push(k)},"begin"),popState:o(function(){var k=this.conditionStack.length-1;return k>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(k){return k=this.conditionStack.length-1-Math.abs(k||0),k>=0?this.conditionStack[k]:"INITIAL"},"topState"),pushState:o(function(k){this.begin(k)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(k,S,A,L){var I=L;switch(A){case 0:return k.getLogger().trace("Found comment",S.yytext),6;break;case 1:return 8;case 2:this.begin("CLASS");break;case 3:return this.popState(),16;break;case 4:this.popState();break;case 5:k.getLogger().trace("Begin icon"),this.begin("ICON");break;case 6:return k.getLogger().trace("SPACELINE"),6;break;case 7:return 7;case 8:return 15;case 9:k.getLogger().trace("end icon"),this.popState();break;case 10:return k.getLogger().trace("Exploding node"),this.begin("NODE"),19;break;case 11:return k.getLogger().trace("Cloud"),this.begin("NODE"),19;break;case 12:return k.getLogger().trace("Explosion Bang"),this.begin("NODE"),19;break;case 13:return k.getLogger().trace("Cloud Bang"),this.begin("NODE"),19;break;case 14:return this.begin("NODE"),19;break;case 15:return this.begin("NODE"),19;break;case 16:return this.begin("NODE"),19;break;case 17:return this.begin("NODE"),19;break;case 18:return 13;case 19:return 22;case 20:return 11;case 21:this.begin("NSTR2");break;case 22:return"NODE_DESCR";case 23:this.popState();break;case 24:k.getLogger().trace("Starting NSTR"),this.begin("NSTR");break;case 25:return k.getLogger().trace("description:",S.yytext),"NODE_DESCR";break;case 26:this.popState();break;case 27:return this.popState(),k.getLogger().trace("node end ))"),"NODE_DEND";break;case 28:return this.popState(),k.getLogger().trace("node end )"),"NODE_DEND";break;case 29:return this.popState(),k.getLogger().trace("node end ...",S.yytext),"NODE_DEND";break;case 30:return this.popState(),k.getLogger().trace("node end (("),"NODE_DEND";break;case 31:return this.popState(),k.getLogger().trace("node end (-"),"NODE_DEND";break;case 32:return this.popState(),k.getLogger().trace("node end (-"),"NODE_DEND";break;case 33:return this.popState(),k.getLogger().trace("node end (("),"NODE_DEND";break;case 34:return this.popState(),k.getLogger().trace("node end (("),"NODE_DEND";break;case 35:return k.getLogger().trace("Long description:",S.yytext),20;break;case 36:return k.getLogger().trace("Long description:",S.yytext),20;break}},"anonymous"),rules:[/^(?:\s*%%.*)/i,/^(?:mindmap\b)/i,/^(?::::)/i,/^(?:.+)/i,/^(?:\n)/i,/^(?:::icon\()/i,/^(?:[\s]+[\n])/i,/^(?:[\n]+)/i,/^(?:[^\)]+)/i,/^(?:\))/i,/^(?:-\))/i,/^(?:\(-)/i,/^(?:\)\))/i,/^(?:\))/i,/^(?:\(\()/i,/^(?:\{\{)/i,/^(?:\()/i,/^(?:\[)/i,/^(?:[\s]+)/i,/^(?:[^\(\[\n\)\{\}]+)/i,/^(?:$)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:[^"]+)/i,/^(?:["])/i,/^(?:[\)]\))/i,/^(?:[\)])/i,/^(?:[\]])/i,/^(?:\}\})/i,/^(?:\(-)/i,/^(?:-\))/i,/^(?:\(\()/i,/^(?:\()/i,/^(?:[^\)\]\(\}]+)/i,/^(?:.+(?!\(\())/i],conditions:{CLASS:{rules:[3,4],inclusive:!1},ICON:{rules:[8,9],inclusive:!1},NSTR2:{rules:[22,23],inclusive:!1},NSTR:{rules:[25,26],inclusive:!1},NODE:{rules:[21,24,27,28,29,30,31,32,33,34,35,36],inclusive:!1},INITIAL:{rules:[0,1,2,5,6,7,10,11,12,13,14,15,16,17,18,19,20],inclusive:!0}}};return E})();x.lexer=b;function T(){this.yy={}}return o(T,"Parser"),T.prototype=x,x.Parser=T,new T})();VU.parser=VU;Oke=VU});function Bke(t,e=0){return(Qa[t[e+0]]+Qa[t[e+1]]+Qa[t[e+2]]+Qa[t[e+3]]+"-"+Qa[t[e+4]]+Qa[t[e+5]]+"-"+Qa[t[e+6]]+Qa[t[e+7]]+"-"+Qa[t[e+8]]+Qa[t[e+9]]+"-"+Qa[t[e+10]]+Qa[t[e+11]]+Qa[t[e+12]]+Qa[t[e+13]]+Qa[t[e+14]]+Qa[t[e+15]]).toLowerCase()}var Qa,Fke=O(()=>{"use strict";Qa=[];for(let t=0;t<256;++t)Qa.push((t+256).toString(16).slice(1));o(Bke,"unsafeStringify")});function UU(){if(!qU){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");qU=crypto.getRandomValues.bind(crypto)}return qU(vht)}var qU,vht,$ke=O(()=>{"use strict";vht=new Uint8Array(16);o(UU,"rng")});var xht,WU,zke=O(()=>{"use strict";xht=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),WU={randomUUID:xht}});function bht(t,e,r){if(WU.randomUUID&&!e&&!t)return WU.randomUUID();t=t||{};let n=t.random??t.rng?.()??UU();if(n.length<16)throw new Error("Random bytes length must be >= 16");if(n[6]=n[6]&15|64,n[8]=n[8]&63|128,e){if(r=r||0,r<0||r+16>e.length)throw new RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let i=0;i<16;++i)e[r+i]=n[i];return e}return Bke(n)}var HU,Gke=O(()=>{"use strict";zke();$ke();Fke();o(bht,"v4");HU=bht});var Vke=O(()=>{"use strict";Gke()});var qke,Uke=O(()=>{"use strict";co();ar();qke=12});var uf,c_,Wke=O(()=>{"use strict";jt();Vke();Ur();xt();La();$r();Uke();uf={DEFAULT:0,NO_BORDER:0,ROUNDED_RECT:1,RECT:2,CIRCLE:3,CLOUD:4,BANG:5,HEXAGON:6},c_=class{constructor(){this.nodes=[];this.count=0;this.elements={};this.getLogger=this.getLogger.bind(this),this.nodeType=uf,this.clear(),this.getType=this.getType.bind(this),this.getElementById=this.getElementById.bind(this),this.getParent=this.getParent.bind(this),this.getMindmap=this.getMindmap.bind(this),this.addNode=this.addNode.bind(this),this.decorateNode=this.decorateNode.bind(this)}static{o(this,"MindmapDB")}clear(){this.nodes=[],this.count=0,this.elements={},this.baseLevel=void 0}getParent(e){for(let r=this.nodes.length-1;r>=0;r--)if(this.nodes[r].level0?this.nodes[0]:null}addNode(e,r,n,i){K.info("addNode",e,r,n,i);let a=!1;this.nodes.length===0?(this.baseLevel=e,e=0,a=!0):this.baseLevel!==void 0&&(e=e-this.baseLevel,a=!1);let s=ve(),l=s.mindmap?.padding??gr.mindmap.padding;switch(i){case this.nodeType.ROUNDED_RECT:case this.nodeType.RECT:case this.nodeType.HEXAGON:l*=2;break}let u={id:this.count++,nodeId:wr(r,s),level:e,descr:wr(n,s),type:i,children:[],width:s.mindmap?.maxNodeWidth??gr.mindmap.maxNodeWidth,padding:l,isRoot:a},h=this.getParent(e);if(h)h.children.push(u),this.nodes.push(u);else if(a)this.nodes.push(u);else throw new Error(`There can be only one root. No parent could be found for ("${u.descr}")`)}getType(e,r){switch(K.debug("In get type",e,r),e){case"[":return this.nodeType.RECT;case"(":return r===")"?this.nodeType.ROUNDED_RECT:this.nodeType.CLOUD;case"((":return this.nodeType.CIRCLE;case")":return this.nodeType.CLOUD;case"))":return this.nodeType.BANG;case"{{":return this.nodeType.HEXAGON;default:return this.nodeType.DEFAULT}}setElementForId(e,r){this.elements[e]=r}getElementById(e){return this.elements[e]}decorateNode(e){if(!e)return;let r=ve(),n=this.nodes[this.nodes.length-1];e.icon&&(n.icon=wr(e.icon,r)),e.class&&(n.class=wr(e.class,r))}type2Str(e){switch(e){case this.nodeType.DEFAULT:return"no-border";case this.nodeType.RECT:return"rect";case this.nodeType.ROUNDED_RECT:return"rounded-rect";case this.nodeType.CIRCLE:return"circle";case this.nodeType.CLOUD:return"cloud";case this.nodeType.BANG:return"bang";case this.nodeType.HEXAGON:return"hexgon";default:return"no-border"}}assignSections(e,r){if(e.level===0?e.section=void 0:e.section=r,e.children)for(let[n,i]of e.children.entries()){let a=e.level===0?n%(qke-1):r;this.assignSections(i,a)}}flattenNodes(e,r){let n=["mindmap-node"];e.isRoot===!0?n.push("section-root","section--1"):e.section!==void 0&&n.push(`section-${e.section}`),e.class&&n.push(e.class);let i=n.join(" "),a=o(l=>{switch(l){case uf.CIRCLE:return"mindmapCircle";case uf.RECT:return"rect";case uf.ROUNDED_RECT:return"rounded";case uf.CLOUD:return"cloud";case uf.BANG:return"bang";case uf.HEXAGON:return"hexagon";case uf.DEFAULT:return"defaultMindmapNode";case uf.NO_BORDER:default:return"rect"}},"getShapeFromType"),s={id:e.id.toString(),domId:"node_"+e.id.toString(),label:e.descr,labelType:"markdown",isGroup:!1,shape:a(e.type),width:e.width,height:e.height??0,padding:e.padding,cssClasses:i,cssStyles:[],look:"default",icon:e.icon,x:e.x,y:e.y,level:e.level,nodeId:e.nodeId,type:e.type,section:e.section};if(r.push(s),e.children)for(let l of e.children)this.flattenNodes(l,r)}generateEdges(e,r){if(e.children)for(let n of e.children){let i="edge";n.section!==void 0&&(i+=` section-edge-${n.section}`);let a=e.level+1;i+=` edge-depth-${a}`;let s={id:`edge_${e.id}_${n.id}`,start:e.id.toString(),end:n.id.toString(),type:"normal",curve:"basis",thickness:"normal",look:"default",classes:i,depth:e.level,section:n.section};r.push(s),this.generateEdges(n,r)}}getData(){let e=this.getMindmap(),r=ve(),i=kY().layout!==void 0,a=r;if(i||(a.layout="cose-bilkent"),!e)return{nodes:[],edges:[],config:a};K.debug("getData: mindmapRoot",e,r),this.assignSections(e);let s=[],l=[];this.flattenNodes(e,s),this.generateEdges(e,l),K.debug(`getData: processed ${s.length} nodes and ${l.length} edges`);let u=new Map;for(let h of s)u.set(h.id,{shape:h.shape,width:h.width,height:h.height,padding:h.padding});return{nodes:s,edges:l,config:a,rootNode:e,markers:["point"],direction:"TB",nodeSpacing:50,rankSpacing:50,shapes:Object.fromEntries(u),type:"mindmap",diagramId:"mindmap-"+HU()}}getLogger(){return K}}});var Tht,Hke,Yke=O(()=>{"use strict";xt();b0();Rd();Ld();La();Tht=o(async(t,e,r,n)=>{K.debug(`Rendering mindmap diagram +`+t);let i=n.db,a=i.getData(),s=Sl(e,a.config.securityLevel);a.type=n.type,a.layoutAlgorithm=Ru(a.config.layout,{fallback:"cose-bilkent"}),a.diagramId=e,i.getMindmap()&&(a.nodes.forEach(u=>{u.shape==="rounded"?(u.radius=15,u.taper=15,u.stroke="none",u.width=0,u.padding=15):u.shape==="circle"?u.padding=10:u.shape==="rect"&&(u.width=0,u.padding=10)}),await Ol(a,s),bo(s,a.config.mindmap?.padding??gr.mindmap.padding,"mindmapDiagram",a.config.mindmap?.useMaxWidth??gr.mindmap.useMaxWidth))},"draw"),Hke={draw:Tht}});var wht,kht,jke,Xke=O(()=>{"use strict";Ys();wht=o(t=>{let e="";for(let r=0;r` + .edge { + stroke-width: 3; + } + ${wht(t)} + .section-root rect, .section-root path, .section-root circle, .section-root polygon { + fill: ${t.git0}; + } + .section-root text { + fill: ${t.gitBranchLabel0}; + } + .section-root span { + color: ${t.gitBranchLabel0}; + } + .section-2 span { + color: ${t.gitBranchLabel0}; + } + .icon-container { + height:100%; + display: flex; + justify-content: center; + align-items: center; + } + .edge { + fill: none; + } + .mindmap-node-label { + dy: 1em; + alignment-baseline: middle; + text-anchor: middle; + dominant-baseline: middle; + text-align: center; + } +`,"getStyles"),jke=kht});var Kke={};vr(Kke,{diagram:()=>Eht});var Eht,Qke=O(()=>{"use strict";Pke();Wke();Yke();Xke();Eht={get db(){return new c_},renderer:Hke,parser:Oke,styles:jke}});var YU,eEe,tEe=O(()=>{"use strict";YU=(function(){var t=o(function(S,A,L,I){for(L=L||{},I=S.length;I--;L[S[I]]=A);return L},"o"),e=[1,4],r=[1,13],n=[1,12],i=[1,15],a=[1,16],s=[1,20],l=[1,19],u=[6,7,8],h=[1,26],f=[1,24],d=[1,25],p=[6,7,11],m=[1,31],g=[6,7,11,24],y=[1,6,13,16,17,20,23],v=[1,35],x=[1,36],b=[1,6,7,11,13,16,17,20,23],T=[1,38],E={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,KANBAN:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,shapeData:15,ICON:16,CLASS:17,nodeWithId:18,nodeWithoutId:19,NODE_DSTART:20,NODE_DESCR:21,NODE_DEND:22,NODE_ID:23,SHAPE_DATA:24,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"KANBAN",11:"EOF",13:"SPACELIST",16:"ICON",17:"CLASS",20:"NODE_DSTART",21:"NODE_DESCR",22:"NODE_DEND",23:"NODE_ID",24:"SHAPE_DATA"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,3],[12,2],[12,2],[12,2],[12,1],[12,2],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[19,3],[18,1],[18,4],[15,2],[15,1]],performAction:o(function(A,L,I,N,C,_,D){var M=_.length-1;switch(C){case 6:case 7:return N;case 8:N.getLogger().trace("Stop NL ");break;case 9:N.getLogger().trace("Stop EOF ");break;case 11:N.getLogger().trace("Stop NL2 ");break;case 12:N.getLogger().trace("Stop EOF2 ");break;case 15:N.getLogger().info("Node: ",_[M-1].id),N.addNode(_[M-2].length,_[M-1].id,_[M-1].descr,_[M-1].type,_[M]);break;case 16:N.getLogger().info("Node: ",_[M].id),N.addNode(_[M-1].length,_[M].id,_[M].descr,_[M].type);break;case 17:N.getLogger().trace("Icon: ",_[M]),N.decorateNode({icon:_[M]});break;case 18:case 23:N.decorateNode({class:_[M]});break;case 19:N.getLogger().trace("SPACELIST");break;case 20:N.getLogger().trace("Node: ",_[M-1].id),N.addNode(0,_[M-1].id,_[M-1].descr,_[M-1].type,_[M]);break;case 21:N.getLogger().trace("Node: ",_[M].id),N.addNode(0,_[M].id,_[M].descr,_[M].type);break;case 22:N.decorateNode({icon:_[M]});break;case 27:N.getLogger().trace("node found ..",_[M-2]),this.$={id:_[M-1],descr:_[M-1],type:N.getType(_[M-2],_[M])};break;case 28:this.$={id:_[M],descr:_[M],type:0};break;case 29:N.getLogger().trace("node found ..",_[M-3]),this.$={id:_[M-3],descr:_[M-1],type:N.getType(_[M-2],_[M])};break;case 30:this.$=_[M-1]+_[M];break;case 31:this.$=_[M];break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:e},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:e},{6:r,7:[1,10],9:9,12:11,13:n,14:14,16:i,17:a,18:17,19:18,20:s,23:l},t(u,[2,3]),{1:[2,2]},t(u,[2,4]),t(u,[2,5]),{1:[2,6],6:r,12:21,13:n,14:14,16:i,17:a,18:17,19:18,20:s,23:l},{6:r,9:22,12:11,13:n,14:14,16:i,17:a,18:17,19:18,20:s,23:l},{6:h,7:f,10:23,11:d},t(p,[2,24],{18:17,19:18,14:27,16:[1,28],17:[1,29],20:s,23:l}),t(p,[2,19]),t(p,[2,21],{15:30,24:m}),t(p,[2,22]),t(p,[2,23]),t(g,[2,25]),t(g,[2,26]),t(g,[2,28],{20:[1,32]}),{21:[1,33]},{6:h,7:f,10:34,11:d},{1:[2,7],6:r,12:21,13:n,14:14,16:i,17:a,18:17,19:18,20:s,23:l},t(y,[2,14],{7:v,11:x}),t(b,[2,8]),t(b,[2,9]),t(b,[2,10]),t(p,[2,16],{15:37,24:m}),t(p,[2,17]),t(p,[2,18]),t(p,[2,20],{24:T}),t(g,[2,31]),{21:[1,39]},{22:[1,40]},t(y,[2,13],{7:v,11:x}),t(b,[2,11]),t(b,[2,12]),t(p,[2,15],{24:T}),t(g,[2,30]),{22:[1,41]},t(g,[2,27]),t(g,[2,29])],defaultActions:{2:[2,1],6:[2,2]},parseError:o(function(A,L){if(L.recoverable)this.trace(A);else{var I=new Error(A);throw I.hash=L,I}},"parseError"),parse:o(function(A){var L=this,I=[0],N=[],C=[null],_=[],D=this.table,M="",R=0,P=0,B=0,F=2,G=1,$=_.slice.call(arguments,1),V=Object.create(this.lexer),X={yy:{}};for(var Q in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Q)&&(X.yy[Q]=this.yy[Q]);V.setInput(A,X.yy),X.yy.lexer=V,X.yy.parser=this,typeof V.yylloc>"u"&&(V.yylloc={});var H=V.yylloc;_.push(H);var ie=V.options&&V.options.ranges;typeof X.yy.parseError=="function"?this.parseError=X.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Y(fe){I.length=I.length-2*fe,C.length=C.length-fe,_.length=_.length-fe}o(Y,"popStack");function le(){var fe;return fe=N.pop()||V.lex()||G,typeof fe!="number"&&(fe instanceof Array&&(N=fe,fe=N.pop()),fe=L.symbols_[fe]||fe),fe}o(le,"lex");for(var ee,J,te,Z,xe,de,Se={},Me,ke,we,_e;;){if(te=I[I.length-1],this.defaultActions[te]?Z=this.defaultActions[te]:((ee===null||typeof ee>"u")&&(ee=le()),Z=D[te]&&D[te][ee]),typeof Z>"u"||!Z.length||!Z[0]){var $e="";_e=[];for(Me in D[te])this.terminals_[Me]&&Me>F&&_e.push("'"+this.terminals_[Me]+"'");V.showPosition?$e="Parse error on line "+(R+1)+`: +`+V.showPosition()+` +Expecting `+_e.join(", ")+", got '"+(this.terminals_[ee]||ee)+"'":$e="Parse error on line "+(R+1)+": Unexpected "+(ee==G?"end of input":"'"+(this.terminals_[ee]||ee)+"'"),this.parseError($e,{text:V.match,token:this.terminals_[ee]||ee,line:V.yylineno,loc:H,expected:_e})}if(Z[0]instanceof Array&&Z.length>1)throw new Error("Parse Error: multiple actions possible at state: "+te+", token: "+ee);switch(Z[0]){case 1:I.push(ee),C.push(V.yytext),_.push(V.yylloc),I.push(Z[1]),ee=null,J?(ee=J,J=null):(P=V.yyleng,M=V.yytext,R=V.yylineno,H=V.yylloc,B>0&&B--);break;case 2:if(ke=this.productions_[Z[1]][1],Se.$=C[C.length-ke],Se._$={first_line:_[_.length-(ke||1)].first_line,last_line:_[_.length-1].last_line,first_column:_[_.length-(ke||1)].first_column,last_column:_[_.length-1].last_column},ie&&(Se._$.range=[_[_.length-(ke||1)].range[0],_[_.length-1].range[1]]),de=this.performAction.apply(Se,[M,P,R,X.yy,Z[1],C,_].concat($)),typeof de<"u")return de;ke&&(I=I.slice(0,-1*ke*2),C=C.slice(0,-1*ke),_=_.slice(0,-1*ke)),I.push(this.productions_[Z[1]][0]),C.push(Se.$),_.push(Se._$),we=D[I[I.length-2]][I[I.length-1]],I.push(we);break;case 3:return!0}}return!0},"parse")},w=(function(){var S={EOF:1,parseError:o(function(L,I){if(this.yy.parser)this.yy.parser.parseError(L,I);else throw new Error(L)},"parseError"),setInput:o(function(A,L){return this.yy=L||this.yy||{},this._input=A,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var A=this._input[0];this.yytext+=A,this.yyleng++,this.offset++,this.match+=A,this.matched+=A;var L=A.match(/(?:\r\n?|\n).*/g);return L?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),A},"input"),unput:o(function(A){var L=A.length,I=A.split(/(?:\r\n?|\n)/g);this._input=A+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-L),this.offset-=L;var N=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),I.length-1&&(this.yylineno-=I.length-1);var C=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:I?(I.length===N.length?this.yylloc.first_column:0)+N[N.length-I.length].length-I[0].length:this.yylloc.first_column-L},this.options.ranges&&(this.yylloc.range=[C[0],C[0]+this.yyleng-L]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(A){this.unput(this.match.slice(A))},"less"),pastInput:o(function(){var A=this.matched.substr(0,this.matched.length-this.match.length);return(A.length>20?"...":"")+A.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var A=this.match;return A.length<20&&(A+=this._input.substr(0,20-A.length)),(A.substr(0,20)+(A.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var A=this.pastInput(),L=new Array(A.length+1).join("-");return A+this.upcomingInput()+` +`+L+"^"},"showPosition"),test_match:o(function(A,L){var I,N,C;if(this.options.backtrack_lexer&&(C={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(C.yylloc.range=this.yylloc.range.slice(0))),N=A[0].match(/(?:\r\n?|\n).*/g),N&&(this.yylineno+=N.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:N?N[N.length-1].length-N[N.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+A[0].length},this.yytext+=A[0],this.match+=A[0],this.matches=A,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(A[0].length),this.matched+=A[0],I=this.performAction.call(this,this.yy,this,L,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),I)return I;if(this._backtrack){for(var _ in C)this[_]=C[_];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var A,L,I,N;this._more||(this.yytext="",this.match="");for(var C=this._currentRules(),_=0;_L[0].length)){if(L=I,N=_,this.options.backtrack_lexer){if(A=this.test_match(I,C[_]),A!==!1)return A;if(this._backtrack){L=!1;continue}else return!1}else if(!this.options.flex)break}return L?(A=this.test_match(L,C[N]),A!==!1?A:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var L=this.next();return L||this.lex()},"lex"),begin:o(function(L){this.conditionStack.push(L)},"begin"),popState:o(function(){var L=this.conditionStack.length-1;return L>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(L){return L=this.conditionStack.length-1-Math.abs(L||0),L>=0?this.conditionStack[L]:"INITIAL"},"topState"),pushState:o(function(L){this.begin(L)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(L,I,N,C){var _=C;switch(N){case 0:return this.pushState("shapeData"),I.yytext="",24;break;case 1:return this.pushState("shapeDataStr"),24;break;case 2:return this.popState(),24;break;case 3:let D=/\n\s*/g;return I.yytext=I.yytext.replace(D,"
    "),24;break;case 4:return 24;case 5:this.popState();break;case 6:return L.getLogger().trace("Found comment",I.yytext),6;break;case 7:return 8;case 8:this.begin("CLASS");break;case 9:return this.popState(),17;break;case 10:this.popState();break;case 11:L.getLogger().trace("Begin icon"),this.begin("ICON");break;case 12:return L.getLogger().trace("SPACELINE"),6;break;case 13:return 7;case 14:return 16;case 15:L.getLogger().trace("end icon"),this.popState();break;case 16:return L.getLogger().trace("Exploding node"),this.begin("NODE"),20;break;case 17:return L.getLogger().trace("Cloud"),this.begin("NODE"),20;break;case 18:return L.getLogger().trace("Explosion Bang"),this.begin("NODE"),20;break;case 19:return L.getLogger().trace("Cloud Bang"),this.begin("NODE"),20;break;case 20:return this.begin("NODE"),20;break;case 21:return this.begin("NODE"),20;break;case 22:return this.begin("NODE"),20;break;case 23:return this.begin("NODE"),20;break;case 24:return 13;case 25:return 23;case 26:return 11;case 27:this.begin("NSTR2");break;case 28:return"NODE_DESCR";case 29:this.popState();break;case 30:L.getLogger().trace("Starting NSTR"),this.begin("NSTR");break;case 31:return L.getLogger().trace("description:",I.yytext),"NODE_DESCR";break;case 32:this.popState();break;case 33:return this.popState(),L.getLogger().trace("node end ))"),"NODE_DEND";break;case 34:return this.popState(),L.getLogger().trace("node end )"),"NODE_DEND";break;case 35:return this.popState(),L.getLogger().trace("node end ...",I.yytext),"NODE_DEND";break;case 36:return this.popState(),L.getLogger().trace("node end (("),"NODE_DEND";break;case 37:return this.popState(),L.getLogger().trace("node end (-"),"NODE_DEND";break;case 38:return this.popState(),L.getLogger().trace("node end (-"),"NODE_DEND";break;case 39:return this.popState(),L.getLogger().trace("node end (("),"NODE_DEND";break;case 40:return this.popState(),L.getLogger().trace("node end (("),"NODE_DEND";break;case 41:return L.getLogger().trace("Long description:",I.yytext),21;break;case 42:return L.getLogger().trace("Long description:",I.yytext),21;break}},"anonymous"),rules:[/^(?:@\{)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^\"]+)/i,/^(?:[^}^"]+)/i,/^(?:\})/i,/^(?:\s*%%.*)/i,/^(?:kanban\b)/i,/^(?::::)/i,/^(?:.+)/i,/^(?:\n)/i,/^(?:::icon\()/i,/^(?:[\s]+[\n])/i,/^(?:[\n]+)/i,/^(?:[^\)]+)/i,/^(?:\))/i,/^(?:-\))/i,/^(?:\(-)/i,/^(?:\)\))/i,/^(?:\))/i,/^(?:\(\()/i,/^(?:\{\{)/i,/^(?:\()/i,/^(?:\[)/i,/^(?:[\s]+)/i,/^(?:[^\(\[\n\)\{\}@]+)/i,/^(?:$)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:[^"]+)/i,/^(?:["])/i,/^(?:[\)]\))/i,/^(?:[\)])/i,/^(?:[\]])/i,/^(?:\}\})/i,/^(?:\(-)/i,/^(?:-\))/i,/^(?:\(\()/i,/^(?:\()/i,/^(?:[^\)\]\(\}]+)/i,/^(?:.+(?!\(\())/i],conditions:{shapeDataEndBracket:{rules:[],inclusive:!1},shapeDataStr:{rules:[2,3],inclusive:!1},shapeData:{rules:[1,4,5],inclusive:!1},CLASS:{rules:[9,10],inclusive:!1},ICON:{rules:[14,15],inclusive:!1},NSTR2:{rules:[28,29],inclusive:!1},NSTR:{rules:[31,32],inclusive:!1},NODE:{rules:[27,30,33,34,35,36,37,38,39,40,41,42],inclusive:!1},INITIAL:{rules:[0,6,7,8,11,12,13,16,17,18,19,20,21,22,23,24,25,26],inclusive:!0}}};return S})();E.lexer=w;function k(){this.yy={}}return o(k,"Parser"),k.prototype=E,E.Parser=k,new k})();YU.parser=YU;eEe=YU});var Yl,XU,jU,KU,_ht,Dht,rEe,Rht,Lht,ha,Nht,Mht,Iht,Oht,Pht,Bht,Fht,nEe,iEe=O(()=>{"use strict";jt();Ur();xt();La();ib();Yl=[],XU=[],jU=0,KU={},_ht=o(()=>{Yl=[],XU=[],jU=0,KU={}},"clear"),Dht=o(t=>{if(Yl.length===0)return null;let e=Yl[0].level,r=null;for(let n=Yl.length-1;n>=0;n--)if(Yl[n].level===e&&!r&&(r=Yl[n]),Yl[n].levell.parentId===i.id);for(let l of s){let u={id:l.id,parentId:i.id,label:wr(l.label??"",n),labelType:"markdown",isGroup:!1,ticket:l?.ticket,priority:l?.priority,assigned:l?.assigned,icon:l?.icon,shape:"kanbanItem",level:l.level,rx:5,ry:5,cssStyles:["text-align: left"]};e.push(u)}}return{nodes:e,edges:t,other:{},config:ve()}},"getData"),Lht=o((t,e,r,n,i)=>{let a=ve(),s=a.mindmap?.padding??gr.mindmap.padding;switch(n){case ha.ROUNDED_RECT:case ha.RECT:case ha.HEXAGON:s*=2}let l={id:wr(e,a)||"kbn"+jU++,level:t,label:wr(r,a),width:a.mindmap?.maxNodeWidth??gr.mindmap.maxNodeWidth,padding:s,isGroup:!1};if(i!==void 0){let h;i.includes(` +`)?h=i+` +`:h=`{ +`+i+` +}`;let f=Kf(h,{schema:Xf});if(f.shape&&(f.shape!==f.shape.toLowerCase()||f.shape.includes("_")))throw new Error(`No such shape: ${f.shape}. Shape names should be lowercase.`);f?.shape&&f.shape==="kanbanItem"&&(l.shape=f?.shape),f?.label&&(l.label=f?.label),f?.icon&&(l.icon=f?.icon.toString()),f?.assigned&&(l.assigned=f?.assigned.toString()),f?.ticket&&(l.ticket=f?.ticket.toString()),f?.priority&&(l.priority=f?.priority)}let u=Dht(t);u?l.parentId=u.id||"kbn"+jU++:XU.push(l),Yl.push(l)},"addNode"),ha={DEFAULT:0,NO_BORDER:0,ROUNDED_RECT:1,RECT:2,CIRCLE:3,CLOUD:4,BANG:5,HEXAGON:6},Nht=o((t,e)=>{switch(K.debug("In get type",t,e),t){case"[":return ha.RECT;case"(":return e===")"?ha.ROUNDED_RECT:ha.CLOUD;case"((":return ha.CIRCLE;case")":return ha.CLOUD;case"))":return ha.BANG;case"{{":return ha.HEXAGON;default:return ha.DEFAULT}},"getType"),Mht=o((t,e)=>{KU[t]=e},"setElementForId"),Iht=o(t=>{if(!t)return;let e=ve(),r=Yl[Yl.length-1];t.icon&&(r.icon=wr(t.icon,e)),t.class&&(r.cssClasses=wr(t.class,e))},"decorateNode"),Oht=o(t=>{switch(t){case ha.DEFAULT:return"no-border";case ha.RECT:return"rect";case ha.ROUNDED_RECT:return"rounded-rect";case ha.CIRCLE:return"circle";case ha.CLOUD:return"cloud";case ha.BANG:return"bang";case ha.HEXAGON:return"hexgon";default:return"no-border"}},"type2Str"),Pht=o(()=>K,"getLogger"),Bht=o(t=>KU[t],"getElementById"),Fht={clear:_ht,addNode:Lht,getSections:rEe,getData:Rht,nodeType:ha,getType:Nht,setElementForId:Mht,decorateNode:Iht,type2Str:Oht,getLogger:Pht,getElementById:Bht},nEe=Fht});var $ht,aEe,sEe=O(()=>{"use strict";jt();xt();Ul();Ti();La();oE();yE();$ht=o(async(t,e,r,n)=>{K.debug(`Rendering kanban diagram +`+t);let a=n.db.getData(),s=ve();s.htmlLabels=!1;let l=Ii(e),u=l.append("g");u.attr("class","sections");let h=l.append("g");h.attr("class","items");let f=a.nodes.filter(v=>v.isGroup),d=0,p=10,m=[],g=25;for(let v of f){let x=s?.kanban?.sectionWidth||200;d=d+1,v.x=x*d+(d-1)*p/2,v.width=x,v.y=0,v.height=x*3,v.rx=5,v.ry=5,v.cssClasses=v.cssClasses+" section-"+d;let b=await g1(u,v);g=Math.max(g,b?.labelBBox?.height),m.push(b)}let y=0;for(let v of f){let x=m[y];y=y+1;let b=s?.kanban?.sectionWidth||200,T=-b*3/2+g,E=T,w=a.nodes.filter(A=>A.parentId===v.id);for(let A of w){if(A.isGroup)throw new Error("Groups within groups are not allowed in Kanban diagrams");A.x=v.x,A.width=b-1.5*p;let I=(await y1(h,A,{config:s})).node().getBBox();A.y=E+I.height/2,await vb(A),E=A.y+I.height/2+p/2}let k=x.cluster.select("rect"),S=Math.max(E-T+3*p,50)+(g-25);k.attr("height",S)}Kc(void 0,l,s.mindmap?.padding??gr.kanban.padding,s.mindmap?.useMaxWidth??gr.kanban.useMaxWidth)},"draw"),aEe={draw:$ht}});var zht,Ght,oEe,lEe=O(()=>{"use strict";Ys();ly();zht=o(t=>{let e="";for(let n=0;nt.darkMode?Bt(n,i):Lt(n,i),"adjuster");for(let n=0;n` + .edge { + stroke-width: 3; + } + ${zht(t)} + .section-root rect, .section-root path, .section-root circle, .section-root polygon { + fill: ${t.git0}; + } + .section-root text { + fill: ${t.gitBranchLabel0}; + } + .icon-container { + height:100%; + display: flex; + justify-content: center; + align-items: center; + } + .edge { + fill: none; + } + .cluster-label, .label { + color: ${t.textColor}; + fill: ${t.textColor}; + } + .kanban-label { + dy: 1em; + alignment-baseline: middle; + text-anchor: middle; + dominant-baseline: middle; + text-align: center; + } + ${Lu()} +`,"getStyles"),oEe=Ght});var cEe={};vr(cEe,{diagram:()=>Vht});var Vht,uEe=O(()=>{"use strict";tEe();iEe();sEe();lEe();Vht={db:nEe,renderer:aEe,parser:eEe,styles:oEe}});var QU,T3,dEe=O(()=>{"use strict";QU=(function(){var t=o(function(l,u,h,f){for(h=h||{},f=l.length;f--;h[l[f]]=u);return h},"o"),e=[1,9],r=[1,10],n=[1,5,10,12],i={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,SANKEY:4,NEWLINE:5,csv:6,opt_eof:7,record:8,csv_tail:9,EOF:10,"field[source]":11,COMMA:12,"field[target]":13,"field[value]":14,field:15,escaped:16,non_escaped:17,DQUOTE:18,ESCAPED_TEXT:19,NON_ESCAPED_TEXT:20,$accept:0,$end:1},terminals_:{2:"error",4:"SANKEY",5:"NEWLINE",10:"EOF",11:"field[source]",12:"COMMA",13:"field[target]",14:"field[value]",18:"DQUOTE",19:"ESCAPED_TEXT",20:"NON_ESCAPED_TEXT"},productions_:[0,[3,4],[6,2],[9,2],[9,0],[7,1],[7,0],[8,5],[15,1],[15,1],[16,3],[17,1]],performAction:o(function(u,h,f,d,p,m,g){var y=m.length-1;switch(p){case 7:let v=d.findOrCreateNode(m[y-4].trim().replaceAll('""','"')),x=d.findOrCreateNode(m[y-2].trim().replaceAll('""','"')),b=parseFloat(m[y].trim());d.addLink(v,x,b);break;case 8:case 9:case 11:this.$=m[y];break;case 10:this.$=m[y-1];break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},{5:[1,3]},{6:4,8:5,15:6,16:7,17:8,18:e,20:r},{1:[2,6],7:11,10:[1,12]},t(r,[2,4],{9:13,5:[1,14]}),{12:[1,15]},t(n,[2,8]),t(n,[2,9]),{19:[1,16]},t(n,[2,11]),{1:[2,1]},{1:[2,5]},t(r,[2,2]),{6:17,8:5,15:6,16:7,17:8,18:e,20:r},{15:18,16:7,17:8,18:e,20:r},{18:[1,19]},t(r,[2,3]),{12:[1,20]},t(n,[2,10]),{15:21,16:7,17:8,18:e,20:r},t([1,5,10],[2,7])],defaultActions:{11:[2,1],12:[2,5]},parseError:o(function(u,h){if(h.recoverable)this.trace(u);else{var f=new Error(u);throw f.hash=h,f}},"parseError"),parse:o(function(u){var h=this,f=[0],d=[],p=[null],m=[],g=this.table,y="",v=0,x=0,b=0,T=2,E=1,w=m.slice.call(arguments,1),k=Object.create(this.lexer),S={yy:{}};for(var A in this.yy)Object.prototype.hasOwnProperty.call(this.yy,A)&&(S.yy[A]=this.yy[A]);k.setInput(u,S.yy),S.yy.lexer=k,S.yy.parser=this,typeof k.yylloc>"u"&&(k.yylloc={});var L=k.yylloc;m.push(L);var I=k.options&&k.options.ranges;typeof S.yy.parseError=="function"?this.parseError=S.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function N(H){f.length=f.length-2*H,p.length=p.length-H,m.length=m.length-H}o(N,"popStack");function C(){var H;return H=d.pop()||k.lex()||E,typeof H!="number"&&(H instanceof Array&&(d=H,H=d.pop()),H=h.symbols_[H]||H),H}o(C,"lex");for(var _,D,M,R,P,B,F={},G,$,V,X;;){if(M=f[f.length-1],this.defaultActions[M]?R=this.defaultActions[M]:((_===null||typeof _>"u")&&(_=C()),R=g[M]&&g[M][_]),typeof R>"u"||!R.length||!R[0]){var Q="";X=[];for(G in g[M])this.terminals_[G]&&G>T&&X.push("'"+this.terminals_[G]+"'");k.showPosition?Q="Parse error on line "+(v+1)+`: +`+k.showPosition()+` +Expecting `+X.join(", ")+", got '"+(this.terminals_[_]||_)+"'":Q="Parse error on line "+(v+1)+": Unexpected "+(_==E?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(Q,{text:k.match,token:this.terminals_[_]||_,line:k.yylineno,loc:L,expected:X})}if(R[0]instanceof Array&&R.length>1)throw new Error("Parse Error: multiple actions possible at state: "+M+", token: "+_);switch(R[0]){case 1:f.push(_),p.push(k.yytext),m.push(k.yylloc),f.push(R[1]),_=null,D?(_=D,D=null):(x=k.yyleng,y=k.yytext,v=k.yylineno,L=k.yylloc,b>0&&b--);break;case 2:if($=this.productions_[R[1]][1],F.$=p[p.length-$],F._$={first_line:m[m.length-($||1)].first_line,last_line:m[m.length-1].last_line,first_column:m[m.length-($||1)].first_column,last_column:m[m.length-1].last_column},I&&(F._$.range=[m[m.length-($||1)].range[0],m[m.length-1].range[1]]),B=this.performAction.apply(F,[y,x,v,S.yy,R[1],p,m].concat(w)),typeof B<"u")return B;$&&(f=f.slice(0,-1*$*2),p=p.slice(0,-1*$),m=m.slice(0,-1*$)),f.push(this.productions_[R[1]][0]),p.push(F.$),m.push(F._$),V=g[f[f.length-2]][f[f.length-1]],f.push(V);break;case 3:return!0}}return!0},"parse")},a=(function(){var l={EOF:1,parseError:o(function(h,f){if(this.yy.parser)this.yy.parser.parseError(h,f);else throw new Error(h)},"parseError"),setInput:o(function(u,h){return this.yy=h||this.yy||{},this._input=u,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var u=this._input[0];this.yytext+=u,this.yyleng++,this.offset++,this.match+=u,this.matched+=u;var h=u.match(/(?:\r\n?|\n).*/g);return h?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),u},"input"),unput:o(function(u){var h=u.length,f=u.split(/(?:\r\n?|\n)/g);this._input=u+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-h),this.offset-=h;var d=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),f.length-1&&(this.yylineno-=f.length-1);var p=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:f?(f.length===d.length?this.yylloc.first_column:0)+d[d.length-f.length].length-f[0].length:this.yylloc.first_column-h},this.options.ranges&&(this.yylloc.range=[p[0],p[0]+this.yyleng-h]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(u){this.unput(this.match.slice(u))},"less"),pastInput:o(function(){var u=this.matched.substr(0,this.matched.length-this.match.length);return(u.length>20?"...":"")+u.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var u=this.match;return u.length<20&&(u+=this._input.substr(0,20-u.length)),(u.substr(0,20)+(u.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var u=this.pastInput(),h=new Array(u.length+1).join("-");return u+this.upcomingInput()+` +`+h+"^"},"showPosition"),test_match:o(function(u,h){var f,d,p;if(this.options.backtrack_lexer&&(p={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(p.yylloc.range=this.yylloc.range.slice(0))),d=u[0].match(/(?:\r\n?|\n).*/g),d&&(this.yylineno+=d.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:d?d[d.length-1].length-d[d.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+u[0].length},this.yytext+=u[0],this.match+=u[0],this.matches=u,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(u[0].length),this.matched+=u[0],f=this.performAction.call(this,this.yy,this,h,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),f)return f;if(this._backtrack){for(var m in p)this[m]=p[m];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var u,h,f,d;this._more||(this.yytext="",this.match="");for(var p=this._currentRules(),m=0;mh[0].length)){if(h=f,d=m,this.options.backtrack_lexer){if(u=this.test_match(f,p[m]),u!==!1)return u;if(this._backtrack){h=!1;continue}else return!1}else if(!this.options.flex)break}return h?(u=this.test_match(h,p[d]),u!==!1?u:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var h=this.next();return h||this.lex()},"lex"),begin:o(function(h){this.conditionStack.push(h)},"begin"),popState:o(function(){var h=this.conditionStack.length-1;return h>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(h){return h=this.conditionStack.length-1-Math.abs(h||0),h>=0?this.conditionStack[h]:"INITIAL"},"topState"),pushState:o(function(h){this.begin(h)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(h,f,d,p){var m=p;switch(d){case 0:return this.pushState("csv"),4;break;case 1:return this.pushState("csv"),4;break;case 2:return 10;case 3:return 5;case 4:return 12;case 5:return this.pushState("escaped_text"),18;break;case 6:return 20;case 7:return this.popState("escaped_text"),18;break;case 8:return 19}},"anonymous"),rules:[/^(?:sankey-beta\b)/i,/^(?:sankey\b)/i,/^(?:$)/i,/^(?:((\u000D\u000A)|(\u000A)))/i,/^(?:(\u002C))/i,/^(?:(\u0022))/i,/^(?:([\u0020-\u0021\u0023-\u002B\u002D-\u007E])*)/i,/^(?:(\u0022)(?!(\u0022)))/i,/^(?:(([\u0020-\u0021\u0023-\u002B\u002D-\u007E])|(\u002C)|(\u000D)|(\u000A)|(\u0022)(\u0022))*)/i],conditions:{csv:{rules:[2,3,4,5,6,7,8],inclusive:!1},escaped_text:{rules:[7,8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8],inclusive:!0}}};return l})();i.lexer=a;function s(){this.yy={}}return o(s,"Parser"),s.prototype=i,i.Parser=s,new s})();QU.parser=QU;T3=QU});var h_,f_,u_,Hht,ZU,Yht,JU,jht,Xht,Kht,Qht,pEe,mEe=O(()=>{"use strict";jt();Ur();si();h_=[],f_=[],u_=new Map,Hht=o(()=>{h_=[],f_=[],u_=new Map,_r()},"clear"),ZU=class{constructor(e,r,n=0){this.source=e;this.target=r;this.value=n}static{o(this,"SankeyLink")}},Yht=o((t,e,r)=>{h_.push(new ZU(t,e,r))},"addLink"),JU=class{constructor(e){this.ID=e}static{o(this,"SankeyNode")}},jht=o(t=>{t=st.sanitizeText(t,ve());let e=u_.get(t);return e===void 0&&(e=new JU(t),u_.set(t,e),f_.push(e)),e},"findOrCreateNode"),Xht=o(()=>f_,"getNodes"),Kht=o(()=>h_,"getLinks"),Qht=o(()=>({nodes:f_.map(t=>({id:t.ID})),links:h_.map(t=>({source:t.source.ID,target:t.target.ID,value:t.value}))}),"getGraph"),pEe={nodesMap:u_,getConfig:o(()=>ve().sankey,"getConfig"),getNodes:Xht,getLinks:Kht,getGraph:Qht,addLink:Yht,findOrCreateNode:jht,getAccTitle:Or,setAccTitle:Lr,getAccDescription:Br,setAccDescription:Pr,getDiagramTitle:Fr,setDiagramTitle:zr,clear:Hht}});function w3(t,e){let r;if(e===void 0)for(let n of t)n!=null&&(r=n)&&(r=n);else{let n=-1;for(let i of t)(i=e(i,++n,t))!=null&&(r=i)&&(r=i)}return r}var gEe=O(()=>{"use strict";o(w3,"max")});function Wv(t,e){let r;if(e===void 0)for(let n of t)n!=null&&(r>n||r===void 0&&n>=n)&&(r=n);else{let n=-1;for(let i of t)(i=e(i,++n,t))!=null&&(r>i||r===void 0&&i>=i)&&(r=i)}return r}var yEe=O(()=>{"use strict";o(Wv,"min")});function Hv(t,e){let r=0;if(e===void 0)for(let n of t)(n=+n)&&(r+=n);else{let n=-1;for(let i of t)(i=+e(i,++n,t))&&(r+=i)}return r}var vEe=O(()=>{"use strict";o(Hv,"sum")});var eW=O(()=>{"use strict";gEe();yEe();vEe()});function Zht(t){return t.target.depth}function tW(t){return t.depth}function rW(t,e){return e-1-t.height}function k3(t,e){return t.sourceLinks.length?t.depth:e-1}function nW(t){return t.targetLinks.length?t.depth:t.sourceLinks.length?Wv(t.sourceLinks,Zht)-1:0}var iW=O(()=>{"use strict";eW();o(Zht,"targetDepth");o(tW,"left");o(rW,"right");o(k3,"justify");o(nW,"center")});function Yv(t){return function(){return t}}var xEe=O(()=>{"use strict";o(Yv,"constant")});function bEe(t,e){return d_(t.source,e.source)||t.index-e.index}function TEe(t,e){return d_(t.target,e.target)||t.index-e.index}function d_(t,e){return t.y0-e.y0}function aW(t){return t.value}function Jht(t){return t.index}function eft(t){return t.nodes}function tft(t){return t.links}function wEe(t,e){let r=t.get(e);if(!r)throw new Error("missing: "+e);return r}function kEe({nodes:t}){for(let e of t){let r=e.y0,n=r;for(let i of e.sourceLinks)i.y0=r+i.width/2,r+=i.width;for(let i of e.targetLinks)i.y1=n+i.width/2,n+=i.width}}function p_(){let t=0,e=0,r=1,n=1,i=24,a=8,s,l=Jht,u=k3,h,f,d=eft,p=tft,m=6;function g(){let M={nodes:d.apply(null,arguments),links:p.apply(null,arguments)};return y(M),v(M),x(M),b(M),w(M),kEe(M),M}o(g,"sankey"),g.update=function(M){return kEe(M),M},g.nodeId=function(M){return arguments.length?(l=typeof M=="function"?M:Yv(M),g):l},g.nodeAlign=function(M){return arguments.length?(u=typeof M=="function"?M:Yv(M),g):u},g.nodeSort=function(M){return arguments.length?(h=M,g):h},g.nodeWidth=function(M){return arguments.length?(i=+M,g):i},g.nodePadding=function(M){return arguments.length?(a=s=+M,g):a},g.nodes=function(M){return arguments.length?(d=typeof M=="function"?M:Yv(M),g):d},g.links=function(M){return arguments.length?(p=typeof M=="function"?M:Yv(M),g):p},g.linkSort=function(M){return arguments.length?(f=M,g):f},g.size=function(M){return arguments.length?(t=e=0,r=+M[0],n=+M[1],g):[r-t,n-e]},g.extent=function(M){return arguments.length?(t=+M[0][0],r=+M[1][0],e=+M[0][1],n=+M[1][1],g):[[t,e],[r,n]]},g.iterations=function(M){return arguments.length?(m=+M,g):m};function y({nodes:M,links:R}){for(let[B,F]of M.entries())F.index=B,F.sourceLinks=[],F.targetLinks=[];let P=new Map(M.map((B,F)=>[l(B,F,M),B]));for(let[B,F]of R.entries()){F.index=B;let{source:G,target:$}=F;typeof G!="object"&&(G=F.source=wEe(P,G)),typeof $!="object"&&($=F.target=wEe(P,$)),G.sourceLinks.push(F),$.targetLinks.push(F)}if(f!=null)for(let{sourceLinks:B,targetLinks:F}of M)B.sort(f),F.sort(f)}o(y,"computeNodeLinks");function v({nodes:M}){for(let R of M)R.value=R.fixedValue===void 0?Math.max(Hv(R.sourceLinks,aW),Hv(R.targetLinks,aW)):R.fixedValue}o(v,"computeNodeValues");function x({nodes:M}){let R=M.length,P=new Set(M),B=new Set,F=0;for(;P.size;){for(let G of P){G.depth=F;for(let{target:$}of G.sourceLinks)B.add($)}if(++F>R)throw new Error("circular link");P=B,B=new Set}}o(x,"computeNodeDepths");function b({nodes:M}){let R=M.length,P=new Set(M),B=new Set,F=0;for(;P.size;){for(let G of P){G.height=F;for(let{source:$}of G.targetLinks)B.add($)}if(++F>R)throw new Error("circular link");P=B,B=new Set}}o(b,"computeNodeHeights");function T({nodes:M}){let R=w3(M,F=>F.depth)+1,P=(r-t-i)/(R-1),B=new Array(R);for(let F of M){let G=Math.max(0,Math.min(R-1,Math.floor(u.call(null,F,R))));F.layer=G,F.x0=t+G*P,F.x1=F.x0+i,B[G]?B[G].push(F):B[G]=[F]}if(h)for(let F of B)F.sort(h);return B}o(T,"computeNodeLayers");function E(M){let R=Wv(M,P=>(n-e-(P.length-1)*s)/Hv(P,aW));for(let P of M){let B=e;for(let F of P){F.y0=B,F.y1=B+F.value*R,B=F.y1+s;for(let G of F.sourceLinks)G.width=G.value*R}B=(n-B+s)/(P.length+1);for(let F=0;FP.length)-1)),E(R);for(let P=0;P0))continue;let Q=(V/X-$.y0)*R;$.y0+=Q,$.y1+=Q,N($)}h===void 0&&G.sort(d_),A(G,P)}}o(k,"relaxLeftToRight");function S(M,R,P){for(let B=M.length,F=B-2;F>=0;--F){let G=M[F];for(let $ of G){let V=0,X=0;for(let{target:H,value:ie}of $.sourceLinks){let Y=ie*(H.layer-$.layer);V+=D($,H)*Y,X+=Y}if(!(X>0))continue;let Q=(V/X-$.y0)*R;$.y0+=Q,$.y1+=Q,N($)}h===void 0&&G.sort(d_),A(G,P)}}o(S,"relaxRightToLeft");function A(M,R){let P=M.length>>1,B=M[P];I(M,B.y0-s,P-1,R),L(M,B.y1+s,P+1,R),I(M,n,M.length-1,R),L(M,e,0,R)}o(A,"resolveCollisions");function L(M,R,P,B){for(;P1e-6&&(F.y0+=G,F.y1+=G),R=F.y1+s}}o(L,"resolveCollisionsTopToBottom");function I(M,R,P,B){for(;P>=0;--P){let F=M[P],G=(F.y1-R)*B;G>1e-6&&(F.y0-=G,F.y1-=G),R=F.y0-s}}o(I,"resolveCollisionsBottomToTop");function N({sourceLinks:M,targetLinks:R}){if(f===void 0){for(let{source:{sourceLinks:P}}of R)P.sort(TEe);for(let{target:{targetLinks:P}}of M)P.sort(bEe)}}o(N,"reorderNodeLinks");function C(M){if(f===void 0)for(let{sourceLinks:R,targetLinks:P}of M)R.sort(TEe),P.sort(bEe)}o(C,"reorderLinks");function _(M,R){let P=M.y0-(M.sourceLinks.length-1)*s/2;for(let{target:B,width:F}of M.sourceLinks){if(B===R)break;P+=F+s}for(let{source:B,width:F}of R.targetLinks){if(B===M)break;P-=F}return P}o(_,"targetTop");function D(M,R){let P=R.y0-(R.targetLinks.length-1)*s/2;for(let{source:B,width:F}of R.targetLinks){if(B===M)break;P+=F+s}for(let{target:B,width:F}of M.sourceLinks){if(B===R)break;P-=F}return P}return o(D,"sourceTop"),g}var EEe=O(()=>{"use strict";eW();iW();xEe();o(bEe,"ascendingSourceBreadth");o(TEe,"ascendingTargetBreadth");o(d_,"ascendingBreadth");o(aW,"value");o(Jht,"defaultId");o(eft,"defaultNodes");o(tft,"defaultLinks");o(wEe,"find");o(kEe,"computeLinkBreadths");o(p_,"Sankey")});function lW(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function SEe(){return new lW}var sW,oW,Jm,rft,cW,CEe=O(()=>{"use strict";sW=Math.PI,oW=2*sW,Jm=1e-6,rft=oW-Jm;o(lW,"Path");o(SEe,"path");lW.prototype=SEe.prototype={constructor:lW,moveTo:o(function(t,e){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)},"moveTo"),closePath:o(function(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},"closePath"),lineTo:o(function(t,e){this._+="L"+(this._x1=+t)+","+(this._y1=+e)},"lineTo"),quadraticCurveTo:o(function(t,e,r,n){this._+="Q"+ +t+","+ +e+","+(this._x1=+r)+","+(this._y1=+n)},"quadraticCurveTo"),bezierCurveTo:o(function(t,e,r,n,i,a){this._+="C"+ +t+","+ +e+","+ +r+","+ +n+","+(this._x1=+i)+","+(this._y1=+a)},"bezierCurveTo"),arcTo:o(function(t,e,r,n,i){t=+t,e=+e,r=+r,n=+n,i=+i;var a=this._x1,s=this._y1,l=r-t,u=n-e,h=a-t,f=s-e,d=h*h+f*f;if(i<0)throw new Error("negative radius: "+i);if(this._x1===null)this._+="M"+(this._x1=t)+","+(this._y1=e);else if(d>Jm)if(!(Math.abs(f*l-u*h)>Jm)||!i)this._+="L"+(this._x1=t)+","+(this._y1=e);else{var p=r-a,m=n-s,g=l*l+u*u,y=p*p+m*m,v=Math.sqrt(g),x=Math.sqrt(d),b=i*Math.tan((sW-Math.acos((g+d-y)/(2*v*x)))/2),T=b/x,E=b/v;Math.abs(T-1)>Jm&&(this._+="L"+(t+T*h)+","+(e+T*f)),this._+="A"+i+","+i+",0,0,"+ +(f*p>h*m)+","+(this._x1=t+E*l)+","+(this._y1=e+E*u)}},"arcTo"),arc:o(function(t,e,r,n,i,a){t=+t,e=+e,r=+r,a=!!a;var s=r*Math.cos(n),l=r*Math.sin(n),u=t+s,h=e+l,f=1^a,d=a?n-i:i-n;if(r<0)throw new Error("negative radius: "+r);this._x1===null?this._+="M"+u+","+h:(Math.abs(this._x1-u)>Jm||Math.abs(this._y1-h)>Jm)&&(this._+="L"+u+","+h),r&&(d<0&&(d=d%oW+oW),d>rft?this._+="A"+r+","+r+",0,1,"+f+","+(t-s)+","+(e-l)+"A"+r+","+r+",0,1,"+f+","+(this._x1=u)+","+(this._y1=h):d>Jm&&(this._+="A"+r+","+r+",0,"+ +(d>=sW)+","+f+","+(this._x1=t+r*Math.cos(i))+","+(this._y1=e+r*Math.sin(i))))},"arc"),rect:o(function(t,e,r,n){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)+"h"+ +r+"v"+ +n+"h"+-r+"Z"},"rect"),toString:o(function(){return this._},"toString")};cW=SEe});var AEe=O(()=>{"use strict";CEe()});function m_(t){return o(function(){return t},"constant")}var _Ee=O(()=>{"use strict";o(m_,"default")});function DEe(t){return t[0]}function REe(t){return t[1]}var LEe=O(()=>{"use strict";o(DEe,"x");o(REe,"y")});var NEe,MEe=O(()=>{"use strict";NEe=Array.prototype.slice});function nft(t){return t.source}function ift(t){return t.target}function aft(t){var e=nft,r=ift,n=DEe,i=REe,a=null;function s(){var l,u=NEe.call(arguments),h=e.apply(this,u),f=r.apply(this,u);if(a||(a=l=cW()),t(a,+n.apply(this,(u[0]=h,u)),+i.apply(this,u),+n.apply(this,(u[0]=f,u)),+i.apply(this,u)),l)return a=null,l+""||null}return o(s,"link"),s.source=function(l){return arguments.length?(e=l,s):e},s.target=function(l){return arguments.length?(r=l,s):r},s.x=function(l){return arguments.length?(n=typeof l=="function"?l:m_(+l),s):n},s.y=function(l){return arguments.length?(i=typeof l=="function"?l:m_(+l),s):i},s.context=function(l){return arguments.length?(a=l??null,s):a},s}function sft(t,e,r,n,i){t.moveTo(e,r),t.bezierCurveTo(e=(e+n)/2,r,e,i,n,i)}function uW(){return aft(sft)}var IEe=O(()=>{"use strict";AEe();MEe();_Ee();LEe();o(nft,"linkSource");o(ift,"linkTarget");o(aft,"link");o(sft,"curveHorizontal");o(uW,"linkHorizontal")});var OEe=O(()=>{"use strict";IEe()});function oft(t){return[t.source.x1,t.y0]}function lft(t){return[t.target.x0,t.y1]}function g_(){return uW().source(oft).target(lft)}var PEe=O(()=>{"use strict";OEe();o(oft,"horizontalSource");o(lft,"horizontalTarget");o(g_,"default")});var BEe=O(()=>{"use strict";EEe();iW();PEe()});var E3,FEe=O(()=>{"use strict";E3=class t{static{o(this,"Uid")}static{this.count=0}static next(e){return new t(e+ ++t.count)}constructor(e){this.id=e,this.href=`#${e}`}toString(){return"url("+this.href+")"}}});var cft,uft,$Ee,zEe=O(()=>{"use strict";jt();Ar();BEe();Ti();FEe();cft={left:tW,right:rW,center:nW,justify:k3},uft=o(function(t,e,r,n){let{securityLevel:i,sankey:a}=ve(),s=Fw.sankey,l;i==="sandbox"&&(l=je("#i"+e));let u=i==="sandbox"?je(l.nodes()[0].contentDocument.body):je("body"),h=i==="sandbox"?u.select(`[id="${e}"]`):je(`[id="${e}"]`),f=a?.width??s.width,d=a?.height??s.width,p=a?.useMaxWidth??s.useMaxWidth,m=a?.nodeAlignment??s.nodeAlignment,g=a?.prefix??s.prefix,y=a?.suffix??s.suffix,v=a?.showValues??s.showValues,x=n.db.getGraph(),b=cft[m];p_().nodeId(I=>I.id).nodeWidth(10).nodePadding(10+(v?15:0)).nodeAlign(b).extent([[0,0],[f,d]])(x);let w=Fo(B9);h.append("g").attr("class","nodes").selectAll(".node").data(x.nodes).join("g").attr("class","node").attr("id",I=>(I.uid=E3.next("node-")).id).attr("transform",function(I){return"translate("+I.x0+","+I.y0+")"}).attr("x",I=>I.x0).attr("y",I=>I.y0).append("rect").attr("height",I=>I.y1-I.y0).attr("width",I=>I.x1-I.x0).attr("fill",I=>w(I.id));let k=o(({id:I,value:N})=>v?`${I} +${g}${Math.round(N*100)/100}${y}`:I,"getText");h.append("g").attr("class","node-labels").attr("font-size",14).selectAll("text").data(x.nodes).join("text").attr("x",I=>I.x0(I.y1+I.y0)/2).attr("dy",`${v?"0":"0.35"}em`).attr("text-anchor",I=>I.x0(N.uid=E3.next("linearGradient-")).id).attr("gradientUnits","userSpaceOnUse").attr("x1",N=>N.source.x1).attr("x2",N=>N.target.x0);I.append("stop").attr("offset","0%").attr("stop-color",N=>w(N.source.id)),I.append("stop").attr("offset","100%").attr("stop-color",N=>w(N.target.id))}let L;switch(A){case"gradient":L=o(I=>I.uid,"coloring");break;case"source":L=o(I=>w(I.source.id),"coloring");break;case"target":L=o(I=>w(I.target.id),"coloring");break;default:L=A}S.append("path").attr("d",g_()).attr("stroke",L).attr("stroke-width",I=>Math.max(1,I.width)),Kc(void 0,h,0,p)},"draw"),$Ee={draw:uft}});var GEe,VEe=O(()=>{"use strict";GEe=o(t=>t.replaceAll(/^[^\S\n\r]+|[^\S\n\r]+$/g,"").replaceAll(/([\n\r])+/g,` +`).trim(),"prepareTextForParsing")});var hft,qEe,UEe=O(()=>{"use strict";hft=o(t=>`.label { + font-family: ${t.fontFamily}; + }`,"getStyles"),qEe=hft});var WEe={};vr(WEe,{diagram:()=>dft});var fft,dft,HEe=O(()=>{"use strict";dEe();mEe();zEe();VEe();UEe();fft=T3.parse.bind(T3);T3.parse=t=>fft(GEe(t));dft={styles:qEe,parser:T3,db:pEe,renderer:$Ee}});var yft,jv,hW=O(()=>{"use strict";$r();La();ar();si();yft=gr.packet,jv=class{constructor(){this.packet=[];this.setAccTitle=Lr;this.getAccTitle=Or;this.setDiagramTitle=zr;this.getDiagramTitle=Fr;this.getAccDescription=Br;this.setAccDescription=Pr}static{o(this,"PacketDB")}getConfig(){let e=Pn({...yft,...Zt().packet});return e.showBits&&(e.paddingY+=10),e}getPacket(){return this.packet}pushWord(e){e.length>0&&this.packet.push(e)}clear(){_r(),this.packet=[]}}});var vft,xft,bft,fW,XEe=O(()=>{"use strict";up();xt();Vm();hW();vft=1e4,xft=o((t,e)=>{ql(t,e);let r=-1,n=[],i=1,{bitsPerRow:a}=e.getConfig();for(let{start:s,end:l,bits:u,label:h}of t.blocks){if(s!==void 0&&l!==void 0&&l{if(t.start===void 0)throw new Error("start should have been set during first phase");if(t.end===void 0)throw new Error("end should have been set during first phase");if(t.start>t.end)throw new Error(`Block start ${t.start} is greater than block end ${t.end}.`);if(t.end+1<=e*r)return[t,void 0];let n=e*r-1,i=e*r;return[{start:t.start,end:n,label:t.label,bits:n-t.start},{start:i,end:t.end,label:t.label,bits:t.end-i}]},"getNextFittingBlock"),fW={parser:{yy:void 0},parse:o(async t=>{let e=await Us("packet",t),r=fW.parser?.yy;if(!(r instanceof jv))throw new Error("parser.parser?.yy was not a PacketDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");K.debug(e),xft(e,r)},"parse")}});var Tft,wft,KEe,QEe=O(()=>{"use strict";Ul();Ti();Tft=o((t,e,r,n)=>{let i=n.db,a=i.getConfig(),{rowHeight:s,paddingY:l,bitWidth:u,bitsPerRow:h}=a,f=i.getPacket(),d=i.getDiagramTitle(),p=s+l,m=p*(f.length+1)-(d?0:s),g=u*h+2,y=Ii(e);y.attr("viewBox",`0 0 ${g} ${m}`),Zr(y,m,g,a.useMaxWidth);for(let[v,x]of f.entries())wft(y,x,v,a);y.append("text").text(d).attr("x",g/2).attr("y",m-p/2).attr("dominant-baseline","middle").attr("text-anchor","middle").attr("class","packetTitle")},"draw"),wft=o((t,e,r,{rowHeight:n,paddingX:i,paddingY:a,bitWidth:s,bitsPerRow:l,showBits:u})=>{let h=t.append("g"),f=r*(n+a)+a;for(let d of e){let p=d.start%l*s+1,m=(d.end-d.start+1)*s-i;if(h.append("rect").attr("x",p).attr("y",f).attr("width",m).attr("height",n).attr("class","packetBlock"),h.append("text").attr("x",p+m/2).attr("y",f+n/2).attr("class","packetLabel").attr("dominant-baseline","middle").attr("text-anchor","middle").text(d.label),!u)continue;let g=d.end===d.start,y=f-2;h.append("text").attr("x",p+(g?m/2:0)).attr("y",y).attr("class","packetByte start").attr("dominant-baseline","auto").attr("text-anchor",g?"middle":"start").text(d.start),g||h.append("text").attr("x",p+m).attr("y",y).attr("class","packetByte end").attr("dominant-baseline","auto").attr("text-anchor","end").text(d.end)}},"drawWord"),KEe={draw:Tft}});var kft,ZEe,JEe=O(()=>{"use strict";ar();kft={byteFontSize:"10px",startByteColor:"black",endByteColor:"black",labelColor:"black",labelFontSize:"12px",titleColor:"black",titleFontSize:"14px",blockStrokeColor:"black",blockStrokeWidth:"1",blockFillColor:"#efefef"},ZEe=o(({packet:t}={})=>{let e=Pn(kft,t);return` + .packetByte { + font-size: ${e.byteFontSize}; + } + .packetByte.start { + fill: ${e.startByteColor}; + } + .packetByte.end { + fill: ${e.endByteColor}; + } + .packetLabel { + fill: ${e.labelColor}; + font-size: ${e.labelFontSize}; + } + .packetTitle { + fill: ${e.titleColor}; + font-size: ${e.titleFontSize}; + } + .packetBlock { + stroke: ${e.blockStrokeColor}; + stroke-width: ${e.blockStrokeWidth}; + fill: ${e.blockFillColor}; + } + `},"styles")});var eSe={};vr(eSe,{diagram:()=>Eft});var Eft,tSe=O(()=>{"use strict";hW();XEe();QEe();JEe();Eft={parser:fW,get db(){return new jv},renderer:KEe,styles:ZEe}});var Xv,iSe,eg,Aft,_ft,aSe,Dft,Rft,Lft,Nft,Mft,Ift,Oft,tg,dW=O(()=>{"use strict";$r();La();ar();si();Xv={showLegend:!0,ticks:5,max:null,min:0,graticule:"circle"},iSe={axes:[],curves:[],options:Xv},eg=structuredClone(iSe),Aft=gr.radar,_ft=o(()=>Pn({...Aft,...Zt().radar}),"getConfig"),aSe=o(()=>eg.axes,"getAxes"),Dft=o(()=>eg.curves,"getCurves"),Rft=o(()=>eg.options,"getOptions"),Lft=o(t=>{eg.axes=t.map(e=>({name:e.name,label:e.label??e.name}))},"setAxes"),Nft=o(t=>{eg.curves=t.map(e=>({name:e.name,label:e.label??e.name,entries:Mft(e.entries)}))},"setCurves"),Mft=o(t=>{if(t[0].axis==null)return t.map(r=>r.value);let e=aSe();if(e.length===0)throw new Error("Axes must be populated before curves for reference entries");return e.map(r=>{let n=t.find(i=>i.axis?.$refText===r.name);if(n===void 0)throw new Error("Missing entry for axis "+r.label);return n.value})},"computeCurveEntries"),Ift=o(t=>{let e=t.reduce((r,n)=>(r[n.name]=n,r),{});eg.options={showLegend:e.showLegend?.value??Xv.showLegend,ticks:e.ticks?.value??Xv.ticks,max:e.max?.value??Xv.max,min:e.min?.value??Xv.min,graticule:e.graticule?.value??Xv.graticule}},"setOptions"),Oft=o(()=>{_r(),eg=structuredClone(iSe)},"clear"),tg={getAxes:aSe,getCurves:Dft,getOptions:Rft,setAxes:Lft,setCurves:Nft,setOptions:Ift,getConfig:_ft,clear:Oft,setAccTitle:Lr,getAccTitle:Or,setDiagramTitle:zr,getDiagramTitle:Fr,getAccDescription:Br,setAccDescription:Pr}});var Pft,sSe,oSe=O(()=>{"use strict";up();xt();Vm();dW();Pft=o(t=>{ql(t,tg);let{axes:e,curves:r,options:n}=t;tg.setAxes(e),tg.setCurves(r),tg.setOptions(n)},"populate"),sSe={parse:o(async t=>{let e=await Us("radar",t);K.debug(e),Pft(e)},"parse")}});function Gft(t,e,r,n,i,a,s){let l=e.length,u=Math.min(s.width,s.height)/2;r.forEach((h,f)=>{if(h.entries.length!==l)return;let d=h.entries.map((p,m)=>{let g=2*Math.PI*m/l-Math.PI/2,y=Vft(p,n,i,u),v=y*Math.cos(g),x=y*Math.sin(g);return{x:v,y:x}});a==="circle"?t.append("path").attr("d",qft(d,s.curveTension)).attr("class",`radarCurve-${f}`):a==="polygon"&&t.append("polygon").attr("points",d.map(p=>`${p.x},${p.y}`).join(" ")).attr("class",`radarCurve-${f}`)})}function Vft(t,e,r,n){let i=Math.min(Math.max(t,e),r);return n*(i-e)/(r-e)}function qft(t,e){let r=t.length,n=`M${t[0].x},${t[0].y}`;for(let i=0;i{let h=t.append("g").attr("transform",`translate(${i}, ${a+u*s})`);h.append("rect").attr("width",12).attr("height",12).attr("class",`radarLegendBox-${u}`),h.append("text").attr("x",16).attr("y",0).attr("class","radarLegendText").text(l.label)})}var Bft,Fft,$ft,zft,lSe,cSe=O(()=>{"use strict";Ul();Ti();Bft=o((t,e,r,n)=>{let i=n.db,a=i.getAxes(),s=i.getCurves(),l=i.getOptions(),u=i.getConfig(),h=i.getDiagramTitle(),f=Ii(e),d=Fft(f,u),p=l.max??Math.max(...s.map(y=>Math.max(...y.entries))),m=l.min,g=Math.min(u.width,u.height)/2;$ft(d,a,g,l.ticks,l.graticule),zft(d,a,g,u),Gft(d,a,s,m,p,l.graticule,u),Uft(d,s,l.showLegend,u),d.append("text").attr("class","radarTitle").text(h).attr("x",0).attr("y",-u.height/2-u.marginTop)},"draw"),Fft=o((t,e)=>{let r=e.width+e.marginLeft+e.marginRight,n=e.height+e.marginTop+e.marginBottom,i={x:e.marginLeft+e.width/2,y:e.marginTop+e.height/2};return Zr(t,n,r,e.useMaxWidth??!0),t.attr("viewBox",`0 0 ${r} ${n}`),t.append("g").attr("transform",`translate(${i.x}, ${i.y})`)},"drawFrame"),$ft=o((t,e,r,n,i)=>{if(i==="circle")for(let a=0;a{let d=2*f*Math.PI/a-Math.PI/2,p=l*Math.cos(d),m=l*Math.sin(d);return`${p},${m}`}).join(" ");t.append("polygon").attr("points",u).attr("class","radarGraticule")}}},"drawGraticule"),zft=o((t,e,r,n)=>{let i=e.length;for(let a=0;a{"use strict";ar();y2();$r();Wft=o((t,e)=>{let r="";for(let n=0;n{let e=yf(),r=Zt(),n=Pn(e,r.themeVariables),i=Pn(n.radar,t);return{themeVariables:n,radarOptions:i}},"buildRadarStyleOptions"),uSe=o(({radar:t}={})=>{let{themeVariables:e,radarOptions:r}=Hft(t);return` + .radarTitle { + font-size: ${e.fontSize}; + color: ${e.titleColor}; + dominant-baseline: hanging; + text-anchor: middle; + } + .radarAxisLine { + stroke: ${r.axisColor}; + stroke-width: ${r.axisStrokeWidth}; + } + .radarAxisLabel { + dominant-baseline: middle; + text-anchor: middle; + font-size: ${r.axisLabelFontSize}px; + color: ${r.axisColor}; + } + .radarGraticule { + fill: ${r.graticuleColor}; + fill-opacity: ${r.graticuleOpacity}; + stroke: ${r.graticuleColor}; + stroke-width: ${r.graticuleStrokeWidth}; + } + .radarLegendText { + text-anchor: start; + font-size: ${r.legendFontSize}px; + dominant-baseline: hanging; + } + ${Wft(e,r)} + `},"styles")});var fSe={};vr(fSe,{diagram:()=>Yft});var Yft,dSe=O(()=>{"use strict";dW();oSe();cSe();hSe();Yft={parser:sSe,db:tg,renderer:lSe,styles:uSe}});var pW,gSe,ySe=O(()=>{"use strict";pW=(function(){var t=o(function(T,E,w,k){for(w=w||{},k=T.length;k--;w[T[k]]=E);return w},"o"),e=[1,15],r=[1,7],n=[1,13],i=[1,14],a=[1,19],s=[1,16],l=[1,17],u=[1,18],h=[8,30],f=[8,10,21,28,29,30,31,39,43,46],d=[1,23],p=[1,24],m=[8,10,15,16,21,28,29,30,31,39,43,46],g=[8,10,15,16,21,27,28,29,30,31,39,43,46],y=[1,49],v={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,spaceLines:3,SPACELINE:4,NL:5,separator:6,SPACE:7,EOF:8,start:9,BLOCK_DIAGRAM_KEY:10,document:11,stop:12,statement:13,link:14,LINK:15,START_LINK:16,LINK_LABEL:17,STR:18,nodeStatement:19,columnsStatement:20,SPACE_BLOCK:21,blockStatement:22,classDefStatement:23,cssClassStatement:24,styleStatement:25,node:26,SIZE:27,COLUMNS:28,"id-block":29,end:30,NODE_ID:31,nodeShapeNLabel:32,dirList:33,DIR:34,NODE_DSTART:35,NODE_DEND:36,BLOCK_ARROW_START:37,BLOCK_ARROW_END:38,classDef:39,CLASSDEF_ID:40,CLASSDEF_STYLEOPTS:41,DEFAULT:42,class:43,CLASSENTITY_IDS:44,STYLECLASS:45,style:46,STYLE_ENTITY_IDS:47,STYLE_DEFINITION_DATA:48,$accept:0,$end:1},terminals_:{2:"error",4:"SPACELINE",5:"NL",7:"SPACE",8:"EOF",10:"BLOCK_DIAGRAM_KEY",15:"LINK",16:"START_LINK",17:"LINK_LABEL",18:"STR",21:"SPACE_BLOCK",27:"SIZE",28:"COLUMNS",29:"id-block",30:"end",31:"NODE_ID",34:"DIR",35:"NODE_DSTART",36:"NODE_DEND",37:"BLOCK_ARROW_START",38:"BLOCK_ARROW_END",39:"classDef",40:"CLASSDEF_ID",41:"CLASSDEF_STYLEOPTS",42:"DEFAULT",43:"class",44:"CLASSENTITY_IDS",45:"STYLECLASS",46:"style",47:"STYLE_ENTITY_IDS",48:"STYLE_DEFINITION_DATA"},productions_:[0,[3,1],[3,2],[3,2],[6,1],[6,1],[6,1],[9,3],[12,1],[12,1],[12,2],[12,2],[11,1],[11,2],[14,1],[14,4],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[19,3],[19,2],[19,1],[20,1],[22,4],[22,3],[26,1],[26,2],[33,1],[33,2],[32,3],[32,4],[23,3],[23,3],[24,3],[25,3]],performAction:o(function(E,w,k,S,A,L,I){var N=L.length-1;switch(A){case 4:S.getLogger().debug("Rule: separator (NL) ");break;case 5:S.getLogger().debug("Rule: separator (Space) ");break;case 6:S.getLogger().debug("Rule: separator (EOF) ");break;case 7:S.getLogger().debug("Rule: hierarchy: ",L[N-1]),S.setHierarchy(L[N-1]);break;case 8:S.getLogger().debug("Stop NL ");break;case 9:S.getLogger().debug("Stop EOF ");break;case 10:S.getLogger().debug("Stop NL2 ");break;case 11:S.getLogger().debug("Stop EOF2 ");break;case 12:S.getLogger().debug("Rule: statement: ",L[N]),typeof L[N].length=="number"?this.$=L[N]:this.$=[L[N]];break;case 13:S.getLogger().debug("Rule: statement #2: ",L[N-1]),this.$=[L[N-1]].concat(L[N]);break;case 14:S.getLogger().debug("Rule: link: ",L[N],E),this.$={edgeTypeStr:L[N],label:""};break;case 15:S.getLogger().debug("Rule: LABEL link: ",L[N-3],L[N-1],L[N]),this.$={edgeTypeStr:L[N],label:L[N-1]};break;case 18:let C=parseInt(L[N]),_=S.generateId();this.$={id:_,type:"space",label:"",width:C,children:[]};break;case 23:S.getLogger().debug("Rule: (nodeStatement link node) ",L[N-2],L[N-1],L[N]," typestr: ",L[N-1].edgeTypeStr);let D=S.edgeStrToEdgeData(L[N-1].edgeTypeStr);this.$=[{id:L[N-2].id,label:L[N-2].label,type:L[N-2].type,directions:L[N-2].directions},{id:L[N-2].id+"-"+L[N].id,start:L[N-2].id,end:L[N].id,label:L[N-1].label,type:"edge",directions:L[N].directions,arrowTypeEnd:D,arrowTypeStart:"arrow_open"},{id:L[N].id,label:L[N].label,type:S.typeStr2Type(L[N].typeStr),directions:L[N].directions}];break;case 24:S.getLogger().debug("Rule: nodeStatement (abc88 node size) ",L[N-1],L[N]),this.$={id:L[N-1].id,label:L[N-1].label,type:S.typeStr2Type(L[N-1].typeStr),directions:L[N-1].directions,widthInColumns:parseInt(L[N],10)};break;case 25:S.getLogger().debug("Rule: nodeStatement (node) ",L[N]),this.$={id:L[N].id,label:L[N].label,type:S.typeStr2Type(L[N].typeStr),directions:L[N].directions,widthInColumns:1};break;case 26:S.getLogger().debug("APA123",this?this:"na"),S.getLogger().debug("COLUMNS: ",L[N]),this.$={type:"column-setting",columns:L[N]==="auto"?-1:parseInt(L[N])};break;case 27:S.getLogger().debug("Rule: id-block statement : ",L[N-2],L[N-1]);let M=S.generateId();this.$={...L[N-2],type:"composite",children:L[N-1]};break;case 28:S.getLogger().debug("Rule: blockStatement : ",L[N-2],L[N-1],L[N]);let R=S.generateId();this.$={id:R,type:"composite",label:"",children:L[N-1]};break;case 29:S.getLogger().debug("Rule: node (NODE_ID separator): ",L[N]),this.$={id:L[N]};break;case 30:S.getLogger().debug("Rule: node (NODE_ID nodeShapeNLabel separator): ",L[N-1],L[N]),this.$={id:L[N-1],label:L[N].label,typeStr:L[N].typeStr,directions:L[N].directions};break;case 31:S.getLogger().debug("Rule: dirList: ",L[N]),this.$=[L[N]];break;case 32:S.getLogger().debug("Rule: dirList: ",L[N-1],L[N]),this.$=[L[N-1]].concat(L[N]);break;case 33:S.getLogger().debug("Rule: nodeShapeNLabel: ",L[N-2],L[N-1],L[N]),this.$={typeStr:L[N-2]+L[N],label:L[N-1]};break;case 34:S.getLogger().debug("Rule: BLOCK_ARROW nodeShapeNLabel: ",L[N-3],L[N-2]," #3:",L[N-1],L[N]),this.$={typeStr:L[N-3]+L[N],label:L[N-2],directions:L[N-1]};break;case 35:case 36:this.$={type:"classDef",id:L[N-1].trim(),css:L[N].trim()};break;case 37:this.$={type:"applyClass",id:L[N-1].trim(),styleClass:L[N].trim()};break;case 38:this.$={type:"applyStyles",id:L[N-1].trim(),stylesStr:L[N].trim()};break}},"anonymous"),table:[{9:1,10:[1,2]},{1:[3]},{10:e,11:3,13:4,19:5,20:6,21:r,22:8,23:9,24:10,25:11,26:12,28:n,29:i,31:a,39:s,43:l,46:u},{8:[1,20]},t(h,[2,12],{13:4,19:5,20:6,22:8,23:9,24:10,25:11,26:12,11:21,10:e,21:r,28:n,29:i,31:a,39:s,43:l,46:u}),t(f,[2,16],{14:22,15:d,16:p}),t(f,[2,17]),t(f,[2,18]),t(f,[2,19]),t(f,[2,20]),t(f,[2,21]),t(f,[2,22]),t(m,[2,25],{27:[1,25]}),t(f,[2,26]),{19:26,26:12,31:a},{10:e,11:27,13:4,19:5,20:6,21:r,22:8,23:9,24:10,25:11,26:12,28:n,29:i,31:a,39:s,43:l,46:u},{40:[1,28],42:[1,29]},{44:[1,30]},{47:[1,31]},t(g,[2,29],{32:32,35:[1,33],37:[1,34]}),{1:[2,7]},t(h,[2,13]),{26:35,31:a},{31:[2,14]},{17:[1,36]},t(m,[2,24]),{10:e,11:37,13:4,14:22,15:d,16:p,19:5,20:6,21:r,22:8,23:9,24:10,25:11,26:12,28:n,29:i,31:a,39:s,43:l,46:u},{30:[1,38]},{41:[1,39]},{41:[1,40]},{45:[1,41]},{48:[1,42]},t(g,[2,30]),{18:[1,43]},{18:[1,44]},t(m,[2,23]),{18:[1,45]},{30:[1,46]},t(f,[2,28]),t(f,[2,35]),t(f,[2,36]),t(f,[2,37]),t(f,[2,38]),{36:[1,47]},{33:48,34:y},{15:[1,50]},t(f,[2,27]),t(g,[2,33]),{38:[1,51]},{33:52,34:y,38:[2,31]},{31:[2,15]},t(g,[2,34]),{38:[2,32]}],defaultActions:{20:[2,7],23:[2,14],50:[2,15],52:[2,32]},parseError:o(function(E,w){if(w.recoverable)this.trace(E);else{var k=new Error(E);throw k.hash=w,k}},"parseError"),parse:o(function(E){var w=this,k=[0],S=[],A=[null],L=[],I=this.table,N="",C=0,_=0,D=0,M=2,R=1,P=L.slice.call(arguments,1),B=Object.create(this.lexer),F={yy:{}};for(var G in this.yy)Object.prototype.hasOwnProperty.call(this.yy,G)&&(F.yy[G]=this.yy[G]);B.setInput(E,F.yy),F.yy.lexer=B,F.yy.parser=this,typeof B.yylloc>"u"&&(B.yylloc={});var $=B.yylloc;L.push($);var V=B.options&&B.options.ranges;typeof F.yy.parseError=="function"?this.parseError=F.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function X(ke){k.length=k.length-2*ke,A.length=A.length-ke,L.length=L.length-ke}o(X,"popStack");function Q(){var ke;return ke=S.pop()||B.lex()||R,typeof ke!="number"&&(ke instanceof Array&&(S=ke,ke=S.pop()),ke=w.symbols_[ke]||ke),ke}o(Q,"lex");for(var H,ie,Y,le,ee,J,te={},Z,xe,de,Se;;){if(Y=k[k.length-1],this.defaultActions[Y]?le=this.defaultActions[Y]:((H===null||typeof H>"u")&&(H=Q()),le=I[Y]&&I[Y][H]),typeof le>"u"||!le.length||!le[0]){var Me="";Se=[];for(Z in I[Y])this.terminals_[Z]&&Z>M&&Se.push("'"+this.terminals_[Z]+"'");B.showPosition?Me="Parse error on line "+(C+1)+`: +`+B.showPosition()+` +Expecting `+Se.join(", ")+", got '"+(this.terminals_[H]||H)+"'":Me="Parse error on line "+(C+1)+": Unexpected "+(H==R?"end of input":"'"+(this.terminals_[H]||H)+"'"),this.parseError(Me,{text:B.match,token:this.terminals_[H]||H,line:B.yylineno,loc:$,expected:Se})}if(le[0]instanceof Array&&le.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Y+", token: "+H);switch(le[0]){case 1:k.push(H),A.push(B.yytext),L.push(B.yylloc),k.push(le[1]),H=null,ie?(H=ie,ie=null):(_=B.yyleng,N=B.yytext,C=B.yylineno,$=B.yylloc,D>0&&D--);break;case 2:if(xe=this.productions_[le[1]][1],te.$=A[A.length-xe],te._$={first_line:L[L.length-(xe||1)].first_line,last_line:L[L.length-1].last_line,first_column:L[L.length-(xe||1)].first_column,last_column:L[L.length-1].last_column},V&&(te._$.range=[L[L.length-(xe||1)].range[0],L[L.length-1].range[1]]),J=this.performAction.apply(te,[N,_,C,F.yy,le[1],A,L].concat(P)),typeof J<"u")return J;xe&&(k=k.slice(0,-1*xe*2),A=A.slice(0,-1*xe),L=L.slice(0,-1*xe)),k.push(this.productions_[le[1]][0]),A.push(te.$),L.push(te._$),de=I[k[k.length-2]][k[k.length-1]],k.push(de);break;case 3:return!0}}return!0},"parse")},x=(function(){var T={EOF:1,parseError:o(function(w,k){if(this.yy.parser)this.yy.parser.parseError(w,k);else throw new Error(w)},"parseError"),setInput:o(function(E,w){return this.yy=w||this.yy||{},this._input=E,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var E=this._input[0];this.yytext+=E,this.yyleng++,this.offset++,this.match+=E,this.matched+=E;var w=E.match(/(?:\r\n?|\n).*/g);return w?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),E},"input"),unput:o(function(E){var w=E.length,k=E.split(/(?:\r\n?|\n)/g);this._input=E+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-w),this.offset-=w;var S=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),k.length-1&&(this.yylineno-=k.length-1);var A=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:k?(k.length===S.length?this.yylloc.first_column:0)+S[S.length-k.length].length-k[0].length:this.yylloc.first_column-w},this.options.ranges&&(this.yylloc.range=[A[0],A[0]+this.yyleng-w]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(E){this.unput(this.match.slice(E))},"less"),pastInput:o(function(){var E=this.matched.substr(0,this.matched.length-this.match.length);return(E.length>20?"...":"")+E.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var E=this.match;return E.length<20&&(E+=this._input.substr(0,20-E.length)),(E.substr(0,20)+(E.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var E=this.pastInput(),w=new Array(E.length+1).join("-");return E+this.upcomingInput()+` +`+w+"^"},"showPosition"),test_match:o(function(E,w){var k,S,A;if(this.options.backtrack_lexer&&(A={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(A.yylloc.range=this.yylloc.range.slice(0))),S=E[0].match(/(?:\r\n?|\n).*/g),S&&(this.yylineno+=S.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:S?S[S.length-1].length-S[S.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+E[0].length},this.yytext+=E[0],this.match+=E[0],this.matches=E,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(E[0].length),this.matched+=E[0],k=this.performAction.call(this,this.yy,this,w,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),k)return k;if(this._backtrack){for(var L in A)this[L]=A[L];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var E,w,k,S;this._more||(this.yytext="",this.match="");for(var A=this._currentRules(),L=0;Lw[0].length)){if(w=k,S=L,this.options.backtrack_lexer){if(E=this.test_match(k,A[L]),E!==!1)return E;if(this._backtrack){w=!1;continue}else return!1}else if(!this.options.flex)break}return w?(E=this.test_match(w,A[S]),E!==!1?E:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var w=this.next();return w||this.lex()},"lex"),begin:o(function(w){this.conditionStack.push(w)},"begin"),popState:o(function(){var w=this.conditionStack.length-1;return w>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(w){return w=this.conditionStack.length-1-Math.abs(w||0),w>=0?this.conditionStack[w]:"INITIAL"},"topState"),pushState:o(function(w){this.begin(w)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:o(function(w,k,S,A){var L=A;switch(S){case 0:return w.getLogger().debug("Found block-beta"),10;break;case 1:return w.getLogger().debug("Found id-block"),29;break;case 2:return w.getLogger().debug("Found block"),10;break;case 3:w.getLogger().debug(".",k.yytext);break;case 4:w.getLogger().debug("_",k.yytext);break;case 5:return 5;case 6:return k.yytext=-1,28;break;case 7:return k.yytext=k.yytext.replace(/columns\s+/,""),w.getLogger().debug("COLUMNS (LEX)",k.yytext),28;break;case 8:this.pushState("md_string");break;case 9:return"MD_STR";case 10:this.popState();break;case 11:this.pushState("string");break;case 12:w.getLogger().debug("LEX: POPPING STR:",k.yytext),this.popState();break;case 13:return w.getLogger().debug("LEX: STR end:",k.yytext),"STR";break;case 14:return k.yytext=k.yytext.replace(/space\:/,""),w.getLogger().debug("SPACE NUM (LEX)",k.yytext),21;break;case 15:return k.yytext="1",w.getLogger().debug("COLUMNS (LEX)",k.yytext),21;break;case 16:return 42;case 17:return"LINKSTYLE";case 18:return"INTERPOLATE";case 19:return this.pushState("CLASSDEF"),39;break;case 20:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";break;case 21:return this.popState(),this.pushState("CLASSDEFID"),40;break;case 22:return this.popState(),41;break;case 23:return this.pushState("CLASS"),43;break;case 24:return this.popState(),this.pushState("CLASS_STYLE"),44;break;case 25:return this.popState(),45;break;case 26:return this.pushState("STYLE_STMNT"),46;break;case 27:return this.popState(),this.pushState("STYLE_DEFINITION"),47;break;case 28:return this.popState(),48;break;case 29:return this.pushState("acc_title"),"acc_title";break;case 30:return this.popState(),"acc_title_value";break;case 31:return this.pushState("acc_descr"),"acc_descr";break;case 32:return this.popState(),"acc_descr_value";break;case 33:this.pushState("acc_descr_multiline");break;case 34:this.popState();break;case 35:return"acc_descr_multiline_value";case 36:return 30;case 37:return this.popState(),w.getLogger().debug("Lex: (("),"NODE_DEND";break;case 38:return this.popState(),w.getLogger().debug("Lex: (("),"NODE_DEND";break;case 39:return this.popState(),w.getLogger().debug("Lex: ))"),"NODE_DEND";break;case 40:return this.popState(),w.getLogger().debug("Lex: (("),"NODE_DEND";break;case 41:return this.popState(),w.getLogger().debug("Lex: (("),"NODE_DEND";break;case 42:return this.popState(),w.getLogger().debug("Lex: (-"),"NODE_DEND";break;case 43:return this.popState(),w.getLogger().debug("Lex: -)"),"NODE_DEND";break;case 44:return this.popState(),w.getLogger().debug("Lex: (("),"NODE_DEND";break;case 45:return this.popState(),w.getLogger().debug("Lex: ]]"),"NODE_DEND";break;case 46:return this.popState(),w.getLogger().debug("Lex: ("),"NODE_DEND";break;case 47:return this.popState(),w.getLogger().debug("Lex: ])"),"NODE_DEND";break;case 48:return this.popState(),w.getLogger().debug("Lex: /]"),"NODE_DEND";break;case 49:return this.popState(),w.getLogger().debug("Lex: /]"),"NODE_DEND";break;case 50:return this.popState(),w.getLogger().debug("Lex: )]"),"NODE_DEND";break;case 51:return this.popState(),w.getLogger().debug("Lex: )"),"NODE_DEND";break;case 52:return this.popState(),w.getLogger().debug("Lex: ]>"),"NODE_DEND";break;case 53:return this.popState(),w.getLogger().debug("Lex: ]"),"NODE_DEND";break;case 54:return w.getLogger().debug("Lexa: -)"),this.pushState("NODE"),35;break;case 55:return w.getLogger().debug("Lexa: (-"),this.pushState("NODE"),35;break;case 56:return w.getLogger().debug("Lexa: ))"),this.pushState("NODE"),35;break;case 57:return w.getLogger().debug("Lexa: )"),this.pushState("NODE"),35;break;case 58:return w.getLogger().debug("Lex: ((("),this.pushState("NODE"),35;break;case 59:return w.getLogger().debug("Lexa: )"),this.pushState("NODE"),35;break;case 60:return w.getLogger().debug("Lexa: )"),this.pushState("NODE"),35;break;case 61:return w.getLogger().debug("Lexa: )"),this.pushState("NODE"),35;break;case 62:return w.getLogger().debug("Lexc: >"),this.pushState("NODE"),35;break;case 63:return w.getLogger().debug("Lexa: (["),this.pushState("NODE"),35;break;case 64:return w.getLogger().debug("Lexa: )"),this.pushState("NODE"),35;break;case 65:return this.pushState("NODE"),35;break;case 66:return this.pushState("NODE"),35;break;case 67:return this.pushState("NODE"),35;break;case 68:return this.pushState("NODE"),35;break;case 69:return this.pushState("NODE"),35;break;case 70:return this.pushState("NODE"),35;break;case 71:return this.pushState("NODE"),35;break;case 72:return w.getLogger().debug("Lexa: ["),this.pushState("NODE"),35;break;case 73:return this.pushState("BLOCK_ARROW"),w.getLogger().debug("LEX ARR START"),37;break;case 74:return w.getLogger().debug("Lex: NODE_ID",k.yytext),31;break;case 75:return w.getLogger().debug("Lex: EOF",k.yytext),8;break;case 76:this.pushState("md_string");break;case 77:this.pushState("md_string");break;case 78:return"NODE_DESCR";case 79:this.popState();break;case 80:w.getLogger().debug("Lex: Starting string"),this.pushState("string");break;case 81:w.getLogger().debug("LEX ARR: Starting string"),this.pushState("string");break;case 82:return w.getLogger().debug("LEX: NODE_DESCR:",k.yytext),"NODE_DESCR";break;case 83:w.getLogger().debug("LEX POPPING"),this.popState();break;case 84:w.getLogger().debug("Lex: =>BAE"),this.pushState("ARROW_DIR");break;case 85:return k.yytext=k.yytext.replace(/^,\s*/,""),w.getLogger().debug("Lex (right): dir:",k.yytext),"DIR";break;case 86:return k.yytext=k.yytext.replace(/^,\s*/,""),w.getLogger().debug("Lex (left):",k.yytext),"DIR";break;case 87:return k.yytext=k.yytext.replace(/^,\s*/,""),w.getLogger().debug("Lex (x):",k.yytext),"DIR";break;case 88:return k.yytext=k.yytext.replace(/^,\s*/,""),w.getLogger().debug("Lex (y):",k.yytext),"DIR";break;case 89:return k.yytext=k.yytext.replace(/^,\s*/,""),w.getLogger().debug("Lex (up):",k.yytext),"DIR";break;case 90:return k.yytext=k.yytext.replace(/^,\s*/,""),w.getLogger().debug("Lex (down):",k.yytext),"DIR";break;case 91:return k.yytext="]>",w.getLogger().debug("Lex (ARROW_DIR end):",k.yytext),this.popState(),this.popState(),"BLOCK_ARROW_END";break;case 92:return w.getLogger().debug("Lex: LINK","#"+k.yytext+"#"),15;break;case 93:return w.getLogger().debug("Lex: LINK",k.yytext),15;break;case 94:return w.getLogger().debug("Lex: LINK",k.yytext),15;break;case 95:return w.getLogger().debug("Lex: LINK",k.yytext),15;break;case 96:return w.getLogger().debug("Lex: START_LINK",k.yytext),this.pushState("LLABEL"),16;break;case 97:return w.getLogger().debug("Lex: START_LINK",k.yytext),this.pushState("LLABEL"),16;break;case 98:return w.getLogger().debug("Lex: START_LINK",k.yytext),this.pushState("LLABEL"),16;break;case 99:this.pushState("md_string");break;case 100:return w.getLogger().debug("Lex: Starting string"),this.pushState("string"),"LINK_LABEL";break;case 101:return this.popState(),w.getLogger().debug("Lex: LINK","#"+k.yytext+"#"),15;break;case 102:return this.popState(),w.getLogger().debug("Lex: LINK",k.yytext),15;break;case 103:return this.popState(),w.getLogger().debug("Lex: LINK",k.yytext),15;break;case 104:return w.getLogger().debug("Lex: COLON",k.yytext),k.yytext=k.yytext.slice(1),27;break}},"anonymous"),rules:[/^(?:block-beta\b)/,/^(?:block:)/,/^(?:block\b)/,/^(?:[\s]+)/,/^(?:[\n]+)/,/^(?:((\u000D\u000A)|(\u000A)))/,/^(?:columns\s+auto\b)/,/^(?:columns\s+[\d]+)/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:space[:]\d+)/,/^(?:space\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\s+)/,/^(?:DEFAULT\s+)/,/^(?:\w+\s+)/,/^(?:[^\n]*)/,/^(?:class\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:style\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:end\b\s*)/,/^(?:\(\(\()/,/^(?:\)\)\))/,/^(?:[\)]\))/,/^(?:\}\})/,/^(?:\})/,/^(?:\(-)/,/^(?:-\))/,/^(?:\(\()/,/^(?:\]\])/,/^(?:\()/,/^(?:\]\))/,/^(?:\\\])/,/^(?:\/\])/,/^(?:\)\])/,/^(?:[\)])/,/^(?:\]>)/,/^(?:[\]])/,/^(?:-\))/,/^(?:\(-)/,/^(?:\)\))/,/^(?:\))/,/^(?:\(\(\()/,/^(?:\(\()/,/^(?:\{\{)/,/^(?:\{)/,/^(?:>)/,/^(?:\(\[)/,/^(?:\()/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\[\\)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:\[)/,/^(?:<\[)/,/^(?:[^\(\[\n\-\)\{\}\s\<\>:]+)/,/^(?:$)/,/^(?:["][`])/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:\]>\s*\()/,/^(?:,?\s*right\s*)/,/^(?:,?\s*left\s*)/,/^(?:,?\s*x\s*)/,/^(?:,?\s*y\s*)/,/^(?:,?\s*up\s*)/,/^(?:,?\s*down\s*)/,/^(?:\)\s*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*~~[\~]+\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:["][`])/,/^(?:["])/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?::\d+)/],conditions:{STYLE_DEFINITION:{rules:[28],inclusive:!1},STYLE_STMNT:{rules:[27],inclusive:!1},CLASSDEFID:{rules:[22],inclusive:!1},CLASSDEF:{rules:[20,21],inclusive:!1},CLASS_STYLE:{rules:[25],inclusive:!1},CLASS:{rules:[24],inclusive:!1},LLABEL:{rules:[99,100,101,102,103],inclusive:!1},ARROW_DIR:{rules:[85,86,87,88,89,90,91],inclusive:!1},BLOCK_ARROW:{rules:[76,81,84],inclusive:!1},NODE:{rules:[37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,77,80],inclusive:!1},md_string:{rules:[9,10,78,79],inclusive:!1},space:{rules:[],inclusive:!1},string:{rules:[12,13,82,83],inclusive:!1},acc_descr_multiline:{rules:[34,35],inclusive:!1},acc_descr:{rules:[32],inclusive:!1},acc_title:{rules:[30],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,11,14,15,16,17,18,19,23,26,29,31,33,36,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,92,93,94,95,96,97,98,104],inclusive:!0}}};return T})();v.lexer=x;function b(){this.yy={}}return o(b,"Parser"),b.prototype=v,v.Parser=b,new b})();pW.parser=pW;gSe=pW});function ndt(t){switch(K.debug("typeStr2Type",t),t){case"[]":return"square";case"()":return K.debug("we have a round"),"round";case"(())":return"circle";case">]":return"rect_left_inv_arrow";case"{}":return"diamond";case"{{}}":return"hexagon";case"([])":return"stadium";case"[[]]":return"subroutine";case"[()]":return"cylinder";case"((()))":return"doublecircle";case"[//]":return"lean_right";case"[\\\\]":return"lean_left";case"[/\\]":return"trapezoid";case"[\\/]":return"inv_trapezoid";case"<[]>":return"block_arrow";default:return"na"}}function idt(t){switch(K.debug("typeStr2Type",t),t){case"==":return"thick";default:return"normal"}}function adt(t){switch(t.replace(/^[\s-]+|[\s-]+$/g,"")){case"x":return"arrow_cross";case"o":return"arrow_circle";case">":return"arrow_point";default:return""}}var Bc,gW,mW,vSe,xSe,Kft,TSe,Qft,y_,Zft,Jft,edt,tdt,wSe,yW,S3,rdt,bSe,sdt,odt,ldt,cdt,udt,hdt,fdt,ddt,pdt,mdt,gdt,kSe,ESe=O(()=>{"use strict";rI();$r();jt();xt();Ur();si();Bc=new Map,gW=[],mW=new Map,vSe="color",xSe="fill",Kft="bgFill",TSe=",",Qft=ve(),y_=new Map,Zft=o(t=>st.sanitizeText(t,Qft),"sanitizeText"),Jft=o(function(t,e=""){let r=y_.get(t);r||(r={id:t,styles:[],textStyles:[]},y_.set(t,r)),e?.split(TSe).forEach(n=>{let i=n.replace(/([^;]*);/,"$1").trim();if(RegExp(vSe).exec(n)){let s=i.replace(xSe,Kft).replace(vSe,xSe);r.textStyles.push(s)}r.styles.push(i)})},"addStyleClass"),edt=o(function(t,e=""){let r=Bc.get(t);e!=null&&(r.styles=e.split(TSe))},"addStyle2Node"),tdt=o(function(t,e){t.split(",").forEach(function(r){let n=Bc.get(r);if(n===void 0){let i=r.trim();n={id:i,type:"na",children:[]},Bc.set(i,n)}n.classes||(n.classes=[]),n.classes.push(e)})},"setCssClass"),wSe=o((t,e)=>{let r=t.flat(),n=[],a=r.find(s=>s?.type==="column-setting")?.columns??-1;for(let s of r){if(typeof a=="number"&&a>0&&s.type!=="column-setting"&&typeof s.widthInColumns=="number"&&s.widthInColumns>a&&K.warn(`Block ${s.id} width ${s.widthInColumns} exceeds configured column width ${a}`),s.label&&(s.label=Zft(s.label)),s.type==="classDef"){Jft(s.id,s.css);continue}if(s.type==="applyClass"){tdt(s.id,s?.styleClass??"");continue}if(s.type==="applyStyles"){s?.stylesStr&&edt(s.id,s?.stylesStr);continue}if(s.type==="column-setting")e.columns=s.columns??-1;else if(s.type==="edge"){let l=(mW.get(s.id)??0)+1;mW.set(s.id,l),s.id=l+"-"+s.id,gW.push(s)}else{s.label||(s.type==="composite"?s.label="":s.label=s.id);let l=Bc.get(s.id);if(l===void 0?Bc.set(s.id,s):(s.type!=="na"&&(l.type=s.type),s.label!==s.id&&(l.label=s.label)),s.children&&wSe(s.children,s),s.type==="space"){let u=s.width??1;for(let h=0;h{K.debug("Clear called"),_r(),S3={id:"root",type:"composite",children:[],columns:-1},Bc=new Map([["root",S3]]),yW=[],y_=new Map,gW=[],mW=new Map},"clear");o(ndt,"typeStr2Type");o(idt,"edgeTypeStr2Type");o(adt,"edgeStrToEdgeData");bSe=0,sdt=o(()=>(bSe++,"id-"+Math.random().toString(36).substr(2,12)+"-"+bSe),"generateId"),odt=o(t=>{S3.children=t,wSe(t,S3),yW=S3.children},"setHierarchy"),ldt=o(t=>{let e=Bc.get(t);return e?e.columns?e.columns:e.children?e.children.length:-1:-1},"getColumns"),cdt=o(()=>[...Bc.values()],"getBlocksFlat"),udt=o(()=>yW||[],"getBlocks"),hdt=o(()=>gW,"getEdges"),fdt=o(t=>Bc.get(t),"getBlock"),ddt=o(t=>{Bc.set(t.id,t)},"setBlock"),pdt=o(()=>K,"getLogger"),mdt=o(function(){return y_},"getClasses"),gdt={getConfig:o(()=>Zt().block,"getConfig"),typeStr2Type:ndt,edgeTypeStr2Type:idt,edgeStrToEdgeData:adt,getLogger:pdt,getBlocksFlat:cdt,getBlocks:udt,getEdges:hdt,setHierarchy:odt,getBlock:fdt,setBlock:ddt,getColumns:ldt,getClasses:mdt,clear:rdt,generateId:sdt},kSe=gdt});var vW,ydt,SSe,CSe=O(()=>{"use strict";Ys();ly();vW=o((t,e)=>{let r=_p,n=r(t,"r"),i=r(t,"g"),a=r(t,"b");return bs(n,i,a,e)},"fade"),ydt=o(t=>`.label { + font-family: ${t.fontFamily}; + color: ${t.nodeTextColor||t.textColor}; + } + .cluster-label text { + fill: ${t.titleColor}; + } + .cluster-label span,p { + color: ${t.titleColor}; + } + + + + .label text,span,p { + fill: ${t.nodeTextColor||t.textColor}; + color: ${t.nodeTextColor||t.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + stroke-width: 1px; + } + .flowchart-label text { + text-anchor: middle; + } + // .flowchart-label .text-outer-tspan { + // text-anchor: middle; + // } + // .flowchart-label .text-inner-tspan { + // text-anchor: start; + // } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${t.arrowheadColor}; + } + + .edgePath .path { + stroke: ${t.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${t.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${t.edgeLabelBackground}; + /* + * This is for backward compatibility with existing code that didn't + * add a \`

    \` around edge labels. + * + * TODO: We should probably remove this in a future release. + */ + p { + margin: 0; + padding: 0; + display: inline; + } + rect { + opacity: 0.5; + background-color: ${t.edgeLabelBackground}; + fill: ${t.edgeLabelBackground}; + } + text-align: center; + } + + /* For html labels only */ + .labelBkg { + background-color: ${t.edgeLabelBackground}; + } + + .node .cluster { + // fill: ${vW(t.mainBkg,.5)}; + fill: ${vW(t.clusterBkg,.5)}; + stroke: ${vW(t.clusterBorder,.2)}; + box-shadow: rgba(50, 50, 93, 0.25) 0px 13px 27px -5px, rgba(0, 0, 0, 0.3) 0px 8px 16px -8px; + stroke-width: 1px; + } + + .cluster text { + fill: ${t.titleColor}; + } + + .cluster span,p { + color: ${t.titleColor}; + } + /* .cluster div { + color: ${t.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${t.fontFamily}; + font-size: 12px; + background: ${t.tertiaryColor}; + border: 1px solid ${t.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; + } + ${Lu()} +`,"getStyles"),SSe=ydt});var vdt,xdt,bdt,Tdt,wdt,kdt,Edt,Sdt,Cdt,Adt,_dt,ASe,_Se=O(()=>{"use strict";xt();vdt=o((t,e,r,n)=>{e.forEach(i=>{_dt[i](t,r,n)})},"insertMarkers"),xdt=o((t,e,r)=>{K.trace("Making markers for ",r),t.append("defs").append("marker").attr("id",r+"_"+e+"-extensionStart").attr("class","marker extension "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-extensionEnd").attr("class","marker extension "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")},"extension"),bdt=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-compositionStart").attr("class","marker composition "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-compositionEnd").attr("class","marker composition "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"composition"),Tdt=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-aggregationStart").attr("class","marker aggregation "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-aggregationEnd").attr("class","marker aggregation "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"aggregation"),wdt=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-dependencyStart").attr("class","marker dependency "+e).attr("refX",6).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-dependencyEnd").attr("class","marker dependency "+e).attr("refX",13).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"dependency"),kdt=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopStart").attr("class","marker lollipop "+e).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6),t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopEnd").attr("class","marker lollipop "+e).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6)},"lollipop"),Edt=o((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-pointEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",6).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-pointStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",4.5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"point"),Sdt=o((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-circleEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-circleStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"circle"),Cdt=o((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-crossEnd").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-crossStart").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0")},"cross"),Adt=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","strokeWidth").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},"barb"),_dt={extension:xdt,composition:bdt,aggregation:Tdt,dependency:wdt,lollipop:kdt,point:Edt,circle:Sdt,cross:Cdt,barb:Adt},ASe=vdt});function DSe(t,e){if(t===0||!Number.isInteger(t))throw new Error("Columns must be an integer !== 0.");if(e<0||!Number.isInteger(e))throw new Error("Position must be a non-negative integer."+e);if(t<0)return{px:e,py:0};if(t===1)return{px:0,py:e};let r=e%t,n=Math.floor(e/t);return{px:r,py:n}}function xW(t,e,r=0,n=0){K.debug("setBlockSizes abc95 (start)",t.id,t?.size?.x,"block width =",t?.size,"siblingWidth",r),t?.size?.width||(t.size={width:r,height:n,x:0,y:0});let i=0,a=0;if(t.children?.length>0){for(let m of t.children)xW(m,e);let s=Ddt(t);i=s.width,a=s.height,K.debug("setBlockSizes abc95 maxWidth of",t.id,":s children is ",i,a);for(let m of t.children)m.size&&(K.debug(`abc95 Setting size of children of ${t.id} id=${m.id} ${i} ${a} ${JSON.stringify(m.size)}`),m.size.width=i*(m.widthInColumns??1)+$i*((m.widthInColumns??1)-1),m.size.height=a,m.size.x=0,m.size.y=0,K.debug(`abc95 updating size of ${t.id} children child:${m.id} maxWidth:${i} maxHeight:${a}`));for(let m of t.children)xW(m,e,i,a);let l=t.columns??-1,u=0;for(let m of t.children)u+=m.widthInColumns??1;let h=t.children.length;l>0&&l0?Math.min(t.children.length,l):t.children.length;if(m>0){let g=(d-m*$i-$i)/m;K.debug("abc95 (growing to fit) width",t.id,d,t.size?.width,g);for(let y of t.children)y.size&&(y.size.width=g)}}t.size={width:d,height:p,x:0,y:0}}K.debug("setBlockSizes abc94 (done)",t.id,t?.size?.x,t?.size?.width,t?.size?.y,t?.size?.height)}function RSe(t,e){K.debug(`abc85 layout blocks (=>layoutBlocks) ${t.id} x: ${t?.size?.x} y: ${t?.size?.y} width: ${t?.size?.width}`);let r=t.columns??-1;if(K.debug("layoutBlocks columns abc95",t.id,"=>",r,t),t.children&&t.children.length>0){let n=t?.children[0]?.size?.width??0,i=t.children.length*n+(t.children.length-1)*$i;K.debug("widthOfChildren 88",i,"posX");let a=new Map;{let f=0;for(let d of t.children){if(!d.size)continue;let{py:p}=DSe(r,f),m=a.get(p)??0;d.size.height>m&&a.set(p,d.size.height);let g=d?.widthInColumns??1;r>0&&(g=Math.min(g,r-f%r)),f+=g}}let s=new Map;{let f=0,d=[...a.keys()].sort((p,m)=>p-m);for(let p of d)s.set(p,f),f+=(a.get(p)??0)+$i}let l=0;K.debug("abc91 block?.size?.x",t.id,t?.size?.x);let u=t?.size?.x?t?.size?.x+(-t?.size?.width/2||0):-$i,h=0;for(let f of t.children){let d=t;if(!f.size)continue;let{width:p,height:m}=f.size,{px:g,py:y}=DSe(r,l);if(y!=h&&(h=y,u=t?.size?.x?t?.size?.x+(-t?.size?.width/2||0):-$i,K.debug("New row in layout for block",t.id," and child ",f.id,h)),K.debug(`abc89 layout blocks (child) id: ${f.id} Pos: ${l} (px, py) ${g},${y} (${d?.size?.x},${d?.size?.y}) parent: ${d.id} width: ${p}${$i}`),d.size){let x=p/2;f.size.x=u+$i+x,K.debug(`abc91 layout blocks (calc) px, pyid:${f.id} startingPos=X${u} new startingPosX${f.size.x} ${x} padding=${$i} width=${p} halfWidth=${x} => x:${f.size.x} y:${f.size.y} ${f.widthInColumns} (width * (child?.w || 1)) / 2 ${p*(f?.widthInColumns??1)/2}`),u=f.size.x+x;let b=s.get(y)??0,T=a.get(y)??m;f.size.y=d.size.y-d.size.height/2+b+T/2+$i,K.debug(`abc88 layout blocks (calc) px, pyid:${f.id}startingPosX${u}${$i}${x}=>x:${f.size.x}y:${f.size.y}${f.widthInColumns}(width * (child?.w || 1)) / 2${p*(f?.widthInColumns??1)/2}`)}f.children&&RSe(f,e);let v=f?.widthInColumns??1;r>0&&(v=Math.min(v,r-l%r)),l+=v,K.debug("abc88 columnsPos",f,l)}}K.debug(`layout blocks (<==layoutBlocks) ${t.id} x: ${t?.size?.x} y: ${t?.size?.y} width: ${t?.size?.width}`)}function LSe(t,{minX:e,minY:r,maxX:n,maxY:i}={minX:0,minY:0,maxX:0,maxY:0}){if(t.size&&t.id!=="root"){let{x:a,y:s,width:l,height:u}=t.size;a-l/2n&&(n=a+l/2),s+u/2>i&&(i=s+u/2)}if(t.children)for(let a of t.children)({minX:e,minY:r,maxX:n,maxY:i}=LSe(a,{minX:e,minY:r,maxX:n,maxY:i}));return{minX:e,minY:r,maxX:n,maxY:i}}function NSe(t){let e=t.getBlock("root");if(!e)return;xW(e,t,0,0),RSe(e,t),K.debug("getBlocks",JSON.stringify(e,null,2));let{minX:r,minY:n,maxX:i,maxY:a}=LSe(e),s=a-n,l=i-r;return{x:r,y:n,width:l,height:s}}var $i,Ddt,MSe=O(()=>{"use strict";xt();jt();$i=ve()?.block?.padding??8;o(DSe,"calculateBlockPosition");Ddt=o(t=>{let e=0,r=0;for(let n of t.children){let{width:i,height:a,x:s,y:l}=n.size??{width:0,height:0,x:0,y:0};K.debug("getMaxChildSize abc95 child:",n.id,"width:",i,"height:",a,"x:",s,"y:",l,n.type),n.type!=="space"&&(i>e&&(e=i/(n.widthInColumns??1)),a>r&&(r=a))}return{width:e,height:r}},"getMaxChildSize");o(xW,"setBlockSizes");o(RSe,"layoutBlocks");o(LSe,"findBounds");o(NSe,"layout")});var Rdt,Lo,v_=O(()=>{"use strict";$r();jt();co();Rdt=o(async(t,e,r,n=!1,i=!1)=>{let a=e||"";typeof a=="object"&&(a=a[0]);let s=ve(),l=Sr(s);return await Fn(t,a,{style:r,isTitle:n,useHtmlLabels:l,markdown:!1,isNode:i,width:Number.POSITIVE_INFINITY},s)},"createLabel"),Lo=Rdt});var OSe,Ldt,ISe,PSe=O(()=>{"use strict";xt();OSe=o((t,e,r,n,i)=>{e.arrowTypeStart&&ISe(t,"start",e.arrowTypeStart,r,n,i),e.arrowTypeEnd&&ISe(t,"end",e.arrowTypeEnd,r,n,i)},"addEdgeMarkers"),Ldt={arrow_cross:"cross",arrow_point:"point",arrow_barb:"barb",arrow_circle:"circle",aggregation:"aggregation",extension:"extension",composition:"composition",dependency:"dependency",lollipop:"lollipop"},ISe=o((t,e,r,n,i,a)=>{let s=Ldt[r];if(!s){K.warn(`Unknown arrow type: ${r}`);return}let l=e==="start"?"Start":"End";t.attr(`marker-${e}`,`url(${n}#${i}_${a}-${s}${l})`)},"addEdgeMarker")});function x_(t,e){Sr(ve())&&t&&(t.style.width=e.length*9+"px",t.style.height="12px")}var bW,ys,FSe,$Se,Ndt,Mdt,BSe,zSe,GSe=O(()=>{"use strict";xt();v_();co();BM();Ar();jt();$r();ar();Ur();$M();gb();PSe();bW={},ys={},FSe=o(async(t,e)=>{let r=ve(),n=Sr(r),i=t.insert("g").attr("class","edgeLabel"),a=i.insert("g").attr("class","label"),s=e.labelType==="markdown",l=await Fn(t,e.label,{style:e.labelStyle,useHtmlLabels:n,addSvgBackground:s,isNode:!1,markdown:s,width:s?void 0:Number.POSITIVE_INFINITY},r);a.node().appendChild(l);let u=l.getBBox(),h=u;if(n){let d=l.children[0],p=je(l);u=d.getBoundingClientRect(),h=u,p.attr("width",u.width),p.attr("height",u.height)}else{let d=je(l).select("text").node();d&&typeof d.getBBox=="function"&&(h=d.getBBox())}a.attr("transform",Cl(h,n)),bW[e.id]=i,e.width=u.width,e.height=u.height;let f;if(e.startLabelLeft){let d=t.insert("g").attr("class","edgeTerminals"),p=d.insert("g").attr("class","inner"),m=await Lo(p,e.startLabelLeft,e.labelStyle);f=m;let g=m.getBBox();if(n){let y=m.children[0],v=je(m);g=y.getBoundingClientRect(),v.attr("width",g.width),v.attr("height",g.height)}p.attr("transform",Cl(g,n)),ys[e.id]||(ys[e.id]={}),ys[e.id].startLeft=d,x_(f,e.startLabelLeft)}if(e.startLabelRight){let d=t.insert("g").attr("class","edgeTerminals"),p=d.insert("g").attr("class","inner"),m=await Lo(d,e.startLabelRight,e.labelStyle);f=m,p.node().appendChild(m);let g=m.getBBox();if(n){let y=m.children[0],v=je(m);g=y.getBoundingClientRect(),v.attr("width",g.width),v.attr("height",g.height)}p.attr("transform",Cl(g,n)),ys[e.id]||(ys[e.id]={}),ys[e.id].startRight=d,x_(f,e.startLabelRight)}if(e.endLabelLeft){let d=t.insert("g").attr("class","edgeTerminals"),p=d.insert("g").attr("class","inner"),m=await Lo(p,e.endLabelLeft,e.labelStyle);f=m;let g=m.getBBox();if(n){let y=m.children[0],v=je(m);g=y.getBoundingClientRect(),v.attr("width",g.width),v.attr("height",g.height)}p.attr("transform",Cl(g,n)),d.node().appendChild(m),ys[e.id]||(ys[e.id]={}),ys[e.id].endLeft=d,x_(f,e.endLabelLeft)}if(e.endLabelRight){let d=t.insert("g").attr("class","edgeTerminals"),p=d.insert("g").attr("class","inner"),m=await Lo(p,e.endLabelRight,e.labelStyle);f=m;let g=m.getBBox();if(n){let y=m.children[0],v=je(m);g=y.getBoundingClientRect(),v.attr("width",g.width),v.attr("height",g.height)}p.attr("transform",Cl(g,n)),d.node().appendChild(m),ys[e.id]||(ys[e.id]={}),ys[e.id].endRight=d,x_(f,e.endLabelRight)}return l},"insertEdgeLabel");o(x_,"setTerminalWidth");$Se=o((t,e)=>{K.debug("Moving label abc88 ",t.id,t.label,bW[t.id],e);let r=e.updatedPath?e.updatedPath:e.originalPath,n=ve(),{subGraphTitleTotalMargin:i}=Lh(n);if(t.label){let a=bW[t.id],s=t.x,l=t.y;if(r){let u=Xt.calcLabelPosition(r);K.debug("Moving label "+t.label+" from (",s,",",l,") to (",u.x,",",u.y,") abc88"),e.updatedPath&&(s=u.x,l=u.y)}a.attr("transform",`translate(${s}, ${l+i/2})`)}if(t.startLabelLeft){let a=ys[t.id].startLeft,s=t.x,l=t.y;if(r){let u=Xt.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_left",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(t.startLabelRight){let a=ys[t.id].startRight,s=t.x,l=t.y;if(r){let u=Xt.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_right",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(t.endLabelLeft){let a=ys[t.id].endLeft,s=t.x,l=t.y;if(r){let u=Xt.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_left",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(t.endLabelRight){let a=ys[t.id].endRight,s=t.x,l=t.y;if(r){let u=Xt.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_right",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}},"positionEdgeLabel"),Ndt=o((t,e)=>{let r=t.x,n=t.y,i=Math.abs(e.x-r),a=Math.abs(e.y-n),s=t.width/2,l=t.height/2;return i>=s||a>=l},"outsideNode"),Mdt=o((t,e,r)=>{K.debug(`intersection calc abc89: + outsidePoint: ${JSON.stringify(e)} + insidePoint : ${JSON.stringify(r)} + node : x:${t.x} y:${t.y} w:${t.width} h:${t.height}`);let n=t.x,i=t.y,a=Math.abs(n-r.x),s=t.width/2,l=r.xMath.abs(n-e.x)*u){let d=r.y{K.debug("abc88 cutPathAtIntersect",t,e);let r=[],n=t[0],i=!1;return t.forEach(a=>{if(!Ndt(e,a)&&!i){let s=Mdt(e,n,a),l=!1;r.forEach(u=>{l=l||u.x===s.x&&u.y===s.y}),r.some(u=>u.x===s.x&&u.y===s.y)||r.push(s),i=!0}else n=a,i||r.push(a)}),r},"cutPathAtIntersect"),zSe=o(function(t,e,r,n,i,a,s){let l=r.points;K.debug("abc88 InsertEdge: edge=",r,"e=",e);let u=!1,h=a.node(e.v);var f=a.node(e.w);f?.intersect&&h?.intersect&&(l=l.slice(1,r.points.length-1),l.unshift(h.intersect(l[0])),l.push(f.intersect(l[l.length-1]))),r.toCluster&&(K.debug("to cluster abc88",n[r.toCluster]),l=BSe(r.points,n[r.toCluster].node),u=!0),r.fromCluster&&(K.debug("from cluster abc88",n[r.fromCluster]),l=BSe(l.reverse(),n[r.fromCluster].node).reverse(),u=!0);let d=l.filter(E=>!Number.isNaN(E.y)),p=fc;r.curve&&(i==="graph"||i==="flowchart")&&(p=r.curve);let{x:m,y:g}=cE(r),y=hc().x(m).y(g).curve(p),v;switch(r.thickness){case"normal":v="edge-thickness-normal";break;case"thick":v="edge-thickness-thick";break;case"invisible":v="edge-thickness-thick";break;default:v=""}switch(r.pattern){case"solid":v+=" edge-pattern-solid";break;case"dotted":v+=" edge-pattern-dotted";break;case"dashed":v+=" edge-pattern-dashed";break}let x=t.append("path").attr("d",y(d)).attr("id",r.id).attr("class"," "+v+(r.classes?" "+r.classes:"")).attr("style",r.style),b="";(ve().flowchart.arrowMarkerAbsolute||ve().state.arrowMarkerAbsolute)&&(b=Op(!0)),OSe(x,r,b,s,i);let T={};return u&&(T.updatedPath=l),T.originalPath=r.points,T},"insertEdge")});var Idt,VSe,qSe=O(()=>{"use strict";Idt=o(t=>{let e=new Set;for(let r of t)switch(r){case"x":e.add("right"),e.add("left");break;case"y":e.add("up"),e.add("down");break;default:e.add(r);break}return e},"expandAndDeduplicateDirections"),VSe=o((t,e,r)=>{let n=Idt(t),i=2,a=e.height+2*r.padding,s=a/i,l=e.width+2*s+r.padding,u=r.padding/2;return n.has("right")&&n.has("left")&&n.has("up")&&n.has("down")?[{x:0,y:0},{x:s,y:0},{x:l/2,y:2*u},{x:l-s,y:0},{x:l,y:0},{x:l,y:-a/3},{x:l+2*u,y:-a/2},{x:l,y:-2*a/3},{x:l,y:-a},{x:l-s,y:-a},{x:l/2,y:-a-2*u},{x:s,y:-a},{x:0,y:-a},{x:0,y:-2*a/3},{x:-2*u,y:-a/2},{x:0,y:-a/3}]:n.has("right")&&n.has("left")&&n.has("up")?[{x:s,y:0},{x:l-s,y:0},{x:l,y:-a/2},{x:l-s,y:-a},{x:s,y:-a},{x:0,y:-a/2}]:n.has("right")&&n.has("left")&&n.has("down")?[{x:0,y:0},{x:s,y:-a},{x:l-s,y:-a},{x:l,y:0}]:n.has("right")&&n.has("up")&&n.has("down")?[{x:0,y:0},{x:l,y:-s},{x:l,y:-a+s},{x:0,y:-a}]:n.has("left")&&n.has("up")&&n.has("down")?[{x:l,y:0},{x:0,y:-s},{x:0,y:-a+s},{x:l,y:-a}]:n.has("right")&&n.has("left")?[{x:s,y:0},{x:s,y:-u},{x:l-s,y:-u},{x:l-s,y:0},{x:l,y:-a/2},{x:l-s,y:-a},{x:l-s,y:-a+u},{x:s,y:-a+u},{x:s,y:-a},{x:0,y:-a/2}]:n.has("up")&&n.has("down")?[{x:l/2,y:0},{x:0,y:-u},{x:s,y:-u},{x:s,y:-a+u},{x:0,y:-a+u},{x:l/2,y:-a},{x:l,y:-a+u},{x:l-s,y:-a+u},{x:l-s,y:-u},{x:l,y:-u}]:n.has("right")&&n.has("up")?[{x:0,y:0},{x:l,y:-s},{x:0,y:-a}]:n.has("right")&&n.has("down")?[{x:0,y:0},{x:l,y:0},{x:0,y:-a}]:n.has("left")&&n.has("up")?[{x:l,y:0},{x:0,y:-s},{x:l,y:-a}]:n.has("left")&&n.has("down")?[{x:l,y:0},{x:0,y:0},{x:l,y:-a}]:n.has("right")?[{x:s,y:-u},{x:s,y:-u},{x:l-s,y:-u},{x:l-s,y:0},{x:l,y:-a/2},{x:l-s,y:-a},{x:l-s,y:-a+u},{x:s,y:-a+u},{x:s,y:-a+u}]:n.has("left")?[{x:s,y:0},{x:s,y:-u},{x:l-s,y:-u},{x:l-s,y:-a+u},{x:s,y:-a+u},{x:s,y:-a},{x:0,y:-a/2}]:n.has("up")?[{x:s,y:-u},{x:s,y:-a+u},{x:0,y:-a+u},{x:l/2,y:-a},{x:l,y:-a+u},{x:l-s,y:-a+u},{x:l-s,y:-u}]:n.has("down")?[{x:l/2,y:0},{x:0,y:-u},{x:s,y:-u},{x:s,y:-a+u},{x:l-s,y:-a+u},{x:l-s,y:-u},{x:l,y:-u}]:[{x:0,y:0}]},"getArrowPoints")});function Odt(t,e){return t.intersect(e)}var USe,WSe=O(()=>{"use strict";o(Odt,"intersectNode");USe=Odt});function Pdt(t,e,r,n){var i=t.x,a=t.y,s=i-n.x,l=a-n.y,u=Math.sqrt(e*e*l*l+r*r*s*s),h=Math.abs(e*r*s/u);n.x{"use strict";o(Pdt,"intersectEllipse");b_=Pdt});function Bdt(t,e,r){return b_(t,e,e,r)}var HSe,YSe=O(()=>{"use strict";TW();o(Bdt,"intersectCircle");HSe=Bdt});function Fdt(t,e,r,n){var i,a,s,l,u,h,f,d,p,m,g,y,v,x,b;if(i=e.y-t.y,s=t.x-e.x,u=e.x*t.y-t.x*e.y,p=i*r.x+s*r.y+u,m=i*n.x+s*n.y+u,!(p!==0&&m!==0&&jSe(p,m))&&(a=n.y-r.y,l=r.x-n.x,h=n.x*r.y-r.x*n.y,f=a*t.x+l*t.y+h,d=a*e.x+l*e.y+h,!(f!==0&&d!==0&&jSe(f,d))&&(g=i*l-a*s,g!==0)))return y=Math.abs(g/2),v=s*h-l*u,x=v<0?(v-y)/g:(v+y)/g,v=a*u-i*h,b=v<0?(v-y)/g:(v+y)/g,{x,y:b}}function jSe(t,e){return t*e>0}var XSe,KSe=O(()=>{"use strict";o(Fdt,"intersectLine");o(jSe,"sameSign");XSe=Fdt});function $dt(t,e,r){var n=t.x,i=t.y,a=[],s=Number.POSITIVE_INFINITY,l=Number.POSITIVE_INFINITY;typeof e.forEach=="function"?e.forEach(function(g){s=Math.min(s,g.x),l=Math.min(l,g.y)}):(s=Math.min(s,e.x),l=Math.min(l,e.y));for(var u=n-t.width/2-s,h=i-t.height/2-l,f=0;f1&&a.sort(function(g,y){var v=g.x-r.x,x=g.y-r.y,b=Math.sqrt(v*v+x*x),T=y.x-r.x,E=y.y-r.y,w=Math.sqrt(T*T+E*E);return b{"use strict";KSe();QSe=$dt;o($dt,"intersectPolygon")});var zdt,JSe,eCe=O(()=>{"use strict";zdt=o((t,e)=>{var r=t.x,n=t.y,i=e.x-r,a=e.y-n,s=t.width/2,l=t.height/2,u,h;return Math.abs(a)*s>Math.abs(i)*l?(a<0&&(l=-l),u=a===0?0:l*i/a,h=l):(i<0&&(s=-s),u=s,h=i===0?0:s*a/i),{x:r+u,y:n+h}},"intersectRect"),JSe=zdt});var Zn,wW=O(()=>{"use strict";WSe();YSe();TW();ZSe();eCe();Zn={node:USe,circle:HSe,ellipse:b_,polygon:QSe,rect:JSe}});function Fc(t,e,r,n){return t.insert("polygon",":first-child").attr("points",n.map(function(i){return i.x+","+i.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-e/2+","+r/2+")")}var ji,gi,kW=O(()=>{"use strict";v_();co();jt();$r();Ar();Ur();ar();dM();ji=o(async(t,e,r,n)=>{let i=ve(),a,s=e.useHtmlLabels||Sr(i);r?a=r:a="node default";let l=t.insert("g").attr("class",a).attr("id",e.domId||e.id),u=l.insert("g").attr("class","label").attr("style",e.labelStyle),h;e.labelText===void 0?h="":h=typeof e.labelText=="string"?e.labelText:e.labelText[0];let f;e.labelType==="markdown"?f=Fn(u,wr(ao(h),i),{useHtmlLabels:s,width:e.width||i.flowchart.wrappingWidth,classes:"markdown-node-label"},i):f=await Lo(u,wr(ao(h),i),e.labelStyle,!1,n);let d=f.getBBox(),p=e.padding/2;if(Sr(i)){let m=f.children[0],g=je(f);await Wk(m,h),d=m.getBoundingClientRect(),g.attr("width",d.width),g.attr("height",d.height)}return s?u.attr("transform","translate("+-d.width/2+", "+-d.height/2+")"):u.attr("transform","translate(0, "+-d.height/2+")"),e.centerLabel&&u.attr("transform","translate("+-d.width/2+", "+-d.height/2+")"),u.insert("rect",":first-child"),{shapeSvg:l,bbox:d,halfPadding:p,label:u}},"labelHelper"),gi=o((t,e)=>{let r=e.node().getBBox();t.width=r.width,t.height=r.height},"updateNodeBounds");o(Fc,"insertPolygonShape")});var Gdt,tCe,rCe=O(()=>{"use strict";kW();xt();jt();$r();wW();Gdt=o(async(t,e)=>{e.useHtmlLabels||Sr(ve())||(e.centerLabel=!0);let{shapeSvg:n,bbox:i,halfPadding:a}=await ji(t,e,"node "+e.classes,!0);K.info("Classes = ",e.classes);let s=n.insert("rect",":first-child");return s.attr("rx",e.rx).attr("ry",e.ry).attr("x",-i.width/2-a).attr("y",-i.height/2-a).attr("width",i.width+e.padding).attr("height",i.height+e.padding),gi(e,s),e.intersect=function(l){return Zn.rect(e,l)},n},"note"),tCe=Gdt});function EW(t,e,r,n){let i=[],a=o(l=>{i.push(l,0)},"addBorder"),s=o(l=>{i.push(0,l)},"skipBorder");e.includes("t")?(K.debug("add top border"),a(r)):s(r),e.includes("r")?(K.debug("add right border"),a(n)):s(n),e.includes("b")?(K.debug("add bottom border"),a(r)):s(r),e.includes("l")?(K.debug("add left border"),a(n)):s(n),t.attr("stroke-dasharray",i.join(" "))}var nCe,sl,iCe,Vdt,qdt,Udt,Wdt,Hdt,Ydt,jdt,Xdt,Kdt,Qdt,Zdt,Jdt,ept,tpt,rpt,npt,ipt,apt,spt,aCe,opt,lpt,sCe,T_,SW,oCe,lCe=O(()=>{"use strict";Ar();jt();$r();xt();qSe();v_();wW();rCe();kW();nCe=o(t=>t?" "+t:"","formatClass"),sl=o((t,e)=>`${e||"node default"}${nCe(t.classes)} ${nCe(t.class)}`,"getClassesFromNode"),iCe=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await ji(t,e,sl(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=i+a,l=[{x:s/2,y:0},{x:s,y:-s/2},{x:s/2,y:-s},{x:0,y:-s/2}];K.info("Question main (Circle)");let u=Fc(r,s,s,l);return u.attr("style",e.style),gi(e,u),e.intersect=function(h){return K.warn("Intersect called"),Zn.polygon(e,l,h)},r},"question"),Vdt=o((t,e)=>{let r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),n=28,i=[{x:0,y:n/2},{x:n/2,y:0},{x:0,y:-n/2},{x:-n/2,y:0}];return r.insert("polygon",":first-child").attr("points",i.map(function(s){return s.x+","+s.y}).join(" ")).attr("class","state-start").attr("r",7).attr("width",28).attr("height",28),e.width=28,e.height=28,e.intersect=function(s){return Zn.circle(e,14,s)},r},"choice"),qdt=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await ji(t,e,sl(e,void 0),!0),i=4,a=n.height+e.padding,s=a/i,l=n.width+2*s+e.padding,u=[{x:s,y:0},{x:l-s,y:0},{x:l,y:-a/2},{x:l-s,y:-a},{x:s,y:-a},{x:0,y:-a/2}],h=Fc(r,l,a,u);return h.attr("style",e.style),gi(e,h),e.intersect=function(f){return Zn.polygon(e,u,f)},r},"hexagon"),Udt=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await ji(t,e,void 0,!0),i=2,a=n.height+2*e.padding,s=a/i,l=n.width+2*s+e.padding,u=VSe(e.directions,n,e),h=Fc(r,l,a,u);return h.attr("style",e.style),gi(e,h),e.intersect=function(f){return Zn.polygon(e,u,f)},r},"block_arrow"),Wdt=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await ji(t,e,sl(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:-a/2,y:0},{x:i,y:0},{x:i,y:-a},{x:-a/2,y:-a},{x:0,y:-a/2}];return Fc(r,i,a,s).attr("style",e.style),e.width=i+a,e.height=a,e.intersect=function(u){return Zn.polygon(e,s,u)},r},"rect_left_inv_arrow"),Hdt=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await ji(t,e,sl(e),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:-2*a/6,y:0},{x:i-a/6,y:0},{x:i+2*a/6,y:-a},{x:a/6,y:-a}],l=Fc(r,i,a,s);return l.attr("style",e.style),gi(e,l),e.intersect=function(u){return Zn.polygon(e,s,u)},r},"lean_right"),Ydt=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await ji(t,e,sl(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:2*a/6,y:0},{x:i+a/6,y:0},{x:i-2*a/6,y:-a},{x:-a/6,y:-a}],l=Fc(r,i,a,s);return l.attr("style",e.style),gi(e,l),e.intersect=function(u){return Zn.polygon(e,s,u)},r},"lean_left"),jdt=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await ji(t,e,sl(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:-2*a/6,y:0},{x:i+2*a/6,y:0},{x:i-a/6,y:-a},{x:a/6,y:-a}],l=Fc(r,i,a,s);return l.attr("style",e.style),gi(e,l),e.intersect=function(u){return Zn.polygon(e,s,u)},r},"trapezoid"),Xdt=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await ji(t,e,sl(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:a/6,y:0},{x:i-a/6,y:0},{x:i+2*a/6,y:-a},{x:-2*a/6,y:-a}],l=Fc(r,i,a,s);return l.attr("style",e.style),gi(e,l),e.intersect=function(u){return Zn.polygon(e,s,u)},r},"inv_trapezoid"),Kdt=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await ji(t,e,sl(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:0,y:0},{x:i+a/2,y:0},{x:i,y:-a/2},{x:i+a/2,y:-a},{x:0,y:-a}],l=Fc(r,i,a,s);return l.attr("style",e.style),gi(e,l),e.intersect=function(u){return Zn.polygon(e,s,u)},r},"rect_right_inv_arrow"),Qdt=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await ji(t,e,sl(e,void 0),!0),i=n.width+e.padding,a=i/2,s=a/(2.5+i/50),l=n.height+s+e.padding,u="M 0,"+s+" a "+a+","+s+" 0,0,0 "+i+" 0 a "+a+","+s+" 0,0,0 "+-i+" 0 l 0,"+l+" a "+a+","+s+" 0,0,0 "+i+" 0 l 0,"+-l,h=r.attr("label-offset-y",s).insert("path",":first-child").attr("style",e.style).attr("d",u).attr("transform","translate("+-i/2+","+-(l/2+s)+")");return gi(e,h),e.intersect=function(f){let d=Zn.rect(e,f),p=d.x-e.x;if(a!=0&&(Math.abs(p)e.height/2-s)){let m=s*s*(1-p*p/(a*a));m!=0&&(m=Math.sqrt(m)),m=s-m,f.y-e.y>0&&(m=-m),d.y+=m}return d},r},"cylinder"),Zdt=o(async(t,e)=>{let{shapeSvg:r,bbox:n,halfPadding:i}=await ji(t,e,"node "+e.classes+" "+e.class,!0),a=r.insert("rect",":first-child"),s=e.positioned?e.width:n.width+e.padding,l=e.positioned?e.height:n.height+e.padding,u=e.positioned?-s/2:-n.width/2-i,h=e.positioned?-l/2:-n.height/2-i;if(a.attr("class","basic label-container").attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("x",u).attr("y",h).attr("width",s).attr("height",l),e.props){let f=new Set(Object.keys(e.props));e.props.borders&&(EW(a,e.props.borders,s,l),f.delete("borders")),f.forEach(d=>{K.warn(`Unknown node property ${d}`)})}return gi(e,a),e.intersect=function(f){return Zn.rect(e,f)},r},"rect"),Jdt=o(async(t,e)=>{let{shapeSvg:r,bbox:n,halfPadding:i}=await ji(t,e,"node "+e.classes,!0),a=r.insert("rect",":first-child"),s=e.positioned?e.width:n.width+e.padding,l=e.positioned?e.height:n.height+e.padding,u=e.positioned?-s/2:-n.width/2-i,h=e.positioned?-l/2:-n.height/2-i;if(a.attr("class","basic cluster composite label-container").attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("x",u).attr("y",h).attr("width",s).attr("height",l),e.props){let f=new Set(Object.keys(e.props));e.props.borders&&(EW(a,e.props.borders,s,l),f.delete("borders")),f.forEach(d=>{K.warn(`Unknown node property ${d}`)})}return gi(e,a),e.intersect=function(f){return Zn.rect(e,f)},r},"composite"),ept=o(async(t,e)=>{let{shapeSvg:r}=await ji(t,e,"label",!0);K.trace("Classes = ",e.class);let n=r.insert("rect",":first-child"),i=0,a=0;if(n.attr("width",i).attr("height",a),r.attr("class","label edgeLabel"),e.props){let s=new Set(Object.keys(e.props));e.props.borders&&(EW(n,e.props.borders,i,a),s.delete("borders")),s.forEach(l=>{K.warn(`Unknown node property ${l}`)})}return gi(e,n),e.intersect=function(s){return Zn.rect(e,s)},r},"labelRect");o(EW,"applyNodePropertyBorders");tpt=o(async(t,e)=>{let r;e.classes?r="node "+e.classes:r="node default";let n=t.insert("g").attr("class",r).attr("id",e.domId||e.id),i=n.insert("rect",":first-child"),a=n.insert("line"),s=n.insert("g").attr("class","label"),l=e.labelText.flat?e.labelText.flat():e.labelText,u="";typeof l=="object"?u=l[0]:u=l,K.info("Label text abc79",u,l,typeof l=="object");let h=await Lo(s,u,e.labelStyle,!0,!0),f={width:0,height:0};if(Sr(ve())){let y=h.children[0],v=je(h);f=y.getBoundingClientRect(),v.attr("width",f.width),v.attr("height",f.height)}K.info("Text 2",l);let d=l.slice(1,l.length),p=h.getBBox(),m=await Lo(s,d.join?d.join("
    "):d,e.labelStyle,!0,!0);if(Sr(ve())){let y=m.children[0],v=je(m);f=y.getBoundingClientRect(),v.attr("width",f.width),v.attr("height",f.height)}let g=e.padding/2;return je(m).attr("transform","translate( "+(f.width>p.width?0:(p.width-f.width)/2)+", "+(p.height+g+5)+")"),je(h).attr("transform","translate( "+(f.width{let{shapeSvg:r,bbox:n}=await ji(t,e,sl(e,void 0),!0),i=n.height+e.padding,a=n.width+i/4+e.padding,s=r.insert("rect",":first-child").attr("style",e.style).attr("rx",i/2).attr("ry",i/2).attr("x",-a/2).attr("y",-i/2).attr("width",a).attr("height",i);return gi(e,s),e.intersect=function(l){return Zn.rect(e,l)},r},"stadium"),npt=o(async(t,e)=>{let{shapeSvg:r,bbox:n,halfPadding:i}=await ji(t,e,sl(e,void 0),!0),a=r.insert("circle",":first-child");return a.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",n.width/2+i).attr("width",n.width+e.padding).attr("height",n.height+e.padding),K.info("Circle main"),gi(e,a),e.intersect=function(s){return K.info("Circle intersect",e,n.width/2+i,s),Zn.circle(e,n.width/2+i,s)},r},"circle"),ipt=o(async(t,e)=>{let{shapeSvg:r,bbox:n,halfPadding:i}=await ji(t,e,sl(e,void 0),!0),a=5,s=r.insert("g",":first-child"),l=s.insert("circle"),u=s.insert("circle");return s.attr("class",e.class),l.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",n.width/2+i+a).attr("width",n.width+e.padding+a*2).attr("height",n.height+e.padding+a*2),u.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",n.width/2+i).attr("width",n.width+e.padding).attr("height",n.height+e.padding),K.info("DoubleCircle main"),gi(e,l),e.intersect=function(h){return K.info("DoubleCircle intersect",e,n.width/2+i+a,h),Zn.circle(e,n.width/2+i+a,h)},r},"doublecircle"),apt=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await ji(t,e,sl(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:0,y:0},{x:i,y:0},{x:i,y:-a},{x:0,y:-a},{x:0,y:0},{x:-8,y:0},{x:i+8,y:0},{x:i+8,y:-a},{x:-8,y:-a},{x:-8,y:0}],l=Fc(r,i,a,s);return l.attr("style",e.style),gi(e,l),e.intersect=function(u){return Zn.polygon(e,s,u)},r},"subroutine"),spt=o((t,e)=>{let r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),n=r.insert("circle",":first-child");return n.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),gi(e,n),e.intersect=function(i){return Zn.circle(e,7,i)},r},"start"),aCe=o((t,e,r)=>{let n=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),i=70,a=10;r==="LR"&&(i=10,a=70);let s=n.append("rect").attr("x",-1*i/2).attr("y",-1*a/2).attr("width",i).attr("height",a).attr("class","fork-join");return gi(e,s),e.height=e.height+e.padding/2,e.width=e.width+e.padding/2,e.intersect=function(l){return Zn.rect(e,l)},n},"forkJoin"),opt=o((t,e)=>{let r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),n=r.insert("circle",":first-child"),i=r.insert("circle",":first-child");return i.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),n.attr("class","state-end").attr("r",5).attr("width",10).attr("height",10),gi(e,i),e.intersect=function(a){return Zn.circle(e,7,a)},r},"end"),lpt=o(async(t,e)=>{let r=e.padding/2,n=4,i=8,a;e.classes?a="node "+e.classes:a="node default";let s=t.insert("g").attr("class",a).attr("id",e.domId||e.id),l=s.insert("rect",":first-child"),u=s.insert("line"),h=s.insert("line"),f=0,d=n,p=s.insert("g").attr("class","label"),m=0,g=e.classData.annotations?.[0],y=e.classData.annotations[0]?"\xAB"+e.classData.annotations[0]+"\xBB":"",v=await Lo(p,y,e.labelStyle,!0,!0),x=v.getBBox();if(Sr(ve())){let A=v.children[0],L=je(v);x=A.getBoundingClientRect(),L.attr("width",x.width),L.attr("height",x.height)}e.classData.annotations[0]&&(d+=x.height+n,f+=x.width);let b=e.classData.label;e.classData.type!==void 0&&e.classData.type!==""&&(Sr(ve())?b+="<"+e.classData.type+">":b+="<"+e.classData.type+">");let T=await Lo(p,b,e.labelStyle,!0,!0);je(T).attr("class","classTitle");let E=T.getBBox();if(Sr(ve())){let A=T.children[0],L=je(T);E=A.getBoundingClientRect(),L.attr("width",E.width),L.attr("height",E.height)}d+=E.height+n,E.width>f&&(f=E.width);let w=[];e.classData.members.forEach(async A=>{let L=A.getDisplayDetails(),I=L.displayText;Sr(ve())&&(I=I.replace(//g,">"));let N=await Lo(p,I,L.cssStyle?L.cssStyle:e.labelStyle,!0,!0),C=N.getBBox();if(Sr(ve())){let _=N.children[0],D=je(N);C=_.getBoundingClientRect(),D.attr("width",C.width),D.attr("height",C.height)}C.width>f&&(f=C.width),d+=C.height+n,w.push(N)}),d+=i;let k=[];if(e.classData.methods.forEach(async A=>{let L=A.getDisplayDetails(),I=L.displayText;Sr(ve())&&(I=I.replace(//g,">"));let N=await Lo(p,I,L.cssStyle?L.cssStyle:e.labelStyle,!0,!0),C=N.getBBox();if(Sr(ve())){let _=N.children[0],D=je(N);C=_.getBoundingClientRect(),D.attr("width",C.width),D.attr("height",C.height)}C.width>f&&(f=C.width),d+=C.height+n,k.push(N)}),d+=i,g){let A=(f-x.width)/2;je(v).attr("transform","translate( "+(-1*f/2+A)+", "+-1*d/2+")"),m=x.height+n}let S=(f-E.width)/2;return je(T).attr("transform","translate( "+(-1*f/2+S)+", "+(-1*d/2+m)+")"),m+=E.height+n,u.attr("class","divider").attr("x1",-f/2-r).attr("x2",f/2+r).attr("y1",-d/2-r+i+m).attr("y2",-d/2-r+i+m),m+=i,w.forEach(A=>{je(A).attr("transform","translate( "+-f/2+", "+(-1*d/2+m+i/2)+")");let L=A?.getBBox();m+=(L?.height??0)+n}),m+=i,h.attr("class","divider").attr("x1",-f/2-r).attr("x2",f/2+r).attr("y1",-d/2-r+i+m).attr("y2",-d/2-r+i+m),m+=i,k.forEach(A=>{je(A).attr("transform","translate( "+-f/2+", "+(-1*d/2+m)+")");let L=A?.getBBox();m+=(L?.height??0)+n}),l.attr("style",e.style).attr("class","outer title-state").attr("x",-f/2-r).attr("y",-(d/2)-r).attr("width",f+e.padding).attr("height",d+e.padding),gi(e,l),e.intersect=function(A){return Zn.rect(e,A)},s},"class_box"),sCe={rhombus:iCe,composite:Jdt,question:iCe,rect:Zdt,labelRect:ept,rectWithTitle:tpt,choice:Vdt,circle:npt,doublecircle:ipt,stadium:rpt,hexagon:qdt,block_arrow:Udt,rect_left_inv_arrow:Wdt,lean_right:Hdt,lean_left:Ydt,trapezoid:jdt,inv_trapezoid:Xdt,rect_right_inv_arrow:Kdt,cylinder:Qdt,start:spt,end:opt,note:tCe,subroutine:apt,fork:aCe,join:aCe,class_box:lpt},T_={},SW=o(async(t,e,r)=>{let n,i;if(e.link){let a;ve().securityLevel==="sandbox"?a="_top":e.linkTarget&&(a=e.linkTarget||"_blank"),n=t.insert("svg:a").attr("xlink:href",e.link).attr("target",a),i=await sCe[e.shape](n,e,r)}else i=await sCe[e.shape](t,e,r),n=i;return e.tooltip&&i.attr("title",e.tooltip),e.class&&i.attr("class","node default "+e.class),T_[e.id]=n,e.haveCallback&&T_[e.id].attr("class",T_[e.id].attr("class")+" clickable"),n},"insertNode"),oCe=o(t=>{let e=T_[t.id];K.trace("Transforming node",t.diff,t,"translate("+(t.x-t.width/2-5)+", "+t.width/2+")");let r=8,n=t.diff||0;return t.clusterNode?e.attr("transform","translate("+(t.x+n-t.width/2)+", "+(t.y-t.height/2-r)+")"):e.attr("transform","translate("+t.x+", "+t.y+")"),n},"positionNode")});function cCe(t,e,r=!1){let n=t,i="default";(n?.classes?.length||0)>0&&(i=(n?.classes??[]).join(" ")),i=i+" flowchart-label";let a=0,s="",l;switch(n.type){case"round":a=5,s="rect";break;case"composite":a=0,s="composite",l=0;break;case"square":s="rect";break;case"diamond":s="question";break;case"hexagon":s="hexagon";break;case"block_arrow":s="block_arrow";break;case"odd":s="rect_left_inv_arrow";break;case"lean_right":s="lean_right";break;case"lean_left":s="lean_left";break;case"trapezoid":s="trapezoid";break;case"inv_trapezoid":s="inv_trapezoid";break;case"rect_left_inv_arrow":s="rect_left_inv_arrow";break;case"circle":s="circle";break;case"ellipse":s="ellipse";break;case"stadium":s="stadium";break;case"subroutine":s="subroutine";break;case"cylinder":s="cylinder";break;case"group":s="rect";break;case"doublecircle":s="doublecircle";break;default:s="rect"}let u=RN(n?.styles??[]),h=n.label,f=n.size??{width:0,height:0,x:0,y:0};return{labelStyle:u.labelStyle,shape:s,labelText:h,rx:a,ry:a,class:i,style:u.style,id:n.id,directions:n.directions,width:f.width,height:f.height,x:f.x,y:f.y,positioned:r,intersect:void 0,type:n.type,padding:l??Zt()?.block?.padding??0}}async function cpt(t,e,r){let n=cCe(e,r,!1);if(n.type==="group")return;let i=Zt(),a=await SW(t,n,{config:i}),s=a.node().getBBox(),l=r.getBlock(n.id);l.size={width:s.width,height:s.height,x:0,y:0,node:a},r.setBlock(l),a.remove()}async function upt(t,e,r){let n=cCe(e,r,!0);if(r.getBlock(n.id).type!=="space"){let a=Zt();await SW(t,n,{config:a}),e.intersect=n?.intersect,oCe(n)}}async function CW(t,e,r,n){for(let i of e)await n(t,i,r),i.children&&await CW(t,i.children,r,n)}async function uCe(t,e,r){await CW(t,e,r,cpt)}async function hCe(t,e,r){await CW(t,e,r,upt)}async function fCe(t,e,r,n,i){let a=new wn({multigraph:!0,compound:!0});a.setGraph({rankdir:"TB",nodesep:10,ranksep:10,marginx:8,marginy:8});for(let s of r)s.size&&a.setNode(s.id,{width:s.size.width,height:s.size.height,intersect:s.intersect});for(let s of e)if(s.start&&s.end){let l=n.getBlock(s.start),u=n.getBlock(s.end);if(l?.size&&u?.size){let h=l.size,f=u.size,d=[{x:h.x,y:h.y},{x:h.x+(f.x-h.x)/2,y:h.y+(f.y-h.y)/2},{x:f.x,y:f.y}];zSe(t,{v:s.start,w:s.end,name:s.id},{...s,arrowTypeEnd:s.arrowTypeEnd,arrowTypeStart:s.arrowTypeStart,points:d,classes:"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"},void 0,"block",a,i),s.label&&(await FSe(t,{...s,label:s.label,labelStyle:"stroke: #333; stroke-width: 1.5px;fill:none;",arrowTypeEnd:s.arrowTypeEnd,arrowTypeStart:s.arrowTypeStart,points:d,classes:"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"}),$Se({...s,x:d[1].x,y:d[1].y},{originalPath:d}))}}}var dCe=O(()=>{"use strict";Dl();$r();GSe();lCe();ar();o(cCe,"getNodeFromBlock");o(cpt,"calculateBlockSize");o(upt,"insertBlockPositioned");o(CW,"performOperations");o(uCe,"calculateBlockSizes");o(hCe,"insertBlocks");o(fCe,"insertEdges")});var hpt,fpt,pCe,mCe=O(()=>{"use strict";Ar();$r();_Se();xt();Ti();MSe();dCe();hpt=o(function(t,e){return e.db.getClasses()},"getClasses"),fpt=o(async function(t,e,r,n){let{securityLevel:i,block:a}=Zt(),s=n.db,l;i==="sandbox"&&(l=je("#i"+e));let u=i==="sandbox"?je(l.nodes()[0].contentDocument.body):je("body"),h=i==="sandbox"?u.select(`[id="${e}"]`):je(`[id="${e}"]`);ASe(h,["point","circle","cross"],n.type,e);let d=s.getBlocks(),p=s.getBlocksFlat(),m=s.getEdges(),g=h.insert("g").attr("class","block");await uCe(g,d,s);let y=NSe(s);if(await hCe(g,d,s),await fCe(g,m,p,s,e),y){let v=y,x=Math.max(1,Math.round(.125*(v.width/v.height))),b=v.height+x+10,T=v.width+10,{useMaxWidth:E}=a;Zr(h,b,T,!!E),K.debug("Here Bounds",y,v),h.attr("viewBox",`${v.x-5} ${v.y-5} ${v.width+10} ${v.height+10}`)}},"draw"),pCe={draw:fpt,getClasses:hpt}});var gCe={};vr(gCe,{diagram:()=>dpt});var dpt,yCe=O(()=>{"use strict";ySe();ESe();CSe();mCe();dpt={parser:gSe,db:kSe,renderer:pCe,styles:SSe}});var AW,_W,C3,bCe,DW,vs,Zu,A3,TCe,ypt,_3,wCe,kCe,ECe,SCe,CCe,w_,Tp,k_=O(()=>{"use strict";AW={L:"left",R:"right",T:"top",B:"bottom"},_W={L:o(t=>`${t},${t/2} 0,${t} 0,0`,"L"),R:o(t=>`0,${t/2} ${t},0 ${t},${t}`,"R"),T:o(t=>`0,0 ${t},0 ${t/2},${t}`,"T"),B:o(t=>`${t/2},0 ${t},${t} 0,${t}`,"B")},C3={L:o((t,e)=>t-e+2,"L"),R:o((t,e)=>t-2,"R"),T:o((t,e)=>t-e+2,"T"),B:o((t,e)=>t-2,"B")},bCe=o(function(t){return vs(t)?t==="L"?"R":"L":t==="T"?"B":"T"},"getOppositeArchitectureDirection"),DW=o(function(t){let e=t;return e==="L"||e==="R"||e==="T"||e==="B"},"isArchitectureDirection"),vs=o(function(t){let e=t;return e==="L"||e==="R"},"isArchitectureDirectionX"),Zu=o(function(t){let e=t;return e==="T"||e==="B"},"isArchitectureDirectionY"),A3=o(function(t,e){let r=vs(t)&&Zu(e),n=Zu(t)&&vs(e);return r||n},"isArchitectureDirectionXY"),TCe=o(function(t){let e=t[0],r=t[1],n=vs(e)&&Zu(r),i=Zu(e)&&vs(r);return n||i},"isArchitecturePairXY"),ypt=o(function(t){return t!=="LL"&&t!=="RR"&&t!=="TT"&&t!=="BB"},"isValidArchitectureDirectionPair"),_3=o(function(t,e){let r=`${t}${e}`;return ypt(r)?r:void 0},"getArchitectureDirectionPair"),wCe=o(function([t,e],r){let n=r[0],i=r[1];return vs(n)?Zu(i)?[t+(n==="L"?-1:1),e+(i==="T"?1:-1)]:[t+(n==="L"?-1:1),e]:vs(i)?[t+(i==="L"?1:-1),e+(n==="T"?1:-1)]:[t,e+(n==="T"?1:-1)]},"shiftPositionByArchitectureDirectionPair"),kCe=o(function(t){return t==="LT"||t==="TL"?[1,1]:t==="BL"||t==="LB"?[1,-1]:t==="BR"||t==="RB"?[-1,-1]:[-1,1]},"getArchitectureDirectionXYFactors"),ECe=o(function(t,e){return A3(t,e)?"bend":vs(t)?"horizontal":"vertical"},"getArchitectureDirectionAlignment"),SCe=o(function(t){return t.type==="service"},"isArchitectureService"),CCe=o(function(t){return t.type==="junction"},"isArchitectureJunction"),w_=o(t=>t.data(),"edgeData"),Tp=o(t=>t.data(),"nodeData")});var vpt,Kv,RW=O(()=>{"use strict";$r();La();ar();si();k_();vpt=gr.architecture,Kv=class{constructor(){this.nodes={};this.groups={};this.edges=[];this.registeredIds={};this.elements={};this.setAccTitle=Lr;this.getAccTitle=Or;this.setDiagramTitle=zr;this.getDiagramTitle=Fr;this.getAccDescription=Br;this.setAccDescription=Pr;this.clear()}static{o(this,"ArchitectureDB")}clear(){this.nodes={},this.groups={},this.edges=[],this.registeredIds={},this.dataStructures=void 0,this.elements={},_r()}addService({id:e,icon:r,in:n,title:i,iconText:a}){if(this.registeredIds[e]!==void 0)throw new Error(`The service id [${e}] is already in use by another ${this.registeredIds[e]}`);if(n!==void 0){if(e===n)throw new Error(`The service [${e}] cannot be placed within itself`);if(this.registeredIds[n]===void 0)throw new Error(`The service [${e}]'s parent does not exist. Please make sure the parent is created before this service`);if(this.registeredIds[n]==="node")throw new Error(`The service [${e}]'s parent is not a group`)}this.registeredIds[e]="node",this.nodes[e]={id:e,type:"service",icon:r,iconText:a,title:i,edges:[],in:n}}getServices(){return Object.values(this.nodes).filter(SCe)}addJunction({id:e,in:r}){if(this.registeredIds[e]!==void 0)throw new Error(`The junction id [${e}] is already in use by another ${this.registeredIds[e]}`);if(r!==void 0){if(e===r)throw new Error(`The junction [${e}] cannot be placed within itself`);if(this.registeredIds[r]===void 0)throw new Error(`The junction [${e}]'s parent does not exist. Please make sure the parent is created before this junction`);if(this.registeredIds[r]==="node")throw new Error(`The junction [${e}]'s parent is not a group`)}this.registeredIds[e]="node",this.nodes[e]={id:e,type:"junction",edges:[],in:r}}getJunctions(){return Object.values(this.nodes).filter(CCe)}getNodes(){return Object.values(this.nodes)}getNode(e){return this.nodes[e]??null}addGroup({id:e,icon:r,in:n,title:i}){if(this.registeredIds?.[e]!==void 0)throw new Error(`The group id [${e}] is already in use by another ${this.registeredIds[e]}`);if(n!==void 0){if(e===n)throw new Error(`The group [${e}] cannot be placed within itself`);if(this.registeredIds?.[n]===void 0)throw new Error(`The group [${e}]'s parent does not exist. Please make sure the parent is created before this group`);if(this.registeredIds?.[n]==="node")throw new Error(`The group [${e}]'s parent is not a group`)}this.registeredIds[e]="group",this.groups[e]={id:e,icon:r,title:i,in:n}}getGroups(){return Object.values(this.groups)}addEdge({lhsId:e,rhsId:r,lhsDir:n,rhsDir:i,lhsInto:a,rhsInto:s,lhsGroup:l,rhsGroup:u,title:h}){if(!DW(n))throw new Error(`Invalid direction given for left hand side of edge ${e}--${r}. Expected (L,R,T,B) got ${String(n)}`);if(!DW(i))throw new Error(`Invalid direction given for right hand side of edge ${e}--${r}. Expected (L,R,T,B) got ${String(i)}`);if(this.nodes[e]===void 0&&this.groups[e]===void 0)throw new Error(`The left-hand id [${e}] does not yet exist. Please create the service/group before declaring an edge to it.`);if(this.nodes[r]===void 0&&this.groups[r]===void 0)throw new Error(`The right-hand id [${r}] does not yet exist. Please create the service/group before declaring an edge to it.`);let f=this.nodes[e].in,d=this.nodes[r].in;if(l&&f&&d&&f==d)throw new Error(`The left-hand id [${e}] is modified to traverse the group boundary, but the edge does not pass through two groups.`);if(u&&f&&d&&f==d)throw new Error(`The right-hand id [${r}] is modified to traverse the group boundary, but the edge does not pass through two groups.`);let p={lhsId:e,lhsDir:n,lhsInto:a,lhsGroup:l,rhsId:r,rhsDir:i,rhsInto:s,rhsGroup:u,title:h};this.edges.push(p),this.nodes[e]&&this.nodes[r]&&(this.nodes[e].edges.push(this.edges[this.edges.length-1]),this.nodes[r].edges.push(this.edges[this.edges.length-1]))}getEdges(){return this.edges}getDataStructures(){if(this.dataStructures===void 0){let e={},r=Object.entries(this.nodes).reduce((u,[h,f])=>(u[h]=f.edges.reduce((d,p)=>{let m=this.getNode(p.lhsId)?.in,g=this.getNode(p.rhsId)?.in;if(m&&g&&m!==g){let y=ECe(p.lhsDir,p.rhsDir);y!=="bend"&&(e[m]??={},e[m][g]=y,e[g]??={},e[g][m]=y)}if(p.lhsId===h){let y=_3(p.lhsDir,p.rhsDir);y&&(d[y]=p.rhsId)}else{let y=_3(p.rhsDir,p.lhsDir);y&&(d[y]=p.lhsId)}return d},{}),u),{}),n=Object.keys(r)[0],i={[n]:1},a=Object.keys(r).reduce((u,h)=>h===n?u:{...u,[h]:1},{}),s=o(u=>{let h={[u]:[0,0]},f=[u];for(;f.length>0;){let d=f.shift();if(d){i[d]=1,delete a[d];let p=r[d],[m,g]=h[d];Object.entries(p).forEach(([y,v])=>{i[v]||(h[v]=wCe([m,g],y),f.push(v))})}}return h},"BFS"),l=[s(n)];for(;Object.keys(a).length>0;)l.push(s(Object.keys(a)[0]));this.dataStructures={adjList:r,spatialMaps:l,groupAlignments:e}}return this.dataStructures}setElementForId(e,r){this.elements[e]=r}getElementById(e){return this.elements[e]}getConfig(){return Pn({...vpt,...Zt().architecture})}getConfigField(e){return this.getConfig()[e]}}});var xpt,LW,ACe=O(()=>{"use strict";up();xt();Vm();RW();xpt=o((t,e)=>{ql(t,e),t.groups.map(r=>e.addGroup(r)),t.services.map(r=>e.addService({...r,type:"service"})),t.junctions.map(r=>e.addJunction({...r,type:"junction"})),t.edges.map(r=>e.addEdge(r))},"populateDb"),LW={parser:{yy:void 0},parse:o(async t=>{let e=await Us("architecture",t);K.debug(e);let r=LW.parser?.yy;if(!(r instanceof Kv))throw new Error("parser.parser?.yy was not a ArchitectureDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");xpt(e,r)},"parse")}});var bpt,_Ce,DCe=O(()=>{"use strict";bpt=o(t=>` + .edge { + stroke-width: ${t.archEdgeWidth}; + stroke: ${t.archEdgeColor}; + fill: none; + } + + .arrow { + fill: ${t.archEdgeArrowColor}; + } + + .node-bkg { + fill: none; + stroke: ${t.archGroupBorderColor}; + stroke-width: ${t.archGroupBorderWidth}; + stroke-dasharray: 8; + } + .node-icon-text { + display: flex; + align-items: center; + } + + .node-icon-text > div { + color: #fff; + margin: 1px; + height: fit-content; + text-align: center; + overflow: hidden; + display: -webkit-box; + -webkit-box-orient: vertical; + } +`,"getStyles"),_Ce=bpt});var MW=nr((D3,NW)=>{"use strict";o((function(e,r){typeof D3=="object"&&typeof NW=="object"?NW.exports=r():typeof define=="function"&&define.amd?define([],r):typeof D3=="object"?D3.layoutBase=r():e.layoutBase=r()}),"webpackUniversalModuleDefinition")(D3,function(){return(function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return o(r,"__webpack_require__"),r.m=t,r.c=e,r.i=function(n){return n},r.d=function(n,i,a){r.o(n,i)||Object.defineProperty(n,i,{configurable:!1,enumerable:!0,get:a})},r.n=function(n){var i=n&&n.__esModule?o(function(){return n.default},"getDefault"):o(function(){return n},"getModuleExports");return r.d(i,"a",i),i},r.o=function(n,i){return Object.prototype.hasOwnProperty.call(n,i)},r.p="",r(r.s=28)})([(function(t,e,r){"use strict";function n(){}o(n,"LayoutConstants"),n.QUALITY=1,n.DEFAULT_CREATE_BENDS_AS_NEEDED=!1,n.DEFAULT_INCREMENTAL=!1,n.DEFAULT_ANIMATION_ON_LAYOUT=!0,n.DEFAULT_ANIMATION_DURING_LAYOUT=!1,n.DEFAULT_ANIMATION_PERIOD=50,n.DEFAULT_UNIFORM_LEAF_NODE_SIZES=!1,n.DEFAULT_GRAPH_MARGIN=15,n.NODE_DIMENSIONS_INCLUDE_LABELS=!1,n.SIMPLE_NODE_SIZE=40,n.SIMPLE_NODE_HALF_SIZE=n.SIMPLE_NODE_SIZE/2,n.EMPTY_COMPOUND_NODE_SIZE=40,n.MIN_EDGE_LENGTH=1,n.WORLD_BOUNDARY=1e6,n.INITIAL_WORLD_BOUNDARY=n.WORLD_BOUNDARY/1e3,n.WORLD_CENTER_X=1200,n.WORLD_CENTER_Y=900,t.exports=n}),(function(t,e,r){"use strict";var n=r(2),i=r(8),a=r(9);function s(u,h,f){n.call(this,f),this.isOverlapingSourceAndTarget=!1,this.vGraphObject=f,this.bendpoints=[],this.source=u,this.target=h}o(s,"LEdge"),s.prototype=Object.create(n.prototype);for(var l in n)s[l]=n[l];s.prototype.getSource=function(){return this.source},s.prototype.getTarget=function(){return this.target},s.prototype.isInterGraph=function(){return this.isInterGraph},s.prototype.getLength=function(){return this.length},s.prototype.isOverlapingSourceAndTarget=function(){return this.isOverlapingSourceAndTarget},s.prototype.getBendpoints=function(){return this.bendpoints},s.prototype.getLca=function(){return this.lca},s.prototype.getSourceInLca=function(){return this.sourceInLca},s.prototype.getTargetInLca=function(){return this.targetInLca},s.prototype.getOtherEnd=function(u){if(this.source===u)return this.target;if(this.target===u)return this.source;throw"Node is not incident with this edge"},s.prototype.getOtherEndInGraph=function(u,h){for(var f=this.getOtherEnd(u),d=h.getGraphManager().getRoot();;){if(f.getOwner()==h)return f;if(f.getOwner()==d)break;f=f.getOwner().getParent()}return null},s.prototype.updateLength=function(){var u=new Array(4);this.isOverlapingSourceAndTarget=i.getIntersection(this.target.getRect(),this.source.getRect(),u),this.isOverlapingSourceAndTarget||(this.lengthX=u[0]-u[2],this.lengthY=u[1]-u[3],Math.abs(this.lengthX)<1&&(this.lengthX=a.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=a.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY))},s.prototype.updateLengthSimple=function(){this.lengthX=this.target.getCenterX()-this.source.getCenterX(),this.lengthY=this.target.getCenterY()-this.source.getCenterY(),Math.abs(this.lengthX)<1&&(this.lengthX=a.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=a.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY)},t.exports=s}),(function(t,e,r){"use strict";function n(i){this.vGraphObject=i}o(n,"LGraphObject"),t.exports=n}),(function(t,e,r){"use strict";var n=r(2),i=r(10),a=r(13),s=r(0),l=r(16),u=r(5);function h(d,p,m,g){m==null&&g==null&&(g=p),n.call(this,g),d.graphManager!=null&&(d=d.graphManager),this.estimatedSize=i.MIN_VALUE,this.inclusionTreeDepth=i.MAX_VALUE,this.vGraphObject=g,this.edges=[],this.graphManager=d,m!=null&&p!=null?this.rect=new a(p.x,p.y,m.width,m.height):this.rect=new a}o(h,"LNode"),h.prototype=Object.create(n.prototype);for(var f in n)h[f]=n[f];h.prototype.getEdges=function(){return this.edges},h.prototype.getChild=function(){return this.child},h.prototype.getOwner=function(){return this.owner},h.prototype.getWidth=function(){return this.rect.width},h.prototype.setWidth=function(d){this.rect.width=d},h.prototype.getHeight=function(){return this.rect.height},h.prototype.setHeight=function(d){this.rect.height=d},h.prototype.getCenterX=function(){return this.rect.x+this.rect.width/2},h.prototype.getCenterY=function(){return this.rect.y+this.rect.height/2},h.prototype.getCenter=function(){return new u(this.rect.x+this.rect.width/2,this.rect.y+this.rect.height/2)},h.prototype.getLocation=function(){return new u(this.rect.x,this.rect.y)},h.prototype.getRect=function(){return this.rect},h.prototype.getDiagonal=function(){return Math.sqrt(this.rect.width*this.rect.width+this.rect.height*this.rect.height)},h.prototype.getHalfTheDiagonal=function(){return Math.sqrt(this.rect.height*this.rect.height+this.rect.width*this.rect.width)/2},h.prototype.setRect=function(d,p){this.rect.x=d.x,this.rect.y=d.y,this.rect.width=p.width,this.rect.height=p.height},h.prototype.setCenter=function(d,p){this.rect.x=d-this.rect.width/2,this.rect.y=p-this.rect.height/2},h.prototype.setLocation=function(d,p){this.rect.x=d,this.rect.y=p},h.prototype.moveBy=function(d,p){this.rect.x+=d,this.rect.y+=p},h.prototype.getEdgeListToNode=function(d){var p=[],m,g=this;return g.edges.forEach(function(y){if(y.target==d){if(y.source!=g)throw"Incorrect edge source!";p.push(y)}}),p},h.prototype.getEdgesBetween=function(d){var p=[],m,g=this;return g.edges.forEach(function(y){if(!(y.source==g||y.target==g))throw"Incorrect edge source and/or target";(y.target==d||y.source==d)&&p.push(y)}),p},h.prototype.getNeighborsList=function(){var d=new Set,p=this;return p.edges.forEach(function(m){if(m.source==p)d.add(m.target);else{if(m.target!=p)throw"Incorrect incidency!";d.add(m.source)}}),d},h.prototype.withChildren=function(){var d=new Set,p,m;if(d.add(this),this.child!=null)for(var g=this.child.getNodes(),y=0;yp?(this.rect.x-=(this.labelWidth-p)/2,this.setWidth(this.labelWidth)):this.labelPosHorizontal=="right"&&this.setWidth(p+this.labelWidth)),this.labelHeight&&(this.labelPosVertical=="top"?(this.rect.y-=this.labelHeight,this.setHeight(m+this.labelHeight)):this.labelPosVertical=="center"&&this.labelHeight>m?(this.rect.y-=(this.labelHeight-m)/2,this.setHeight(this.labelHeight)):this.labelPosVertical=="bottom"&&this.setHeight(m+this.labelHeight))}}},h.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==i.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},h.prototype.transform=function(d){var p=this.rect.x;p>s.WORLD_BOUNDARY?p=s.WORLD_BOUNDARY:p<-s.WORLD_BOUNDARY&&(p=-s.WORLD_BOUNDARY);var m=this.rect.y;m>s.WORLD_BOUNDARY?m=s.WORLD_BOUNDARY:m<-s.WORLD_BOUNDARY&&(m=-s.WORLD_BOUNDARY);var g=new u(p,m),y=d.inverseTransformPoint(g);this.setLocation(y.x,y.y)},h.prototype.getLeft=function(){return this.rect.x},h.prototype.getRight=function(){return this.rect.x+this.rect.width},h.prototype.getTop=function(){return this.rect.y},h.prototype.getBottom=function(){return this.rect.y+this.rect.height},h.prototype.getParent=function(){return this.owner==null?null:this.owner.getParent()},t.exports=h}),(function(t,e,r){"use strict";var n=r(0);function i(){}o(i,"FDLayoutConstants");for(var a in n)i[a]=n[a];i.MAX_ITERATIONS=2500,i.DEFAULT_EDGE_LENGTH=50,i.DEFAULT_SPRING_STRENGTH=.45,i.DEFAULT_REPULSION_STRENGTH=4500,i.DEFAULT_GRAVITY_STRENGTH=.4,i.DEFAULT_COMPOUND_GRAVITY_STRENGTH=1,i.DEFAULT_GRAVITY_RANGE_FACTOR=3.8,i.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=1.5,i.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION=!0,i.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION=!0,i.DEFAULT_COOLING_FACTOR_INCREMENTAL=.3,i.COOLING_ADAPTATION_FACTOR=.33,i.ADAPTATION_LOWER_NODE_LIMIT=1e3,i.ADAPTATION_UPPER_NODE_LIMIT=5e3,i.MAX_NODE_DISPLACEMENT_INCREMENTAL=100,i.MAX_NODE_DISPLACEMENT=i.MAX_NODE_DISPLACEMENT_INCREMENTAL*3,i.MIN_REPULSION_DIST=i.DEFAULT_EDGE_LENGTH/10,i.CONVERGENCE_CHECK_PERIOD=100,i.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=.1,i.MIN_EDGE_LENGTH=1,i.GRID_CALCULATION_CHECK_PERIOD=10,t.exports=i}),(function(t,e,r){"use strict";function n(i,a){i==null&&a==null?(this.x=0,this.y=0):(this.x=i,this.y=a)}o(n,"PointD"),n.prototype.getX=function(){return this.x},n.prototype.getY=function(){return this.y},n.prototype.setX=function(i){this.x=i},n.prototype.setY=function(i){this.y=i},n.prototype.getDifference=function(i){return new DimensionD(this.x-i.x,this.y-i.y)},n.prototype.getCopy=function(){return new n(this.x,this.y)},n.prototype.translate=function(i){return this.x+=i.width,this.y+=i.height,this},t.exports=n}),(function(t,e,r){"use strict";var n=r(2),i=r(10),a=r(0),s=r(7),l=r(3),u=r(1),h=r(13),f=r(12),d=r(11);function p(g,y,v){n.call(this,v),this.estimatedSize=i.MIN_VALUE,this.margin=a.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=g,y!=null&&y instanceof s?this.graphManager=y:y!=null&&y instanceof Layout&&(this.graphManager=y.graphManager)}o(p,"LGraph"),p.prototype=Object.create(n.prototype);for(var m in n)p[m]=n[m];p.prototype.getNodes=function(){return this.nodes},p.prototype.getEdges=function(){return this.edges},p.prototype.getGraphManager=function(){return this.graphManager},p.prototype.getParent=function(){return this.parent},p.prototype.getLeft=function(){return this.left},p.prototype.getRight=function(){return this.right},p.prototype.getTop=function(){return this.top},p.prototype.getBottom=function(){return this.bottom},p.prototype.isConnected=function(){return this.isConnected},p.prototype.add=function(g,y,v){if(y==null&&v==null){var x=g;if(this.graphManager==null)throw"Graph has no graph mgr!";if(this.getNodes().indexOf(x)>-1)throw"Node already in graph!";return x.owner=this,this.getNodes().push(x),x}else{var b=g;if(!(this.getNodes().indexOf(y)>-1&&this.getNodes().indexOf(v)>-1))throw"Source or target not in graph!";if(!(y.owner==v.owner&&y.owner==this))throw"Both owners must be this graph!";return y.owner!=v.owner?null:(b.source=y,b.target=v,b.isInterGraph=!1,this.getEdges().push(b),y.edges.push(b),v!=y&&v.edges.push(b),b)}},p.prototype.remove=function(g){var y=g;if(g instanceof l){if(y==null)throw"Node is null!";if(!(y.owner!=null&&y.owner==this))throw"Owner graph is invalid!";if(this.graphManager==null)throw"Owner graph manager is invalid!";for(var v=y.edges.slice(),x,b=v.length,T=0;T-1&&k>-1))throw"Source and/or target doesn't know this edge!";x.source.edges.splice(w,1),x.target!=x.source&&x.target.edges.splice(k,1);var E=x.source.owner.getEdges().indexOf(x);if(E==-1)throw"Not in owner's edge list!";x.source.owner.getEdges().splice(E,1)}},p.prototype.updateLeftTop=function(){for(var g=i.MAX_VALUE,y=i.MAX_VALUE,v,x,b,T=this.getNodes(),E=T.length,w=0;wv&&(g=v),y>x&&(y=x)}return g==i.MAX_VALUE?null:(T[0].getParent().paddingLeft!=null?b=T[0].getParent().paddingLeft:b=this.margin,this.left=y-b,this.top=g-b,new f(this.left,this.top))},p.prototype.updateBounds=function(g){for(var y=i.MAX_VALUE,v=-i.MAX_VALUE,x=i.MAX_VALUE,b=-i.MAX_VALUE,T,E,w,k,S,A=this.nodes,L=A.length,I=0;IT&&(y=T),vw&&(x=w),bT&&(y=T),vw&&(x=w),b=this.nodes.length){var L=0;v.forEach(function(I){I.owner==g&&L++}),L==this.nodes.length&&(this.isConnected=!0)}},t.exports=p}),(function(t,e,r){"use strict";var n,i=r(1);function a(s){n=r(6),this.layout=s,this.graphs=[],this.edges=[]}o(a,"LGraphManager"),a.prototype.addRoot=function(){var s=this.layout.newGraph(),l=this.layout.newNode(null),u=this.add(s,l);return this.setRootGraph(u),this.rootGraph},a.prototype.add=function(s,l,u,h,f){if(u==null&&h==null&&f==null){if(s==null)throw"Graph is null!";if(l==null)throw"Parent node is null!";if(this.graphs.indexOf(s)>-1)throw"Graph already in this graph mgr!";if(this.graphs.push(s),s.parent!=null)throw"Already has a parent!";if(l.child!=null)throw"Already has a child!";return s.parent=l,l.child=s,s}else{f=u,h=l,u=s;var d=h.getOwner(),p=f.getOwner();if(!(d!=null&&d.getGraphManager()==this))throw"Source not in this graph mgr!";if(!(p!=null&&p.getGraphManager()==this))throw"Target not in this graph mgr!";if(d==p)return u.isInterGraph=!1,d.add(u,h,f);if(u.isInterGraph=!0,u.source=h,u.target=f,this.edges.indexOf(u)>-1)throw"Edge already in inter-graph edge list!";if(this.edges.push(u),!(u.source!=null&&u.target!=null))throw"Edge source and/or target is null!";if(!(u.source.edges.indexOf(u)==-1&&u.target.edges.indexOf(u)==-1))throw"Edge already in source and/or target incidency list!";return u.source.edges.push(u),u.target.edges.push(u),u}},a.prototype.remove=function(s){if(s instanceof n){var l=s;if(l.getGraphManager()!=this)throw"Graph not in this graph mgr";if(!(l==this.rootGraph||l.parent!=null&&l.parent.graphManager==this))throw"Invalid parent node!";var u=[];u=u.concat(l.getEdges());for(var h,f=u.length,d=0;d=s.getRight()?l[0]+=Math.min(s.getX()-a.getX(),a.getRight()-s.getRight()):s.getX()<=a.getX()&&s.getRight()>=a.getRight()&&(l[0]+=Math.min(a.getX()-s.getX(),s.getRight()-a.getRight())),a.getY()<=s.getY()&&a.getBottom()>=s.getBottom()?l[1]+=Math.min(s.getY()-a.getY(),a.getBottom()-s.getBottom()):s.getY()<=a.getY()&&s.getBottom()>=a.getBottom()&&(l[1]+=Math.min(a.getY()-s.getY(),s.getBottom()-a.getBottom()));var f=Math.abs((s.getCenterY()-a.getCenterY())/(s.getCenterX()-a.getCenterX()));s.getCenterY()===a.getCenterY()&&s.getCenterX()===a.getCenterX()&&(f=1);var d=f*l[0],p=l[1]/f;l[0]d)return l[0]=u,l[1]=m,l[2]=f,l[3]=A,!1;if(hf)return l[0]=p,l[1]=h,l[2]=k,l[3]=d,!1;if(uf?(l[0]=y,l[1]=v,C=!0):(l[0]=g,l[1]=m,C=!0):D===R&&(u>f?(l[0]=p,l[1]=m,C=!0):(l[0]=x,l[1]=v,C=!0)),-M===R?f>u?(l[2]=S,l[3]=A,_=!0):(l[2]=k,l[3]=w,_=!0):M===R&&(f>u?(l[2]=E,l[3]=w,_=!0):(l[2]=L,l[3]=A,_=!0)),C&&_)return!1;if(u>f?h>d?(P=this.getCardinalDirection(D,R,4),B=this.getCardinalDirection(M,R,2)):(P=this.getCardinalDirection(-D,R,3),B=this.getCardinalDirection(-M,R,1)):h>d?(P=this.getCardinalDirection(-D,R,1),B=this.getCardinalDirection(-M,R,3)):(P=this.getCardinalDirection(D,R,2),B=this.getCardinalDirection(M,R,4)),!C)switch(P){case 1:G=m,F=u+-T/R,l[0]=F,l[1]=G;break;case 2:F=x,G=h+b*R,l[0]=F,l[1]=G;break;case 3:G=v,F=u+T/R,l[0]=F,l[1]=G;break;case 4:F=y,G=h+-b*R,l[0]=F,l[1]=G;break}if(!_)switch(B){case 1:V=w,$=f+-N/R,l[2]=$,l[3]=V;break;case 2:$=L,V=d+I*R,l[2]=$,l[3]=V;break;case 3:V=A,$=f+N/R,l[2]=$,l[3]=V;break;case 4:$=S,V=d+-I*R,l[2]=$,l[3]=V;break}}return!1},i.getCardinalDirection=function(a,s,l){return a>s?l:1+l%4},i.getIntersection=function(a,s,l,u){if(u==null)return this.getIntersection2(a,s,l);var h=a.x,f=a.y,d=s.x,p=s.y,m=l.x,g=l.y,y=u.x,v=u.y,x=void 0,b=void 0,T=void 0,E=void 0,w=void 0,k=void 0,S=void 0,A=void 0,L=void 0;return T=p-f,w=h-d,S=d*f-h*p,E=v-g,k=m-y,A=y*g-m*v,L=T*k-E*w,L===0?null:(x=(w*A-k*S)/L,b=(E*S-T*A)/L,new n(x,b))},i.angleOfVector=function(a,s,l,u){var h=void 0;return a!==l?(h=Math.atan((u-s)/(l-a)),l=0){var v=(-m+Math.sqrt(m*m-4*p*g))/(2*p),x=(-m-Math.sqrt(m*m-4*p*g))/(2*p),b=null;return v>=0&&v<=1?[v]:x>=0&&x<=1?[x]:b}else return null},i.HALF_PI=.5*Math.PI,i.ONE_AND_HALF_PI=1.5*Math.PI,i.TWO_PI=2*Math.PI,i.THREE_PI=3*Math.PI,t.exports=i}),(function(t,e,r){"use strict";function n(){}o(n,"IMath"),n.sign=function(i){return i>0?1:i<0?-1:0},n.floor=function(i){return i<0?Math.ceil(i):Math.floor(i)},n.ceil=function(i){return i<0?Math.floor(i):Math.ceil(i)},t.exports=n}),(function(t,e,r){"use strict";function n(){}o(n,"Integer"),n.MAX_VALUE=2147483647,n.MIN_VALUE=-2147483648,t.exports=n}),(function(t,e,r){"use strict";var n=(function(){function h(f,d){for(var p=0;p"u"?"undefined":n(a);return a==null||s!="object"&&s!="function"},t.exports=i}),(function(t,e,r){"use strict";function n(m){if(Array.isArray(m)){for(var g=0,y=Array(m.length);g0&&g;){for(T.push(w[0]);T.length>0&&g;){var k=T[0];T.splice(0,1),b.add(k);for(var S=k.getEdges(),x=0;x-1&&w.splice(N,1)}b=new Set,E=new Map}}return m},p.prototype.createDummyNodesForBendpoints=function(m){for(var g=[],y=m.source,v=this.graphManager.calcLowestCommonAncestor(m.source,m.target),x=0;x0){for(var v=this.edgeToDummyNodes.get(y),x=0;x=0&&g.splice(A,1);var L=E.getNeighborsList();L.forEach(function(C){if(y.indexOf(C)<0){var _=v.get(C),D=_-1;D==1&&k.push(C),v.set(C,D)}})}y=y.concat(k),(g.length==1||g.length==2)&&(x=!0,b=g[0])}return b},p.prototype.setGraphManager=function(m){this.graphManager=m},t.exports=p}),(function(t,e,r){"use strict";function n(){}o(n,"RandomSeed"),n.seed=1,n.x=0,n.nextDouble=function(){return n.x=Math.sin(n.seed++)*1e4,n.x-Math.floor(n.x)},t.exports=n}),(function(t,e,r){"use strict";var n=r(5);function i(a,s){this.lworldOrgX=0,this.lworldOrgY=0,this.ldeviceOrgX=0,this.ldeviceOrgY=0,this.lworldExtX=1,this.lworldExtY=1,this.ldeviceExtX=1,this.ldeviceExtY=1}o(i,"Transform"),i.prototype.getWorldOrgX=function(){return this.lworldOrgX},i.prototype.setWorldOrgX=function(a){this.lworldOrgX=a},i.prototype.getWorldOrgY=function(){return this.lworldOrgY},i.prototype.setWorldOrgY=function(a){this.lworldOrgY=a},i.prototype.getWorldExtX=function(){return this.lworldExtX},i.prototype.setWorldExtX=function(a){this.lworldExtX=a},i.prototype.getWorldExtY=function(){return this.lworldExtY},i.prototype.setWorldExtY=function(a){this.lworldExtY=a},i.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},i.prototype.setDeviceOrgX=function(a){this.ldeviceOrgX=a},i.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},i.prototype.setDeviceOrgY=function(a){this.ldeviceOrgY=a},i.prototype.getDeviceExtX=function(){return this.ldeviceExtX},i.prototype.setDeviceExtX=function(a){this.ldeviceExtX=a},i.prototype.getDeviceExtY=function(){return this.ldeviceExtY},i.prototype.setDeviceExtY=function(a){this.ldeviceExtY=a},i.prototype.transformX=function(a){var s=0,l=this.lworldExtX;return l!=0&&(s=this.ldeviceOrgX+(a-this.lworldOrgX)*this.ldeviceExtX/l),s},i.prototype.transformY=function(a){var s=0,l=this.lworldExtY;return l!=0&&(s=this.ldeviceOrgY+(a-this.lworldOrgY)*this.ldeviceExtY/l),s},i.prototype.inverseTransformX=function(a){var s=0,l=this.ldeviceExtX;return l!=0&&(s=this.lworldOrgX+(a-this.ldeviceOrgX)*this.lworldExtX/l),s},i.prototype.inverseTransformY=function(a){var s=0,l=this.ldeviceExtY;return l!=0&&(s=this.lworldOrgY+(a-this.ldeviceOrgY)*this.lworldExtY/l),s},i.prototype.inverseTransformPoint=function(a){var s=new n(this.inverseTransformX(a.x),this.inverseTransformY(a.y));return s},t.exports=i}),(function(t,e,r){"use strict";function n(d){if(Array.isArray(d)){for(var p=0,m=Array(d.length);pa.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*a.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(d-a.ADAPTATION_LOWER_NODE_LIMIT)/(a.ADAPTATION_UPPER_NODE_LIMIT-a.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-a.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=a.MAX_NODE_DISPLACEMENT_INCREMENTAL):(d>a.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(a.COOLING_ADAPTATION_FACTOR,1-(d-a.ADAPTATION_LOWER_NODE_LIMIT)/(a.ADAPTATION_UPPER_NODE_LIMIT-a.ADAPTATION_LOWER_NODE_LIMIT)*(1-a.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=a.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(this.getAllNodes().length*5,this.maxIterations),this.displacementThresholdPerNode=3*a.DEFAULT_EDGE_LENGTH/100,this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},h.prototype.calcSpringForces=function(){for(var d=this.getAllEdges(),p,m=0;m0&&arguments[0]!==void 0?arguments[0]:!0,p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,m,g,y,v,x=this.getAllNodes(),b;if(this.useFRGridVariant)for(this.totalIterations%a.GRID_CALCULATION_CHECK_PERIOD==1&&d&&this.updateGrid(),b=new Set,m=0;mT||b>T)&&(d.gravitationForceX=-this.gravityConstant*y,d.gravitationForceY=-this.gravityConstant*v)):(T=p.getEstimatedSize()*this.compoundGravityRangeFactor,(x>T||b>T)&&(d.gravitationForceX=-this.gravityConstant*y*this.compoundGravityConstant,d.gravitationForceY=-this.gravityConstant*v*this.compoundGravityConstant))},h.prototype.isConverged=function(){var d,p=!1;return this.totalIterations>this.maxIterations/3&&(p=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2),d=this.totalDisplacement=x.length||T>=x[0].length)){for(var E=0;Eh},"_defaultCompareFunction")}]),l})();t.exports=s}),(function(t,e,r){"use strict";function n(){}o(n,"SVD"),n.svd=function(i){this.U=null,this.V=null,this.s=null,this.m=0,this.n=0,this.m=i.length,this.n=i[0].length;var a=Math.min(this.m,this.n);this.s=(function(Rt){for(var it=[];Rt-- >0;)it.push(0);return it})(Math.min(this.m+1,this.n)),this.U=(function(Rt){var it=o(function at(Ct){if(Ct.length==0)return 0;for(var yt=[],dt=0;dt0;)it.push(0);return it})(this.n),l=(function(Rt){for(var it=[];Rt-- >0;)it.push(0);return it})(this.m),u=!0,h=!0,f=Math.min(this.m-1,this.n),d=Math.max(0,Math.min(this.n-2,this.m)),p=0;p=0;R--)if(this.s[R]!==0){for(var P=R+1;P=0;Q--){if((function(Rt,it){return Rt&&it})(Q0;){var de=void 0,Se=void 0;for(de=_-2;de>=-1&&de!==-1;de--)if(Math.abs(s[de])<=xe+Z*(Math.abs(this.s[de])+Math.abs(this.s[de+1]))){s[de]=0;break}if(de===_-2)Se=4;else{var Me=void 0;for(Me=_-1;Me>=de&&Me!==de;Me--){var ke=(Me!==_?Math.abs(s[Me]):0)+(Me!==de+1?Math.abs(s[Me-1]):0);if(Math.abs(this.s[Me])<=xe+Z*ke){this.s[Me]=0;break}}Me===de?Se=3:Me===_-1?Se=1:(Se=2,de=Me)}switch(de++,Se){case 1:{var we=s[_-2];s[_-2]=0;for(var _e=_-2;_e>=de;_e--){var $e=n.hypot(this.s[_e],we),fe=this.s[_e]/$e,Ke=we/$e;if(this.s[_e]=$e,_e!==de&&(we=-Ke*s[_e-1],s[_e-1]=fe*s[_e-1]),h)for(var Te=0;Te=this.s[de+1]);){var ot=this.s[de];if(this.s[de]=this.s[de+1],this.s[de+1]=ot,h&&deMath.abs(a)?(s=a/i,s=Math.abs(i)*Math.sqrt(1+s*s)):a!=0?(s=i/a,s=Math.abs(a)*Math.sqrt(1+s*s)):s=0,s},t.exports=n}),(function(t,e,r){"use strict";var n=(function(){function s(l,u){for(var h=0;h2&&arguments[2]!==void 0?arguments[2]:1,f=arguments.length>3&&arguments[3]!==void 0?arguments[3]:-1,d=arguments.length>4&&arguments[4]!==void 0?arguments[4]:-1;i(this,s),this.sequence1=l,this.sequence2=u,this.match_score=h,this.mismatch_penalty=f,this.gap_penalty=d,this.iMax=l.length+1,this.jMax=u.length+1,this.grid=new Array(this.iMax);for(var p=0;p=0;l--){var u=this.listeners[l];u.event===a&&u.callback===s&&this.listeners.splice(l,1)}},i.emit=function(a,s){for(var l=0;l{"use strict";o((function(e,r){typeof R3=="object"&&typeof IW=="object"?IW.exports=r(MW()):typeof define=="function"&&define.amd?define(["layout-base"],r):typeof R3=="object"?R3.coseBase=r(MW()):e.coseBase=r(e.layoutBase)}),"webpackUniversalModuleDefinition")(R3,function(t){return(()=>{"use strict";var e={45:((a,s,l)=>{var u={};u.layoutBase=l(551),u.CoSEConstants=l(806),u.CoSEEdge=l(767),u.CoSEGraph=l(880),u.CoSEGraphManager=l(578),u.CoSELayout=l(765),u.CoSENode=l(991),u.ConstraintHandler=l(902),a.exports=u}),806:((a,s,l)=>{var u=l(551).FDLayoutConstants;function h(){}o(h,"CoSEConstants");for(var f in u)h[f]=u[f];h.DEFAULT_USE_MULTI_LEVEL_SCALING=!1,h.DEFAULT_RADIAL_SEPARATION=u.DEFAULT_EDGE_LENGTH,h.DEFAULT_COMPONENT_SEPERATION=60,h.TILE=!0,h.TILING_PADDING_VERTICAL=10,h.TILING_PADDING_HORIZONTAL=10,h.TRANSFORM_ON_CONSTRAINT_HANDLING=!0,h.ENFORCE_CONSTRAINTS=!0,h.APPLY_LAYOUT=!0,h.RELAX_MOVEMENT_ON_CONSTRAINTS=!0,h.TREE_REDUCTION_ON_INCREMENTAL=!0,h.PURE_INCREMENTAL=h.DEFAULT_INCREMENTAL,a.exports=h}),767:((a,s,l)=>{var u=l(551).FDLayoutEdge;function h(d,p,m){u.call(this,d,p,m)}o(h,"CoSEEdge"),h.prototype=Object.create(u.prototype);for(var f in u)h[f]=u[f];a.exports=h}),880:((a,s,l)=>{var u=l(551).LGraph;function h(d,p,m){u.call(this,d,p,m)}o(h,"CoSEGraph"),h.prototype=Object.create(u.prototype);for(var f in u)h[f]=u[f];a.exports=h}),578:((a,s,l)=>{var u=l(551).LGraphManager;function h(d){u.call(this,d)}o(h,"CoSEGraphManager"),h.prototype=Object.create(u.prototype);for(var f in u)h[f]=u[f];a.exports=h}),765:((a,s,l)=>{var u=l(551).FDLayout,h=l(578),f=l(880),d=l(991),p=l(767),m=l(806),g=l(902),y=l(551).FDLayoutConstants,v=l(551).LayoutConstants,x=l(551).Point,b=l(551).PointD,T=l(551).DimensionD,E=l(551).Layout,w=l(551).Integer,k=l(551).IGeometry,S=l(551).LGraph,A=l(551).Transform,L=l(551).LinkedList;function I(){u.call(this),this.toBeTiled={},this.constraints={}}o(I,"CoSELayout"),I.prototype=Object.create(u.prototype);for(var N in u)I[N]=u[N];I.prototype.newGraphManager=function(){var C=new h(this);return this.graphManager=C,C},I.prototype.newGraph=function(C){return new f(null,this.graphManager,C)},I.prototype.newNode=function(C){return new d(this.graphManager,C)},I.prototype.newEdge=function(C){return new p(null,null,C)},I.prototype.initParameters=function(){u.prototype.initParameters.call(this,arguments),this.isSubLayout||(m.DEFAULT_EDGE_LENGTH<10?this.idealEdgeLength=10:this.idealEdgeLength=m.DEFAULT_EDGE_LENGTH,this.useSmartIdealEdgeLengthCalculation=m.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION,this.gravityConstant=y.DEFAULT_GRAVITY_STRENGTH,this.compoundGravityConstant=y.DEFAULT_COMPOUND_GRAVITY_STRENGTH,this.gravityRangeFactor=y.DEFAULT_GRAVITY_RANGE_FACTOR,this.compoundGravityRangeFactor=y.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR,this.prunedNodesAll=[],this.growTreeIterations=0,this.afterGrowthIterations=0,this.isTreeGrowing=!1,this.isGrowthFinished=!1)},I.prototype.initSpringEmbedder=function(){u.prototype.initSpringEmbedder.call(this),this.coolingCycle=0,this.maxCoolingCycle=this.maxIterations/y.CONVERGENCE_CHECK_PERIOD,this.finalTemperature=.04,this.coolingAdjuster=1},I.prototype.layout=function(){var C=v.DEFAULT_CREATE_BENDS_AS_NEEDED;return C&&(this.createBendpoints(),this.graphManager.resetAllEdges()),this.level=0,this.classicLayout()},I.prototype.classicLayout=function(){if(this.nodesWithGravity=this.calculateNodesToApplyGravitationTo(),this.graphManager.setAllNodesToApplyGravitation(this.nodesWithGravity),this.calcNoOfChildrenForAllNodes(),this.graphManager.calcLowestCommonAncestors(),this.graphManager.calcInclusionTreeDepths(),this.graphManager.getRoot().calcEstimatedSize(),this.calcIdealEdgeLengths(),this.incremental){if(m.TREE_REDUCTION_ON_INCREMENTAL){this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var _=new Set(this.getAllNodes()),D=this.nodesWithGravity.filter(function(P){return _.has(P)});this.graphManager.setAllNodesToApplyGravitation(D)}}else{var C=this.getFlatForest();if(C.length>0)this.positionNodesRadially(C);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var _=new Set(this.getAllNodes()),D=this.nodesWithGravity.filter(function(M){return _.has(M)});this.graphManager.setAllNodesToApplyGravitation(D),this.positionNodesRandomly()}}return Object.keys(this.constraints).length>0&&(g.handleConstraints(this),this.initConstraintVariables()),this.initSpringEmbedder(),m.APPLY_LAYOUT&&this.runSpringEmbedder(),!0},I.prototype.tick=function(){if(this.totalIterations++,this.totalIterations===this.maxIterations&&!this.isTreeGrowing&&!this.isGrowthFinished)if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;if(this.totalIterations%y.CONVERGENCE_CHECK_PERIOD==0&&!this.isTreeGrowing&&!this.isGrowthFinished){if(this.isConverged())if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;this.coolingCycle++,this.layoutQuality==0?this.coolingAdjuster=this.coolingCycle:this.layoutQuality==1&&(this.coolingAdjuster=this.coolingCycle/3),this.coolingFactor=Math.max(this.initialCoolingFactor-Math.pow(this.coolingCycle,Math.log(100*(this.initialCoolingFactor-this.finalTemperature))/Math.log(this.maxCoolingCycle))/100*this.coolingAdjuster,this.finalTemperature),this.animationPeriod=Math.ceil(this.initialAnimationPeriod*Math.sqrt(this.coolingFactor))}if(this.isTreeGrowing){if(this.growTreeIterations%10==0)if(this.prunedNodesAll.length>0){this.graphManager.updateBounds(),this.updateGrid(),this.growTree(this.prunedNodesAll),this.graphManager.resetAllNodesToApplyGravitation();var C=new Set(this.getAllNodes()),_=this.nodesWithGravity.filter(function(R){return C.has(R)});this.graphManager.setAllNodesToApplyGravitation(_),this.graphManager.updateBounds(),this.updateGrid(),m.PURE_INCREMENTAL?this.coolingFactor=y.DEFAULT_COOLING_FACTOR_INCREMENTAL/2:this.coolingFactor=y.DEFAULT_COOLING_FACTOR_INCREMENTAL}else this.isTreeGrowing=!1,this.isGrowthFinished=!0;this.growTreeIterations++}if(this.isGrowthFinished){if(this.isConverged())return!0;this.afterGrowthIterations%10==0&&(this.graphManager.updateBounds(),this.updateGrid()),m.PURE_INCREMENTAL?this.coolingFactor=y.DEFAULT_COOLING_FACTOR_INCREMENTAL/2*((100-this.afterGrowthIterations)/100):this.coolingFactor=y.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var D=!this.isTreeGrowing&&!this.isGrowthFinished,M=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(D,M),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},I.prototype.getPositionsData=function(){for(var C=this.graphManager.getAllNodes(),_={},D=0;D0&&this.updateDisplacements();for(var D=0;D0&&(M.fixedNodeWeight=P)}}if(this.constraints.relativePlacementConstraint){var B=new Map,F=new Map;if(this.dummyToNodeForVerticalAlignment=new Map,this.dummyToNodeForHorizontalAlignment=new Map,this.fixedNodesOnHorizontal=new Set,this.fixedNodesOnVertical=new Set,this.fixedNodeSet.forEach(function(Y){C.fixedNodesOnHorizontal.add(Y),C.fixedNodesOnVertical.add(Y)}),this.constraints.alignmentConstraint){if(this.constraints.alignmentConstraint.vertical)for(var G=this.constraints.alignmentConstraint.vertical,D=0;D=2*Y.length/3;J--)le=Math.floor(Math.random()*(J+1)),ee=Y[J],Y[J]=Y[le],Y[le]=ee;return Y},this.nodesInRelativeHorizontal=[],this.nodesInRelativeVertical=[],this.nodeToRelativeConstraintMapHorizontal=new Map,this.nodeToRelativeConstraintMapVertical=new Map,this.nodeToTempPositionMapHorizontal=new Map,this.nodeToTempPositionMapVertical=new Map,this.constraints.relativePlacementConstraint.forEach(function(Y){if(Y.left){var le=B.has(Y.left)?B.get(Y.left):Y.left,ee=B.has(Y.right)?B.get(Y.right):Y.right;C.nodesInRelativeHorizontal.includes(le)||(C.nodesInRelativeHorizontal.push(le),C.nodeToRelativeConstraintMapHorizontal.set(le,[]),C.dummyToNodeForVerticalAlignment.has(le)?C.nodeToTempPositionMapHorizontal.set(le,C.idToNodeMap.get(C.dummyToNodeForVerticalAlignment.get(le)[0]).getCenterX()):C.nodeToTempPositionMapHorizontal.set(le,C.idToNodeMap.get(le).getCenterX())),C.nodesInRelativeHorizontal.includes(ee)||(C.nodesInRelativeHorizontal.push(ee),C.nodeToRelativeConstraintMapHorizontal.set(ee,[]),C.dummyToNodeForVerticalAlignment.has(ee)?C.nodeToTempPositionMapHorizontal.set(ee,C.idToNodeMap.get(C.dummyToNodeForVerticalAlignment.get(ee)[0]).getCenterX()):C.nodeToTempPositionMapHorizontal.set(ee,C.idToNodeMap.get(ee).getCenterX())),C.nodeToRelativeConstraintMapHorizontal.get(le).push({right:ee,gap:Y.gap}),C.nodeToRelativeConstraintMapHorizontal.get(ee).push({left:le,gap:Y.gap})}else{var J=F.has(Y.top)?F.get(Y.top):Y.top,te=F.has(Y.bottom)?F.get(Y.bottom):Y.bottom;C.nodesInRelativeVertical.includes(J)||(C.nodesInRelativeVertical.push(J),C.nodeToRelativeConstraintMapVertical.set(J,[]),C.dummyToNodeForHorizontalAlignment.has(J)?C.nodeToTempPositionMapVertical.set(J,C.idToNodeMap.get(C.dummyToNodeForHorizontalAlignment.get(J)[0]).getCenterY()):C.nodeToTempPositionMapVertical.set(J,C.idToNodeMap.get(J).getCenterY())),C.nodesInRelativeVertical.includes(te)||(C.nodesInRelativeVertical.push(te),C.nodeToRelativeConstraintMapVertical.set(te,[]),C.dummyToNodeForHorizontalAlignment.has(te)?C.nodeToTempPositionMapVertical.set(te,C.idToNodeMap.get(C.dummyToNodeForHorizontalAlignment.get(te)[0]).getCenterY()):C.nodeToTempPositionMapVertical.set(te,C.idToNodeMap.get(te).getCenterY())),C.nodeToRelativeConstraintMapVertical.get(J).push({bottom:te,gap:Y.gap}),C.nodeToRelativeConstraintMapVertical.get(te).push({top:J,gap:Y.gap})}});else{var V=new Map,X=new Map;this.constraints.relativePlacementConstraint.forEach(function(Y){if(Y.left){var le=B.has(Y.left)?B.get(Y.left):Y.left,ee=B.has(Y.right)?B.get(Y.right):Y.right;V.has(le)?V.get(le).push(ee):V.set(le,[ee]),V.has(ee)?V.get(ee).push(le):V.set(ee,[le])}else{var J=F.has(Y.top)?F.get(Y.top):Y.top,te=F.has(Y.bottom)?F.get(Y.bottom):Y.bottom;X.has(J)?X.get(J).push(te):X.set(J,[te]),X.has(te)?X.get(te).push(J):X.set(te,[J])}});var Q=o(function(le,ee){var J=[],te=[],Z=new L,xe=new Set,de=0;return le.forEach(function(Se,Me){if(!xe.has(Me)){J[de]=[],te[de]=!1;var ke=Me;for(Z.push(ke),xe.add(ke),J[de].push(ke);Z.length!=0;){ke=Z.shift(),ee.has(ke)&&(te[de]=!0);var we=le.get(ke);we.forEach(function(_e){xe.has(_e)||(Z.push(_e),xe.add(_e),J[de].push(_e))})}de++}}),{components:J,isFixed:te}},"constructComponents"),H=Q(V,C.fixedNodesOnHorizontal);this.componentsOnHorizontal=H.components,this.fixedComponentsOnHorizontal=H.isFixed;var ie=Q(X,C.fixedNodesOnVertical);this.componentsOnVertical=ie.components,this.fixedComponentsOnVertical=ie.isFixed}}},I.prototype.updateDisplacements=function(){var C=this;if(this.constraints.fixedNodeConstraint&&this.constraints.fixedNodeConstraint.forEach(function(ie){var Y=C.idToNodeMap.get(ie.nodeId);Y.displacementX=0,Y.displacementY=0}),this.constraints.alignmentConstraint){if(this.constraints.alignmentConstraint.vertical)for(var _=this.constraints.alignmentConstraint.vertical,D=0;D<_.length;D++){for(var M=0,R=0;R<_[D].length;R++){if(this.fixedNodeSet.has(_[D][R])){M=0;break}M+=this.idToNodeMap.get(_[D][R]).displacementX}for(var P=M/_[D].length,R=0;R<_[D].length;R++)this.idToNodeMap.get(_[D][R]).displacementX=P}if(this.constraints.alignmentConstraint.horizontal)for(var B=this.constraints.alignmentConstraint.horizontal,D=0;D1){var F;for(F=0;FM&&(M=Math.floor(B.y)),P=Math.floor(B.x+m.DEFAULT_COMPONENT_SEPERATION)}this.transform(new b(v.WORLD_CENTER_X-B.x/2,v.WORLD_CENTER_Y-B.y/2))},I.radialLayout=function(C,_,D){var M=Math.max(this.maxDiagonalInTree(C),m.DEFAULT_RADIAL_SEPARATION);I.branchRadialLayout(_,null,0,359,0,M);var R=S.calculateBounds(C),P=new A;P.setDeviceOrgX(R.getMinX()),P.setDeviceOrgY(R.getMinY()),P.setWorldOrgX(D.x),P.setWorldOrgY(D.y);for(var B=0;B1;){var J=ee[0];ee.splice(0,1);var te=Q.indexOf(J);te>=0&&Q.splice(te,1),Y--,H--}_!=null?le=(Q.indexOf(ee[0])+1)%Y:le=0;for(var Z=Math.abs(M-D)/H,xe=le;ie!=H;xe=++xe%Y){var de=Q[xe].getOtherEnd(C);if(de!=_){var Se=(D+ie*Z)%360,Me=(Se+Z)%360;I.branchRadialLayout(de,C,Se,Me,R+P,P),ie++}}},I.maxDiagonalInTree=function(C){for(var _=w.MIN_VALUE,D=0;D_&&(_=R)}return _},I.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},I.prototype.groupZeroDegreeMembers=function(){var C=this,_={};this.memberGroups={},this.idToDummyNode={};for(var D=[],M=this.graphManager.getAllNodes(),R=0;R"u"&&(_[F]=[]),_[F]=_[F].concat(P)}Object.keys(_).forEach(function(G){if(_[G].length>1){var $="DummyCompound_"+G;C.memberGroups[$]=_[G];var V=_[G][0].getParent(),X=new d(C.graphManager);X.id=$,X.paddingLeft=V.paddingLeft||0,X.paddingRight=V.paddingRight||0,X.paddingBottom=V.paddingBottom||0,X.paddingTop=V.paddingTop||0,C.idToDummyNode[$]=X;var Q=C.getGraphManager().add(C.newGraph(),X),H=V.getChild();H.add(X);for(var ie=0;ie<_[G].length;ie++){var Y=_[G][ie];H.remove(Y),Q.add(Y)}}})},I.prototype.clearCompounds=function(){var C={},_={};this.performDFSOnCompounds();for(var D=0;DR?(M.rect.x-=(M.labelWidth-R)/2,M.setWidth(M.labelWidth),M.labelMarginLeft=(M.labelWidth-R)/2):M.labelPosHorizontal=="right"&&M.setWidth(R+M.labelWidth)),M.labelHeight&&(M.labelPosVertical=="top"?(M.rect.y-=M.labelHeight,M.setHeight(P+M.labelHeight),M.labelMarginTop=M.labelHeight):M.labelPosVertical=="center"&&M.labelHeight>P?(M.rect.y-=(M.labelHeight-P)/2,M.setHeight(M.labelHeight),M.labelMarginTop=(M.labelHeight-P)/2):M.labelPosVertical=="bottom"&&M.setHeight(P+M.labelHeight))}})},I.prototype.repopulateCompounds=function(){for(var C=this.compoundOrder.length-1;C>=0;C--){var _=this.compoundOrder[C],D=_.id,M=_.paddingLeft,R=_.paddingTop,P=_.labelMarginLeft,B=_.labelMarginTop;this.adjustLocations(this.tiledMemberPack[D],_.rect.x,_.rect.y,M,R,P,B)}},I.prototype.repopulateZeroDegreeMembers=function(){var C=this,_=this.tiledZeroDegreePack;Object.keys(_).forEach(function(D){var M=C.idToDummyNode[D],R=M.paddingLeft,P=M.paddingTop,B=M.labelMarginLeft,F=M.labelMarginTop;C.adjustLocations(_[D],M.rect.x,M.rect.y,R,P,B,F)})},I.prototype.getToBeTiled=function(C){var _=C.id;if(this.toBeTiled[_]!=null)return this.toBeTiled[_];var D=C.getChild();if(D==null)return this.toBeTiled[_]=!1,!1;for(var M=D.getNodes(),R=0;R0)return this.toBeTiled[_]=!1,!1;if(P.getChild()==null){this.toBeTiled[P.id]=!1;continue}if(!this.getToBeTiled(P))return this.toBeTiled[_]=!1,!1}return this.toBeTiled[_]=!0,!0},I.prototype.getNodeDegree=function(C){for(var _=C.id,D=C.getEdges(),M=0,R=0;RV&&(V=Q.rect.height)}D+=V+C.verticalPadding}},I.prototype.tileCompoundMembers=function(C,_){var D=this;this.tiledMemberPack=[],Object.keys(C).forEach(function(M){var R=_[M];if(D.tiledMemberPack[M]=D.tileNodes(C[M],R.paddingLeft+R.paddingRight),R.rect.width=D.tiledMemberPack[M].width,R.rect.height=D.tiledMemberPack[M].height,R.setCenter(D.tiledMemberPack[M].centerX,D.tiledMemberPack[M].centerY),R.labelMarginLeft=0,R.labelMarginTop=0,m.NODE_DIMENSIONS_INCLUDE_LABELS){var P=R.rect.width,B=R.rect.height;R.labelWidth&&(R.labelPosHorizontal=="left"?(R.rect.x-=R.labelWidth,R.setWidth(P+R.labelWidth),R.labelMarginLeft=R.labelWidth):R.labelPosHorizontal=="center"&&R.labelWidth>P?(R.rect.x-=(R.labelWidth-P)/2,R.setWidth(R.labelWidth),R.labelMarginLeft=(R.labelWidth-P)/2):R.labelPosHorizontal=="right"&&R.setWidth(P+R.labelWidth)),R.labelHeight&&(R.labelPosVertical=="top"?(R.rect.y-=R.labelHeight,R.setHeight(B+R.labelHeight),R.labelMarginTop=R.labelHeight):R.labelPosVertical=="center"&&R.labelHeight>B?(R.rect.y-=(R.labelHeight-B)/2,R.setHeight(R.labelHeight),R.labelMarginTop=(R.labelHeight-B)/2):R.labelPosVertical=="bottom"&&R.setHeight(B+R.labelHeight))}})},I.prototype.tileNodes=function(C,_){var D=this.tileNodesByFavoringDim(C,_,!0),M=this.tileNodesByFavoringDim(C,_,!1),R=this.getOrgRatio(D),P=this.getOrgRatio(M),B;return PF&&(F=ie.getWidth())});var G=P/R,$=B/R,V=Math.pow(D-M,2)+4*(G+M)*($+D)*R,X=(M-D+Math.sqrt(V))/(2*(G+M)),Q;_?(Q=Math.ceil(X),Q==X&&Q++):Q=Math.floor(X);var H=Q*(G+M)-M;return F>H&&(H=F),H+=M*2,H},I.prototype.tileNodesByFavoringDim=function(C,_,D){var M=m.TILING_PADDING_VERTICAL,R=m.TILING_PADDING_HORIZONTAL,P=m.TILING_COMPARE_BY,B={rows:[],rowWidth:[],rowHeight:[],width:0,height:_,verticalPadding:M,horizontalPadding:R,centerX:0,centerY:0};P&&(B.idealRowWidth=this.calcIdealRowWidth(C,D));var F=o(function(Y){return Y.rect.width*Y.rect.height},"getNodeArea"),G=o(function(Y,le){return F(le)-F(Y)},"areaCompareFcn");C.sort(function(ie,Y){var le=G;return B.idealRowWidth?(le=P,le(ie.id,Y.id)):le(ie,Y)});for(var $=0,V=0,X=0;X0&&(B+=C.horizontalPadding),C.rowWidth[D]=B,C.width0&&(F+=C.verticalPadding);var G=0;F>C.rowHeight[D]&&(G=C.rowHeight[D],C.rowHeight[D]=F,G=C.rowHeight[D]-G),C.height+=G,C.rows[D].push(_)},I.prototype.getShortestRowIndex=function(C){for(var _=-1,D=Number.MAX_VALUE,M=0;MD&&(_=M,D=C.rowWidth[M]);return _},I.prototype.canAddHorizontal=function(C,_,D){if(C.idealRowWidth){var M=C.rows.length-1,R=C.rowWidth[M];return R+_+C.horizontalPadding<=C.idealRowWidth}var P=this.getShortestRowIndex(C);if(P<0)return!0;var B=C.rowWidth[P];if(B+C.horizontalPadding+_<=C.width)return!0;var F=0;C.rowHeight[P]0&&(F=D+C.verticalPadding-C.rowHeight[P]);var G;C.width-B>=_+C.horizontalPadding?G=(C.height+F)/(B+_+C.horizontalPadding):G=(C.height+F)/C.width,F=D+C.verticalPadding;var $;return C.width<_?$=(C.height+F)/_:$=(C.height+F)/C.width,$<1&&($=1/$),G<1&&(G=1/G),G<$},I.prototype.shiftToLastRow=function(C){var _=this.getLongestRowIndex(C),D=C.rowWidth.length-1,M=C.rows[_],R=M[M.length-1],P=R.width+C.horizontalPadding;if(C.width-C.rowWidth[D]>P&&_!=D){M.splice(-1,1),C.rows[D].push(R),C.rowWidth[_]=C.rowWidth[_]-P,C.rowWidth[D]=C.rowWidth[D]+P,C.width=C.rowWidth[instance.getLongestRowIndex(C)];for(var B=Number.MIN_VALUE,F=0;FB&&(B=M[F].height);_>0&&(B+=C.verticalPadding);var G=C.rowHeight[_]+C.rowHeight[D];C.rowHeight[_]=B,C.rowHeight[D]0)for(var H=R;H<=P;H++)Q[0]+=this.grid[H][B-1].length+this.grid[H][B].length-1;if(P0)for(var H=B;H<=F;H++)Q[3]+=this.grid[R-1][H].length+this.grid[R][H].length-1;for(var ie=w.MAX_VALUE,Y,le,ee=0;ee{var u=l(551).FDLayoutNode,h=l(551).IMath;function f(p,m,g,y){u.call(this,p,m,g,y)}o(f,"CoSENode"),f.prototype=Object.create(u.prototype);for(var d in u)f[d]=u[d];f.prototype.calculateDisplacement=function(){var p=this.graphManager.getLayout();this.getChild()!=null&&this.fixedNodeWeight?(this.displacementX+=p.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.fixedNodeWeight,this.displacementY+=p.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.fixedNodeWeight):(this.displacementX+=p.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.noOfChildren,this.displacementY+=p.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.noOfChildren),Math.abs(this.displacementX)>p.coolingFactor*p.maxNodeDisplacement&&(this.displacementX=p.coolingFactor*p.maxNodeDisplacement*h.sign(this.displacementX)),Math.abs(this.displacementY)>p.coolingFactor*p.maxNodeDisplacement&&(this.displacementY=p.coolingFactor*p.maxNodeDisplacement*h.sign(this.displacementY)),this.child&&this.child.getNodes().length>0&&this.propogateDisplacementToChildren(this.displacementX,this.displacementY)},f.prototype.propogateDisplacementToChildren=function(p,m){for(var g=this.getChild().getNodes(),y,v=0;v{function u(g){if(Array.isArray(g)){for(var y=0,v=Array(g.length);y0){var et=0;oe.forEach(function(ot){ce=="horizontal"?(me.set(ot,x.has(ot)?b[x.get(ot)]:ne.get(ot)),et+=me.get(ot)):(me.set(ot,x.has(ot)?T[x.get(ot)]:ne.get(ot)),et+=me.get(ot))}),et=et/oe.length,Xe.forEach(function(ot){z.has(ot)||me.set(ot,et)})}else{var he=0;Xe.forEach(function(ot){ce=="horizontal"?he+=x.has(ot)?b[x.get(ot)]:ne.get(ot):he+=x.has(ot)?T[x.get(ot)]:ne.get(ot)}),he=he/Xe.length,Xe.forEach(function(ot){me.set(ot,he)})}});for(var Ie=o(function(){var oe=ge.shift(),et=U.get(oe);et.forEach(function(he){if(me.get(he.id)ot&&(ot=yt),dtDt&&(Dt=dt)}}catch(_n){wt=!0,Rt=_n}finally{try{!It&&it.return&&it.return()}finally{if(wt)throw Rt}}var Ht=(et+ot)/2-(he+Dt)/2,cr=!0,Kt=!1,kr=void 0;try{for(var ur=Xe[Symbol.iterator](),tr;!(cr=(tr=ur.next()).done);cr=!0){var hr=tr.value;me.set(hr,me.get(hr)+Ht)}}catch(_n){Kt=!0,kr=_n}finally{try{!cr&&ur.return&&ur.return()}finally{if(Kt)throw kr}}})}return me},"findAppropriatePositionForRelativePlacement"),N=o(function(U){var ce=0,z=0,ne=0,se=0;if(U.forEach(function(Re){Re.left?b[x.get(Re.left)]-b[x.get(Re.right)]>=0?ce++:z++:T[x.get(Re.top)]-T[x.get(Re.bottom)]>=0?ne++:se++}),ce>z&&ne>se)for(var be=0;bez)for(var pe=0;pese)for(var me=0;me1)y.fixedNodeConstraint.forEach(function(ae,U){M[U]=[ae.position.x,ae.position.y],R[U]=[b[x.get(ae.nodeId)],T[x.get(ae.nodeId)]]}),P=!0;else if(y.alignmentConstraint)(function(){var ae=0;if(y.alignmentConstraint.vertical){for(var U=y.alignmentConstraint.vertical,ce=o(function(me){var Re=new Set;U[me].forEach(function(qe){Re.add(qe)});var ge=new Set([].concat(u(Re)).filter(function(qe){return F.has(qe)})),Ie=void 0;ge.size>0?Ie=b[x.get(ge.values().next().value)]:Ie=L(Re).x,U[me].forEach(function(qe){M[ae]=[Ie,T[x.get(qe)]],R[ae]=[b[x.get(qe)],T[x.get(qe)]],ae++})},"_loop2"),z=0;z0?Ie=b[x.get(ge.values().next().value)]:Ie=L(Re).y,ne[me].forEach(function(qe){M[ae]=[b[x.get(qe)],Ie],R[ae]=[b[x.get(qe)],T[x.get(qe)]],ae++})},"_loop3"),be=0;beX&&(X=V[H].length,Q=H);if(X<$.size/2)N(y.relativePlacementConstraint),P=!1,B=!1;else{var ie=new Map,Y=new Map,le=[];V[Q].forEach(function(ae){G.get(ae).forEach(function(U){U.direction=="horizontal"?(ie.has(ae)?ie.get(ae).push(U):ie.set(ae,[U]),ie.has(U.id)||ie.set(U.id,[]),le.push({left:ae,right:U.id})):(Y.has(ae)?Y.get(ae).push(U):Y.set(ae,[U]),Y.has(U.id)||Y.set(U.id,[]),le.push({top:ae,bottom:U.id}))})}),N(le),B=!1;var ee=I(ie,"horizontal"),J=I(Y,"vertical");V[Q].forEach(function(ae,U){R[U]=[b[x.get(ae)],T[x.get(ae)]],M[U]=[],ee.has(ae)?M[U][0]=ee.get(ae):M[U][0]=b[x.get(ae)],J.has(ae)?M[U][1]=J.get(ae):M[U][1]=T[x.get(ae)]}),P=!0}}if(P){for(var te=void 0,Z=d.transpose(M),xe=d.transpose(R),de=0;de0){var fe={x:0,y:0};y.fixedNodeConstraint.forEach(function(ae,U){var ce={x:b[x.get(ae.nodeId)],y:T[x.get(ae.nodeId)]},z=ae.position,ne=A(z,ce);fe.x+=ne.x,fe.y+=ne.y}),fe.x/=y.fixedNodeConstraint.length,fe.y/=y.fixedNodeConstraint.length,b.forEach(function(ae,U){b[U]+=fe.x}),T.forEach(function(ae,U){T[U]+=fe.y}),y.fixedNodeConstraint.forEach(function(ae){b[x.get(ae.nodeId)]=ae.position.x,T[x.get(ae.nodeId)]=ae.position.y})}if(y.alignmentConstraint){if(y.alignmentConstraint.vertical)for(var Ke=y.alignmentConstraint.vertical,Te=o(function(U){var ce=new Set;Ke[U].forEach(function(se){ce.add(se)});var z=new Set([].concat(u(ce)).filter(function(se){return F.has(se)})),ne=void 0;z.size>0?ne=b[x.get(z.values().next().value)]:ne=L(ce).x,ce.forEach(function(se){F.has(se)||(b[x.get(se)]=ne)})},"_loop4"),Be=0;Be0?ne=T[x.get(z.values().next().value)]:ne=L(ce).y,ce.forEach(function(se){F.has(se)||(T[x.get(se)]=ne)})},"_loop5"),Ne=0;Ne{a.exports=t})},r={};function n(a){var s=r[a];if(s!==void 0)return s.exports;var l=r[a]={exports:{}};return e[a](l,l.exports,n),l.exports}o(n,"__webpack_require__");var i=n(45);return i})()})});var RCe=nr((L3,PW)=>{"use strict";o((function(e,r){typeof L3=="object"&&typeof PW=="object"?PW.exports=r(OW()):typeof define=="function"&&define.amd?define(["cose-base"],r):typeof L3=="object"?L3.cytoscapeFcose=r(OW()):e.cytoscapeFcose=r(e.coseBase)}),"webpackUniversalModuleDefinition")(L3,function(t){return(()=>{"use strict";var e={658:(a=>{a.exports=Object.assign!=null?Object.assign.bind(Object):function(s){for(var l=arguments.length,u=Array(l>1?l-1:0),h=1;h{var u=(function(){function d(p,m){var g=[],y=!0,v=!1,x=void 0;try{for(var b=p[Symbol.iterator](),T;!(y=(T=b.next()).done)&&(g.push(T.value),!(m&&g.length===m));y=!0);}catch(E){v=!0,x=E}finally{try{!y&&b.return&&b.return()}finally{if(v)throw x}}return g}return o(d,"sliceIterator"),function(p,m){if(Array.isArray(p))return p;if(Symbol.iterator in Object(p))return d(p,m);throw new TypeError("Invalid attempt to destructure non-iterable instance")}})(),h=l(140).layoutBase.LinkedList,f={};f.getTopMostNodes=function(d){for(var p={},m=0;m0&&P.merge($)});for(var B=0;B1){T=x[0],E=T.connectedEdges().length,x.forEach(function(R){R.connectedEdges().length0&&g.set("dummy"+(g.size+1),S),A},f.relocateComponent=function(d,p,m){if(!m.fixedNodeConstraint){var g=Number.POSITIVE_INFINITY,y=Number.NEGATIVE_INFINITY,v=Number.POSITIVE_INFINITY,x=Number.NEGATIVE_INFINITY;if(m.quality=="draft"){var b=!0,T=!1,E=void 0;try{for(var w=p.nodeIndexes[Symbol.iterator](),k;!(b=(k=w.next()).done);b=!0){var S=k.value,A=u(S,2),L=A[0],I=A[1],N=m.cy.getElementById(L);if(N){var C=N.boundingBox(),_=p.xCoords[I]-C.w/2,D=p.xCoords[I]+C.w/2,M=p.yCoords[I]-C.h/2,R=p.yCoords[I]+C.h/2;_y&&(y=D),Mx&&(x=R)}}}catch($){T=!0,E=$}finally{try{!b&&w.return&&w.return()}finally{if(T)throw E}}var P=d.x-(y+g)/2,B=d.y-(x+v)/2;p.xCoords=p.xCoords.map(function($){return $+P}),p.yCoords=p.yCoords.map(function($){return $+B})}else{Object.keys(p).forEach(function($){var V=p[$],X=V.getRect().x,Q=V.getRect().x+V.getRect().width,H=V.getRect().y,ie=V.getRect().y+V.getRect().height;Xy&&(y=Q),Hx&&(x=ie)});var F=d.x-(y+g)/2,G=d.y-(x+v)/2;Object.keys(p).forEach(function($){var V=p[$];V.setCenter(V.getCenterX()+F,V.getCenterY()+G)})}}},f.calcBoundingBox=function(d,p,m,g){for(var y=Number.MAX_SAFE_INTEGER,v=Number.MIN_SAFE_INTEGER,x=Number.MAX_SAFE_INTEGER,b=Number.MIN_SAFE_INTEGER,T=void 0,E=void 0,w=void 0,k=void 0,S=d.descendants().not(":parent"),A=S.length,L=0;LT&&(y=T),vw&&(x=w),b{var u=l(548),h=l(140).CoSELayout,f=l(140).CoSENode,d=l(140).layoutBase.PointD,p=l(140).layoutBase.DimensionD,m=l(140).layoutBase.LayoutConstants,g=l(140).layoutBase.FDLayoutConstants,y=l(140).CoSEConstants,v=o(function(b,T){var E=b.cy,w=b.eles,k=w.nodes(),S=w.edges(),A=void 0,L=void 0,I=void 0,N={};b.randomize&&(A=T.nodeIndexes,L=T.xCoords,I=T.yCoords);var C=o(function($){return typeof $=="function"},"isFn"),_=o(function($,V){return C($)?$(V):$},"optFn"),D=u.calcParentsWithoutChildren(E,w),M=o(function G($,V,X,Q){for(var H=V.length,ie=0;ie0){var Z=void 0;Z=X.getGraphManager().add(X.newGraph(),ee),G(Z,le,X,Q)}}},"processChildrenList"),R=o(function($,V,X){for(var Q=0,H=0,ie=0;ie0?y.DEFAULT_EDGE_LENGTH=g.DEFAULT_EDGE_LENGTH=Q/H:C(b.idealEdgeLength)?y.DEFAULT_EDGE_LENGTH=g.DEFAULT_EDGE_LENGTH=50:y.DEFAULT_EDGE_LENGTH=g.DEFAULT_EDGE_LENGTH=b.idealEdgeLength,y.MIN_REPULSION_DIST=g.MIN_REPULSION_DIST=g.DEFAULT_EDGE_LENGTH/10,y.DEFAULT_RADIAL_SEPARATION=g.DEFAULT_EDGE_LENGTH)},"processEdges"),P=o(function($,V){V.fixedNodeConstraint&&($.constraints.fixedNodeConstraint=V.fixedNodeConstraint),V.alignmentConstraint&&($.constraints.alignmentConstraint=V.alignmentConstraint),V.relativePlacementConstraint&&($.constraints.relativePlacementConstraint=V.relativePlacementConstraint)},"processConstraints");b.nestingFactor!=null&&(y.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=g.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=b.nestingFactor),b.gravity!=null&&(y.DEFAULT_GRAVITY_STRENGTH=g.DEFAULT_GRAVITY_STRENGTH=b.gravity),b.numIter!=null&&(y.MAX_ITERATIONS=g.MAX_ITERATIONS=b.numIter),b.gravityRange!=null&&(y.DEFAULT_GRAVITY_RANGE_FACTOR=g.DEFAULT_GRAVITY_RANGE_FACTOR=b.gravityRange),b.gravityCompound!=null&&(y.DEFAULT_COMPOUND_GRAVITY_STRENGTH=g.DEFAULT_COMPOUND_GRAVITY_STRENGTH=b.gravityCompound),b.gravityRangeCompound!=null&&(y.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=g.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=b.gravityRangeCompound),b.initialEnergyOnIncremental!=null&&(y.DEFAULT_COOLING_FACTOR_INCREMENTAL=g.DEFAULT_COOLING_FACTOR_INCREMENTAL=b.initialEnergyOnIncremental),b.tilingCompareBy!=null&&(y.TILING_COMPARE_BY=b.tilingCompareBy),b.quality=="proof"?m.QUALITY=2:m.QUALITY=0,y.NODE_DIMENSIONS_INCLUDE_LABELS=g.NODE_DIMENSIONS_INCLUDE_LABELS=m.NODE_DIMENSIONS_INCLUDE_LABELS=b.nodeDimensionsIncludeLabels,y.DEFAULT_INCREMENTAL=g.DEFAULT_INCREMENTAL=m.DEFAULT_INCREMENTAL=!b.randomize,y.ANIMATE=g.ANIMATE=m.ANIMATE=b.animate,y.TILE=b.tile,y.TILING_PADDING_VERTICAL=typeof b.tilingPaddingVertical=="function"?b.tilingPaddingVertical.call():b.tilingPaddingVertical,y.TILING_PADDING_HORIZONTAL=typeof b.tilingPaddingHorizontal=="function"?b.tilingPaddingHorizontal.call():b.tilingPaddingHorizontal,y.DEFAULT_INCREMENTAL=g.DEFAULT_INCREMENTAL=m.DEFAULT_INCREMENTAL=!0,y.PURE_INCREMENTAL=!b.randomize,m.DEFAULT_UNIFORM_LEAF_NODE_SIZES=b.uniformNodeDimensions,b.step=="transformed"&&(y.TRANSFORM_ON_CONSTRAINT_HANDLING=!0,y.ENFORCE_CONSTRAINTS=!1,y.APPLY_LAYOUT=!1),b.step=="enforced"&&(y.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,y.ENFORCE_CONSTRAINTS=!0,y.APPLY_LAYOUT=!1),b.step=="cose"&&(y.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,y.ENFORCE_CONSTRAINTS=!1,y.APPLY_LAYOUT=!0),b.step=="all"&&(b.randomize?y.TRANSFORM_ON_CONSTRAINT_HANDLING=!0:y.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,y.ENFORCE_CONSTRAINTS=!0,y.APPLY_LAYOUT=!0),b.fixedNodeConstraint||b.alignmentConstraint||b.relativePlacementConstraint?y.TREE_REDUCTION_ON_INCREMENTAL=!1:y.TREE_REDUCTION_ON_INCREMENTAL=!0;var B=new h,F=B.newGraphManager();return M(F.addRoot(),u.getTopMostNodes(k),B,b),R(B,F,S),P(B,b),B.runLayout(),N},"coseLayout");a.exports={coseLayout:v}}),212:((a,s,l)=>{var u=(function(){function b(T,E){for(var w=0;w0)if(R){var F=d.getTopMostNodes(w.eles.nodes());if(C=d.connectComponents(k,w.eles,F),C.forEach(function(ke){var we=ke.boundingBox();_.push({x:we.x1+we.w/2,y:we.y1+we.h/2})}),w.randomize&&C.forEach(function(ke){w.eles=ke,A.push(m(w))}),w.quality=="default"||w.quality=="proof"){var G=k.collection();if(w.tile){var $=new Map,V=[],X=[],Q=0,H={nodeIndexes:$,xCoords:V,yCoords:X},ie=[];if(C.forEach(function(ke,we){ke.edges().length==0&&(ke.nodes().forEach(function(_e,$e){G.merge(ke.nodes()[$e]),_e.isParent()||(H.nodeIndexes.set(ke.nodes()[$e].id(),Q++),H.xCoords.push(ke.nodes()[0].position().x),H.yCoords.push(ke.nodes()[0].position().y))}),ie.push(we))}),G.length>1){var Y=G.boundingBox();_.push({x:Y.x1+Y.w/2,y:Y.y1+Y.h/2}),C.push(G),A.push(H);for(var le=ie.length-1;le>=0;le--)C.splice(ie[le],1),A.splice(ie[le],1),_.splice(ie[le],1)}}C.forEach(function(ke,we){w.eles=ke,N.push(y(w,A[we])),d.relocateComponent(_[we],N[we],w)})}else C.forEach(function(ke,we){d.relocateComponent(_[we],A[we],w)});var ee=new Set;if(C.length>1){var J=[],te=S.filter(function(ke){return ke.css("display")=="none"});C.forEach(function(ke,we){var _e=void 0;if(w.quality=="draft"&&(_e=A[we].nodeIndexes),ke.nodes().not(te).length>0){var $e={};$e.edges=[],$e.nodes=[];var fe=void 0;ke.nodes().not(te).forEach(function(Ke){if(w.quality=="draft")if(!Ke.isParent())fe=_e.get(Ke.id()),$e.nodes.push({x:A[we].xCoords[fe]-Ke.boundingbox().w/2,y:A[we].yCoords[fe]-Ke.boundingbox().h/2,width:Ke.boundingbox().w,height:Ke.boundingbox().h});else{var Te=d.calcBoundingBox(Ke,A[we].xCoords,A[we].yCoords,_e);$e.nodes.push({x:Te.topLeftX,y:Te.topLeftY,width:Te.width,height:Te.height})}else N[we][Ke.id()]&&$e.nodes.push({x:N[we][Ke.id()].getLeft(),y:N[we][Ke.id()].getTop(),width:N[we][Ke.id()].getWidth(),height:N[we][Ke.id()].getHeight()})}),ke.edges().forEach(function(Ke){var Te=Ke.source(),Be=Ke.target();if(Te.css("display")!="none"&&Be.css("display")!="none")if(w.quality=="draft"){var Ue=_e.get(Te.id()),Ge=_e.get(Be.id()),Ne=[],We=[];if(Te.isParent()){var j=d.calcBoundingBox(Te,A[we].xCoords,A[we].yCoords,_e);Ne.push(j.topLeftX+j.width/2),Ne.push(j.topLeftY+j.height/2)}else Ne.push(A[we].xCoords[Ue]),Ne.push(A[we].yCoords[Ue]);if(Be.isParent()){var ae=d.calcBoundingBox(Be,A[we].xCoords,A[we].yCoords,_e);We.push(ae.topLeftX+ae.width/2),We.push(ae.topLeftY+ae.height/2)}else We.push(A[we].xCoords[Ge]),We.push(A[we].yCoords[Ge]);$e.edges.push({startX:Ne[0],startY:Ne[1],endX:We[0],endY:We[1]})}else N[we][Te.id()]&&N[we][Be.id()]&&$e.edges.push({startX:N[we][Te.id()].getCenterX(),startY:N[we][Te.id()].getCenterY(),endX:N[we][Be.id()].getCenterX(),endY:N[we][Be.id()].getCenterY()})}),$e.nodes.length>0&&(J.push($e),ee.add(we))}});var Z=M.packComponents(J,w.randomize).shifts;if(w.quality=="draft")A.forEach(function(ke,we){var _e=ke.xCoords.map(function(fe){return fe+Z[we].dx}),$e=ke.yCoords.map(function(fe){return fe+Z[we].dy});ke.xCoords=_e,ke.yCoords=$e});else{var xe=0;ee.forEach(function(ke){Object.keys(N[ke]).forEach(function(we){var _e=N[ke][we];_e.setCenter(_e.getCenterX()+Z[xe].dx,_e.getCenterY()+Z[xe].dy)}),xe++})}}}else{var P=w.eles.boundingBox();if(_.push({x:P.x1+P.w/2,y:P.y1+P.h/2}),w.randomize){var B=m(w);A.push(B)}w.quality=="default"||w.quality=="proof"?(N.push(y(w,A[0])),d.relocateComponent(_[0],N[0],w)):d.relocateComponent(_[0],A[0],w)}var de=o(function(we,_e){if(w.quality=="default"||w.quality=="proof"){typeof we=="number"&&(we=_e);var $e=void 0,fe=void 0,Ke=we.data("id");return N.forEach(function(Be){Ke in Be&&($e={x:Be[Ke].getRect().getCenterX(),y:Be[Ke].getRect().getCenterY()},fe=Be[Ke])}),w.nodeDimensionsIncludeLabels&&(fe.labelWidth&&(fe.labelPosHorizontal=="left"?$e.x+=fe.labelWidth/2:fe.labelPosHorizontal=="right"&&($e.x-=fe.labelWidth/2)),fe.labelHeight&&(fe.labelPosVertical=="top"?$e.y+=fe.labelHeight/2:fe.labelPosVertical=="bottom"&&($e.y-=fe.labelHeight/2))),$e==null&&($e={x:we.position("x"),y:we.position("y")}),{x:$e.x,y:$e.y}}else{var Te=void 0;return A.forEach(function(Be){var Ue=Be.nodeIndexes.get(we.id());Ue!=null&&(Te={x:Be.xCoords[Ue],y:Be.yCoords[Ue]})}),Te==null&&(Te={x:we.position("x"),y:we.position("y")}),{x:Te.x,y:Te.y}}},"getPositions");if(w.quality=="default"||w.quality=="proof"||w.randomize){var Se=d.calcParentsWithoutChildren(k,S),Me=S.filter(function(ke){return ke.css("display")=="none"});w.eles=S.not(Me),S.nodes().not(":parent").not(Me).layoutPositions(E,w,de),Se.length>0&&Se.forEach(function(ke){ke.position(de(ke))})}else console.log("If randomize option is set to false, then quality option must be 'default' or 'proof'.")},"run")}]),b})();a.exports=x}),657:((a,s,l)=>{var u=l(548),h=l(140).layoutBase.Matrix,f=l(140).layoutBase.SVD,d=o(function(m){var g=m.cy,y=m.eles,v=y.nodes(),x=y.nodes(":parent"),b=new Map,T=new Map,E=new Map,w=[],k=[],S=[],A=[],L=[],I=[],N=[],C=[],_=void 0,D=void 0,M=1e8,R=1e-9,P=m.piTol,B=m.samplingType,F=m.nodeSeparation,G=void 0,$=o(function(){for(var ce=0,z=0,ne=!1;z=be;){me=se[be++];for(var Xe=w[me],oe=0;oeIe&&(Ie=L[he],qe=he)}return qe},"BFS"),X=o(function(ce){var z=void 0;if(ce){z=Math.floor(Math.random()*D),_=z;for(var se=0;se=1)break;Ie=ge}for(var Xe=0;Xe=1)break;Ie=ge}for(var et=0;et0&&(z.isParent()?w[ce].push(E.get(z.id())):w[ce].push(z.id()))})});var Se=o(function(ce){var z=T.get(ce),ne=void 0;b.get(ce).forEach(function(se){g.getElementById(se).isParent()?ne=E.get(se):ne=se,w[z].push(ne),w[T.get(ne)].push(ce)})},"_loop"),Me=!0,ke=!1,we=void 0;try{for(var _e=b.keys()[Symbol.iterator](),$e;!(Me=($e=_e.next()).done);Me=!0){var fe=$e.value;Se(fe)}}catch(U){ke=!0,we=U}finally{try{!Me&&_e.return&&_e.return()}finally{if(ke)throw we}}D=T.size;var Ke=void 0;if(D>2){G=D{var u=l(212),h=o(function(d){d&&d("layout","fcose",u)},"register");typeof cytoscape<"u"&&h(cytoscape),a.exports=h}),140:(a=>{a.exports=t})},r={};function n(a){var s=r[a];if(s!==void 0)return s.exports;var l=r[a]={exports:{}};return e[a](l,l.exports,n),l.exports}o(n,"__webpack_require__");var i=n(579);return i})()})});var Qv,rg,BW=O(()=>{"use strict";Xc();Qv=o(t=>`${t}`,"wrapIcon"),rg={prefix:"mermaid-architecture",height:80,width:80,icons:{database:{body:Qv('')},server:{body:Qv('')},disk:{body:Qv('')},internet:{body:Qv('')},cloud:{body:Qv('')},unknown:yD,blank:{body:Qv("")}}}});var LCe,NCe,MCe,ICe,OCe=O(()=>{"use strict";jt();co();Xc();Ur();BW();k_();ar();LCe=o(async function(t,e,r){let n=r.getConfigField("padding"),i=r.getConfigField("iconSize"),a=i/2,s=i/6,l=s/2;await Promise.all(e.edges().map(async u=>{let{source:h,sourceDir:f,sourceArrow:d,sourceGroup:p,target:m,targetDir:g,targetArrow:y,targetGroup:v,label:x}=w_(u),{x:b,y:T}=u[0].sourceEndpoint(),{x:E,y:w}=u[0].midpoint(),{x:k,y:S}=u[0].targetEndpoint(),A=n+4;if(p&&(vs(f)?b+=f==="L"?-A:A:T+=f==="T"?-A:A+18),v&&(vs(g)?k+=g==="L"?-A:A:S+=g==="T"?-A:A+18),!p&&r.getNode(h)?.type==="junction"&&(vs(f)?b+=f==="L"?a:-a:T+=f==="T"?a:-a),!v&&r.getNode(m)?.type==="junction"&&(vs(g)?k+=g==="L"?a:-a:S+=g==="T"?a:-a),u[0]._private.rscratch){let L=t.insert("g");if(L.insert("path").attr("d",`M ${b},${T} L ${E},${w} L${k},${S} `).attr("class","edge").attr("id",hu(h,m,{prefix:"L"})),d){let I=vs(f)?C3[f](b,s):b-l,N=Zu(f)?C3[f](T,s):T-l;L.insert("polygon").attr("points",_W[f](s)).attr("transform",`translate(${I},${N})`).attr("class","arrow")}if(y){let I=vs(g)?C3[g](k,s):k-l,N=Zu(g)?C3[g](S,s):S-l;L.insert("polygon").attr("points",_W[g](s)).attr("transform",`translate(${I},${N})`).attr("class","arrow")}if(x){let I=A3(f,g)?"XY":vs(f)?"X":"Y",N=0;I==="X"?N=Math.abs(b-k):I==="Y"?N=Math.abs(T-S)/1.5:N=Math.abs(b-k)/2;let C=L.append("g");if(await Fn(C,x,{useHtmlLabels:!1,width:N,classes:"architecture-service-label"},ve()),C.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle"),I==="X")C.attr("transform","translate("+E+", "+w+")");else if(I==="Y")C.attr("transform","translate("+E+", "+w+") rotate(-90)");else if(I==="XY"){let _=_3(f,g);if(_&&TCe(_)){let D=C.node().getBoundingClientRect(),[M,R]=kCe(_);C.attr("dominant-baseline","auto").attr("transform",`rotate(${-1*M*R*45})`);let P=C.node().getBoundingClientRect();C.attr("transform",` + translate(${E}, ${w-D.height/2}) + translate(${M*P.width/2}, ${R*P.height/2}) + rotate(${-1*M*R*45}, 0, ${D.height/2}) + `)}}}}}))},"drawEdges"),NCe=o(async function(t,e,r){let i=r.getConfigField("padding")*.75,a=r.getConfigField("fontSize"),l=r.getConfigField("iconSize")/2;await Promise.all(e.nodes().map(async u=>{let h=Tp(u);if(h.type==="group"){let{h:f,w:d,x1:p,y1:m}=u.boundingBox(),g=t.append("rect");g.attr("id",`group-${h.id}`).attr("x",p+l).attr("y",m+l).attr("width",d).attr("height",f).attr("class","node-bkg");let y=t.append("g"),v=p,x=m;if(h.icon){let b=y.append("g");b.html(`${await eo(h.icon,{height:i,width:i,fallbackPrefix:rg.prefix})}`),b.attr("transform","translate("+(v+l+1)+", "+(x+l+1)+")"),v+=i,x+=a/2-1-2}if(h.label){let b=y.append("g");await Fn(b,h.label,{useHtmlLabels:!1,width:d,classes:"architecture-service-label"},ve()),b.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","start").attr("text-anchor","start"),b.attr("transform","translate("+(v+l+4)+", "+(x+l+2)+")")}r.setElementForId(h.id,g)}}))},"drawGroups"),MCe=o(async function(t,e,r){let n=ve();for(let i of r){let a=e.append("g"),s=t.getConfigField("iconSize");if(i.title){let f=a.append("g");await Fn(f,i.title,{useHtmlLabels:!1,width:s*1.5,classes:"architecture-service-label"},n),f.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle"),f.attr("transform","translate("+s/2+", "+s+")")}let l=a.append("g");if(i.icon)l.html(`${await eo(i.icon,{height:s,width:s,fallbackPrefix:rg.prefix})}`);else if(i.iconText){l.html(`${await eo("blank",{height:s,width:s,fallbackPrefix:rg.prefix})}`);let p=l.append("g").append("foreignObject").attr("width",s).attr("height",s).append("div").attr("class","node-icon-text").attr("style",`height: ${s}px;`).append("div").html(wr(i.iconText,n)),m=parseInt(window.getComputedStyle(p.node(),null).getPropertyValue("font-size").replace(/\D/g,""))??16;p.attr("style",`-webkit-line-clamp: ${Math.floor((s-2)/m)};`)}else l.append("path").attr("class","node-bkg").attr("id","node-"+i.id).attr("d",`M0,${s} V5 Q0,0 5,0 H${s-5} Q${s},0 ${s},5 V${s} Z`);a.attr("id",`service-${i.id}`).attr("class","architecture-service");let{width:u,height:h}=a.node().getBBox();i.width=u,i.height=h,t.setElementForId(i.id,a)}return 0},"drawServices"),ICe=o(function(t,e,r){r.forEach(n=>{let i=e.append("g"),a=t.getConfigField("iconSize");i.append("g").append("rect").attr("id","node-"+n.id).attr("fill-opacity","0").attr("width",a).attr("height",a),i.attr("class","architecture-junction");let{width:l,height:u}=i._groups[0][0].getBBox();i.width=l,i.height=u,t.setElementForId(n.id,i)})},"drawJunctions")});function Tpt(t,e,r){t.forEach(n=>{e.add({group:"nodes",data:{type:"service",id:n.id,icon:n.icon,label:n.title,parent:n.in,width:r.getConfigField("iconSize"),height:r.getConfigField("iconSize")},classes:"node-service"})})}function wpt(t,e,r){t.forEach(n=>{e.add({group:"nodes",data:{type:"junction",id:n.id,parent:n.in,width:r.getConfigField("iconSize"),height:r.getConfigField("iconSize")},classes:"node-junction"})})}function kpt(t,e){e.nodes().map(r=>{let n=Tp(r);if(n.type==="group")return;n.x=r.position().x,n.y=r.position().y,t.getElementById(n.id).attr("transform","translate("+(n.x||0)+","+(n.y||0)+")")})}function Ept(t,e){t.forEach(r=>{e.add({group:"nodes",data:{type:"group",id:r.id,icon:r.icon,label:r.title,parent:r.in},classes:"node-group"})})}function Spt(t,e){t.forEach(r=>{let{lhsId:n,rhsId:i,lhsInto:a,lhsGroup:s,rhsInto:l,lhsDir:u,rhsDir:h,rhsGroup:f,title:d}=r,p=A3(r.lhsDir,r.rhsDir)?"segments":"straight",m={id:`${n}-${i}`,label:d,source:n,sourceDir:u,sourceArrow:a,sourceGroup:s,sourceEndpoint:u==="L"?"0 50%":u==="R"?"100% 50%":u==="T"?"50% 0":"50% 100%",target:i,targetDir:h,targetArrow:l,targetGroup:f,targetEndpoint:h==="L"?"0 50%":h==="R"?"100% 50%":h==="T"?"50% 0":"50% 100%"};e.add({group:"edges",data:m,classes:p})})}function Cpt(t,e,r){let n=o((l,u)=>Object.entries(l).reduce((h,[f,d])=>{let p=0,m=Object.entries(d);if(m.length===1)return h[f]=m[0][1],h;for(let g=0;g{let u={},h={};return Object.entries(l).forEach(([f,[d,p]])=>{let m=t.getNode(f)?.in??"default";u[p]??={},u[p][m]??=[],u[p][m].push(f),h[d]??={},h[d][m]??=[],h[d][m].push(f)}),{horiz:Object.values(n(u,"horizontal")).filter(f=>f.length>1),vert:Object.values(n(h,"vertical")).filter(f=>f.length>1)}}),[a,s]=i.reduce(([l,u],{horiz:h,vert:f})=>[[...l,...h],[...u,...f]],[[],[]]);return{horizontal:a,vertical:s}}function Apt(t,e){let r=[],n=o(a=>`${a[0]},${a[1]}`,"posToStr"),i=o(a=>a.split(",").map(s=>parseInt(s)),"strToPos");return t.forEach(a=>{let s=Object.fromEntries(Object.entries(a).map(([f,d])=>[n(d),f])),l=[n([0,0])],u={},h={L:[-1,0],R:[1,0],T:[0,1],B:[0,-1]};for(;l.length>0;){let f=l.shift();if(f){u[f]=1;let d=s[f];if(d){let p=i(f);Object.entries(h).forEach(([m,g])=>{let y=n([p[0]+g[0],p[1]+g[1]]),v=s[y];v&&!u[y]&&(l.push(y),r.push({[AW[m]]:v,[AW[bCe(m)]]:d,gap:1.5*e.getConfigField("iconSize")}))})}}}}),r}function _pt(t,e,r,n,i,{spatialMaps:a,groupAlignments:s}){return new Promise(l=>{let u=je("body").append("div").attr("id","cy").attr("style","display:none"),h=Il({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"straight",label:"data(label)","source-endpoint":"data(sourceEndpoint)","target-endpoint":"data(targetEndpoint)"}},{selector:"edge.segments",style:{"curve-style":"segments","segment-weights":"0","segment-distances":[.5],"edge-distances":"endpoints","source-endpoint":"data(sourceEndpoint)","target-endpoint":"data(targetEndpoint)"}},{selector:"node",style:{"compound-sizing-wrt-labels":"include"}},{selector:"node[label]",style:{"text-valign":"bottom","text-halign":"center","font-size":`${i.getConfigField("fontSize")}px`}},{selector:".node-service",style:{label:"data(label)",width:"data(width)",height:"data(height)"}},{selector:".node-junction",style:{width:"data(width)",height:"data(height)"}},{selector:".node-group",style:{padding:`${i.getConfigField("padding")}px`}}],layout:{name:"grid",boundingBox:{x1:0,x2:100,y1:0,y2:100}}});u.remove(),Ept(r,h),Tpt(t,h,i),wpt(e,h,i),Spt(n,h);let f=Cpt(i,a,s),d=Apt(a,i),p=h.layout({name:"fcose",quality:"proof",styleEnabled:!1,animate:!1,nodeDimensionsIncludeLabels:!1,idealEdgeLength(m){let[g,y]=m.connectedNodes(),{parent:v}=Tp(g),{parent:x}=Tp(y);return v===x?1.5*i.getConfigField("iconSize"):.5*i.getConfigField("iconSize")},edgeElasticity(m){let[g,y]=m.connectedNodes(),{parent:v}=Tp(g),{parent:x}=Tp(y);return v===x?.45:.001},alignmentConstraint:f,relativePlacementConstraint:d});p.one("layoutstop",()=>{function m(g,y,v,x){let b,T,{x:E,y:w}=g,{x:k,y:S}=y;T=(x-w+(E-v)*(w-S)/(E-k))/Math.sqrt(1+Math.pow((w-S)/(E-k),2)),b=Math.sqrt(Math.pow(x-w,2)+Math.pow(v-E,2)-Math.pow(T,2));let A=Math.sqrt(Math.pow(k-E,2)+Math.pow(S-w,2));b=b/A;let L=(k-E)*(x-w)-(S-w)*(v-E);switch(!0){case L>=0:L=1;break;case L<0:L=-1;break}let I=(k-E)*(v-E)+(S-w)*(x-w);switch(!0){case I>=0:I=1;break;case I<0:I=-1;break}return T=Math.abs(T)*L,b=b*I,{distances:T,weights:b}}o(m,"getSegmentWeights"),h.startBatch();for(let g of Object.values(h.edges()))if(g.data?.()){let{x:y,y:v}=g.source().position(),{x,y:b}=g.target().position();if(y!==x&&v!==b){let T=g.sourceEndpoint(),E=g.targetEndpoint(),{sourceDir:w}=w_(g),[k,S]=Zu(w)?[T.x,E.y]:[E.x,T.y],{weights:A,distances:L}=m(T,E,k,S);g.style("segment-distances",L),g.style("segment-weights",A)}}h.endBatch(),p.run()}),p.run(),h.ready(m=>{K.info("Ready",m),l(h)})})}var PCe,Dpt,BCe,FCe=O(()=>{"use strict";SB();PCe=Ra(RCe(),1);Ar();xt();Xc();Ul();Ti();BW();k_();OCe();Nw([{name:rg.prefix,icons:rg}]);Il.use(PCe.default);o(Tpt,"addServices");o(wpt,"addJunctions");o(kpt,"positionNodes");o(Ept,"addGroups");o(Spt,"addEdges");o(Cpt,"getAlignments");o(Apt,"getRelativeConstraints");o(_pt,"layoutArchitecture");Dpt=o(async(t,e,r,n)=>{let i=n.db,a=i.getServices(),s=i.getJunctions(),l=i.getGroups(),u=i.getEdges(),h=i.getDataStructures(),f=Ii(e),d=f.append("g");d.attr("class","architecture-edges");let p=f.append("g");p.attr("class","architecture-services");let m=f.append("g");m.attr("class","architecture-groups"),await MCe(i,p,a),ICe(i,p,s);let g=await _pt(a,s,l,u,i,h);await LCe(d,g,i),await NCe(m,g,i),kpt(i,g),Kc(void 0,f,i.getConfigField("padding"),i.getConfigField("useMaxWidth"))},"draw"),BCe={draw:Dpt}});var $Ce={};vr($Ce,{diagram:()=>Rpt});var Rpt,zCe=O(()=>{"use strict";ACe();RW();DCe();FCe();Rpt={parser:LW,get db(){return new Kv},renderer:BCe,styles:_Ce}});var FW,qCe,UCe=O(()=>{"use strict";FW=(function(){var t=o(function(x,b,T,E){for(T=T||{},E=x.length;E--;T[x[E]]=b);return T},"o"),e=[1,4],r=[1,14],n=[1,12],i=[1,13],a=[6,7,8],s=[1,20],l=[1,18],u=[1,19],h=[6,7,11],f=[1,6,13,14],d=[1,23],p=[1,24],m=[1,6,7,11,13,14],g={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,ishikawa:4,spaceLines:5,SPACELINE:6,NL:7,ISHIKAWA:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,TEXT:14,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"ISHIKAWA",11:"EOF",13:"SPACELIST",14:"TEXT"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,1],[12,1],[12,1]],performAction:o(function(b,T,E,w,k,S,A){var L=S.length-1;switch(k){case 6:case 7:return w;case 15:w.addNode(S[L-1].length,S[L].trim());break;case 16:w.addNode(0,S[L].trim());break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:e},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:e},{6:r,7:[1,10],9:9,12:11,13:n,14:i},t(a,[2,3]),{1:[2,2]},t(a,[2,4]),t(a,[2,5]),{1:[2,6],6:r,12:15,13:n,14:i},{6:r,9:16,12:11,13:n,14:i},{6:s,7:l,10:17,11:u},t(h,[2,18],{14:[1,21]}),t(h,[2,16]),t(h,[2,17]),{6:s,7:l,10:22,11:u},{1:[2,7],6:r,12:15,13:n,14:i},t(f,[2,14],{7:d,11:p}),t(m,[2,8]),t(m,[2,9]),t(m,[2,10]),t(h,[2,15]),t(f,[2,13],{7:d,11:p}),t(m,[2,11]),t(m,[2,12])],defaultActions:{2:[2,1],6:[2,2]},parseError:o(function(b,T){if(T.recoverable)this.trace(b);else{var E=new Error(b);throw E.hash=T,E}},"parseError"),parse:o(function(b){var T=this,E=[0],w=[],k=[null],S=[],A=this.table,L="",I=0,N=0,C=0,_=2,D=1,M=S.slice.call(arguments,1),R=Object.create(this.lexer),P={yy:{}};for(var B in this.yy)Object.prototype.hasOwnProperty.call(this.yy,B)&&(P.yy[B]=this.yy[B]);R.setInput(b,P.yy),P.yy.lexer=R,P.yy.parser=this,typeof R.yylloc>"u"&&(R.yylloc={});var F=R.yylloc;S.push(F);var G=R.options&&R.options.ranges;typeof P.yy.parseError=="function"?this.parseError=P.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function $(Se){E.length=E.length-2*Se,k.length=k.length-Se,S.length=S.length-Se}o($,"popStack");function V(){var Se;return Se=w.pop()||R.lex()||D,typeof Se!="number"&&(Se instanceof Array&&(w=Se,Se=w.pop()),Se=T.symbols_[Se]||Se),Se}o(V,"lex");for(var X,Q,H,ie,Y,le,ee={},J,te,Z,xe;;){if(H=E[E.length-1],this.defaultActions[H]?ie=this.defaultActions[H]:((X===null||typeof X>"u")&&(X=V()),ie=A[H]&&A[H][X]),typeof ie>"u"||!ie.length||!ie[0]){var de="";xe=[];for(J in A[H])this.terminals_[J]&&J>_&&xe.push("'"+this.terminals_[J]+"'");R.showPosition?de="Parse error on line "+(I+1)+`: +`+R.showPosition()+` +Expecting `+xe.join(", ")+", got '"+(this.terminals_[X]||X)+"'":de="Parse error on line "+(I+1)+": Unexpected "+(X==D?"end of input":"'"+(this.terminals_[X]||X)+"'"),this.parseError(de,{text:R.match,token:this.terminals_[X]||X,line:R.yylineno,loc:F,expected:xe})}if(ie[0]instanceof Array&&ie.length>1)throw new Error("Parse Error: multiple actions possible at state: "+H+", token: "+X);switch(ie[0]){case 1:E.push(X),k.push(R.yytext),S.push(R.yylloc),E.push(ie[1]),X=null,Q?(X=Q,Q=null):(N=R.yyleng,L=R.yytext,I=R.yylineno,F=R.yylloc,C>0&&C--);break;case 2:if(te=this.productions_[ie[1]][1],ee.$=k[k.length-te],ee._$={first_line:S[S.length-(te||1)].first_line,last_line:S[S.length-1].last_line,first_column:S[S.length-(te||1)].first_column,last_column:S[S.length-1].last_column},G&&(ee._$.range=[S[S.length-(te||1)].range[0],S[S.length-1].range[1]]),le=this.performAction.apply(ee,[L,N,I,P.yy,ie[1],k,S].concat(M)),typeof le<"u")return le;te&&(E=E.slice(0,-1*te*2),k=k.slice(0,-1*te),S=S.slice(0,-1*te)),E.push(this.productions_[ie[1]][0]),k.push(ee.$),S.push(ee._$),Z=A[E[E.length-2]][E[E.length-1]],E.push(Z);break;case 3:return!0}}return!0},"parse")},y=(function(){var x={EOF:1,parseError:o(function(T,E){if(this.yy.parser)this.yy.parser.parseError(T,E);else throw new Error(T)},"parseError"),setInput:o(function(b,T){return this.yy=T||this.yy||{},this._input=b,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var b=this._input[0];this.yytext+=b,this.yyleng++,this.offset++,this.match+=b,this.matched+=b;var T=b.match(/(?:\r\n?|\n).*/g);return T?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),b},"input"),unput:o(function(b){var T=b.length,E=b.split(/(?:\r\n?|\n)/g);this._input=b+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-T),this.offset-=T;var w=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),E.length-1&&(this.yylineno-=E.length-1);var k=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:E?(E.length===w.length?this.yylloc.first_column:0)+w[w.length-E.length].length-E[0].length:this.yylloc.first_column-T},this.options.ranges&&(this.yylloc.range=[k[0],k[0]+this.yyleng-T]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(b){this.unput(this.match.slice(b))},"less"),pastInput:o(function(){var b=this.matched.substr(0,this.matched.length-this.match.length);return(b.length>20?"...":"")+b.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var b=this.match;return b.length<20&&(b+=this._input.substr(0,20-b.length)),(b.substr(0,20)+(b.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var b=this.pastInput(),T=new Array(b.length+1).join("-");return b+this.upcomingInput()+` +`+T+"^"},"showPosition"),test_match:o(function(b,T){var E,w,k;if(this.options.backtrack_lexer&&(k={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(k.yylloc.range=this.yylloc.range.slice(0))),w=b[0].match(/(?:\r\n?|\n).*/g),w&&(this.yylineno+=w.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:w?w[w.length-1].length-w[w.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+b[0].length},this.yytext+=b[0],this.match+=b[0],this.matches=b,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(b[0].length),this.matched+=b[0],E=this.performAction.call(this,this.yy,this,T,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),E)return E;if(this._backtrack){for(var S in k)this[S]=k[S];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var b,T,E,w;this._more||(this.yytext="",this.match="");for(var k=this._currentRules(),S=0;ST[0].length)){if(T=E,w=S,this.options.backtrack_lexer){if(b=this.test_match(E,k[S]),b!==!1)return b;if(this._backtrack){T=!1;continue}else return!1}else if(!this.options.flex)break}return T?(b=this.test_match(T,k[w]),b!==!1?b:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var T=this.next();return T||this.lex()},"lex"),begin:o(function(T){this.conditionStack.push(T)},"begin"),popState:o(function(){var T=this.conditionStack.length-1;return T>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(T){return T=this.conditionStack.length-1-Math.abs(T||0),T>=0?this.conditionStack[T]:"INITIAL"},"topState"),pushState:o(function(T){this.begin(T)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(T,E,w,k){var S=k;switch(w){case 0:return 6;case 1:return 8;case 2:return 8;case 3:return 6;case 4:return 7;case 5:return 13;case 6:return 14;case 7:return 11}},"anonymous"),rules:[/^(?:\s*%%.*)/i,/^(?:ishikawa-beta\b)/i,/^(?:ishikawa\b)/i,/^(?:[\s]+[\n])/i,/^(?:[\n]+)/i,/^(?:[\s]+)/i,/^(?:[^\n]+)/i,/^(?:$)/i],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7],inclusive:!0}}};return x})();g.lexer=y;function v(){this.yy={}}return o(v,"Parser"),v.prototype=g,g.Parser=v,new v})();FW.parser=FW;qCe=FW});var E_,WCe=O(()=>{"use strict";jt();Ur();si();E_=class{constructor(){this.stack=[];this.clear=this.clear.bind(this),this.addNode=this.addNode.bind(this),this.getRoot=this.getRoot.bind(this)}static{o(this,"IshikawaDB")}clear(){this.root=void 0,this.stack=[],this.baseLevel=void 0,_r()}getRoot(){return this.root}addNode(e,r){let n=st.sanitizeText(r,ve());if(!this.root){this.baseLevel=e,this.root={text:n,children:[]},this.stack=[{level:0,node:this.root}],zr(n);return}let i=e-(this.baseLevel??0);for(i<=0&&(i=1);this.stack.length>1&&this.stack[this.stack.length-1].level>=i;)this.stack.pop();let a=this.stack[this.stack.length-1].node,s={text:n,children:[]};a.children.push(s),this.stack.push({level:i,node:s})}getAccTitle(){return Or()}setAccTitle(e){Lr(e)}getAccDescription(){return Br()}setAccDescription(e){Pr(e)}getDiagramTitle(){return Fr()}setDiagramTitle(e){zr(e)}}});var Ipt,Zv,Opt,Ppt,Bpt,QCe,HCe,YCe,jCe,Fpt,XCe,$pt,zpt,Gpt,$W,Vpt,qpt,ZCe,S_,KCe,Jv,JCe,e6e=O(()=>{"use strict";jt();Ul();Ti();ar();Wt();Ipt=14,Zv=250,Opt=30,Ppt=60,Bpt=5,QCe=82*Math.PI/180,HCe=Math.cos(QCe),YCe=Math.sin(QCe),jCe=o((t,e,r)=>{let n=t.node().getBBox(),i=n.width+e*2,a=n.height+e*2;Zr(t,a,i,r),t.attr("viewBox",`${n.x-e} ${n.y-e} ${i} ${a}`)},"applyPaddedViewBox"),Fpt=o((t,e,r,n)=>{let a=n.db.getRoot();if(!a)return;let s=ve(),{look:l,handDrawnSeed:u,themeVariables:h}=s,f=Uo(s.fontSize)[0]??Ipt,d=l==="handDrawn",p=a.children??[],m=s.ishikawa?.diagramPadding??20,g=s.ishikawa?.useMaxWidth??!1,y=Ii(e),v=y.append("g").attr("class","ishikawa"),x=d?Je.svg(y.node()):void 0,b=x?{roughSvg:x,seed:u??0,lineColor:h?.lineColor??"#333",fillColor:h?.mainBkg??"#fff"}:void 0,T=`ishikawa-arrow-${e}`;d||v.append("defs").append("marker").attr("id",T).attr("viewBox","0 0 10 10").attr("refX",0).attr("refY",5).attr("markerWidth",6).attr("markerHeight",6).attr("orient","auto").append("path").attr("d","M 10 0 L 0 5 L 10 10 Z").attr("class","ishikawa-arrow");let E=0,w=Zv,k=d?void 0:Jv(v,E,w,E,w,"ishikawa-spine");if($pt(v,E,w,a.text,f,b),!p.length){d&&Jv(v,E,w,E,w,"ishikawa-spine",b),jCe(y,m,g);return}E-=20;let S=p.filter((R,P)=>P%2===0),A=p.filter((R,P)=>P%2===1),L=XCe(S),I=XCe(A),N=L.total+I.total,C=Zv,_=Zv;if(N>0){let R=Zv*2,P=Zv*.3;C=Math.max(P,R*(L.total/N)),_=Math.max(P,R*(I.total/N))}let D=f*2;C=Math.max(C,L.max*D),_=Math.max(_,I.max*D),w=Math.max(C,Zv),k&&k.attr("y1",w).attr("y2",w),v.select(".ishikawa-head-group").attr("transform",`translate(0,${w})`);let M=Math.ceil(p.length/2);for(let R=0;RMath.min(B,F.getBBox().x),1/0)}if(d)Jv(v,E,w,0,w,"ishikawa-spine",b);else{k.attr("x1",E);let R=`url(#${T})`;v.selectAll("line.ishikawa-branch, line.ishikawa-sub-branch").attr("marker-start",R)}jCe(y,m,g)},"draw"),XCe=o(t=>{let e=o(r=>r.children.reduce((n,i)=>n+1+e(i),0),"countDescendants");return t.reduce((r,n)=>{let i=e(n);return r.total+=i,r.max=Math.max(r.max,i),r},{total:0,max:0})},"sideStats"),$pt=o((t,e,r,n,i,a)=>{let s=Math.max(6,Math.floor(110/(i*.6))),l=t.append("g").attr("class","ishikawa-head-group").attr("transform",`translate(${e},${r})`),u=S_(l,ZCe(n,s),0,0,"ishikawa-head-label","start",i),h=u.node().getBBox(),f=Math.max(60,h.width+6),d=Math.max(40,h.height*2+40),p=`M 0 ${-d/2} L 0 ${d/2} Q ${f*2.4} 0 0 ${-d/2} Z`;if(a){let m=a.roughSvg.path(p,{roughness:1.5,seed:a.seed,fill:a.fillColor,fillStyle:"hachure",fillWeight:2.5,hachureGap:5,stroke:a.lineColor,strokeWidth:2});l.insert(()=>m,":first-child").attr("class","ishikawa-head")}else l.insert("path",":first-child").attr("class","ishikawa-head").attr("d",p);u.attr("transform",`translate(${(f-h.width)/2-h.x+3},${-h.y-h.height/2})`)},"drawHead"),zpt=o((t,e)=>{let r=[],n=[],i=o((a,s,l)=>{let u=e===-1?[...a].reverse():a;for(let h of u){let f=r.length,d=h.children??[];r.push({depth:l,text:ZCe(h.text,15),parentIndex:s,childCount:d.length}),l%2===0?(n.push(f),d.length&&i(d,f,l+1)):(d.length&&i(d,f,l+1),n.push(f))}},"walk");return i(t,-1,2),{entries:r,yOrder:n}},"flattenTree"),Gpt=o((t,e,r,n,i,a,s)=>{let l=t.append("g").attr("class","ishikawa-label-group"),h=S_(l,e,r,n+11*i,"ishikawa-label cause","middle",a).node().getBBox();if(s){let f=s.roughSvg.rectangle(h.x-20,h.y-2,h.width+40,h.height+4,{roughness:1.5,seed:s.seed,fill:s.fillColor,fillStyle:"hachure",fillWeight:2.5,hachureGap:5,stroke:s.lineColor,strokeWidth:2});l.insert(()=>f,":first-child").attr("class","ishikawa-label-box")}else l.insert("rect",":first-child").attr("class","ishikawa-label-box").attr("x",h.x-20).attr("y",h.y-2).attr("width",h.width+40).attr("height",h.height+4)},"drawCauseLabel"),$W=o((t,e,r,n,i,a)=>{let s=Math.sqrt(n*n+i*i);if(s===0)return;let l=n/s,u=i/s,h=6,f=-u*h,d=l*h,p=e,m=r,g=`M ${p} ${m} L ${p-l*h*2+f} ${m-u*h*2+d} L ${p-l*h*2-f} ${m-u*h*2-d} Z`,y=a.roughSvg.path(g,{roughness:1,seed:a.seed,fill:a.lineColor,fillStyle:"solid",stroke:a.lineColor,strokeWidth:1});t.append(()=>y)},"drawArrowMarker"),Vpt=o((t,e,r,n,i,a,s,l)=>{let u=e.children??[],h=a*(u.length?1:.2),f=-HCe*h,d=YCe*h*i,p=r+f,m=n+d;if(Jv(t,r,n,p,m,"ishikawa-branch",l),l&&$W(t,r,n,r-p,n-m,l),Gpt(t,e.text,p,m,i,s,l),!u.length)return;let{entries:g,yOrder:y}=zpt(u,i),v=g.length,x=new Array(v);for(let[k,S]of y.entries())x[S]=n+d*((k+1)/(v+1));let b=new Map;b.set(-1,{x0:r,y0:n,x1:p,y1:m,childCount:u.length,childrenDrawn:0});let T=-HCe,E=YCe*i,w=i<0?"ishikawa-label up":"ishikawa-label down";for(let[k,S]of g.entries()){let A=x[k],L=b.get(S.parentIndex),I=t.append("g").attr("class","ishikawa-sub-group"),N=0,C=0,_=0;if(S.depth%2===0){let D=L.y1-L.y0;N=KCe(L.x0,L.x1,D?(A-L.y0)/D:.5),C=A,_=N-(S.childCount>0?Ppt+S.childCount*Bpt:Opt),Jv(I,N,A,_,A,"ishikawa-sub-branch",l),l&&$W(I,N,A,1,0,l),S_(I,S.text,_,A,"ishikawa-label align","end",s)}else{let D=L.childrenDrawn++;N=KCe(L.x0,L.x1,(L.childCount-D)/(L.childCount+1)),C=L.y0,_=N+T*((A-C)/E),Jv(I,N,C,_,A,"ishikawa-sub-branch",l),l&&$W(I,N,C,N-_,C-A,l),S_(I,S.text,_,A,w,"end",s)}S.childCount>0&&b.set(k,{x0:N,y0:C,x1:_,y1:A,childCount:S.childCount,childrenDrawn:0})}},"drawBranch"),qpt=o(t=>t.split(/|\n/),"splitLines"),ZCe=o((t,e)=>{if(t.length<=e)return t;let r=[];for(let n of t.split(/\s+/)){let i=r.length-1;i>=0&&r[i].length+1+n.length<=e?r[i]+=" "+n:r.push(n)}return r.join(` +`)},"wrapText"),S_=o((t,e,r,n,i,a,s)=>{let l=qpt(e),u=s*1.05,h=t.append("text").attr("class",i).attr("text-anchor",a).attr("x",r).attr("y",n-(l.length-1)*u/2);for(let[f,d]of l.entries())h.append("tspan").attr("x",r).attr("dy",f===0?0:u).text(d);return h},"drawMultilineText"),KCe=o((t,e,r)=>t+(e-t)*r,"lerp"),Jv=o((t,e,r,n,i,a,s)=>{if(s){let l=s.roughSvg.line(e,r,n,i,{roughness:1.5,seed:s.seed,stroke:s.lineColor,strokeWidth:2});t.append(()=>l).attr("class",a);return}return t.append("line").attr("class",a).attr("x1",e).attr("y1",r).attr("x2",n).attr("y2",i)},"drawLine"),JCe={draw:Fpt}});var Upt,t6e,r6e=O(()=>{"use strict";Upt=o(t=>` +.ishikawa .ishikawa-spine, +.ishikawa .ishikawa-branch, +.ishikawa .ishikawa-sub-branch { + stroke: ${t.lineColor}; + stroke-width: 2; + fill: none; +} + +.ishikawa .ishikawa-sub-branch { + stroke-width: 1; +} + +.ishikawa .ishikawa-arrow { + fill: ${t.lineColor}; +} + +.ishikawa .ishikawa-head { + fill: ${t.mainBkg}; + stroke: ${t.lineColor}; + stroke-width: 2; +} + +.ishikawa .ishikawa-label-box { + fill: ${t.mainBkg}; + stroke: ${t.lineColor}; + stroke-width: 2; +} + +.ishikawa text { + font-family: ${t.fontFamily}; + font-size: ${t.fontSize}; + fill: ${t.textColor}; +} + +.ishikawa .ishikawa-head-label { + font-weight: 600; + text-anchor: middle; + dominant-baseline: middle; + font-size: 14px; +} + +.ishikawa .ishikawa-label { + text-anchor: end; +} + +.ishikawa .ishikawa-label.cause { + text-anchor: middle; + dominant-baseline: middle; +} + +.ishikawa .ishikawa-label.align { + text-anchor: end; + dominant-baseline: middle; +} + +.ishikawa .ishikawa-label.up { + dominant-baseline: baseline; +} + +.ishikawa .ishikawa-label.down { + dominant-baseline: hanging; +} +`,"getStyles"),t6e=Upt});var n6e={};vr(n6e,{diagram:()=>Wpt});var Wpt,i6e=O(()=>{"use strict";UCe();WCe();e6e();r6e();Wpt={parser:qCe,get db(){return new E_},renderer:JCe,styles:t6e}});var zW,o6e,l6e=O(()=>{"use strict";zW=(function(){var t=o(function(b,T,E,w){for(E=E||{},w=b.length;w--;E[b[w]]=T);return E},"o"),e=[5,8],r=[7,8,11,12,17,19,22,24],n=[1,17],i=[1,18],a=[7,8,11,12,14,15,16,17,19,20,21,22,24,27],s=[1,31],l=[1,39],u=[7,8,11,12,17,19,22,24,27],h=[1,57],f=[1,56],d=[1,58],p=[1,59],m=[1,60],g=[7,8,11,12,16,17,19,20,22,24,27,31,32,33],y={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,optNewlines:4,VENN:5,document:6,EOF:7,NEWLINE:8,line:9,statement:10,TITLE:11,SET:12,identifier:13,BRACKET_LABEL:14,COLON:15,NUMERIC:16,UNION:17,identifierList:18,TEXT:19,IDENTIFIER:20,STRING:21,INDENT_TEXT:22,indentedTextTail:23,STYLE:24,stylesOpt:25,styleField:26,COMMA:27,styleValue:28,valueTokens:29,valueToken:30,HEXCOLOR:31,RGBCOLOR:32,RGBACOLOR:33,$accept:0,$end:1},terminals_:{2:"error",5:"VENN",7:"EOF",8:"NEWLINE",11:"TITLE",12:"SET",14:"BRACKET_LABEL",15:"COLON",16:"NUMERIC",17:"UNION",19:"TEXT",20:"IDENTIFIER",21:"STRING",22:"INDENT_TEXT",24:"STYLE",27:"COMMA",31:"HEXCOLOR",32:"RGBCOLOR",33:"RGBACOLOR"},productions_:[0,[3,4],[4,0],[4,2],[6,0],[6,2],[9,1],[9,1],[10,1],[10,2],[10,3],[10,4],[10,5],[10,2],[10,3],[10,4],[10,5],[10,3],[10,3],[10,3],[10,4],[10,4],[10,2],[10,3],[23,1],[23,1],[23,1],[23,2],[23,2],[25,1],[25,3],[26,3],[28,1],[28,1],[29,1],[29,2],[30,1],[30,1],[30,1],[30,1],[30,1],[18,1],[18,3],[13,1],[13,1]],performAction:o(function(T,E,w,k,S,A,L){var I=A.length-1;switch(S){case 1:return A[I-1];case 2:case 3:case 4:this.$=[];break;case 5:A[I-1].push(A[I]),this.$=A[I-1];break;case 6:this.$=[];break;case 7:case 22:case 32:case 36:case 37:case 38:case 39:case 40:this.$=A[I];break;case 8:k.setDiagramTitle(A[I].substr(6)),this.$=A[I].substr(6);break;case 9:k.addSubsetData([A[I]],void 0,void 0),k.setIndentMode&&k.setIndentMode(!0);break;case 10:k.addSubsetData([A[I-1]],A[I],void 0),k.setIndentMode&&k.setIndentMode(!0);break;case 11:k.addSubsetData([A[I-2]],void 0,parseFloat(A[I])),k.setIndentMode&&k.setIndentMode(!0);break;case 12:k.addSubsetData([A[I-3]],A[I-2],parseFloat(A[I])),k.setIndentMode&&k.setIndentMode(!0);break;case 13:if(A[I].length<2)throw new Error("union requires multiple identifiers");k.validateUnionIdentifiers&&k.validateUnionIdentifiers(A[I]),k.addSubsetData(A[I],void 0,void 0),k.setIndentMode&&k.setIndentMode(!0);break;case 14:if(A[I-1].length<2)throw new Error("union requires multiple identifiers");k.validateUnionIdentifiers&&k.validateUnionIdentifiers(A[I-1]),k.addSubsetData(A[I-1],A[I],void 0),k.setIndentMode&&k.setIndentMode(!0);break;case 15:if(A[I-2].length<2)throw new Error("union requires multiple identifiers");k.validateUnionIdentifiers&&k.validateUnionIdentifiers(A[I-2]),k.addSubsetData(A[I-2],void 0,parseFloat(A[I])),k.setIndentMode&&k.setIndentMode(!0);break;case 16:if(A[I-3].length<2)throw new Error("union requires multiple identifiers");k.validateUnionIdentifiers&&k.validateUnionIdentifiers(A[I-3]),k.addSubsetData(A[I-3],A[I-2],parseFloat(A[I])),k.setIndentMode&&k.setIndentMode(!0);break;case 17:case 18:case 19:k.addTextData(A[I-1],A[I],void 0);break;case 20:case 21:k.addTextData(A[I-2],A[I-1],A[I]);break;case 23:k.addStyleData(A[I-1],A[I]);break;case 24:case 25:case 26:var N=k.getCurrentSets();if(!N)throw new Error("text requires set");k.addTextData(N,A[I],void 0);break;case 27:case 28:var N=k.getCurrentSets();if(!N)throw new Error("text requires set");k.addTextData(N,A[I-1],A[I]);break;case 29:case 41:this.$=[A[I]];break;case 30:case 42:this.$=[...A[I-2],A[I]];break;case 31:this.$=[A[I-2],A[I]];break;case 33:this.$=A[I].join(" ");break;case 34:this.$=[A[I]];break;case 35:A[I-1].push(A[I]),this.$=A[I-1];break;case 43:case 44:this.$=A[I];break}},"anonymous"),table:[t(e,[2,2],{3:1,4:2}),{1:[3]},{5:[1,3],8:[1,4]},t(r,[2,4],{6:5}),t(e,[2,3]),{7:[1,6],8:[1,8],9:7,10:9,11:[1,10],12:[1,11],17:[1,12],19:[1,13],22:[1,14],24:[1,15]},{1:[2,1]},t(r,[2,5]),t(r,[2,6]),t(r,[2,7]),t(r,[2,8]),{13:16,20:n,21:i},{13:20,18:19,20:n,21:i},{13:20,18:21,20:n,21:i},{16:[1,25],20:[1,23],21:[1,24],23:22},{13:20,18:26,20:n,21:i},t(r,[2,9],{14:[1,27],15:[1,28]}),t(a,[2,43]),t(a,[2,44]),t(r,[2,13],{14:[1,29],15:[1,30],27:s}),t(a,[2,41]),{16:[1,34],20:[1,32],21:[1,33],27:s},t(r,[2,22]),t(r,[2,24],{14:[1,35]}),t(r,[2,25],{14:[1,36]}),t(r,[2,26]),{20:l,25:37,26:38,27:s},t(r,[2,10],{15:[1,40]}),{16:[1,41]},t(r,[2,14],{15:[1,42]}),{16:[1,43]},{13:44,20:n,21:i},t(r,[2,17],{14:[1,45]}),t(r,[2,18],{14:[1,46]}),t(r,[2,19]),t(r,[2,27]),t(r,[2,28]),t(r,[2,23],{27:[1,47]}),t(u,[2,29]),{15:[1,48]},{16:[1,49]},t(r,[2,11]),{16:[1,50]},t(r,[2,15]),t(a,[2,42]),t(r,[2,20]),t(r,[2,21]),{20:l,26:51},{16:h,20:f,21:[1,53],28:52,29:54,30:55,31:d,32:p,33:m},t(r,[2,12]),t(r,[2,16]),t(u,[2,30]),t(u,[2,31]),t(u,[2,32]),t(u,[2,33],{30:61,16:h,20:f,31:d,32:p,33:m}),t(g,[2,34]),t(g,[2,36]),t(g,[2,37]),t(g,[2,38]),t(g,[2,39]),t(g,[2,40]),t(g,[2,35])],defaultActions:{6:[2,1]},parseError:o(function(T,E){if(E.recoverable)this.trace(T);else{var w=new Error(T);throw w.hash=E,w}},"parseError"),parse:o(function(T){var E=this,w=[0],k=[],S=[null],A=[],L=this.table,I="",N=0,C=0,_=0,D=2,M=1,R=A.slice.call(arguments,1),P=Object.create(this.lexer),B={yy:{}};for(var F in this.yy)Object.prototype.hasOwnProperty.call(this.yy,F)&&(B.yy[F]=this.yy[F]);P.setInput(T,B.yy),B.yy.lexer=P,B.yy.parser=this,typeof P.yylloc>"u"&&(P.yylloc={});var G=P.yylloc;A.push(G);var $=P.options&&P.options.ranges;typeof B.yy.parseError=="function"?this.parseError=B.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function V(Me){w.length=w.length-2*Me,S.length=S.length-Me,A.length=A.length-Me}o(V,"popStack");function X(){var Me;return Me=k.pop()||P.lex()||M,typeof Me!="number"&&(Me instanceof Array&&(k=Me,Me=k.pop()),Me=E.symbols_[Me]||Me),Me}o(X,"lex");for(var Q,H,ie,Y,le,ee,J={},te,Z,xe,de;;){if(ie=w[w.length-1],this.defaultActions[ie]?Y=this.defaultActions[ie]:((Q===null||typeof Q>"u")&&(Q=X()),Y=L[ie]&&L[ie][Q]),typeof Y>"u"||!Y.length||!Y[0]){var Se="";de=[];for(te in L[ie])this.terminals_[te]&&te>D&&de.push("'"+this.terminals_[te]+"'");P.showPosition?Se="Parse error on line "+(N+1)+`: +`+P.showPosition()+` +Expecting `+de.join(", ")+", got '"+(this.terminals_[Q]||Q)+"'":Se="Parse error on line "+(N+1)+": Unexpected "+(Q==M?"end of input":"'"+(this.terminals_[Q]||Q)+"'"),this.parseError(Se,{text:P.match,token:this.terminals_[Q]||Q,line:P.yylineno,loc:G,expected:de})}if(Y[0]instanceof Array&&Y.length>1)throw new Error("Parse Error: multiple actions possible at state: "+ie+", token: "+Q);switch(Y[0]){case 1:w.push(Q),S.push(P.yytext),A.push(P.yylloc),w.push(Y[1]),Q=null,H?(Q=H,H=null):(C=P.yyleng,I=P.yytext,N=P.yylineno,G=P.yylloc,_>0&&_--);break;case 2:if(Z=this.productions_[Y[1]][1],J.$=S[S.length-Z],J._$={first_line:A[A.length-(Z||1)].first_line,last_line:A[A.length-1].last_line,first_column:A[A.length-(Z||1)].first_column,last_column:A[A.length-1].last_column},$&&(J._$.range=[A[A.length-(Z||1)].range[0],A[A.length-1].range[1]]),ee=this.performAction.apply(J,[I,C,N,B.yy,Y[1],S,A].concat(R)),typeof ee<"u")return ee;Z&&(w=w.slice(0,-1*Z*2),S=S.slice(0,-1*Z),A=A.slice(0,-1*Z)),w.push(this.productions_[Y[1]][0]),S.push(J.$),A.push(J._$),xe=L[w[w.length-2]][w[w.length-1]],w.push(xe);break;case 3:return!0}}return!0},"parse")},v=(function(){var b={EOF:1,parseError:o(function(E,w){if(this.yy.parser)this.yy.parser.parseError(E,w);else throw new Error(E)},"parseError"),setInput:o(function(T,E){return this.yy=E||this.yy||{},this._input=T,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var T=this._input[0];this.yytext+=T,this.yyleng++,this.offset++,this.match+=T,this.matched+=T;var E=T.match(/(?:\r\n?|\n).*/g);return E?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),T},"input"),unput:o(function(T){var E=T.length,w=T.split(/(?:\r\n?|\n)/g);this._input=T+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-E),this.offset-=E;var k=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),w.length-1&&(this.yylineno-=w.length-1);var S=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:w?(w.length===k.length?this.yylloc.first_column:0)+k[k.length-w.length].length-w[0].length:this.yylloc.first_column-E},this.options.ranges&&(this.yylloc.range=[S[0],S[0]+this.yyleng-E]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(T){this.unput(this.match.slice(T))},"less"),pastInput:o(function(){var T=this.matched.substr(0,this.matched.length-this.match.length);return(T.length>20?"...":"")+T.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var T=this.match;return T.length<20&&(T+=this._input.substr(0,20-T.length)),(T.substr(0,20)+(T.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var T=this.pastInput(),E=new Array(T.length+1).join("-");return T+this.upcomingInput()+` +`+E+"^"},"showPosition"),test_match:o(function(T,E){var w,k,S;if(this.options.backtrack_lexer&&(S={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(S.yylloc.range=this.yylloc.range.slice(0))),k=T[0].match(/(?:\r\n?|\n).*/g),k&&(this.yylineno+=k.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:k?k[k.length-1].length-k[k.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+T[0].length},this.yytext+=T[0],this.match+=T[0],this.matches=T,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(T[0].length),this.matched+=T[0],w=this.performAction.call(this,this.yy,this,E,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),w)return w;if(this._backtrack){for(var A in S)this[A]=S[A];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var T,E,w,k;this._more||(this.yytext="",this.match="");for(var S=this._currentRules(),A=0;AE[0].length)){if(E=w,k=A,this.options.backtrack_lexer){if(T=this.test_match(w,S[A]),T!==!1)return T;if(this._backtrack){E=!1;continue}else return!1}else if(!this.options.flex)break}return E?(T=this.test_match(E,S[k]),T!==!1?T:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var E=this.next();return E||this.lex()},"lex"),begin:o(function(E){this.conditionStack.push(E)},"begin"),popState:o(function(){var E=this.conditionStack.length-1;return E>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(E){return E=this.conditionStack.length-1-Math.abs(E||0),E>=0?this.conditionStack[E]:"INITIAL"},"topState"),pushState:o(function(E){this.begin(E)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(E,w,k,S){var A=S;switch(k){case 0:break;case 1:break;case 2:break;case 3:if(E.getIndentMode&&E.getIndentMode())return E.consumeIndentText=!0,this.begin("INITIAL"),22;break;case 4:break;case 5:E.setIndentMode&&E.setIndentMode(!1),this.begin("INITIAL"),this.unput(w.yytext);break;case 6:return this.begin("bol"),8;break;case 7:break;case 8:break;case 9:return 7;case 10:return 11;case 11:return 5;case 12:return 12;case 13:return 17;case 14:if(E.consumeIndentText)E.consumeIndentText=!1;else return 19;break;case 15:return 24;case 16:return w.yytext=w.yytext.slice(2,-2),14;break;case 17:return w.yytext=w.yytext.slice(1,-1).trim(),14;break;case 18:return 16;case 19:return 31;case 20:return 33;case 21:return 32;case 22:return 20;case 23:return 21;case 24:return 27;case 25:return 15}},"anonymous"),rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[ \t]+(?=[\n\r]))/i,/^(?:[ \t]+(?=text\b))/i,/^(?:[ \t]+)/i,/^(?:[^ \t\n\r])/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:[ \t]+)/i,/^(?:$)/i,/^(?:title\s[^#\n;]+)/i,/^(?:venn-beta\b)/i,/^(?:set\b)/i,/^(?:union\b)/i,/^(?:text\b)/i,/^(?:style\b)/i,/^(?:\["[^\"]*"\])/i,/^(?:\[[^\]\"]+\])/i,/^(?:[+-]?(\d+(\.\d+)?|\.\d+))/i,/^(?:#[0-9a-fA-F]{3,8})/i,/^(?:rgba\(\s*[0-9.]+\s*[,]\s*[0-9.]+\s*[,]\s*[0-9.]+\s*[,]\s*[0-9.]+\s*\))/i,/^(?:rgb\(\s*[0-9.]+\s*[,]\s*[0-9.]+\s*[,]\s*[0-9.]+\s*\))/i,/^(?:[A-Za-z_][A-Za-z0-9\-_]*)/i,/^(?:"[^\"]*")/i,/^(?:,)/i,/^(?::)/i],conditions:{bol:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25],inclusive:!0},INITIAL:{rules:[0,1,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25],inclusive:!0}}};return b})();y.lexer=v;function x(){this.yy={}}return o(x,"Parser"),x.prototype=y,y.Parser=x,new x})();zW.parser=zW;o6e=zW});function s0t(){return Pn(a0t,Zt().venn)}var GW,VW,qW,UW,WW,HW,jpt,Xpt,N3,Kpt,Qpt,Zpt,Jpt,C_,e0t,t0t,r0t,n0t,i0t,a0t,o0t,c6e,u6e=O(()=>{"use strict";ar();$r();si();La();GW=[],VW=[],qW=[],UW=new Set,HW=!1,jpt=o((t,e,r)=>{let n=C_(t).sort(),i=r??10/Math.pow(t.length,2);WW=n,n.length===1&&UW.add(n[0]),GW.push({sets:n,size:i,label:e?N3(e):void 0})},"addSubsetData"),Xpt=o(()=>GW,"getSubsetData"),N3=o(t=>{let e=t.trim();return e.length>=2&&e.startsWith('"')&&e.endsWith('"')?e.slice(1,-1):e},"normalizeText"),Kpt=o(t=>t&&N3(t),"normalizeStyleValue"),Qpt=o((t,e,r)=>{let n=N3(e);VW.push({sets:C_(t).sort(),id:n,label:r?N3(r):void 0})},"addTextData"),Zpt=o((t,e)=>{let r=C_(t).sort(),n={};for(let[i,a]of e)n[i]=Kpt(a)??a;qW.push({targets:r,styles:n})},"addStyleData"),Jpt=o(()=>qW,"getStyleData"),C_=o(t=>t.map(e=>N3(e)),"normalizeIdentifierList"),e0t=o(t=>{let r=C_(t).filter(n=>!UW.has(n));if(r.length>0)throw new Error(`unknown set identifier: ${r.join(", ")}`)},"validateUnionIdentifiers"),t0t=o(()=>VW,"getTextData"),r0t=o(()=>WW,"getCurrentSets"),n0t=o(()=>HW,"getIndentMode"),i0t=o(t=>{HW=t},"setIndentMode"),a0t=gr.venn;o(s0t,"getConfig");o0t=o(()=>{_r(),GW.length=0,VW.length=0,qW.length=0,UW.clear(),WW=void 0,HW=!1},"customClear"),c6e={getConfig:s0t,clear:o0t,setAccTitle:Lr,getAccTitle:Or,setDiagramTitle:zr,getDiagramTitle:Fr,getAccDescription:Br,setAccDescription:Pr,addSubsetData:jpt,getSubsetData:Xpt,addTextData:Qpt,addStyleData:Zpt,validateUnionIdentifiers:e0t,getTextData:t0t,getStyleData:Jpt,getCurrentSets:r0t,getIndentMode:n0t,setIndentMode:i0t}});var l0t,h6e,f6e=O(()=>{"use strict";l0t=o(t=>` + .venn-title { + font-size: 32px; + fill: ${t.vennTitleTextColor}; + font-family: ${t.fontFamily}; + } + + .venn-circle text { + font-size: 48px; + font-family: ${t.fontFamily}; + } + + .venn-intersection text { + font-size: 48px; + fill: ${t.vennSetTextColor}; + font-family: ${t.fontFamily}; + } + + .venn-text-node { + font-family: ${t.fontFamily}; + color: ${t.vennSetTextColor}; + } +`,"getStyles"),h6e=l0t});function A_(t,e){let r=u0t(t),n=r.filter(l=>c0t(l,t)),i=0,a=0,s=[];if(n.length>1){let l=g6e(n);for(let h=0;hf.angle-h.angle);let u=n[n.length-1];for(let h=0;hg.radius*2&&(T=g.radius*2),(p==null||p.width>T)&&(p={circle:g,width:T,p1:f,p2:u,large:T>g.radius,sweep:!0})}p!=null&&(s.push(p),i+=XW(p.circle.radius,p.width),u=f)}}else{let l=t[0];for(let h=1;hMath.abs(l.radius-t[h].radius)){u=!0;break}u?i=a=0:(i=l.radius*l.radius*Math.PI,s.push({circle:l,p1:{x:l.x,y:l.y+l.radius},p2:{x:l.x-1e-10,y:l.y+l.radius},width:l.radius*2,large:!0,sweep:!0}))}return a/=2,e&&(e.area=i+a,e.arcArea=i,e.polygonArea=a,e.arcs=s,e.innerPoints=n,e.intersectionPoints=r),i+a}function c0t(t,e){return e.every(r=>No(t,r)=t+e)return 0;if(r<=Math.abs(t-e))return Math.PI*Math.min(t,e)*Math.min(t,e);let n=t-(r*r-e*e+t*t)/(2*r),i=e-(r*r-t*t+e*e)/(2*r);return XW(t,n)+XW(e,i)}function m6e(t,e){let r=No(t,e),n=t.radius,i=e.radius;if(r>=n+i||r<=Math.abs(n-i))return[];let a=(n*n-i*i+r*r)/(2*r),s=Math.sqrt(n*n-a*a),l=t.x+a*(e.x-t.x)/r,u=t.y+a*(e.y-t.y)/r,h=-(e.y-t.y)*(s/r),f=-(e.x-t.x)*(s/r);return[{x:l+h,y:u-f},{x:l-h,y:u+f}]}function g6e(t){let e={x:0,y:0};for(let r of t)e.x+=r.x,e.y+=r.y;return e.x/=t.length,e.y/=t.length,e}function h0t(t,e,r,n){n=n||{};let i=n.maxIterations||100,a=n.tolerance||1e-10,s=t(e),l=t(r),u=r-e;if(s*l>0)throw"Initial bisect points must have opposite signs";if(s===0)return e;if(l===0)return r;for(let h=0;h=0&&(e=f),Math.abs(u)KW(e))}function e2(t,e){let r=0;for(let n=0;nw.fx-k.fx,"sortOrder"),x=e.slice(),b=e.slice(),T=e.slice(),E=e.slice();for(let w=0;w{let L=A.slice();return L.fx=A.fx,L.id=A.id,L});S.sort((A,L)=>A.id-L.id),r.history.push({x:g[0].slice(),fx:g[0].fx,simplex:S})}p=0;for(let S=0;S=g[m-1].fx){let S=!1;if(b.fx>k.fx?(hf(T,1+f,x,-f,k),T.fx=t(T),T.fx=1)break;for(let A=1;Al+a*i*u||h>=v)y=i;else{if(Math.abs(d)<=-s*u)return i;d*(y-g)>=0&&(y=g),g=i,v=h}return 0}o(m,"zoom");for(let g=0;g<10;++g){if(hf(n.x,1,r.x,i,e),h=n.fx=t(n.x,n.fxprime),d=e2(n.fxprime,e),h>l+a*i*u||g&&h>=f)return m(p,i,f);if(Math.abs(d)<=-s*u)return i;if(d>=0)return m(i,p,h);f=h,p=i,i*=2}return i}function d0t(t,e,r){let n={x:e.slice(),fx:0,fxprime:e.slice()},i={x:e.slice(),fx:0,fxprime:e.slice()},a=e.slice(),s,l,u=1,h;r=r||{},h=r.maxIterations||e.length*20,n.fx=t(n.x,n.fxprime),s=n.fxprime.slice(),ZW(s,n.fxprime,-1);for(let f=0;f{let d={};for(let p=0;ptH(t,e,n)-r,0,t+e)}function p0t(t,e={}){let r=e.distinct,n=t.map(l=>Object.assign({},l));function i(l){return l.join(";")}if(o(i,"toKey"),r){let l=new Map;for(let u of n)for(let h=0;hl===u?0:la.sets.length===2).forEach(a=>{let s=r[a.sets[0]],l=r[a.sets[1]],u=Math.sqrt(e[s].size/Math.PI),h=Math.sqrt(e[l].size/Math.PI),f=JW(u,h,a.size);n[s][l]=n[l][s]=f;let d=0;a.size+1e-10>=Math.min(e[s].size,e[l].size)?d=1:a.size<=1e-10&&(d=-1),i[s][l]=i[l][s]=d}),{distances:n,constraints:i}}function g0t(t,e,r,n){for(let a=0;a0&&g<=d||p<0&&g>=d||(i+=2*y*y,e[2*a]+=4*y*(s-h),e[2*a+1]+=4*y*(l-f),e[2*u]+=4*y*(h-s),e[2*u+1]+=4*y*(f-l))}}return i}function y0t(t,e={}){let r=x0t(t,e),n=e.lossFunction||t2;if(t.length>=8){let i=v0t(t,e),a=n(i,t),s=n(r,t);a+1e-8p.map(m=>m/l));let u=o((p,m)=>g0t(p,m,a,s),"obj"),h=null;for(let p=0;pd.sets.length===2);for(let d of t){let p=d.weight!=null?d.weight:1,m=d.sets[0],g=d.sets[1];d.size+x6e>=Math.min(n[m].size,n[g].size)&&(p=0),i[m].push({set:g,size:d.size,weight:p}),i[g].push({set:m,size:d.size,weight:p})}let a=[];Object.keys(i).forEach(d=>{let p=0;for(let m=0;mt[s]));let a=n.weight!=null?n.weight:1;r+=a*(i-n.size)*(i-n.size)}return r}function b6e(t,e){let r=0;for(let n of e){if(n.sets.length===1)continue;let i;if(n.sets.length===2){let l=t[n.sets[0]],u=t[n.sets[1]];i=tH(l.radius,u.radius,No(l,u))}else i=A_(n.sets.map(l=>t[l]));let a=n.weight!=null?n.weight:1,s=Math.log((i+1)/(n.size+1));r+=a*s*s}return r}function b0t(t,e,r){if(r==null?t.sort((i,a)=>a.radius-i.radius):t.sort(r),t.length>0){let i=t[0].x,a=t[0].y;for(let s of t)s.x-=i,s.y-=a}if(t.length===2&&No(t[0],t[1])1){let i=Math.atan2(t[1].x,t[1].y)-e,a=Math.cos(i),s=Math.sin(i);for(let l of t){let u=l.x,h=l.y;l.x=a*u-s*h,l.y=s*u+a*h}}if(t.length>2){let i=Math.atan2(t[2].x,t[2].y)-e;for(;i<0;)i+=2*Math.PI;for(;i>2*Math.PI;)i-=2*Math.PI;if(i>Math.PI){let a=t[1].y/(1e-10+t[1].x);for(let s of t){var n=(s.x+a*s.y)/(1+a*a);s.x=2*n-s.x,s.y=2*n*a-s.y}}}}function T0t(t){t.forEach(i=>{i.parent=i});function e(i){return i.parent!==i&&(i.parent=e(i.parent)),i.parent}o(e,"find");function r(i,a){let s=e(i),l=e(a);s.parent=l}o(r,"union");for(let i=0;i{delete i.parent}),Array.from(n.values())}function eH(t){let e=o(r=>{let n=t.reduce((a,s)=>Math.max(a,s[r]+s.radius),Number.NEGATIVE_INFINITY),i=t.reduce((a,s)=>Math.min(a,s[r]-s.radius),Number.POSITIVE_INFINITY);return{max:n,min:i}},"minMax");return{xRange:e("x"),yRange:e("y")}}function T6e(t,e,r){e==null&&(e=Math.PI/2);let n=E6e(t).map(h=>Object.assign({},h)),i=T0t(n);for(let h of i){b0t(h,e,r);let f=eH(h);h.size=(f.xRange.max-f.xRange.min)*(f.yRange.max-f.yRange.min),h.bounds=f}i.sort((h,f)=>f.size-h.size),n=i[0];let a=n.bounds,s=(a.xRange.max-a.xRange.min)/50;function l(h,f,d){if(!h)return;let p=h.bounds,m,g;if(f)m=a.xRange.max-p.xRange.min+s;else{m=a.xRange.max-p.xRange.max;let y=(p.xRange.max-p.xRange.min)/2-(a.xRange.max-a.xRange.min)/2;y<0&&(m+=y)}if(d)g=a.yRange.max-p.yRange.min+s;else{g=a.yRange.max-p.yRange.max;let y=(p.yRange.max-p.yRange.min)/2-(a.yRange.max-a.yRange.min)/2;y<0&&(g+=y)}for(let y of h)y.x+=m,y.y+=g,n.push(y)}o(l,"addCluster");let u=1;for(;u({radius:f*m.radius,x:n+d+(m.x-s.min)*f,y:n+p+(m.y-l.min)*f,setid:m.setid})))}function k6e(t){let e={};for(let r of t)e[r.setid]=r;return e}function E6e(t){return Object.keys(t).map(r=>Object.assign(t[r],{setid:r}))}function S6e(t={}){let e=!1,r=600,n=350,i=15,a=1e3,s=Math.PI/2,l=!0,u=null,h=!0,f=!0,d=null,p=null,m=!1,g=null,y=t&&t.symmetricalTextCentre?t.symmetricalTextCentre:!1,v={},x=t&&t.colourScheme?t.colourScheme:t&&t.colorScheme?t.colorScheme:["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf"],b=0,T=o(function(S){if(S in v)return v[S];var A=v[S]=x[b];return b+=1,b>=x.length&&(b=0),A},"colours"),E=v6e,w=t2;function k(S){let A=S.datum(),L=new Set;A.forEach(Y=>{Y.size==0&&Y.sets.length==1&&L.add(Y.sets[0])}),A=A.filter(Y=>!Y.sets.some(le=>L.has(le)));let I={},N={};if(A.length>0){let Y=E(A,{lossFunction:w,distinct:m});l&&(Y=T6e(Y,s,p)),I=w6e(Y,r,n,i,u),N=A6e(I,A,y)}let C={};A.forEach(Y=>{Y.label&&(C[Y.sets]=Y.label)});function _(Y){if(Y.sets in C)return C[Y.sets];if(Y.sets.length==1)return""+Y.sets[0]}o(_,"label"),S.selectAll("svg").data([I]).enter().append("svg");let D=S.select("svg");e?D.attr("viewBox",`0 0 ${r} ${n}`):D.attr("width",r).attr("height",n);let M={},R=!1;D.selectAll(".venn-area path").each(function(Y){let le=this.getAttribute("d");Y.sets.length==1&&le&&!m&&(R=!0,M[Y.sets[0]]=E0t(le))});function P(Y){return le=>{let ee=Y.sets.map(J=>{let te=M[J],Z=I[J];return te||(te={x:r/2,y:n/2,radius:1}),Z||(Z={x:r/2,y:n/2,radius:1}),{x:te.x*(1-le)+Z.x*le,y:te.y*(1-le)+Z.y*le,radius:te.radius*(1-le)+Z.radius*le}});return p6e(ee,g)}}o(P,"pathTween");let B=D.selectAll(".venn-area").data(A,Y=>Y.sets),F=B.enter().append("g").attr("class",Y=>`venn-area venn-${Y.sets.length==1?"circle":"intersection"}${Y.colour||Y.color?" venn-coloured":""}`).attr("data-venn-sets",Y=>Y.sets.join("_")),G=F.append("path"),$=F.append("text").attr("class","label").text(Y=>_(Y)).attr("text-anchor","middle").attr("dy",".35em").attr("x",r/2).attr("y",n/2);f&&(G.style("fill-opacity","0").filter(Y=>Y.sets.length==1).style("fill",Y=>Y.colour?Y.colour:Y.color?Y.color:T(Y.sets)).style("fill-opacity",".25"),$.style("fill",Y=>Y.colour||Y.color?"#FFF":t.textFill?t.textFill:Y.sets.length==1?T(Y.sets):"#444"));function V(Y){return typeof Y.transition=="function"?Y.transition("venn").duration(a):Y}o(V,"asTransition");let X=S;R&&typeof X.transition=="function"?(X=V(S),X.selectAll("path").attrTween("d",P)):X.selectAll("path").attr("d",Y=>p6e(Y.sets.map(le=>I[le])),g);let Q=X.selectAll("text").filter(Y=>Y.sets in N).text(Y=>_(Y)).attr("x",Y=>Math.floor(N[Y.sets].x)).attr("y",Y=>Math.floor(N[Y.sets].y));h&&(R?"on"in Q?Q.on("end",YW(I,_)):Q.each("end",YW(I,_)):Q.each(YW(I,_)));let H=V(B.exit()).remove();typeof B.transition=="function"&&H.selectAll("path").attrTween("d",P);let ie=H.selectAll("text").attr("x",r/2).attr("y",n/2);return d!==null&&($.style("font-size","0px"),Q.style("font-size",d),ie.style("font-size","0px")),{circles:I,textCentres:N,nodes:B,enter:F,update:X,exit:H}}return o(k,"chart"),k.wrap=function(S){return arguments.length?(h=S,k):h},k.useViewBox=function(){return e=!0,k},k.width=function(S){return arguments.length?(r=S,k):r},k.height=function(S){return arguments.length?(n=S,k):n},k.padding=function(S){return arguments.length?(i=S,k):i},k.distinct=function(S){return arguments.length?(m=S,k):m},k.colours=function(S){return arguments.length?(T=S,k):T},k.colors=function(S){return arguments.length?(T=S,k):T},k.fontSize=function(S){return arguments.length?(d=S,k):d},k.round=function(S){return arguments.length?(g=S,k):g},k.duration=function(S){return arguments.length?(a=S,k):a},k.layoutFunction=function(S){return arguments.length?(E=S,k):E},k.normalize=function(S){return arguments.length?(l=S,k):l},k.scaleToFit=function(S){return arguments.length?(u=S,k):u},k.styled=function(S){return arguments.length?(f=S,k):f},k.orientation=function(S){return arguments.length?(s=S,k):s},k.orientationOrder=function(S){return arguments.length?(p=S,k):p},k.lossFunction=function(S){return arguments.length?(w=S==="default"?t2:S==="logRatio"?b6e:S,k):w},k}function YW(t,e){return function(r){let n=this,i=t[r.sets[0]].radius||50,a=e(r)||"",s=a.split(/\s+/).reverse(),u=(a.length+s.length)/3,h=s.pop(),f=[h],d=0,p=1.1;n.textContent=null;let m=[];function g(T){let E=n.ownerDocument.createElementNS(n.namespaceURI,"tspan");return E.textContent=T,m.push(E),n.append(E),E}o(g,"append");let y=g(h);for(;h=s.pop(),!!h;){f.push(h);let T=f.join(" ");y.textContent=T,T.length>u&&y.getComputedTextLength()>i&&(f.pop(),y.textContent=f.join(" "),f=[h],y=g(h),d++)}let v=.35-d*p/2,x=n.getAttribute("x"),b=n.getAttribute("y");m.forEach((T,E)=>{T.setAttribute("x",x),T.setAttribute("y",b),T.setAttribute("dy",`${v+E*p}em`)})}}function jW(t,e,r){let n=e[0].radius-No(e[0],t);for(let i=1;i=a&&(i=n[f],a=d)}let s=y6e(f=>-1*jW({x:f[0],y:f[1]},t,e),[i.x,i.y],{maxIterations:500,minErrorDelta:1e-10}).x,l={x:r?0:s[0],y:s[1]},u=!0;for(let f of t)if(No(l,f)>f.radius){u=!1;break}for(let f of e)if(No(l,f)f.p1))}function w0t(t){let e={},r=Object.keys(t);for(let n of r)e[n]=[];for(let n=0;n0&&console.log("WARNING: area "+s+" not represented on screen")}return n}function k0t(t,e,r){let n=[];return n.push(` +M`,t,e),n.push(` +m`,-r,0),n.push(` +a`,r,r,0,1,0,r*2,0),n.push(` +a`,r,r,0,1,0,-r*2,0),n.join(" ")}function E0t(t){let e=t.split(" ");return{x:Number.parseFloat(e[1]),y:Number.parseFloat(e[2]),radius:-Number.parseFloat(e[4])}}function _6e(t){if(t.length===0)return[];let e={};return A_(t,e),e.arcs}function D6e(t,e){if(t.length===0)return"M 0 0";let r=Math.pow(10,e||0),n=e!=null?a=>Math.round(a*r)/r:a=>a;if(t.length==1){let a=t[0].circle;return k0t(n(a.x),n(a.y),n(a.radius))}let i=[` +M`,n(t[0].p2.x),n(t[0].p2.y)];for(let a of t){let s=n(a.circle.radius);i.push(` +A`,s,s,0,a.large?1:0,a.sweep?1:0,n(a.p1.x),n(a.p1.y))}return i.join(" ")}function p6e(t,e){return D6e(_6e(t),e)}function R6e(t,e={}){let{lossFunction:r,layoutFunction:n=v6e,normalize:i=!0,orientation:a=Math.PI/2,orientationOrder:s,width:l=600,height:u=350,padding:h=15,scaleToFit:f=!1,symmetricalTextCentre:d=!1,distinct:p,round:m=2}=e,g=n(t,{lossFunction:r==="default"||!r?t2:r==="logRatio"?b6e:r,distinct:p});i&&(g=T6e(g,a,s));let y=w6e(g,l,u,h,f),v=A6e(y,t,d),x=new Map(Object.keys(y).map(E=>[E,{set:E,x:y[E].x,y:y[E].y,radius:y[E].radius}])),b=t.map(E=>{let w=E.sets.map(A=>x.get(A)),k=_6e(w),S=D6e(k,m);return{circles:w,arcs:k,path:S,area:E,has:new Set(E.sets)}});function T(E){let w="";for(let k of b)k.has.size>E.length&&E.every(S=>k.has.has(S))&&(w+=" "+k.path);return w}return o(T,"genDistinctPath"),b.map(({circles:E,arcs:w,path:k,area:S})=>({data:S,text:v[S.sets],circles:E,arcs:w,path:k,distinctPath:k+T(S.sets)}))}var x6e,L6e=O(()=>{"use strict";o(A_,"intersectionArea");o(c0t,"containedInCircles");o(u0t,"getIntersectionPoints");o(XW,"circleArea");o(No,"distance");o(tH,"circleOverlap");o(m6e,"circleCircleIntersection");o(g6e,"getCenter");o(h0t,"bisect");o(KW,"zeros");o(d6e,"zerosM");o(e2,"dot");o(QW,"norm2");o(ZW,"scale");o(hf,"weightedSum");o(y6e,"nelderMead");o(f0t,"wolfeLineSearch");o(d0t,"conjugateGradient");o(v6e,"venn");x6e=1e-10;o(JW,"distanceFromIntersectArea");o(p0t,"addMissingAreas");o(m0t,"getDistanceMatrices");o(g0t,"constrainedMDSGradient");o(y0t,"bestInitialLayout");o(v0t,"constrainedMDSLayout");o(x0t,"greedyLayout");o(t2,"lossFunction");o(b6e,"logRatioLossFunction");o(b0t,"orientateCircles");o(T0t,"disjointCluster");o(eH,"getBoundingBox");o(T6e,"normalizeSolution");o(w6e,"scaleSolution");o(k6e,"toObjectNotation");o(E6e,"fromObjectNotation");o(S6e,"VennDiagram");o(YW,"wrapText");o(jW,"circleMargin");o(C6e,"computeTextCentre");o(w0t,"getOverlappingCircles");o(A6e,"computeTextCentres");o(k0t,"circlePath");o(E0t,"circleFromPath");o(_6e,"intersectionAreaArcs");o(D6e,"arcsToPath");o(p6e,"intersectionAreaPath");o(R6e,"layout")});function C0t(t){let e=new Map;for(let r of t){let n=r.targets.join("|"),i=e.get(n);i?Object.assign(i,r.styles):e.set(n,{...r.styles})}return e}function ng(t){return t.join("|")}function _0t(t,e,r,n,i,a){let s=t?.useDebugLayout??!1,u=r.select("svg").append("g").attr("class","venn-text-nodes"),h=new Map;for(let f of n){let d=ng(f.sets),p=h.get(d);p?p.push(f):h.set(d,[f])}for(let[f,d]of h.entries()){let p=e.get(f);if(!p?.text)continue;let m=p.text.x,g=p.text.y,y=Math.min(...p.circles.map(D=>D.radius)),v=Math.min(...p.circles.map(D=>D.radius-Math.hypot(m-D.x,g-D.y))),x=Number.isFinite(v)?Math.max(0,v):0;x===0&&Number.isFinite(y)&&(x=y*.6);let b=u.append("g").attr("class","venn-text-area").attr("font-size",`${40*i}px`);s&&b.append("circle").attr("class","venn-text-debug-circle").attr("cx",m).attr("cy",g).attr("r",x).attr("fill","none").attr("stroke","purple").attr("stroke-width",1.5*i).attr("stroke-dasharray",`${6*i} ${4*i}`);let T=Math.max(80*i,x*2*.95),E=Math.max(60*i,x*2*.95),S=(p.data.label&&p.data.label.length>0?Math.min(32*i,x*.25):0)+(d.length<=2?30*i:0),A=m-T/2,L=g-E/2+S,I=Math.max(1,Math.ceil(Math.sqrt(d.length))),N=Math.max(1,Math.ceil(d.length/I)),C=T/I,_=E/N;for(let[D,M]of d.entries()){let R=D%I,P=Math.floor(D/I),B=A+C*(R+.5),F=L+_*(P+.5);s&&b.append("rect").attr("class","venn-text-debug-cell").attr("x",A+C*R).attr("y",L+_*P).attr("width",C).attr("height",_).attr("fill","none").attr("stroke","teal").attr("stroke-width",1*i).attr("stroke-dasharray",`${4*i} ${3*i}`);let G=C*.9,$=_*.9,V=b.append("foreignObject").attr("class","venn-text-node-fo").attr("width",G).attr("height",$).attr("x",B-G/2).attr("y",F-$/2).attr("overflow","visible"),X=a.get(M.id)?.color,Q=V.append("xhtml:span").attr("class","venn-text-node").style("display","flex").style("width","100%").style("height","100%").style("white-space","normal").style("align-items","center").style("justify-content","center").style("text-align","center").style("overflow-wrap","normal").style("word-break","normal").text(M.label??M.id);X&&Q.style("color",X)}}}var A0t,N6e,M6e=O(()=>{"use strict";Ar();Ys();$r();Ul();L6e();Ti();Wt();o(C0t,"buildStyleByKey");A0t=o((t,e,r,n)=>{let i=n.db,a=i.getConfig?.(),{themeVariables:s,look:l,handDrawnSeed:u}=Zt(),h=l==="handDrawn",f=[s.venn1,s.venn2,s.venn3,s.venn4,s.venn5,s.venn6,s.venn7,s.venn8].filter(Boolean),d=i.getDiagramTitle?.(),p=i.getSubsetData(),m=i.getTextData(),g=C0t(i.getStyleData()),y=a?.width??800,v=a?.height??450,b=y/1600,T=d?48*b:0,E=s.primaryTextColor??s.textColor,w=Ii(e);w.attr("viewBox",`0 0 ${y} ${v}`),d&&w.append("text").text(d).attr("class","venn-title").attr("font-size",`${32*b}px`).attr("text-anchor","middle").attr("dominant-baseline","middle").attr("x","50%").attr("y",32*b).style("fill",s.vennTitleTextColor||s.titleColor);let k=je(document.createElement("div")),S=S6e().width(y).height(v-T);k.datum(p).call(S);let A=h?Je.svg(k.select("svg").node()):void 0,L=R6e(p,{width:y,height:v-T,padding:a?.padding??15}),I=new Map;for(let D of L){let M=ng([...D.data.sets].sort());I.set(M,D)}m.length>0&&_0t(a,I,k,m,b,g);let N=Ji(s.background||"#f4f4f4");k.selectAll(".venn-circle").each(function(D,M){let R=je(this),B=ng([...D.sets].sort()),F=g.get(B),G=F?.fill||f[M%f.length]||s.primaryColor;R.classed(`venn-set-${M%8}`,!0);let $=F?.["fill-opacity"]??.1,V=F?.stroke||G,X=F?.["stroke-width"]||`${5*b}`;if(h&&A){let H=I.get(B);if(H&&H.circles.length>0){let ie=H.circles[0],Y=A.circle(ie.x,ie.y,ie.radius*2,{roughness:.7,seed:u,fill:K3(G,.7),fillStyle:"hachure",fillWeight:2,hachureGap:8,hachureAngle:-41+M*60,stroke:V,strokeWidth:parseFloat(String(X))});R.select("path").remove(),R.node()?.insertBefore(Y,R.select("text").node())}}else R.select("path").style("fill",G).style("fill-opacity",$).style("stroke",V).style("stroke-width",X).style("stroke-opacity",.95);let Q=F?.color||(N?Lt(G,30):Bt(G,30));R.select("text").style("font-size",`${48*b}px`).style("fill",Q)}),h&&A?k.selectAll(".venn-intersection").each(function(D){let M=je(this),P=ng([...D.sets].sort()),B=g.get(P),F=B?.fill;if(F){let G=M.select("path"),$=G.attr("d");if($){let V=A.path($,{roughness:.7,seed:u,fill:K3(F,.3),fillStyle:"cross-hatch",fillWeight:2,hachureGap:6,hachureAngle:60,stroke:"none"}),X=G.node();X?.parentNode?.insertBefore(V,X),G.remove()}}else M.select("path").style("fill-opacity",0);M.select("text").style("font-size",`${48*b}px`).style("fill",B?.color??s.vennSetTextColor??E)}):(k.selectAll(".venn-intersection text").style("font-size",`${48*b}px`).style("fill",D=>{let R=ng([...D.sets].sort());return g.get(R)?.color??s.vennSetTextColor??E}),k.selectAll(".venn-intersection path").style("fill-opacity",D=>{let R=ng([...D.sets].sort());return g.get(R)?.fill?1:0}).style("fill",D=>{let R=ng([...D.sets].sort());return g.get(R)?.fill??"transparent"}));let C=w.append("g").attr("transform",`translate(0, ${T})`),_=k.select("svg").node();if(_&&"childNodes"in _)for(let D of[..._.childNodes])C.node()?.appendChild(D);Zr(w,v,y,a?.useMaxWidth??!0)},"draw");o(ng,"stableSetsKey");o(_0t,"renderTextNodes");N6e={draw:A0t}});var I6e={};vr(I6e,{diagram:()=>D0t});var D0t,O6e=O(()=>{"use strict";l6e();u6e();f6e();M6e();D0t={parser:o6e,db:c6e,renderer:N6e,styles:h6e}});var r2,rH=O(()=>{"use strict";La();$r();ar();Ut();si();r2=class{constructor(){this.nodes=[];this.levels=new Map;this.outerNodes=[];this.classes=new Map;this.setAccTitle=Lr;this.getAccTitle=Or;this.setDiagramTitle=zr;this.getDiagramTitle=Fr;this.getAccDescription=Br;this.setAccDescription=Pr}static{o(this,"TreeMapDB")}getNodes(){return this.nodes}getConfig(){let e=gr,r=Zt();return Pn({...e.treemap,...r.treemap??{}})}addNode(e,r){this.nodes.push(e),this.levels.set(e,r),r===0&&(this.outerNodes.push(e),this.root??=e)}getRoot(){return{name:"",children:this.outerNodes}}addClass(e,r){let n=this.classes.get(e)??{id:e,styles:[],textStyles:[]},i=r.replace(/\\,/g,"\xA7\xA7\xA7").replace(/,/g,";").replace(/§§§/g,",").split(";");i&&i.forEach(a=>{ub(a)&&(n?.textStyles?n.textStyles.push(a):n.textStyles=[a]),n?.styles?n.styles.push(a):n.styles=[a]}),this.classes.set(e,n)}getClasses(){return this.classes}getStylesForClass(e){return this.classes.get(e)?.styles??[]}clear(){_r(),this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.root=void 0}}});function F6e(t){if(!t.length)return[];let e=[],r=[];return t.forEach(n=>{let i={name:n.name,children:n.type==="Leaf"?void 0:[]};for(i.classSelector=n?.classSelector,n?.cssCompiledStyles&&(i.cssCompiledStyles=n.cssCompiledStyles),n.type==="Leaf"&&n.value!==void 0&&(i.value=n.value);r.length>0&&r[r.length-1].level>=n.level;)r.pop();if(r.length===0)e.push(i);else{let a=r[r.length-1].node;a.children?a.children.push(i):a.children=[i]}n.type!=="Leaf"&&r.push({node:i,level:n.level})}),e}var $6e=O(()=>{"use strict";o(F6e,"buildHierarchy")});var M0t,I0t,nH,z6e=O(()=>{"use strict";up();xt();Vm();$6e();rH();M0t=o((t,e)=>{ql(t,e);let r=[];for(let a of t.TreemapRows??[])a.$type==="ClassDefStatement"&&e.addClass(a.className??"",a.styleText??"");for(let a of t.TreemapRows??[]){let s=a.item;if(!s)continue;let l=a.indent?parseInt(a.indent):0,u=I0t(s),h=s.classSelector?e.getStylesForClass(s.classSelector):[],f=h.length>0?h:void 0,d={level:l,name:u,type:s.$type,value:s.value,classSelector:s.classSelector,cssCompiledStyles:f};r.push(d)}let n=F6e(r),i=o((a,s)=>{for(let l of a)e.addNode(l,s),l.children&&l.children.length>0&&i(l.children,s+1)},"addNodesRecursively");i(n,0)},"populate"),I0t=o(t=>t.name?String(t.name):"","getItemName"),nH={parser:{yy:void 0},parse:o(async t=>{try{let r=await Us("treemap",t);K.debug("Treemap AST:",r);let n=nH.parser?.yy;if(!(n instanceof r2))throw new Error("parser.parser?.yy was not a TreemapDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");M0t(r,n)}catch(e){throw K.error("Error parsing treemap:",e),e}},"parse")}});var O0t,n2,M3,P0t,B0t,G6e,V6e=O(()=>{"use strict";Ul();Ld();Ti();Ar();Ut();$r();xt();O0t=10,n2=10,M3=25,P0t=o((t,e,r,n)=>{let i=n.db,a=i.getConfig(),s=a.padding??O0t,l=i.getDiagramTitle(),u=i.getRoot(),{themeVariables:h}=Zt();if(!u)return;let f=l?30:0,d=Ii(e),p=a.nodeWidth?a.nodeWidth*n2:960,m=a.nodeHeight?a.nodeHeight*n2:500,g=p,y=m+f;d.attr("viewBox",`0 0 ${g} ${y}`),Zr(d,y,g,a.useMaxWidth);let v;try{let D=a.valueFormat||",";if(D==="$0,0")v=o(M=>"$"+tu(",")(M),"valueFormat");else if(D.startsWith("$")&&D.includes(",")){let M=/\.\d+/.exec(D),R=M?M[0]:"";v=o(P=>"$"+tu(","+R)(P),"valueFormat")}else if(D.startsWith("$")){let M=D.substring(1);v=o(R=>"$"+tu(M||"")(R),"valueFormat")}else v=tu(D)}catch(D){K.error("Error creating format function:",D),v=tu(",")}let x=Fo().range(["transparent",h.cScale0,h.cScale1,h.cScale2,h.cScale3,h.cScale4,h.cScale5,h.cScale6,h.cScale7,h.cScale8,h.cScale9,h.cScale10,h.cScale11]),b=Fo().range(["transparent",h.cScalePeer0,h.cScalePeer1,h.cScalePeer2,h.cScalePeer3,h.cScalePeer4,h.cScalePeer5,h.cScalePeer6,h.cScalePeer7,h.cScalePeer8,h.cScalePeer9,h.cScalePeer10,h.cScalePeer11]),T=Fo().range([h.cScaleLabel0,h.cScaleLabel1,h.cScaleLabel2,h.cScaleLabel3,h.cScaleLabel4,h.cScaleLabel5,h.cScaleLabel6,h.cScaleLabel7,h.cScaleLabel8,h.cScaleLabel9,h.cScaleLabel10,h.cScaleLabel11]);l&&d.append("text").attr("x",g/2).attr("y",f/2).attr("class","treemapTitle").attr("text-anchor","middle").attr("dominant-baseline","middle").text(l);let E=d.append("g").attr("transform",`translate(0, ${f})`).attr("class","treemapContainer"),w=Mg(u).sum(D=>D.value??0).sort((D,M)=>(M.value??0)-(D.value??0)),S=_5().size([p,m]).paddingTop(D=>D.children&&D.children.length>0?M3+n2:0).paddingInner(s).paddingLeft(D=>D.children&&D.children.length>0?n2:0).paddingRight(D=>D.children&&D.children.length>0?n2:0).paddingBottom(D=>D.children&&D.children.length>0?n2:0).round(!0)(w),A=S.descendants().filter(D=>D.children&&D.children.length>0),L=E.selectAll(".treemapSection").data(A).enter().append("g").attr("class","treemapSection").attr("transform",D=>`translate(${D.x0},${D.y0})`);L.append("rect").attr("width",D=>D.x1-D.x0).attr("height",M3).attr("class","treemapSectionHeader").attr("fill","none").attr("fill-opacity",.6).attr("stroke-width",.6).attr("style",D=>D.depth===0?"display: none;":""),L.append("clipPath").attr("id",(D,M)=>`clip-section-${e}-${M}`).append("rect").attr("width",D=>Math.max(0,D.x1-D.x0-12)).attr("height",M3),L.append("rect").attr("width",D=>D.x1-D.x0).attr("height",D=>D.y1-D.y0).attr("class",(D,M)=>`treemapSection section${M}`).attr("fill",D=>x(D.data.name)).attr("fill-opacity",.6).attr("stroke",D=>b(D.data.name)).attr("stroke-width",2).attr("stroke-opacity",.4).attr("style",D=>{if(D.depth===0)return"display: none;";let M=Ze({cssCompiledStyles:D.data.cssCompiledStyles});return M.nodeStyles+";"+M.borderStyles.join(";")}),L.append("text").attr("class","treemapSectionLabel").attr("x",6).attr("y",M3/2).attr("dominant-baseline","middle").text(D=>D.depth===0?"":D.data.name).attr("font-weight","bold").attr("style",D=>{if(D.depth===0)return"display: none;";let M="dominant-baseline: middle; font-size: 12px; fill:"+T(D.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;",R=Ze({cssCompiledStyles:D.data.cssCompiledStyles});return M+R.labelStyles.replace("color:","fill:")}).each(function(D){if(D.depth===0)return;let M=je(this),R=D.data.name;M.text(R);let P=D.x1-D.x0,B=6,F;a.showValues!==!1&&D.value?F=P-10-30-10-B:F=P-B-6;let $=Math.max(15,F),V=M.node();if(V.getComputedTextLength()>$){let H=R;for(;H.length>0;){if(H=R.substring(0,H.length-1),H.length===0){M.text("..."),V.getComputedTextLength()>$&&M.text("");break}if(M.text(H+"..."),V.getComputedTextLength()<=$)break}}}),a.showValues!==!1&&L.append("text").attr("class","treemapSectionValue").attr("x",D=>D.x1-D.x0-10).attr("y",M3/2).attr("text-anchor","end").attr("dominant-baseline","middle").text(D=>D.value?v(D.value):"").attr("font-style","italic").attr("style",D=>{if(D.depth===0)return"display: none;";let M="text-anchor: end; dominant-baseline: middle; font-size: 10px; fill:"+T(D.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;",R=Ze({cssCompiledStyles:D.data.cssCompiledStyles});return M+R.labelStyles.replace("color:","fill:")});let I=S.leaves(),N=E.selectAll(".treemapLeafGroup").data(I).enter().append("g").attr("class",(D,M)=>`treemapNode treemapLeafGroup leaf${M}${D.data.classSelector?` ${D.data.classSelector}`:""}x`).attr("transform",D=>`translate(${D.x0},${D.y0})`);N.append("rect").attr("width",D=>D.x1-D.x0).attr("height",D=>D.y1-D.y0).attr("class","treemapLeaf").attr("fill",D=>D.parent?x(D.parent.data.name):x(D.data.name)).attr("style",D=>Ze({cssCompiledStyles:D.data.cssCompiledStyles}).nodeStyles).attr("fill-opacity",.3).attr("stroke",D=>D.parent?x(D.parent.data.name):x(D.data.name)).attr("stroke-width",3),N.append("clipPath").attr("id",(D,M)=>`clip-${e}-${M}`).append("rect").attr("width",D=>Math.max(0,D.x1-D.x0-4)).attr("height",D=>Math.max(0,D.y1-D.y0-4)),N.append("text").attr("class","treemapLabel").attr("x",D=>(D.x1-D.x0)/2).attr("y",D=>(D.y1-D.y0)/2).attr("style",D=>{let M="text-anchor: middle; dominant-baseline: middle; font-size: 38px;fill:"+T(D.data.name)+";",R=Ze({cssCompiledStyles:D.data.cssCompiledStyles});return M+R.labelStyles.replace("color:","fill:")}).attr("clip-path",(D,M)=>`url(#clip-${e}-${M})`).text(D=>D.data.name).each(function(D){let M=je(this),R=D.x1-D.x0,P=D.y1-D.y0,B=M.node(),F=4,G=R-2*F,$=P-2*F;if(G<10||$<10){M.style("display","none");return}let V=parseInt(M.style("font-size"),10),X=8,Q=28,H=.6,ie=6,Y=2;for(;B.getComputedTextLength()>G&&V>X;)V--,M.style("font-size",`${V}px`);let le=Math.max(ie,Math.min(Q,Math.round(V*H))),ee=V+Y+le;for(;ee>$&&V>X&&(V--,le=Math.max(ie,Math.min(Q,Math.round(V*H))),!(le$;M.style("font-size",`${V}px`),(B.getComputedTextLength()>G||V(M.x1-M.x0)/2).attr("y",function(M){return(M.y1-M.y0)/2}).attr("style",M=>{let R="text-anchor: middle; dominant-baseline: hanging; font-size: 28px;fill:"+T(M.data.name)+";",P=Ze({cssCompiledStyles:M.data.cssCompiledStyles});return R+P.labelStyles.replace("color:","fill:")}).attr("clip-path",(M,R)=>`url(#clip-${e}-${R})`).text(M=>M.value?v(M.value):"").each(function(M){let R=je(this),P=this.parentNode;if(!P){R.style("display","none");return}let B=je(P).select(".treemapLabel");if(B.empty()||B.style("display")==="none"){R.style("display","none");return}let F=parseFloat(B.style("font-size")),G=28,$=.6,V=6,X=2,Q=Math.max(V,Math.min(G,Math.round(F*$)));R.style("font-size",`${Q}px`);let ie=(M.y1-M.y0)/2+F/2+X;R.attr("y",ie);let Y=M.x1-M.x0,J=M.y1-M.y0-4,te=Y-8;R.node().getComputedTextLength()>te||ie+Q>J||Q{"use strict";ar();F0t={sectionStrokeColor:"black",sectionStrokeWidth:"1",sectionFillColor:"#efefef",leafStrokeColor:"black",leafStrokeWidth:"1",leafFillColor:"#efefef",labelColor:"black",labelFontSize:"12px",valueFontSize:"10px",valueColor:"black",titleColor:"black",titleFontSize:"14px"},$0t=o(({treemap:t}={})=>{let e=Pn(F0t,t);return` + .treemapNode.section { + stroke: ${e.sectionStrokeColor}; + stroke-width: ${e.sectionStrokeWidth}; + fill: ${e.sectionFillColor}; + } + .treemapNode.leaf { + stroke: ${e.leafStrokeColor}; + stroke-width: ${e.leafStrokeWidth}; + fill: ${e.leafFillColor}; + } + .treemapLabel { + fill: ${e.labelColor}; + font-size: ${e.labelFontSize}; + } + .treemapValue { + fill: ${e.valueColor}; + font-size: ${e.valueFontSize}; + } + .treemapTitle { + fill: ${e.titleColor}; + font-size: ${e.titleFontSize}; + } + `},"getStyles"),q6e=$0t});var W6e={};vr(W6e,{diagram:()=>z0t});var z0t,H6e=O(()=>{"use strict";rH();z6e();V6e();U6e();z0t={parser:nH,get db(){return new r2},renderer:G6e,styles:q6e}});var Cmt={};vr(Cmt,{default:()=>Smt});Xc();vD();Fp();var _Pe=o(t=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(t),"detector"),DPe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Jre(),Zre));return{id:"c4",diagram:t}},"loader"),RPe={id:"c4",detector:_Pe,loader:DPe},ene=RPe;var Vge="flowchart",Zet=o((t,e)=>e?.flowchart?.defaultRenderer==="dagre-wrapper"||e?.flowchart?.defaultRenderer==="elk"?!1:/^\s*graph/.test(t),"detector"),Jet=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(EC(),kC));return{id:Vge,diagram:t}},"loader"),ett={id:Vge,detector:Zet,loader:Jet},qge=ett;var Uge="flowchart-v2",ttt=o((t,e)=>e?.flowchart?.defaultRenderer==="dagre-d3"?!1:(e?.flowchart?.defaultRenderer==="elk"&&(e.layout="elk"),/^\s*graph/.test(t)&&e?.flowchart?.defaultRenderer==="dagre-wrapper"?!0:/^\s*flowchart/.test(t)),"detector"),rtt=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(EC(),kC));return{id:Uge,diagram:t}},"loader"),ntt={id:Uge,detector:ttt,loader:rtt},Wge=ntt;var ltt=o(t=>/^\s*erDiagram/.test(t),"detector"),ctt=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Jge(),Zge));return{id:"er",diagram:t}},"loader"),utt={id:"er",detector:ltt,loader:ctt},e1e=utt;var D4e="gitGraph",Nst=o(t=>/^\s*gitGraph/.test(t),"detector"),Mst=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(_4e(),A4e));return{id:D4e,diagram:t}},"loader"),Ist={id:D4e,detector:Nst,loader:Mst},R4e=Ist;var l3e="gantt",Tot=o(t=>/^\s*gantt/.test(t),"detector"),wot=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(o3e(),s3e));return{id:l3e,diagram:t}},"loader"),kot={id:l3e,detector:Tot,loader:wot},c3e=kot;var v3e="info",_ot=o(t=>/^\s*info/.test(t),"detector"),Dot=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(y3e(),g3e));return{id:v3e,diagram:t}},"loader"),x3e={id:v3e,detector:_ot,loader:Dot};var Vot=o(t=>/^\s*pie/.test(t),"detector"),qot=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(_3e(),A3e));return{id:"pie",diagram:t}},"loader"),D3e={id:"pie",detector:Vot,loader:qot};var V3e="quadrantChart",olt=o(t=>/^\s*quadrantChart/.test(t),"detector"),llt=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(G3e(),z3e));return{id:V3e,diagram:t}},"loader"),clt={id:V3e,detector:olt,loader:llt},q3e=clt;var gwe="xychart",Clt=o(t=>/^\s*xychart(-beta)?/.test(t),"detector"),Alt=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(mwe(),pwe));return{id:gwe,diagram:t}},"loader"),_lt={id:gwe,detector:Clt,loader:Alt},ywe=_lt;var Cwe="requirement",Nlt=o(t=>/^\s*requirement(Diagram)?/.test(t),"detector"),Mlt=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Swe(),Ewe));return{id:Cwe,diagram:t}},"loader"),Ilt={id:Cwe,detector:Nlt,loader:Mlt},Awe=Ilt;var Wwe="sequence",Rct=o(t=>/^\s*sequenceDiagram/.test(t),"detector"),Lct=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Uwe(),qwe));return{id:Wwe,diagram:t}},"loader"),Nct={id:Wwe,detector:Rct,loader:Lct},Hwe=Nct;var Zwe="class",Fct=o((t,e)=>e?.class?.defaultRenderer==="dagre-wrapper"?!1:/^\s*classDiagram/.test(t),"detector"),$ct=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Qwe(),Kwe));return{id:Zwe,diagram:t}},"loader"),zct={id:Zwe,detector:Fct,loader:$ct},Jwe=zct;var r5e="classDiagram",Vct=o((t,e)=>/^\s*classDiagram/.test(t)&&e?.class?.defaultRenderer==="dagre-wrapper"?!0:/^\s*classDiagram-v2/.test(t),"detector"),qct=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(t5e(),e5e));return{id:r5e,diagram:t}},"loader"),Uct={id:r5e,detector:Vct,loader:qct},n5e=Uct;var O5e="state",gut=o((t,e)=>e?.state?.defaultRenderer==="dagre-wrapper"?!1:/^\s*stateDiagram/.test(t),"detector"),yut=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(I5e(),M5e));return{id:O5e,diagram:t}},"loader"),vut={id:O5e,detector:gut,loader:yut},P5e=vut;var $5e="stateDiagram",but=o((t,e)=>!!(/^\s*stateDiagram-v2/.test(t)||/^\s*stateDiagram/.test(t)&&e?.state?.defaultRenderer==="dagre-wrapper"),"detector"),Tut=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(F5e(),B5e));return{id:$5e,diagram:t}},"loader"),wut={id:$5e,detector:but,loader:Tut},z5e=wut;var rke="journey",qut=o(t=>/^\s*journey/.test(t),"detector"),Uut=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(tke(),eke));return{id:rke,diagram:t}},"loader"),Wut={id:rke,detector:qut,loader:Uut},nke=Wut;xt();Ul();Ti();var Hut=o((t,e,r)=>{K.debug(`rendering svg for syntax error +`);let n=Ii(e),i=n.append("g");n.attr("viewBox","0 0 2412 512"),Zr(n,100,512,!0),i.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),i.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),i.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),i.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"),i.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),i.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),i.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text"),i.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${r}`)},"draw"),BU={draw:Hut},ike=BU;var Yut={db:{},renderer:BU,parser:{parse:o(()=>{},"parse")}},ake=Yut;var ske="flowchart-elk",jut=o((t,e={})=>/^\s*flowchart-elk/.test(t)||/^\s*(flowchart|graph)/.test(t)&&e?.flowchart?.defaultRenderer==="elk"?(e.layout="elk",!0):!1,"detector"),Xut=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(EC(),kC));return{id:ske,diagram:t}},"loader"),Kut={id:ske,detector:jut,loader:Xut},oke=Kut;var Mke="timeline",mht=o(t=>/^\s*timeline/.test(t),"detector"),ght=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Nke(),Lke));return{id:Mke,diagram:t}},"loader"),yht={id:Mke,detector:mht,loader:ght},Ike=yht;var Zke="mindmap",Sht=o(t=>/^\s*mindmap/.test(t),"detector"),Cht=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Qke(),Kke));return{id:Zke,diagram:t}},"loader"),Aht={id:Zke,detector:Sht,loader:Cht},Jke=Aht;var hEe="kanban",qht=o(t=>/^\s*kanban/.test(t),"detector"),Uht=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(uEe(),cEe));return{id:hEe,diagram:t}},"loader"),Wht={id:hEe,detector:qht,loader:Uht},fEe=Wht;var YEe="sankey",pft=o(t=>/^\s*sankey(-beta)?/.test(t),"detector"),mft=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(HEe(),WEe));return{id:YEe,diagram:t}},"loader"),gft={id:YEe,detector:pft,loader:mft},jEe=gft;var rSe="packet",Sft=o(t=>/^\s*packet(-beta)?/.test(t),"detector"),Cft=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(tSe(),eSe));return{id:rSe,diagram:t}},"loader"),nSe={id:rSe,detector:Sft,loader:Cft};var pSe="radar",jft=o(t=>/^\s*radar-beta/.test(t),"detector"),Xft=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(dSe(),fSe));return{id:pSe,diagram:t}},"loader"),mSe={id:pSe,detector:jft,loader:Xft};var vCe="block",ppt=o(t=>/^\s*block(-beta)?/.test(t),"detector"),mpt=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(yCe(),gCe));return{id:vCe,diagram:t}},"loader"),gpt={id:vCe,detector:ppt,loader:mpt},xCe=gpt;var GCe="architecture",Lpt=o(t=>/^\s*architecture/.test(t),"detector"),Npt=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(zCe(),$Ce));return{id:GCe,diagram:t}},"loader"),Mpt={id:GCe,detector:Lpt,loader:Npt},VCe=Mpt;var a6e="ishikawa",Hpt=o(t=>/^\s*ishikawa(-beta)?\b/i.test(t),"detector"),Ypt=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(i6e(),n6e));return{id:a6e,diagram:t}},"loader"),s6e={id:a6e,detector:Hpt,loader:Ypt};var P6e="venn",R0t=o(t=>/^\s*venn-beta/.test(t),"detector"),L0t=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(O6e(),I6e));return{id:P6e,diagram:t}},"loader"),N0t={id:P6e,detector:R0t,loader:L0t},B6e=N0t;Fp();jt();var Y6e="treemap",G0t=o(t=>/^\s*treemap/.test(t),"detector"),V0t=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(H6e(),W6e));return{id:Y6e,diagram:t}},"loader"),j6e={id:Y6e,detector:G0t,loader:V0t};var X6e=!1,i2=o(()=>{X6e||(X6e=!0,$p("error",ake,t=>t.toLowerCase().trim()==="error"),$p("---",{db:{clear:o(()=>{},"clear")},styles:{},renderer:{draw:o(()=>{},"draw")},parser:{parse:o(()=>{throw new Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks")},"parse")},init:o(()=>null,"init")},t=>t.toLowerCase().trimStart().startsWith("---")),B2(oke,Jke,VCe),B2(ene,fEe,n5e,Jwe,e1e,c3e,x3e,D3e,Awe,Hwe,Wge,qge,Ike,R4e,z5e,P5e,nke,q3e,jEe,nSe,ywe,xCe,mSe,s6e,j6e,B6e))},"addDiagrams");xt();Fp();jt();var K6e=o(async()=>{K.debug("Loading registered diagrams");let e=(await Promise.allSettled(Object.entries(uh).map(async([r,{detector:n,loader:i}])=>{if(i)try{V2(r)}catch{try{let{diagram:a,id:s}=await i();$p(s,a,n)}catch(a){throw K.error(`Failed to load external diagram with key ${r}. Removing from detectors.`),delete uh[r],a}}}))).filter(r=>r.status==="rejected");if(e.length>0){K.error(`Failed to load ${e.length} external diagrams`);for(let r of e)K.error(r);throw new Error(`Failed to load ${e.length} external diagrams`)}},"loadRegisteredDiagrams");xt();Ar();var __="comm",D_="rule",R_="decl";var Q6e="@import";var Z6e="@namespace",J6e="@keyframes";var eAe="@layer";var iH=Math.abs,I3=String.fromCharCode;function L_(t){return t.trim()}o(L_,"trim");function O3(t,e,r){return t.replace(e,r)}o(O3,"replace");function tAe(t,e,r){return t.indexOf(e,r)}o(tAe,"indexof");function wp(t,e){return t.charCodeAt(e)|0}o(wp,"charat");function kp(t,e,r){return t.slice(e,r)}o(kp,"substr");function ol(t){return t.length}o(ol,"strlen");function rAe(t){return t.length}o(rAe,"sizeof");function a2(t,e){return e.push(t),t}o(a2,"append");var N_=1,s2=1,nAe=0,jl=0,Xi=0,l2="";function M_(t,e,r,n,i,a,s,l){return{value:t,root:e,parent:r,type:n,props:i,children:a,line:N_,column:s2,length:s,return:"",siblings:l}}o(M_,"node");function iAe(){return Xi}o(iAe,"char");function aAe(){return Xi=jl>0?wp(l2,--jl):0,s2--,Xi===10&&(s2=1,N_--),Xi}o(aAe,"prev");function Xl(){return Xi=jl2||o2(Xi)>3?"":" "}o(lAe,"whitespace");function cAe(t,e){for(;--e&&Xl()&&!(Xi<48||Xi>102||Xi>57&&Xi<65||Xi>70&&Xi<97););return I_(t,P3()+(e<6&&ff()==32&&Xl()==32))}o(cAe,"escaping");function aH(t){for(;Xl();)switch(Xi){case t:return jl;case 34:case 39:t!==34&&t!==39&&aH(Xi);break;case 40:t===41&&aH(t);break;case 92:Xl();break}return jl}o(aH,"delimiter");function uAe(t,e){for(;Xl()&&t+Xi!==57;)if(t+Xi===84&&ff()===47)break;return"/*"+I_(e,jl-1)+"*"+I3(t===47?t:Xl())}o(uAe,"commenter");function hAe(t){for(;!o2(ff());)Xl();return I_(t,jl)}o(hAe,"identifier");function pAe(t){return oAe(P_("",null,null,null,[""],t=sAe(t),0,[0],t))}o(pAe,"compile");function P_(t,e,r,n,i,a,s,l,u){for(var h=0,f=0,d=s,p=0,m=0,g=0,y=1,v=1,x=1,b=0,T="",E=i,w=a,k=n,S=T;v;)switch(g=b,b=Xl()){case 40:if(g!=108&&wp(S,d-1)==58){tAe(S+=O3(O_(b),"&","&\f"),"&\f",iH(h?l[h-1]:0))!=-1&&(x=-1);break}case 34:case 39:case 91:S+=O_(b);break;case 9:case 10:case 13:case 32:S+=lAe(g);break;case 92:S+=cAe(P3()-1,7);continue;case 47:switch(ff()){case 42:case 47:a2(q0t(uAe(Xl(),P3()),e,r,u),u),(o2(g||1)==5||o2(ff()||1)==5)&&ol(S)&&kp(S,-1,void 0)!==" "&&(S+=" ");break;default:S+="/"}break;case 123*y:l[h++]=ol(S)*x;case 125*y:case 59:case 0:switch(b){case 0:case 125:v=0;case 59+f:x==-1&&(S=O3(S,/\f/g,"")),m>0&&(ol(S)-d||y===0&&g===47)&&a2(m>32?dAe(S+";",n,r,d-1,u):dAe(O3(S," ","")+";",n,r,d-2,u),u);break;case 59:S+=";";default:if(a2(k=fAe(S,e,r,h,f,i,l,T,E=[],w=[],d,a),a),b===123)if(f===0)P_(S,e,k,k,E,a,d,l,w);else{switch(p){case 99:if(wp(S,3)===110)break;case 108:if(wp(S,2)===97)break;default:f=0;case 100:case 109:case 115:}f?P_(t,k,k,n&&a2(fAe(t,k,k,0,0,i,l,T,i,E=[],d,w),w),i,w,d,l,n?E:w):P_(S,k,k,k,[""],w,0,l,w)}}h=f=m=0,y=x=1,T=S="",d=s;break;case 58:d=1+ol(S),m=g;default:if(y<1){if(b==123)--y;else if(b==125&&y++==0&&aAe()==125)continue}switch(S+=I3(b),b*y){case 38:x=f>0?1:(S+="\f",-1);break;case 44:l[h++]=(ol(S)-1)*x,x=1;break;case 64:ff()===45&&(S+=O_(Xl())),p=ff(),f=d=ol(T=S+=hAe(P3())),b++;break;case 45:g===45&&ol(S)==2&&(y=0)}}return a}o(P_,"parse");function fAe(t,e,r,n,i,a,s,l,u,h,f,d){for(var p=i-1,m=i===0?a:[""],g=rAe(m),y=0,v=0,x=0;y0?m[b]+" "+T:O3(T,/&\f/g,m[b])))&&(u[x++]=E);return M_(t,e,r,i===0?D_:l,u,h,f,d)}o(fAe,"ruleset");function q0t(t,e,r,n){return M_(t,e,r,__,I3(iAe()),kp(t,2,-2),0,n)}o(q0t,"comment");function dAe(t,e,r,n,i){return M_(t,e,r,R_,kp(t,0,n),kp(t,n+1,-1),n,i)}o(dAe,"declaration");function B_(t,e){for(var r="",n=0;n{vAe.forEach(t=>{t()}),vAe=[]},"attachFunctions");xt();var bAe=o(t=>t.replace(/^\s*%%(?!{)[^\n]+\n?/gm,"").trimStart(),"cleanupComments");Ow();ib();function TAe(t){let e=t.match(Iw);if(!e)return{text:t,metadata:{}};let r=Kf(e[1],{schema:Xf})??{};r=typeof r=="object"&&!Array.isArray(r)?r:{};let n={};return r.displayMode&&(n.displayMode=r.displayMode.toString()),r.title&&(n.title=r.title.toString()),r.config&&(n.config=r.config),{text:t.slice(e[0].length),metadata:n}}o(TAe,"extractFrontMatter");ar();var W0t=o(t=>t.replace(/\r\n?/g,` +`).replace(/<(\w+)([^>]*)>/g,(e,r,n)=>"<"+r+n.replace(/="([^"]*)"/g,"='$1'")+">"),"cleanupText"),H0t=o(t=>{let{text:e,metadata:r}=TAe(t),{displayMode:n,title:i,config:a={}}=r;return n&&(a.gantt||(a.gantt={}),a.gantt.displayMode=n),{title:i,config:a,text:e}},"processFrontmatter"),Y0t=o(t=>{let e=Xt.detectInit(t)??{},r=Xt.detectDirective(t,"wrap");return Array.isArray(r)?e.wrap=r.some(({type:n})=>n==="wrap"):r?.type==="wrap"&&(e.wrap=!0),{text:Gre(t),directive:e}},"processDirectives");function sH(t){let e=W0t(t),r=H0t(e),n=Y0t(r.text),i=Pn(r.config,n.directive);return t=bAe(n.text),{code:t,title:r.title,config:i}}o(sH,"preprocessDiagram");wD();Q3();ar();function wAe(t){let e=new TextEncoder().encode(t),r=Array.from(e,n=>String.fromCodePoint(n)).join("");return btoa(r)}o(wAe,"toBase64");var j0t=5e4,X0t="graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa",K0t="sandbox",Q0t="loose",Z0t="http://www.w3.org/2000/svg",J0t="http://www.w3.org/1999/xlink",emt="http://www.w3.org/1999/xhtml",tmt="100%",rmt="100%",nmt="border:0;margin:0;",imt="margin:0",amt="allow-top-navigation-by-user-activation allow-popups",smt='The "iframe" tag is not supported by your browser.',omt=["foreignobject"],lmt=["dominant-baseline"];function CAe(t){let e=sH(t);return x2(),bY(e.config??{}),e}o(CAe,"processAndSetConfigs");async function cmt(t,e){i2();try{let{code:r,config:n}=CAe(t);return{diagramType:(await AAe(r)).type,config:n}}catch(r){if(e?.suppressErrors)return!1;throw r}}o(cmt,"parse");var kAe=o((t,e,r=[])=>` +.${t} ${e} { ${r.join(" !important; ")} !important; }`,"cssImportantStyles"),umt=o((t,e=new Map)=>{let r="";if(t.themeCSS!==void 0&&(r+=` +${t.themeCSS}`),t.fontFamily!==void 0&&(r+=` +:root { --mermaid-font-family: ${t.fontFamily}}`),t.altFontFamily!==void 0&&(r+=` +:root { --mermaid-alt-font-family: ${t.altFontFamily}}`),e instanceof Map){let s=Sr(t)?["> *","span"]:["rect","polygon","ellipse","circle","path"];e.forEach(l=>{Er(l.styles)||s.forEach(u=>{r+=kAe(l.id,u,l.styles)}),Er(l.textStyles)||(r+=kAe(l.id,"tspan",(l?.textStyles||[]).map(u=>u.replace("color","fill"))))})}return r},"createCssStyles"),hmt=o((t,e,r,n)=>{let i=umt(t,r),a=CX(e,i,t.themeVariables);return B_(pAe(`${n}{${a}}`),mAe)},"createUserStyles"),fmt=o((t="",e,r)=>{let n=t;return!r&&!e&&(n=n.replace(/marker-end="url\([\d+./:=?A-Za-z-]*?#/g,'marker-end="url(#')),n=ao(n),n=n.replace(/
    /g,"
    "),n},"cleanUpSvgCode"),dmt=o((t="",e)=>{let r=e?.viewBox?.baseVal?.height?e.viewBox.baseVal.height+"px":rmt,n=wAe(`${t}`);return``},"putIntoIFrame"),EAe=o((t,e,r,n,i)=>{let a=t.append("div");a.attr("id",r),n&&a.attr("style",n);let s=a.append("svg").attr("id",e).attr("width","100%").attr("xmlns",Z0t);return i&&s.attr("xmlns:xlink",i),s.append("g"),t},"appendDivSvgG");function SAe(t,e){return t.append("iframe").attr("id",e).attr("style","width: 100%; height: 100%;").attr("sandbox","")}o(SAe,"sandboxedIframe");var pmt=o((t,e,r,n)=>{t.getElementById(e)?.remove(),t.getElementById(r)?.remove(),t.getElementById(n)?.remove()},"removeExistingElements"),mmt=o(async function(t,e,r){i2();let n=CAe(e);e=n.code;let i=Zt();K.debug(i),e.length>(i?.maxTextSize??j0t)&&(e=X0t);let a="#"+t,s="i"+t,l="#"+s,u="d"+t,h="#"+u,f=o(()=>{let _=je(p?l:h).node();_&&"remove"in _&&_.remove()},"removeTempElements"),d=je("body"),p=i.securityLevel===K0t,m=i.securityLevel===Q0t,g=i.fontFamily;if(r!==void 0){if(r&&(r.innerHTML=""),p){let C=SAe(je(r),s);d=je(C.nodes()[0].contentDocument.body),d.node().style.margin=0}else d=je(r);EAe(d,t,u,`font-family: ${g}`,J0t)}else{if(pmt(document,t,u,s),p){let C=SAe(je("body"),s);d=je(C.nodes()[0].contentDocument.body),d.node().style.margin=0}else d=je("body");EAe(d,t,u)}let y,v;try{y=await c2.fromText(e,{title:n.title})}catch(C){if(i.suppressErrorRendering)throw f(),C;y=await c2.fromText("error"),v=C}let x=d.select(h).node(),b=y.type,T=x.firstChild,E=T.firstChild,w=y.renderer.getClasses?.(e,y),k=hmt(i,b,w,a),S=document.createElement("style");S.innerHTML=k,T.insertBefore(S,E);try{await y.renderer.draw(e,t,"11.13.0",y)}catch(C){throw i.suppressErrorRendering?f():ike.draw(e,t,"11.13.0"),C}let A=d.select(`${h} svg`),L=y.db.getAccTitle?.(),I=y.db.getAccDescription?.();ymt(b,A,L,I),d.select(`[id="${t}"]`).selectAll("foreignobject > *").attr("xmlns",emt);let N=d.select(h).node().innerHTML;if(K.debug("config.arrowMarkerAbsolute",i.arrowMarkerAbsolute),N=fmt(N,p,Xs(i.arrowMarkerAbsolute)),p){let C=d.select(h+" svg").node();N=dmt(N,C)}else m||(N=fl.sanitize(N,{ADD_TAGS:omt,ADD_ATTR:lmt,HTML_INTEGRATION_POINTS:{foreignobject:!0}}));if(xAe(),v)throw v;return f(),{diagramType:b,svg:N,bindFunctions:y.db.bindFunctions}},"render");function gmt(t={}){let e=Vn({},t);e?.fontFamily&&!e.themeVariables?.fontFamily&&(e.themeVariables||(e.themeVariables={}),e.themeVariables.fontFamily=e.fontFamily),yY(e),e?.theme&&e.theme in ul?e.themeVariables=ul[e.theme].getThemeVariables(e.themeVariables):e&&(e.themeVariables=ul.default.getThemeVariables(e.themeVariables));let r=typeof e=="object"?m8(e):g8();h2(r.logLevel),i2()}o(gmt,"initialize");var AAe=o((t,e={})=>{let{code:r}=sH(t);return c2.fromText(r,e)},"getDiagramFromText");function ymt(t,e,r,n){gAe(e,t),yAe(e,r,n,e.attr("id"))}o(ymt,"addA11yInfo");var Ep=Object.freeze({render:mmt,parse:cmt,getDiagramFromText:AAe,initialize:gmt,getConfig:Zt,setConfig:ew,getSiteConfig:g8,updateSiteConfig:vY,reset:o(()=>{x2()},"reset"),globalReset:o(()=>{x2(vf)},"globalReset"),defaultConfig:vf});h2(Zt().logLevel);x2(Zt());Rd();ar();var vmt=o((t,e,r)=>{K.warn(t),ON(t)?(r&&r(t.str,t.hash),e.push({...t,message:t.str,error:t})):(r&&r(t),t instanceof Error&&e.push({str:t.message,message:t.message,hash:t.name,error:t}))},"handleError"),_Ae=o(async function(t={querySelector:".mermaid"}){try{await xmt(t)}catch(e){if(ON(e)&&K.error(e.str),df.parseError&&df.parseError(e),!t.suppressErrors)throw K.error("Use the suppressErrors option to suppress these errors"),e}},"run"),xmt=o(async function({postRenderCallback:t,querySelector:e,nodes:r}={querySelector:".mermaid"}){let n=Ep.getConfig();K.debug(`${t?"":"No "}Callback function found`);let i;if(r)i=r;else if(e)i=document.querySelectorAll(e);else throw new Error("Nodes and querySelector are both undefined");K.debug(`Found ${i.length} diagrams`),n?.startOnLoad!==void 0&&(K.debug("Start On Load: "+n?.startOnLoad),Ep.updateSiteConfig({startOnLoad:n?.startOnLoad}));let a=new Xt.InitIDGenerator(n.deterministicIds,n.deterministicIDSeed),s,l=[];for(let u of Array.from(i)){K.info("Rendering diagram: "+u.id);if(u.getAttribute("data-processed"))continue;u.setAttribute("data-processed","true");let h=`mermaid-${a.next()}`;s=u.innerHTML,s=Mw(Xt.entityDecode(s)).trim().replace(//gi,"
    ");let f=Xt.detectInit(s);f&&K.debug("Detected early reinit: ",f);try{let{svg:d,bindFunctions:p}=await NAe(h,s,u);u.innerHTML=d,t&&await t(h),p&&p(u)}catch(d){vmt(d,l,df.parseError)}}if(l.length>0)throw l[0]},"runThrowsErrors"),DAe=o(function(t){Ep.initialize(t)},"initialize"),bmt=o(async function(t,e,r){K.warn("mermaid.init is deprecated. Please use run instead."),t&&DAe(t);let n={postRenderCallback:r,querySelector:".mermaid"};typeof e=="string"?n.querySelector=e:e&&(e instanceof HTMLElement?n.nodes=[e]:n.nodes=e),await _Ae(n)},"init"),Tmt=o(async(t,{lazyLoad:e=!0}={})=>{i2(),B2(...t),e===!1&&await K6e()},"registerExternalDiagrams"),RAe=o(function(){if(df.startOnLoad){let{startOnLoad:t}=Ep.getConfig();t&&df.run().catch(e=>K.error("Mermaid failed to initialize",e))}},"contentLoaded");if(typeof document<"u"){window.addEventListener("load",RAe,!1)}var wmt=o(function(t){df.parseError=t},"setParseErrorHandler"),F_=[],oH=!1,LAe=o(async()=>{if(!oH){for(oH=!0;F_.length>0;){let t=F_.shift();if(t)try{await t()}catch(e){K.error("Error executing queue",e)}}oH=!1}},"executeQueue"),kmt=o(async(t,e)=>new Promise((r,n)=>{let i=o(()=>new Promise((a,s)=>{Ep.parse(t,e).then(l=>{a(l),r(l)},l=>{K.error("Error parsing",l),df.parseError?.(l),s(l),n(l)})}),"performCall");F_.push(i),LAe().catch(n)}),"parse"),NAe=o((t,e,r)=>new Promise((n,i)=>{let a=o(()=>new Promise((s,l)=>{Ep.render(t,e,r).then(u=>{s(u),n(u)},u=>{K.error("Error parsing",u),df.parseError?.(u),l(u),i(u)})}),"performCall");F_.push(a),LAe().catch(i)}),"render"),Emt=o(()=>Object.keys(uh).map(t=>({id:t})),"getRegisteredDiagramsMetadata"),df={startOnLoad:!0,mermaidAPI:Ep,parse:kmt,render:NAe,init:bmt,run:_Ae,registerExternalDiagrams:Tmt,registerLayoutLoaders:LB,initialize:DAe,parseError:void 0,contentLoaded:RAe,setParseErrorHandler:wmt,detectType:vg,registerIconPacks:Nw,getRegisteredDiagramsMetadata:Emt},Smt=df;return G3(Cmt);})(); +/*! Check if previously processed */ +/*! + * Wait for document loaded before starting the execution + */ +/*! Bundled license information: + +dompurify/dist/purify.es.mjs: + (*! @license DOMPurify 3.3.1 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.3.1/LICENSE *) + +js-yaml/dist/js-yaml.mjs: + (*! js-yaml 4.1.1 https://github.com/nodeca/js-yaml @license MIT *) + +lodash-es/lodash.js: + (** + * @license + * Lodash (Custom Build) + * Build: `lodash modularize exports="es" -o ./` + * Copyright OpenJS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + *) + +cytoscape/dist/cytoscape.esm.mjs: + (*! + Embeddable Minimum Strictly-Compliant Promises/A+ 1.1.1 Thenable + Copyright (c) 2013-2014 Ralf S. Engelschall (http://engelschall.com) + Licensed under The MIT License (http://opensource.org/licenses/MIT) + *) + (*! + Event object based on jQuery events, MIT license + + https://jquery.org/license/ + https://tldrlegal.com/license/mit-license + https://github.com/jquery/jquery/blob/master/src/event.js + *) + (*! Bezier curve function generator. Copyright Gaetan Renaudeau. MIT License: http://en.wikipedia.org/wiki/MIT_License *) + (*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License *) +*/ +globalThis["mermaid"] = globalThis.__esbuild_esm_mermaid_nm["mermaid"].default; diff --git a/vscode-rivet/package.json b/vscode-rivet/package.json index a7a4db8..5952eb5 100644 --- a/vscode-rivet/package.json +++ b/vscode-rivet/package.json @@ -3,7 +3,7 @@ "displayName": "Rivet SDLC", "description": "SDLC artifact traceability with live validation, hover info, and embedded dashboard", "publisher": "pulseengine", - "version": "0.2.0", + "version": "0.3.0", "license": "MIT", "repository": { "type": "git", @@ -69,6 +69,10 @@ "command": "rivet.addArtifact", "title": "Add Artifact", "category": "Rivet" + }, + { + "command": "rivet.showSource", + "title": "Rivet: Show Source" } ], "configuration": { @@ -106,6 +110,7 @@ "compile": "tsc -b", "esbuild": "node ./bin/esbuild.js", "watch": "tsc -b -w", + "test": "node ./out/test/runTest.js", "package": "npx @vscode/vsce package" } } diff --git a/vscode-rivet/src/extension.ts b/vscode-rivet/src/extension.ts index 4978afa..158cbf4 100644 --- a/vscode-rivet/src/extension.ts +++ b/vscode-rivet/src/extension.ts @@ -2,18 +2,22 @@ import * as vscode from 'vscode'; import * as path from 'path'; import * as fs from 'fs'; -import { execFileSync, ChildProcess, spawn } from 'child_process'; +import { execFileSync } from 'child_process'; import { LanguageClient, LanguageClientOptions, ServerOptions, } from 'vscode-languageclient/node'; +import { getShellHtml } from './shell'; let client: LanguageClient | undefined; -let serveProcess: ChildProcess | undefined; -let dashboardPanel: vscode.WebviewPanel | undefined; -let dashboardPort: number | undefined; +let panel: vscode.WebviewPanel | undefined; +let currentPage: string = '/stats'; +let currentSeq: number = 0; +let cachedCss: string = ''; let statusBarItem: vscode.StatusBarItem; +let currentSourceFile: string | undefined; +let currentSourceLine: number | undefined; export async function activate(context: vscode.ExtensionContext) { // --- Commands --- @@ -24,6 +28,22 @@ export async function activate(context: vscode.ExtensionContext) { vscode.commands.registerCommand('rivet.validate', () => runValidate()), vscode.commands.registerCommand('rivet.addArtifact', () => addArtifact()), vscode.commands.registerCommand('rivet.navigateTo', (urlPath: string) => showDashboard(context, urlPath)), + vscode.commands.registerCommand('rivet.showSource', async () => { + if (!currentSourceFile) { + vscode.window.showInformationMessage('No source file for current view'); + return; + } + const workspaceRoot = vscode.workspace.workspaceFolders?.[0]?.uri.fsPath; + if (!workspaceRoot) return; + + const filePath = path.isAbsolute(currentSourceFile) + ? currentSourceFile + : path.join(workspaceRoot, currentSourceFile); + const uri = vscode.Uri.file(filePath); + const line = Math.max(0, (currentSourceLine || 1) - 1); + const range = new vscode.Range(line, 0, line, 0); + await vscode.window.showTextDocument(uri, { selection: range, viewColumn: vscode.ViewColumn.One }); + }), ); // --- Sidebar Tree View --- @@ -77,6 +97,13 @@ export async function activate(context: vscode.ExtensionContext) { dispose: () => { client?.stop().catch(() => {}); }, }); + client.onNotification('rivet/artifactsChanged', (_params: any) => { + treeProvider.refresh(); + if (panel) { + panel.webview.postMessage({ type: 'stale' }); + } + }); + statusBarItem.text = '$(shield) Rivet'; console.log(`rivet LSP started: ${rivetPath}`); } catch (err: unknown) { @@ -84,18 +111,11 @@ export async function activate(context: vscode.ExtensionContext) { vscode.window.showWarningMessage(`Rivet LSP failed to start (${rivetPath}): ${msg}`); statusBarItem.text = '$(shield) Rivet (LSP error)'; console.error(`rivet LSP error: ${msg}, binary: ${rivetPath}, cwd: ${lspWorkspaceRoot}`); - // Continue without LSP — serve and commands still work + // Continue without LSP — commands still work } - - // --- Start serve --watch in background --- - startServe(context, rivetPath); } export function deactivate() { - if (serveProcess) { - serveProcess.kill(); - serveProcess = undefined; - } return client?.stop().catch(() => {}); } @@ -129,71 +149,82 @@ function findRivetBinary(context: vscode.ExtensionContext): string | undefined { return undefined; } -// --- Serve process --- - -function startServe(context: vscode.ExtensionContext, rivetPath: string) { - const configuredPort = vscode.workspace.getConfiguration('rivet').get('serve.port') || 0; +// --- Dashboard (WebView panel) --- - const workspaceRoot = vscode.workspace.workspaceFolders?.[0]?.uri.fsPath; - if (!workspaceRoot) return; +async function showDashboard(context: vscode.ExtensionContext, urlPath: string = '/stats') { + if (!client) { + vscode.window.showWarningMessage('Rivet LSP not connected.'); + return; + } - // Check rivet.yaml exists - if (!fs.existsSync(path.join(workspaceRoot, 'rivet.yaml'))) return; + if (!cachedCss) { + try { + cachedCss = await client.sendRequest('rivet/css') as string; + } catch { cachedCss = ''; } + } - serveProcess = spawn(rivetPath, [ - 'serve', - '--port', String(configuredPort), - '--watch', - ], { - cwd: workspaceRoot, - stdio: ['ignore', 'pipe', 'pipe'], - }); + if (panel) { + panel.reveal(vscode.ViewColumn.Beside); + } else { + panel = vscode.window.createWebviewPanel( + 'rivetDashboard', + 'Rivet', + vscode.ViewColumn.Beside, + { + enableScripts: true, + retainContextWhenHidden: true, + localResourceRoots: [vscode.Uri.joinPath(context.extensionUri, 'assets')], + }, + ); - // Capture the port from stdout - serveProcess.stderr?.on('data', (data: Buffer) => { - const line = data.toString(); - const match = line.match(/listening on http:\/\/[\w.]+:(\d+)/); - if (match) { - dashboardPort = parseInt(match[1], 10); - statusBarItem.text = `$(shield) Rivet :${dashboardPort}`; - console.log(`rivet serve started on port ${dashboardPort}`); - } - // Forward watch reload messages - if (line.includes('[watch]')) { - console.log(`rivet: ${line.trim()}`); - } - }); + panel.webview.html = getShellHtml(panel.webview, context.extensionUri, cachedCss); + + panel.webview.onDidReceiveMessage(async (msg) => { + if (msg.type === 'navigate') { + await navigateTo(msg.path); + } else if (msg.type === 'refresh') { + await navigateTo(currentPage); + } else if (msg.type === 'openSource') { + const workspaceRoot = vscode.workspace.workspaceFolders?.[0]?.uri.fsPath; + if (workspaceRoot && msg.file) { + const filePath = path.isAbsolute(msg.file) + ? msg.file + : path.join(workspaceRoot, msg.file); + const uri = vscode.Uri.file(filePath); + await vscode.window.showTextDocument(uri, { viewColumn: vscode.ViewColumn.One }); + } + } + }); - serveProcess.on('exit', (code) => { - console.log(`rivet serve exited with code ${code}`); - serveProcess = undefined; - dashboardPort = undefined; - statusBarItem.text = '$(shield) Rivet'; - }); + panel.onDidDispose(() => { panel = undefined; }); + } - context.subscriptions.push({ - dispose: () => { - serveProcess?.kill(); - serveProcess = undefined; - }, - }); + await navigateTo(urlPath); } -// --- Dashboard --- +async function navigateTo(page: string) { + if (!panel || !client) return; -async function showDashboard(_context: vscode.ExtensionContext, urlPath: string = '/') { - if (!dashboardPort) { - vscode.window.showWarningMessage( - 'Rivet dashboard not running. Waiting for serve to start...' - ); - return; - } + const seq = ++currentSeq; + currentPage = page; - // Use VS Code's Simple Browser which handles SSH port forwarding correctly - const uri = vscode.Uri.parse(`http://127.0.0.1:${dashboardPort}/embed${urlPath}`); - await vscode.commands.executeCommand('simpleBrowser.api.open', uri, { - viewColumn: vscode.ViewColumn.Beside, - }); + try { + const result: any = await client.sendRequest('rivet/render', { page, params: {}, seq }); + if (seq !== currentSeq) return; + + panel.title = result.title || 'Rivet'; + currentSourceFile = result.sourceFile || undefined; + currentSourceLine = result.sourceLine || undefined; + panel.webview.postMessage({ type: 'update', html: result.html, title: result.title }); + } catch (err: unknown) { + if (seq !== currentSeq) return; + const msg = err instanceof Error ? err.message : String(err); + panel.webview.postMessage({ + type: 'update', + html: `

    Render Error

    ${msg}

    `, + title: 'Error', + }); + } } // --- Validate command --- @@ -271,45 +302,108 @@ async function addArtifact() { // --- Sidebar Tree View --- -class RivetTreeProvider implements vscode.TreeDataProvider { +interface TreeItemData { + kind: string; + label: string; + description?: string; + page?: string; + icon?: string; + path?: string; + artifactCount?: number; + type?: string; + children?: TreeItemData[]; +} + +class RivetTreeProvider implements vscode.TreeDataProvider { private _onDidChangeTreeData = new vscode.EventEmitter(); readonly onDidChangeTreeData = this._onDidChangeTreeData.event; + private treeData: TreeItemData[] = []; refresh(): void { + this.treeData = []; this._onDidChangeTreeData.fire(); } - getTreeItem(element: RivetTreeItem): vscode.TreeItem { + getTreeItem(element: RivetTreeNode): vscode.TreeItem { return element; } - getChildren(element?: RivetTreeItem): RivetTreeItem[] { - if (element) return []; - - return [ - new RivetTreeItem('Stats', '/stats', 'dashboard'), - new RivetTreeItem('Artifacts', '/artifacts', 'symbol-class'), - new RivetTreeItem('Validation', '/validate', 'pass'), - new RivetTreeItem('STPA', '/stpa', 'shield'), - new RivetTreeItem('Graph', '/graph', 'type-hierarchy'), - new RivetTreeItem('Documents', '/documents', 'book'), - new RivetTreeItem('Matrix', '/matrix', 'table'), - new RivetTreeItem('Coverage', '/coverage', 'checklist'), - new RivetTreeItem('Source', '/source', 'code'), - new RivetTreeItem('Results', '/results', 'beaker'), - new RivetTreeItem('Help', '/help', 'question'), - ]; + async getChildren(element?: RivetTreeNode): Promise { + if (!client) return []; + + if (!element) { + if (this.treeData.length === 0) { + try { + const result: any = await client.sendRequest('rivet/treeData', { parent: null }); + this.treeData = result.items || []; + } catch { return []; } + } + return this.treeData.map(cat => new RivetTreeNode( + cat.label, cat.kind, undefined, + vscode.TreeItemCollapsibleState.Collapsed, + cat.children, + )); + } + + if (element.kind === 'category' && element.childData) { + return element.childData.map(item => { + const hasChildren = item.kind === 'source'; + const desc = item.artifactCount !== undefined + ? `${item.description || ''} (${item.artifactCount})` + : item.description; + return new RivetTreeNode( + item.label, item.kind, item.page, + hasChildren ? vscode.TreeItemCollapsibleState.Collapsed : vscode.TreeItemCollapsibleState.None, + undefined, desc, item.icon, item.path, + ); + }); + } + + if (element.kind === 'source' && element.sourcePath) { + try { + const result: any = await client.sendRequest('rivet/treeData', { parent: element.sourcePath }); + return (result.items || []).map((item: TreeItemData) => new RivetTreeNode( + item.label, item.kind, item.page, + vscode.TreeItemCollapsibleState.None, + undefined, item.description, undefined, undefined, item.type, + )); + } catch { return []; } + } + + return []; } } -class RivetTreeItem extends vscode.TreeItem { - constructor(label: string, public readonly urlPath: string, icon: string) { - super(label, vscode.TreeItemCollapsibleState.None); - this.iconPath = new vscode.ThemeIcon(icon); - this.command = { - command: 'rivet.navigateTo', - title: label, - arguments: [urlPath], - }; +class RivetTreeNode extends vscode.TreeItem { + constructor( + label: string, + public readonly kind: string, + public readonly page?: string, + collapsibleState = vscode.TreeItemCollapsibleState.None, + public readonly childData?: TreeItemData[], + description?: string, + icon?: string, + public readonly sourcePath?: string, + artifactType?: string, + ) { + super(label, collapsibleState); + if (description) this.description = description; + + // Icons + if (icon) this.iconPath = new vscode.ThemeIcon(icon); + else if (kind === 'category') this.iconPath = new vscode.ThemeIcon('folder'); + else if (kind === 'document') this.iconPath = new vscode.ThemeIcon('book'); + else if (kind === 'source') this.iconPath = new vscode.ThemeIcon('file-code'); + else if (kind === 'artifact') this.iconPath = new vscode.ThemeIcon('symbol-property'); + else if (kind === 'help') this.iconPath = new vscode.ThemeIcon('question'); + + // Click action + if (page) { + this.command = { + command: 'rivet.navigateTo', + title: label, + arguments: [page], + }; + } } } diff --git a/vscode-rivet/src/shell.ts b/vscode-rivet/src/shell.ts new file mode 100644 index 0000000..a30d360 --- /dev/null +++ b/vscode-rivet/src/shell.ts @@ -0,0 +1,94 @@ +import * as vscode from 'vscode'; + +export function getShellHtml( + webview: vscode.Webview, + extensionUri: vscode.Uri, + css: string, +): string { + const nonce = getNonce(); + const mermaidUri = webview.asWebviewUri( + vscode.Uri.joinPath(extensionUri, 'assets', 'mermaid.min.js') + ); + + return ` + + + + + + + +
    Content changed — click to refresh
    +
    +
    Loading...
    +
    + + + +`; +} + +function getNonce(): string { + let text = ''; + const possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; + for (let i = 0; i < 32; i++) { + text += possible.charAt(Math.floor(Math.random() * possible.length)); + } + return text; +} diff --git a/vscode-rivet/tsconfig.tsbuildinfo b/vscode-rivet/tsconfig.tsbuildinfo new file mode 100644 index 0000000..94c610d --- /dev/null +++ b/vscode-rivet/tsconfig.tsbuildinfo @@ -0,0 +1 @@ +{"root":["./src/extension.ts","./src/shell.ts","./src/test/runtest.ts","./src/test/suite/extension.test.ts","./src/test/suite/index.ts"],"version":"5.9.3"} \ No newline at end of file