From b4a452a8b7d586a91bad97c6bf7693e4582a6619 Mon Sep 17 00:00:00 2001 From: lix-2026 Date: Wed, 13 May 2026 22:43:16 +0800 Subject: [PATCH] =?UTF-8?q?20260513=20mindmap=E4=BC=98=E5=8C=9601?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AGENTS.md | 27 + browser-capability-20260512-current-page.png | Bin 0 -> 30676 bytes ...command-create-delete-reload-latency-v1.md | 117 ++ ...ap-filetree-index-single-truth-split-v1.md | 154 ++ ...host-assets-and-tree-command-latency-v1.md | 193 +++ .../5-9-c12-topbar-sidebar-toggle-noop-v1.md | 114 ++ bugs/README.md | 34 + ...e-pagetree-source-contract-checklist-v1.md | 233 +++ ...ect-tab-resource-alignment-checklist-v1.md | 275 ++++ ...phase6-kmind-parity-detail-checklist-v1.md | 475 ++++++ ...yuan-reference-boundary-and-adoption-v1.md | 362 +++++ design/10-review/01-rust-kernel-web-review.md | 119 ++ .../02-frontend-editor-tree-review.md | 123 ++ .../03-convex-realtime-storage-review.md | 215 +++ ...ry-domains-and-design-governance-review.md | 64 + design/10-review/05-tree.md | 152 ++ design/10-review/README.md | 44 + design/README.md | 6 +- ...dmap-phase6-projection-editor-checklist.md | 4 +- infra/convex/docker-compose.yml | 4 + playwright-snapshot-auth.md | 1 + rust/crates/bridge-runtime/src/lib.rs | 731 +++++++++- rust/crates/core-protocol/src/editor/mod.rs | 4 + rust/crates/core-protocol/src/editor/model.rs | 1 + .../crates/core-protocol/src/editor/tiptap.rs | 145 ++ rust/crates/core-protocol/src/kernel.rs | 38 + rust/crates/core-protocol/src/lib.rs | 9 +- .../tests/editor_tiptap_bridge.rs | 40 + .../tests/resource_tree_contract.rs | 89 ++ rust/crates/mnote-web/src/routes/documents.rs | 10 +- rust/crates/mnote-web/src/routes/gateway.rs | 83 +- .../mnote-web/src/routes/mindmap_api.rs | 212 ++- .../mnote-web/src/routes/mindmap_shell.rs | 190 ++- rust/crates/mnote-web/src/routes/sse.rs | 35 +- rust/crates/mnote-web/src/routes/tree.rs | 27 + rust/crates/mnote-web/src/routes/web_shell.rs | 299 +++- rust/crates/mnote-web/src/ssr/pages/layout.rs | 281 +++- .../crates/mnote-web/src/ssr/pages/mindmap.rs | 24 +- rust/crates/mnote-web/src/transport/convex.rs | 107 +- .../src/tree_shell/filetree_renderer.rs | 11 +- .../src/tree_shell/picker_renderer.rs | 2 + .../mnote-leptos-tiptap-spike-island.js | 32 +- .../mnote-leptos-tiptap-spike-island_bg.wasm | Bin 10513412 -> 11533527 bytes .../src/js/generated/tiptap_paragraph.js | 166 +-- rust/spikes/leptos-tiptap-spike/src/lib.rs | 1295 +++++++++++++---- ...sk112-tree-rust-family-regression-smoke.js | 44 +- scripts/task166-mindmap-phase6-block-smoke.js | 245 +++- scripts/task167-mindmap-kmind-parity-smoke.js | 1042 +++++++++++++ .../task168-mindmap-put-validator-smoke.js | 414 ++++++ scripts/task169-mindmap-realtime-smoke.js | 1160 +++++++++++++++ .../convex/_utils/documentVisibility.ts | 117 ++ wolai-frontend/convex/mindmaps.ts | 103 +- .../api/mindmap/[docId]/[mindmapId]/route.ts | 115 ++ .../components/editor/blocks/MindmapBlock.tsx | 39 +- .../sidebar/asset-context-menu-source.test.ts | 16 + .../components/sidebar/asset-context-menu.tsx | 51 +- .../sidebar-delete-preflight-source.test.ts | 16 + .../sidebar/sidebar-navigation.test.ts | 19 +- .../components/sidebar/sidebar-navigation.ts | 15 + .../src/components/sidebar/sidebar.tsx | 149 +- .../sidebar/tree-shell-dom-host.tsx | 191 ++- .../sidebar/tree-shell-host.test.tsx | 290 +++- .../components/sidebar/tree-shell-host.tsx | 10 + .../components/sidebar/tree-shell-surface.tsx | 3 + .../use-preferred-sidebar-snapshot.test.tsx | 29 +- .../sidebar/use-preferred-sidebar-snapshot.ts | 9 + .../lib/documents/document-visibility.test.ts | 47 + .../src/lib/documents/save-contract.test.ts | 52 + .../tiptap-content-converter.test.ts | 56 +- .../lib/documents/tiptap-content-converter.ts | 46 +- .../mindmap/leptos-mindmap-adapter.test.ts | 20 +- .../src/lib/mindmap/leptos-mindmap-adapter.ts | 86 +- .../lib/mindmap/mindmap-action-map.test.ts | 17 +- .../src/lib/mindmap/mindmap-action-map.ts | 10 +- .../mindmap-command-apply-local.test.ts | 121 ++ .../mindmap/mindmap-command-apply-local.ts | 279 ++++ .../lib/mindmap/mindmap-initial-sync.test.ts | 30 + .../src/lib/mindmap/mindmap-initial-sync.ts | 25 + .../src/lib/mindmap/mindmap-projection.ts | 46 +- .../src/lib/mindmap/mindmap-shortcuts.test.ts | 40 + .../src/lib/mindmap/mindmap-shortcuts.ts | 40 + .../src/lib/mindmap/mindmap-ui-schema.test.ts | 82 +- .../src/lib/mindmap/mindmap-ui-schema.ts | 215 ++- .../src/lib/mindmap/mindmap-ui-state.test.ts | 103 +- .../src/lib/mindmap/mindmap-ui-state.ts | 138 ++ .../mindmap/simple-mind-map-bridge.test.ts | 26 + .../src/lib/mindmap/simple-mind-map-bridge.ts | 50 +- .../src/lib/onlyoffice/client-session.test.ts | 29 +- .../src/lib/onlyoffice/client-session.ts | 82 +- 89 files changed, 11557 insertions(+), 707 deletions(-) create mode 100644 browser-capability-20260512-current-page.png create mode 100644 bugs/04-tree-domain/process/4-25-tree-command-create-delete-reload-latency-v1.md create mode 100644 bugs/05-editor-mainline/done/5-10-mindmap-filetree-index-single-truth-split-v1.md create mode 100644 bugs/05-editor-mainline/process/5-11-mindmap-ghost-assets-and-tree-command-latency-v1.md create mode 100644 bugs/05-editor-mainline/process/5-9-c12-topbar-sidebar-toggle-noop-v1.md create mode 100644 bugs/README.md create mode 100644 design/04-tree-domain/done/4-24-resource-tree-filetree-pagetree-source-contract-checklist-v1.md create mode 100644 design/05-editor-mainline/done/5-12-main-editor-object-tab-resource-alignment-checklist-v1.md create mode 100644 design/06-mindmap/process/6-mindmap-phase6-kmind-parity-detail-checklist-v1.md create mode 100644 design/09-siyuan-reference/process/9-siyuan-reference-boundary-and-adoption-v1.md create mode 100644 design/10-review/01-rust-kernel-web-review.md create mode 100644 design/10-review/02-frontend-editor-tree-review.md create mode 100644 design/10-review/03-convex-realtime-storage-review.md create mode 100644 design/10-review/04-secondary-domains-and-design-governance-review.md create mode 100644 design/10-review/05-tree.md create mode 100644 design/10-review/README.md create mode 100644 playwright-snapshot-auth.md create mode 100644 rust/crates/core-protocol/tests/resource_tree_contract.rs create mode 100644 scripts/task167-mindmap-kmind-parity-smoke.js create mode 100644 scripts/task168-mindmap-put-validator-smoke.js create mode 100644 scripts/task169-mindmap-realtime-smoke.js create mode 100644 wolai-frontend/convex/_utils/documentVisibility.ts create mode 100644 wolai-frontend/src/components/sidebar/asset-context-menu-source.test.ts create mode 100644 wolai-frontend/src/lib/documents/document-visibility.test.ts create mode 100644 wolai-frontend/src/lib/mindmap/mindmap-command-apply-local.test.ts create mode 100644 wolai-frontend/src/lib/mindmap/mindmap-command-apply-local.ts create mode 100644 wolai-frontend/src/lib/mindmap/mindmap-initial-sync.test.ts create mode 100644 wolai-frontend/src/lib/mindmap/mindmap-initial-sync.ts create mode 100644 wolai-frontend/src/lib/mindmap/mindmap-shortcuts.test.ts create mode 100644 wolai-frontend/src/lib/mindmap/mindmap-shortcuts.ts diff --git a/AGENTS.md b/AGENTS.md index bce55ac2..2ecaaafb 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -66,6 +66,17 @@ - `design/old/` 下的历史废弃稿也统一按 `process/` 与 `done/` 分层,但标题继续标记 `[recycle]`。 - `design/90-reference/` 只放参考资料,不参与 `process/done` 状态迁移。 +## Bugs 目录规则 + +- `bugs/` 默认镜像 `design/` 的主线分类方式,按对应大类放置缺陷。 +- 每个大类继续按 `process/` 与 `done/` 分层: + - `process/`:缺陷已确认存在,仍在修复或验证中 + - `done/`:缺陷已修复,且已有真实代码与验证证据 +- 新确认的缺陷先放 `process/`;修复完成后必须移动到同类目的 `done/`,不要在两个目录同时保留同一条缺陷。 +- 缺陷归类以真正 owner 和长期主线为准,不以表面症状命名: + - `sidebar/topbar/breadcrumb/文档页壳/Wolai 体验对齐` 优先归到 `05-editor-mainline/` + - `projection/row model/selection/focus/keyboard/DnD/tree command` 优先归到 `04-tree-domain/` + ## 协作边界 - 仅修改与当前任务直接相关的文件。 @@ -95,6 +106,22 @@ - 影响主页入口、Sidebar、tree shell、文档页首屏时,优先补或复用 `scripts/task*-smoke.js` 这类 smoke 脚本。 - 排查高 CPU / 高内存 / 卡顿时,先看是否存在首屏误走实验性 tree shell、compat fallback、重复请求、轮询或回链面板持续刷新,再看数据底座。 +## mnote-tester 调用 + +- 当前固定网页测试员 profile 为 `mnote-tester`,Hermes profile 路径:`/home/lix/.hermes/profiles/mnote-tester`。 +- 默认优先通过别名调用:`/home/lix/.local/bin/mnote-tester`;等价命令是 `hermes -p mnote-tester`。 +- 需要让后续 agent 调它做真实浏览器测试时,优先使用 one-shot: + - `mnote-tester --yolo -z "<测试任务>"` + - 或 `hermes -p mnote-tester --yolo -z "<测试任务>"` +- 交给 `mnote-tester` 的任务描述必须明确写出: + - 测试目标页面或 URL + - 是否要求真实登录 + - 是否要求新建 / 修改 / 删除页面或块 + - 测试数据前缀,例如 `TEST-HERMES-` + - 是否要求发现 bug 后直接写入 `bugs//process/` +- `mnote-tester` 允许在 `3000` 主页面做最小写入型测试,包括新建、重命名、编辑、移动、归档、恢复、删除页面,以及新建、修改、删除块/模块;但默认只能操作“本轮新建的测试数据”或用户明确指定的测试区域,不能动既有用户内容。 +- `mnote-tester` 的默认证据目录是 `/mnt/Data1T/mnote/tmp/hermes-tester//`;若发现 bug,应按 `/mnt/Data1T/mnote/bugs/README.md` 与本文件规则归类,并把缺陷记录写到对应 `bugs//process/`。 +- 若 `/auth`、快速登录、首屏路由或上游服务本身已阻塞,`mnote-tester` 应立即停止后续写入动作,先输出阻塞证据并按规则记录 blocker bug,不要伪造“新建/修改/删除已验证通过”。 ## Wolai-aline 对标流程 diff --git a/browser-capability-20260512-current-page.png b/browser-capability-20260512-current-page.png new file mode 100644 index 0000000000000000000000000000000000000000..4c41e0852e8fe804a471d19da367d7233ad9d9be GIT binary patch literal 30676 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 更新时间:2026-05-13 +> +> 分类归属: +> - `04-tree-domain/process` +> - 关联缺陷:`bugs/05-editor-mainline/process/5-11-mindmap-ghost-assets-and-tree-command-latency-v1.md` +> +> 用户反馈: +> - “删除页面和新建页面都很慢,不知道为什么这么卡。” + +## 1. 问题定义 + +当前页面树/文件树的新建页面、删除页面等命令,在服务端命令成功后仍会触发整页刷新或完整树刷新。用户感知是:新建和删除并不是局部更新,而是卡一下、等整套页面壳或树壳重新加载。 + +这属于 `tree command -> projection update -> UI apply` 链路问题,应归到 `04-tree-domain`,而不是只作为编辑器 UI 问题处理。 + +## 2. 真实现象 + +用户反馈: + +1. 新建页面慢。 +2. 删除页面慢。 +3. 卡顿与同轮 mindmap 文件树重复增长一起出现,怀疑树刷新链路被频繁触发。 + +期望结果: + +1. `tree.node.create` 成功后,树 UI 局部插入新节点并进入重命名/导航状态。 +2. `tree.node.archive` 成功后,树 UI 局部移除节点或移动到回收站 projection。 +3. 只有 delta 无法应用、projection 缺失、SSE 断线或数据不一致时,才进入 resync/reload fallback。 +4. 普通新建/删除不应默认整页 reload。 + +## 3. 证据 + +### 3.1 Rust tree shell 有硬刷新路径 + +`rust/crates/mnote-web/src/routes/tree.rs:2976` 到 `:2986`: + +- `scheduleRefresh()` 在 80ms 后执行 `window.location.reload()`。 +- 如果带 `renameRowId`,则通过 `window.location.assign(url.toString())` 重新加载。 + +调用点: + +- 文件树删除:`rust/crates/mnote-web/src/routes/tree.rs:2791` 到 `:2824` +- 新建页面:`rust/crates/mnote-web/src/routes/tree.rs:4309` 到 `:4340` +- 重命名:`rust/crates/mnote-web/src/routes/tree.rs:4373` 到 `:4406` +- 移动:`rust/crates/mnote-web/src/routes/tree.rs:4448` 到 `:4502` + +这条路径会让 tree shell 命令体验明显慢于纯 delta / reducer 更新。 + +### 3.2 主页面已有 tree live controller,但命令后仍刷新 + +主页面已经监听 tree live: + +- `rust/crates/mnote-web/src/ssr/pages/layout.rs:3881` 到 `:3917` 处理 `tree:snapshot` / `tree:delta` / `tree:resync` +- `rust/crates/mnote-web/src/ssr/pages/layout.rs:3939` 到 `:4050` 启动 `/api/tree/events` EventSource + +也就是说,命令完成后理论上可以由 delta/resync 更新 projection;当前硬 reload 与 live projection 机制重复。 + +### 3.3 命令本身已有 delta hint + +Bridge runtime 对树命令生成 stream delta hint: + +- `tree.node.create`:`rust/crates/bridge-runtime/src/lib.rs:9545` 到 `:9592` +- `tree.node.archive`:`rust/crates/bridge-runtime/src/lib.rs:9655` 到 `:9702` + +当前前端没有把这些结果作为默认局部更新来源,而是在 tree shell 中继续 reload。 + +### 3.4 React Sidebar 路径也存在重刷链 + +子代理只读调查发现 React Sidebar 路径也存在重刷: + +- 新建页面:`wolai-frontend/src/components/sidebar/sidebar.tsx:1799`、`:1847` 附近在 command 后 `await refreshTree()` 再跳转。 +- 删除页面:`wolai-frontend/src/components/sidebar/sidebar.tsx:2148` 附近删除后等待 command、`refreshTree()`、广播文档变化/跳转。 +- Next API 的 `api/tree/commands` create/delete 还会执行 workspace/default scaffold、bridge mutation、artifact 记录等多段流程。 + +这说明卡顿不只来自单个 reload,而是命令后刷新链路偏重。 + +## 4. 当前判断 + +当前慢的核心不是“Convex 一定慢”,而是树命令执行后缺少轻量本地 apply: + +1. 命令 result / delta hint 已经具备局部更新信息。 +2. UI 仍经常走 `refreshTree()`、`window.location.reload()` 或 full snapshot。 +3. `resync_required` 类事件会触发完整 workspace snapshot,结构性变化越多,越容易造成卡顿。 + +## 5. 建议验证 + +修复前先补一条计时 smoke: + +1. 登录真实测试账号。 +2. 新建 `TEST-TREE-LATENCY-` 页面。 +3. 记录 `POST /api/tree/commands` 响应耗时。 +4. 记录下一次 `tree:delta` / `tree:resync` 到达耗时。 +5. 断言过程中是否发生 `window.location.reload()` 或顶层 navigation。 +6. 删除该测试页面,重复同样计时。 +7. 输出新建/删除从点击到 DOM 稳定的总耗时。 + +## 6. 建议修复方向 + +1. `tree.node.create` 成功后直接用 command result 插入本地节点,并只在后台等待 live delta 校准。 +2. `tree.node.archive` 成功后直接从当前 projection 移除节点,并只在后台等待 live delta 校准。 +3. `scheduleRefresh()` 改成显式 fallback,只有 reducer 无法应用时才调用。 +4. React Sidebar 的 `refreshTree()` 应去重、节流,并避免与 SSE/full snapshot 同时触发。 +5. smoke 增加无 reload 断言和耗时阈值。 + +## 7. 流转条件 + +当前状态:`process` + +只有满足以下条件后才能移动到 `bugs/04-tree-domain/done/`: + +1. [ ] 新建页面普通路径不再默认整页 reload。 +2. [ ] 删除页面普通路径不再默认整页 reload。 +3. [ ] command result / tree delta 能局部更新页面树与文件树 projection。 +4. [ ] fallback reload 只在明确异常条件下触发,并有可观测标记。 +5. [ ] smoke 记录新建/删除耗时,并通过无 reload 断言。 diff --git a/bugs/05-editor-mainline/done/5-10-mindmap-filetree-index-single-truth-split-v1.md b/bugs/05-editor-mainline/done/5-10-mindmap-filetree-index-single-truth-split-v1.md new file mode 100644 index 00000000..21fc8149 --- /dev/null +++ b/bugs/05-editor-mainline/done/5-10-mindmap-filetree-index-single-truth-split-v1.md @@ -0,0 +1,154 @@ +# 5-10 [done][bug] 文件树思维导图打开污染 index.md 单一真源 v1 + +> 更新时间:2026-05-13 +> +> 分类归属: +> - `05-editor-mainline/done` +> - 涉及边界:`04-tree-domain/file_tree asset intent`、`03-rust-web/mindmap standalone shell`、`06-mindmap/projection editor` +> +> 关联文档: +> - `/mnt/Data1T/mnote/design/10-review/README.md` +> - `/mnt/Data1T/mnote/design/10-review/02-frontend-editor-tree-review.md` +> - `/mnt/Data1T/mnote/design/10-review/04-secondary-domains-and-design-governance-review.md` +> - `/mnt/Data1T/mnote/design/05-editor-mainline/process/5-5-page-aggregate-single-truth-alignment-v1.md` +> - `/mnt/Data1T/mnote/design/04-tree-domain/done/4-2-sidebar-pagetree-filetree-product-interaction-contract-v1.md` +> - `/mnt/Data1T/mnote/design/06-mindmap/process/6-mindmap-kernel-phase6-projection-editor-v1.md` + +## 1. 问题定义 + +当前文件树中的思维导图文件点击打开后,会进入 standalone `/mindmap/{documentId}/{mindmapId}` 壳。这个壳会构造一份只包含单个 mindmap block 的临时 editor bootstrap,而不是读取该页面真实的 `index.md` / Page Aggregate body。 + +结果是:用户从文件树打开思维导图、编辑、切换页面后,再点击同一页面的 `index.md`,可能看到只剩思维导图默认内容的页面体验。这里的核心问题不是单次保存失败,而是 `index.md` 页面正文与文件树里的 mindmap asset 没有明确收口到同一份页面真源。 + +## 2. 归类理由 + +本问题归到 `05-editor-mainline`,而不是只归到 `06-mindmap`,理由如下: + +- 用户可见故障发生在文档页壳、文件树点击打开、主编辑区内容切换体验上。 +- 受影响对象是 `index.md` 页面正文与主编辑区当前内容,而不只是 mindmap runtime 内部编辑能力。 +- `design/10-review` 已明确当前 Page Aggregate 仍是“主链已切、单一真源收口未完”的状态,本问题正是页面正文、asset view 与 standalone shell 边界未闭合的具体缺陷。 +- `04-tree-domain` 需要定义 filetree asset row 的 open intent,但真正承载用户体验和页面真源一致性的 owner 仍是编辑主线。 + +## 3. 真实现象 + +用户复现结论: + +1. 打开文件树中的思维导图文件,编辑后可以正常保存。 +2. 切换页面后,文件树中的思维导图仍能保存。 +3. 切换页面后点击文件树中的 `index.md`,主编辑区只显示思维导图默认内容,而不是该页面真实正文。 + +用户判断的根因方向: + +1. 之前对文件树中的思维导图文件点击操作会对主页面产生干扰,应取消该干扰。 +2. 思维导图文件的点击打开应该在主编辑区弹出新页面或新 tab,类似 VS Code,而不是污染 `index.md`。 +3. 当前文件树 `index.md` 与其中的思维导图没有只持有一份真源,需要收口成单一来源。 + +## 4. 证据 + +设计审查证据: + +- `design/10-review/README.md` 明确当前最需要收口的是 `Page Aggregate` 单一真源边界、tree realtime/live cache、side effect 一致性,以及 legacy/compat/fallback 退场边界。 +- `design/10-review/02-frontend-editor-tree-review.md` 的 F-01 指出 Page Aggregate 读链已 Rust-first,但客户端仍有本地 aggregate reducer 持有标题、正文、设置、子树快照等临时真相,页面域单一真源尚未闭环。 +- `design/10-review/04-secondary-domains-and-design-governance-review.md` 的 Mindmap 段落指出 standalone mindmap shell 已存在,但 compat 数据层仍承载导图数据,不应被描述为长期 canonical truth。 + +代码锚点: + +- `rust/crates/mnote-web/src/ssr/pages/layout.rs:1100` 定义 `buildMindmapOpenPath(documentId, assetId)`,直接生成 `/mindmap/{documentId}/{assetId}`。 +- `rust/crates/mnote-web/src/ssr/pages/layout.rs:1128` 到 `:1134` 的 `openConvexAssetFromFileTree` 在识别到 mindmap asset 后直接 `window.location.assign(buildMindmapOpenPath(documentId, assetId))`。 +- `rust/crates/mnote-web/src/ssr/pages/layout.rs:1180` 到 `:1182` 将 `tree.asset.open` 统一交给 `openConvexAssetFromFileTree`。 +- `rust/crates/mnote-web/src/ssr/pages/layout.rs:3551` 到 `:3555` 文件树点击 `index/document/markdown` 时导航到文档页,但非文档 row 且有 `assetId` 时 dispatch `tree.asset.open`,mindmap asset 因而进入 standalone mindmap 路由。 +- `rust/crates/mnote-web/src/routes/mindmap_shell.rs:75` 到 `:104` standalone mindmap shell 构造临时 `editor_bootstrap.content`,内容只有一个 `mnoteBlockType: "mindmap"` 的 paragraph block。 +- `rust/crates/mnote-web/src/routes/mindmap_shell.rs:105` 到 `:123` standalone contract 标记为 `mnote.mindmap_shell.v1`,projection source 仍是 `compat-blob`。 +- `wolai-frontend/src/components/sidebar/sidebar-navigation.ts:21` 到 `:33` 的 React 侧 `buildSidebarMindmapOpenTarget` 在 `main` 模式下返回 `/documents/{documentId}`,只有 `sidebar` 模式才打开 `/mindmap/{documentId}/{mindmapId}`;这说明至少已有一条路径表达了“主编辑区不应直接进入 standalone mindmap shell”的倾向。 + +## 5. 当前判断 + +当前更像是三条路径混在一起: + +1. `index.md` 应代表页面正文,并由 Page Aggregate body / page command 持有。 +2. 文件树中的 mindmap asset 应代表页面内某个 mindmap block 关联的资源视图或编辑入口。 +3. standalone `/mindmap/{doc}/{mindmap}` 是过渡兼容壳,应作为独立编辑页或调试/弹出入口,不应替代主编辑区的 `index.md` 真源。 + +因此,即使 mindmap asset 自己可以保存,也不能说明 `index.md` 与 mindmap block 已经同源。当前故障的关键是:打开 asset 的动作把用户带进了会伪造临时正文的 shell,导致页面主编辑体验看起来像 `index.md` 被替换成默认 mindmap。 + +## 6. 建议修复方向 + +### 阶段一:立即止血 + +1. 取消文件树 mindmap asset 点击直接 `window.location.assign('/mindmap/{doc}/{asset}')` 的主路径行为。 +2. 点击 `index.md` 必须始终打开真实 `/documents/{documentId}?treeView=filetree`,并读取真实 Page Aggregate body。 +3. mindmap asset 点击只能发出明确的 asset-open intent,不应改写当前页面正文、不应伪造 `index.md` 内容、不应让主编辑区误认为当前正文就是 standalone bootstrap。 +4. 保留 `/mindmap/{doc}/{asset}` 作为显式独立页面入口时,应只用于新窗口、新 tab、调试入口或明确的 asset editor,不作为普通文件树主点击默认行为。 + +### 阶段二:主编辑区 asset tab + +建议把文件树里的 mindmap asset 打开为主编辑区内的 asset tab / preview,而不是替换 `index.md`: + +- 标签形态类似 `index.md | mindmap.json`。 +- `index.md` tab 只显示真实页面正文。 +- `mindmap.json` 或 mindmap asset tab 使用 `{ documentId, mindmapId }` 加载 mindmap projection。 +- asset tab 保存只写 mindmap command / projection 对应资源,不创建第二份页面正文。 +- 关闭 asset tab 后回到 `index.md`,正文内容应保持不变。 + +### 阶段三:Page Aggregate 与 block-asset 单一真源 + +长期应把 mindmap asset 与页面正文 block 关系收口到 Page Aggregate / kernel projection: + +1. 页面正文中的 mindmap block attrs 持有稳定 `mindmapId`。 +2. 文件树 mindmap asset row 来自同一份 page aggregate/resource projection,而不是另起一套对象真相。 +3. mindmap asset 的删除、恢复、移动、重命名应同步维护 page body block 与 resource projection 的关系。 +4. standalone shell 如果继续存在,也必须声明自己是 asset editor,不再构造会被误认为 `index.md` 的页面正文 bootstrap。 + +## 7. 建议 smoke 验证 + +修复完成后至少补一条文件树 mindmap 回归 smoke: + +1. 登录真实测试账号。 +2. 新建测试页面,插入或生成一个 mindmap block,记录 `documentId` 与 `mindmapId`。 +3. 从文件树点击该页面下的 mindmap asset。 +4. 断言主编辑区没有导航到会污染 `index.md` 的 standalone bootstrap;如果打开 asset tab,则 tab 标识与 `index.md` 分离。 +5. 在 mindmap 中输入一段较长中文内容并保存。 +6. 切换到其它页面,再从文件树点击原页面 `index.md`。 +7. 断言 `index.md` 仍显示真实页面正文,且页面内 mindmap block 仍引用同一个 `mindmapId`。 +8. 再打开 mindmap asset,断言刚才输入的长中文内容仍存在。 + +需要保留一条负向断言: + +- 普通文件树主点击 mindmap asset 不应触发 `window.location.assign('/mindmap/{doc}/{asset}')` 并替换当前文档页正文。 + +## 8. 修复证据 + +本问题已按 `4-24` 与 `5-12` 收口: + +- `rust/crates/core-protocol/src/kernel.rs` 增加 `KernelObjectIdentity` / `KernelBlockAssetRelation`。 +- `rust/crates/bridge-runtime/src/lib.rs` 的 file tree projection 为 `index.md`、mindmap、OnlyOffice、代码附件、普通附件输出不同 `resourceMeta.objectIdentity`。 +- `rust/crates/mnote-web/src/tree_shell/filetree_renderer.rs`、`rust/crates/mnote-web/src/routes/tree.rs`、`rust/crates/mnote-web/src/ssr/pages/layout.rs` 将 `objectIdentity` 下发到文件树 DOM 与 `tree.asset.open` intent。 +- `/mindmap/{documentId}/{mindmapId}` 由 `rust/crates/mnote-web/src/ssr/pages/mindmap.rs` 明确标记为 `data-mnote-object-editor="mindmap"` 与 `data-mnote-object-identity="resource:mindmap:{documentId}:{mindmapId}"`。 +- `rust/crates/mnote-web/src/routes/mindmap_shell.rs` 的 standalone bootstrap 使用 `__mindmap_object__:{documentId}:{mindmapId}`,不复用真实页面正文草稿身份。 + +验证命令: + +```bash +cd /mnt/Data1T/mnote/rust && cargo test -p core-protocol --test resource_tree_contract -- --nocapture +cd /mnt/Data1T/mnote/rust && cargo test -p bridge-runtime file_tree_projection -- --nocapture +cd /mnt/Data1T/mnote/rust && cargo test -p mnote-web file_tree_projection -- --nocapture +cd /mnt/Data1T/mnote/rust && cargo test -p mnote-web mindmap -- --nocapture +cd /mnt/Data1T/mnote/rust && cargo test -p mnote-web documents_save_route_executes_page_body_save_command -- --nocapture +cd /mnt/Data1T/mnote/rust/spikes/leptos-tiptap-spike && cargo test standalone_mindmap_object_uses_isolated_draft_identity -- --nocapture +node scripts/task112-tree-rust-family-regression-smoke.js +node scripts/task169-mindmap-realtime-smoke.js +``` + +`task169` 已覆盖:文件树 mindmap asset 打开、长中文编辑、保存、切页、从文件树回 `index.md`、再次打开 mindmap,且未触发 `page.body.save` 污染链。 + +## 9. 流转条件 + +当前状态:`done` + +只有在以下条件都满足后,本文才能移动到 `bugs/05-editor-mainline/done/`: + +1. [x] 文件树 mindmap asset 普通点击不再污染 `index.md` 主编辑区。 +2. [x] `index.md` 与页面内 mindmap block 的关系有明确单一真源,至少不再出现切页后只剩默认导图的现象。 +3. [x] `/mindmap/{doc}/{asset}` 的产品定位被明确为独立页、新 tab、debug 或 asset editor,不再被文件树主路径误用。 +4. [x] smoke 覆盖长中文 mindmap 编辑、保存、切页、回到 `index.md`、再次打开 asset 的完整链路。 +5. [x] 浏览器复测确认 mindmap 编辑可用性优先,不因实时刷新或路由切换导致闪烁、跑位或内容错乱。 diff --git a/bugs/05-editor-mainline/process/5-11-mindmap-ghost-assets-and-tree-command-latency-v1.md b/bugs/05-editor-mainline/process/5-11-mindmap-ghost-assets-and-tree-command-latency-v1.md new file mode 100644 index 00000000..c702d491 --- /dev/null +++ b/bugs/05-editor-mainline/process/5-11-mindmap-ghost-assets-and-tree-command-latency-v1.md @@ -0,0 +1,193 @@ +# 5-11 [process][bug] Mindmap 幽灵附件增长与树命令卡顿 v1 + +> 更新时间:2026-05-13 +> +> 分类归属: +> - `05-editor-mainline/process` +> - 涉及边界:`04-tree-domain/tree command + file_tree projection`、`06-mindmap/runtime save + resource relation` +> +> 用户证据: +> - `/mnt/Data1T/mnote/tmp/image copy 94.png` +> - `/mnt/Data1T/mnote/tmp/image copy 93.png` + +## 1. 问题定义 + +用户在页面中只是修改了一下 mindmap,文件树/资源树下却陆续出现多个 `mindmap-mindmap...` 附件行。截图显示同一页面 `新页面3` 下有 `index.md`,并且 mindmap 附件从 2 条增长到 4 条。 + +同一轮反馈还指出:删除页面和新建页面都很慢,表现为树操作后明显卡顿。 + +这不是单纯的图标显示问题。当前症状同时暴露两条链路风险: + +1. mindmap 编辑/初始化/保存链路会多次向资产层广播同一个资源存在,且缺少“页面正文 block 与 mindmap asset 关系唯一”的硬约束。 +2. tree shell 的页面新建、删除、重命名、移动仍在命令成功后强制整页刷新,和当前 live projection/SSE 机制重复,导致用户感知卡顿。 + +## 2. 真实现象 + +已观察到的用户现象: + +1. 新页面下初始只有 `index.md` 和少量 mindmap 附件。 +2. 用户只是编辑 mindmap,不是主动新建 mindmap。 +3. 等一会儿或再次修改后,同一页面下又出现新的 `mindmap-mindmap...` 行。 +4. 页面新建和删除动作响应慢,像是页面/树整体重新加载。 + +期望结果: + +1. 一个页面内的一个 mindmap block 只对应一个稳定 `mindmapId` 和一个 file tree asset row。 +2. mindmap 保存只能更新既有资源,不应创建新的 mindmap 资产行。 +3. file tree projection 应按 `{documentId, blockId, assetId}` 或明确 object identity 去重。 +4. 页面新建/删除成功后应优先消费 command result / tree delta 更新局部投影,不应默认整页 reload。 + +## 3. 初步调查证据 + +### 3.1 mindmap 资产广播存在多入口 + +`wolai-frontend/src/components/editor/blocks/MindmapBlock.tsx` 中同一个 mindmap 资源至少有三处会触发资产刷新广播: + +- 保存成功后广播 `emitAssetsChanged(docId, { id: mindmapId, asset_type: "mindmap", ... })`:`MindmapBlock.tsx:1499` 到 `:1534` +- 初始同步 `createOnly: true` 成功后广播:`MindmapBlock.tsx:1591` 到 `:1621` +- mindmap 实例就绪后立即广播:`MindmapBlock.tsx:1636` 到 `:1647` + +另一个 legacy/compat block wrapper 也会在 mount 时执行 `createOnly` 并广播资产:`MindmapBlock.tsx:3573` 到 `:3612`。 + +这些广播本身用 `id = mindmapId`,理论上同 ID 会被 sidebar 本地 state 去重;但只要保存/转换链路让同一视觉 mindmap 换了新的 `mindmapId`,就会生成新的资产行。 + +### 3.2 mindmapId 仍可能由时间戳生成 + +当前 `leptos-tiptap` 插入 mindmap 时使用: + +- `rust/spikes/leptos-tiptap-spike/src/lib.rs:5681` 到 `:5689` + +这里 `next_mindmap_id()` 生成 `mindmap_{Date.now()}`,并写入 paragraph attrs 的 `mindmapId`。如果后续转换、保存、重新挂载中丢失原 attrs,fallback 会用新的 block identity / 新插入节点创建新的 `mindmapId`,资产层就会认为这是另一个 mindmap。 + +相关转换锚点: + +- `rust/crates/mnote-web/src/routes/web_shell.rs:818` 到 `:838`:legacy block 转 TipTap 时写入 `mindmapId` +- `rust/crates/mnote-web/src/routes/web_shell.rs:983` 到 `:1009`:TipTap 节点转 editor block 时若 attrs 缺失则用 blockId fallback +- `wolai-frontend/src/lib/documents/tiptap-content-converter.ts:188` 到 `:213`:`mindmapReferenceProps` 会在缺少 `mindmapId` 时 fallback 到 blockId +- `wolai-frontend/src/lib/documents/tiptap-content-converter.ts:410` 到 `:418`:editor block 转 TipTap 时把 mindmap props 写回 paragraph attrs + +当前缺少一条回归断言:连续编辑同一个 mindmap 后,保存前后 `mindmapId` 必须保持不变,且 file tree 下同一页面 mindmap asset 数量不增长。 + +### 3.3 Convex mindmaps 表允许同页多 mindmap,但缺少 block 关系唯一约束 + +`wolai-frontend/convex/schema.ts:164` 到 `:183` 定义 mindmaps 表,并以 `(document_id, mindmap_id)` 做查询索引。注意这里是普通索引,不是唯一约束。 + +`wolai-frontend/convex/mindmaps.ts` 的 `put` 对同一 `(document_id, mindmap_id)` 是幂等 patch/insert,但它并不知道页面正文中的哪个 block 才是唯一来源。也就是说: + +- 同一个 `mindmapId` 重复保存不会多插入。 +- 如果历史或并发路径已经写出同一 `(document_id, mindmap_id)` 的多行,`put` 当前用 `.first()` 只会 patch 第一行,剩余重复行仍会被后续 list/projection 展示。 +- 但如果前端生成了新的 `mindmapId`,后端会按合法新 mindmap 插入。 +- file tree 会把同一 document 下所有 active mindmaps 映射为资产行。 + +对应映射: + +- `wolai-frontend/convex/mindmaps.ts:206` 到 `:245`:`put` 查询 `by_doc_mindmap` 后 `.first()`,不存在则 insert +- `wolai-frontend/convex/sidebar.ts:79` 到 `:100`:`mindmap_id` 被映射为 `id` 和 `mindmap-{mindmap_id}.json` +- `wolai-frontend/convex/sidebar.ts:193` 到 `:220`:所有 active mindmaps 都进入 `mindmap_assets` +- `rust/crates/bridge-runtime/src/lib.rs:7569` 到 `:7647`:file tree projection 从 `mindmap_assets` 构建资源行,并只按 asset id 去重 + +因此,当前有两个需要实测区分的分支: + +1. 同一视觉对象被保存成多个不同 `mindmapId`,每个都被合法展示为一个资源。 +2. 数据表中已经存在同一 `(document_id, mindmap_id)` 多行,`.first()` 更新掩盖重复行,sidebar list 把重复行全部暴露出来。 + +两者都会在截图中表现为同一页面下多个 `mindmap-mindmap...` 行。 + +### 3.4 Rust / Next API 都会把 mindmap 保存转成 tree resync + +保存路径还会触发树刷新: + +- Next API `POST /api/mindmap/[docId]/[mindmapId]` 构造 `mindmaps.put` 或 `mindmap.command.apply`:`wolai-frontend/src/app/api/mindmap/[docId]/[mindmapId]/route.ts:229` 到 `:254` +- Rust API 普通保存也包装为 `mindmaps.put` 并携带 `createOnly`:`rust/crates/mnote-web/src/routes/mindmap_api.rs:177` 到 `:200` +- Bridge runtime 给 `mindmaps.put` 生成 `resync_required` 树事件:`rust/crates/bridge-runtime/src/lib.rs:9273` 到 `:9326` + +这意味着 mindmap 每次保存都会推动资源树重新读 projection;如果底层 mindmaps 数据已经重复,保存/刷新会把重复行显性化。 + +## 4. 页面新建/删除慢的证据 + +tree shell 在多处命令成功后调用 `scheduleRefresh()`,而 `scheduleRefresh()` 的实现是 80ms 后整页 reload 或带 `renameRowId` 重新 assign: + +- `rust/crates/mnote-web/src/routes/tree.rs:2976` 到 `:2986` + +调用点包括: + +- 文件树删除:`rust/crates/mnote-web/src/routes/tree.rs:2791` 到 `:2824` +- 新建页面:`rust/crates/mnote-web/src/routes/tree.rs:4309` 到 `:4340` +- 重命名:`rust/crates/mnote-web/src/routes/tree.rs:4373` 到 `:4406` +- 移动:`rust/crates/mnote-web/src/routes/tree.rs:4448` 到 `:4502` + +与此同时,主页面已经有 tree live controller 接收 `snapshot` / `delta` / `resync`: + +- `rust/crates/mnote-web/src/ssr/pages/layout.rs:3881` 到 `:3917` +- `rust/crates/mnote-web/src/ssr/pages/layout.rs:3939` 到 `:4050` + +这会造成两种低效叠加: + +1. 命令结果本身已经返回 `tree.node.created` / `tree.node.archived` 等 delta hint。 +2. 前端仍然整页刷新,重新加载 sidebar、file tree、workspace shell、编辑器 runtime。 + +这解释了“新建页面和删除页面都很慢”的用户感知。 + +## 5. 当前判断 + +当前根因尚需实测最终确认,但静态代码已经能支持以下判断: + +1. mindmap ghost asset 增长的高概率根因是 `mindmapId` 稳定性没有被端到端锁死。只要编辑/保存/重挂载过程中 attrs 丢失或重新创建 block,就会插入新 `mindmap_{timestamp}`,后端会合法保存,file tree 会合法展示。 +2. 另一个可疑根因是 `mindmaps` 表没有唯一约束,`put` 只 patch `.first()`,无法清除或阻止同键重复行。 +3. 资产广播入口过多会放大问题。它们让新 mindmapId 或重复数据几乎立即进入 sidebar 本地 state 和 Convex projection,用户就会看到“自己又新增了一个”。 +4. file tree projection 只按 `asset.id` 去重,无法识别“同一 document + 同一正文 block 的多个 mindmapId 其实是幽灵副本”,也无法处理同 id 多行投影的上游异常。 +5. 页面新建/删除慢不是 Convex 单点问题,当前 tree shell 命令成功后仍强制 reload,是明确的性能和体验缺陷。该慢操作应单独归入 `04-tree-domain` 跟踪,本文只保留关联证据。 + +## 6. 建议复现与验证 + +建议补一条失败优先 smoke,先不要直接修代码: + +1. 使用真实测试账号登录 `http://localhost:3000/auth`。 +2. 新建测试页面,记录 `documentId`。 +3. 插入一个 mindmap,记录首个 `mindmapId`。 +4. 连续修改 mindmap 中心主题或新增节点 3 次,每次等待保存完成。 +5. 切到文件树,统计该页面下 `asset_type=mindmap` 的行数和 `data-mnote-object-identity`。 +6. 刷新页面后再次统计。 +7. 断言同一页面下 mindmap asset 数量仍为 1,且 `mindmapId` 未变化。 +8. 同一脚本计时新建页面、删除页面从点击到 DOM 稳定的耗时,并记录是否触发 `window.location.reload()` / navigation。 + +建议同时检查 Convex 数据: + +- `mindmaps` 中同一 `document_id` 下是否出现多个 `mindmap_id`。 +- 新增出来的 `mindmap_id` 是否都形如 `mindmap_`。 +- 页面正文 TipTap JSON 中是否只有一个 mindmap paragraph,且 attrs.mindmapId 是否随保存变化。 + +## 7. 建议修复方向 + +### 阶段一:防止继续增长 + +1. mindmap block 创建时生成一次稳定 `blockId` 与 `mindmapId`,后续保存、转换、重挂载必须保留。 +2. `documents.save` / TipTap converter 对 `mnoteBlockType=mindmap` 增加 contract:缺少 `mindmapId` 时不得静默新建时间戳 ID,应先从 block identity / object identity 恢复,恢复不了则报可观测错误。 +3. `mindmaps.put` 或上层 command 增加可选 `blockId` / `blockAssetRelation`,对同一 `{documentId, blockId}` 已有关联 mindmap 时拒绝插入第二个 mindmapId。 +4. asset 广播入口收口:保存成功、initial createOnly、实例就绪不应都伪造 asset;前端应优先消费 kernel/file tree projection 返回的 object identity。 + +### 阶段二:清理幽灵副本 + +1. 提供只读诊断脚本:列出同一页面下多个 mindmapId、对应 updated_at、正文引用的 mindmapId。 +2. 只有在用户确认后,才可清理未被页面正文引用的 mindmap 行。 +3. 清理必须进入 bug 修复 checklist,不能在本缺陷说明阶段直接删除数据。 + +### 阶段三:树命令性能收口 + +1. `tree.node.create` 成功后用 command result / delta 局部插入节点,而不是 reload。 +2. `tree.node.archive` 成功后用 `remove_document` delta 局部移除节点。 +3. 只有 projection 丢失、SSE 断线或 reducer 无法应用时才走 resync/reload fallback。 +4. smoke 增加“无整页 reload”断言和耗时阈值。 + +## 8. 流转条件 + +当前状态:`process` + +只有满足以下条件后才能移动到 `bugs/05-editor-mainline/done/`: + +1. [ ] 已有 smoke 能稳定复现当前 mindmap 资产增长问题,或能证明 Convex 数据中存在同页多 mindmap 幽灵副本。 +2. [ ] 同一 mindmap 连续编辑保存后,`mindmapId` 和 file tree object identity 保持稳定。 +3. [ ] 同一页面下未主动新建多个 mindmap 时,file tree 只出现一个 mindmap asset row。 +4. [ ] 新建页面和删除页面不再默认整页 reload,或至少有明确 fallback 条件。 +5. [ ] 浏览器实测记录新建/删除耗时,并明显低于当前整页 reload 体验。 +6. [ ] 若清理历史幽灵副本,必须经用户确认,并保留清理前后证据。 diff --git a/bugs/05-editor-mainline/process/5-9-c12-topbar-sidebar-toggle-noop-v1.md b/bugs/05-editor-mainline/process/5-9-c12-topbar-sidebar-toggle-noop-v1.md new file mode 100644 index 00000000..557582f4 --- /dev/null +++ b/bugs/05-editor-mainline/process/5-9-c12-topbar-sidebar-toggle-noop-v1.md @@ -0,0 +1,114 @@ +# 5-9-C12 [process][bug] 文档页顶栏左上角切换侧栏按钮无效 v1 + +> 更新时间:2026-05-12 +> +> 分类归属: +> - `05-editor-mainline/process` +> - 对应体验主线:`5-9 Wolai-aline continuous checklist` +> +> 关联文档: +> - `/mnt/Data1T/mnote/design/05-editor-mainline/process/5-9-wolai-aline-continuous-checklist-v1.md` +> - `/mnt/Data1T/mnote/design/05-editor-mainline/process/5-7-wolai-page-tree-main-editor-experience-restoration-v1.md` +> - `/mnt/Data1T/mnote/design/04-tree-domain/done/4-2-sidebar-pagetree-filetree-product-interaction-contract-v1.md` + +## 1. 问题定义 + +当前 `3000` 文档页顶部左上角的 `切换侧栏` 按钮可以被点击,但点击后左侧 sidebar 没有收起,再次点击也没有重新展开的状态变化。 + +这不是页面树节点的展开/折叠问题,而是文档页壳层的 `sidebar shell toggle` 缺失。 + +## 2. 归类理由 + +本问题归到 `05-editor-mainline`,而不是 `04-tree-domain`,理由如下: + +- 问题入口位于文档页顶栏,不在 `page_tree/file_tree` 行内交互层。 +- 问题影响的是页面壳、顶栏和侧栏显隐体验,属于 `Wolai 页面树与主编辑器体验复刻` 主线。 +- `04-tree-domain` 更关注树 projection、row model、selection/focus、keyboard、DnD、tree command 等合同;本文问题不在这些运行时合同里。 + +## 3. 真实现象 + +复现路径: + +1. 打开 `http://127.0.0.1:3000/auth` +2. 点击 `测试账号快速登录` +3. 进入文档页后,点击顶栏左上角 `切换侧栏` +4. 观察左侧 sidebar 是否收起 +5. 再点击一次,观察是否重新展开 + +实际结果: + +- 第 1 次点击后,左侧 sidebar 仍然完整可见 +- 第 2 次点击后,左侧 sidebar 仍然完整可见 +- 页面 URL 不变 +- 浏览器 console 未出现报错 +- 关键 network 未出现与 toggle 对应的新请求 + +期望结果: + +- 第 1 次点击应收起左侧 sidebar +- 第 2 次点击应恢复展开 +- 行为应与 Wolai / 常规文档页壳的 sidebar toggle 一致 + +## 4. 证据 + +截图证据: + +- 切换前:`/mnt/Data1T/mnote/tmp/hermes-tester/manual-before-toggle.png` +- 点击一次后:`/mnt/Data1T/mnote/tmp/hermes-tester/manual-after-toggle.png` +- 点击两次后:`/mnt/Data1T/mnote/tmp/hermes-tester/manual-after-second-toggle.png` + +Hermes tester 首轮取证: + +- `/mnt/Data1T/mnote/tmp/hermes-tester/first-run/screenshots/01-auth-entry.png` +- `/mnt/Data1T/mnote/tmp/hermes-tester/first-run/screenshots/02-after-quick-login.png` + +窄范围侧栏取证: + +- `/mnt/Data1T/mnote/tmp/hermes-tester/sidebar-run/01-auth.png` +- `/mnt/Data1T/mnote/tmp/hermes-tester/sidebar-run/02-after-login-before-toggle.png` + +代码锚点: + +- 顶栏按钮渲染位于 `/mnt/Data1T/mnote/rust/crates/mnote-web/src/ssr/pages/layout.rs:3938` +- 当前仅能找到按钮渲染与样式,未看到对应的显隐切换绑定: + - `/mnt/Data1T/mnote/rust/crates/mnote-web/src/ssr/pages/layout.rs:3938` + - `/mnt/Data1T/mnote/rust/crates/mnote-web/src/ssr/styles.rs:1940` + +## 5. 当前判断 + +当前更像是: + +- 顶栏按钮已经进入 SSR 页面壳 +- 但 `sidebar open/collapsed` 状态未接线 +- 或按钮没有绑定到实际的 sidebar toggle handler + +也就是说,这是一条“控件已渲染,但未驱动真实状态”的缺陷,而不是视觉误差。 + +## 6. 建议完成方式 + +完成本缺陷至少需要满足下面四条: + +1. 顶栏 `切换侧栏` 按钮绑定真实的 sidebar toggle 状态 +2. 第 1 次点击后 sidebar 收起 +3. 第 2 次点击后 sidebar 再展开 +4. 增补可回归 smoke,覆盖: + - 登录后点击 toggle + - 收起态存在明确 DOM/样式状态 + - 再次点击后恢复展开 + +建议验收同时包含: + +- 代码验证:相关 Rust SSR / 前端状态接线 +- 浏览器 smoke:真实点击与状态断言 +- 截图复核:收起前 / 收起后 / 再展开后三张图 + +## 7. 流转条件 + +当前状态:`process` + +只有在以下条件都满足后,本文才能移动到 `bugs/05-editor-mainline/done/`: + +1. 真实代码已修复 +2. smoke 已覆盖且通过 +3. 浏览器复测确认收起/展开都生效 +4. 证据路径已补齐到修复后的截图或日志 diff --git a/bugs/README.md b/bugs/README.md new file mode 100644 index 00000000..587ba176 --- /dev/null +++ b/bugs/README.md @@ -0,0 +1,34 @@ +# bugs 缺陷索引 + +> 更新时间:2026-05-12 +> +> 状态口径以当前仓库真实代码与真实验证结果为准: +> - `[done]`:问题已修复,且已通过代码、smoke、浏览器或截图证据验证 +> - `[process]`:问题已确认存在,仍在修复、验证或等待收口 + +## 分类方式 + +- `bugs/` 默认镜像 `design/` 的主线分类方式。 +- 当前主线缺陷按对应大类放置,例如: + - `01-tree-first-graph-kernel/` + - `02-convex-rust-long-term-architecture/` + - `03-rust-web/` + - `04-tree-domain/` + - `05-editor-mainline/` + - `06-mindmap/` + - `07-ai/` +- 每个大类继续按 `process/` 与 `done/` 分层。 + +## 归类原则 + +- 缺陷归类以真正 owner 和长期主线为准,不以表面症状命名。 +- `sidebar`、`topbar`、`breadcrumb`、文档页壳、Wolai 体验对齐、页面树与主编辑器整体体验问题,优先归到 `05-editor-mainline/`。 +- `projection`、`row model`、`selection/focus model`、`keyboard`、`DnD`、`tree command`、`page_tree/file_tree/sidebar_tree` 协议问题,优先归到 `04-tree-domain/`。 +- `transport`、route、SSR page shell owner、compat/bridge 边界问题,按 owner 判断是否落到 `03-rust-web/` 或 `05-editor-mainline/`。 + +## 流转规则 + +- 新确认的缺陷先进入对应大类的 `process/`。 +- 缺陷在真实代码中修复并完成对应验证后,必须移动到对应大类的 `done/`。 +- 不允许在 `process/` 与 `done/` 同时保留同一条缺陷。 +- 若后续发现旧缺陷记录归类错误,应直接迁移到正确大类,而不是在错误大类继续追加。 diff --git a/design/04-tree-domain/done/4-24-resource-tree-filetree-pagetree-source-contract-checklist-v1.md b/design/04-tree-domain/done/4-24-resource-tree-filetree-pagetree-source-contract-checklist-v1.md new file mode 100644 index 00000000..6ca6f781 --- /dev/null +++ b/design/04-tree-domain/done/4-24-resource-tree-filetree-pagetree-source-contract-checklist-v1.md @@ -0,0 +1,233 @@ +# 4-24 [done] Resource Tree / File Tree / Page Tree 真源合同与执行清单 v1 + +> 更新时间:2026-05-13 +> +> 上游依据: +> - `/mnt/Data1T/mnote/design/10-review/05-tree.md` +> - `/mnt/Data1T/mnote/design/04-tree-domain/done/4-2-sidebar-pagetree-filetree-product-interaction-contract-v1.md` +> - `/mnt/Data1T/mnote/design/04-tree-domain/done/4-20-vscode-explorer-file-tree-alignment-v1.md` +> - `/mnt/Data1T/mnote/design/05-editor-mainline/process/5-5-page-aggregate-single-truth-alignment-v1.md` +> - `/mnt/Data1T/mnote/design/10-review/README.md` + +## 1. 目标 + +本清单用于把 `design/10-review/05-tree.md` 中的判断落到树域主线: + +- `Resource Tree` 是长期对象组织真源,由 Rust kernel 持有语义。 +- `File Tree` 是 Resource Tree 的主组织投影,展示页面、`index.md`、附件、mindmap、OnlyOffice、代码附件等资源。 +- `Page Tree` 是页面导航投影 / 快捷视图,不拥有排序、父子、附件归属或资源归属的最终真相。 +- Sidebar、文件树 UI、页面树 UI 都只能消费 projection 和发 command,不能重新拼第二套结构真相。 + +## 2. 术语冻结 + +- `Resource Tree`:workspace 内对象与资源的 canonical hierarchy。它不是 UI 文件树组件,而是 kernel 层的资源组织语义。 +- `File Tree`:Resource Tree 面向 VS Code Explorer 体验的 projection。 +- `Page Tree`:Resource Tree 中页面对象的导航 projection,可做快捷显示,但不拥有资源归属。 +- `ObjectIdentity`:打开、保存、草稿、tab、command 使用的对象身份。 +- `BlockAssetRelation`:页面正文 block 与资源对象之间的稳定关联,例如 `documentId + blockId + assetId + assetKind`。 + +## 3. 非目标 + +- 不在本阶段重写 Convex 底层存储。 +- 不在本阶段一次性删除所有 compat/fallback。 +- 不把文件树 UI 组件提升为真源。 +- 不让 Page Tree 接管附件、mindmap 或 OnlyOffice 的归属。 + +## 4. 前置顺序与执行门 + +本清单是 `5-12` 的前置合同。执行顺序固定为: + +1. 先完成本文件的 `Resource Tree / File Tree / Page Tree` 真源合同。 +2. 再执行 `design/05-editor-mainline/done/5-12-main-editor-object-tab-resource-alignment-checklist-v1.md` 中的主编辑区 object tab、草稿隔离和打开路径调整。 + +不允许绕过本文件直接在编辑区里新增第二套 asset / page 归属判断。编辑区可以先做 mindmap 止血,但止血代码必须只消费本文件定义的 object identity / file tree intent,不得把临时前端判断提升为长期合同。 + +当前代码基线: + +- `rust/crates/core-protocol/src/kernel.rs` 已有 `KernelProjectionResourceKind`、`KernelProjectionAssetKind`、`KernelProjectionResourceMeta`、`KernelProjectionItem`。 +- `rust/crates/bridge-runtime/src/lib.rs` 已有 `build_file_tree_projection_result`、`make_projection_resource_meta`、`normalize_file_tree_asset` 等 file tree projection 构造逻辑。 +- `rust/crates/mnote-web/src/routes/tree.rs` 与 `rust/crates/mnote-web/src/ssr/pages/layout.rs` 已消费 `resourceMeta` 并发出 `tree.asset.open`。 +- `rust/crates/mnote-web/src/ssr/pages/layout.rs` 当前仍把 mindmap asset 主路径导航到 `/mindmap/{documentId}/{assetId}`,这是 `5-10` bug 的直接落点,但长期合同归属仍应先在本文件冻结。 + +阶段门: + +- G1:协议能表达 `index.md`、mindmap、OnlyOffice、普通附件、代码附件的不同 object identity。 +- G2:`file_tree` projection row 能稳定输出 object identity 或等价 `resourceMeta.extra.objectIdentity`。 +- G3:`page_tree` projection 被约束为页面导航投影,不承载 asset 归属。 +- G4:`tree.asset.open` 只表达打开资源对象的 intent,不决定“把资源当正文打开”。 +- G5:完成 G1-G4 后,`5-12` 才能把主编辑区打开路径、草稿 key、保存命令接入 object tab / object editor 规则。 + +## 5. 执行清单 + +### 5.1 协议模型 + +- [x] 在 `rust/crates/core-protocol/` 增加或扩展资源对象协议。 + - 优先落点:`rust/crates/core-protocol/src/kernel.rs`,必要时拆出 `rust/crates/core-protocol/src/resource.rs` 并在 `lib.rs` re-export。 + - 当前已有 `KernelProjectionResourceKind`,本阶段应补齐或映射为长期 `ResourceKind` 语义。 + - 最小资源种类:`page`、`index`、`mindmap`、`attachment`、`onlyoffice`、`code`。 + - `ObjectIdentity` 最小字段:`objectKind`、`documentId`、`blockId`、`assetId`。 + - `BlockAssetRelation` 最小字段:`documentId`、`blockId`、`assetId`、`assetKind`。 + - 命名规则:Rust 类型使用 `KernelObjectIdentity` / `KernelBlockAssetRelation` 或等价项目内前缀;序列化字段使用 camelCase。 + +- [x] 补协议单测。 + - 文件建议:`rust/crates/core-protocol/tests/resource_tree_contract.rs`。 + - 断言:mindmap、OnlyOffice、普通附件都能表达为 resource object。 + - 断言:`index.md` 的 object identity 与 mindmap asset 的 object identity 不相等。 + - 断言:`BlockAssetRelation` 能表达 `documentId + blockId + assetId + assetKind`,且不会被反序列化为页面正文 identity。 + - 运行命令: + - `cd /mnt/Data1T/mnote/rust && cargo test -p core-protocol --test resource_tree_contract -- --nocapture` + - 预期:新增协议测试通过,失败时不得继续进入 `5-12` 的 P1/P2。 + +### 5.2 Projection 合同 + +- [x] 扩展 `file_tree` projection 的 row contract。 + - 每个 row 必须带稳定 `row_id`、`node_id`、`projection_kind`、`resource_meta`。 + - `resource_meta` 至少包含 `resourceKind`、`documentId`、`assetId`、`assetKind`、`objectIdentity`。 + - 优先修改点:`rust/crates/core-protocol/src/kernel.rs` 的 `KernelProjectionResourceMeta`,以及 `rust/crates/bridge-runtime/src/lib.rs` 的 `make_projection_resource_meta`。 + - 兼容策略:已有 `resourceKind/documentId/assetId/assetKind` 保持不破坏;新增字段可先放入 `resourceMeta.extra.objectIdentity`,待前后端消费稳定后再提升为强类型字段。 + +- [x] 固定 `page_tree` projection 的降级边界。 + - `page_tree` 只输出页面导航关系。 + - `page_tree` 不输出附件归属、mindmap 归属、OnlyOffice 归属的最终判断。 + - 如需显示资源状态,只能引用 `resource_meta` 或 resource projection,不得在 page tree renderer 内拼装。 + - 优先检查点:`rust/crates/bridge-runtime/src/lib.rs` 中 `page_tree` projection 构造逻辑、`wolai-frontend/src/lib/tree-projection.ts`、`wolai-frontend/src/lib/documents/page-subtree.ts`。 + +- [x] 补 Rust projection 测试。 + - 文件优先看:`rust/crates/bridge-runtime/src/lib.rs`、`rust/crates/mnote-web/src/tree_shell/`。 + - 测试要求:同一页面下的 `index.md` 与 mindmap asset 生成不同 row,但共享同一 `documentId`,并通过 `BlockAssetRelation` 建立关系。 + - 建议新增或扩展测试: + - `kernel_project_view_query_executes_into_file_tree_projection_contract` + - `kernel_file_tree_projection_query_supports_extended_resources_and_max_results` + - 新增 `kernel_file_tree_projection_separates_index_and_mindmap_object_identity` + - 运行命令: + - `cd /mnt/Data1T/mnote/rust && cargo test -p bridge-runtime file_tree_projection -- --nocapture` + - `cd /mnt/Data1T/mnote/rust && cargo test -p mnote-web file_tree_projection -- --nocapture` + +### 5.3 File Tree 派生规则 + +- [x] 页面节点下固定派生 `index.md` row。 + - `index.md` row 只能打开 Page Aggregate body。 + - `index.md` row 不得根据页面内第一个 block 类型改变打开目标。 + - 优先检查点:`rust/crates/bridge-runtime/src/lib.rs` 的 `build_file_tree_projection_result`,当前已固定创建 `index:{documentId}` node。 + - 前端消费检查点:`rust/crates/mnote-web/src/ssr/pages/layout.rs` 的 file tree row click 分支。 + +- [x] 页面内资源固定派生为 child resource row。 + - mindmap row 打开 mindmap object editor。 + - OnlyOffice row 打开 OnlyOffice object editor。 + - 代码附件 row 打开代码/预览编辑器。 + - 普通附件 row 打开签名资源或预览。 + - 优先检查点:`rust/crates/bridge-runtime/src/lib.rs` 的 `normalize_file_tree_asset`、`infer_file_tree_asset_shape`、`classify_asset_resource_kind`。 + - 必须保留 `documentId` 与 `assetId`,供 `5-12` 的 object tab identity 使用。 + +- [x] 文件树 row 不得从前端多份数据临时拼真相。 + - 允许前端显示、筛选、选中、展开。 + - 不允许前端决定资源归属、排序真相或 block-asset relation 真相。 + - 前端允许做的本地状态:`expanded`、`selected`、`hover`、`focus`、`dragging`、`drop target`。 + - 前端禁止新增长期字段:`assetParentDocumentId`、`mindmapOwnerPageId`、`pageTreeAssetChildren` 这类与 kernel projection 重复的归属真相。 + +### 5.4 Page Tree 派生规则 + +- [x] Page Tree 只消费页面导航投影。 + - 可显示页面标题、层级、当前页、快捷入口。 + - 不负责附件、mindmap、OnlyOffice、代码附件的生命周期。 + +- [x] Page Tree command 只发页面导航相关 command。 + - 页面新建、重命名、移动、归档继续走 `tree.node.*` 或正式 page/tree command。 + - 资源 attach/detach/rename/move 不进入 page tree 私有命令。 + - 负向检查:Page Tree renderer / host 中不得新增 mindmap、OnlyOffice、附件归属推导分支。 + +### 5.5 Command 边界 + +- [x] 新增或确认资源关系 command family。 + - `tree.asset.attach` + - `tree.asset.detach` + - `tree.resource.rename` + - `tree.resource.move` + +- [x] 明确不同对象写入 owner。 + - 页面正文:`page.body.save` + - 页面标题:`page.head.updateTitle` + - 页面设置:`page.layout.updateOptions` + - mindmap 内容:`mindmap.command.apply` + - OnlyOffice 内容:OnlyOffice callback / forcesave 写回链 + - 资源归属:`tree.asset.*` / `tree.resource.*` + - 优先检查点: + - `rust/crates/bridge-runtime/src/lib.rs` command plan + - `rust/crates/mnote-web/src/transport/convex.rs` command adapter + - `wolai-frontend/src/lib/documents/rust-runtime.test.ts` + +### 5.6 Smoke 与验收 + +- [x] 增加 Resource Tree / File Tree projection smoke。 + - 断言文件树同页下可见 `index.md`、mindmap、附件。 + - 断言点击 `index.md` 只打开 Page Aggregate body。 + - 断言点击 mindmap 不进入 Page Aggregate body 保存链。 + - 可复用脚本:`scripts/task112-tree-rust-family-regression-smoke.js`。 + - 建议新增断言脚本:`scripts/task170-resource-tree-filetree-source-smoke.js`,或在 task112 中增加独立 case。 + - 运行命令: + - `node scripts/task112-tree-rust-family-regression-smoke.js` + - 若新增脚本:`node scripts/task170-resource-tree-filetree-source-smoke.js` + +- [x] 增加 Page Tree 负向 smoke。 + - 断言 Page Tree 不显示资源归属为自己的结构真相。 + - 断言 Page Tree 操作不会改变 mindmap/附件归属。 + - 可复用脚本:`scripts/task112-tree-rust-family-regression-smoke.js`。 + - 负向检查输出需记录:操作 Page Tree 后,同一 `assetId` 的 `documentId` / `objectIdentity` 未变化。 + +## 6. 建议提交切片 + +本文件只定义设计顺序,不要求一次提交完成全部实现。后续执行时建议按以下切片推进: + +1. 协议切片:`core-protocol` 增补 object identity / relation 类型与测试。 +2. Projection 切片:`bridge-runtime` 与 `mnote-web` file tree projection 输出 object identity。 +3. UI 消费切片:file tree host 只转发 object open intent,不拼归属真相。 +4. Page Tree 负向切片:补 page tree 不持有资源归属的单测或 smoke。 +5. 验收切片:跑 Rust 测试与真实浏览器 smoke,把证据补回对应 bug / design 文档。 + +## 7. 验收命令 + +最低验收命令: + +```bash +cd /mnt/Data1T/mnote/rust && cargo test -p core-protocol --test resource_tree_contract -- --nocapture +cd /mnt/Data1T/mnote/rust && cargo test -p bridge-runtime file_tree_projection -- --nocapture +cd /mnt/Data1T/mnote/rust && cargo test -p mnote-web file_tree_projection -- --nocapture +node scripts/task112-tree-rust-family-regression-smoke.js +``` + +如执行环境没有启动 `3000`,先运行仓库常用入口: + +```bash +npm run desktop:hot +``` + +真实浏览器 smoke 必须使用默认测试账号 `mnote.e2e@example.com` / `MnoteE2E123!`,不能用 `devFallback` 代替登录态。 + +## 8. Done Gate + +本文移动到 `done/` 前必须满足: + +- [x] `Resource Tree`、`File Tree`、`Page Tree` 三个术语在协议和文档中不再混用。 +- [x] `file_tree` row 能表达 `index.md`、mindmap、OnlyOffice、附件、代码附件的不同 object identity。 +- [x] `page_tree` 被验证为页面导航 projection,不拥有资源归属真相。 +- [x] mindmap 与 `index.md` 的打开、保存、草稿身份互相隔离。 +- [x] 至少一条真实浏览器 smoke 覆盖 `index.md + mindmap asset + 切页 + 再打开` 的完整链路。 + +## 9. 完成证据 + +- 协议:`rust/crates/core-protocol/src/kernel.rs` 增加 `KernelObjectIdentity`、`KernelObjectKind`、`KernelBlockAssetRelation`,并由 `rust/crates/core-protocol/tests/resource_tree_contract.rs` 覆盖。 +- Projection:`rust/crates/bridge-runtime/src/lib.rs` 的 file tree projection 输出 `resourceMeta.objectIdentity` / `blockAssetRelation`,并覆盖 index、mindmap、OnlyOffice、代码附件、普通附件。 +- UI intent:`rust/crates/mnote-web/src/ssr/pages/layout.rs`、`rust/crates/mnote-web/src/routes/tree.rs`、`rust/crates/mnote-web/src/tree_shell/filetree_renderer.rs` 将 `objectIdentity` 传入 file tree DOM 与 `tree.asset.open`。 +- Smoke:`node scripts/task112-tree-rust-family-regression-smoke.js` 通过,page tree host / file tree host 主链为 `dom`;debug tree shell 关闭项按当前主线记录为 skipped。 +- Mindmap 链路:`node scripts/task169-mindmap-realtime-smoke.js` 通过,覆盖 mindmap asset 打开、长中文编辑、保存、切页、回 `index.md`、再打开 mindmap。 + +## 10. 交接给 5-12 的输入 + +完成本文件后,`5-12` 可以依赖以下输入推进主编辑区: + +- 文件树 `index.md` row 的 `objectIdentity`:`page:index:{documentId}`。 +- 文件树 mindmap row 的 `objectIdentity`:`resource:mindmap:{documentId}:{assetId}`。 +- 文件树 OnlyOffice row 的 `objectIdentity`:`resource:onlyoffice:{documentId}:{assetId}`。 +- 文件树普通附件 row 的 `objectIdentity`:`resource:attachment:{documentId}:{assetId}`。 +- 文件树代码附件 row 的 `objectIdentity`:`resource:code:{documentId}:{assetId}`。 +- Page Tree 不再作为资源归属输入;它只提供页面导航选择。 diff --git a/design/05-editor-mainline/done/5-12-main-editor-object-tab-resource-alignment-checklist-v1.md b/design/05-editor-mainline/done/5-12-main-editor-object-tab-resource-alignment-checklist-v1.md new file mode 100644 index 00000000..0840cb74 --- /dev/null +++ b/design/05-editor-mainline/done/5-12-main-editor-object-tab-resource-alignment-checklist-v1.md @@ -0,0 +1,275 @@ +# 5-12 [done] 主编辑区 Object Tab 与 Resource Tree 对齐执行清单 v1 + +> 更新时间:2026-05-13 +> +> 上游依据: +> - `/mnt/Data1T/mnote/design/10-review/05-tree.md` +> - `/mnt/Data1T/mnote/bugs/05-editor-mainline/done/5-10-mindmap-filetree-index-single-truth-split-v1.md` +> - `/mnt/Data1T/mnote/design/04-tree-domain/done/4-24-resource-tree-filetree-pagetree-source-contract-checklist-v1.md` +> - `/mnt/Data1T/mnote/design/05-editor-mainline/process/5-5-page-aggregate-single-truth-alignment-v1.md` +> - `/mnt/Data1T/mnote/design/06-mindmap/process/6-mindmap-kernel-phase6-projection-editor-v1.md` + +## 1. 目标 + +本清单用于把主编辑区从“只等于页面正文编辑器”推进为 workspace object tab host: + +- `index.md` tab 只编辑 Page Aggregate body。 +- mindmap tab 只编辑 mindmap projection / command。 +- OnlyOffice tab 只编辑对应附件对象。 +- 代码附件 / 普通附件 tab 只编辑或预览对应资源对象。 +- 所有 tab 使用独立 `ObjectIdentity`、草稿身份和保存命令,不互相伪装。 + +## 2. 当前优先级 + +P0 是关闭当前 mindmap 文件树打开污染 `index.md` 的缺陷。 + +P1 是建立主编辑区 object tab 的最小协议,让后续 mindmap、OnlyOffice、附件都能进入同一套打开/关闭/保存/恢复模型。 + +P2 是把 Page Aggregate 的 block-asset relation 与 Resource Tree projection 串起来。 + +执行前置: + +- 必须先按 `design/04-tree-domain/done/4-24-resource-tree-filetree-pagetree-source-contract-checklist-v1.md` 固定 Resource Tree / File Tree / Page Tree 的真源合同。 +- 本文件不定义新的资源归属真相,只消费 `4-24` 输出的 `ObjectIdentity`、`resourceMeta` 和 `tree.asset.open` intent。 +- P0 可以作为止血先落地,但 P0 中所有草稿 key、保存命令、打开路径都必须与 `4-24` 的 object identity 兼容。 + +当前关键代码锚点: + +- `rust/crates/mnote-web/src/ssr/pages/layout.rs`:file tree asset 打开事件、`buildMindmapOpenPath`、`openConvexAssetFromFileTree`、`tree.asset.open` listener。 +- `rust/crates/mnote-web/src/routes/mindmap_shell.rs`:standalone mindmap shell 与临时 bootstrap。 +- `rust/crates/mnote-web/src/ssr/pages/mindmap.rs`:mindmap object editor 页面标记与 command form。 +- `rust/crates/mnote-web/src/routes/mindmap_api.rs`:mindmap command / put 保存链。 +- `rust/crates/mnote-web/src/routes/documents.rs`:`page.body.save` 页面正文保存链。 +- `rust/spikes/leptos-tiptap-spike/src/lib.rs`:文档页 island 草稿、bootstrap、保存 runtime。 +- `scripts/task169-mindmap-realtime-smoke.js`:当前 mindmap 长中文、保存、实时刷新 smoke,应升级为本 bug 的主验收脚本。 + +## 3. P0:mindmap object editor 止血清单 + +### 3.1 打开路径 + +- [x] 文件树 mindmap asset 普通点击必须打开明确的 mindmap object editor。 + - 当前允许继续使用 `/mindmap/{documentId}/{mindmapId}`。 + - 该路由必须声明自己是 object editor / asset editor。 + - 不允许被 `index.md` 吞掉。 + - 不允许把临时 mindmap-only bootstrap 视为真实页面正文。 + - 推荐实现口径: + - 保留 `/mindmap/{documentId}/{mindmapId}` 作为独立 object editor 路由。 + - 在 HTML 根节点或主容器加可测标记,例如 `data-mnote-object-editor="mindmap"`、`data-mnote-object-identity="resource:mindmap:{documentId}:{mindmapId}"`。 + - file tree 点击 mindmap 后,若继续整页导航,必须让页面显式进入 mindmap object editor,而不是复用文档页正文 island 的页面草稿 key。 + - 后续 object tab host 接入后,再把整页导航替换为主编辑区 tab 打开。 + +- [x] `index.md` 点击必须只打开真实文档页。 + - 目标为 `/documents/{documentId}?treeView=filetree`。 + - 读取来源为 Rust `/api/page-aggregate/{documentId}`。 + - 不读取 mindmap standalone 草稿。 + - 推荐检查点: + - `layout.rs` 中 file tree row click 对 `index/document/markdown` 的分支。 + - `leptos-tiptap` island 初始化时是否优先使用服务端 Page Aggregate bootstrap。 + +### 3.2 草稿与保存身份 + +- [x] standalone mindmap 的草稿 key 必须使用 object identity。 + - 推荐格式:`__mindmap_object__:{documentId}:{mindmapId}`。 + - 禁止使用真实页面的 `workspaceId:documentId` 草稿 key。 + - 推荐检查点:`rust/spikes/leptos-tiptap-spike/src/lib.rs` 内 localStorage 草稿读写 key 生成逻辑。 + - 负向要求:打开 `/mindmap/{documentId}/{mindmapId}` 后,localStorage 中不得新增或覆盖文档正文草稿 key。 + +- [x] 文档页有服务端 bootstrap content 时,不得被 localStorage 旧草稿覆盖。 + - 如果存在历史坏草稿,文档页应优先使用 Page Aggregate body。 + - 打开文档页后应把坏草稿覆盖或隔离,不让其继续污染后续打开。 + - 推荐策略: + - 当 bootstrap contract 是 `mnote.page_aggregate.v1` 时,优先采用 bootstrap content。 + - 对与 mindmap object key 匹配的草稿直接隔离,不参与文档页正文恢复。 + - 对历史坏草稿只允许在同一 `ObjectIdentity` 下恢复,不允许跨 `page:index` 与 `resource:mindmap` 恢复。 + +- [x] mindmap 保存只走 mindmap command。 + - 保存命令:`mindmap.command.apply` 或当前正式 mindmap put/apply 链。 + - 禁止触发 `page.body.save`。 + - 推荐检查点: + - `rust/crates/mnote-web/src/routes/mindmap_api.rs` + - `rust/crates/mnote-web/src/transport/convex.rs` + - `wolai-frontend/src/app/api/mindmap/[docId]/[mindmapId]/route.ts` + - 负向测试:mindmap object editor 保存期间拦截或记录网络请求,不能出现 `/api/documents/save` 或 canonical `page.body.save`。 + +### 3.3 真实网页 smoke + +- [x] 更新 `scripts/task169-mindmap-realtime-smoke.js`。 + - 新建测试页面。 + - 插入或生成 mindmap block。 + - 从文件树点击本轮 `documentId + mindmapId` 对应 mindmap asset。 + - 断言进入 mindmap object editor,而不是 `index.md`。 + - 输入长中文并保存。 + - 切到其他页面。 + - 再点击原页面 `index.md`。 + - 断言 `index.md` 仍显示 Page Aggregate body。 + - 再打开 mindmap asset。 + - 断言长中文仍存在。 + - 测试数据前缀:`TEST-T169-MINDMAP-OBJECT-`。 + - 必须记录并断言: + - `documentId` + - `mindmapId` + - mindmap object editor URL 或 tab identity + - `index.md` 返回 URL + - 长中文内容保存后的重开结果 + +- [x] 负向断言。 + - 点击 mindmap asset 后不得调用 `page.body.save`。 + - 打开 `index.md` 后不得加载 `__mindmap_object__` 草稿。 + - mindmap live refresh 不得在长中文编辑过程中重挂载或覆盖输入。 + - 修复前失败时 bug 留在 `bugs/05-editor-mainline/process/5-10-mindmap-filetree-index-single-truth-split-v1.md`;本轮通过后已移动到 done。 + +### 3.4 P0 建议实施顺序 + +- [x] Step 1:先补 smoke 红灯。 + - 修改:`scripts/task169-mindmap-realtime-smoke.js`。 + - 目标:当前实现应能暴露 `index.md` 与 mindmap object editor 身份混淆或草稿污染风险。 + - 运行:`node scripts/task169-mindmap-realtime-smoke.js`。 + - 预期:修复前至少一个负向断言失败,或者脚本明确输出当前路径仍有污染风险。 + +- [x] Step 2:标记 mindmap object editor 身份。 + - 修改:`rust/crates/mnote-web/src/routes/mindmap_shell.rs`、`rust/crates/mnote-web/src/ssr/pages/mindmap.rs`。 + - 目标:`/mindmap/{documentId}/{mindmapId}` 输出明确 object editor contract,不能被识别为 Page Aggregate body。 + - 验收:页面 DOM 能被 smoke 定位到 `data-mnote-object-editor="mindmap"` 或等价稳定标记。 + +- [x] Step 3:隔离 mindmap 草稿 key。 + - 修改:`rust/spikes/leptos-tiptap-spike/src/lib.rs`。 + - 目标:mindmap standalone 使用 `__mindmap_object__:{documentId}:{mindmapId}`;文档页使用 `page:index:{documentId}` 或现有页面草稿 key,但不得互读。 + - 验收:smoke 检查 localStorage 中 mindmap key 与 page key 分离。 + +- [x] Step 4:确认保存命令隔离。 + - 修改:优先不改实现,先用测试确认;如失败,再收口 `mindmap_api.rs` / `documents.rs` / transport adapter。 + - 目标:mindmap 保存只走 `mindmap.command.apply`,`index.md` 保存只走 `page.body.save`。 + - 验收:网络请求和 command result 中的 canonical command 分别正确。 + +- [x] Step 5:跑完整 smoke 并补 bug 证据。 + - 运行:`node scripts/task169-mindmap-realtime-smoke.js`。 + - 预期:长中文编辑、保存、切页、回 `index.md`、再开 mindmap 全链路通过。 + +## 4. P1:Object Tab Host 最小合同 + +### 4.1 Tab Identity + +- [x] 定义主编辑区 tab identity。 + - `page:index:{documentId}` + - `resource:mindmap:{documentId}:{mindmapId}` + - `resource:onlyoffice:{documentId}:{assetId}` + - `resource:attachment:{documentId}:{assetId}` + - `resource:code:{documentId}:{assetId}` + +- [x] 每个 tab 必须声明: + - `objectKind` + - `documentId` + - `blockId` + - `assetId` + - `title` + - `dirtyState` + - `saveCommand` + - `closeBehavior` + +### 4.2 Tab 打开规则 + +- [x] `index.md` row 打开 `page:index:{documentId}`。 +- [x] mindmap row 打开 `resource:mindmap:{documentId}:{mindmapId}`。 +- [x] OnlyOffice row 打开 `resource:onlyoffice:{documentId}:{assetId}`。 +- [x] 代码附件 row 打开 `resource:code:{documentId}:{assetId}`。 +- [x] 普通附件 row 打开 `resource:attachment:{documentId}:{assetId}`。 + - 输入来源只能是 `4-24` 的 file tree row `resourceMeta.objectIdentity` 或等价字段。 + - 如果字段缺失,允许临时由 `resourceKind + documentId + assetId` 推导,但必须在代码注释或测试名中标明是兼容推导,不得作为新真源。 + +### 4.3 Tab 保存规则 + +- [x] Page tab 保存只调用 `page.body.save`。 +- [x] Mindmap tab 保存只调用 `mindmap.command.apply`。 +- [x] OnlyOffice tab 保存只通过 OnlyOffice callback / forcesave。 +- [x] Code tab 保存只写对应 asset。 +- [x] Attachment preview tab 默认无正文保存行为。 + - 负向规则:任一 resource tab 保存不得调用 `page.body.save`,除非该操作明确修改的是 Page Aggregate body 中的引用 block。 + +### 4.4 P1 建议实施顺序 + +- [x] Step 1:定义 tab identity 类型。 + - 首选落点:`rust/crates/core-protocol/src/kernel.rs` 或 `rust/crates/core-protocol/src/editor/model.rs`。 + - 前端适配落点:`wolai-frontend/src/components/sidebar/tree-shell-dom-model.ts`、`wolai-frontend/src/components/sidebar/sidebar-navigation.ts`。 + +- [x] Step 2:让 file tree open intent 携带 tab identity。 + - 修改:`rust/crates/mnote-web/src/routes/tree.rs`、`rust/crates/mnote-web/src/ssr/pages/layout.rs`。 + - 验收:`tree.asset.open` detail 中包含 `objectIdentity` 或可无歧义生成 object identity 的字段。 + +- [x] Step 3:主编辑区 host 消费 tab identity。 + - 初期允许只有 `page:index` 与 `resource:mindmap` 两类 tab。 + - 不要求一次完成 OnlyOffice / code / attachment 的 UI,但必须保留类型位。 + +- [x] Step 4:补 tab identity 单测。 + - 建议测试文件:`wolai-frontend/src/components/sidebar/sidebar-navigation.test.ts`、`wolai-frontend/src/components/sidebar/tree-shell-host.test.tsx`。 + - 断言:`index.md` 与 mindmap asset 打开生成不同 tab identity。 + +## 5. P2:Page Aggregate 与 Block-Asset Relation + +- [x] 页面正文中的 mindmap block attrs 必须持有稳定 `mindmapId`。 +- [x] Page Aggregate 输出 mindmap block 与 resource relation。 +- [x] File Tree mindmap row 来源于同一 relation。 +- [x] 删除 mindmap block 时,资源关系必须进入 detach / archive 计划。 +- [x] 删除 mindmap asset 时,页面正文 block 必须进入明确处理计划:删除 block、保留占位、或标记资源缺失,不能静默断链。 + - 优先落点:`rust/crates/core-protocol/src/page_aggregate.rs`、`rust/crates/bridge-runtime/src/lib.rs`、`wolai-frontend/src/lib/documents/tiptap-content-converter.ts`。 + - 验收:同一个 `mindmapId` 能同时从 Page Aggregate block attrs 与 File Tree resource row 追踪到。 + +## 6. P3:OnlyOffice / 附件 / 插件对象推广 + +- [x] OnlyOffice 附件打开复用 Object Tab identity。 +- [x] 代码附件编辑复用 Object Tab identity。 +- [x] 普通附件预览复用 Object Tab identity。 +- [x] 插件型对象只能通过 block-asset relation 接入页面正文,不能把插件 runtime data 当 Page Aggregate body。 + - OnlyOffice 参考落点:`rust/crates/mnote-web/src/routes/onlyoffice.rs`、`scripts/task174-rust-onlyoffice-attachment-open-smoke.js`。 + - 上传 / 普通附件参考落点:`rust/crates/mnote-web/src/routes/media.rs`、`scripts/task175-rust-upload-entry-smoke.js`。 + +## 7. 验收命令 + +最低验收顺序: + +```bash +node scripts/task169-mindmap-realtime-smoke.js +cd /mnt/Data1T/mnote/rust && cargo test -p mnote-web mindmap -- --nocapture +cd /mnt/Data1T/mnote/rust && cargo test -p mnote-web documents_save_route_executes_page_body_save_command -- --nocapture +``` + +扩展验收: + +```bash +pnpm --dir wolai-frontend test -- sidebar-navigation.test.ts tree-shell-host.test.tsx +node scripts/task174-rust-onlyoffice-attachment-open-smoke.js +node scripts/task175-rust-upload-entry-smoke.js +``` + +如本地服务未启动,先执行: + +```bash +npm run desktop:hot +``` + +真实浏览器 smoke 必须使用默认测试账号 `mnote.e2e@example.com` / `MnoteE2E123!`,并优先从 `http://localhost:3000/auth` 的“测试账号快速登录”进入。 + +## 8. Done Gate + +本文移动到 `done/` 前必须满足: + +- [x] 当前 mindmap bug 文档 `5-10` 可移动到 `bugs/05-editor-mainline/done/`。 +- [x] 真实浏览器 smoke 证明 mindmap 文件树点击、长中文编辑、保存、切页、回 `index.md`、再开 mindmap 全链路正常。 +- [x] `index.md`、mindmap、OnlyOffice、附件的 object identity 已在打开路径和保存路径中区分。 +- [x] 至少 mindmap 与 `index.md` 已完成草稿隔离。 +- [x] 文件树打开行为不再让 asset 伪装成页面正文。 + +## 9. 完成证据 + +- Object identity:`rust/crates/core-protocol/src/kernel.rs` 定义 `KernelObjectIdentity`,file tree projection 与 DOM 传递 `page/index/mindmap/only_office/code/attachment` identity。 +- Mindmap object editor:`rust/crates/mnote-web/src/ssr/pages/mindmap.rs` 输出 `data-mnote-object-editor="mindmap"` 与 `data-mnote-object-identity="resource:mindmap:{documentId}:{mindmapId}"`。 +- 草稿隔离:`rust/crates/mnote-web/src/routes/mindmap_shell.rs` 使用 `__mindmap_object__:{doc}:{mindmap}` bootstrap identity;`rust/spikes/leptos-tiptap-spike/src/lib.rs` 的 `standalone_mindmap_object_uses_isolated_draft_identity` 通过。 +- 保存隔离:`cargo test -p mnote-web mindmap -- --nocapture` 与 `cargo test -p mnote-web documents_save_route_executes_page_body_save_command -- --nocapture` 通过。 +- 真实 smoke:`node scripts/task169-mindmap-realtime-smoke.js` 通过,覆盖文件树 mindmap 打开、长中文编辑、保存、切页、回 `index.md`、再打开 mindmap。 + +## 10. 完成后回填 + +实现完成后需要回填以下位置: + +- `bugs/05-editor-mainline/done/5-10-mindmap-filetree-index-single-truth-split-v1.md`:已补真实修复证据并移动到 `done/`。 +- `design/04-tree-domain/done/4-24-resource-tree-filetree-pagetree-source-contract-checklist-v1.md`:已标记 `ObjectIdentity` 与 file tree row contract 被编辑区消费。 +- `design/10-review/05-tree.md`:补最终采用的 object editor / object tab 方案摘要。 diff --git a/design/06-mindmap/process/6-mindmap-phase6-kmind-parity-detail-checklist-v1.md b/design/06-mindmap/process/6-mindmap-phase6-kmind-parity-detail-checklist-v1.md new file mode 100644 index 00000000..c9de8f7f --- /dev/null +++ b/design/06-mindmap/process/6-mindmap-phase6-kmind-parity-detail-checklist-v1.md @@ -0,0 +1,475 @@ +# 6 [process] Mindmap Phase 6 KMind/simple-mind-map Parity Detail Checklist v1 + +> 日期:2026-05-11 +> +> 当前阶段:Phase 6 `leptos-mindmap` 已完成真实 `simple-mind-map` runtime + Leptos/Rust floating overlay shell 的第一轮收口;本 checklist 是后续细节优化入口。 +> +> 执行规则:每完成一个节点,必须基于代码、测试、截图或人工复核证据勾选对应项。未验证的实现不得勾选。 + +## 0. 目标与结论 + +**目标:**把当前 mindmap shell 从“可运行的 Leptos/Rust 浮动 UI 壳”推进到接近 KMind 与 simple-mind-map 官方编辑器的工作台体验。 + +当前不需要改变 Phase 6 的大方向: + +```text +Rust kernel truth + -> mindmap.simple_mind_map_scene.v1 + -> leptos-tiptap NodeView + -> simple-mind-map runtime + -> Leptos/Rust floating UI shell + -> command bridge / compatPayload.patch +``` + +本轮要修正的是 UI 与交互细节,而不是回退到以下路线: + +- 不直接嵌入完整 Vue `lx-doc/mind-map` 应用。 +- 不恢复旧 React `MindmapBlock.tsx` 为 3000 文档页默认主链。 +- 不启动 Rust-native renderer 重写。 +- 不把 `simple-mind-map` runtime data 保存为 canonical truth。 +- 不把 TypeScript NodeView 扩写成长期 toolbar/sidebar/navigator UI 框架;长期 UI shell 继续归到 Leptos/Rust。 + +## 1. 本次取证结论 + +### 1.1 当前实现差距 + +已对照: + +- 当前实现截图:`/mnt/Data1T/mnote/tmp/image copy 80.png` +- KMind 目标截图:`/mnt/Data1T/mnote/tmp/image copy 81.png` +- 隐藏 chrome 目标截图:`/mnt/Data1T/mnote/tmp/image copy 82.png` +- 右侧详细设置栏目标截图:`/mnt/Data1T/mnote/tmp/image copy 83.png` + +当前主要差距: + +- Toolbar 当前视觉上仍是三行:`rust/spikes/leptos-tiptap-spike/src/lib.rs` 中 `.mnote-mindmap-command-toolbar` 与 `.mnote-mindmap-toolbar-primary` 都允许 `flex-wrap: wrap`,并且每个分组都带文字分组名,导致不可能稳定保持 KMind/simple-mind-map 的单行工具组。 +- Toolbar 当前没有真正的 `更多` 溢出模型。lx-doc `Toolbar.vue` 通过测量工具栏宽度,把可见按钮放入 `horizontalList`,把溢出按钮放入 `verticalList`,这比单纯 CSS 横向滚动更接近目标。 +- 当前没有完整全屏状态。lx-doc `Fullscreen.vue` 同时提供“全屏查看”和“全屏编辑”,并在 fullscreen change 后调用 `mindMap.resize()`。 +- 当前没有“鼠标移出后隐藏 chrome,鼠标移入不自动恢复,点击才恢复”的状态机。KMind changelog 明确提到 floating toolbar 会在特定场景自动隐藏,并推荐结合 Zen mode 获得更大的编辑视图。 +- 当前右侧栏只是窄 tab + 148px 简化 body;KMind/simple-mind-map 是“右侧触发条 + 可隐藏把手 + 约 300px 详细抽屉”,结构面板中有布局卡片,设置项密度明显更高。 +- 当前 navigator 是文字按钮和常驻搜索输入框;目标是底部右侧图标工具条,搜索按需展开,全屏、小地图、只读、缩放、鼠标行为、设置等是同一条浮动控件。 + +### 1.2 参考实现证据 + +- `design/05-editor-mainline/reference-code/lx-doc/mind-map/src/pages/Edit/components/Toolbar.vue` + - `computeToolbarShow()` 根据宽度计算单行 `horizontalList` 与 `verticalList`。 + - `showMoreBtn` 显示 `更多` popover。 +- `design/05-editor-mainline/reference-code/lx-doc/mind-map/src/pages/Edit/components/ToolbarNodeBtnList.vue` + - 记录 toolbar action、禁用状态、active node 规则和 runtime command。 +- `design/05-editor-mainline/reference-code/lx-doc/mind-map/src/pages/Edit/components/SidebarTrigger.vue` + - 右侧触发条有 `show` 状态和 `toggleShowBtn` 隐藏把手。 + - 激活 panel 后容器从 `right: 0` 推到 `right: 305px`。 +- `design/05-editor-mainline/reference-code/lx-doc/mind-map/src/pages/Edit/components/NavigatorToolbar.vue` + - 底部 navigator 是图标工具条,不是常驻表单。 + - 包含回根、搜索、鼠标行为、小地图、只读、全屏、缩放、暗色、源码、演示等入口。 +- `design/05-editor-mainline/reference-code/lx-doc/mind-map/src/pages/Edit/components/Fullscreen.vue` + - 区分 `fullscreenShow` 和 `fullscreenEdit`。 +- `design/05-editor-mainline/reference-code/lx-doc/mind-map/src/config/zh.js` + - `sidebarTriggerList` 包含 `nodeStyle/baseStyle/theme/structure/outline/shortcutKey`。 +- `design/05-editor-mainline/reference-code/kmind-plugin/README_en_US.md` + - 明确提到 desktop floating toolbar、Zen mode、自动隐藏 UI、全局配置。 + +- [x] 已完成当前实现、截图和参考代码的首轮取证。 + +## 2. 文件职责边界 + +### 2.1 主要运行代码 + +- `rust/spikes/leptos-tiptap-spike/src/lib.rs` + - 当前 Leptos/Rust shell、CSS、mount/unmount、toolbar/sidebar/navigator 渲染集中在此。 + - 下一阶段应优先把 mindmap shell 拆出到专门模块,避免 `lib.rs` 继续膨胀。 +- `wolai-frontend/src/lib/mindmap/mindmap-ui-schema.ts` + - 当前 action、toolbar group、sidebar panel、navigator item、context menu 的 schema 来源。 + - 下一阶段需要扩展为可表达单行 toolbar、溢出、全屏、chrome visibility、详细 panel controls 的中立 schema。 +- `wolai-frontend/src/lib/mindmap/mindmap-action-map.ts` + - UI action 到 runtime/local/kernel/compat 的映射。 + - 下一阶段需要补全 `fullscreen`、`toggleChrome`、`toggleSidebar`、`toggleSearch`、`setScale`、`setMouseBehavior` 等 local view action。 +- `wolai-frontend/src/lib/mindmap/mindmap-ui-state.ts` + - 当前只覆盖 active node、readonly、capability、disabled state。 + - 下一阶段需要补 chrome visibility、fullscreen、sidebar open、search open、toolbar overflow、navigator active state。 +- `wolai-frontend/src/lib/mindmap/simple-mind-map-bridge.ts` + - 当前 runtime bridge。 + - 下一阶段需要确保 fullscreen/resize、search、minimap、scale input、sidebar style 写入都能通过 bridge 安全触达 runtime。 +- `wolai-frontend/src/lib/mindmap/leptos-mindmap-adapter.ts` + - projection/command endpoint 与 adapter 初始化。 + - 下一阶段继续保持薄桥接,不承载 UI 细节。 +- `scripts/task166-mindmap-phase6-block-smoke.js` + - 当前 Phase 6 smoke。 + - 下一阶段建议新增或扩展为 KMind parity smoke,保存对齐截图证据。 + +### 2.2 建议新增/拆分文件 + +- Create: `rust/spikes/leptos-tiptap-spike/src/mindmap_shell.rs` + - Leptos/Rust shell 组件、状态结构、事件派发。 +- Create: `rust/spikes/leptos-tiptap-spike/src/mindmap_shell_style.rs` 或保留同模块内常量 + - 如果现有 CSS 继续增长,单独收口 mindmap shell 样式字符串。 +- Create: `scripts/task167-mindmap-kmind-parity-smoke.js` + - 专门覆盖 toolbar 单行、全屏、chrome hide、右侧抽屉、截图对比。 +- Output: `tmp/task167-mindmap-kmind-parity-smoke/*.png` + - 保存每个视觉验收节点截图。 + +## 3. 状态模型先行 + +后续 UI 不应继续靠 CSS 和零散按钮状态拼凑。先把 shell state 定义清楚。 + +### Task 1: 扩展 Mindmap Shell State Contract + +**Files:** +- Modify: `wolai-frontend/src/lib/mindmap/mindmap-ui-schema.ts` +- Modify: `wolai-frontend/src/lib/mindmap/mindmap-ui-state.ts` +- Modify: `wolai-frontend/src/lib/mindmap/mindmap-ui-state.test.ts` +- Modify/Create: `rust/spikes/leptos-tiptap-spike/src/mindmap_shell.rs` + +- [x] 定义 `MindmapChromeVisibilityState`: + - `visible` + - `hiddenByPointerLeave` + - `hiddenByToggle` + - `hiddenByFullscreen` +- [x] 定义 `MindmapToolbarOverflowState`: + - `availableWidth` + - `visibleActionIds` + - `overflowActionIds` + - `moreOpen` +- [x] 定义 `MindmapFullscreenState`: + - `mode: "none" | "canvas" | "page"` + - `isFullscreen` + - `target: "mindmap-root" | "document-body"` +- [x] 定义 `MindmapSidebarState`: + - `triggerVisible` + - `panelOpen` + - `activePanelId` + - `drawerWidth` + - `collapsedByToggle` +- [x] 定义 `MindmapNavigatorState`: + - `searchOpen` + - `minimapOpen` + - `readonly` + - `zoomPercent` + - `mouseBehavior` +- [x] TS 单测覆盖:鼠标移出后为 `hiddenByPointerLeave`;再次 mouseenter 不恢复;点击画布或点击显式恢复按钮才回到 `visible`。 +- [x] TS 单测覆盖:sidebar toggle 隐藏触发条后,不会清空 `activePanelId`;再次显示后保留最近面板。 +- [x] Rust/Leptos shell options 能接收上述 state,并向 DOM 输出稳定 `data-*` 标记,供 smoke 断言。 +- [x] 验证:`cd /mnt/Data1T/mnote/wolai-frontend && pnpm test -- mindmap-ui-state` + - 2026-05-11 通过:`mindmap-ui-state.test.ts` 6 项通过;同时复核 `npm run typecheck`、`npm run build`、`cargo check`、`node scripts/build-leptos-tiptap-island.js` 均通过。 + +## 4. 单行 Toolbar 与更多菜单 + +目标:对齐 `/mnt/Data1T/mnote/tmp/image copy 81.png` 与 lx-doc `Toolbar.vue`,主 toolbar 只占一行;溢出进入 `更多` 菜单;不要回到当前 `/mnt/Data1T/mnote/tmp/image copy 80.png` 的三行状态。 + +### Task 2: 设计单行 Toolbar Schema + +**Files:** +- Modify: `wolai-frontend/src/lib/mindmap/mindmap-ui-schema.ts` +- Modify: `wolai-frontend/src/lib/mindmap/mindmap-ui-schema.test.ts` + +- [x] 为 toolbar action 增加 `iconKey`、`shortLabel`、`longLabel`、`priority`、`overflowGroup`。 +- [x] 移除默认渲染中强依赖的分组文字标签;分组仅作为视觉分隔线和溢出归类,不占据单行宽度。 +- [x] 把 import/export/historyRecord 规划为右侧独立 toolbar cluster,避免和节点编辑按钮互相挤压。 +- [x] 增加 `more` 虚拟 action,只有存在 `overflowActionIds` 时显示。 +- [x] 单测断言默认 toolbar 主按钮顺序与 lx-doc/KMind 对齐:undo、redo、editNode、insertSiblingAfter、deleteNode、insertChild、tag、hyperlink、note、image、icon、summary、associativeLine、formula、more。 +- [x] 单测断言 action id 不重复,且每个可见 action 都能映射到 action map。 +- [x] 验证:`cd /mnt/Data1T/mnote/wolai-frontend && pnpm test -- mindmap-ui-schema mindmap-action-map` + - 2026-05-11 通过:`mindmap-ui-schema.test.ts` 11 项通过;同轮 `mindmap-action-map.test.ts` 4 项通过。 + +### Task 3: 实现 Leptos 单行 Toolbar Layout + +**Files:** +- Modify/Create: `rust/spikes/leptos-tiptap-spike/src/mindmap_shell.rs` +- Modify: `rust/spikes/leptos-tiptap-spike/src/lib.rs` +- Modify: `scripts/task167-mindmap-kmind-parity-smoke.js` + +- [x] Toolbar CSS 改为单行:`flex-wrap: nowrap`,固定按钮宽高,禁用 group 内换行。 +- [x] 顶部 toolbar 分为左/中/右 cluster:主编辑工具、导入导出/历史、更多。 +- [x] 用 `ResizeObserver` 或等价测量机制计算可见按钮与溢出按钮;窄宽度下不允许撑成第二行。 +- [x] `更多` 点击后打开浮层菜单,菜单内纵向列出溢出 action。 +- [x] `更多` 菜单失焦、点击菜单项或按 Escape 后关闭。 +- [x] 按钮视觉从“英文 icon 名 + 中文文字”修正为图标主导、短文字辅助;不得把 `palette/sliders/layout` 这类内部 icon key 作为可见正文。 +- [x] Smoke 断言 toolbar 高度不超过 72px,`toolbarRows <= 1` 或等价 DOM 断言通过。 +- [x] Screenshot:`tmp/task167-mindmap-kmind-parity-smoke/01-toolbar-single-row.png`,肉眼能看到 toolbar 单行而不是三行。 +- [x] 验证:`cd /mnt/Data1T/mnote/design/05-editor-mainline/reference-code/leptos-tiptap/tiptap && npm run typecheck && npm run build` +- [x] 验证:`cd /mnt/Data1T/mnote/wolai-frontend && node scripts/build-leptos-tiptap-island.js` +- [x] 验证:`cd /mnt/Data1T/mnote && node scripts/task167-mindmap-kmind-parity-smoke.js --stage toolbar` + - 2026-05-11 通过:桌面 toolbar `height=56`、`toolbarRows=1`;窄宽度 toolbar `height=56`、`toolbarRows=1`,并产生 `overflowActions`;Escape 后 `moreOpen=false` 且 `toolbarRows=1`。 + +## 5. 全屏与大画布模式 + +目标:至少提供 KMind/simple-mind-map 级别的全屏按钮与状态。优先做 block/canvas fullscreen,随后再补 page fullscreen。 + +### Task 4: 增加 Fullscreen Action Contract + +**Files:** +- Modify: `wolai-frontend/src/lib/mindmap/mindmap-ui-schema.ts` +- Modify: `wolai-frontend/src/lib/mindmap/mindmap-action-map.ts` +- Modify: `wolai-frontend/src/lib/mindmap/mindmap-ui-state.ts` +- Modify: `wolai-frontend/src/lib/mindmap/mindmap-action-map.test.ts` + +- [x] 新增 action:`fullscreenCanvas`,对应 lx-doc 的“全屏查看”。 +- [x] 新增 action:`fullscreenPage`,对应 lx-doc 的“全屏编辑”,第一阶段先作为 schema/action contract 保留。 +- [x] 新增 action:`exitFullscreen`。 +- [x] `fullscreenCanvas/fullscreenPage/exitFullscreen` 均标记为 `localView`,不得产生 kernel command。 +- [x] `Fullscreen API` 不可用时,action disabled,并在 UI 有稳定 `data-disabled-reason="fullscreen-unavailable"`。 +- [x] 单测覆盖 fullscreen action 不依赖 active node,readonly 下仍可使用。 +- [x] 验证:`cd /mnt/Data1T/mnote/wolai-frontend && pnpm test -- mindmap-action-map mindmap-ui-state` + - 2026-05-11 通过:`mindmap-action-map.test.ts` 新增 fullscreen localView 合同与 readonly 断言;`mindmap-ui-state.test.ts` 断言 readonly/无 active node 下 fullscreen 仍可用。 + +### Task 5: 实现全屏按钮与 resize + +**Files:** +- Modify/Create: `rust/spikes/leptos-tiptap-spike/src/mindmap_shell.rs` +- Modify: `rust/spikes/leptos-tiptap-spike/src/lib.rs` +- Modify: `wolai-frontend/src/lib/mindmap/simple-mind-map-bridge.ts` +- Modify: `scripts/task167-mindmap-kmind-parity-smoke.js` + +- [x] 底部 navigator 增加全屏图标按钮,默认显示 canvas fullscreen。 +- [x] 点击后对 `data-testid="mnote-mindmap-editor-root"` 或等价 canvas root 调用 Fullscreen API。 +- [x] 监听 `fullscreenchange`,退出时同步 shell state。 +- [x] fullscreen change 后调用 `mindMap.resize()` 或 bridge 暴露的 resize 方法,并居中或保持当前 view transform。 +- [x] 全屏时保持 toolbar/sidebar/navigator 浮动在画布上;不出现文档页滚动条错位。 +- [x] 全屏模式下 Escape 退出后,toolbar/sidebar/navigator 状态恢复到进入前状态。 +- [x] Smoke 断言点击全屏后 `document.fullscreenElement` 为 mindmap root 或其包含节点。 +- [x] Screenshot:`tmp/task167-mindmap-kmind-parity-smoke/02-fullscreen-canvas.png`。 +- [x] 验证:`cd /mnt/Data1T/mnote && node scripts/task167-mindmap-kmind-parity-smoke.js --stage fullscreen` + - 2026-05-11 通过:`fullscreenElementIsRoot=true`,`shellFullscreenActive=true`;Escape 退出后 `document.fullscreenElement === null` 且 `shellFullscreenActive=false`。 + +## 6. 鼠标移出隐藏 Chrome,点击恢复 + +目标:对齐 `/mnt/Data1T/mnote/tmp/image copy 82.png`。鼠标移出后隐藏 toolbar/sidebar/navigator 等菜单;鼠标重新移入不自动恢复;用户点击画布或显式按钮才恢复。 + +### Task 6: 实现 Chrome Visibility State Machine + +**Files:** +- Modify/Create: `rust/spikes/leptos-tiptap-spike/src/mindmap_shell.rs` +- Modify: `rust/spikes/leptos-tiptap-spike/src/lib.rs` +- Modify: `scripts/task167-mindmap-kmind-parity-smoke.js` + +- [x] 在 mindmap root 上监听 pointer enter/leave/click,不依赖 document 全局 hover。 +- [x] pointer leave root 后进入 `hiddenByPointerLeave`,隐藏 toolbar、sidebar drawer、sidebar trigger、navigator、minimap;count 可保留或按 KMind 目标隐藏,需在 smoke 固定判定。 +- [x] pointer enter root 不改变 `hiddenByPointerLeave`。 +- [x] 点击画布空白区或节点后恢复 `visible`。 +- [x] 点击恢复后不触发误插入、不改变 active node,除非点击目标本身就是节点选择。 +- [x] 打开 `更多` 菜单或右侧 drawer 时,pointer leave 先关闭弹层,再隐藏 chrome,避免残留孤立菜单。 +- [x] fullscreen 模式与 hidden state 组合时,退出 fullscreen 不强制显示 chrome,除非进入 fullscreen 前是 visible。 +- [x] Smoke 操作:移动鼠标到 root 外 -> 断言 toolbar/sidebar/navigator hidden;移动回 root -> 仍 hidden;点击 root -> visible。 +- [x] Screenshot:`tmp/task167-mindmap-kmind-parity-smoke/03-chrome-hidden-after-leave.png`。 +- [x] Screenshot:`tmp/task167-mindmap-kmind-parity-smoke/04-chrome-restored-after-click.png`。 +- [x] 验证:`cd /mnt/Data1T/mnote && node scripts/task167-mindmap-kmind-parity-smoke.js --stage chrome-hide` + - 2026-05-11 通过:`sceneChromeVisibility/shellChromeVisibility` 从 `visible -> hiddenByPointerLeave -> hiddenByPointerLeave -> visible`;toolbar/sidebar/navigator 与截图状态一致。 + - 2026-05-11 补充通过:`fullscreen` stage 已覆盖 `visible -> enter fullscreen -> exit -> visible` 与 `hiddenByPointerLeave -> enter fullscreen -> exit -> hiddenByPointerLeave`,退出 fullscreen 不再强制显示 chrome。 + +## 7. 右侧详细设置栏与隐藏把手 + +目标:对齐 `/mnt/Data1T/mnote/tmp/image copy 83.png`。右侧不只是简化 tab,而是完整 panel drawer;触发条可以隐藏;隐藏后有把手可恢复。 + +### Task 7: 扩展 Sidebar Schema 到详细控件 + +**Files:** +- Modify: `wolai-frontend/src/lib/mindmap/mindmap-ui-schema.ts` +- Modify: `wolai-frontend/src/lib/mindmap/mindmap-action-map.ts` +- Modify: `wolai-frontend/src/lib/mindmap/mindmap-ui-schema.test.ts` +- Modify: `wolai-frontend/src/lib/mindmap/mindmap-action-map.test.ts` + +- [x] Sidebar panel 增加 `kind`:`nodeStyle`、`baseStyle`、`theme`、`structure`、`outline`、`shortcutKey`、`settings`。 +- [x] Sidebar option 增加控件类型:`button`、`swatch`、`segmented`、`slider`、`numberInput`、`select`、`layoutCard`、`treeItem`、`toggle`。 +- [x] `structure` panel 定义布局卡片:逻辑结构图、思维导图、组织结构图、目录组织图、时间轴、鱼骨图。 +- [x] `theme` panel 定义主题卡片,至少包含 classic、classic4/KMind-like、simple、dark 入口。 +- [x] `nodeStyle` panel 定义节点填充、文字颜色、字号、加粗、斜体、形状、边框、线条颜色、线条宽度。 +- [x] `baseStyle` panel 定义连线风格、曲线/直线、彩虹线条、背景、节点间距、概要样式。 +- [x] `outline` panel 从 projection/runtime 派生树,不允许成为第二套树真相。 +- [x] `settings` 或 `shortcutKey` panel 第一阶段可显示只读内容,但需要在 schema 中有位置。 +- [x] 单测覆盖:每个 sidebar option 要么有 actionId,要么是只读控件;可写控件必须有 compat path 或 kernel command 映射。 +- [x] 验证:`cd /mnt/Data1T/mnote/wolai-frontend && pnpm test -- mindmap-ui-schema mindmap-action-map` + - 2026-05-11 通过:`mindmap-ui-schema.test.ts` 13 项通过;同轮 `mindmap-action-map.test.ts` 5 项通过。 + +### Task 8: 实现右侧 Trigger、Drawer、隐藏把手 + +**Files:** +- Modify/Create: `rust/spikes/leptos-tiptap-spike/src/mindmap_shell.rs` +- Modify: `rust/spikes/leptos-tiptap-spike/src/lib.rs` +- Modify: `scripts/task167-mindmap-kmind-parity-smoke.js` + +- [x] 右侧 trigger 宽度对齐 KMind/simple-mind-map:约 60px,图标在上、文字在下。 +- [x] trigger active 状态使用蓝色强调条或蓝色文字,不再用整块按钮边框作为主要视觉。 +- [x] drawer 打开时宽度约 300px,右侧固定,覆盖画布,不挤压 runtime。 +- [x] drawer 顶部包含 panel 标题和关闭按钮。 +- [x] trigger 左侧或 drawer 边缘提供隐藏把手,点击后隐藏整个 trigger。 +- [x] 隐藏后保留一个小把手;鼠标移入不自动展开,点击把手才恢复。 +- [x] 点击 active trigger:若 drawer 已打开同一 panel,则关闭 drawer;若点击不同 panel,则切换 drawer 内容。 +- [x] 结构 panel 的布局卡片使用稳定尺寸,不能因文字或 hover 导致布局跳动。 +- [x] 右侧 drawer 打开时,底部 navigator 与 drawer 不重叠;必要时 navigator 向左避让或保持在 drawer 左侧。 +- [x] Smoke 断言:打开 `structure` panel 后可见标题“结构”,可见至少 6 个布局卡片,存在关闭按钮和隐藏把手。 +- [x] Screenshot:`tmp/task167-mindmap-kmind-parity-smoke/05-sidebar-structure-drawer.png`。 +- [x] Screenshot:`tmp/task167-mindmap-kmind-parity-smoke/06-sidebar-hidden-handle.png`。 +- [x] 验证:`cd /mnt/Data1T/mnote && node scripts/task167-mindmap-kmind-parity-smoke.js --stage sidebar` + - 2026-05-11 通过:`drawerWidth=300`,`title=结构`,`structureCardCount=6`;close/hide/restore 均通过。 + +### Task 9: 打通右侧设置到 Runtime/Kernel/Compat + +**Files:** +- Modify: `wolai-frontend/src/lib/mindmap/mindmap-action-map.ts` +- Modify: `wolai-frontend/src/lib/mindmap/simple-mind-map-bridge.ts` +- Modify: `wolai-frontend/src/lib/mindmap/leptos-mindmap-adapter.ts` +- Modify: `wolai-frontend/src/lib/mindmap/mindmap-command-diff.ts` +- Modify: `scripts/task167-mindmap-kmind-parity-smoke.js` + +- [x] `setLayout` 走 kernel command,并刷新 adapter projection。 +- [x] `setTheme` 走 kernel command,并刷新 adapter projection。 +- [x] 节点样式类 action 先走 runtime 预览,再以 `compatPayload.patch` 保存样式字段。 +- [x] 基础样式类 action 先走 runtime config/themeConfig,再以 `compatPayload.patch` 保存无法语义化字段。 +- [x] option 点击失败时显示 `command_failed` 或等价错误层,不能只改变 UI 本地状态。 +- [x] Smoke 点击结构卡片后 reload,断言 projection layout 保持。 +- [x] Smoke 点击主题卡片后 reload,断言 theme 保持。 +- [x] Smoke 点击节点样式后 reload,断言 compatPayload patch 可见或节点样式保留。 +- [x] 验证:`cd /mnt/Data1T/mnote/wolai-frontend && pnpm test -- mindmap-action-map simple-mind-map-bridge` +- [x] 验证:`cd /mnt/Data1T/mnote && node scripts/task167-mindmap-kmind-parity-smoke.js --stage sidebar-actions` + - 2026-05-11 通过:`sidebarActions.beforeReload/afterReload` 均为 `layout=mindMap`、`theme=dark`、`rootFillColor=#dbeafe`;同时修正 metadata-only 本地 `put` 误分流,统一回到 `mindmap.command.apply -> mnote-web server-side apply -> mindmaps.put` 主链。 + +## 8. 底部 Navigator 图标化与 MiniMap/Search + +目标:对齐 KMind/simple-mind-map 底部右侧工具条。搜索不应长期占用输入框宽度;全屏、只读、小地图、缩放应统一成 icon/action。 + +### Task 10: Navigator Schema 与 UI 重排 + +**Files:** +- Modify: `wolai-frontend/src/lib/mindmap/mindmap-ui-schema.ts` +- Modify/Create: `rust/spikes/leptos-tiptap-spike/src/mindmap_shell.rs` +- Modify: `scripts/task167-mindmap-kmind-parity-smoke.js` + +- [x] Navigator item 改为图标按钮为主:回根、搜索、小地图、只读/编辑、全屏、缩小、缩放值、放大、设置。 +- [x] 搜索默认只显示图标;点击后展开输入框;再次点击或 Escape 收起。 +- [x] 缩放值允许输入百分比;非法输入恢复上一次有效值。 +- [x] 小地图打开后显示在 navigator 上方或右下安全位置,不遮挡 drawer。 +- [x] 只读状态显示明确 active 状态,并同步 `mindMap.setMode("readonly" | "edit")`。 +- [x] Count 固定在左下角,文本保持简短:`字数 17`、`节点 4`。 +- [x] Smoke 断言默认 navigator 没有常驻搜索输入框;点击搜索后输入框出现。 +- [x] Screenshot:`tmp/task167-mindmap-kmind-parity-smoke/07-navigator-icons.png`。 +- [x] Screenshot:`tmp/task167-mindmap-kmind-parity-smoke/08-search-expanded.png`。 +- [x] 验证:`cd /mnt/Data1T/mnote && node scripts/task167-mindmap-kmind-parity-smoke.js --stage navigator` + - 2026-05-11 通过:默认 `searchOpen=false`、无常驻输入框;展开搜索后截图已保存;最终 `minimapOpen=true`、`readonly=true`、非法缩放输入恢复为 `100%`。 + +## 9. Context Menu 与快捷键基础对齐 + +目标:当前右键菜单已有第一阶段能力,但要对齐 KMind/simple-mind-map 的禁用状态、显示位置和隐藏行为。 + +### Task 11: Context Menu Parity + +**Files:** +- Modify: `wolai-frontend/src/lib/mindmap/mindmap-ui-schema.ts` +- Modify: `wolai-frontend/src/lib/mindmap/mindmap-action-map.ts` +- Modify/Create: `rust/spikes/leptos-tiptap-spike/src/mindmap_shell.rs` +- Modify: `scripts/task167-mindmap-kmind-parity-smoke.js` + +- [x] 区分节点右键菜单与画布右键菜单。 +- [x] 节点菜单包含插入子节点、插入同级、删除、展开/收起、概要、关联线、复制文本。 +- [x] 画布菜单包含回根、适应画布、搜索、只读切换、显示菜单。 +- [x] root/generalization 等特殊节点禁用不适用 action。 +- [x] 右键菜单打开时 pointer leave 不立即隐藏 chrome;点击菜单项、Escape、点击画布空白后关闭。 +- [x] 菜单位置不能超出 mindmap root 边界。 +- [x] Smoke 断言节点右键菜单与画布右键菜单的 action 列表不同。 +- [x] Screenshot:`tmp/task167-mindmap-kmind-parity-smoke/09-node-context-menu.png`。 +- [x] 验证:`cd /mnt/Data1T/mnote && node scripts/task167-mindmap-kmind-parity-smoke.js --stage context-menu` + - 2026-05-11 通过:节点菜单仅包含 node actions,root 节点 `insertSiblingAfter/deleteNode` 为 disabled;画布菜单为 `centerRoot/fitView/search/readonly/showMenu`;pointer leave 后菜单与 chrome 保持可见,Escape 后关闭。 + +## 10. KMind 视觉基线 + +目标:不要只实现功能按钮,要让默认观感接近 KMind/simple-mind-map 工作台。 + +### Task 12: 默认 Theme/Layout 视觉对齐 + +**Files:** +- Modify: `rust/crates/bridge-runtime/src/lib.rs` +- Modify: `wolai-frontend/src/lib/mindmap/simple-mind-map-bridge.ts` +- Modify: `wolai-frontend/src/lib/mindmap/mindmap-projection.ts` +- Modify: `scripts/task167-mindmap-kmind-parity-smoke.js` + +- [x] 默认 root 节点使用红色/橙红色背景、白色粗体文字,接近 KMind 截图。 +- [x] 默认二级节点使用蓝色背景、白色文字。 +- [x] 分支主题使用蓝色文字,概要括号线使用红色或主题强调色。 +- [x] 默认 layout 选择与 KMind 截图一致的右向逻辑结构。 +- [x] 连线位置不再错位;节点中心线、概要括号线和子节点垂直中心对齐。 +- [x] Smoke 读取 canvas/svg 或截图像素,确认节点和连线非空、可见、位置不重叠。 +- [x] Screenshot:`tmp/task167-mindmap-kmind-parity-smoke/10-kmind-theme-baseline.png`。 +- [x] 验证:`cd /mnt/Data1T/mnote && node scripts/task167-mindmap-kmind-parity-smoke.js --stage theme` + - 2026-05-11 通过:runtime 默认 `layout=logicalStructure`、`theme=default`,`themeConfig` 生效为 root 红底白字、二级蓝底白字、分支蓝字、红色概要线;smoke 读取到 `nodeCount=5`、`pathCount=9`、`overlaps=0`。 + +## 11. 验证体系 + +### Task 13: 新增 KMind Parity Smoke + +**Files:** +- Create: `scripts/task167-mindmap-kmind-parity-smoke.js` +- Output: `tmp/task167-mindmap-kmind-parity-smoke/result.json` +- Output: `tmp/task167-mindmap-kmind-parity-smoke/*.png` + +- [x] 启动前检查 `http://127.0.0.1:3000/` 可用,不强制重启已存在服务。 +- [x] 使用默认测试账号登录。 +- [x] 新建或打开临时文档,插入 mindmap block。 +- [x] 断言 `simple-mind-map` runtime 存在,canvas rect 非零。 +- [x] 断言 Leptos/Rust shell 来源为 `data-ui-shell-source="leptos-rust-shell"`。 +- [x] 断言 toolbar 单行。 +- [x] 断言 fullscreen 按钮存在并可进入/退出。 +- [x] 断言 pointer leave 隐藏 chrome、pointer enter 不恢复、click 恢复。 +- [x] 断言右侧 drawer 可打开、关闭、隐藏 trigger、点击把手恢复。 +- [x] 断言 navigator 搜索按需展开,小地图可打开。 +- [x] 断言 reload 后 layout/theme/view/compat patch 不丢。 +- [x] 输出 `result.json`,至少包含 `ok`、`baseUrl`、`documentId`、`mindmapId`、`toolbarRows`、`fullscreenOk`、`chromeHideOk`、`sidebarDrawerOk`、`navigatorOk`、`screenshots`。 +- [x] 验证:`cd /mnt/Data1T/mnote && node scripts/task167-mindmap-kmind-parity-smoke.js` + - 2026-05-11 通过:默认执行 `all` stage,`result.json` 输出 `ok/baseUrl/documentId/mindmapId/toolbarRows/fullscreenOk/chromeHideOk/sidebarDrawerOk/navigatorOk/contextMenuOk/themeOk/reloadOk/screenshots`,截图 01-10 全量生成。 + +### Task 14: 回归现有 Phase 6 Smoke + +**Files:** +- Modify: `scripts/task166-mindmap-phase6-block-smoke.js` only if needed + +- [x] `task167` 新增后,`task166` 继续保持 runtime/projection/command/reload 基础验证,不与视觉 parity 重复过多。 +- [x] `task166` 不因 toolbar 单行、drawer、fullscreen 变化而误判旧 testid 缺失。 +- [x] `task166` 与 `task167` 输出目录分离。 +- [x] 验证:`cd /mnt/Data1T/mnote && node scripts/task166-mindmap-phase6-block-smoke.js` + - 2026-05-11 通过:`task166` 保持基础链路验证,兼容 navigator 搜索折叠与 zoom 输入框;`result.json` 输出在 `tmp/task166-mindmap-phase6-block-smoke/`,与 `task167` 分离。 + +## 12. 执行顺序建议 + +建议按以下顺序执行,避免先做 CSS 后返工状态模型: + +1. Task 1:状态模型。 +2. Task 2-3:单行 toolbar 与更多菜单。 +3. Task 4-5:全屏。 +4. Task 6:chrome hide/click restore。 +5. Task 7-9:右侧详细设置栏与持久化。 +6. Task 10:navigator 图标化。 +7. Task 11:context menu。 +8. Task 12:视觉主题与连线对齐。 +9. Task 13-14:smoke 与回归。 + +每次实现完成后,至少保存对应截图,再勾选节点。 + +## 13. 阶段验收标准 + +本 checklist 视为完成时,必须同时满足: + +- [x] `/mnt/Data1T/mnote/tmp/task167-mindmap-kmind-parity-smoke/01-toolbar-single-row.png` 显示单行 toolbar。 +- [x] `/mnt/Data1T/mnote/tmp/task167-mindmap-kmind-parity-smoke/02-fullscreen-canvas.png` 显示全屏画布与浮动 chrome。 +- [x] `/mnt/Data1T/mnote/tmp/task167-mindmap-kmind-parity-smoke/03-chrome-hidden-after-leave.png` 显示鼠标移出后的隐藏状态。 +- [x] `/mnt/Data1T/mnote/tmp/task167-mindmap-kmind-parity-smoke/05-sidebar-structure-drawer.png` 显示详细右侧结构面板。 +- [x] `/mnt/Data1T/mnote/tmp/task167-mindmap-kmind-parity-smoke/07-navigator-icons.png` 显示图标化底部 navigator。 +- [x] `node scripts/task166-mindmap-phase6-block-smoke.js` 通过。 +- [x] `node scripts/task167-mindmap-kmind-parity-smoke.js` 通过。 +- [x] `pnpm test -- mindmap-ui-schema mindmap-action-map mindmap-ui-state simple-mind-map-bridge` 通过。 +- [x] `npm run typecheck && npm run build` 在 `design/05-editor-mainline/reference-code/leptos-tiptap/tiptap` 通过。 +- [x] Rust `page.body.save` 主链保存 `mindmap` block 后,`/api/documents/content` 读回仍为 `type: "mindmap"`,不再退化成 `paragraph`。 + - 2026-05-12 通过:新增 `cargo test -p core-protocol preserves_mindmap_paragraph_placeholder`、`cargo test -p core-protocol tiptap_mindmap_placeholder_round_trip_preserves_mindmap_attrs`、`cargo test -p bridge-runtime documents_save_command_plan_preserves_mindmap_placeholder`;同时在真实 `http://127.0.0.1:3000` 上手工验证 `content[0].type === "mindmap"` 且 `pageSubtree.subtree.nodes[1].metadata.blockType === "mindmap"`。 +- [x] `GET /documents/{documentId}?workspaceId=...` 对有效导图文档返回 HTML 页面壳,而不是 `documents.content.get 未返回文档内容` 的错误 JSON。 + - 2026-05-12 通过:在前台 `mnote-web` 实例上重新创建临时导图文档后复测,返回 `200 text/html; charset=utf-8`,首屏 HTML 正常包含 document shell。 +- [x] 3000 文档页默认主链仍为 Leptos/Rust shell,不加载旧 React mindmap 主链。 + +## 14. 明确延期项 + +以下能力可参考 KMind,但不进入本 checklist 的完成条件: + +- 多根节点。 +- MOC 模式。 +- 思源块预览、镜像块、PDF 标注跳转。 +- Freemind/XMind 全量导入导出。 +- 主题设计器与主题分享。 +- 完整快捷键自定义配置。 +- 演示模式。 +- Rust-native renderer。 diff --git a/design/09-siyuan-reference/process/9-siyuan-reference-boundary-and-adoption-v1.md b/design/09-siyuan-reference/process/9-siyuan-reference-boundary-and-adoption-v1.md new file mode 100644 index 00000000..65553394 --- /dev/null +++ b/design/09-siyuan-reference/process/9-siyuan-reference-boundary-and-adoption-v1.md @@ -0,0 +1,362 @@ +# 9 [process] SiYuan 参考边界与可借鉴能力 v1 + +> 更新时间:2026-05-11 +> +> 上位依据: +> - `/mnt/Data1T/mnote/ARCHITECTURE.md` +> - `/mnt/Data1T/mnote/design/01-05-current-priority-overview.md` +> - `/mnt/Data1T/mnote/design/01-tree-first-graph-kernel/process/1-tree-first-graph-kernel-v1.md` +> - `/mnt/Data1T/mnote/design/03-rust-web/process/3-rust-web-long-term-architecture-v1.md` +> - `/mnt/Data1T/mnote/design/03-rust-web/process/3-3-rust-web-tree-realtime-event-stream-v1.md` +> - `/mnt/Data1T/mnote/design/05-editor-mainline/process/5-5-page-aggregate-single-truth-alignment-v1.md` +> - `/mnt/Data1T/mnote/design/06-mindmap/process/6-mindmap-kernel-phase6-projection-editor-v1.md` +> +> 外部参考: +> - `https://github.com/siyuan-note/siyuan` +> - `https://raw.githubusercontent.com/siyuan-note/siyuan/master/README_zh_CN.md` +> - `https://raw.githubusercontent.com/siyuan-note/siyuan/master/API_zh_CN.md` +> +> 本稿定位: +> - 本稿是 `mnote` 的参考与借鉴边界稿。 +> - 本稿不是新的上位架构来源。 +> - 本稿不覆盖 `01-05` 当前主线优先级。 + +## 1. 文档目的 + +这份稿只回答一个问题: + +> **思源笔记对当前 `mnote` 主线,哪些地方值得参考,哪些地方不应照搬。** + +当前结论固定为: + +> **思源更适合作为产品能力与交互参考,不适合作为 `mnote` 长期架构模板。** + +原因不是思源做得不成熟,而是两边长期目标不同: + +- 思源更接近 `本地优先工作空间 + 块文档 + Go kernel + TS/Electron 产品壳` +- `mnote` 当前主线是 `tree-first graph kernel + Rust 持有语义 + Page Aggregate / Tree Realtime / Tree Command 收口` + +因此,后续引用思源时必须先区分: + +1. 是在参考产品层能力 +2. 还是在引入架构层真相 + +只有第一类默认允许,第二类默认不允许。 + +--- + +## 2. 先给结论 + +### 2.1 思源值得参考的层级 + +思源当前最值得参考的是: + +- 块级引用、双向链接、反链、图谱、大纲这一整套产品能力的配套闭环 +- 属性 / 数据库视图的用户心智、操作颗粒度和投影形态 +- 本地优先工作区的数据组织、导入导出、资源目录和恢复路径 +- 大体量单机笔记产品的交互密度、功能面排布和“一个能力带一圈配套能力”的产品完成度 +- 编辑器相关的局部交互细节,以及导图插件这一类挂件的集成方式 + +### 2.2 思源不应成为 `mnote` 的长期架构模板 + +思源当前不应被拿来直接替代或覆盖: + +- `tree-first graph kernel` +- `Rust kernel` 的语义主导权 +- `mnote-web` 作为 `3000` 主执行面 +- `Page Aggregate` 作为页面域单一真相收口方向 +- `tree.*` 正式命令面与 `tree events` realtime 主链 + +一句话收口: + +> **思源可以提供“功能长什么样”的答案,但不能替代 `mnote` 对“系统真相由谁持有”的既定答案。** + +--- + +## 3. 为什么会觉得像思源 + +用户会感觉当前实现和思源接近,并不是错觉,主要有下面这些原因: + +- 都是块式文档体验,而不是传统线性文档页 +- 都强调页面树、块引用、双向链接、嵌入、导图或挂件类能力 +- 都不是纯 Markdown 文件列表产品,而是更接近“知识对象 + 多视图”的产品 +- 都会同时出现页面、块、资源、搜索、反链、图谱、数据库视图这些能力面 + +但相似主要停留在产品表层,不等于底层事实源一致。 + +当前两边关键差异是: + +- 思源偏 `workspace/data + .sy + API + 本地工作区` +- `mnote` 偏 `kernel truth + projection + command + realtime stream` + +这条差异决定了: + +> **参考思源时,应优先借它的产品形态,不要把它的数据真相层和 API 哲学直接搬进来。** + +--- + +## 4. 思源当前可见的能力面 + +从公开仓库、README 和 API 可见,思源不是“只有一个块编辑器”,而是已经形成下面这些稳定能力面: + +- 块:插入、更新、删除、移动、折叠、展开、块引用 +- 属性:块属性读写 +- SQL:查询与事务刷新 +- 属性视图 / 数据库视图:表格、看板、画廊等 +- 大纲、反链、图谱、搜索 +- 工作空间、文件树、资源文件、模板、插件、代码片段 +- 历史、同步、导出、剪藏、闪卡、OCR、AI、移动端与 Docker + +这说明思源真正有参考价值的不是某个单点组件,而是: + +> **当一个系统把“块”作为核心对象后,周边需要跟着长出来的整圈配套能力。** + +--- + +## 5. 可直接借鉴的部分 + +## 5.1 块级引用不是单点功能,而是一整圈产品能力 + +思源把块级引用、双向链接、反链、搜索、图谱、大纲做成了互相咬合的一组能力。 + +对 `mnote` 的启发不是“做一个 `((block))` 就够了”,而是: + +- 一旦有块引用,就应该有稳定的引用目标解析 +- 一旦有引用目标解析,就应该有反链和搜索投影 +- 一旦有反链和搜索投影,就应该考虑页面页头、阅读态、导图、AI 上下文如何共享这一组对象语义 + +这与当前 `mnote` 主线是相容的,因为这些都应该继续落到 Rust projection family,而不是前端各自维护一份块真相。 + +## 5.2 属性视图 / 数据库视图值得作为单独对象域评估 + +思源已经证明: + +- 属性不是补充字段 +- 数据库视图也不是“在文档里画个表格”就结束 + +它更接近: + +- 对象属性定义 +- 多视图投影 +- 排序 / 分组 / 过滤 / relation / rollup 一组相关语义 + +对 `mnote` 的启发是: + +> **如果后续做属性视图,不应只把它当成编辑器里的一个特殊块,而应评估它是否需要独立的 kernel object / projection / command family。** + +这里可以借思源的产品心智,但不要直接借它的存储组织。 + +## 5.3 本地工作区组织与导入导出心智值得参考 + +思源 README 明确公开了工作空间 `data/` 下的目录组织,例如: + +- `assets` +- `templates` +- `snippets` +- `plugins` +- `public` +- 文档与笔记本目录 + +这对 `mnote` 的参考价值主要在用户体验层: + +- 本地导出时,哪些内容算“工作区资产” +- 用户如何理解模板、资源、插件与公开文件 +- 发生故障时,用户该如何备份与迁移 + +这里适合作为: + +- 本地文件夹体验 +- 导入导出 UX +- 恢复与备份说明 + +的参考,不适合作为新的 canonical source。 + +## 5.4 导图与插件化挂件有参考意义 + +当前 `mnote` 已经在 `design/05-editor-mainline/reference-code/` 下保留了 `siyuan-kmind-plugin` 参考代码,这个方向是合理的。 + +对导图线的正确借法是: + +- 参考思源插件 / KMind 的 UI、行为、挂件边界 +- 参考其与文档块、引用预览、搜索、资源插入的交互方式 +- 不复制它的思源宿主耦合 + +这与当前 `Phase 6` 已经明确的口径一致: + +> **可以参考 KMind 的 UI 与行为,但不要复制它的思源插件耦合。** + +## 5.5 “成熟单机笔记产品的密度”本身值得参考 + +思源的一个重要价值,不是某个 API,而是它已经证明: + +- 用户愿意接受高密度功能面 +- 页面 / 树 / 搜索 / 反链 / 数据库 / 插件 / 导出 / 历史可以共存 +- 关键不在于功能少,而在于对象边界和入口是否清晰 + +这对 `mnote` 的启发是: + +> **后续不需要因为主线在收口,就把能力面理解成必须长期极简;真正要避免的是语义散乱,而不是能力丰富。** + +--- + +## 6. 不建议照搬的部分 + +## 6.1 不照搬 `.sy + 工作空间文件` 作为系统真相层 + +思源的数据组织很适合它自己的本地优先单机模型,但 `mnote` 当前已经明确: + +- `tree-first graph kernel` 是长期对象真相层 +- `Convex` 继续保留为当前存储 / 实时 / 文件协作底座 +- `mnote-web` 与 Rust kernel 持有主执行语义 + +因此后续即使增加本地文件夹能力,也不能把: + +- 工作空间目录结构 +- 导出文件形状 +- 调试缓存 + +误提升为新的系统真相层。 + +## 6.2 不把 SQL 暴露成长期核心产品契约 + +思源公开提供 SQL 查询接口,这很适合本地单机高级用户,但对 `mnote` 有明显风险: + +- 会绕开 `projection` 与 `command` 边界 +- 会破坏页面域和树域单一真源收口 +- 会让 AI、CLI、前端和脚本各自形成第二套数据读取口径 + +所以对 `mnote` 来说,正确借法是: + +- 借“高级查询能力”这个需求 +- 不借“把底层 SQL 直接暴露为长期主接口”这个做法 + +若未来需要高级查询,应优先考虑: + +- kernel query family +- projection query endpoint +- 受控 DSL + +而不是直接给业务面开放底层 SQL。 + +## 6.3 不把前端运行时做成第二语义中心 + +思源前端 `protyle` 与周边 TS runtime 很大,说明它有相当一部分产品组织与交互复杂度留在前端。 + +这对当前 `mnote` 不是该追的方向,因为你们当前最重要的事是: + +- 继续收口 `Page Aggregate` +- 继续收口 `tree command` +- 继续收口 `tree realtime` + +因此不应因为参考思源,就重新把: + +- 标题语义 +- 页面设置语义 +- 引用解析语义 +- 数据库视图真相 + +重新扩散到前端壳层或 compat 层。 + +## 6.4 不默认接受它的单用户 / 本地优先假设 + +思源大量设计天然偏: + +- 单机优先 +- 工作空间文件优先 +- 用户直接接触本地数据目录 + +而 `mnote` 当前仍保留: + +- Convex 自托管底座 +- realtime 协作链 +- Rust Web `3000` 主入口 + +因此参考思源时必须先问: + +> **这个能力是在单用户前提下成立,还是在当前 `mnote` 的协作 / realtime 前提下也能成立。** + +只在前者成立的方案,默认不能直接进入主线。 + +--- + +## 7. 对 `mnote` 的建议落点 + +| 参考主题 | 是否建议借鉴 | 推荐落点 | +| --- | --- | --- | +| 块级引用 / 双向链接 / 反链 | 建议 | Rust query / projection family,统一到 page/tree 相关投影 | +| 属性视图 / 数据库视图 | 建议 | 先做对象域评估,再决定 command / projection 边界 | +| 图谱 / 大纲 / 搜索 | 建议 | 作为引用体系的配套视图,而不是孤立功能 | +| 工作区导出 / 资源目录 / 模板心智 | 建议 | 本地文件夹、导出导入、恢复与帮助文档 | +| 导图插件交互 | 建议 | 继续作为 `leptos-mindmap` 的参考行为层 | +| `.sy` 文档真相层 | 不建议 | 不进入 `mnote` 主线 | +| SQL 直接开放给产品层 | 不建议 | 改用 kernel query / projection / DSL | +| 前端重语义运行时 | 不建议 | 继续把长期语义收口到 Rust kernel | +| 单机假设下的 API 组织 | 谨慎 | 只借需求,不借真相层与执行面 | + +--- + +## 8. 当前优先级下的使用方式 + +考虑到当前 `mnote` 的第一优先级仍然是: + +1. `Page Aggregate` +2. `Tree Command Cutover` +3. `Tree Realtime Event Stream` + +所以本稿的执行口径应固定为: + +### 8.1 允许用思源来校准需求 + +例如: + +- 块引用之后,用户预期还需要什么 +- 反链页、图谱页、搜索页应该有哪些最小能力 +- 属性视图第一版做成什么形态才不失真 +- 导出与本地资源管理要不要显式工作区概念 + +### 8.2 不允许用思源来打断当前收口顺序 + +例如不能因为思源已有某个能力,就跳过: + +- `Page Aggregate` 的主链闭环 +- `tree.*` 命令统一 +- `/api/tree/events` live cache 收口 + +否则会把参考稿误用成新的需求插队入口。 + +### 8.3 参考思源时优先写成“能力映射”,不要写成“照搬实现” + +后续如果再新增思源相关设计稿,优先采用: + +- “思源某能力对 `mnote` 的需求映射” +- “思源某交互对 `mnote` 的行为对照” + +而不是: + +- “把思源 API / 数据格式搬进来” +- “按思源目录结构重建 `mnote`” + +--- + +## 9. 当前建议的后续拆分 + +如果后续继续使用思源作为参考,建议只沿下面几个方向继续出稿: + +1. `块引用 / 反链 / 图谱 / 搜索` 的能力映射稿 +2. `属性视图 / 数据库视图` 的对象域评估稿 +3. `本地工作区 / 导入导出 / 资源目录` 的 UX 参考稿 +4. `导图插件 / 挂件 / 引用预览` 的行为对照稿 + +不建议出的稿: + +1. “按思源重写 `mnote` 数据层” +2. “引入思源式 SQL 主接口” +3. “以思源前端 runtime 替代当前 Rust 主线” + +--- + +## 10. 一句话收口 + +当前 `mnote` 对思源的正确态度应固定为: + +> **把思源当成成熟块知识产品的参考样本库,重点吸收它的能力面、交互完成度和配套闭环;但 `mnote` 的长期事实源、命令面、projection 与 realtime 主链,继续严格沿 `tree-first graph kernel` 推进。** diff --git a/design/10-review/01-rust-kernel-web-review.md b/design/10-review/01-rust-kernel-web-review.md new file mode 100644 index 00000000..51a18cdc --- /dev/null +++ b/design/10-review/01-rust-kernel-web-review.md @@ -0,0 +1,119 @@ +# Rust Kernel / Web 实现偏差审查 + +## 范围 + +本次只审查 Rust kernel / protocol / bridge-runtime / mnote-web / storage-convex-bridge 与当前设计主线的一致性。 + +重点对照设计: + +- `ARCHITECTURE.md` +- `design/01-05-current-priority-overview.md` +- `design/01-tree-first-graph-kernel/process/1-tree-first-graph-kernel-v1.md` +- `design/01-tree-first-graph-kernel/process/1-1-tree-first-graph-kernel-checklist-v2.md` +- `design/02-convex-rust-long-term-architecture/process/2-tree-first-graph-convex-rust-long-term-architecture-v1.md` +- `design/03-rust-web/process/3-rust-web-long-term-architecture-v1.md` +- `design/03-rust-web/process/3-1-rust-web-long-term-checklist-v2.md` +- `design/03-rust-web/process/3-3-rust-web-tree-realtime-event-stream-v1.md` +- `design/03-rust-web/process/3-15-runtime-fallback-retirement-checklist-v1.md` +- `design/04-tree-domain/done/4-6-tree-command-protocol-cutover-stage2-v1.md` + +重点代码: + +- `rust/crates/core-protocol/` +- `rust/crates/core-domain/` +- `rust/crates/bridge-runtime/` +- `rust/crates/mnote-web/` +- `rust/crates/storage-convex-bridge/` + +## 结论 + +Rust kernel / protocol / bridge-runtime / mnote-web 的主干方向与当前设计基本一致:`core-protocol` 已有统一 kernel node / edge / projection / page aggregate 协议;`bridge-runtime` 已能执行 kernel query / command / projection;`mnote-web` 已持有 3000 主入口、文档页 shell、`/api/page-aggregate/:id`、tree command、`/api/tree/events`、Search shell 等关键接缝;`storage-convex-bridge` 明确把 `tree.*` / `page.*` 等语义命令映射到底层 Convex mutation。 + +主要偏差不是“Rust 主线没有落地”,而是当前仍存在几类收口缺口: + +1. 部分 Rust Web 主路径仍会静默合成 fallback / fixture 数据,和 `Runtime Fallback 退场` 的激进口径不完全一致。 +2. Page Aggregate 对外标记为 `KernelProjection`,但 Rust Web 仍先取 `documents.meta/content` 再在 runtime 内拼成聚合;这是合理过渡实现,但“单一 kernel 真源”口径容易被写得过满。 +3. Tree realtime 已有正式 SSE 主链,但实现仍偏轮询 bridge overview,WS 仍是 snapshot/resync 骨架,尚未成为完整实时主链。 +4. Legacy / compat 能力默认大多关闭,但配置位、proxy 辅助函数和兼容源枚举仍在,设计文档中“全部退场”的勾选状态可能偏乐观。 + +## 关键发现表格 + +| 编号 | 分类 | 严重度 | 发现 | 证据 | +| --- | --- | --- | --- | --- | +| RK-01 | 未完成 | 中 | Kernel projection 仍主要从 `sidebar.dataset.list` 这一份 Convex 数据集构建,广义 node pool / reference edge / summary/index 真相层尚未完全独立。 | `rust/crates/mnote-web/src/routes/snapshot_support.rs:27` 定义 `sidebar.dataset.list`;`:93` 先加载 sidebar dataset 再执行 `kernel.project_view`;`rust/crates/bridge-runtime/src/lib.rs:8010` 后续由 sidebar 数据构建 subtree;`:8111` 再转为 projection。 | +| RK-02 | 实现偏差 / 风险 | 高 | Rust Web 主路径仍存在静默 fallback:workspace shell 在 projection 加载失败时无条件合成最小 workspace/documents;sidebar/filetree 在 `allow_dev_fixtures` 时合成开发数据;Search 在 Convex query 失败时返回内置搜索数据。这与 `3-15-runtime-fallback-retirement` 的“默认不再 fallback”口径冲突。 | `rust/crates/mnote-web/src/routes/web_shell.rs:2379` 到 `:2401` 无条件 fallback 最小 dataset;`:2432` 到 `:2461` 合成 sidebar dev dataset;`:2493` 到 `:2519` 合成 filetree dev dataset;`rust/crates/mnote-web/src/routes/search.rs:233` 到 `:247` 搜索失败后走 `fallback_search_dataset`。 | +| RK-03 | 方向变化 / 文档滞后 | 中 | Page Aggregate 已由 Rust Web 暴露正式 route,但实现仍是先读 `documents.meta/content`,再把 joined data 交给 `page.aggregate.get` 生成 projection。代码对外 source 标成 `KernelProjection`,但底层仍是 meta/content join 的迁移形态;需要文档明确这是 Rust runtime adapter,而非完整 kernel storage 真源。 | `rust/crates/mnote-web/src/routes/web_shell.rs:2282` 到 `:2315` 先读 meta/content 再执行 `page.aggregate.get`;`rust/crates/bridge-runtime/src/lib.rs:8246` 到 `:8253` 将 source 传为 `PageAggregateSource::KernelProjection`;`:5303` 到 `:5324` 从 meta/content 中抽取 title/content/revision。 | +| RK-04 | 未完成 | 中 | Tree realtime 正式 route 已存在,但当前 SSE 仍通过 polling `bridge.workspace.overview` 生成 snapshot/delta/resync;WS 只发送初始 snapshot,并只支持客户端请求 resync,不是完整主实时链路。 | `rust/crates/mnote-web/src/routes/sse.rs:51` 到 `:91` 循环 sleep/poll overview 后生成 delta;`rust/crates/mnote-web/src/routes/ws.rs:32` 发送 snapshot,`:40` 到 `:80` 只处理 resync 或 unsupported ack。 | +| RK-05 | 风险 / 文档滞后 | 低 | Legacy Next compat 默认关闭,但代码仍保留 env-gated proxy 能力、Next proxy 辅助函数和 compat 配置位。若文档继续写“legacy compat 已删除”,会与代码事实不一致;若保留,应写成显式调试/迁移边界。 | `rust/crates/mnote-web/src/app.rs:42` 到 `:54` 仍读取 `MNOTE_WEB_LEGACY_NEXT_BASE_URL` / `MNOTE_WEB_ENABLE_LEGACY_NEXT_COMPAT`;`rust/crates/mnote-web/src/routes/gateway.rs:86` 到 `:87` auth API 可转 legacy proxy;`:402` 到 `:499` legacy proxy 实现仍在;`rust/crates/mnote-web/src/routes/documents.rs:153` 当前 `should_proxy_via_next` 返回 false,但 Next proxy helper 仍保留。 | +| RK-06 | 实现一致 | 低 | Tree command cutover Stage 2 的长期命名面已在 Rust route / bridge / storage mapping 中落地,`documents.*` 仍作为 alias/底层 Convex mutation 名称存在,和 Stage 2A/2B 过渡口径基本一致。 | `rust/crates/storage-convex-bridge/src/mapping.rs:37` 到 `:43` 映射 `tree.*`;`:52` 到 `:68` 保留 `documents.*` / `page.*` alias;`rust/crates/mnote-web/src/tree_shell/dispatcher.rs:16` 到 `:23` 使用 `tree.*`;`rust/crates/mnote-web/src/routes/tree.rs:7634` 附近测试确认 documents alias 映射仍存在。 | +| RK-07 | 实现一致 | 低 | Debug shell 默认关闭,符合 `3104`/debug 壳默认退场口径。 | `rust/crates/mnote-web/src/routes/mod.rs:120` 到 `:124` 仅在 `enable_debug_shell_routes` 时挂 `/tree` 和 `/document-debug`;同文件测试 `:142` 到 `:184` 验证默认 404。 | + +## 证据 + +### 1. Kernel / projection 已落地,但底层仍主要基于 sidebar dataset + +- `rust/crates/core-protocol/src/kernel.rs:7` 到 `:42` 定义 `KernelNodeType`、`KernelEdgeType`、`KernelProjectionKind`。 +- `rust/crates/mnote-web/src/routes/kernel.rs:62` 到 `:85` 暴露 projection route,并经 `load_projection_snapshot` 获取投影。 +- `rust/crates/mnote-web/src/routes/snapshot_support.rs:27` 到 `:47` 固定 `sidebar.dataset.list` 为数据获取入口。 +- `rust/crates/bridge-runtime/src/lib.rs:8119` 到 `:8137` 在没有 root 时由当前数据构建 subtree,再生成 projection;`file_tree` 另走 `build_file_tree_projection_result`。 + +判断:这符合 `1-1` 中“真实主线已落地,但更广义 node pool/reference edge 仍后续”的口径,不应被写成“尚未开始”;也不应被写成“完整 kernel 真源已闭环”。 + +### 2. Runtime fallback 仍在主路径附近 + +- `rust/crates/mnote-web/src/routes/web_shell.rs:2379` 到 `:2401`:workspace shell projection 加载失败时合成 `active_workspace_id`、`workspaces`、`documents`。 +- `rust/crates/mnote-web/src/routes/web_shell.rs:2432` 到 `:2461`:`allow_dev_fixtures` 时合成 sidebar dev dataset。 +- `rust/crates/mnote-web/src/routes/web_shell.rs:2493` 到 `:2519`:`allow_dev_fixtures` 时合成 filetree dev dataset。 +- `rust/crates/mnote-web/src/routes/search.rs:233` 到 `:247`:搜索 Convex 查询失败后执行 `fallback_search_dataset(workspace_id)`。 + +判断:这与 `design/03-rust-web/process/3-15-runtime-fallback-retirement-checklist-v1.md` 的“默认运行时不再 fallback / 不静默降级”存在偏差。尤其 Search fallback 会产生看似真实的固定结果,风险高于空状态降级。 + +### 3. Page Aggregate 是 Rust route,但仍是迁移期 adapter + +- `rust/crates/mnote-web/src/routes/mod.rs:53` 到 `:56` 挂载 `/api/page-aggregate/{document_id}`。 +- `rust/crates/mnote-web/src/routes/web_shell.rs:2264` 到 `:2319` 构建 aggregate。 +- `rust/crates/bridge-runtime/src/lib.rs:5291` 到 `:5442` 从 meta/content 形状构建 `PageAggregateProjection`。 +- `rust/crates/core-protocol/src/page_aggregate.rs:4` 到 `:10` 协议层仍保留 `KernelProjection`、`CompatMetaContentJoin`、`Fixture` 三种 source。 +- `rust/crates/mnote-web/src/page_aggregate/builder.rs:66` 默认 source 仍是 `CompatMetaContentJoin`,但当前检索未发现该 builder 进入主要 route 主路径。 + +判断:当前代码已摆脱 TS builder runtime 主链,但还不是“页面域全部直接来自独立 kernel storage 真源”。文档应保留“Rust-first Page Aggregate 过渡态”的精确口径。 + +### 4. Tree realtime 主链已成立,但不是完整实时闭环 + +- `rust/crates/mnote-web/src/routes/mod.rs:113` 挂载 `/api/tree/events`,`:114` 挂载 `/api/stream/events`,`:115` 挂载 `/api/realtime/ws`。 +- `rust/crates/mnote-web/src/routes/sse.rs:127` 到 `:146` 给 `/api/tree/events` 打 `x-mnote-web-owner: mnote-web` 与 `x-mnote-tree-stream-owner: rust-web`。 +- `rust/crates/mnote-web/src/routes/sse.rs:51` 到 `:91` 通过 sleep/poll bridge overview 发现变化。 +- `rust/crates/mnote-web/src/routes/ws.rs:32` 到 `:80` WebSocket 当前只发 snapshot,并响应 resync 请求。 + +判断:这与 `3-3` 中“已完成 route / snapshot / delta / resync 基础,WS 尚未成为主链,live cache 未完全统一”一致;若 `3-15` 写成 tree realtime 补偿链已完全删除,则偏乐观。 + +### 5. Compat / legacy 未成为默认主链,但未完全删除 + +- `rust/crates/mnote-web/src/app.rs:42` 到 `:54` 仍读取 legacy Next 相关环境变量,默认 `enable_legacy_next_compat` 为 false。 +- `rust/crates/mnote-web/src/routes/gateway.rs:86` 到 `:87` 在 compat 开启且配置 legacy base URL 时,`/api/auth` 可走 legacy proxy。 +- `rust/crates/mnote-web/src/routes/documents.rs:153` 当前 `should_proxy_via_next` 返回 false,说明文档 API 默认不走 Next proxy。 + +判断:代码实际状态更像“默认关闭、残留显式迁移/调试能力”,不是“所有 legacy proxy 代码已删除”。 + +## 建议优先级 + +### P0 + +- 移除或显式隔离 Search 的 `fallback_search_dataset`。失败时应返回明确错误或空 projection,并带可观测错误头;不要返回固定假结果。 +- 对 `load_workspace_shell_projection` 的无条件合成 dataset 做决策:若用于首屏容错,应在响应或 contract 中显式标记 degraded;若严格执行 fallback 退场,应改为失败或空树,不再伪装成真实 workspace projection。 + +### P1 + +- 将 `allow_dev_fixtures` 相关 fallback 全部加上更明确的 debug/dev 标识,并确认 `desktop:hot` / 3000 默认启动链不会误开。 +- 补一条 Rust Web smoke:Convex/query 不可用时,搜索、Sidebar、filetree 不应返回假业务数据。 +- Page Aggregate 文档补一句:当前 Rust route 已是主读链,但底层仍通过 Rust runtime adapter 消费 meta/content substrate;完整页面域单一真源仍在推进。 + +### P2 + +- Tree realtime 后续应把 SSE polling overview 与真正 domain event stream 的边界写清楚,并继续推进 page subtree / filetree / preferred snapshot 同一 live cache。 +- Legacy Next proxy 若仍需保留,建议统一命名为 explicit migration/debug boundary;若不再需要,后续单独删除 proxy helper、配置位和测试样例,避免和 `3-15` 的退场状态长期冲突。 +- `PageAggregateSource::CompatMetaContentJoin` / `Fixture` 是否继续保留在 `core-protocol` 需要架构决策:保留则标记为迁移态 source;删除则需先确认没有测试、local folder、fixture 依赖。 + +## 修改的文件路径 + +- `/mnt/Data1T/mnote/design/10-review/01-rust-kernel-web-review.md` diff --git a/design/10-review/02-frontend-editor-tree-review.md b/design/10-review/02-frontend-editor-tree-review.md new file mode 100644 index 00000000..ee71789a --- /dev/null +++ b/design/10-review/02-frontend-editor-tree-review.md @@ -0,0 +1,123 @@ +# 前端编辑器 / 树体验实现偏差审查 + +## 范围 + +本报告只审查 `wolai-frontend` 当前文档页、`leptos-tiptap` island host、`Page Aggregate` 消费链、Sidebar / tree shell / tree stream 与设计文档的一致性。 + +重点对照设计: + +- `ARCHITECTURE.md` +- `design/01-05-current-priority-overview.md` +- `design/04-tree-domain/done/4-sidebar-pagetree-filetree-rust-web-rebuild-v1.md` +- `design/04-tree-domain/done/4-2-sidebar-pagetree-filetree-product-interaction-contract-v1.md` +- `design/04-tree-domain/done/4-6-tree-command-protocol-cutover-stage2-v1.md` +- `design/04-tree-domain/done/4-18-tree-final-dom-shell-cutover-hard-gate-v1.md` +- `design/04-tree-domain/process/4-23-local-cloud-explicit-bridge-p3-candidate-v1.md` +- `design/05-editor-mainline/process/5-4-leptos-tiptap-mainline-correction-v1.md` +- `design/05-editor-mainline/process/5-5-page-aggregate-single-truth-alignment-v1.md` +- `design/05-editor-mainline/process/5-6-page-aggregate-alignment-checklist-v1.md` +- `design/05-editor-mainline/done/5-5-1-page-aggregate-contract-v1.md` + +重点读取代码: + +- `wolai-frontend/src/app/(app)/documents/` +- `wolai-frontend/src/components/editor/` +- `wolai-frontend/src/lib/documents/` +- `wolai-frontend/src/components/sidebar/` +- `wolai-frontend/src/lib/tree-stream/` +- `wolai-frontend/src/lib/documents/tree-command-client.ts` + +## 结论 + +当前实现总体方向与最新设计主线一致:文档页 SSR 入口已消费 Rust `mnote.page_aggregate.v1`,默认主编辑器已折返到页面内 `leptos_tiptap_island`,tree command 前端主调用已进入 `/api/tree/commands` + `tree.*` 元数据口径,Sidebar 的默认 tree shell 已切到 `rust_wasm_dom_shell_host`,并且 `iframe_srcdoc` 只在显式 legacy flag 下存在。 + +但不能把当前状态描述为“前端编辑器 / 树体验已经完全收口到 Rust 单一真源”。主要未完成点集中在三处:页面本地 aggregate reducer 仍承担临时真相与补偿选择,`pageSubtree` 在本地正文变更后会被置空而不是形成同一份可持续 projection,Sidebar 仍通过 initial / query / tree stream 三源 freshness 选择维持一致性。此外,部分页面设置仍明确是 `planned` / `downgrade`,属于设计清单中尚未完成的范围。 + +## 关键发现表格 + +| 编号 | 分类 | 严重度 | 发现 | 证据 | +| --- | --- | --- | --- | --- | +| F-01 | 未完成 | 中 | Page Aggregate 读链已 Rust-first,但客户端仍有本地 aggregate reducer 持有标题、正文、设置、子树快照等临时真相;设计中的“页面域单一真源”尚未闭环。 | `wolai-frontend/src/components/editor/page-aggregate-client-state.ts:7` 定义本地 `PageAggregateClientState`,包含 `serverPageTitle / persistedPageTitle / draftPageTitle / options / content / serverPageSubtreeSnapshot / contentRevision / conflictDetectionKey`;`wolai-frontend/src/components/editor/document-content.tsx:144` 使用 reducer 作为文档页核心状态。 | +| F-02 | 实现偏差 | 中 | `pageSubtree` 不是跟随本地正文和标题持续更新的 page projection;一旦本地正文对象与服务器快照不同,就直接返回 `null`,AI 面板和阅读结构面会失去这份 projection。 | `wolai-frontend/src/components/editor/page-aggregate-client-state.ts:163` 通过 `content === serverContentSnapshot` 判断;`wolai-frontend/src/components/editor/page-aggregate-client-state.ts:166` 只有未改动时返回 `serverPageSubtreeSnapshot`,否则 `:169` 返回 `null`;`wolai-frontend/src/components/editor/document-content.tsx:867` 将该选择结果作为 AI snapshot 的 `pageSubtree` 来源,`:1162` 也传给阅读视图。 | +| F-03 | 未完成 | 中 | Sidebar / Breadcrumb / 文档页头已共享 preferred snapshot,但 live cache 仍不是唯一来源;当前仍在 initial、query refetch、tree stream 之间做 freshness 选择。 | `wolai-frontend/src/components/app-layout-shell.tsx:20` 同时创建 `useSidebarData` 与 `useSidebarTreeStream`;`:22` 用 `usePreferredSidebarSnapshot` 选择;`wolai-frontend/src/components/sidebar/use-preferred-sidebar-snapshot.ts:29` 在 `query / tree_stream / initial` 间选择;`wolai-frontend/src/components/sidebar/sidebar.tsx:201` Sidebar 内部也消费同样选择结果。 | +| F-04 | 未完成 | 低 | 页面设置运行时语义已有代码级分类,但仍有正式 UI 中可见的 planned / downgrade 项;这与 `5-6` 清单中“页面设置未整体收口”的口径一致。 | `wolai-frontend/src/lib/documents/page-option-semantics.ts:60` 将 `protectEditing` 标记为 `planned`,`:84` 将 `showBlockRefCount` 标记为 `planned`;`wolai-frontend/src/components/editor/page-options-sidebar.tsx:416` 对 downgrade 项显示 `待接线`,`:71` 让 `showBlockRefCount` 成为不可交互占位。 | +| F-05 | 方向变化/文档滞后 | 低 | `5-5-1` 中仍写着 `showHeadingNumbers / embedDefaultBlockId` 只完成字段贯通,但当前代码已把它们纳入 island runtime payload;这里更像文档滞后,而不是实现偏差。 | `design/05-editor-mainline/done/5-5-1-page-aggregate-contract-v1.md` 第 2.3 节仍说明两项“不可描述成正式支持”;`wolai-frontend/src/lib/documents/page-option-semantics.ts:48` 与 `:88` 均标记为 `wired`;`:121` 的 `pickLeptosTiptapRuntimePageOptions` 会把 `showHeadingNumbers / embedDefaultBlockId` 传给 island,`wolai-frontend/src/components/editor/leptos-tiptap-island-editor-host.tsx:717` 运行时更新这些选项。 | +| F-06 | 风险 | 低 | Tree final DOM shell 默认路径已符合 `4-18`,但 legacy iframe host 仍可被环境变量显式打开;后续需要保持负向 smoke,防止默认路径回退。 | `wolai-frontend/src/components/sidebar/tree-shell-host.tsx:131` 默认 `rust_family` 且有 workspace 时使用 DOM host,`:133` 仅在 `NEXT_PUBLIC_TREE_SHELL_LEGACY_IFRAME_HOST=1` 时启用 legacy iframe;`wolai-frontend/src/components/sidebar/tree-shell-host.test.tsx:182` 覆盖默认不能进入 `iframe_srcdoc`,`:199` 覆盖显式 legacy flag。 | + +## 证据 + +### 已对齐部分 + +1. 文档页读取主链已进入 Rust Page Aggregate。 + - `wolai-frontend/src/app/(app)/documents/[id]/page.tsx:51` 调用 `loadPageAggregateFromNextHeaders`。 + - `wolai-frontend/src/lib/documents/page-aggregate-loader.ts:170` 请求 `/api/page-aggregate/:id`。 + - `wolai-frontend/src/lib/documents/page-aggregate-loader.ts:130` 校验 schema 必须是 `mnote.page_aggregate.v1`。 + - `wolai-frontend/src/lib/documents/page-aggregate-loader.ts:225` 的 `loadPageAggregate` 只返回 Rust snapshot,不再在运行时 fallback 到 TS builder。 + +2. 默认编辑器 host 已是页面内 `leptos_tiptap_island`。 + - `wolai-frontend/src/components/editor/editor-host-config.ts:1` 只保留 `EditorHostKind = "leptos_tiptap_island"`。 + - `wolai-frontend/src/components/editor/editor-host.tsx:7` 动态加载 `leptos-tiptap-island-editor-host`。 + - `wolai-frontend/src/components/editor/leptos-tiptap-island-editor-host.tsx:619` 直接调用 runtime module 的 `mount(container, ...)`,不是 iframe。 + +3. 页面写命令已经开始按 page command family 收口。 + - `wolai-frontend/src/lib/documents/page-command-contract.ts:15` 固定 `page.head.updateTitle / page.layout.updateOptions / page.body.save`。 + - `wolai-frontend/src/lib/documents/page-command-client.ts:72` 标题写入发送 `commandName: page.head.updateTitle`。 + - `wolai-frontend/src/lib/documents/page-command-client.ts:89` 页面设置写入发送 `commandName: page.layout.updateOptions`。 + - `wolai-frontend/src/app/api/documents/save/route.ts:35` 服务端 envelope 使用 `PAGE_COMMAND_NAMES.saveBody`。 + +4. tree command 前端调用主面已以 `tree.*` 为结果元数据口径。 + - `wolai-frontend/src/lib/documents/tree-command-client.ts:26` 定义 `tree.node.create / tree.node.rename / tree.subtree.move / tree.node.archive` 等 preferred command。 + - `wolai-frontend/src/lib/documents/tree-command-client.ts:185` 统一 POST 到 `/api/tree/commands`。 + - `wolai-frontend/src/app/api/tree/commands/route.ts:205` 由 `action` 分发 tree command,`:278` 创建命令使用 `tree.node.create`。 + +5. tree final DOM shell 默认路径已符合硬门禁。 + - `wolai-frontend/src/components/sidebar/tree-shell-host.tsx:139` 默认 implementation 为 `rust_wasm_dom_shell_host`。 + - `wolai-frontend/src/components/sidebar/tree-shell-surface.tsx:113` 旧 React page tree renderer 已显示为 removed fallback,不再作为正常 renderer。 + - `wolai-frontend/src/components/sidebar/tree-shell-host.test.tsx:189` 测试断言默认 implementation 是 `rust_wasm_dom_shell_host`,`:194` 断言没有 iframe host。 + +### 仍需收口部分 + +1. 客户端 `PageAggregateClientState` 仍是混合态。 + - 它把 server snapshot、persisted title、draft title、本地 content、server subtree snapshot、revision/conflict key 放在同一个前端 reducer 中。 + - 这符合当前过渡态,但不等于 Rust page aggregate 已成为页面域唯一运行时真相。 + +2. `pageSubtree` 与正文编辑没有同源更新。 + - 本地正文变更只会触发 `apply_local_content_snapshot`,不会同步生成新的 `pageSubtree`。 + - selector 在内容对象不同于 server snapshot 时返回 `null`,因此 `AI / read view / TOC` 只能等待后续持久化与重新拉取。 + +3. Sidebar live cache 仍有 freshness 选择层。 + - `AppLayoutShell` 和 `Sidebar` 都依赖 `usePreferredSidebarSnapshot`。 + - 当前算法没有基于 Rust stream cursor / projection version 做统一仲裁,而是通过 sync key 与 `treeStreamStatus` 在 `query` 与 `tree_stream` 之间选择。 + +4. 页面设置中仍有显式未完成项。 + - `protectEditing` 与 `showBlockRefCount` 的代码状态已经诚实标为 `planned / downgrade`。 + - 这避免了误导用户,但也说明 `Page Aggregate -> island runtime` 的设置语义还没有完全完成。 + +## 建议优先级 + +### P0 + +暂无需要立即阻断主链的 P0。默认 Page Aggregate 读链、默认 island host、默认 DOM tree shell 均未发现与最新主线相反的实现。 + +### P1 + +1. 收口 `pageSubtree` 与本地正文编辑的关系。 + - 至少明确它是“server projection only”还是“本地编辑也应生成临时 projection”。 + - 如果 AI 面板需要稳定结构上下文,不应在用户正常编辑后直接拿到 `null`。 + +2. 将 Sidebar 的三源 preferred snapshot 推进为统一 live cache。 + - 建议以 Rust stream cursor / projection version / query snapshot version 为仲裁字段,减少仅靠 sync key 的 freshness 判断。 + +### P2 + +1. 继续移除或强门禁 legacy tree iframe host。 + - 当前显式 env flag 符合设计,但应保留负向 smoke,避免后续默认路径误回退。 + +2. 同步修正文档滞后。 + - `5-5-1` 对 `showHeadingNumbers / embedDefaultBlockId` 的描述已经落后于当前代码,应在后续文档整理时更新。 + +3. 页面设置 planned 项保持降级展示,直到真正进入 island runtime 或被产品侧移除。 + +## 修改的文件 + +- `/mnt/Data1T/mnote/design/10-review/02-frontend-editor-tree-review.md` diff --git a/design/10-review/03-convex-realtime-storage-review.md b/design/10-review/03-convex-realtime-storage-review.md new file mode 100644 index 00000000..b7427b94 --- /dev/null +++ b/design/10-review/03-convex-realtime-storage-review.md @@ -0,0 +1,215 @@ +# Convex / Realtime / Storage 实现偏差审查 + +## 范围 + +本报告审查 Convex / storage bridge / realtime / Page Aggregate 数据底座与当前设计主线的一致性,重点对照以下方向: + +- Convex 保留为自托管 storage / realtime substrate,不作为树语义 owner。 +- Rust kernel / bridge-runtime / mnote-web 持有 tree-first graph、projection、command、Page Aggregate 的语义主导权。 +- `/api/page-aggregate/:id` 作为文档页 Rust-first 读取主链。 +- `/api/tree/events` 作为 Rust Web tree realtime snapshot / delta / resync 主链。 +- 前端只消费稳定 projection、Page Aggregate 与 tree stream,不重新持有第二套对象真相。 + +重点读取范围: + +- `ARCHITECTURE.md` +- `design/01-05-current-priority-overview.md` +- `design/02-convex-rust-long-term-architecture/process/2-tree-first-graph-convex-rust-long-term-architecture-v1.md` +- `design/03-rust-web/process/3-3-rust-web-tree-realtime-event-stream-v1.md` +- `design/05-editor-mainline/process/5-5-page-aggregate-single-truth-alignment-v1.md` +- `design/05-editor-mainline/process/5-6-page-aggregate-alignment-checklist-v1.md` +- `design/05-editor-mainline/done/5-5-1-page-aggregate-contract-v1.md` +- `infra/convex/README.md` +- `wolai-frontend/convex/` +- `rust/crates/storage-convex-bridge/` +- `rust/crates/mnote-web/src/transport/convex.rs` +- `rust/crates/mnote-web/src/routes/documents.rs` +- `rust/crates/mnote-web/src/routes/tree.rs` +- `rust/crates/mnote-web/src/routes/sse.rs` +- `rust/crates/mnote-web/src/routes/stream_support.rs` +- `wolai-frontend/src/lib/documents/` +- `wolai-frontend/src/lib/tree-stream/` + +## 结论 + +整体方向与设计主线基本一致:Convex 没有被拆掉,仍承担本地自托管存储、文件和实时底座;Rust Web 已注册 `/api/page-aggregate/:document_id` 与 `/api/tree/events`;前端 tree stream 已直接使用 `EventSource("/api/tree/events")`;Next 的 `/api/documents/page` 与 `/api/mnote-web/stream` 已明确作为 410 compat 边界退场。 + +但当前实现仍是明显过渡态,主要问题集中在三处: + +1. Page Aggregate 读链虽然是 Rust endpoint,但实际数据仍由 `documents:getMeta` + `documents:getContent` 分别取回后在 bridge-runtime 中拼 projection,`source` 标识存在“看起来比真实实现更 canonical”的风险。 +2. Rust Web 的 `/api/documents/title`、`/api/documents/options` 与 Next route 的 page write adapter 在 bridge artifact 记录上不一致;tree stream 依赖 bridgeLogs 时,Rust page write 路径可能漏掉 command/domain event。 +3. `/api/tree/events` 是正式 SSE 入口,但当前 change detection 依赖周期性查询 `bridgeLogs:listWorkspaceOverview`,且 Convex query 内部会按 workspace collect 全量 command/domain rows 后内存过滤排序,实时性和规模风险较高。 + +## 关键发现表格 + +| 编号 | 分类 | 严重度 | 发现 | 证据 | +| --- | --- | --- | --- | --- | +| F1 | 实现偏差 | 高 | Rust Page Aggregate endpoint 对外是 `mnote.page_aggregate.v1`,但构建过程仍先分别读取 meta/content,再在 bridge-runtime 中拼 projection;`source=KernelProjection` 容易掩盖底层仍是兼容 join。 | `rust/crates/mnote-web/src/routes/web_shell.rs:2282`、`:2291`、`:2301`;`rust/crates/bridge-runtime/src/lib.rs:8246`、`:8252`、`:5291`、`:5303`、`:5386` | +| F2 | 风险 | 高 | Rust Web 的 title/options 写路由只执行 Convex mutation,不记录 bridge command/domain artifacts;而 tree stream 以 bridgeLogs 为事件来源,主路径 page 写入可能不进入实时流。 | `rust/crates/mnote-web/src/routes/documents.rs:714`、`:802`;`rust/crates/mnote-web/src/routes/command_support.rs:65`;对比 `rust/crates/mnote-web/src/routes/tree.rs:6529` 与 `wolai-frontend/src/lib/documents/page-write-command-adapter.ts:63` | +| F3 | 风险 | 高 | tree realtime 当前是 SSE transport,但后端通过 `sleep(poll_ms)` 周期性轮询 Convex bridgeLogs,而不是直接利用 Convex subscription/push;默认 2s,实时性和负载都需继续验证。 | `rust/crates/mnote-web/src/routes/sse.rs:25`、`:26`、`:51`、`:58`、`:60`;`rust/crates/mnote-web/src/routes/stream_support.rs:610` | +| F4 | 风险 | 中高 | `bridgeLogs:listWorkspaceOverview` 会按 workspace collect 全量 `command_logs` 与 `domain_events` 后在内存中过滤、排序、分页;SSE 轮询叠加后,历史日志增长会放大 Convex 读压力。 | `wolai-frontend/convex/bridgeLogs.ts:283`、`:287`、`:292`、`:301`、`:305` | +| F5 | 方向变化/文档滞后 | 中 | `storage-convex-bridge` 把 `page.aggregate.get` 映射到 `documents:getPageAggregate`,但 Convex `documents.ts` 只发现 `getMeta` / `getContent`,未发现 `getPageAggregate` export;当前真实 Page Aggregate 路线已绕到 Rust adapter。 | `rust/crates/storage-convex-bridge/src/mapping.rs:101`;`wolai-frontend/convex/documents.ts:684`、`:803`;全仓 `rg getPageAggregate` 未发现 Convex 实现 | +| F6 | 已完成/方向一致 | 中 | Next compat 读链和旧 stream alias 已显式退场,前端 tree stream 直接构造 `/api/tree/events`,符合当前主线口径。 | `wolai-frontend/src/app/api/documents/page/route.ts:17`;`wolai-frontend/src/app/api/mnote-web/stream/route.ts:9`;`wolai-frontend/src/lib/tree-stream/protocol.ts:66`、`:72` | +| F7 | 未完成 | 中 | Page Aggregate TS builder 已不在 runtime 主链中被引用,但文件仍保留;当前定位应继续写成 fallback / adapter / 测试材料,不能作为运行时主路径描述。 | `wolai-frontend/src/lib/documents/page-aggregate-builder.ts:51`;全仓非测试引用仅剩定义,runtime loader 只调用 Rust snapshot:`wolai-frontend/src/lib/documents/page-aggregate-loader.ts:225` | + +## 证据 + +### 1. Page Aggregate 读链已收口到 Rust endpoint,但仍由 meta/content join 生成 + +`mnote-web` 注册了正式 endpoint: + +- `rust/crates/mnote-web/src/routes/mod.rs:53` 到 `:56` 注册 `/api/page-aggregate/{document_id}`。 +- `rust/crates/mnote-web/src/routes/web_shell.rs:2227` 到 `:2252` 返回 `schema: "mnote.page_aggregate.v1"` 和 `result: aggregate`。 + +但实际构建流程仍是: + +- `rust/crates/mnote-web/src/routes/web_shell.rs:2282` 到 `:2290` 读取 `load_document_meta_result`。 +- `rust/crates/mnote-web/src/routes/web_shell.rs:2291` 到 `:2299` 读取 `load_document_content_result`。 +- `rust/crates/mnote-web/src/routes/web_shell.rs:2301` 到 `:2315` 把 `meta + content` 作为数据传给 `page.aggregate.get`。 +- `rust/crates/bridge-runtime/src/lib.rs:5291` 到 `:5312` 的 `build_page_aggregate_projection_result` 明确从 `data.meta` 和 `data.content` 中拆字段。 + +这说明“Rust-first 读取主链”成立,但“Page Aggregate 已经由 kernel 原生投影独立产出”仍未成立。该点与 `5-5/5-6` 的过渡态判断一致,但需要在后续文档和汇报中保持精确。 + +需进一步验证:`PageAggregateSource::KernelProjection` 是否应在这种 `meta/content join` 场景下继续使用,还是应保留 `CompatMetaContentJoin` 以避免 provenance 误导。 + +### 2. Page write side effects 在 Rust route 与 Next adapter 之间不一致 + +Next route 侧: + +- `wolai-frontend/src/app/api/documents/title/route.ts:58` 调用 `executePageWriteBridgeCommand`。 +- `wolai-frontend/src/app/api/documents/options/route.ts:47` 调用 `executePageWriteBridgeCommand`。 +- `wolai-frontend/src/app/api/documents/save/route.ts:43` 调用 `executePageWriteBridgeCommand`。 +- `wolai-frontend/src/lib/documents/page-write-command-adapter.ts:63` 到 `:69` 成功后调用 `recordRustBridgeCommandArtifacts`。 + +Rust route 侧: + +- `rust/crates/mnote-web/src/routes/documents.rs:579` 的正文保存使用 `execute_runtime_command_via_convex_with_artifacts`。 +- `rust/crates/mnote-web/src/routes/documents.rs:714` 的标题更新使用 `execute_runtime_command_via_convex`。 +- `rust/crates/mnote-web/src/routes/documents.rs:802` 的页面设置更新使用 `execute_runtime_command_via_convex`。 +- `rust/crates/mnote-web/src/routes/command_support.rs:65` 到 `:73` 的 `execute_runtime_command_via_convex` 只执行 Convex command plan,不持久化 artifacts。 +- `rust/crates/mnote-web/src/routes/command_support.rs:75` 到 `:93` 的 artifact 版本才会调用 `execute_convex_command_plan_with_artifacts`。 + +tree command route 是一致的: + +- `rust/crates/mnote-web/src/routes/tree.rs:6529` 使用 `execute_runtime_command_via_convex_with_artifacts`。 + +风险是:如果当前 3000 主入口走 Rust Web `/api/documents/title` 或 `/api/documents/options`,这些 page 写入不会进入 `command_logs/domain_events`,而 `/api/tree/events` 正是通过 bridgeLogs 检测变化。标题类写入尤其可能影响 sidebar/breadcrumb/page tree 的实时一致性。 + +需进一步验证:当前文档页标题编辑在 3000 主壳中到底走 `/api/documents/title` 还是 `/api/tree/commands`;如果走前者,应补 Rust route artifact 记录或统一到 tree/page command route。 + +### 3. Tree realtime 是正式 SSE 入口,但实现仍是 polling-backed stream + +正式入口成立: + +- `rust/crates/mnote-web/src/routes/mod.rs:130` 注册 `/api/tree/events`。 +- `rust/crates/mnote-web/src/routes/sse.rs:127` 到 `:146` 给 tree events 加 `x-mnote-tree-stream-owner: rust-web`。 +- `wolai-frontend/src/lib/tree-stream/protocol.ts:66` 到 `:77` 构造 `/api/tree/events` URL。 +- `wolai-frontend/src/lib/tree-stream/use-sidebar-tree-stream.ts:136` 到 `:143` 用 `EventSource` 监听 `snapshot/delta/resync`。 + +但服务端 change detection 是轮询: + +- `rust/crates/mnote-web/src/routes/sse.rs:25` 到 `:26` 读取 `max_polls` 和 `poll_ms`,默认 `2000ms`,最低 `250ms`。 +- `rust/crates/mnote-web/src/routes/sse.rs:51` 到 `:58` 循环中 `sleep(Duration::from_millis(poll_ms))`。 +- `rust/crates/mnote-web/src/routes/sse.rs:60` 到 `:67` 每轮调用 `load_stream_overview` 再 `resolve_stream_change`。 +- `rust/crates/mnote-web/src/routes/stream_support.rs:610` 到 `:625` 的 `load_stream_overview` 通过 `bridge.workspace.overview` 查询 Convex。 + +这与“Rust Web 提供正式实时 transport”一致,但还不是“基于 Convex realtime subscription 的 push stream”。短期可接受为过渡实现,长期如果继续承载主链,需要明确性能和延迟边界。 + +### 4. bridgeLogs overview 查询存在规模风险 + +`wolai-frontend/convex/bridgeLogs.ts` 的 `listWorkspaceOverview`: + +- `:283` 到 `:286` 按 workspace 查询并 `collect()` 所有 `command_logs`。 +- `:287` 到 `:290` 按 workspace 查询并 `collect()` 所有 `domain_events`。 +- `:292` 到 `:301` 在内存中过滤、排序、切片 command logs。 +- `:303` 到 `:312` 再用 commandId 集合过滤 domain events。 + +该实现作为调试/小数据过渡可以工作,但被 `/api/tree/events` 默认每 2 秒调用时,日志增长后会造成: + +- Convex query 读放大。 +- SSE 连接数量增加时成倍放大。 +- cursor 语义依赖内存排序,历史数据规模变大后容易出现延迟或超时。 + +建议后续至少增加按 `workspace_id + created_at/id` 的索引分页,避免每次 stream poll 全量扫描。 + +### 5. storage-convex-bridge 中存在疑似过时的 `page.aggregate.get` 映射 + +`rust/crates/storage-convex-bridge/src/mapping.rs:101`: + +```text +"page.aggregate.get" => "documents:getPageAggregate" +``` + +但当前 `wolai-frontend/convex/documents.ts` 中只发现: + +- `getMeta`:`wolai-frontend/convex/documents.ts:684` +- `getContent`:`wolai-frontend/convex/documents.ts:803` + +全仓搜索未发现 Convex `documents:getPageAggregate` 实现。当前真实 Page Aggregate 读取是 Rust Web 先读 meta/content,再由 bridge-runtime 生成 projection。因此该映射要么是未来目标,要么已经滞后;如果有代码路径直接通过 storage-convex-bridge 执行 `page.aggregate.get`,会存在运行时函数不存在风险。 + +需进一步验证:`storage-convex-bridge` 是否仍有生产路径直接执行 `page.aggregate.get -> documents:getPageAggregate`;如果没有,应把映射标注为 future/stale,或改为当前真实读链。 + +### 6. Convex substrate 定位总体一致 + +正向证据: + +- `infra/convex/README.md` 明确自托管 Convex backend/dashboard、HTTP Actions 和文件存储。 +- `wolai-frontend/convex/schema.ts:35` 到 `:91` 的 `documents` 表继续承接页面结构、正文、页面设置、统计字段。 +- `wolai-frontend/convex/schema.ts:121` 到 `:162` 的 `media_assets` 与 `_storage` 字段保留文件底座。 +- `rust/crates/storage-convex-bridge/README.md:5` 到 `:13` 明确 bridge 只做协议到 Convex 读写请求映射,不复制主事实层、不维护第二数据库。 + +这与“Convex 不拆,Rust 收口语义”的设计一致。 + +## 建议优先级 + +### P0:修正 Rust page write route 的 artifact 一致性 + +目标:让当前 3000 主入口的 `/api/documents/title`、`/api/documents/options` 至少在 side effect 上与 Next `page-write-command-adapter` 保持一致。 + +建议: + +- 将 `rust/crates/mnote-web/src/routes/documents.rs` 中 title/options 的 `execute_runtime_command_via_convex` 改为 artifact 版本,或统一复用 tree/page command route。 +- 对标题更新补最小回归:更新标题后 `bridgeLogs:listWorkspaceOverview` 能看到对应 command/domain event,`/api/tree/events` 能输出 delta 或 resync。 +- 对 artifact 写失败的策略重新定级:当前 `rust/crates/mnote-web/src/transport/convex.rs:759` 到 `:770` 是主 mutation 成功、artifact 失败仍返回成功;对 tree-relevant command 至少应打可观测错误并触发保守 resync。 + +### P1:收口 Page Aggregate provenance + +目标:避免把 `meta/content join` 误标为已完成的 kernel-native projection。 + +建议: + +- 明确 `PageAggregateSource::KernelProjection` 与 `CompatMetaContentJoin` 的使用边界。 +- 如果 `build_page_aggregate_snapshot` 仍通过 `load_document_meta_result + load_document_content_result` 构建,应在返回 source 或 header 中反映真实来源。 +- 如果目标是 kernel-native projection,则补正式 kernel/query 数据路径,避免 route 层长期手工拼装。 + +### P1:优化 tree stream 的 Convex 查询模型 + +目标:让 `/api/tree/events` 可以长期承载主链,而不是随着日志增长退化。 + +建议: + +- 为 `command_logs`、`domain_events` 增加按 `workspace_id + created_at/id` 的查询索引和 cursor 查询。 +- `listWorkspaceOverview` 不再 `collect()` 全量 workspace 日志后内存分页。 +- 明确 polling-backed SSE 是过渡实现,还是长期 realtime transport;若长期使用,应补连接数、日志量、延迟上限的 smoke/bench。 + +### P2:清理或标注 stale mapping + +目标:降低后续 worker 误用 `page.aggregate.get -> documents:getPageAggregate` 的风险。 + +建议: + +- 若 `documents:getPageAggregate` 不计划实现,移除或注释 `storage-convex-bridge` 中的映射。 +- 若计划实现,补 Convex query 与最小测试,并让 mnote-web Page Aggregate route 直接消费它或说明为什么不消费。 + +### P2:保留 Next compat 退场边界,但避免双实现继续发散 + +目标:Next route 继续作为 legacy/adapter 参考时,不与 Rust Web 主入口形成不同 side effects。 + +建议: + +- 对 `/api/documents/title/options/save` 明确 owner:Rust Web 主路径与 Next legacy 路径只能有一份 canonical side-effect 规则。 +- 对 `wolai-frontend/src/lib/documents/page-aggregate-builder.ts` 保留测试/adapter 标签,避免被重新接回 runtime 主链。 + +## 修改的文件路径 + +- `design/10-review/03-convex-realtime-storage-review.md` diff --git a/design/10-review/04-secondary-domains-and-design-governance-review.md b/design/10-review/04-secondary-domains-and-design-governance-review.md new file mode 100644 index 00000000..f80cb2a7 --- /dev/null +++ b/design/10-review/04-secondary-domains-and-design-governance-review.md @@ -0,0 +1,64 @@ +# 次级域与设计治理实现偏差审查 + +## 范围 + +本次只审查 Mindmap、AI、OnlyOffice、Wolai-aline、SiYuan reference,以及 `design/process/done` 治理口径与当前实现方向的一致性。重点读取了 `ARCHITECTURE.md`、`design/README.md`、`design/06-mindmap/process/*`、`design/07-ai/process/*`、`design/08-wolai-aline-test-flow/process/wolai-aline-test-flow-v1.md`、`design/09-siyuan-reference/process/9-siyuan-reference-boundary-and-adoption-v1.md`、`design/90-reference/*`,并对照了 Mindmap、AI route/lib、OnlyOffice route/adapter 与相关 Convex/Rust runtime 代码。 + +## 结论 + +总体方向与当前主线基本一致:Mindmap 已明确降为 `tree-first graph kernel` 的视图/编辑挂件,AI 主执行面正在向 `mnote-cli` 收口,OnlyOffice 仍是独立页面型编辑器边界,SiYuan 参考稿没有发现被提升为上位架构来源的证据。 + +主要风险集中在三处:OnlyOffice 在 `mnote-web` 主入口里的 callback/forcesave 仍是 no-op,而 legacy Next route 已有真实写回链;Mindmap 的导出 action 在 schema/action map 中暴露,但 bridge 安全命令集不支持;Mindmap AI 补完 route 当前硬返回 501,和 Rust tool 已登记的能力面不闭合。 + +## 关键发现表格 + +| ID | 分类 | 级别 | 发现 | 简短证据 | 建议 | +| --- | --- | --- | --- | --- | --- | +| F-01 | 实现偏差 / 风险 | P1 | OnlyOffice `mnote-web` 主入口已挂载 callback/forcesave,但当前实现不写回,只返回成功或 noop,可能让 3000 主链下的 OnlyOffice 保存丢失。 | `rust/crates/mnote-web/src/routes/mod.rs:78-84` 挂载 `/api/onlyoffice/callback` 与 `/api/onlyoffice/forcesave`;`rust/crates/mnote-web/src/routes/onlyoffice.rs:717-759` callback 只记录日志并返回 `{error:0}`,forcesave 返回 `mnote-web-rust-noop`;而 `wolai-frontend/src/app/api/onlyoffice/callback/route.ts:93-192` 有真实 Convex 写回链。 | 优先把 Rust route 接到 `onlyoffice_prepare_callback` / media asset writeback,或显式把该路由代理到 legacy Next,避免主入口 shadow 掉真实写回。 | +| F-02 | 未完成 | P2 | Mindmap `export` 动作暴露给 UI action map,但 simple-mind-map 安全执行器不允许 `EXPORT`,默认路径可能显示能力却执行失败。 | `wolai-frontend/src/lib/mindmap/mindmap-action-map.ts:65` 将 `export` 映射为 runtimeCommand `EXPORT`;`wolai-frontend/src/lib/mindmap/simple-mind-map-bridge.ts:119-129` 的 `SIMPLE_MIND_MAP_SAFE_COMMANDS` 不包含 `EXPORT`。 | 要么把 `EXPORT` 加入安全命令并补 smoke,要么在 UI state 中继续禁用导出并标注为延期。 | +| F-03 | 未完成 / 方向变化 | P2 | Mindmap AI 补完 route 当前直接 501,后续大段旧 Supabase/在线 AI 实现被注释;但 Rust tool registry 已登记 `mindmap_expand_node`,形成“工具存在、产品入口不可用”的断层。 | `wolai-frontend/src/app/api/mindmap-ai/expand-node/route.ts:90-97` 校验后直接返回 `501`;同文件后续注释块仍保留旧 Supabase/AI 逻辑;`rust/crates/core-protocol/src/tool.rs:231-240` 与 `rust/crates/bridge-runtime/src/lib.rs:3803-3812` 已有 `mindmap_expand_node`。 | 若该能力仍在 Phase 6/7 范围内,应按 CLI/Rust bridge 路线重接;若延期,应把 route 标成 retired/debug,避免前端或测试误以为可用。 | +| F-04 | 方向变化 / 文档滞后 | P2 | AI 主 Web route 已收口到 `mnote-cli` host,但 `wolai-backend` 仍暴露 `openai_agents_python` 文档 agent route 与旧工具面;是否仍部署为可访问入口需进一步验证。 | `wolai-frontend/src/app/api/ai-agent/run/route.ts:36-57` 明确拒绝 codex/hermes/claudecode 并进入 `startMnoteCliAgentHostRun`;`wolai-backend/app/routers/ai_agent.py:34-57` 仍暴露 `/ai-agent/health`、`/ai-agent/document/run`,health 返回 `bridge: openai_agents_python`;`wolai-backend/app/services/ai_document_agent.py:1174-1470` 仍指令 agent 使用 `doc_insert_blocks`、`doc_replace_range`、`slash_run`。 | 在设计或代码注释中明确该后端只作为可插拔外置 agent/对照链;若不再使用,补退场计划和访问边界,尤其确认 `mnote_ai_orchestrator_api_key` 未配置时的开放行为。 | +| F-05 | 文档治理风险 | P3 | `design/90-reference` 符合“参考资料”目录定位,但内容仍带有问答式残留,容易被后续 worker 误用为正式设计结论。 | `design/README.md` 明确 `90-reference/` 不参与 process/done 状态判断;`design/90-reference/90-1-filetree.md` 末尾保留“需要我给你...”类对话尾巴;`design/90-reference/90-2-yemianshu.md` 同样保留示例请求口吻。 | 低优先级清理为中性参考笔记,并在引用时强制以 `ARCHITECTURE.md` 和主线设计为上位依据。 | + +## 证据 + +### Mindmap + +- 设计口径清晰:`design/06-mindmap/process/6-mindmap-kernel-phase6-projection-editor-v1.md` 明确 Phase 6 主线是 `Rust kernel truth -> mindmap.simple_mind_map_scene.v1 -> leptos-mindmap editor island -> simple-mind-map runtime -> command bridge`,并禁止把 runtime data 当唯一事实源。 +- 实现已对齐主线壳:`rust/crates/mnote-web/src/routes/mindmap_shell.rs:105-123` 输出 `mnote.mindmap_shell.v1`、`mindmap.simple_mind_map_scene.get` 与 `mindmap.command.apply`;`rust/crates/mnote-web/src/ssr/pages/mindmap.rs:50-56` 提供 standalone island 挂载点。 +- 旧 React 块已自我标注为 legacy/compat/reference:`wolai-frontend/src/components/editor/blocks/MindmapBlock.tsx:3-5` 明确 3000 文档页默认主链是 `leptos-tiptap NodeView + leptos-mindmap adapter`。 +- 仍有 compat 数据层:`wolai-frontend/convex/schema.ts:164-184` 的 `mindmaps.data: v.any()` 仍承载导图数据;这与当前过渡态兼容,但不应被描述为长期 canonical truth。 + +### AI + +- CLI-first 入口基本对齐:`wolai-frontend/src/app/api/ai-agent/run/route.ts:36-57` 将默认执行入口限定到 `mnote-cli host`,拒绝旧 provider。 +- 结构化 artifact 设计仍有未完成项:`design/07-ai/process/7-phase7-ai-kernel-projection-plan-v4.md` 中“后续权限收口”仍未勾选,说明 AI 写链权限模型尚未完全闭环。 +- 旧后端 agent 仍存在:`wolai-backend/app/routers/ai_agent.py:47-57` 仍提供 streaming run;这可作为外置 agent,但需要避免被误认为长期默认主编排。 + +### OnlyOffice + +- 正确边界已有:`rust/crates/adapter-onlyoffice/src/lib.rs:124-126` 明确 adapter 只定义资产定位、会话、签名、代理、callback/forcesave 边界,不把 OnlyOffice 变成主事实层。 +- `mnote-web` 页面是独立编辑页:`rust/crates/mnote-web/src/routes/onlyoffice.rs:325-630` 直接渲染 `/onlyoffice`,通过 DocsAPI 创建编辑器,未嵌入正文主编辑画布。 +- 关键风险是写回链 owner 分裂:Rust 主入口 no-op 与 legacy Next 真写回并存,见 F-01。 + +### Wolai-aline + +- 流程文档严格要求“Wolai 基线 -> RED smoke -> 小范围实现 -> 本地验证 -> subagent 复测 -> 主线程截图复核”:`design/08-wolai-aline-test-flow/process/wolai-aline-test-flow-v1.md`。 +- 本次不是具体 Wolai 对标实现任务,未执行浏览器对标;未发现该流程被错误提升为产品架构来源。 + +### SiYuan Reference + +- `design/09-siyuan-reference/process/9-siyuan-reference-boundary-and-adoption-v1.md` 的边界与当前主线一致:思源只作为产品能力与交互参考,不替代 `tree-first graph kernel`、Rust kernel、Page Aggregate、tree command 与 tree realtime。 +- 当前只读检索未发现将 SiYuan `.sy`、SQL API 或前端 runtime 直接提升为 mnote 长期事实源的实现证据;若后续新增属性视图/数据库视图,应继续先做对象域评估。 + +## 建议优先级 + +1. P1:补齐或明确代理 OnlyOffice Rust callback/forcesave 写回链,避免主入口下保存成功但内容未持久化。 +2. P2:收口 Mindmap action 可用性,先修 `export` 映射与安全命令不一致,再继续扩展 UI 能力。 +3. P2:处理 Mindmap AI route:要么按 Rust bridge/CLI-first 重接 `mindmap_expand_node`,要么显式退役该 Next route。 +4. P2:明确 `wolai-backend` AI agent 的外置/对照定位与访问边界,避免与 `mnote-cli` 唯一执行面口径冲突。 +5. P3:清理 `design/90-reference` 的问答残留,并在引用规范里再次强调它不是 process/done 设计稿。 + +## 本次修改文件 + +- `/mnt/Data1T/mnote/design/10-review/04-secondary-domains-and-design-governance-review.md` diff --git a/design/10-review/05-tree.md b/design/10-review/05-tree.md new file mode 100644 index 00000000..6f45fd33 --- /dev/null +++ b/design/10-review/05-tree.md @@ -0,0 +1,152 @@ +结论 + 我基本同意你的方向,但要把“文件树为根源”说得更精确:不应让“文件树 UI 组件”成为真源,而应让 Rust kernel 中的 workspace resource tree / file tree projection 背后 + 的资源层级 成为页面、附件、mindmap、OnlyOffice 等对象的组织根源。页面树则是从这棵资源/对象树派生出的导航投影,类似快捷方式、收藏视图或文档视图。 + + 对当前 bug 来说,最核心的规则应固定为: + + 1. index.md 只代表页面正文,即 Page Aggregate body。 + 2. mindmap 不是主编辑区正文替身,而是页面内某个 block 关联的 object / asset editor。 + 3. 文件树点击 mindmap 应打开 mindmap object editor,不能被 index.md 吞掉,也不能用临时 mindmap-only bootstrap 覆盖真实页面正文。 + 4. 页面树不应再持有独立结构真相,只显示“文档导航关系”;文件树显示“资源组织关系”。 + + 主编辑区与插件 + 主编辑区应该是一个工作区 tab host,而不是只等于文档正文编辑器。index.md 是其中一种 tab,mindmap、OnlyOffice、附件预览、代码附件都是其他 object tab/model。 + + Siyuan 这里值得借鉴:doc 和 asset 是不同 model/tab,asset 打开不伪装成 doc 正文;插件、widgets、assets、.sy 文档也在存储层分开。mnote 也应采用类似原则:插件/附 + 件/mindmap 可以嵌入页面,但它们的持久化真源不能变成页面正文本身,只能通过 block-asset relation 被 Page Aggregate 引用。 + + 文件树与页面树 + 我建议改成三层表述: + + - Resource Tree:长期 canonical 对象组织树,Rust kernel 持有语义,Convex 只是底层存储。 + - File Tree:Resource Tree 的主组织投影,展示页面文件夹、index.md、附件、mindmap、OnlyOffice、代码附件等。 + - Page Tree:面向阅读/导航的快捷投影,只显示页面关系,不拥有排序、父子、附件归属的最终真相。 + + 这样你的“文件树为根源”可以落地,但不会和现有 tree-first graph kernel 冲突。更准确地说:文件树背后的 resource hierarchy 是根源,页面树是它的页面导航视图。 + + 建议路线 + 短期先修当前 bug:保留 /mindmap/{doc}/{asset} 作为 object editor,但彻底隔离草稿 key、保存 command 和 Page Aggregate body,smoke 必须真实网页验证“点击 mindmap、 + 编辑长中文、保存、切回 index.md、再打开 mindmap 内容仍在”。 + + 中期做主编辑区 asset tab:index.md | mindmap.json | xxx.docx,每个 tab 有自己的 object identity 和保存命令。 + + 长期补 resource projection / block-asset relation:文件树 row、页面内 mindmap block、mindmap projection 必须来自同一关系索引,而不是前端临时按路由拼。 + + + + 推荐路线 + 我建议采用“分阶段收口 Resource Tree”的方案,不做一次性大重构。 + + 可选方案有三种: + + - 只修 mindmap bug:最快,但会继续留下页面树/文件树真源分裂。 + - 分阶段建立 Resource Tree -> File Tree/Page Tree projection:最稳,能解决当前 bug,也能承接附件、OnlyOffice、插件对象。 + - 全量重写 tree/page/resource 模型:理论干净,但当前工作区和主链都很活跃,风险太高。 + + 我推荐第二种。 + + 阶段 0:冻结合同 + 先把 design/10-review/05-tree.md 升级为正式设计合同,建议后续移动或补一份到: + + - design/04-tree-domain/process/4-24-resource-tree-filetree-pagetree-source-contract-v1.md + - 或 design/05-editor-mainline/process/5-11-main-editor-object-tab-resource-tree-alignment-v1.md + + 合同里固定四句话: + + - Resource Tree 是组织真源。 + - File Tree 是资源组织主投影。 + - Page Tree 是页面导航投影/快捷视图。 + - index.md、mindmap、OnlyOffice、附件是不同 object model,不能互相伪装。 + + 阶段 1:先关闭当前 mindmap bug + 目标:文件树 mindmap 仍可编辑保存,但不污染 index.md。 + + 重点文件: + + - rust/crates/mnote-web/src/ssr/pages/layout.rs + - rust/crates/mnote-web/src/routes/mindmap_shell.rs + - rust/spikes/leptos-tiptap-spike/src/lib.rs + - scripts/task169-mindmap-realtime-smoke.js + + 验收必须是真实浏览器链路: + + 1. 从文件树点击 mindmap asset。 + 2. 进入明确的 mindmap object editor。 + 3. 输入长中文并保存。 + 4. 切回同页 index.md,正文仍是 Page Aggregate body。 + 5. 再打开 mindmap,刚才内容仍在。 + 6. 确认没有用真实 documentId 写 standalone 草稿 key。 + + 阶段 2:补 Resource Projection 协议 + 在 Rust 协议层明确资源节点和 block-asset 关系。 + + 建议新增或扩展: + + - ResourceNode + - ResourceKind: page | index | mindmap | attachment | onlyoffice | code + - ObjectIdentity: { objectKind, documentId, blockId?, assetId? } + - BlockAssetRelation: { documentId, blockId, assetId, assetKind } + + 落点优先看: + + - rust/crates/core-protocol/ + - rust/crates/bridge-runtime/ + - rust/crates/mnote-web/src/tree_shell/ + + 这个阶段不要求立刻迁移所有数据,只要协议和 projection 能表达清楚。 + + 阶段 3:让 File Tree 从 Resource Tree 派生 + 当前 file tree 已有 resourceMeta、assetKind、file_tree projection 基础。下一步是收口为: + + - 页面节点下面固定有 index.md + - mindmap/附件/OnlyOffice 都是同一 Resource Tree 下的 child resource + - 文件树 row 不再临时从多份前端数据拼出第二真相 + + 同时保留 tree.asset.open,但它必须只表达 object open intent,不直接决定“把谁当正文”。 + + 阶段 4:Page Tree 降级为导航投影 + Page Tree 不再拥有资源归属、附件归属、mindmap 归属。它只显示页面导航关系: + + - 页面标题 + - 页面层级 + - 快捷入口/收藏/最近打开这类导航语义 + + 如果页面树需要显示某个资源状态,也只读 Resource Projection,不自己维护。 + + 阶段 5:主编辑区变成 Object Tab Host + 这是中期关键体验: + + - index.md tab:加载 Page Aggregate body。 + - mindmap.json tab:加载 mindmap projection/command。 + - xxx.docx tab:打开 OnlyOffice object editor。 + - attachment tab:预览/代码编辑/外部打开。 + + 这样 mindmap 不会被 index.md 吞掉,也不会伪装成正文。 + + 阶段 6:命令面统一 + 后续命令应逐步收口到: + + - tree.asset.attach + - tree.asset.detach + - tree.resource.rename + - tree.resource.move + - page.body.save + - mindmap.command.apply + + 关键规则:改资源关系走 tree/resource command,改页面正文走 page command,改导图内容走 mindmap command。 + + + 落地入口 + + 以上判断已落实到两个主线 done checklist: + + - /mnt/Data1T/mnote/design/04-tree-domain/done/4-24-resource-tree-filetree-pagetree-source-contract-checklist-v1.md + 用于冻结 Resource Tree / File Tree / Page Tree 的真源合同和 projection / command 边界。 + - /mnt/Data1T/mnote/design/05-editor-mainline/done/5-12-main-editor-object-tab-resource-alignment-checklist-v1.md + 用于落实主编辑区 Object Tab、mindmap object editor、草稿隔离和真实浏览器 smoke 验收。 + + 执行顺序固定为: + + 1. 先完成 4-24:协议、projection、command 边界必须能表达 `index.md`、mindmap、OnlyOffice、附件、代码附件的不同 object identity,并确认 Page Tree 只是页面导航投影。 + 2. 再完成 5-12:主编辑区只消费 4-24 输出的 object identity / resourceMeta / open intent,先关闭 mindmap 污染 `index.md` 的 P0 bug,再推进 Object Tab Host。 + 3. 验收以真实浏览器 smoke 为准,尤其是 `scripts/task169-mindmap-realtime-smoke.js` 覆盖“打开 mindmap、长中文编辑、保存、切页、回 `index.md`、再开 mindmap”的链路。 diff --git a/design/10-review/README.md b/design/10-review/README.md new file mode 100644 index 00000000..da4b3e55 --- /dev/null +++ b/design/10-review/README.md @@ -0,0 +1,44 @@ +# 10-review 审查总览 + +本目录汇总当前设计与实现的偏差审查结果。四份分域报告分别覆盖 Rust kernel/web、前端编辑器与树体验、Convex/realtime/storage、次级域与设计治理。 + +## 结论 + +当前主线方向总体没有跑偏,但实现仍停留在“主链已切、收口未完”的状态。最需要继续收口的是: + +1. `Page Aggregate` 的单一真源边界 +2. `tree realtime` 的统一 live cache 与查询模型 +3. `documents.*` / `tree.*` / `page.*` 的 side effect 一致性 +4. legacy / compat / fallback 的显式退场边界 + +## 优先级摘要 + +### P0 + +- Rust page write 路由与 artifact 一致性 +- 搜索 / workspace shell / fallback 数据不要再伪装成真实主链 + +### P1 + +- `pageSubtree` 与正文编辑的关系需要明确 +- Sidebar 的 `initial / query / tree_stream` 三源选择要继续向统一 live cache 收口 +- `PageAggregateSource` 的 provenance 口径要和真实读链对齐 +- Convex overview 查询要避免全量扫描放大 + +### P2 + +- 继续清理或标注 legacy compat、debug host、stale mapping +- 对 `design/90-reference` 和次级参考材料保持只读、非上位来源定位 + +## 报告文件 + +- [Rust Kernel / Web 实现偏差审查](./01-rust-kernel-web-review.md) +- [前端编辑器 / 树体验实现偏差审查](./02-frontend-editor-tree-review.md) +- [Convex / Realtime / Storage 实现偏差审查](./03-convex-realtime-storage-review.md) +- [次级域与设计治理实现偏差审查](./04-secondary-domains-and-design-governance-review.md) + +## 统一判断 + +当前最准确的描述不是“已经完成单一真源收口”,而是: + +> Rust 已经持有主语义主导权,前端与 Convex 也已切到新主线,但 projection、command、realtime、fallback 仍有若干兼容态残留,需要继续按优先级收口。 diff --git a/design/README.md b/design/README.md index ddf06903..55f927e4 100644 --- a/design/README.md +++ b/design/README.md @@ -1,6 +1,6 @@ # design 设计稿索引 -> 更新时间:2026-04-20 +> 更新时间:2026-05-11 > > 状态口径以当前仓库真实代码为准: > - `[done]`:对应阶段或收口目标已经在当前主线代码中成立 @@ -36,6 +36,10 @@ 7. `07-ai/` - `process/` 放推进中的主线稿 - `done/` 放已在真实代码中成立的主线稿 +8. `08-wolai-aline-test-flow/` + - `process/` 放推进中的测试流程与对标执行稿 +9. `09-siyuan-reference/` + - `process/` 放思源参考、借鉴边界与能力盘点稿 ## 迁移规则 diff --git a/docs/superpowers/plans/2026-05-10-mindmap-phase6-projection-editor-checklist.md b/docs/superpowers/plans/2026-05-10-mindmap-phase6-projection-editor-checklist.md index 7f090a19..d5e30a88 100644 --- a/docs/superpowers/plans/2026-05-10-mindmap-phase6-projection-editor-checklist.md +++ b/docs/superpowers/plans/2026-05-10-mindmap-phase6-projection-editor-checklist.md @@ -253,9 +253,9 @@ - [x] adapter 初始化时请求 `mindmap.simple_mind_map_scene.get`,把 projection 的 `root/layout/theme/themeConfig/view/config` 传给真实 `simple-mind-map`。 - [x] adapter 内部真实调用 `new MindMap({ el, data, layout, theme, themeConfig, viewData, config })`。 - [x] NodeView 销毁时调用 bridge `destroy()`,清理 runtime、监听器和 DOM。 -- [ ] `data_change` / `view_data_change` 通过 `mindmap-command-diff.ts` 转换为 kernel command 或 `compatPayload.patch`,再调用 `mindmap.command.apply`。 +- [x] `data_change` / `view_data_change` 通过 `mindmap-command-diff.ts` 转换为 kernel command 或 `compatPayload.patch`,再调用 `mindmap.command.apply`。 - [x] command 成功后刷新 adapter projection 或同步 runtime revision;失败时显示 `command_failed`,不得伪装保存成功。 -- [ ] toolbar 的“子节点 / 同级节点 / 删除 / 回根 / 缩放”优先调用 runtime command,再经 command bridge 回写 kernel。 +- [x] toolbar 的“子节点 / 同级节点 / 删除 / 回根 / 缩放”优先调用 runtime command,再经 command bridge 回写 kernel。 - [x] 右侧栏和底部栏只保留第一阶段 chrome,不再占据画布主要宽度;视觉对齐 `image copy 60.png` 的内嵌 KMind 工作台。 - [x] 删除或降级旧 `.mnote-mindmap-node`、手写 `mindmap-edge`、固定 `svg viewBox` 成为 fallback/debug,不作为默认主链。 - [x] 更新 smoke:禁止以手写 `.mnote-mindmap-node` 和 `path[data-testid="mindmap-edge"]` 作为成功条件。 diff --git a/infra/convex/docker-compose.yml b/infra/convex/docker-compose.yml index fa28f8e4..770d4d1b 100644 --- a/infra/convex/docker-compose.yml +++ b/infra/convex/docker-compose.yml @@ -6,6 +6,10 @@ services: image: ghcr.io/get-convex/convex-backend@sha256:2143ad479a997802e74ac52f5f1ce3d6e75309b1965e36069d1c939166e210eb stop_grace_period: 10s stop_signal: SIGINT + ulimits: + nofile: + soft: 65535 + hard: 65535 ports: - "3210:3210" - "3211:3211" diff --git a/playwright-snapshot-auth.md b/playwright-snapshot-auth.md new file mode 100644 index 00000000..19ec28d6 --- /dev/null +++ b/playwright-snapshot-auth.md @@ -0,0 +1 @@ +- generic [ref=e2] [box=0,13,1440,39]: "{\"ok\":false,\"code\":\"convex_upstream_error\",\"message\":\"Convex mutation 失败\",\"requestId\":\"req_1778542522227_65\",\"traceId\":\"trace_1778542522227_66\"}" \ No newline at end of file diff --git a/rust/crates/bridge-runtime/src/lib.rs b/rust/crates/bridge-runtime/src/lib.rs index 2e542087..5e3b0f04 100644 --- a/rust/crates/bridge-runtime/src/lib.rs +++ b/rust/crates/bridge-runtime/src/lib.rs @@ -13,10 +13,11 @@ use core_protocol::{ DocumentReadSubtree, EditorBlock, EditorBlockDocument, EditorBlockType, EditorCommand, EditorInsertBlockAfter, EditorReplaceBlock, EmbedBlock, GetBlock, GetBridgeCommand, GetBridgeRequest, GetBridgeTrace, GetMindmap, InvocationKind, KernelAttachEdge, - KernelAuditStamp, KernelContentPayload, KernelCreateNode, KernelDetachEdge, KernelEdge, - KernelEdgeListResult, KernelEdgeType, KernelGetNode, KernelGetSubtree, KernelGraphDirection, - KernelGraphTraversalResult, KernelGraphVisit, KernelListChildren, KernelListEdges, - KernelMoveSubtree, KernelNode, KernelNodeMetadata, KernelNodeType, KernelProjectionAssetKind, + KernelAuditStamp, KernelBlockAssetRelation, KernelContentPayload, KernelCreateNode, + KernelDetachEdge, KernelEdge, KernelEdgeListResult, KernelEdgeType, KernelGetNode, + KernelGetSubtree, KernelGraphDirection, KernelGraphTraversalResult, KernelGraphVisit, + KernelListChildren, KernelListEdges, KernelMoveSubtree, KernelNode, KernelNodeMetadata, + KernelNodeType, KernelObjectIdentity, KernelObjectKind, KernelProjectionAssetKind, KernelProjectionCapability, KernelProjectionFilter, KernelProjectionItem, KernelProjectionKind, KernelProjectionRequest, KernelProjectionResourceKind, KernelProjectionResourceMeta, KernelProjectionResult, KernelProjectionRowKind, KernelRefsPayload, KernelSubtreeRef, @@ -5547,7 +5548,7 @@ fn build_mindmap_kernel_projection_result( associative_lines: collect_mindmap_associative_lines(data), layout: read_mindmap_value_field(data, &["layout", "layoutHints", "layout_hints"]) .unwrap_or_else(|| json!("logicalStructure")), - theme: read_mindmap_value_field(data, &["theme"]).unwrap_or_else(|| json!("classic")), + theme: read_mindmap_value_field(data, &["theme"]).unwrap_or_else(|| json!("default")), view: read_mindmap_value_field(data, &["view"]).unwrap_or_else(|| json!({})), capabilities: MindmapKernelCapabilities { can_edit: true, @@ -5564,6 +5565,45 @@ fn build_mindmap_kernel_projection_result( }) } +fn default_mindmap_theme_config() -> Value { + json!({ + "lineColor": "#7aa2ff", + "lineStyle": "curve", + "rootLineKeepSameInCurve": true, + "rootLineStartPositionKeepSameInCurve": true, + "generalizationLineColor": "#ef6a5b", + "backgroundColor": "#f6f8fc", + "root": { + "fillColor": "#e25563", + "color": "#ffffff", + "fontWeight": "bold", + "borderColor": "transparent", + "borderWidth": 0, + "borderRadius": 8 + }, + "second": { + "fillColor": "#4f7df3", + "color": "#ffffff", + "borderColor": "transparent", + "borderWidth": 0, + "borderRadius": 8 + }, + "node": { + "fillColor": "transparent", + "color": "#315aa9", + "borderColor": "transparent", + "borderWidth": 0 + }, + "generalization": { + "fillColor": "#ffffff", + "color": "#ef6a5b", + "borderColor": "#ef6a5b", + "borderWidth": 1, + "borderRadius": 8 + } + }) +} + fn build_mindmap_adapter_projection_result( data: &Value, mindmap_id: &str, @@ -5577,9 +5617,9 @@ fn build_mindmap_adapter_projection_result( })?, layout: read_mindmap_value_field(data, &["layout", "layoutHints", "layout_hints"]) .unwrap_or_else(|| json!("logicalStructure")), - theme: read_mindmap_value_field(data, &["theme"]).unwrap_or_else(|| json!("classic")), + theme: read_mindmap_value_field(data, &["theme"]).unwrap_or_else(|| json!("default")), theme_config: read_mindmap_value_field(data, &["themeConfig", "theme_config"]) - .unwrap_or_else(|| json!({})), + .unwrap_or_else(default_mindmap_theme_config), view: read_mindmap_value_field(data, &["view"]).unwrap_or_else(|| json!({})), config: read_mindmap_value_field(data, &["config"]).unwrap_or_else(|| json!({})), compat_payload: read_mindmap_value_field(data, &["compatPayload", "compat_payload"]) @@ -7075,6 +7115,33 @@ fn is_book_asset(file_name: &str, mime_type: &str) -> bool { .any(|suffix| lowered_name.ends_with(suffix)) } +fn is_onlyoffice_asset(file_name: &str, mime_type: &str) -> bool { + let lowered_mime = mime_type.trim().to_ascii_lowercase(); + let lowered_name = file_name.trim().to_ascii_lowercase(); + lowered_mime.contains("officedocument") + || lowered_mime.contains("msword") + || lowered_mime.contains("ms-excel") + || lowered_mime.contains("ms-powerpoint") + || [ + ".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".odt", ".ods", ".odp", + ] + .iter() + .any(|suffix| lowered_name.ends_with(suffix)) +} + +fn is_code_asset(file_name: &str, mime_type: &str) -> bool { + let lowered_mime = mime_type.trim().to_ascii_lowercase(); + let lowered_name = file_name.trim().to_ascii_lowercase(); + lowered_mime.starts_with("text/") + && [ + ".c", ".cc", ".cpp", ".css", ".go", ".h", ".hpp", ".html", ".java", ".js", + ".jsx", ".json", ".kt", ".lua", ".md", ".py", ".rs", ".sh", ".sql", ".toml", + ".ts", ".tsx", ".xml", ".yaml", ".yml", + ] + .iter() + .any(|suffix| lowered_name.ends_with(suffix)) +} + fn classify_asset_kind( asset_type: &str, file_name: &str, @@ -7111,7 +7178,17 @@ fn classify_asset_kind( fn classify_asset_resource_kind( asset_kind: &KernelProjectionAssetKind, + file_name: &str, + mime_type: &str, ) -> KernelProjectionResourceKind { + if matches!(asset_kind, KernelProjectionAssetKind::File) { + if is_onlyoffice_asset(file_name, mime_type) { + return KernelProjectionResourceKind::OnlyOffice; + } + if is_code_asset(file_name, mime_type) { + return KernelProjectionResourceKind::Code; + } + } match asset_kind { KernelProjectionAssetKind::Mindmap => KernelProjectionResourceKind::Mindmap, KernelProjectionAssetKind::Table => KernelProjectionResourceKind::Table, @@ -7403,6 +7480,7 @@ fn make_projection_resource_meta( resource_kind: KernelProjectionResourceKind, document_id: Option, asset_id: Option, + block_id: Option, workspace_id: Option, asset_kind: Option, icon_hint: &str, @@ -7418,6 +7496,34 @@ fn make_projection_resource_meta( ) { extra.insert("source".into(), source); } + let object_kind = match (&resource_kind, &asset_kind, asset_id.as_ref()) { + (KernelProjectionResourceKind::Document, _, _) => KernelObjectKind::Page, + (KernelProjectionResourceKind::Index, _, _) => KernelObjectKind::Index, + (KernelProjectionResourceKind::Mindmap, _, _) => KernelObjectKind::Mindmap, + (KernelProjectionResourceKind::OnlyOffice, _, _) => KernelObjectKind::OnlyOffice, + (KernelProjectionResourceKind::Code, _, _) => KernelObjectKind::Code, + (_, Some(KernelProjectionAssetKind::Mindmap), _) => KernelObjectKind::Mindmap, + (_, _, Some(_)) => KernelObjectKind::Attachment, + _ => KernelObjectKind::Page, + }; + let object_identity = Some(KernelObjectIdentity { + object_kind, + document_id: document_id.clone(), + block_id: block_id.clone(), + asset_id: asset_id.clone(), + }); + let block_asset_relation = + match (document_id.clone(), block_id, asset_id.clone(), asset_kind.clone()) { + (Some(document_id), Some(block_id), Some(asset_id), Some(asset_kind)) => { + Some(KernelBlockAssetRelation { + document_id, + block_id, + asset_id, + asset_kind, + }) + } + _ => None, + }; KernelProjectionResourceMeta { resource_kind: Some(resource_kind), document_id, @@ -7425,6 +7531,8 @@ fn make_projection_resource_meta( workspace_id, asset_kind, icon_hint: Some(icon_hint.into()), + object_identity, + block_asset_relation, extra, } } @@ -7433,6 +7541,7 @@ fn make_projection_resource_meta( struct NormalizedFileTreeAsset { id: String, document_id: String, + block_id: Option, workspace_id: Option, title: String, resource_kind: KernelProjectionResourceKind, @@ -7451,7 +7560,7 @@ fn infer_file_tree_asset_shape( ) { let asset_kind = classify_asset_kind(asset_type, file_name, mime_type); ( - classify_asset_resource_kind(&asset_kind), + classify_asset_resource_kind(&asset_kind, file_name, mime_type), asset_kind.clone(), classify_asset_icon_hint(&asset_kind), ) @@ -7472,6 +7581,7 @@ fn normalize_file_tree_asset(value: &Value) -> Option { Some(NormalizedFileTreeAsset { id, document_id, + block_id: string_field(value, "block_id").or_else(|| string_field(value, "blockId")), workspace_id: string_field(value, "workspace_id") .or_else(|| string_field(value, "workspaceId")), title: file_name, @@ -7651,6 +7761,7 @@ fn build_file_tree_projection_result( KernelProjectionResourceKind::Document, Some(node.id.clone()), None, + None, workspace_id.clone(), None, "page", @@ -7682,6 +7793,7 @@ fn build_file_tree_projection_result( KernelProjectionResourceKind::Index, Some(node.id.clone()), None, + None, workspace_id.clone(), None, "index", @@ -7728,6 +7840,7 @@ fn build_file_tree_projection_result( asset.resource_kind.clone(), Some(asset.document_id.clone()), Some(asset.id.clone()), + asset.block_id.clone(), asset.workspace_id.clone(), Some(KernelProjectionAssetKind::Mindmap), "mindmap", @@ -7768,6 +7881,7 @@ fn build_file_tree_projection_result( child_asset.resource_kind.clone(), Some(child_asset.document_id.clone()), Some(child_asset.id.clone()), + child_asset.block_id.clone(), child_asset.workspace_id.clone(), Some(child_asset.asset_kind.clone()), child_asset.icon_hint, @@ -7808,6 +7922,7 @@ fn build_file_tree_projection_result( asset.resource_kind.clone(), Some(asset.document_id.clone()), Some(asset.id.clone()), + asset.block_id.clone(), asset.workspace_id.clone(), Some(asset.asset_kind.clone()), asset.icon_hint, @@ -8141,6 +8256,7 @@ fn build_kernel_projection_result( KernelProjectionResourceKind::Document, Some(node.id.clone()), None, + None, node.workspace_id.clone(), None, "page", @@ -9189,10 +9305,24 @@ fn execute_command( source: workspace_source_value(&command_wire.source), payload_json: request.payload_json, args_json: json!({ - "docId": payload.document_id, - "mindmapId": payload.mindmap_id, + "docId": payload.document_id.clone(), + "mindmapId": payload.mindmap_id.clone(), "data": payload.data, "createOnly": payload.create_only.unwrap_or(false), + "streamDeltaHint": tree_stream_delta_hint("resync_required", json!({ + "reason": "mindmap.put", + "documentId": payload.document_id.clone(), + "blockId": payload.mindmap_id.clone(), + })), + "domainEventHint": tree_domain_event_hint("tree.resource.mindmap.put"), + "domainEventPlan": tree_domain_event_plan( + "tree.resource.mindmap.put", + tree_stream_delta_hint("resync_required", json!({ + "reason": "mindmap.put", + "documentId": payload.document_id.clone(), + "blockId": payload.mindmap_id.clone(), + })), + ), }), })) } @@ -9229,11 +9359,25 @@ fn execute_command( source: workspace_source_value(&command_wire.source), payload_json: request.payload_json, args_json: json!({ - "documentId": payload.document_id, - "mindmapId": payload.mindmap_id, + "documentId": payload.document_id.clone(), + "mindmapId": payload.mindmap_id.clone(), "commands": payload.commands, "projectionRevision": payload.projection_revision, "canonicalCommand": "mindmap.command.apply", + "streamDeltaHint": tree_stream_delta_hint("resync_required", json!({ + "reason": "mindmap.command.apply", + "documentId": payload.document_id.clone(), + "blockId": payload.mindmap_id.clone(), + })), + "domainEventHint": tree_domain_event_hint("tree.resource.mindmap.updated"), + "domainEventPlan": tree_domain_event_plan( + "tree.resource.mindmap.updated", + tree_stream_delta_hint("resync_required", json!({ + "reason": "mindmap.command.apply", + "documentId": payload.document_id.clone(), + "blockId": payload.mindmap_id.clone(), + })), + ), }), })) } @@ -9265,8 +9409,22 @@ fn execute_command( source: workspace_source_value(&command_wire.source), payload_json: request.payload_json, args_json: json!({ - "docId": payload.document_id, - "mindmapId": payload.mindmap_id, + "docId": payload.document_id.clone(), + "mindmapId": payload.mindmap_id.clone(), + "streamDeltaHint": tree_stream_delta_hint("resync_required", json!({ + "reason": "mindmap.delete", + "documentId": payload.document_id.clone(), + "blockId": payload.mindmap_id.clone(), + })), + "domainEventHint": tree_domain_event_hint("tree.resource.mindmap.deleted"), + "domainEventPlan": tree_domain_event_plan( + "tree.resource.mindmap.deleted", + tree_stream_delta_hint("resync_required", json!({ + "reason": "mindmap.delete", + "documentId": payload.document_id.clone(), + "blockId": payload.mindmap_id.clone(), + })), + ), }), })) } @@ -9299,8 +9457,22 @@ fn execute_command( source: workspace_source_value(&command_wire.source), payload_json: request.payload_json, args_json: json!({ - "docId": payload.document_id, - "mindmapId": payload.mindmap_id, + "docId": payload.document_id.clone(), + "mindmapId": payload.mindmap_id.clone(), + "streamDeltaHint": tree_stream_delta_hint("resync_required", json!({ + "reason": "mindmap.restore", + "documentId": payload.document_id.clone(), + "blockId": payload.mindmap_id.clone(), + })), + "domainEventHint": tree_domain_event_hint("tree.resource.mindmap.restored"), + "domainEventPlan": tree_domain_event_plan( + "tree.resource.mindmap.restored", + tree_stream_delta_hint("resync_required", json!({ + "reason": "mindmap.restore", + "documentId": payload.document_id.clone(), + "blockId": payload.mindmap_id.clone(), + })), + ), }), })) } @@ -10036,6 +10208,7 @@ where fn normalize_editor_block_type_for_save(raw_type: &str) -> EditorBlockType { match raw_type { + "mindmap" => EditorBlockType::Mindmap, "heading" => EditorBlockType::Heading, "bullet_list_item" | "bullet_list" | "bullet-list" => EditorBlockType::BulletListItem, "numbered_list_item" | "ordered_list" | "ordered-list" => EditorBlockType::NumberedListItem, @@ -10058,11 +10231,9 @@ fn normalize_editor_block_from_legacy(block: &Value, index: usize) -> EditorBloc let raw_type = read_trimmed_string_field(block, &["blockType", "type"]) .unwrap_or_else(|| "paragraph".into()) .to_lowercase(); + let normalized_block_type = normalize_editor_block_type_for_save(&raw_type); let mut props = BlockProps::default(); - if matches!( - normalize_editor_block_type_for_save(&raw_type), - EditorBlockType::Heading - ) { + if matches!(normalized_block_type, EditorBlockType::Heading) { props.heading_level = block .get("props") .and_then(Value::as_object) @@ -10076,20 +10247,14 @@ fn normalize_editor_block_from_legacy(block: &Value, index: usize) -> EditorBloc .and_then(|map| map.get("collapsed")) .and_then(Value::as_bool); } - if matches!( - normalize_editor_block_type_for_save(&raw_type), - EditorBlockType::Todo - ) { + if matches!(normalized_block_type, EditorBlockType::Todo) { props.checked = block .get("props") .and_then(Value::as_object) .and_then(|map| map.get("checked")) .and_then(Value::as_bool); } - if matches!( - normalize_editor_block_type_for_save(&raw_type), - EditorBlockType::CodeBlock - ) { + if matches!(normalized_block_type, EditorBlockType::CodeBlock) { props.language = block .get("props") .and_then(Value::as_object) @@ -10121,15 +10286,72 @@ fn normalize_editor_block_from_legacy(block: &Value, index: usize) -> EditorBloc { props.extra.insert("tiptapTocNode".into(), tiptap_toc); } + if matches!(normalized_block_type, EditorBlockType::Mindmap) { + let props_map = block.get("props").and_then(Value::as_object); + let legacy_data = props_map.and_then(|map| map.get("data")); + let data_object = legacy_data.and_then(Value::as_object); + if let Some(mindmap_id) = props_map + .and_then(|map| map.get("mindmapId").or_else(|| map.get("mindmap_id"))) + .and_then(Value::as_str) + .or_else(|| { + data_object.and_then(|map| { + map.get("mindmapId") + .or_else(|| map.get("mindmap_id")) + .or_else(|| map.get("id")) + .and_then(Value::as_str) + }) + }) + .map(str::trim) + .filter(|value| !value.is_empty()) + { + props + .extra + .insert("mindmapId".into(), Value::String(mindmap_id.to_string())); + } else { + props + .extra + .insert("mindmapId".into(), Value::String(block_id.clone())); + } + if let Some(root_node_id) = props_map + .and_then(|map| map.get("rootNodeId").or_else(|| map.get("root_node_id"))) + .and_then(Value::as_str) + .or_else(|| { + data_object.and_then(|map| { + map.get("rootNodeId") + .or_else(|| map.get("root_node_id")) + .and_then(Value::as_str) + }) + }) + .map(str::trim) + .filter(|value| !value.is_empty()) + { + props + .extra + .insert("rootNodeId".into(), Value::String(root_node_id.to_string())); + } + if let Some(projection_version) = props_map + .and_then(|map| map.get("projectionVersion")) + .and_then(Value::as_u64) + { + props.extra.insert( + "projectionVersion".into(), + Value::Number(projection_version.into()), + ); + } + } let text = read_trimmed_string_field(block, &["content"]) .filter(|value| !value.is_empty()) .unwrap_or_else(|| extract_inline_text(block)); EditorBlock { block_id, - block_type: normalize_editor_block_type_for_save(&raw_type), + block_type: normalized_block_type.clone(), props, - content_nodes: build_text_content_nodes(&text), + content_nodes: if matches!(normalized_block_type, EditorBlockType::Mindmap) { + vec![] + } else { + build_text_content_nodes(&text) + }, child_block_ids: vec![], } } @@ -10156,6 +10378,7 @@ fn normalize_save_editor_document( ) -> Result { if let Some(editor_document) = payload.editor_document.clone() { if let Ok(mut parsed) = serde_json::from_value::(editor_document) { + hydrate_editor_document_props_from_raw(&mut parsed, payload.editor_document.as_ref()); if parsed.document_id.trim().is_empty() { parsed.document_id = payload.document_id.clone(); } @@ -10189,6 +10412,80 @@ fn normalize_save_editor_document( )) } +fn hydrate_editor_document_props_from_raw(parsed: &mut EditorBlockDocument, raw: Option<&Value>) { + let Some(raw_blocks) = raw + .and_then(|value| value.get("blocks")) + .and_then(Value::as_array) + else { + return; + }; + for (index, block) in parsed.blocks.iter_mut().enumerate() { + if !matches!(block.block_type, EditorBlockType::Mindmap) { + continue; + } + let Some(raw_block) = raw_blocks + .iter() + .find(|candidate| { + read_trimmed_string_field(candidate, &["blockId", "block_id"]).as_deref() + == Some(block.block_id.as_str()) + }) + .or_else(|| raw_blocks.get(index)) + else { + continue; + }; + hydrate_mindmap_block_props_from_raw(block, raw_block); + } +} + +fn hydrate_mindmap_block_props_from_raw(block: &mut EditorBlock, raw_block: &Value) { + let props = raw_block.get("props").and_then(Value::as_object); + let legacy_data = props + .and_then(|map| map.get("data")) + .and_then(Value::as_object); + if let Some(mindmap_id) = props + .and_then(|map| map.get("mindmapId").or_else(|| map.get("mindmap_id"))) + .and_then(Value::as_str) + .or_else(|| { + legacy_data.and_then(|map| { + map.get("mindmapId") + .or_else(|| map.get("mindmap_id")) + .or_else(|| map.get("id")) + .and_then(Value::as_str) + }) + }) + .map(str::trim) + .filter(|value| !value.is_empty()) + { + block + .props + .extra + .insert("mindmapId".into(), Value::String(mindmap_id.to_string())); + } + for (raw_key, canonical_key) in [("rootNodeId", "rootNodeId"), ("root_node_id", "rootNodeId")] { + if let Some(value) = props + .and_then(|map| map.get(raw_key)) + .and_then(Value::as_str) + .or_else(|| legacy_data.and_then(|map| map.get(raw_key).and_then(Value::as_str))) + .map(str::trim) + .filter(|value| !value.is_empty()) + { + block + .props + .extra + .insert(canonical_key.into(), Value::String(value.to_string())); + } + } + if let Some(projection_version) = props + .and_then(|map| map.get("projectionVersion")) + .and_then(Value::as_u64) + { + block.props.extra.insert( + "projectionVersion".into(), + Value::Number(projection_version.into()), + ); + } +} + fn legacy_props_from_editor_block(block: &EditorBlock) -> Option { let mut props = serde_json::Map::new(); match block.block_type { @@ -10232,6 +10529,23 @@ fn legacy_props_from_editor_block(block: &EditorBlock) -> Option { props.insert("tiptapTocNode".into(), tiptap_toc.clone()); } } + EditorBlockType::Mindmap => { + if let Some(mindmap_id) = block.props.extra.get("mindmapId").and_then(Value::as_str) { + props.insert("mindmapId".into(), json!(mindmap_id)); + } + if let Some(root_node_id) = block.props.extra.get("rootNodeId").and_then(Value::as_str) + { + props.insert("rootNodeId".into(), json!(root_node_id)); + } + if let Some(projection_version) = block + .props + .extra + .get("projectionVersion") + .and_then(Value::as_u64) + { + props.insert("projectionVersion".into(), json!(projection_version)); + } + } _ => {} } if let Some(text_align) = block @@ -10255,6 +10569,7 @@ fn legacy_props_from_editor_block(block: &EditorBlock) -> Option { fn legacy_type_from_editor_block(block: &EditorBlock) -> &'static str { match block.block_type { EditorBlockType::Paragraph => "paragraph", + EditorBlockType::Mindmap => "mindmap", EditorBlockType::Heading => "heading", EditorBlockType::BulletListItem => "bullet_list_item", EditorBlockType::NumberedListItem => "numbered_list_item", @@ -10302,6 +10617,8 @@ fn legacy_content_from_editor_document(document: &EditorBlockDocument) -> Value "props": legacy_props_from_editor_block(block), "content": if matches!(block.block_type, EditorBlockType::Divider) { Value::Array(Vec::new()) + } else if matches!(block.block_type, EditorBlockType::Mindmap) { + Value::String(String::new()) } else { Value::String(legacy_text_from_editor_block(block)) }, @@ -11429,6 +11746,14 @@ mod tests { "text": "新标题" }) ); + assert_eq!( + plan.args_json["domainEventPlan"]["eventType"], + json!("tree.resource.mindmap.updated") + ); + assert_eq!( + plan.args_json["streamDeltaHint"]["kind"], + json!("resync_required") + ); } RuntimeExecutionPlan::Query(_) | RuntimeExecutionPlan::Tool(_) => { panic!("expected command plan") @@ -11726,16 +12051,44 @@ mod tests { match plan { RuntimeExecutionPlan::Command(plan) => { assert_eq!(plan.function_name, "mindmaps:put"); + assert_eq!(plan.args_json["docId"], json!("doc_1")); + assert_eq!(plan.args_json["mindmapId"], json!("mind_1")); assert_eq!( - plan.args_json, + plan.args_json["data"], json!({ - "docId": "doc_1", - "mindmapId": "mind_1", - "data": { - "data": {"text": "中心主题"}, - "children": [], - }, - "createOnly": true, + "data": {"text": "中心主题"}, + "children": [], + }) + ); + assert_eq!(plan.args_json["createOnly"], json!(true)); + assert_eq!( + plan.args_json["streamDeltaHint"], + json!({ + "family": "tree", + "kind": "resync_required", + "args": { + "reason": "mindmap.put", + "documentId": "doc_1", + "blockId": "mind_1", + } + }) + ); + assert_eq!( + plan.args_json["domainEventPlan"], + json!({ + "family": "tree", + "schema": "mnote.tree.domain_event", + "schemaVersion": 1, + "eventType": "tree.resource.mindmap.put", + "streamDeltaHint": { + "family": "tree", + "kind": "resync_required", + "args": { + "reason": "mindmap.put", + "documentId": "doc_1", + "blockId": "mind_1", + } + } }) ); } @@ -12317,6 +12670,178 @@ mod tests { ); } + #[test] + fn documents_save_command_plan_preserves_mindmap_placeholder() { + let plan = execute_runtime_input(RuntimeInput::Command { + context: demo_context(), + command: RuntimeCommandEnvelopeWire { + name: "documents.save".into(), + command_id: "cmd_save_mindmap".into(), + idempotency_key: Some("idem_save_mindmap".into()), + actor: RuntimeActorWire { + actor_type: "user".into(), + actor_id: "user_1".into(), + session_id: Some("sess_1".into()), + }, + source: RuntimeSourceWire { + channel: "rust-web".into(), + client: "mnote-web".into(), + source_kind: None, + root_uri: None, + workspace_id: None, + capabilities: Vec::new(), + }, + target: Some(RuntimeTargetWire { + workspace_id: Some("ws_1".into()), + page_id: Some("doc_1".into()), + block_id: None, + }), + payload: json!({ + "documentId": "doc_1", + "workspaceId": "ws_1", + "revision": 6, + "content": [], + "tiptapDocument": { + "type": "doc", + "content": [{ + "type": "paragraph", + "attrs": { + "blockId": "mind_1", + "mnoteBlockType": "mindmap", + "mindmapId": "mind_1", + "rootNodeId": "root", + "projectionVersion": 1 + } + }] + }, + "conflictDetectionKey": "doc_1:6" + }), + preflight_data: None, + reason: Some("保存导图占位".into()), + refs: vec!["phase6-mindmap".into()], + dry_run: false, + validate_only: false, + }, + }) + .expect("documents.save mindmap plan should build"); + + let RuntimeExecutionPlan::Command(plan) = plan else { + panic!("expected command plan"); + }; + + assert_eq!( + plan.args_json.pointer("/editorDocument/blocks/0/blockType"), + Some(&json!("mindmap")) + ); + assert_eq!( + plan.args_json.pointer("/content/0/type"), + Some(&json!("mindmap")) + ); + assert_eq!( + plan.args_json.pointer("/content/0/id"), + Some(&json!("mind_1")) + ); + assert_eq!( + plan.args_json.pointer("/content/0/props/mindmapId"), + Some(&json!("mind_1")) + ); + assert_eq!(plan.args_json.pointer("/content/0/props/data"), None); + assert_eq!( + plan.args_json.pointer("/content/0/content"), + Some(&json!("")) + ); + } + + #[test] + fn documents_save_command_plan_preserves_mindmap_props_from_editor_document() { + let plan = execute_runtime_input(RuntimeInput::Command { + context: demo_context(), + command: RuntimeCommandEnvelopeWire { + name: "page.body.save".into(), + command_id: "cmd_save_mindmap_editor_document".into(), + idempotency_key: Some("idem_save_mindmap_editor_document".into()), + actor: RuntimeActorWire { + actor_type: "user".into(), + actor_id: "user_1".into(), + session_id: Some("sess_1".into()), + }, + source: RuntimeSourceWire { + channel: "rust-web".into(), + client: "mnote-web".into(), + source_kind: None, + root_uri: None, + workspace_id: None, + capabilities: Vec::new(), + }, + target: Some(RuntimeTargetWire { + workspace_id: Some("ws_1".into()), + page_id: Some("doc_1".into()), + block_id: None, + }), + payload: json!({ + "documentId": "doc_1", + "workspaceId": "ws_1", + "revision": 7, + "editorDocument": { + "documentId": "doc_1", + "rootBlockIds": ["block-1"], + "blocks": [{ + "blockId": "block-1", + "blockType": "mindmap", + "props": { + "data": null, + "mindmapId": "mind_1", + "rootNodeId": "root", + "projectionVersion": 1 + }, + "contentNodes": [], + "childBlockIds": [] + }] + }, + "content": [], + "tiptapDocument": { + "type": "doc", + "content": [{ + "type": "paragraph", + "attrs": { + "blockId": "block-1", + "mnoteBlockType": "mindmap", + "mindmapId": "mind_1", + "rootNodeId": "root", + "projectionVersion": 1 + } + }] + }, + "conflictDetectionKey": "doc_1:7" + }), + preflight_data: None, + reason: Some("保存 editorDocument 导图占位".into()), + refs: vec!["task169-mindmap-realtime-smoke".into()], + dry_run: false, + validate_only: false, + }, + }) + .expect("page.body.save mindmap editorDocument plan should build"); + + let RuntimeExecutionPlan::Command(plan) = plan else { + panic!("expected command plan"); + }; + + assert_eq!( + plan.args_json.pointer("/content/0/props/mindmapId"), + Some(&json!("mind_1")) + ); + assert_eq!( + plan.args_json.pointer("/content/0/props/rootNodeId"), + Some(&json!("root")) + ); + assert_eq!( + plan.args_json.pointer("/content/0/props/projectionVersion"), + Some(&json!(1)) + ); + assert_eq!(plan.args_json.pointer("/content/0/props/data"), None); + } + #[test] fn documents_save_command_plan_preserves_tiptap_image() { let plan = execute_runtime_input(RuntimeInput::Command { @@ -16219,6 +16744,7 @@ mod tests { "id": "mind_1", "workspace_id": "ws_1", "document_id": "page_root", + "block_id": "block_mind_1", "asset_type": "mindmap", "file_name": "roadmap.json", "mime_type": "application/json", @@ -16293,6 +16819,15 @@ mod tests { item_by_row_id["index:page_root"]["resourceMeta"]["resourceKind"], json!("index") ); + assert_eq!( + item_by_row_id["index:page_root"]["resourceMeta"]["objectIdentity"], + json!({ + "objectKind": "index", + "documentId": "page_root", + "blockId": null, + "assetId": null + }) + ); assert_eq!( item_by_row_id["index:page_root"]["resourceMeta"]["extra"]["source"], json!({ @@ -16333,6 +16868,24 @@ mod tests { item_by_row_id["asset-folder:mind_1"]["resourceMeta"]["assetKind"], json!("mindmap") ); + assert_eq!( + item_by_row_id["asset-folder:mind_1"]["resourceMeta"]["objectIdentity"], + json!({ + "objectKind": "mindmap", + "documentId": "page_root", + "blockId": "block_mind_1", + "assetId": "mind_1" + }) + ); + assert_eq!( + item_by_row_id["asset-folder:mind_1"]["resourceMeta"]["blockAssetRelation"], + json!({ + "documentId": "page_root", + "blockId": "block_mind_1", + "assetId": "mind_1", + "assetKind": "mindmap" + }) + ); assert_eq!( item_by_row_id["asset:asset_ref_1"]["parentNodeId"], json!("asset-folder:mind_1") @@ -16566,6 +17119,108 @@ mod tests { assert!(!row_ids.contains(&"asset:asset_rust_child")); } + #[test] + fn kernel_file_tree_projection_separates_attachment_object_identities() { + let result = execute_runtime_query(RuntimeInput::Query { + context: demo_context(), + query: RuntimeQueryEnvelopeWire { + name: "kernel.project_view".into(), + payload: json!({ + "projection": "file_tree", + "workspaceId": "ws_1", + "rootNodeId": "page_root", + "depth": 2, + "includeEdges": true, + "nodeTypes": ["page"], + }), + }, + data: Some(json!({ + "documents": [ + { + "id": "page_root", + "workspace_id": "ws_1", + "title": "根页面", + "parent_id": null, + "sort_order": 0, + "is_starred": true, + "is_template": false, + "created_at": "2026-04-16T00:00:00Z", + "updated_at": "2026-04-16T00:00:00Z" + } + ], + "media_assets": [ + { + "id": "office_1", + "workspace_id": "ws_1", + "document_id": "page_root", + "block_id": "block_office_1", + "asset_type": "file", + "file_name": "contract.docx", + "mime_type": "application/vnd.openxmlformats-officedocument.wordprocessingml.document" + }, + { + "id": "code_1", + "workspace_id": "ws_1", + "document_id": "page_root", + "block_id": "block_code_1", + "asset_type": "file", + "file_name": "main.rs", + "mime_type": "text/rust" + }, + { + "id": "image_1", + "workspace_id": "ws_1", + "document_id": "page_root", + "block_id": "block_image_1", + "asset_type": "file", + "file_name": "cover.png", + "mime_type": "image/png" + } + ], + "mindmap_assets": [], + "table_assets": [], + "mindmap_asset_children": {} + })), + }) + .expect("file_tree object identity projection should build"); + + let items = result["items"].as_array().expect("items should be array"); + let item_by_row_id = items + .iter() + .filter_map(|item| { + item.get("rowId") + .and_then(Value::as_str) + .map(|row_id| (row_id.to_string(), item)) + }) + .collect::>(); + + assert_eq!( + item_by_row_id["asset:office_1"]["resourceMeta"]["resourceKind"], + json!("only_office") + ); + assert_eq!( + item_by_row_id["asset:office_1"]["resourceMeta"]["objectIdentity"]["objectKind"], + json!("only_office") + ); + assert_eq!( + item_by_row_id["asset:code_1"]["resourceMeta"]["resourceKind"], + json!("code") + ); + assert_eq!( + item_by_row_id["asset:code_1"]["resourceMeta"]["objectIdentity"]["objectKind"], + json!("code") + ); + assert_eq!( + item_by_row_id["asset:image_1"]["resourceMeta"]["objectIdentity"], + json!({ + "objectKind": "attachment", + "documentId": "page_root", + "blockId": "block_image_1", + "assetId": "image_1" + }) + ); + } + #[test] fn kernel_file_tree_projection_query_matches_index_resource() { let result = execute_runtime_query(RuntimeInput::Query { diff --git a/rust/crates/core-protocol/src/editor/mod.rs b/rust/crates/core-protocol/src/editor/mod.rs index 986f087b..4dbc5ba5 100644 --- a/rust/crates/core-protocol/src/editor/mod.rs +++ b/rust/crates/core-protocol/src/editor/mod.rs @@ -54,6 +54,10 @@ mod tests { serde_json::to_string(&EditorBlockType::PageReference).unwrap(), "\"page_reference\"" ); + assert_eq!( + serde_json::to_string(&EditorBlockType::Mindmap).unwrap(), + "\"mindmap\"" + ); assert_eq!( serde_json::to_string(&EditorBlockType::BlockReference).unwrap(), "\"block_reference\"" diff --git a/rust/crates/core-protocol/src/editor/model.rs b/rust/crates/core-protocol/src/editor/model.rs index 26430740..a64d82c4 100644 --- a/rust/crates/core-protocol/src/editor/model.rs +++ b/rust/crates/core-protocol/src/editor/model.rs @@ -6,6 +6,7 @@ use std::collections::BTreeMap; #[serde(rename_all = "snake_case")] pub enum EditorBlockType { Paragraph, + Mindmap, Heading, BulletListItem, NumberedListItem, diff --git a/rust/crates/core-protocol/src/editor/tiptap.rs b/rust/crates/core-protocol/src/editor/tiptap.rs index 3a088c6d..0051fddd 100644 --- a/rust/crates/core-protocol/src/editor/tiptap.rs +++ b/rust/crates/core-protocol/src/editor/tiptap.rs @@ -58,6 +58,16 @@ pub struct TiptapParagraphAttrs { pub block_id: Option, #[serde(default)] pub text_align: Option, + #[serde(default)] + pub mnote_block_type: Option, + #[serde(default)] + pub mindmap_id: Option, + #[serde(default)] + pub root_node_id: Option, + #[serde(default)] + pub projection_version: Option, + #[serde(flatten, default)] + pub extra: BTreeMap, } #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Default)] @@ -371,6 +381,54 @@ fn props_with_text_align(text_align: Option) -> BlockProps { props } +fn props_with_mindmap_attrs(attrs: &TiptapParagraphAttrs) -> BlockProps { + let mut props = props_with_text_align(attrs.text_align.clone()); + if let Some(mindmap_id) = attrs + .mindmap_id + .as_deref() + .map(str::trim) + .filter(|value| !value.is_empty()) + { + props + .extra + .insert("mindmapId".into(), Value::String(mindmap_id.to_string())); + } + if let Some(root_node_id) = attrs + .root_node_id + .as_deref() + .map(str::trim) + .filter(|value| !value.is_empty()) + { + props + .extra + .insert("rootNodeId".into(), Value::String(root_node_id.to_string())); + } + if let Some(projection_version) = attrs.projection_version { + props.extra.insert( + "projectionVersion".into(), + Value::Number(projection_version.into()), + ); + } + for (key, value) in &attrs.extra { + props.extra.insert(key.clone(), value.clone()); + } + props +} + +fn read_extra_string(props: &BlockProps, key: &str) -> Option { + props + .extra + .get(key) + .and_then(Value::as_str) + .map(str::trim) + .filter(|value| !value.is_empty()) + .map(ToOwned::to_owned) +} + +fn read_extra_u64(props: &BlockProps, key: &str) -> Option { + props.extra.get(key).and_then(Value::as_u64) +} + impl EditorBlockDocumentTiptapBridge { pub fn to_tiptap_doc( document: &EditorBlockDocument, @@ -474,6 +532,11 @@ fn list_item_content_from_block( attrs: TiptapParagraphAttrs { block_id: Some(block.block_id.clone()), text_align: text_align_from_props(&block.props), + mnote_block_type: None, + mindmap_id: None, + root_node_id: None, + projection_version: None, + extra: BTreeMap::new(), }, content: inline_content, }]; @@ -491,9 +554,40 @@ fn block_to_tiptap_node( attrs: TiptapParagraphAttrs { block_id: Some(block.block_id.clone()), text_align: text_align_from_props(&block.props), + mnote_block_type: None, + mindmap_id: None, + root_node_id: None, + projection_version: None, + extra: BTreeMap::new(), }, content, }), + EditorBlockType::Mindmap => { + let mut extra = block.props.extra.clone(); + extra.remove("textAlign"); + extra.remove("text_align"); + extra.remove("mindmapId"); + extra.remove("rootNodeId"); + extra.remove("projectionVersion"); + if !extra.contains_key("mnoteMindmapData") { + if let Some(data) = block.props.extra.get("data") { + extra.insert("mnoteMindmapData".into(), data.clone()); + } + } + Ok(TiptapNode::Paragraph { + attrs: TiptapParagraphAttrs { + block_id: Some(block.block_id.clone()), + text_align: text_align_from_props(&block.props), + mnote_block_type: Some("mindmap".into()), + mindmap_id: read_extra_string(&block.props, "mindmapId") + .or_else(|| Some(block.block_id.clone())), + root_node_id: read_extra_string(&block.props, "rootNodeId"), + projection_version: read_extra_u64(&block.props, "projectionVersion"), + extra, + }, + content: Vec::new(), + }) + } EditorBlockType::Heading => Ok(TiptapNode::Heading { attrs: TiptapHeadingAttrs { level: block.props.heading_level.unwrap_or(1), @@ -546,6 +640,11 @@ fn block_to_tiptap_node( attrs: TiptapParagraphAttrs { block_id: Some(block.block_id.clone()), text_align: text_align_from_props(&block.props), + mnote_block_type: None, + mindmap_id: None, + root_node_id: None, + projection_version: None, + extra: BTreeMap::new(), }, content, }], @@ -584,6 +683,21 @@ fn node_to_block( ) -> Result { let fallback_block_id = format!("block_{}", index + 1); match node { + TiptapNode::Paragraph { attrs, .. } + if attrs.mnote_block_type.as_deref() == Some("mindmap") => + { + Ok(EditorBlock { + block_id: attrs + .block_id + .clone() + .or_else(|| attrs.mindmap_id.clone()) + .unwrap_or(fallback_block_id), + block_type: EditorBlockType::Mindmap, + props: props_with_mindmap_attrs(attrs), + content_nodes: vec![], + child_block_ids: vec![], + }) + } TiptapNode::Paragraph { attrs, content } => Ok(EditorBlock { block_id: attrs.block_id.clone().unwrap_or(fallback_block_id), block_type: EditorBlockType::Paragraph, @@ -1118,6 +1232,7 @@ mod tests { attrs: TiptapParagraphAttrs { block_id: Some("align_1".into()), text_align: Some("center".into()), + ..TiptapParagraphAttrs::default() }, content: vec![TiptapNode::Text { text: "E20 center".into(), @@ -1143,4 +1258,34 @@ mod tests { }; assert_eq!(attrs.text_align.as_deref(), Some("center")); } + + #[test] + fn preserves_mindmap_paragraph_placeholder() { + let doc = TiptapNode::Doc { + content: vec![TiptapNode::Paragraph { + attrs: TiptapParagraphAttrs { + block_id: Some("mind_1".into()), + mnote_block_type: Some("mindmap".into()), + mindmap_id: Some("mind_1".into()), + root_node_id: Some("root".into()), + projection_version: Some(1), + ..TiptapParagraphAttrs::default() + }, + content: vec![], + }], + }; + + let parsed = EditorBlockDocumentTiptapBridge::from_tiptap_doc("doc_1", &doc) + .expect("mindmap placeholder should convert to mindmap block"); + assert_eq!(parsed.root_block_ids, vec!["mind_1"]); + assert_eq!(parsed.blocks[0].block_type, EditorBlockType::Mindmap); + assert_eq!( + parsed.blocks[0].props.extra.get("mindmapId"), + Some(&serde_json::json!("mind_1")) + ); + + let restored = EditorBlockDocumentTiptapBridge::to_tiptap_doc(&parsed) + .expect("mindmap block should restore to paragraph placeholder"); + assert_eq!(restored, doc); + } } diff --git a/rust/crates/core-protocol/src/kernel.rs b/rust/crates/core-protocol/src/kernel.rs index 15adb7fc..972dad76 100644 --- a/rust/crates/core-protocol/src/kernel.rs +++ b/rust/crates/core-protocol/src/kernel.rs @@ -112,6 +112,9 @@ pub enum KernelProjectionResourceKind { Asset, AssetFolder, Mindmap, + Attachment, + OnlyOffice, + Code, Table, Book, Pdf, @@ -131,6 +134,35 @@ pub enum KernelProjectionAssetKind { Unknown, } +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] +#[serde(rename_all = "snake_case")] +pub enum KernelObjectKind { + Page, + Index, + Mindmap, + Attachment, + OnlyOffice, + Code, +} + +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] +#[serde(rename_all = "camelCase")] +pub struct KernelObjectIdentity { + pub object_kind: KernelObjectKind, + pub document_id: Option, + pub block_id: Option, + pub asset_id: Option, +} + +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] +#[serde(rename_all = "camelCase")] +pub struct KernelBlockAssetRelation { + pub document_id: String, + pub block_id: String, + pub asset_id: String, + pub asset_kind: KernelProjectionAssetKind, +} + #[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] #[serde(rename_all = "snake_case")] pub enum KernelGraphDirection { @@ -367,6 +399,10 @@ pub struct KernelProjectionResourceMeta { pub workspace_id: Option, pub asset_kind: Option, pub icon_hint: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub object_identity: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub block_asset_relation: Option, #[serde(default)] pub extra: BTreeMap, } @@ -649,6 +685,8 @@ mod tests { workspace_id: Some("ws_1".into()), asset_kind: Some(KernelProjectionAssetKind::File), icon_hint: Some("page".into()), + object_identity: None, + block_asset_relation: None, extra: BTreeMap::new(), }), icon_hint: Some("page".into()), diff --git a/rust/crates/core-protocol/src/lib.rs b/rust/crates/core-protocol/src/lib.rs index 7b77883f..e6c7f6f1 100644 --- a/rust/crates/core-protocol/src/lib.rs +++ b/rust/crates/core-protocol/src/lib.rs @@ -40,10 +40,11 @@ pub use kernel::{ DocumentContentResult, DocumentReadEvidenceItem, DocumentReadEvidenceKind, DocumentReadNode, DocumentReadNodeMeta, DocumentReadNodeType, DocumentReadOutlineEntry, DocumentReadPageSubtree, DocumentReadStats, DocumentReadSubtree, KernelAttachEdge, KernelAuditStamp, - KernelContentPayload, KernelCreateNode, KernelDetachEdge, KernelEdge, KernelEdgeListResult, - KernelEdgeType, KernelGetNode, KernelGetSubtree, KernelGraphDirection, - KernelGraphTraversalResult, KernelGraphVisit, KernelListChildren, KernelListEdges, - KernelMoveSubtree, KernelNode, KernelNodeMetadata, KernelNodeType, KernelProjectionAssetKind, + KernelBlockAssetRelation, KernelContentPayload, KernelCreateNode, KernelDetachEdge, + KernelEdge, KernelEdgeListResult, KernelEdgeType, KernelGetNode, KernelGetSubtree, + KernelGraphDirection, KernelGraphTraversalResult, KernelGraphVisit, KernelListChildren, + KernelListEdges, KernelMoveSubtree, KernelNode, KernelNodeMetadata, KernelNodeType, + KernelObjectIdentity, KernelObjectKind, KernelProjectionAssetKind, KernelProjectionCapability, KernelProjectionFilter, KernelProjectionItem, KernelProjectionKind, KernelProjectionRequest, KernelProjectionResourceKind, KernelProjectionResourceMeta, KernelProjectionResult, KernelProjectionRowKind, KernelRefsPayload, KernelSubtreeRef, diff --git a/rust/crates/core-protocol/tests/editor_tiptap_bridge.rs b/rust/crates/core-protocol/tests/editor_tiptap_bridge.rs index ec3c3ad2..8917d7e5 100644 --- a/rust/crates/core-protocol/tests/editor_tiptap_bridge.rs +++ b/rust/crates/core-protocol/tests/editor_tiptap_bridge.rs @@ -150,6 +150,7 @@ fn tiptap_import_preserves_explicit_block_ids_and_marks() { attrs: TiptapParagraphAttrs { block_id: Some("p-1".into()), text_align: None, + ..TiptapParagraphAttrs::default() }, content: vec![TiptapNode::Text { text: "Hello".into(), @@ -183,6 +184,7 @@ fn tiptap_import_preserves_explicit_block_ids_and_marks() { attrs: TiptapParagraphAttrs { block_id: Some("t-1".into()), text_align: None, + ..TiptapParagraphAttrs::default() }, content: vec![TiptapNode::Text { text: "todo".into(), @@ -335,3 +337,41 @@ fn tiptap_table_round_trip_preserves_table_node() { Some(&serde_json::json!("A1")) ); } + +#[test] +fn tiptap_mindmap_placeholder_round_trip_preserves_mindmap_attrs() { + let doc: TiptapNode = serde_json::from_value(serde_json::json!({ + "type": "doc", + "content": [{ + "type": "paragraph", + "attrs": { + "blockId": "mind_1", + "mnoteBlockType": "mindmap", + "mindmapId": "mind_1", + "rootNodeId": "root", + "projectionVersion": 1 + } + }] + })) + .expect("mindmap placeholder JSON should parse"); + + let imported = EditorBlockDocumentTiptapBridge::from_tiptap_doc("doc_mindmap", &doc) + .expect("mindmap placeholder should import"); + assert_eq!(imported.blocks[0].block_type, EditorBlockType::Mindmap); + assert_eq!( + imported.blocks[0].props.extra.get("mindmapId"), + Some(&serde_json::json!("mind_1")) + ); + + let exported = + EditorBlockDocumentTiptapBridge::to_tiptap_doc(&imported).expect("mindmap should export"); + let exported_value = serde_json::to_value(exported).expect("exported doc should serialize"); + assert_eq!( + exported_value.pointer("/content/0/attrs/mnoteBlockType"), + Some(&serde_json::json!("mindmap")) + ); + assert_eq!( + exported_value.pointer("/content/0/attrs/mindmapId"), + Some(&serde_json::json!("mind_1")) + ); +} diff --git a/rust/crates/core-protocol/tests/resource_tree_contract.rs b/rust/crates/core-protocol/tests/resource_tree_contract.rs new file mode 100644 index 00000000..d8206397 --- /dev/null +++ b/rust/crates/core-protocol/tests/resource_tree_contract.rs @@ -0,0 +1,89 @@ +use core_protocol::{ + KernelBlockAssetRelation, KernelObjectIdentity, KernelObjectKind, KernelProjectionAssetKind, + KernelProjectionResourceKind, KernelProjectionResourceMeta, +}; + +#[test] +fn object_identity_separates_index_body_from_mindmap_asset() { + let index_identity = KernelObjectIdentity { + object_kind: KernelObjectKind::Index, + document_id: Some("doc_1".into()), + block_id: None, + asset_id: None, + }; + let mindmap_identity = KernelObjectIdentity { + object_kind: KernelObjectKind::Mindmap, + document_id: Some("doc_1".into()), + block_id: Some("block_mindmap_1".into()), + asset_id: Some("mind_1".into()), + }; + + assert_ne!(index_identity, mindmap_identity); + + let index_json = serde_json::to_value(&index_identity).expect("index identity 序列化"); + let mindmap_json = serde_json::to_value(&mindmap_identity).expect("mindmap identity 序列化"); + + assert_eq!(index_json["objectKind"], "index"); + assert_eq!(index_json["documentId"], "doc_1"); + assert_eq!(mindmap_json["objectKind"], "mindmap"); + assert_eq!(mindmap_json["assetId"], "mind_1"); +} + +#[test] +fn resource_meta_can_describe_asset_object_kinds() { + let cases = [ + ( + KernelObjectKind::Mindmap, + KernelProjectionResourceKind::Mindmap, + KernelProjectionAssetKind::Mindmap, + "mind_1", + ), + ( + KernelObjectKind::OnlyOffice, + KernelProjectionResourceKind::OnlyOffice, + KernelProjectionAssetKind::File, + "office_1", + ), + ( + KernelObjectKind::Attachment, + KernelProjectionResourceKind::Attachment, + KernelProjectionAssetKind::Image, + "image_1", + ), + ( + KernelObjectKind::Code, + KernelProjectionResourceKind::Code, + KernelProjectionAssetKind::File, + "code_1", + ), + ]; + + for (object_kind, resource_kind, asset_kind, asset_id) in cases { + let meta = KernelProjectionResourceMeta { + resource_kind: Some(resource_kind), + document_id: Some("doc_1".into()), + asset_id: Some(asset_id.into()), + workspace_id: Some("ws_1".into()), + asset_kind: Some(asset_kind.clone()), + icon_hint: None, + object_identity: Some(KernelObjectIdentity { + object_kind, + document_id: Some("doc_1".into()), + block_id: Some("block_1".into()), + asset_id: Some(asset_id.into()), + }), + block_asset_relation: Some(KernelBlockAssetRelation { + document_id: "doc_1".into(), + block_id: "block_1".into(), + asset_id: asset_id.into(), + asset_kind, + }), + extra: Default::default(), + }; + + let json = serde_json::to_value(&meta).expect("resource meta 序列化"); + assert_eq!(json["objectIdentity"]["documentId"], "doc_1"); + assert_eq!(json["blockAssetRelation"]["blockId"], "block_1"); + assert_eq!(json["blockAssetRelation"]["assetId"], asset_id); + } +} diff --git a/rust/crates/mnote-web/src/routes/documents.rs b/rust/crates/mnote-web/src/routes/documents.rs index 831db016..8b5a7cf2 100644 --- a/rust/crates/mnote-web/src/routes/documents.rs +++ b/rust/crates/mnote-web/src/routes/documents.rs @@ -1,7 +1,9 @@ use crate::app::AppState; use crate::context::RequestContext; use crate::error::WebError; -use crate::routes::command_support::execute_runtime_command_via_convex; +use crate::routes::command_support::{ + execute_runtime_command_via_convex, execute_runtime_command_via_convex_with_artifacts, +}; use crate::routes::local_folder_source::{ save_local_markdown_page, update_local_markdown_title, update_local_page_options, }; @@ -574,17 +576,21 @@ pub async fn save( dry_run: false, validate_only: false, }; - let mut result = execute_runtime_command_via_convex( + let execution = execute_runtime_command_via_convex_with_artifacts( state.config(), &context, effective_workspace_id.as_deref(), command, ) .await?; + let mut result = execution.result; if let Value::Object(map) = &mut result { map.insert("executedCommand".into(), json!("page.body.save")); map.insert("canonicalCommand".into(), json!("page.body.save")); map.insert("compatRoute".into(), json!("/api/documents/save")); + if let Some(artifact_error) = execution.artifact_error { + map.insert("artifactError".into(), json!(artifact_error)); + } } Ok(ok_response(&context, result)) } diff --git a/rust/crates/mnote-web/src/routes/gateway.rs b/rust/crates/mnote-web/src/routes/gateway.rs index de363410..c651d15c 100644 --- a/rust/crates/mnote-web/src/routes/gateway.rs +++ b/rust/crates/mnote-web/src/routes/gateway.rs @@ -3,8 +3,9 @@ use crate::context::RequestContext; use crate::error::WebError; use crate::routes::local_folder_source::load_local_folder_page_tree_snapshot; use crate::routes::web_shell::{ - build_editor_bootstrap_json, build_page_aggregate_snapshot, escape_html, escape_script_json, - load_file_tree_html, load_sidebar_tree_html, load_workspace_shell_projection, + build_document_panes_bootstrap_json, build_editor_bootstrap_json, + build_page_aggregate_snapshot, escape_html, escape_script_json, load_file_tree_html, + load_sidebar_tree_html, load_workspace_shell_projection, render_document_title_controller_script, render_editor_island_adapter_script, render_local_file_tree_html, render_local_sidebar_tree_html, }; @@ -336,6 +337,17 @@ pub async fn root_entry( active_source_kind.as_deref(), active_root_uri.as_deref(), ); + let panes_bootstrap_json = build_document_panes_bootstrap_json( + &aggregate, + &context, + active_source_kind.as_deref(), + active_root_uri.as_deref(), + None, + None, + None, + false, + false, + ); let content = crate::ssr::render_view(leptos::view! { {} + {} {}"#, escape_script_json(&snapshot_json), escape_script_json(&bootstrap_json), + escape_script_json(&panes_bootstrap_json), render_document_title_controller_script(), render_editor_island_adapter_script(), ); @@ -953,6 +967,20 @@ mod tests { legacy_next_base_url: String, enable_legacy_next_compat: bool, convex_url: Option, + ) -> axum::Router { + app_with_query_fixtures( + legacy_next_base_url, + enable_legacy_next_compat, + convex_url, + None, + ) + } + + fn app_with_query_fixtures( + legacy_next_base_url: String, + enable_legacy_next_compat: bool, + convex_url: Option, + query_fixtures_json: Option, ) -> axum::Router { build_app(AppState::new(AppConfig { service_name: "mnote-web".into(), @@ -967,7 +995,7 @@ mod tests { convex_url, convex_admin_key: None, allow_dev_fixtures: true, - query_fixtures_json: None, + query_fixtures_json, mutation_fixtures_json: Some(r#"{"workspaces:ensureDefaultWorkspace":{"workspaces":[{"id":"ws_demo","name":"我的空间","type":"personal","iconUrl":null,"memberCount":1,"isDefault":true}],"activeWorkspaceId":"ws_demo"}}"#.into()), dev_user_id: "dev-user".into(), dev_user_name: "开发用户".into(), @@ -1221,6 +1249,55 @@ mod tests { assert!(html.contains(r#"data-root-active-page-id="page_child""#)); } + #[tokio::test] + async fn root_entry_active_page_includes_document_panes_bootstrap() { + let response = app_with_query_fixtures( + "http://127.0.0.1:3100".into(), + false, + None, + Some( + r#"{ + "documents:getMeta": { + "id": "doc_1", + "workspace_id": "ws_demo", + "title": "服务端页面", + "updated_at": "2026-04-18T09:30:00Z", + "can_edit": true, + "word_count": 42, + "character_count": 128, + "block_count": 1 + }, + "documents:getContent": { + "content": [{"id": "block_1", "type": "paragraph", "content": []}], + "revision": 7, + "conflict_detection_key": "doc_1:7", + "pageSubtree": {"rootNodeId": "doc_1", "outline": []} + } + }"# + .into(), + ), + ) + .oneshot( + Request::builder() + .uri("/?pageId=doc_1&workspaceId=ws_demo") + .header("x-mnote-actor-id", "user_real") + .header("x-mnote-actor-type", "user") + .body(Body::empty()) + .expect("request"), + ) + .await + .expect("response"); + + assert_eq!(response.status(), StatusCode::OK); + let body = to_bytes(response.into_body(), usize::MAX) + .await + .expect("body"); + let html = String::from_utf8(body.to_vec()).expect("utf8"); + assert!(html.contains("__MNOTE_PAGE_AGGREGATE__")); + assert!(html.contains("__MNOTE_DOCUMENT_PANES_BOOTSTRAP__")); + assert!(html.contains("mnote.document_panes_bootstrap.v1")); + } + #[tokio::test] async fn root_entry_renders_local_folder_without_debug_tree_route() { let root = diff --git a/rust/crates/mnote-web/src/routes/mindmap_api.rs b/rust/crates/mnote-web/src/routes/mindmap_api.rs index ccbfd971..7a2d85b3 100644 --- a/rust/crates/mnote-web/src/routes/mindmap_api.rs +++ b/rust/crates/mnote-web/src/routes/mindmap_api.rs @@ -1,9 +1,10 @@ use crate::app::AppState; use crate::context::RequestContext; use crate::error::WebError; -use crate::routes::command_support::execute_runtime_command_via_convex; +use crate::routes::command_support::execute_runtime_command_via_convex_with_artifacts; use crate::routes::query_support::{ - execute_runtime_query_via_convex, fetch_query_data_via_convex, resolve_effective_workspace_id, + execute_runtime_query_via_convex, fetch_documents_meta_via_convex, fetch_query_data_via_convex, + resolve_effective_workspace_id, }; use axum::extract::{Extension, Path, Query, State}; use axum::http::{HeaderMap, HeaderName, HeaderValue, StatusCode}; @@ -35,6 +36,15 @@ pub struct MindmapCommandRequest { pub commands: Vec, pub projection_revision: Option, pub workspace_id: Option, + pub data: Option, + pub create_only: Option, +} + +fn default_mindmap_data() -> Value { + json!({ + "data": {"text": "中心主题"}, + "children": [], + }) } fn response_headers() -> HeaderMap { @@ -62,6 +72,41 @@ fn resolve_query_name(params: &MindmapQueryParams) -> &'static str { "mindmap.projection.get" } +fn read_workspace_id_from_meta(meta: &Value) -> Option { + meta.get("workspace_id") + .or_else(|| meta.get("workspaceId")) + .and_then(Value::as_str) + .map(str::trim) + .filter(|value| !value.is_empty()) + .map(ToOwned::to_owned) +} + +async fn resolve_mindmap_workspace_id( + state: &AppState, + context: &RequestContext, + explicit_workspace_id: Option<&str>, + document_id: &str, +) -> Result, WebError> { + let effective_workspace_id = + resolve_effective_workspace_id(context, explicit_workspace_id, false)?; + if effective_workspace_id.is_some() { + return Ok(effective_workspace_id); + } + + // 思维导图 runtime 的历史请求体不一定带 workspaceId; + // 这里从页面 meta 反查,确保后续 command artifacts 能进入正确 workspace 的实时流。 + let meta = fetch_documents_meta_via_convex(state.config(), context, None, document_id).await?; + Ok(read_workspace_id_from_meta(&meta)) +} + +fn execution_artifacts_json(execution: &crate::transport::convex::ConvexCommandExecution) -> Value { + execution + .artifacts + .as_ref() + .and_then(|artifacts| serde_json::to_value(artifacts).ok()) + .unwrap_or(Value::Null) +} + pub async fn get_mindmap( State(state): State, Extension(context): Extension, @@ -114,15 +159,79 @@ pub async fn apply_mindmap_command( ) .with_context(&context)); } - if body.command_name.as_deref() != Some("mindmap.command.apply") { + let command_name = body.command_name.as_deref(); + if !matches!( + command_name, + None | Some("mindmaps.put") | Some("mindmap.command.apply") + ) { return Err(WebError::bad_request_code( "mindmap_command_required", - "仅支持 mindmap.command.apply", + "仅支持 mindmaps.put 或 mindmap.command.apply", ) .with_context(&context)); } let effective_workspace_id = - resolve_effective_workspace_id(&context, body.workspace_id.as_deref(), false)?; + resolve_mindmap_workspace_id(&state, &context, body.workspace_id.as_deref(), document_id) + .await?; + + if command_name != Some("mindmap.command.apply") { + let command = RuntimeCommandEnvelopeWire { + name: "mindmaps.put".into(), + command_id: format!("mindmap_put_{}", context.trace.request_id), + idempotency_key: context.source.idempotency_key.clone(), + actor: RuntimeActorWire { + actor_type: context.auth.actor_type.clone(), + actor_id: context.auth.actor_id.clone(), + session_id: context.auth.session_id.clone(), + }, + source: RuntimeSourceWire { + channel: context.source.channel.clone(), + client: context.source.client.clone(), + source_kind: None, + root_uri: None, + workspace_id: None, + capabilities: Vec::new(), + }, + target: Some(RuntimeTargetWire { + workspace_id: effective_workspace_id.clone(), + page_id: Some(document_id.to_string()), + block_id: Some(mindmap_id.to_string()), + }), + payload: json!({ + "documentId": document_id, + "mindmapId": mindmap_id, + "workspaceId": effective_workspace_id, + "data": body.data.unwrap_or_else(default_mindmap_data), + "createOnly": body.create_only.unwrap_or(false), + }), + preflight_data: None, + reason: Some("mnote-web mindmap put via kernel projection".into()), + refs: vec!["task168-mindmap-put-validator-smoke".into()], + dry_run: false, + validate_only: false, + }; + + let execution = execute_runtime_command_via_convex_with_artifacts( + state.config(), + &context, + effective_workspace_id.as_deref(), + command, + ) + .await?; + + return Ok(( + StatusCode::OK, + response_headers(), + Json(json!({ + "ok": true, + "commandName": "mindmaps.put", + "result": execution.result, + "artifacts": execution_artifacts_json(&execution), + "artifactError": execution.artifact_error, + })), + )); + } + let current = fetch_query_data_via_convex( state.config(), &context, @@ -184,7 +293,7 @@ pub async fn apply_mindmap_command( validate_only: false, }; - let result = execute_runtime_command_via_convex( + let execution = execute_runtime_command_via_convex_with_artifacts( state.config(), &context, effective_workspace_id.as_deref(), @@ -201,7 +310,96 @@ pub async fn apply_mindmap_command( "applied": applied.applied, "errors": applied.errors, "projectionRevision": body.projection_revision, - "result": result, + "result": execution.result, + "artifacts": execution_artifacts_json(&execution), + "artifactError": execution.artifact_error, })), )) } + +#[cfg(test)] +mod tests { + use crate::app::{build_app, AppConfig, AppState}; + use axum::body::{to_bytes, Body}; + use axum::http::{Request, StatusCode}; + use serde_json::{json, Value}; + use tower::util::ServiceExt; + + fn app() -> axum::Router { + build_app(AppState::new(AppConfig { + service_name: "mnote-web".into(), + service_version: "0.1.0".into(), + bind_addr: "127.0.0.1:0".into(), + public_bind_addr: "127.0.0.1:3000".into(), + legacy_next_base_url: Some("http://127.0.0.1:3100".into()), + enable_legacy_next_compat: true, + enable_debug_shell_routes: false, + hermes_base_path: "/api/hermes".into(), + compat_next_base_path: "/api/compat/next".into(), + convex_url: None, + convex_admin_key: None, + allow_dev_fixtures: true, + query_fixtures_json: Some( + r#"{"documents:getMeta":{"id":"doc_1","workspace_id":"ws_demo","title":"页面"},"mindmaps:get":{"data":{"data":{"text":"KMIND","uid":"root"},"children":[]},"revision":1}}"# + .into(), + ), + mutation_fixtures_json: Some( + r#"{"mindmaps:put":{"ok":true,"document_id":"doc_1","mindmap_id":"mind_1","updated_at":"2026-05-12T00:00:00Z"},"bridgeLogs:recordCommandLog":{"ok":true,"id":"clog_fixture"},"bridgeLogs:recordDomainEvent":{"ok":true,"id":"evt_fixture"}}"# + .into(), + ), + dev_user_id: "dev-user".into(), + dev_user_name: "开发用户".into(), + dev_user_email: "dev@mnote.local".into(), + })) + } + + #[tokio::test] + async fn mindmap_put_derives_workspace_and_returns_tree_artifacts() { + let response = app() + .oneshot( + Request::builder() + .method("POST") + .uri("/api/mindmap/doc_1/mind_1") + .header("content-type", "application/json") + .body(Body::from( + json!({ + "data": { + "data": {"text": "KMIND", "uid": "root"}, + "children": [] + }, + "createOnly": true + }) + .to_string(), + )) + .expect("request"), + ) + .await + .expect("response"); + + assert_eq!(response.status(), StatusCode::OK); + let body = to_bytes(response.into_body(), usize::MAX) + .await + .expect("body"); + let payload: Value = serde_json::from_slice(&body).expect("json"); + + assert_eq!(payload["artifacts"]["commandLog"]["workspaceId"], "ws_demo"); + assert_eq!(payload["artifacts"]["commandLog"]["targetPageId"], "doc_1"); + assert_eq!( + payload["artifacts"]["commandLog"]["targetBlockId"], + "mind_1" + ); + assert_eq!( + payload["artifacts"]["domainEvent"]["eventType"], + "tree.resource.mindmap.put" + ); + assert_eq!( + payload["artifacts"]["domainEvent"]["payload"]["streamDelta"], + json!({ + "op": "resync_required", + "reason": "mindmap.put", + "documentId": "doc_1", + "blockId": "mind_1" + }) + ); + } +} diff --git a/rust/crates/mnote-web/src/routes/mindmap_shell.rs b/rust/crates/mnote-web/src/routes/mindmap_shell.rs index 916a69c0..4e6d1d8e 100644 --- a/rust/crates/mnote-web/src/routes/mindmap_shell.rs +++ b/rust/crates/mnote-web/src/routes/mindmap_shell.rs @@ -1,7 +1,13 @@ +use crate::app::AppState; use crate::context::RequestContext; use crate::error::WebError; +use crate::routes::web_shell::{ + build_page_aggregate_snapshot, load_file_tree_html, load_sidebar_tree_html, + load_workspace_shell_projection, +}; use crate::ssr::pages::mindmap::MindmapPage; -use axum::extract::{Extension, Path}; +use crate::workspace_shell::render_workspace_shell_sidebar_html; +use axum::extract::{Extension, Path, State}; use axum::http::{HeaderMap, HeaderName, HeaderValue}; use axum::response::{Html, IntoResponse, Response}; use serde_json::json; @@ -10,9 +16,92 @@ const HEADER_MNOTE_WEB_OWNER: &str = "x-mnote-web-owner"; const HEADER_MNOTE_WEB_SHELL: &str = "x-mnote-web-shell"; pub async fn mindmap_object_shell( + State(state): State, Extension(context): Extension, Path((doc_id, mindmap_id)): Path<(String, String)>, ) -> Result { + let default_workspace_name = format!("{} 的空间", state.config().dev_user_name); + let aggregate = build_page_aggregate_snapshot(&state, &context, &doc_id, None, None, None) + .await + .ok(); + let workspace_id = aggregate + .as_ref() + .map(|value| value.identity.workspace_id.clone()) + .filter(|value| !value.trim().is_empty()); + let title = aggregate + .as_ref() + .map(|value| value.head.title.trim().to_string()) + .filter(|value| !value.is_empty()) + .unwrap_or_else(|| "思维导图".to_string()); + let (workspace_name, sidebar_tree_html, workspace_sidebar_html) = + if let Some(workspace_id) = workspace_id.as_deref() { + let workspace_projection = load_workspace_shell_projection( + state.config(), + &context, + workspace_id, + Some(&doc_id), + &default_workspace_name, + ) + .await; + let sidebar_tree_html = + load_sidebar_tree_html(state.config(), &context, workspace_id, Some(&doc_id)) + .await + .unwrap_or_default(); + let file_tree_html = + load_file_tree_html(state.config(), &context, workspace_id, Some(&doc_id)) + .await + .unwrap_or_default(); + let workspace_name = workspace_projection.workspace_name.clone(); + let workspace_sidebar_html = render_workspace_shell_sidebar_html( + &workspace_projection, + Some(sidebar_tree_html.as_str()), + Some(file_tree_html.as_str()), + ); + ( + Some(workspace_name), + Some(sidebar_tree_html), + Some(workspace_sidebar_html), + ) + } else { + (None, None, None) + }; + let editor_bootstrap = json!({ + "documentId": format!("__mindmap_object__:{doc_id}:{mindmap_id}"), + "workspaceId": workspace_id + .as_ref() + .map(|value| format!("__mindmap_object__:{value}")), + "title": title.clone(), + "content": { + "type": "doc", + "content": [ + { + "type": "paragraph", + "attrs": { + "mindmapId": mindmap_id, + "mnoteBlockType": "mindmap", + "projectionVersion": 1, + "rootNodeId": "root", + "mnoteMindmapData": serde_json::Value::Null + } + } + ] + }, + "readOnly": false, + "editable": true, + "standaloneObject": { + "kind": "mindmap", + "documentId": doc_id, + "mindmapId": mindmap_id + }, + "revision": serde_json::Value::Null, + "conflictDetectionKey": serde_json::Value::Null, + "pageOptions": { + "pageWidth": "full", + "smallText": false, + "showHeadingNumbers": false, + "fontFamily": "sans" + } + }); let contract = json!({ "schema": "mnote.mindmap_shell.v1", "owner": "mnote-web", @@ -35,11 +124,17 @@ pub async fn mindmap_object_shell( "requestId": context.trace.request_id, "traceId": context.trace.trace_id }); + let editor_bootstrap_json = + serde_json::to_string(&editor_bootstrap).unwrap_or_else(|_| "null".to_string()); let contract_json = serde_json::to_string(&contract).unwrap_or_else(|_| "null".to_string()); let body_content = crate::ssr::render_view(leptos::view! { }); let html = format!( @@ -47,19 +142,24 @@ pub async fn mindmap_object_shell( - 思维导图 + {} {} + + {} "#, + escape_html(&title), crate::ssr::MNOTE_CSS, escape_html(&doc_id), escape_html(&mindmap_id), body_content, + escape_script_json(&editor_bootstrap_json), escape_script_json(&contract_json), + render_mindmap_standalone_bootstrap_script(), ); let mut response = Html(html).into_response(); stamp_shell_headers(response.headers_mut(), "mindmap"); @@ -87,6 +187,80 @@ fn escape_script_json(value: &str) -> String { value.replace(" &'static str { + r#""# +} + #[cfg(test)] mod tests { use crate::app::{build_app, AppConfig, AppState}; @@ -189,9 +363,21 @@ mod tests { .expect("body"); let html = String::from_utf8(body.to_vec()).expect("utf8"); assert!(html.contains("mnote.mindmap_shell.v1")); + assert!(html.contains("data-mnote-object-editor=\"mindmap\"")); + assert!(html.contains( + "data-mnote-object-identity=\"resource:mindmap:doc_1:mind_1\"" + )); assert!(html.contains("data-leptos-mindmap-island=\"standalone\"")); assert!(html.contains("mindmap.simple_mind_map_scene.get")); assert!(html.contains("mindmap.command.apply")); + assert!(html.contains("__MNOTE_MINDMAP_EDITOR_BOOTSTRAP__")); + assert!(html.contains("mnoteBlockType")); + assert!(html.contains("__mindmap_object__:doc_1:mind_1")); + assert!(html.contains("\"standaloneObject\"")); + assert!(html.contains("\"documentId\":\"doc_1\"")); + assert!(html.contains("\"mindmapId\":\"mind_1\"")); + assert!(html.contains("runtimeModule.mount(mountTarget, bootstrap)")); + assert!(html.contains("/api/leptos-tiptap-runtime/manifest.json")); assert!(!html.contains("react_mindmap_runtime")); assert!(!html.contains("next-app-router")); } diff --git a/rust/crates/mnote-web/src/routes/sse.rs b/rust/crates/mnote-web/src/routes/sse.rs index 109edf34..4c75079a 100644 --- a/rust/crates/mnote-web/src/routes/sse.rs +++ b/rust/crates/mnote-web/src/routes/sse.rs @@ -57,8 +57,9 @@ pub async fn events( state.polls += 1; sleep(Duration::from_millis(poll_ms)).await; + let poll_query = live_poll_query(&state.query); let Ok((workspace_id, overview)) = - load_stream_overview(state.app_state.config(), &state.context, &state.query) + load_stream_overview(state.app_state.config(), &state.context, &poll_query) .await else { return None; @@ -76,7 +77,7 @@ pub async fn events( let Ok(payload) = build_stream_delta_payload( state.app_state.config(), &state.context, - &state.query, + &poll_query, &workspace_id, &overview, change.cursor, @@ -91,18 +92,15 @@ pub async fn events( return Some((Ok(stream_event("delta", &payload)), Some(state))); } StreamChangeKind::Resync => { - let mut next_query = state.query.clone(); - next_query.cursor = change.cursor; let Ok(snapshot_payload) = load_stream_snapshot( state.app_state.config(), &state.context, - &next_query, + &poll_query, ) .await else { return None; }; - state.query = next_query; state.current_cursor = read_stream_cursor_from_payload(&snapshot_payload); return Some(( Ok(stream_event( @@ -157,6 +155,14 @@ struct StreamPollState { initial_emitted: bool, } +fn live_poll_query(query: &StreamSnapshotQuery) -> StreamSnapshotQuery { + let mut next = query.clone(); + // Convex bridgeLogs 的 cursor 是“向更旧记录翻页”,不是 live tail 的起点; + // 实时轮询必须始终查最新窗口,再用 current_cursor 在 Rust 侧比较增量。 + next.cursor = None; + next +} + fn stream_event(event_name: &str, payload: &Value) -> Event { let event_id = payload .get("revision") @@ -183,6 +189,7 @@ fn stream_event(event_name: &str, payload: &Value) -> Event { #[cfg(test)] mod tests { use crate::app::{build_app, AppConfig, AppState}; + use crate::routes::stream_support::StreamSnapshotQuery; use axum::body::{to_bytes, Body}; use axum::http::{Request, StatusCode}; use tower::util::ServiceExt; @@ -289,4 +296,20 @@ mod tests { assert!(text.contains("id: ")); assert!(text.contains("\"revision\"")); } + + #[test] + fn live_poll_query_drops_bridge_pagination_cursor() { + let query = StreamSnapshotQuery { + workspace_id: Some("ws_demo".into()), + cursor: Some(r#"{"createdAt":"2026-05-12T00:00:00Z","id":"clog_1"}"#.into()), + poll_ms: Some(250), + ..StreamSnapshotQuery::default() + }; + + let live_query = super::live_poll_query(&query); + + assert_eq!(live_query.workspace_id, Some("ws_demo".into())); + assert_eq!(live_query.poll_ms, Some(250)); + assert_eq!(live_query.cursor, None); + } } diff --git a/rust/crates/mnote-web/src/routes/tree.rs b/rust/crates/mnote-web/src/routes/tree.rs index f84d52f8..41edd969 100644 --- a/rust/crates/mnote-web/src/routes/tree.rs +++ b/rust/crates/mnote-web/src/routes/tree.rs @@ -540,6 +540,9 @@ pub(crate) fn collect_filetree_render_rows( .map(str::trim) .filter(|value| !value.is_empty()) .map(ToOwned::to_owned), + object_identity: resource_meta + .and_then(|meta| meta.get("objectIdentity")) + .and_then(|value| serde_json::to_string(value).ok()), selected, }) }) @@ -1686,13 +1689,25 @@ fn build_tree_shell_html( documentId: "", assetId: "", assetKind: "", + objectIdentity: null, + blockAssetRelation: null, }; } + const objectIdentity = + value?.objectIdentity && typeof value.objectIdentity === "object" + ? value.objectIdentity + : null; + const blockAssetRelation = + value?.blockAssetRelation && typeof value.blockAssetRelation === "object" + ? value.blockAssetRelation + : null; return { resourceKind: normalizeText(value?.resourceKind), documentId: normalizeText(value?.documentId), assetId: normalizeText(value?.assetId), assetKind: normalizeText(value?.assetKind), + objectIdentity, + blockAssetRelation, }; }; @@ -4690,12 +4705,14 @@ fn build_tree_shell_html( postToHost("tree.asset.open", { documentId: documentId || null, assetId: assetId || null, + objectIdentity: item.resourceMeta?.objectIdentity || null, target: { documentId: documentId || null }, payload: { documentId: documentId || null, assetId: assetId || null, rowId: item.rowId, rowKind: item.rowKind, + objectIdentity: item.resourceMeta?.objectIdentity || null, }, }); }; @@ -4857,6 +4874,10 @@ fn build_tree_shell_html( row.dataset.rowKind = item.rowKind; row.dataset.documentId = documentId || ""; row.dataset.assetId = assetId || ""; + row.dataset.objectIdentity = item.resourceMeta?.objectIdentity + ? JSON.stringify(item.resourceMeta.objectIdentity) + : ""; + row.dataset.objectKind = item.resourceMeta?.objectIdentity?.objectKind || ""; row.dataset.shellMode = "filetree"; row.dataset.selected = String(selectedFileTreeRowIds.has(item.rowId)); row.dataset.dropTarget = String(activeFileTreeDropRowId === item.rowId); @@ -5308,12 +5329,14 @@ fn build_tree_shell_html( postToHost("tree.asset.open", { documentId: documentId || null, assetId: assetId || null, + objectIdentity: item.resourceMeta?.objectIdentity || null, target: { documentId: documentId || null }, payload: { documentId: documentId || null, assetId: assetId || null, rowId: item.rowId, rowKind: item.rowKind, + objectIdentity: item.resourceMeta?.objectIdentity || null, }, }); }; @@ -5382,6 +5405,10 @@ fn build_tree_shell_html( row.dataset.rowKind = item.rowKind; row.dataset.documentId = documentId || ""; row.dataset.assetId = assetId || ""; + row.dataset.objectIdentity = item.resourceMeta?.objectIdentity + ? JSON.stringify(item.resourceMeta.objectIdentity) + : ""; + row.dataset.objectKind = item.resourceMeta?.objectIdentity?.objectKind || ""; row.dataset.shellMode = "filetree"; row.dataset.selected = String(selectedFileTreeRowIds.has(item.rowId)); row.dataset.dropTarget = String(activeFileTreeDropRowId === item.rowId); diff --git a/rust/crates/mnote-web/src/routes/web_shell.rs b/rust/crates/mnote-web/src/routes/web_shell.rs index 8bb0c56f..897b54b1 100644 --- a/rust/crates/mnote-web/src/routes/web_shell.rs +++ b/rust/crates/mnote-web/src/routes/web_shell.rs @@ -288,7 +288,7 @@ pub(crate) fn build_editor_bootstrap_json_with_ids( .unwrap_or_else(|_| "{}".to_string()) } -fn build_document_panes_bootstrap_json( +pub(crate) fn build_document_panes_bootstrap_json( aggregate: &PageAggregate, context: &RequestContext, source_kind: Option<&str>, @@ -815,6 +815,28 @@ pub(crate) fn render_editor_island_adapter_script() -> &'static str { return { type: 'codeBlock', attrs: withTextAlign({ blockId, language: block?.props?.language || null }), content }; } if (type === 'divider' || type === 'horizontalRule' || type === 'horizontal_rule') return { type: 'horizontalRule', attrs: { blockId } }; + if (type === 'mindmap') { + const data = block?.props?.data && typeof block.props.data === 'object' ? block.props.data : null; + const mindmapId = firstNonEmptyText( + block?.props?.mindmapId, + block?.props?.mindmap_id, + block?.mindmapId, + block?.mindmap_id, + data?.mindmapId, + data?.mindmap_id, + data?.id + ); + const rootNodeId = firstNonEmptyText(block?.props?.rootNodeId, block?.props?.root_node_id, data?.rootNodeId, data?.root_node_id) || 'root'; + return { + type: 'paragraph', + attrs: withTextAlign({ + blockId, + mnoteBlockType: 'mindmap', + mindmapId, + rootNodeId, + }), + }; + } if (type === 'media') { const sourcePath = firstNonEmptyText(block?.props?.sourcePath, block?.props?.url, block?.props?.src); const name = firstNonEmptyText(block?.props?.name, block?.props?.fileName, block?.props?.title, sourcePath); @@ -882,6 +904,41 @@ pub(crate) fn render_editor_island_adapter_script() -> &'static str { content.type === 'doc' ); + const mindmapDomDescriptors = (root) => { + if (!(root instanceof HTMLElement)) return []; + return Array.from(root.querySelectorAll('[data-testid="mnote-mindmap-editor-root"]')) + .flatMap((node) => { + if (!(node instanceof HTMLElement)) return []; + const mindmapId = typeof node.dataset.mnoteMindmapId === 'string' ? node.dataset.mnoteMindmapId.trim() : ''; + if (!mindmapId) return []; + const rootNodeId = typeof node.dataset.mnoteRootNodeId === 'string' && node.dataset.mnoteRootNodeId.trim() + ? node.dataset.mnoteRootNodeId.trim() + : 'root'; + return [{ mindmapId, rootNodeId }]; + }); + }; + + const hydrateMindmapAttrsFromDom = (tiptapDocument, root) => { + if (!isTiptapDocument(tiptapDocument) || !Array.isArray(tiptapDocument.content)) return tiptapDocument; + const descriptors = mindmapDomDescriptors(root); + if (!descriptors.length) return tiptapDocument; + let index = 0; + for (const node of tiptapDocument.content) { + if (node?.type !== 'paragraph' || node?.attrs?.mnoteBlockType !== 'mindmap') continue; + const descriptor = descriptors[index]; + index += 1; + if (!descriptor) continue; + node.attrs = node.attrs && typeof node.attrs === 'object' ? node.attrs : {}; + if (typeof node.attrs.mindmapId !== 'string' || !node.attrs.mindmapId.trim()) { + node.attrs.mindmapId = descriptor.mindmapId; + } + if (typeof node.attrs.rootNodeId !== 'string' || !node.attrs.rootNodeId.trim()) { + node.attrs.rootNodeId = descriptor.rootNodeId; + } + } + return tiptapDocument; + }; + const toTiptapDocument = (content, fallbackText = '') => { if (isTiptapDocument(content)) return content; const blocks = Array.isArray(content) ? content : Array.isArray(content?.blocks) ? content.blocks : []; @@ -923,9 +980,36 @@ pub(crate) fn render_editor_island_adapter_script() -> &'static str { const raw = typeof node?.attrs?.blockId === 'string' ? node.attrs.blockId.trim() : ''; return raw || `block-${index + 1}`; }; + const mindmapPropsFromAttrs = (attrs, fallbackMindmapId) => { + const data = attrs?.data && typeof attrs.data === 'object' ? attrs.data : {}; + const mindmapId = firstNonEmptyText( + attrs?.mindmapId, + attrs?.mindmap_id, + data?.mindmapId, + data?.mindmap_id, + data?.id, + fallbackMindmapId + ); + const rootNodeId = firstNonEmptyText(attrs?.rootNodeId, attrs?.root_node_id, data?.rootNodeId, data?.root_node_id) || 'root'; + const projectionVersion = Number(attrs?.projectionVersion ?? attrs?.projection_version); + return { + mindmapId, + rootNodeId, + ...(Number.isFinite(projectionVersion) ? { projectionVersion } : {}), + }; + }; const tiptapNodeToEditorBlock = (node, index) => { const blockId = blockIdOf(node, index); + if (node?.type === 'paragraph' && node?.attrs?.mnoteBlockType === 'mindmap') { + return { + blockId, + blockType: 'mindmap', + props: mindmapPropsFromAttrs(node?.attrs, blockId), + contentNodes: [], + childBlockIds: [], + }; + } if (node?.type === 'paragraph') return { blockId, blockType: 'paragraph', props: {}, contentNodes: inlineTextNodes(node), childBlockIds: [] }; if (node?.type === 'heading') { const level = Math.max(1, Math.min(6, Number(node?.attrs?.level || 1) || 1)); @@ -967,6 +1051,8 @@ pub(crate) fn render_editor_island_adapter_script() -> &'static str { ? { checked: Boolean(block.props?.checked) } : block.blockType === 'code_block' ? { language: block.props?.language || null } + : block.blockType === 'mindmap' + ? mindmapPropsFromAttrs(block.props || {}, block.blockId) : block.blockType === 'image' ? { ...(block.props || {}) } : block.blockType === 'toc' @@ -974,7 +1060,9 @@ pub(crate) fn render_editor_island_adapter_script() -> &'static str { : block.blockType === 'table' ? { ...(block.props || {}) } : undefined, - content: Array.isArray(block.contentNodes) + content: block.blockType === 'mindmap' + ? '' + : Array.isArray(block.contentNodes) ? block.contentNodes.map((node) => { if (!node || typeof node !== 'object') return null; const text = typeof node.text === 'string' ? node.text : ''; @@ -1060,6 +1148,7 @@ pub(crate) fn render_editor_island_adapter_script() -> &'static str { const paneViewRegistry = new Map(); let nextViewId = 1; const externalConflictMessage = '本地 Markdown 文件已在外部更新,请刷新或保存前先处理冲突'; + const treeExternalConflictMessage = '当前页面已在其它窗口更新,请刷新或保存前先处理冲突'; const SESSION_RELEASE_DELAY_MS = 1200; const parseLocalFolderEventPayload = (event) => { @@ -1316,6 +1405,11 @@ pub(crate) fn render_editor_island_adapter_script() -> &'static str { const persistSession = async (session) => { if (session.readOnly || session.saving || session.hasExternalConflict) return; + const hydrateView = sessionViews(session).find((item) => item.mountId != null) || sessionViews(session)[0]; + if (hydrateView) { + hydrateMindmapAttrsFromDom(session.currentTiptapDocument, hydrateView.runtimeDescriptor.root); + session.currentSerialized = JSON.stringify(session.currentTiptapDocument); + } const serialized = session.currentSerialized; if (!session.dirty && serialized === session.lastPersistedSerialized) { setSessionStatus(session, 'saved'); @@ -1389,16 +1483,20 @@ pub(crate) fn render_editor_island_adapter_script() -> &'static str { } }; - const scheduleSessionExternalRefresh = (session) => { + const scheduleSessionExternalRefresh = (session, source) => { if (session.externalRefreshTimer) return; + session.externalRefreshSource = source || session.externalRefreshSource || 'mnote-web-external-change'; session.externalRefreshTimer = window.setTimeout(() => { + const refreshSource = session.externalRefreshSource || 'mnote-web-external-change'; + session.externalRefreshSource = ''; session.externalRefreshTimer = 0; - void refreshSessionFromExternalFileChange(session); + void refreshSessionFromExternalChange(session, refreshSource); }, 120); }; - const refreshSessionFromExternalFileChange = async (session) => { - if (session.sourceKind !== 'local_folder' || !session.rootUri || document.hidden) return; + const refreshSessionFromExternalChange = async (session, source) => { + if (document.hidden) return; + if (session.sourceKind === 'local_folder' && !session.rootUri) return; try { const response = await fetch(pageAggregateUrl({ documentId: session.documentId, @@ -1439,14 +1537,19 @@ pub(crate) fn render_editor_island_adapter_script() -> &'static str { session.hasExternalConflict = false; session.lastUserInputAt = 0; sessionViews(session).forEach((view) => { - if (view.mountId != null) dispatchSessionContentToView(session, view, 'mnote-web-local-folder-watch'); + if (view.mountId != null) dispatchSessionContentToView(session, view, source || 'mnote-web-external-change'); }); setSessionStatus(session, 'synced-external-change'); } catch (error) { - console.warn('mnote local folder 外部更新检测失败', error); + console.warn('mnote 页面外部更新检测失败', error); } }; + const refreshSessionFromExternalFileChange = async (session) => { + if (session.sourceKind !== 'local_folder') return; + await refreshSessionFromExternalChange(session, 'mnote-web-local-folder-watch'); + }; + const ensureLocalFolderEventChannel = (session) => { if (session.sourceKind !== 'local_folder' || !session.rootUri || typeof window.EventSource !== 'function') { return; @@ -1473,7 +1576,7 @@ pub(crate) fn render_editor_island_adapter_script() -> &'static str { markSessionExternalConflict(targetSession, externalConflictMessage); return; } - scheduleSessionExternalRefresh(targetSession); + scheduleSessionExternalRefresh(targetSession, 'mnote-web-local-folder-watch'); }); }); eventSource.onerror = () => { @@ -1485,6 +1588,164 @@ pub(crate) fn render_editor_island_adapter_script() -> &'static str { session.localFolderChannel = channel; }; + const readTreePayloadData = (payload) => ( + payload && typeof payload === 'object' + ? (payload.data || payload.delta || payload) + : null + ); + + const readTreePayloadOverview = (payload) => ( + payload && typeof payload === 'object' && payload.overview && typeof payload.overview === 'object' + ? payload.overview + : null + ); + + const readTreePayloadCursor = (payload) => { + const raw = String(payload?.cursor || payload?.revision || '').trim(); + if (!raw) return { id: '', createdAt: '', raw: '' }; + try { + const parsed = JSON.parse(raw); + if (parsed && typeof parsed === 'object') { + return { + id: String(parsed.id || parsed.commandId || parsed.command_id || '').trim(), + createdAt: String(parsed.createdAt || parsed.created_at || '').trim(), + raw, + }; + } + } catch (_) {} + return { id: raw, createdAt: '', raw }; + }; + + const treeRecordMatchesPayloadCursor = (record, payload) => { + if (!record || typeof record !== 'object') return false; + const cursor = readTreePayloadCursor(payload); + if (!cursor.id && !cursor.createdAt && !cursor.raw) return false; + const ids = [ + record.id, + record._id, + record.command_log_id, + record.commandLogId, + record.domain_event_id, + record.domainEventId, + record.command_id, + record.commandId, + ].map((value) => String(value || '').trim()).filter(Boolean); + if (cursor.id && ids.includes(cursor.id)) return true; + const createdAt = String(record.created_at || record.createdAt || '').trim(); + return Boolean(cursor.createdAt && createdAt && cursor.createdAt === createdAt); + }; + + const treeRecordTargetsDocument = (record, documentId) => { + if (!record || typeof record !== 'object' || !documentId) return false; + const targetPageId = String(record.target_page_id || record.targetPageId || '').trim(); + const aggregateId = String(record.aggregate_id || record.aggregateId || '').trim(); + if (targetPageId === documentId || aggregateId === documentId) return true; + const payload = record.payload && typeof record.payload === 'object' ? record.payload : null; + if (!payload) return false; + const streamDelta = payload.streamDelta || payload.stream_delta || null; + const deltaDocumentId = streamDelta && typeof streamDelta === 'object' + ? String(streamDelta.documentId || streamDelta.pageId || streamDelta.document_id || streamDelta.page_id || '').trim() + : ''; + return deltaDocumentId === documentId; + }; + + const collectMindmapIdsFromTreeRecord = (record, documentId, out) => { + if (!record || typeof record !== 'object' || !documentId) return; + if (!treeRecordTargetsDocument(record, documentId)) return; + const targetBlockId = String(record.target_block_id || record.targetBlockId || '').trim(); + if (targetBlockId) out.add(targetBlockId); + const aggregateType = String(record.aggregate_type || record.aggregateType || '').trim(); + const aggregateId = String(record.aggregate_id || record.aggregateId || '').trim(); + if (aggregateType === 'block' && aggregateId) out.add(aggregateId); + const payload = record.payload && typeof record.payload === 'object' ? record.payload : null; + const streamDelta = payload && typeof payload === 'object' ? (payload.streamDelta || payload.stream_delta || null) : null; + const blockId = streamDelta && typeof streamDelta === 'object' + ? String(streamDelta.blockId || streamDelta.block_id || '').trim() + : ''; + if (blockId) out.add(blockId); + }; + + const collectMindmapIdsFromTreePayload = (payload, session) => { + const ids = new Set(); + if (!payload || typeof payload !== 'object' || !session?.documentId) return []; + const kind = String(payload.kind || '').trim(); + const data = readTreePayloadData(payload); + if (kind === 'delta' && data && typeof data === 'object') { + const documentId = String(data.documentId || data.pageId || data.document_id || data.page_id || '').trim(); + if (!documentId || documentId === session.documentId) { + const blockId = String(data.blockId || data.block_id || '').trim(); + if (blockId) ids.add(blockId); + const streamDelta = data.streamDelta || data.stream_delta || null; + const streamBlockId = streamDelta && typeof streamDelta === 'object' + ? String(streamDelta.blockId || streamDelta.block_id || '').trim() + : ''; + if (streamBlockId) ids.add(streamBlockId); + } + } + if (kind === 'resync') { + const overview = readTreePayloadOverview(payload); + if (overview) { + const commandLogs = Array.isArray(overview.command_logs) ? overview.command_logs : Array.isArray(overview.commandLogs) ? overview.commandLogs : []; + const domainEvents = Array.isArray(overview.domain_events) ? overview.domain_events : Array.isArray(overview.domainEvents) ? overview.domainEvents : []; + commandLogs + .filter((record) => treeRecordMatchesPayloadCursor(record, payload)) + .forEach((record) => collectMindmapIdsFromTreeRecord(record, session.documentId, ids)); + domainEvents + .filter((record) => treeRecordMatchesPayloadCursor(record, payload)) + .forEach((record) => collectMindmapIdsFromTreeRecord(record, session.documentId, ids)); + } + } + return Array.from(ids); + }; + + const refreshMindmapRuntimesFromTreePayload = (payload, session) => { + const registry = window.__MNOTE_LEPTOS_MINDMAP_BRIDGES__ || {}; + collectMindmapIdsFromTreePayload(payload, session).forEach((mindmapId) => { + const bridge = registry[mindmapId]; + if (bridge && typeof bridge.refreshProjection === 'function') { + void bridge.refreshProjection('mnote-web-tree-live'); + } + }); + }; + + const treePayloadTargetsDocument = (payload, session) => { + if (!payload || typeof payload !== 'object' || !session?.documentId) return false; + if (payload.workspaceId && session.workspaceId && String(payload.workspaceId) !== String(session.workspaceId)) return false; + const data = readTreePayloadData(payload); + if (data && typeof data === 'object') { + const documentId = String(data.documentId || data.pageId || data.document_id || data.page_id || '').trim(); + if (documentId === session.documentId) return true; + const documents = Array.isArray(data.upsertDocuments) ? data.upsertDocuments : Array.isArray(data.upsert_documents) ? data.upsert_documents : []; + if (documents.some((item) => String(item?.id || item?.documentId || '').trim() === session.documentId)) return true; + } + const overview = readTreePayloadOverview(payload); + if (!overview) return false; + const commandLogs = Array.isArray(overview.command_logs) ? overview.command_logs : Array.isArray(overview.commandLogs) ? overview.commandLogs : []; + const domainEvents = Array.isArray(overview.domain_events) ? overview.domain_events : Array.isArray(overview.domainEvents) ? overview.domainEvents : []; + return commandLogs.some((record) => treeRecordTargetsDocument(record, session.documentId)) + || domainEvents.some((record) => treeRecordTargetsDocument(record, session.documentId)); + }; + + const handleTreeExternalChange = (event) => { + const payload = event?.detail?.payload || event?.detail || null; + if (!payload) return; + Array.from(documentSessionRegistry.values()).forEach((session) => { + if (session.sourceKind === 'local_folder') return; + if (!treePayloadTargetsDocument(payload, session)) return; + refreshMindmapRuntimesFromTreePayload(payload, session); + session.lastExternalChangeSignalAt = Date.now(); + session.externalChangePending = true; + if (session.hasExternalConflict || sessionHasRecentLocalInput(session) || session.dirty || session.saveTimer || session.saving) { + markSessionExternalConflict(session, treeExternalConflictMessage); + return; + } + scheduleSessionExternalRefresh(session, 'mnote-web-tree-live'); + }); + }; + + window.addEventListener('tree:delta', handleTreeExternalChange); + window.addEventListener('tree:resync', handleTreeExternalChange); + const createDocumentSession = (runtimeDescriptor) => { const pageBody = runtimeDescriptor.aggregate.body || {}; const permissions = runtimeDescriptor.aggregate.head?.permissions || {}; @@ -1513,6 +1774,7 @@ pub(crate) fn render_editor_island_adapter_script() -> &'static str { saving: false, hasExternalConflict: false, externalChangePending: false, + externalRefreshSource: '', lastExternalChangeSignalAt: 0, lastUserInputAt: 0, status: 'booting', @@ -1714,10 +1976,10 @@ pub(crate) fn render_editor_island_adapter_script() -> &'static str { const pendingExternalChange = session.sourceKind === 'local_folder' && session.externalChangePending; const recentExternalChange = sessionHasRecentExternalSignal(session); const recentLocalInput = sessionHasRecentLocalInput(session); - const tiptapDocument = toTiptapDocument( + const tiptapDocument = hydrateMindmapAttrsFromDom(toTiptapDocument( payload?.tiptapDocument || payload?.editorDocument || payload?.content, currentEditorText(view), - ); + ), view.runtimeDescriptor.root); const serialized = JSON.stringify(tiptapDocument); if (view.suppressedSerialized && view.suppressedSerialized === serialized) { view.suppressedSerialized = null; @@ -2614,6 +2876,13 @@ mod tests { assert!(html.contains("btn.getAttribute('data-page-openable') === 'false'")); assert!(html.contains("data-mnote-action=\"open-local-folder\"")); assert!(html.contains("refreshSessionFromExternalFileChange")); + assert!(html.contains("refreshSessionFromExternalChange")); + assert!(html.contains("treeExternalConflictMessage")); + assert!(html.contains("tree:delta")); + assert!(html.contains("tree:resync")); + assert!(html.contains("mnote-web-tree-live")); + assert!(html.contains("refreshMindmapRuntimesFromTreePayload")); + assert!(html.contains("__MNOTE_LEPTOS_MINDMAP_BRIDGES__")); assert!(html.contains("/api/local-folder/events")); assert!(html.contains("new EventSource(url.toString())")); assert!(html.contains("localFolderEventRegistry")); @@ -2714,6 +2983,14 @@ mod tests { assert!(html.contains("marks.push({ type: 'link', attrs: { href } })")); assert!(html.contains("styles.link = href")); assert!(html.contains("contentNodes.map((node) => {")); + assert!(html.contains("node?.attrs?.mnoteBlockType === 'mindmap'")); + assert!(html.contains("blockType: 'mindmap'")); + assert!(html.contains("props: mindmapPropsFromAttrs(node?.attrs, blockId)")); + assert!(html.contains("mindmapPropsFromAttrs(block.props || {}, block.blockId)")); + assert!(html.contains("mnoteBlockType: 'mindmap'")); + assert!(html.contains("block.blockType === 'mindmap'")); + assert!(html.contains("content: block.blockType === 'mindmap'")); + assert!(html.contains("? ''")); assert!(!html.contains( "block.contentNodes.map((node) => typeof node?.text === 'string' ? node.text : '').join('')" )); diff --git a/rust/crates/mnote-web/src/ssr/pages/layout.rs b/rust/crates/mnote-web/src/ssr/pages/layout.rs index c115cff0..a7ad2df9 100644 --- a/rust/crates/mnote-web/src/ssr/pages/layout.rs +++ b/rust/crates/mnote-web/src/ssr/pages/layout.rs @@ -962,6 +962,25 @@ const SIDEBAR_TREE_JS: &str = r##" return ''; } + function fileObjectIdentity(item) { + var meta = item && item.resourceMeta && typeof item.resourceMeta === 'object' ? item.resourceMeta : {}; + if (meta.objectIdentity && typeof meta.objectIdentity === 'object') return meta.objectIdentity; + var rowKind = String(item && item.rowKind || ''); + var documentId = fileDocumentId(item) || null; + var assetId = fileAssetId(item) || null; + var iconKind = iconKindOf(item); + var objectKind = rowKind === 'document' ? 'page' : rowKind === 'index' ? 'index' : iconKind === 'mindmap' ? 'mindmap' : 'attachment'; + return { objectKind: objectKind, documentId: documentId, blockId: null, assetId: assetId }; + } + + function objectIdentityAttr(identity) { + try { + return JSON.stringify(identity || {}); + } catch (_error) { + return ''; + } + } + function iconKindOf(item) { return String(item && (item.iconHint || item.rowKind || 'file') || 'file').trim() || 'file'; } @@ -976,6 +995,7 @@ const SIDEBAR_TREE_JS: &str = r##" var parent = parentIdOf(item); var documentId = fileDocumentId(item); var assetId = fileAssetId(item); + var objectIdentity = fileObjectIdentity(item); var children = grouped.get(nodeId) || []; var expandable = Boolean(item.expandable || item.childCount > 0 || children.length); var expanded = expandable && item.expandedByDefault !== false; @@ -990,7 +1010,7 @@ const SIDEBAR_TREE_JS: &str = r##" var childHtml = expandable ? '
    ' + renderFileRows(nodeId, grouped, activeId) + '
' : ''; - return '
  • ' + toggle + '
    ' + createAction + '
    ' + childHtml + '
  • '; + return '
  • ' + toggle + '
    ' + createAction + '
    ' + childHtml + '
  • '; }).join(''); } @@ -1066,11 +1086,10 @@ const SIDEBAR_TREE_JS: &str = r##" if (['doc', 'docx', 'odt', 'rtf'].indexOf(ext) >= 0) return ext; if (['ppt', 'pptx', 'odp'].indexOf(ext) >= 0) return ext; if (['xls', 'xlsx', 'ods', 'csv'].indexOf(ext) >= 0) return ext; - if (ext === 'pdf') return ext; + if (isNonOfficeAttachmentName(name, ext)) return ''; if (mt.indexOf('wordprocessingml') >= 0) return 'docx'; if (mt.indexOf('presentationml') >= 0) return 'pptx'; if (mt.indexOf('spreadsheetml') >= 0) return 'xlsx'; - if (mt.indexOf('pdf') >= 0) return 'pdf'; return ''; } @@ -1098,6 +1117,32 @@ const SIDEBAR_TREE_JS: &str = r##" return '/onlyoffice?' + params.toString(); } + function buildMindmapOpenPath(documentId, assetId) { + var doc = String(documentId || '').trim(); + var map = String(assetId || '').trim(); + if (!doc || !map) return ''; + return '/mindmap/' + encodeURIComponent(doc) + '/' + encodeURIComponent(map); + } + + function isMindmapAssetDetail(detail) { + var assetId = String(detail && detail.assetId || '').trim(); + var assetType = String(detail && detail.assetType || '').trim(); + if (assetType === 'mindmap') return true; + return assetId.indexOf('mindmap_') === 0 || assetId.indexOf('mindmap-') === 0; + } + + function readFileTreeObjectIdentity(row) { + if (!row) return null; + var raw = row.getAttribute('data-object-identity') || ''; + if (!raw) return null; + try { + var parsed = JSON.parse(raw); + return parsed && typeof parsed === 'object' ? parsed : null; + } catch (_error) { + return null; + } + } + async function fetchCurrentOnlyOfficeUserId() { try { var response = await fetch('/api/auth/whoami', { @@ -1115,6 +1160,16 @@ const SIDEBAR_TREE_JS: &str = r##" async function openConvexAssetFromFileTree(detail) { var assetId = String(detail && detail.assetId || '').trim(); if (!assetId) return; + var documentId = String(detail && detail.documentId || '').trim(); + if (isMindmapAssetDetail(detail) && documentId) { + var mindmapPath = buildMindmapOpenPath(documentId, assetId); + if (mindmapPath) { + document.documentElement.setAttribute('data-mnote-last-mindmap-asset-open-mode', 'mindmap-object-shell'); + document.documentElement.setAttribute('data-mnote-last-mindmap-asset-id', assetId); + window.location.assign(mindmapPath); + } + return; + } try { var response = await fetch('/api/media/sign?assetId=' + encodeURIComponent(assetId), { method: 'GET', @@ -1142,6 +1197,17 @@ const SIDEBAR_TREE_JS: &str = r##" }), '_blank', 'noopener,noreferrer'); return; } + if (isCodeAttachmentFileName(fileName) && String(asset.document_id || detail.documentId || '').trim() === currentDocumentId()) { + await openCodeEditorAttachment({ + href: fileUrl, + fileUrl: fileUrl, + fileName: fileName, + assetId: assetId, + documentId: String(asset.document_id || detail.documentId || '').trim(), + fileSize: uploadedFileSize(asset) + }); + return; + } window.open(fileUrl, '_blank', 'noopener,noreferrer'); } catch (error) { window.alert(error && error.message ? error.message : '打开附件失败'); @@ -1243,6 +1309,67 @@ const SIDEBAR_TREE_JS: &str = r##" return match ? match[1] : ''; } + function isNonOfficeAttachmentName(name, ext) { + var codeFileNames = [ + '.dockerignore', '.editorconfig', '.env', '.eslintrc', '.gitattributes', '.gitignore', '.npmrc', '.prettierrc', + 'dockerfile', 'makefile', 'cmakelists.txt', 'gemfile', 'rakefile', 'procfile' + ]; + return [ + 'pdf', 'toml', 'json', 'yaml', 'yml', 'md', 'markdown', 'txt', 'ini', 'env', 'xml', 'html', 'htm', 'css', 'scss', + 'less', 'js', 'jsx', 'ts', 'tsx', 'mjs', 'cjs', 'py', 'rs', 'go', 'java', 'c', 'cpp', 'h', 'hpp', 'cs', + 'php', 'rb', 'sh', 'bash', 'zsh', 'sql', 'lock', 'log', 'vue', 'svelte', 'astro', 'jsonc', 'json5', + 'mts', 'cts', 'lua', 'dart', 'kt', 'kts', 'swift', 'scala', 'gradle', 'groovy', 'clj', + 'ex', 'exs', 'erl', 'hrl', 'fs', 'fsx', 'r', 'jl', 'm', 'mm', 'pl', 'pm', 'ps1', 'bat', 'cmd', + 'psm1', 'psd1', 'dockerfile', 'containerfile', 'proto', 'graphql', 'gql', 'prisma', 'tf', 'tfvars', + 'hcl', 'nix', 'cmake', 'bazel', 'bzl', 'properties', 'conf', 'cfg', 'config', 'service', 'desktop', + 'gitignore', 'gitattributes', 'editorconfig', 'npmrc', 'prettierrc', 'eslintrc' + ].indexOf(ext) >= 0 || codeFileNames.indexOf(name) >= 0; + } + + function attachmentExtensionFromFileName(fileName) { + var name = String(fileName || '').trim().toLowerCase(); + return name.indexOf('.') >= 0 ? name.split('.').pop() : ''; + } + + function isPdfAttachmentFileName(fileName) { + return attachmentExtensionFromFileName(fileName) === 'pdf'; + } + + function isCodeAttachmentFileName(fileName) { + var name = String(fileName || '').trim().toLowerCase(); + var ext = attachmentExtensionFromFileName(name); + return ext !== 'pdf' && isNonOfficeAttachmentName(name, ext); + } + + function inferCodeAttachmentLanguage(fileName) { + var name = String(fileName || '').trim().toLowerCase(); + var ext = attachmentExtensionFromFileName(name); + var byName = { + 'dockerfile': 'dockerfile', + 'makefile': 'makefile', + 'cmakelists.txt': 'cmake', + '.gitignore': 'gitignore', + '.gitattributes': 'gitattributes', + '.editorconfig': 'ini', + '.env': 'dotenv' + }; + if (byName[name]) return byName[name]; + var byExt = { + bash: 'bash', bat: 'batch', c: 'c', cjs: 'javascript', cmd: 'batch', conf: 'text', cpp: 'cpp', + cs: 'csharp', css: 'css', cts: 'typescript', dart: 'dart', dockerfile: 'dockerfile', env: 'dotenv', + go: 'go', gql: 'graphql', gradle: 'groovy', graphql: 'graphql', h: 'c', hcl: 'hcl', hpp: 'cpp', + htm: 'html', html: 'html', ini: 'ini', java: 'java', js: 'javascript', json: 'json', json5: 'json', + jsonc: 'jsonc', jsx: 'javascript', kt: 'kotlin', kts: 'kotlin', less: 'less', log: 'text', + lua: 'lua', m: 'objective-c', markdown: 'markdown', md: 'markdown', mjs: 'javascript', + mts: 'typescript', nix: 'nix', php: 'php', pl: 'perl', pm: 'perl', prisma: 'prisma', + proto: 'protobuf', ps1: 'powershell', py: 'python', r: 'r', rb: 'ruby', rs: 'rust', + scss: 'scss', sh: 'bash', sql: 'sql', svelte: 'svelte', swift: 'swift', tf: 'terraform', + tfvars: 'terraform', toml: 'toml', ts: 'typescript', tsx: 'typescript', txt: 'text', + vue: 'vue', xml: 'xml', yaml: 'yaml', yml: 'yaml', zsh: 'bash' + }; + return byExt[ext] || 'text'; + } + function attachmentClassForFileName(fileName) { var name = String(fileName || '').trim().toLowerCase(); var ext = name.indexOf('.') >= 0 ? name.split('.').pop() : ''; @@ -1250,6 +1377,9 @@ const SIDEBAR_TREE_JS: &str = r##" if (['ppt', 'pptx', 'odp'].indexOf(ext) >= 0) return 'mnote-uploaded-attachment-row mnote-uploaded-attachment-ppt'; if (['xls', 'xlsx', 'ods', 'csv'].indexOf(ext) >= 0) return 'mnote-uploaded-attachment-row mnote-uploaded-attachment-sheet'; if (ext === 'pdf') return 'mnote-uploaded-attachment-row mnote-uploaded-attachment-pdf'; + if (isNonOfficeAttachmentName(name, ext)) { + return 'mnote-uploaded-attachment-row mnote-uploaded-attachment-code'; + } return 'mnote-uploaded-attachment-row mnote-uploaded-attachment-file'; } @@ -3050,9 +3180,99 @@ const SIDEBAR_TREE_JS: &str = r##" function openEditorAttachmentDetail(detail) { if (!detail || !detail.href) return; + if (isPdfAttachmentFileName(detail.fileName)) { + void openPdfEditorAttachment(detail); + return; + } + if (isCodeAttachmentFileName(detail.fileName)) { + void openCodeEditorAttachment(detail); + return; + } window.open(detail.href, '_blank', 'noopener,noreferrer'); } + async function resolveEditorAttachmentUrl(detail) { + var assetId = String(detail && detail.assetId || '').trim(); + if (assetId) { + var response = await fetch('/api/media/sign?assetId=' + encodeURIComponent(assetId), { + method: 'GET', + credentials: 'include', + cache: 'no-store' + }); + var payload = await response.json().catch(function() { return null; }); + if (!response.ok || !payload) { + throw new Error(payload && payload.error ? payload.error : '生成签名链接失败'); + } + var signedUrl = String(payload && payload.signedUrl || '').trim(); + if (!signedUrl) throw new Error('附件链接不可用'); + return { + url: signedUrl, + asset: payload.asset && typeof payload.asset === 'object' ? payload.asset : {} + }; + } + var url = String(detail && (detail.fileUrl || detail.href) || '').trim(); + if (!url) throw new Error('附件链接不可用'); + return { url: url, asset: {} }; + } + + async function openPdfEditorAttachment(detail) { + try { + var resolved = await resolveEditorAttachmentUrl(detail); + window.open(resolved.url, '_blank', 'noopener,noreferrer'); + } catch (error) { + window.alert(error && error.message ? error.message : '打开 PDF 失败'); + } + } + + async function openCodeEditorAttachment(detail) { + var resolved = null; + try { + resolved = await resolveEditorAttachmentUrl(detail); + var size = Number(resolved.asset && (resolved.asset.file_size || resolved.asset.fileSize) || 0); + if (Number.isFinite(size) && size > 1024 * 1024) { + window.open(resolved.url, '_blank', 'noopener,noreferrer'); + return; + } + var response = await fetch(resolved.url, { + method: 'GET', + credentials: 'include', + cache: 'no-store' + }); + if (!response.ok) throw new Error('读取附件内容失败'); + var text = await response.text(); + if (text.length > 1024 * 1024) { + window.open(resolved.url, '_blank', 'noopener,noreferrer'); + return; + } + var editorRoot = document.querySelector('.editor-surface .ProseMirror'); + var editor = editorRoot && editorRoot.editor; + if (!editor || !editor.chain) { + window.open(resolved.url, '_blank', 'noopener,noreferrer'); + return; + } + var title = String(detail.fileName || resolved.asset.file_name || '附件').trim() || '附件'; + var language = inferCodeAttachmentLanguage(title); + editor.chain().focus().insertContent([ + { + type: 'paragraph', + content: [{ type: 'text', text: title }] + }, + { + type: 'codeBlock', + attrs: { language: language }, + content: text ? [{ type: 'text', text: text.replace(/\r\n?/g, '\n') }] : [] + } + ]).run(); + } catch (error) { + console.warn('[mnote attachment] open code attachment failed', error); + if (resolved && resolved.url) { + window.open(resolved.url, '_blank', 'noopener,noreferrer'); + return; + } + window.alert(error && error.message ? error.message : '打开代码附件失败'); + } + } + async function openEditorAttachmentDownload(detail) { if (!detail) return; if (detail.assetId) { @@ -3330,6 +3550,11 @@ const SIDEBAR_TREE_JS: &str = r##" var rowKind = fileRow.getAttribute('data-row-kind') || ''; var documentId = fileRow.getAttribute('data-document-id') || fileRow.getAttribute('data-doc-id') || ''; var assetId = fileRow.getAttribute('data-asset-id') || ''; + var assetType = ''; + var kindBadge = fileRow.querySelector('.tree-kind-badge'); + if (kindBadge instanceof HTMLElement) { + assetType = kindBadge.getAttribute('data-kind') || ''; + } if (fileAction === 'toggle') { e.preventDefault(); toggleChildren(fileRow, fileBtn); @@ -3356,14 +3581,15 @@ const SIDEBAR_TREE_JS: &str = r##" } e.preventDefault(); selectSidebarFileTreeRow(fileRow, { ctrlKey: e.ctrlKey, metaKey: e.metaKey, shiftKey: e.shiftKey }); - dispatchSidebarEvent('tree.filetree.open', { rowId: rowId, rowKind: rowKind, documentId: documentId || null, assetId: assetId || null }); + var objectIdentity = readFileTreeObjectIdentity(fileRow); + dispatchSidebarEvent('tree.filetree.open', { rowId: rowId, rowKind: rowKind, documentId: documentId || null, assetId: assetId || null, assetType: assetType || null, objectIdentity: objectIdentity, workspaceId: resolveWorkspaceId(fileRow) }); if (e.shiftKey || e.ctrlKey || e.metaKey) { return; } if ((rowKind === 'document' || rowKind === 'index' || rowKind === 'markdown') && documentId) { navigateToDocument(documentId, resolveWorkspaceId(fileRow), { treeView: 'filetree' }); } else if (assetId) { - dispatchSidebarEvent('tree.asset.open', { rowId: rowId, rowKind: rowKind, documentId: documentId || null, assetId: assetId }); + dispatchSidebarEvent('tree.asset.open', { rowId: rowId, rowKind: rowKind, documentId: documentId || null, assetId: assetId, assetType: assetType || null, objectIdentity: objectIdentity, workspaceId: resolveWorkspaceId(fileRow) }); } return; } @@ -3988,6 +4214,17 @@ mod tests { assert!(SIDEBAR_TREE_JS.contains("tree.filetree.open")); assert!(SIDEBAR_TREE_JS.contains("tree.asset.open")); assert!(SIDEBAR_TREE_JS.contains("openConvexAssetFromFileTree")); + assert!(SIDEBAR_TREE_JS.contains("buildMindmapOpenPath")); + assert!(SIDEBAR_TREE_JS.contains("isMindmapAssetDetail")); + assert!(!SIDEBAR_TREE_JS.contains("openMindmapAssetInDocumentShell")); + assert!(SIDEBAR_TREE_JS.contains("data-mnote-last-mindmap-asset-open-mode")); + assert!(SIDEBAR_TREE_JS.contains("mindmap-object-shell")); + assert!(SIDEBAR_TREE_JS.contains("window.location.assign(mindmapPath)")); + assert!(SIDEBAR_TREE_JS.contains("assetType: assetType || null")); + assert!(SIDEBAR_TREE_JS.contains("data-object-identity")); + assert!(SIDEBAR_TREE_JS.contains("readFileTreeObjectIdentity")); + assert!(SIDEBAR_TREE_JS.contains("objectIdentity: objectIdentity")); + assert!(SIDEBAR_TREE_JS.contains("workspaceId: resolveWorkspaceId(fileRow)")); assert!(SIDEBAR_TREE_JS.contains("/api/media/sign?assetId=")); assert!(SIDEBAR_TREE_JS.contains("fetchCurrentOnlyOfficeUserId")); assert!(SIDEBAR_TREE_JS.contains("/api/auth/whoami")); @@ -4031,6 +4268,40 @@ mod tests { assert!(SIDEBAR_TREE_JS.contains("/api/tree/projections/file")); } + #[test] + fn sidebar_tree_runtime_keeps_pdf_and_code_assets_out_of_onlyoffice() { + assert!(SIDEBAR_TREE_JS.contains("function inferOnlyOfficeFileType")); + assert!(SIDEBAR_TREE_JS.contains("isNonOfficeAttachmentName(name, ext)")); + assert!(!SIDEBAR_TREE_JS.contains("if (ext === 'pdf') return ext;")); + assert!(!SIDEBAR_TREE_JS.contains("mt.indexOf('pdf') >= 0")); + assert!(SIDEBAR_TREE_JS.contains("mnote-uploaded-attachment-pdf")); + assert!(SIDEBAR_TREE_JS.contains("mnote-uploaded-attachment-code")); + assert!(SIDEBAR_TREE_JS.contains("'toml'")); + assert!(SIDEBAR_TREE_JS.contains("'json'")); + assert!(SIDEBAR_TREE_JS.contains("'yaml'")); + assert!(SIDEBAR_TREE_JS.contains("'md'")); + assert!(SIDEBAR_TREE_JS.contains("'vue'")); + assert!(SIDEBAR_TREE_JS.contains("'svelte'")); + assert!(SIDEBAR_TREE_JS.contains("'proto'")); + assert!(SIDEBAR_TREE_JS.contains("'dockerfile'")); + assert!(SIDEBAR_TREE_JS.contains("'.gitignore'")); + } + + #[test] + fn sidebar_tree_runtime_opens_pdf_and_code_assets_with_builtin_tools() { + assert!(SIDEBAR_TREE_JS.contains("function openPdfEditorAttachment")); + assert!(SIDEBAR_TREE_JS.contains("function openCodeEditorAttachment")); + assert!(SIDEBAR_TREE_JS.contains("function resolveEditorAttachmentUrl")); + assert!(SIDEBAR_TREE_JS.contains("type: 'codeBlock'")); + assert!(SIDEBAR_TREE_JS.contains("attrs: { language: language }")); + assert!(SIDEBAR_TREE_JS.contains("inferCodeAttachmentLanguage")); + assert!(SIDEBAR_TREE_JS.contains("if (isPdfAttachmentFileName(detail.fileName))")); + assert!(SIDEBAR_TREE_JS.contains("if (isCodeAttachmentFileName(detail.fileName))")); + assert!(SIDEBAR_TREE_JS + .contains("if (isCodeAttachmentFileName(fileName) && String(asset.document_id")); + assert!(SIDEBAR_TREE_JS.contains("await openCodeEditorAttachment({")); + } + #[test] fn tree_live_controller_marks_transport_and_closes_source_on_pagehide() { assert!(TREE_LIVE_CONTROLLER_JS.contains("convex-command-log-sse")); diff --git a/rust/crates/mnote-web/src/ssr/pages/mindmap.rs b/rust/crates/mnote-web/src/ssr/pages/mindmap.rs index 0a36e3a3..0305accb 100644 --- a/rust/crates/mnote-web/src/ssr/pages/mindmap.rs +++ b/rust/crates/mnote-web/src/ssr/pages/mindmap.rs @@ -18,17 +18,37 @@ pub fn MindmapPage( document_id: String, /// 思维导图 ID mindmap_id: String, + /// 页面标题 + title: String, + /// 侧栏页面树 HTML + #[prop(optional)] + sidebar_tree_html: Option, + /// 工作区名称 + #[prop(optional)] + workspace_name: Option, + /// workspace shell 侧栏 sections HTML + #[prop(optional)] + workspace_sidebar_html: Option, ) -> impl IntoView { + let object_identity = format!("resource:mindmap:{document_id}:{mindmap_id}"); view! { - +
    -

    {"思维导图"}

    +

    {title}

    = OnceLock::new(); + +fn convex_http_client(context: &RequestContext) -> Result<&'static reqwest::Client, WebError> { + if let Some(client) = CONVEX_HTTP_CLIENT.get() { + return Ok(client); + } + + let client = reqwest::Client::builder() + .timeout(Duration::from_secs(20)) + .pool_max_idle_per_host(16) + .pool_idle_timeout(Duration::from_secs(30)) + .build() + .map_err(|error| { + WebError::internal(format!("Convex HTTP 客户端创建失败: {error}")) + .with_context(context) + .with_header("x-error-phase", "client_build") + .with_header("x-upstream-service", "convex") + })?; + let _ = CONVEX_HTTP_CLIENT.set(client); + CONVEX_HTTP_CLIENT.get().ok_or_else(|| { + WebError::internal("Convex HTTP 客户端初始化失败") + .with_context(context) + .with_header("x-error-phase", "client_build") + .with_header("x-upstream-service", "convex") + }) +} fn read_env_or_dotenv(key: &str) -> Option { if let Ok(value) = std::env::var(key) { @@ -232,15 +259,7 @@ pub async fn execute_convex_query_plan( "args": plan.args_json, }); - let client = reqwest::Client::builder() - .timeout(Duration::from_secs(20)) - .build() - .map_err(|error| { - WebError::internal(format!("Convex HTTP 客户端创建失败: {error}")) - .with_context(context) - .with_header("x-error-phase", "client_build") - .with_header("x-upstream-service", "convex") - })?; + let client = convex_http_client(context)?; let mut request = client .post(format!("{}/api/query", convex_url(config, context)?)) @@ -357,6 +376,18 @@ pub async fn execute_convex_query_by_name( fn convex_command_args_for_plan(plan: &RuntimeCommandExecutionPlan) -> Value { let mut args = plan.args_json.clone(); + if matches!(plan.command_name.as_str(), "mindmaps.put") + || matches!(plan.function_name.as_str(), "mindmaps:put") + { + if let Value::Object(map) = &mut args { + // Rust plan 保留 tree domain event / stream hint 作为正式契约; + // Convex mindmaps.put legacy validator 仍只接收真实写入字段。 + map.remove("streamDeltaHint"); + map.remove("domainEventHint"); + map.remove("domainEventPlan"); + map.remove("domainEventPlans"); + } + } if matches!( plan.command_name.as_str(), "documents.save" | "page.body.save" @@ -414,15 +445,7 @@ pub async fn execute_convex_command_plan( "args": [convex_command_args_for_plan(plan)], }); - let client = reqwest::Client::builder() - .timeout(Duration::from_secs(20)) - .build() - .map_err(|error| { - WebError::internal(format!("Convex HTTP 客户端创建失败: {error}")) - .with_context(context) - .with_header("x-error-phase", "client_build") - .with_header("x-upstream-service", "convex") - })?; + let client = convex_http_client(context)?; let mut request = client .post(format!("{}/api/mutation", convex_url(config, context)?)) @@ -550,15 +573,7 @@ pub async fn execute_convex_mutation_by_name( "args": [args], }); - let client = reqwest::Client::builder() - .timeout(Duration::from_secs(20)) - .build() - .map_err(|error| { - WebError::internal(format!("Convex HTTP 客户端创建失败: {error}")) - .with_context(context) - .with_header("x-error-phase", "client_build") - .with_header("x-upstream-service", "convex") - })?; + let client = convex_http_client(context)?; let mut request = client .post(format!("{}/api/mutation", convex_url(config, context)?)) @@ -847,6 +862,44 @@ mod tests { ); } + #[test] + fn convex_command_args_strips_mindmap_put_bridge_artifacts_for_legacy_mutation() { + let plan = RuntimeCommandExecutionPlan { + command_name: "mindmaps.put".into(), + command_id: "cmd_mindmap_put_1".into(), + function_name: "mindmaps:put".into(), + workspace_id: Some("ws_1".into()), + request_id: "req_1".into(), + trace_id: "trace_1".into(), + actor_id: "actor_1".into(), + idempotency_key: None, + source: json!({}), + payload_json: "{}".into(), + args_json: json!({ + "docId": "doc_1", + "mindmapId": "mind_1", + "data": {"data": {"text": "KMIND"}, "children": []}, + "createOnly": false, + "streamDeltaHint": {"family": "tree"}, + "domainEventHint": {"eventType": "tree.resource.mindmap.put"}, + "domainEventPlan": {"eventType": "tree.resource.mindmap.put"}, + "domainEventPlans": [{"eventType": "tree.resource.mindmap.put"}], + }), + }; + + let args = convex_command_args_for_plan(&plan); + + assert_eq!( + args, + json!({ + "docId": "doc_1", + "mindmapId": "mind_1", + "data": {"data": {"text": "KMIND"}, "children": []}, + "createOnly": false, + }) + ); + } + #[test] fn convex_command_args_adapts_mindmap_command_apply_for_legacy_mutation() { let plan = RuntimeCommandExecutionPlan { diff --git a/rust/crates/mnote-web/src/tree_shell/filetree_renderer.rs b/rust/crates/mnote-web/src/tree_shell/filetree_renderer.rs index 24f65358..200feed6 100644 --- a/rust/crates/mnote-web/src/tree_shell/filetree_renderer.rs +++ b/rust/crates/mnote-web/src/tree_shell/filetree_renderer.rs @@ -14,6 +14,7 @@ pub struct FileTreeRenderRow { pub icon_kind: String, pub document_id: Option, pub asset_id: Option, + pub object_identity: Option, pub selected: bool, } @@ -83,7 +84,7 @@ fn render_filetree_row( String::new() }; html.push_str(&format!( - r#"
  • {toggle_html}
    {create_action_html}
    "#, + r#"
  • {toggle_html}
    {create_action_html}
    "#, node_id = escape_html(&row.node_id), aria_level = row.depth + 1, expanded_attr = if row.expandable && row.expanded { "true" } else { "false" }, @@ -93,6 +94,7 @@ fn render_filetree_row( parent_attr = parent_attr, document_id = escape_html(row.document_id.as_deref().unwrap_or_default()), asset_id = escape_html(row.asset_id.as_deref().unwrap_or_default()), + object_identity = escape_html(row.object_identity.as_deref().unwrap_or_default()), selected = row.selected, toggle_html = toggle_html, icon_kind = escape_html(&row.icon_kind), @@ -174,6 +176,9 @@ mod tests { icon_kind: "page".into(), document_id: Some("page_root".into()), asset_id: None, + object_identity: Some( + r#"{"objectKind":"page","documentId":"page_root","blockId":null,"assetId":null}"#.into(), + ), selected: true, }, FileTreeRenderRow { @@ -188,6 +193,9 @@ mod tests { icon_kind: "index".into(), document_id: Some("page_root".into()), asset_id: None, + object_identity: Some( + r#"{"objectKind":"index","documentId":"page_root","blockId":null,"assetId":null}"#.into(), + ), selected: false, }, ], @@ -198,6 +206,7 @@ mod tests { assert!(html.contains("data-testid=\"filetree-doc-row\"")); assert!(html.contains("data-testid=\"filetree-index-row\"")); assert!(html.contains("data-doc-id=\"page_root\"")); + assert!(html.contains("data-object-identity=\"{"objectKind":"index"")); assert!(html.contains("tree-children")); assert!(html.contains("首页 <安全>")); assert!(html.contains("data-selected=\"true\"")); diff --git a/rust/crates/mnote-web/src/tree_shell/picker_renderer.rs b/rust/crates/mnote-web/src/tree_shell/picker_renderer.rs index 03c511cb..653aad79 100644 --- a/rust/crates/mnote-web/src/tree_shell/picker_renderer.rs +++ b/rust/crates/mnote-web/src/tree_shell/picker_renderer.rs @@ -133,6 +133,7 @@ mod tests { icon_kind: "page".into(), document_id: Some("page_root".into()), asset_id: None, + object_identity: None, selected: false, }, FileTreeRenderRow { @@ -147,6 +148,7 @@ mod tests { icon_kind: "file".into(), document_id: Some("page_root".into()), asset_id: Some("asset_1".into()), + object_identity: None, selected: false, }, ]); diff --git a/rust/spikes/leptos-tiptap-spike/generated/island/mnote-leptos-tiptap-spike-island.js b/rust/spikes/leptos-tiptap-spike/generated/island/mnote-leptos-tiptap-spike-island.js index 4da19c35..4cce3677 100644 --- a/rust/spikes/leptos-tiptap-spike/generated/island/mnote-leptos-tiptap-spike-island.js +++ b/rust/spikes/leptos-tiptap-spike/generated/island/mnote-leptos-tiptap-spike-island.js @@ -319,6 +319,9 @@ function __wbg_get_imports() { __wbg_assign_d4fed0f8abb71719: function() { return handleError(function (arg0, arg1, arg2) { arg0.assign(getStringFromWasm0(arg1, arg2)); }, arguments); }, + __wbg_blur_583010b6b4026c5d: function() { return handleError(function (arg0) { + arg0.blur(); + }, arguments); }, __wbg_body_c7b35a55457167ba: function(arg0) { const ret = arg0.body; return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); @@ -646,6 +649,16 @@ function __wbg_get_imports() { const ret = result; return ret; }, + __wbg_instanceof_HtmlInputElement_8dc30e795ec4f2a5: function(arg0) { + let result; + try { + result = arg0 instanceof HTMLInputElement; + } catch (_) { + result = false; + } + const ret = result; + return ret; + }, __wbg_instanceof_Map_1b76fd4635be43eb: function(arg0) { let result; try { @@ -1145,6 +1158,9 @@ function __wbg_get_imports() { __wbg_set_scrollTop_e931da7f2ad87c86: function(arg0, arg1) { arg0.scrollTop = arg1; }, + __wbg_set_value_d84be184846d017b: function(arg0, arg1, arg2) { + arg0.value = getStringFromWasm0(arg1, arg2); + }, __wbg_shiftKey_e483c13c966878f6: function(arg0) { const ret = arg0.shiftKey; return ret; @@ -1260,42 +1276,42 @@ function __wbg_get_imports() { } }, arguments); }, __wbindgen_cast_0000000000000001: function(arg0, arg1) { - // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [Externref], shim_idx: 1585, ret: Unit, inner_ret: Some(Unit) }, mutable: false }) -> Externref`. + // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [Externref], shim_idx: 1889, ret: Unit, inner_ret: Some(Unit) }, mutable: false }) -> Externref`. const ret = makeClosure(arg0, arg1, wasm_bindgen__convert__closures_____invoke__hdfdf165eabd6279b); return ret; }, __wbindgen_cast_0000000000000002: function(arg0, arg1) { - // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [Externref], shim_idx: 1824, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`. + // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [Externref], shim_idx: 2135, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`. const ret = makeMutClosure(arg0, arg1, wasm_bindgen__convert__closures_____invoke__h2593b18d2d6f8a75); return ret; }, __wbindgen_cast_0000000000000003: function(arg0, arg1) { - // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [Externref], shim_idx: 1915, ret: Result(Unit), inner_ret: Some(Result(Unit)) }, mutable: true }) -> Externref`. + // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [Externref], shim_idx: 2227, ret: Result(Unit), inner_ret: Some(Result(Unit)) }, mutable: true }) -> Externref`. const ret = makeMutClosure(arg0, arg1, wasm_bindgen__convert__closures_____invoke__h36e788bd1cd1f0f7); return ret; }, __wbindgen_cast_0000000000000004: function(arg0, arg1) { - // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [NamedExternref("Event")], shim_idx: 1741, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`. + // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [NamedExternref("Event")], shim_idx: 2050, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`. const ret = makeMutClosure(arg0, arg1, wasm_bindgen__convert__closures_____invoke__h03deb55668e1377f); return ret; }, __wbindgen_cast_0000000000000005: function(arg0, arg1) { - // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [NamedExternref("Event")], shim_idx: 1826, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`. + // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [NamedExternref("Event")], shim_idx: 2137, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`. const ret = makeMutClosure(arg0, arg1, wasm_bindgen__convert__closures_____invoke__h837fba73fce77300); return ret; }, __wbindgen_cast_0000000000000006: function(arg0, arg1) { - // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [], shim_idx: 1740, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`. + // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [], shim_idx: 2049, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`. const ret = makeMutClosure(arg0, arg1, wasm_bindgen__convert__closures_____invoke__h96c1a94f3b510398); return ret; }, __wbindgen_cast_0000000000000007: function(arg0, arg1) { - // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [], shim_idx: 1762, ret: Unit, inner_ret: Some(Unit) }, mutable: false }) -> Externref`. + // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [], shim_idx: 2071, ret: Unit, inner_ret: Some(Unit) }, mutable: false }) -> Externref`. const ret = makeClosure(arg0, arg1, wasm_bindgen__convert__closures_____invoke__hd17f30facfdd737f); return ret; }, __wbindgen_cast_0000000000000008: function(arg0, arg1) { - // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [], shim_idx: 1825, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`. + // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [], shim_idx: 2136, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`. const ret = makeMutClosure(arg0, arg1, wasm_bindgen__convert__closures_____invoke__hf726e22cfd1ee0a9); return ret; }, diff --git a/rust/spikes/leptos-tiptap-spike/generated/island/mnote-leptos-tiptap-spike-island_bg.wasm b/rust/spikes/leptos-tiptap-spike/generated/island/mnote-leptos-tiptap-spike-island_bg.wasm index 671e01445b1ae81a54bb575d7428f483473f61bc..d71e9e138fde442627c3c621477dd3240b3e50ce 100644 GIT binary patch delta 2055410 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%0Ds`UmfyY;=ABaXAILQ*O^Rs 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


    A~q>m}evxyk_pc+^=7&yo5DY09F|@ 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 z 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%0DGD>=|kcSoIH^g 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úh79vK3e^jgXI&NVehPXH{g$%?ze;DcQRg83^Sl;k*4^L4K z-bNbiUiW6zEGi6v@viPE$h!eEg^N{kQ}`IaVy=QSRloO~MtR}ZVmlLKS43DBH{-p5 zqw@E&D*UPyARE(Pe|89!@v2obB=tNx*k@c7`POB|DZgUA%XMZ?wN=`l!Up*qfK+9m z|25$4h-%CJ`1jl#a*NnrH z=X3)4DrVJPB(4830X>|I&+NI(@Z<#ap4_Js&{xTQ!@`G8oQLwF{!s#YHm{d}zQ5~n zHJyOIimQ$1DJP0^g!T%SmpGY?FV7yKmKT&qFH#)8y}j;-VZ=hhB&gzCJJ35B2`0`< zmx$y-N;-Flv|)1%j%}_0vP+!i57J#wcGAVMo#aP!x!AoV5*i9Oy%Y{J?aJ&1MoCd|G2LI|j);V=MQ$59F1rp1=C7wjZ{{LZ@nmhg zB^zXPOyuZ@_1y~qBRzGOy>Vk~Z}>eEJn>-U@O)o(LGq0n700jL&*nH`cF2U-2H}b7 zMT%L_>1mkkk2@;&hhI$S{ECHo;mOKcs-jy`0wFm%K^D17jOLPmJvoHo99qwE&Rd|q zKEuh@kBJS1N!!~{`^7-c&`-!J<3)ZzZ1Lm=zZ@L$>p?c$G#|~K!AeaTg zY)ycif>d{>6YPk9fy5#LMqC)~#muWv_F{r-fP_z=d;z0+s2u z&+*}!;i^RwP?ZFj5Cd_*2z+u98t;Z%t5AM0#|K8ONNpMr%xdffd(mi)B|;{Qpol#p zh&d+$6ecL^pB=7U{t9K}v;T%PUZcoAaiNy%~{6fQ8tHJZg;saBoaGVAhR^kfGDsAIB2IKlL}O=Cy& z&Ge_2;-Q>qav7%G@9@Oa!8177=pJAeHsrR%d z5t(2s2UO;zRvOJpZsYhNqpjs3+$g1OsNNx)$T_Lj&b|EfcU@H7?Pg1x3 zEu;2X#8dHaXA4 zB=KczgCJ$}`NicM+AOj?5 ziVia{5|k2;K_CrU^|>C1;V5^s|FH&alylj|T*A1fap{H`kV{t}-;87of0FkSzc(!w zI56H~5hwM&uRIP!E?60MoTl*Eu`xdDas(I)OyD6;;iu!PgcTwas6J0QxvhBP;HJ06 zxM>l1-8c`gOC#194q8$rg_O#VQbTRJIm1yu#|N{UvhoNRRZ0_WSaf(Lf=8u(2BYE^ z(WumAW3sf;R6}*n%=VSQH(^_zPG*QqG8~ztxROP6h#N+~r1|SmS-_T-bpWYCZ~An!8@JQ6kb)h?sT}W z+C2*eZR?#*o=qWq6LtpQ1R9kr-0VT3#!PSu3aNu<50I%Rpom4dX{9*8B^3nc^WH{~D@#?8@sSdQ6>*n_0Cy%a2y7mPzj@ zH0yTdosUAZ`(ewj<;e(^a0_GvA2uJ=WOrUqG?-m$2=L*3@asx7AAFzQmfgc0RkK;a zJk{zY#K+68$jmfWsL;1LP8;u=uH(`1YDqAywqOwW-c%y8!Y-;w$IAF}%>QW-2qeB- zw!CUAf`IKi#-t9}{Dd4!_-m#B?@O zThKje>ob2gQ%Ou%Nfuc}w!WP9V>0NpEs)=leS^&5N%JS$PPj2E!xm!WS6Vcx*g$BC zd>$nzon`}t>?YWNCxO6Ds_Q27!^$C9Ahta3=_b3>(`N*8I?B6^M8RhFBnqUdhlCq= zvFL;wu$C_xXekmZM!%wnF8o4tQ8jN*wp8Cwvr;8*?K-{Dy+De7+2{~?atnEDOOyTi zdF%CdCpe6LIoa({#7r#vRPpV}IXX%127}EnF=3#BDa0fP9Ta7$y8V2oVV8Ap_Y9?k z<3g!!D##0dr168)+h8*Ik--m=ZhJL;eq_3tUQI22WVu*1K}xgTY+V{% z)x|Ll^T~X5b1$b=JE?9g_y$k-f z{DYqANI$2Ky7PReZkN@+3_7s{Yxz;N1X5GA1X5GA1X5GA1k`v-Af;7HKxu3V*2k7W zs;ibjy8E3a5W1=*kk0iINNLp)NU2@|DXm%pxuv%R8)8fFan%ysf8ohXaQ}r-mY{25 zYI!CLvj(5$g%#?P%hCfWA~3T<{7bXdm4lrI1$!2<19+26ViEB!`S)ao_e;@6181f< ze4qSpXGWhM>})j69rM)ai=BoxCT0Pm#w^SU+LE(+kXmuE)5Lskkb3W8r>V*Bq)VJL z&3)a~*_YsQ#`PMx-gjwq+9l2{rm;!w8sl`#Jm>|GiAR_g-iep$s)S%r5kMv@o;uaD z*wN8r?kL8Gw7jwUBoL@C{%bpmogW*nO9|)kDpd;{vvw~0urhE=g$^7uZGQC74Nh|- ze)|+78oJR*)`82LjC0;H?+nkriOZ&9)j#6Y&3$~60i?&M{J=$!L)|Cz*EKfS&%ME# zzcJWkU6&CyRlj1q443s&zd7RdzZ&s6Rc*v;^oU=m9Py6d8}Y{2h+nSwA4dFtw7i5< zJ!N@UFR3=zwR*76R1S9Q?+x~)%H{o!4z}V~gPk;|+FHn~0sf9N?Tg_v+ zYUM=dVe@!T)wcvs(IaD{_mwz5#+wJ$tMKjrM_nKNLtEIb*P+>aWoYhu^?Cv$M{N-MQmuCKL{pbe|Ig|ePZ?GkHgQNNeFPY|@PpGolPGj?<_R;OL@d8V&_=>0o zt%+6f**4W;jx$>*w#{+sn#+f)FXuS-rtT7gKE#D29>|?@owoIL!5~1`UWAV%3GL#7 zSA?|*>4n56qpy$VI`uN=1_i`;NQyCliK~9Cc}`Js`D1_%o5dBW_3!4@QP<9c_kVhg zYCPX*E7w2IciJ;P_3(VBd3w3DMV6XkNbC3KJNKD~YpQD&IJI*g@uh~R86hN>B*YgT z!g7{ormNJ$3x1#Tj|l|)i63&53iHpLBNmv2c+$a7`!4jp07jYq0z~I8bQ&8Cze?gk zhIx=-3FUfj=uhGD$Jj|-TzoO`ba+nhq!shk!H1n=@y`=u_aBcq@5={da~U6&9c9sD zWzM~ZIipD3|Eg0*Eq>IgWv;AH(MNgbbqb9dnBc2KsHyjNKOsL%<3|R^yD5AqGyEUd zRNWTy&g`70Zd=SjS6N@xeTj31Z^ez+f;#ti?dY^6&Ol%8!q`WKH5TJcM9$fl>2+BW z{bji`%zN*LKk2>qA4hrbA8)PA5a#Qx)F)5!I&N>JnmxmHbE|0c70zMP_}!MvVlDT? zT5gTCeB*y?xjfeL)mY2jv6kCnE!A}|;ynLTnmV+sUOn^kRJHv@=cDvvOSZ*v&fdsv z>|fGW9baCrt@>)6Gpfy2DLT z^DPjSc+mo<{r@Orc<))C+$?#|y7bBQB#m*QfV#a;Zl=5~k8E~+EPOJNcTGDGRUYE6 zUe3GLiFXZM)&Ir425~t3^PY{q^pexUi2n|@ePoL#Z_Iv$kQcmd=e^=|G0bD<%iC7h zoUuu*dKEwX$J0zDesW@Q?1TjCdir}orT%_E-W3eq*deJc^z`?pmG(!hlG^^r!BvrG zeSsDePKfMpVI zeU#@0I3G2LfYfLxX3fI?i@o=NucF%8hclCt-X@$jbJFG{Aqh2!^w4sYCLKXRX#qj> z073){h$Ki6rAT!FB7~+WARu7ist^g{Dqi6ViV_4B73Ke|y(a~T_rAX0|NXxE zy}$dDpJy_=%*>uWd$0AZwVuUb-W9JgtU9Y$7PP@A9=hr!;m1Bz!;g6qejM}{;YS#% zuSob&#F61KuZJH2-(HdMqkwO5!`H))%eh>_kJ6$e;KvpGungof<5MO0u`(u534UB~ z1N@j(75vDs<8@2`5X^640sx)}1nfF=61r(QI$6*Yi@OC+YL##Zjs?@+lmMcG_d>=h zq(uWv&maq6ysI3L=m((k?*Kg*{vIH~#)0@6?!~j->jye9s4`}m$`A!l)B1Ft}x46h$J8C`hPp3q5P606g&Nc=N!G9Tsn3|Bx^#~?!MeTeaLflZFW zv7pIEWP3pm!&Pq;8%h9)qtpbGK!Bjd=av{)tiWR!9v3ag;&`kdVOXo_^OL$e6|3^& zSeLml3qc407EL}{Vyssyz$MJpl;1&jC|fD>Gd-~Ys2Hp#aD@`EDxyVl(FpD>t?)CD z15E;$)2t(Y?vnr`a7G3gL2KO$KfoFL_)Z0|8%O{!48Qj&OeX;_LJ7gK1j2RRYw?$5 zbpgQm49~h}fH3SmV>s>t_V%=5xeaIxYoe|+y)YQbm?iKFwzQb|#|1zkXA8oAfakzA z1u%#C4%iYcC2q-Pr33Cb1}@ey^S(gq1mFNm3^Pyry;y%2(4hnFTLX6ihdVMZ-5~9| zCPC4^Kk zVaEqj?jiSqR?ER=&={CskQH!*@2Zn_?jCj$fcJqFbL8#nE9IN%hMT!V-b{D1tJw`G zUw7OLbz@4Zl0`K9uzQBQ)NtT!_nSk3s}JW(MICXUQkQR{3rA4#+&vWWf%{u^!#=w5 zfxA<+5`H+mPE3_3yil!Z2=)BX{j7aWZ-{3;Q3`c8Tj=9s?k(!KcA9lu{9U~1 zxO;+HT#enHbEQ%L;f9^-plRrM*q~C1U*u681Jw=h3pS!`(D%PLj
    #` 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

    %dX6?>wgV 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

    8<1Wiaj4+jtXZsi11>@)OUnf45m=;P{H|- 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

    M8ClH?`@&Ca2dA!GR2831;!;gOWSKkDd z%fM+8KRuNwXOItVx*%S5pnZ`$zjdBE)@yZ|`C56kfnBR)ooU+9sdSeE%%=cqk5xL@m8tvH&GBsC``YEK2lQ5~CBH<0d za#1${%c{QyEEkQi9KQuvD%!1<*Zml_0pq`^&|3gh9HHPYKm0DRtnj8tcIkrJ(|)jH zILrK5?HF>oBYnIBy*dG({`y&MZ|{J>?4Q*hb`60&M45xY$)DBOZtD_!Z5e=G)Dvl) zr?$V`@H9K~9&MQW{HeDW<17s3c`o}X1oXJ5w)a>%`I<8Z0%UVJfn{^Y0Y^)v zBP_?q1IseT2b>c0ZK}hrxEGfXU`J8Ro)r;8BsPDwuUBdD66P;M$CE$QW zHi7&OiL4g%g1(8qmKY8>zLq#wyWsS~m(DJFu;Hn#UQ5hKWXDO)nnZS${Q5-J?ictc z5?S|O)IqlRBsQP$kR-Mqez34$X%ag~^yNwH(l2-nV1E+p@T+={ZD=xE^DDNPA4sk{ z^{e`*)$D^y+p*fqNYFQht+}ke(7Yif+{co~+Og4B)VSn!sYXGJ10bfQEb(ZSWH}t= zrDML9(Wz|R6`Ve=O=TZnQG1(xyAXUBm4t;Y`M`}Nob88GfSXA1almqg4DyTb2Q0UM z-bQ?gnc;2i*~;J5-f?%Oh3j+dV)!(;;0DFC(i*Q~Q`@tvzpH5lqNCgiL2}c%9he4p z5kDMQZkhwzGwlyG&6b$Xmj8j8nw8E@{GpcHPN%csf8v;V%M3REPZ(%O2HX6nIy6nl znGHEuc!@q@_KA-(!u1J=&itRsU@3ng?cW(}u*(mB%@TZN1Puz*w2Z4j_L2=oUI zm*OV?%M+OkI9-azqo8O1!qNN#z{&p{&J;YcUj1FW;$HAa<7tRJv!bzF*s%hmC&n5844ecDT+|YjT z!^eSn{f^OB7hi)g2m))|GiuV^(~$$tnxJ);Ntv`pY2?;v1E#@ID0&4l@ZZG0MzdA_ z!I}OE*~Wx>AABqfEEQ9{JfSh{#DCCbx8v)cS8*cdC-AhCWLS|$l!RNwFzqUyH%QE3 zORuUuZ8bS~a!OTfpXRWfYv_3`yM+4~y${k;&>7?${tG%QR2vmAeik=TOc7JB76 z8|t<+JoE(SiixDTm+W8Wv zsj5HPG2At?w8Eu{xXe)2&aM@hX}g8833e^l!~;Uv8oL%{;t`>2uU$(kn2sXQ#n1il zsc3V#zX(1p`5%Q(MQ5BY@*5qBhoH1^S+?$msY2mXHAldwfglb(%@R5Au|zgafFl|^ z12o0+DCm^m|77YXz(@M6g-=y6gIB=@U}}cj(In}TbsI3{vmZW9#~lm8^-H2l@JX*O z-3&QB;A2qnSPBtAf<=MKxN&c$f;`}ev7zL3uN{@z5jbJR#Vj_Gh=VbU)iBsW|EoZ`~%72K{ z7sGEU8~KlB#t_V&iCP|+%+J#PE1RHRhFD=0Je@VXvDStSUpKiC`zlaN86gxCHV_I5 z#fC!ywcb(i$tL6BQ|p<`B~RsakprIeLJnyjyl8cs- zswpP}yV+S4wP+ng(Ft_WSy!oDkI#PuEdX@#v!Y8R=2R!)N-jXVRXU-E{YG zIwL($Gfrgaf(zw^7O{_+uf&NvLO8$dq` z&yT?m<4-1fPo?t%-{uKzC=%MosM~h%k(Z@2d{VFreCqVw;mhMqv7``lKl@-9yE90O z8iHqzOEIO2(djXyA{(yZzL4@NF!dNwyeckD;90=IEG7^SvK`O$N)7He+6@7IxdQWhMlMdkXw#fPk| zQwsQ?ovIt7fY(B*=wIGP{6^}J63{!HgvKz7&!Tq_u)JOz3>+ufZ3r+eO7-KC#_O>3 zr^;HU)|AxXaJ-OvGx6yUlEwR;V3K4F7^pRHLD8I5@Ubo@psb@Rp7+w6I|lm zWHiA}@a=e#NQ<%>uf_^A^3+T0Ni~4CHX%tr{j1wXJmR1?nN++q%*zL<`Y~!BKAL;w z?ZceRJbIpQr199D_;-Gjl{ z=5A9?8$oXqXdL#VDr%({ynQMTz@$RPwgJ9-FTqGNk}V0=ay>cOUAh`i0P5o)KcvVD zlQz&8_aH+5>Gj)Je@4VI1aWdXMY$>pW>q3u)bVN#8y3;QO9f89As#RB|8@t%R zG$9b*K+KuL3F|WByrZ1)ER=gjNsV{Dp~;x7K|bb?vH?ZOhbXqanN|>=liM}VTYZDE zrlneEiJv_0F+lEh$5dsj3TnTCPz; z6|@1MS%F2INQY!*o^L@WH9q z{AIwMB|O#R$4~{FB{5X{C8+V^p9Y*Q@lOYqo59_{8B+WVzj)6~5af1rj~~Omz_Q6t z0pq`E0m9TSghdFCkZ=RAT;e}~o!)ql4-(oh)Jv{n%01nuKiL}&@-6@P9VzFLfqGT|2AS)m(}QQN|O3FDndwBxj7 z#p!MHg>2kN29I2uMSi$9uv~k6fKyD}(3XMu5HUfYKKg+`Qm1Fk2EeIgy8qV zC|hDRu-sUl;dokRY*t}*e3#sDUCk}99Bik_17R+(oVF{lPrJ$kK^`~qf#rd$09bBV zWx!-+SCP_NC_Fu$wQQq}NEUdBUz(-Bv|teNkHxd4ZL~O3>3b1Ry@#xK^fqI<5xkq? z+0iyyw0TE@&h$Hc>NzcM zHx#fT+!|q0N+fdfxOn&^I0=4R_P6qdr_uZ$_*4pFZZz7kf=JX1n3QvHdK>s8yd!*)MG7bKIFTk3n9^i(dUyDg z#xno`N<^6r=8+=NNMK4diqpr#r$kfWQyOXm;3Gk`W6>&PXm%a$g$_?gmL*Y}2Z--BO z6X8>vp$0e^;ZU?c%XA(&7d~k>pCaHdhfgJX0X~(87UHiUOc{wZTYxFe8}KR39{6$a zf8caVe;Q#*e;z(5@i&jV2H!*VV87F_LL__=)&j0A!jz#%l)~fE;ZsK4;K#!s$LUx| zSX?|Tl+!q#1fSAW!>2C33_e)_y~8`v9fdS`X-Sw$B1XKgf#sR_TR(gfI7QN4%EpaZE63 zCI-H|dME~qT!yifM9Q)Wu)N#}2A0bh0xT~ELV=T{^i6?bv$m#@n}HygF)W_#?Vu$z zKjEiXcs#q>LCZ34_6H)JJpI^!<+3V%_Nsw-94en4^lc0TNH8Z*$ zf@I5&?!bx@rMdV{#8YMC-fxBeW^qZWyE?GViCVOIB4Hfot*Ou|Qu#Zts_`=k^WePXH>X{tK8Bb%S96%EVp(zUCZ z$G3hu5tel#EbByA*6I6>EHX_SYGx9fz$(+UDX#q7eEDwoSX6b9RFnz8o&0d2A08)R z4g7Lzs!Cwp)1~IOEP>5R*WyeyHYc$4>DojSA53788PYY_w+U=OhIE&9QUY6)p+$K% zV%L-AKs-DvZJ_1nWuY*l8h?T=^0;^bSnlFK`^8@YmdBW1f#q@dPv9)0tj1fli7-Mc z{9nLw-~Ss}zGV6ju)ORg%gPxv2L_8-fEK{=y1ykb^?5v@zAjTsHjUP?6FZuzm5&ky zAL1wHW-do;qvHi(=56rXc-%k{Sz^3;SI8RMiLJ_##*>mxc(zz;W#&D#6FY%;^RjU! zmv`>5U8f&;UI?Y5NZxYI<~$;g2Y{(u=bl}4cEJ{rMt^S8w8aX}Bhst`rpoB9l}yJ= z(AdmuEz?x$g-&d1w)T$aV{EcE2GbYtX&U~H%kN{{g=d@KsK?RT}A= zz$d;i?niKXJC5VHpUCOy@F8c4C5J~8@Q5P#lyN^!AI#|^I3CUYah&dkPy8jEUcu?p z;oCu<$?2X-Hld3&+P#BX>mnVL*xQMn>Y}ao2!*dsH4G9|WfYJrYzYGG_g zr*XQ_w+p8iak|iV0H=@Sbgu6h%NQOpiAM;_mUH?&oGxl;Hm5JvJ<*))B=7}b+4wI4%ayYpxVOar67WDTj<>uF!T>M9 zvI$tu@a;ra-(71{_eM9(>OE!KkXQ$5w9OpTl9F^b7SLUbsB6_r3$enqIhp3stp^}h zHspiAa$U{=mJL4_m?kHBiHfM4VX!QaidXsbDIWFVouJ=g~qo^)~BoWD2Y7 zBdugc=s1=g?xVH$e2lAcd6#Z9gvpJzIq+af_*h_hDWd_)jnEA&uMQ^y%koQr`+Mbi zER#VP;w4z70Luc(fD5Jga$vbvRQSbD1-?b%ukwqp2ENOT$F*n;2yzMT0ha6kUSPTY zX93Igf1e-!{lIeldw}KouLU;8iQAybY(ItvfaUss&@X-tuw4HOfaUsMn8Nn;jhC(r#dB1hv!yQw@nRW)JWk z5?g=2#=I9{LwG|Ctx{)OTc|4{@;N`1|q_7O(=#88iZx z1rU}M3<8!FXbLPV-~g5_76WX^!$3zG#)BYF+k=7SMmG#t9ve(OVQIav})?q{aW&GkRV=`WK%kpp5k^=DUx;!@V zW-ZZFhxUwUFvqDqdaItPMlI+rNv(%~Wi=P@bV6;yaxE_gmdD0NczS$s=G?O@8(7n! zT7)^_F73clhHBASeINFH0ALvs4V9FrL`})#VO2*qYp6CXHor@rTt)YRZIF~~c1QNp zP%X>mT*#cmwD{Qk+zh#WZ17{>+>vR+z|M5`2=?kQtr^nf&?C&ExJ!{{fRx3uj_mj_ zEmyg`Fx;o@tpVQ%iSJoI{2Z`3;DPUX;87C)ZeTf|`i`t-ILf@!pr$mWObz;{aV0l@M$Tc96q>BrxiW230_ zimOC?Q4<13K4RPt6Q#=oqdflHlE7+4Xqu<1&y`^ha8*g_+zhNpcselIL|mE*>9atW z8}DMyC*mLHSX{me`cnh_5^nHIxRqmZjVltq>6h-K1h(c@X`ARP#M1~tM0@O zJp1S>A3XBp)VmX_9jV16;T2;!=<|Xt5p1+Bq4z;f!kb?OeOM>9ZzSGy zAn@(rlh-HX{qPh&e6Js#3oLi%hk)fG&GW+#8~lS!MHho08;P)FB+C+Dc>%T*Sk7Qs zC${-EEh=u`GT%p4Hh_;RRTQ+Y6Z`2lEzaC?e+%*b5zk^r!~E zsd%%okobtG_XO<1Wg~aqFnEFcih>^%F z#8F_m-o6Hw2g8fNay?z~@`EUh~8MBr(T$=}u>KvZ3ad@sjSzId;s_!34fM^gA~&x!g(+(0;Wvn zuQ~U`Iwy{{ukp>~f?p;-`(<(wxI&Wo3$UE&Z@`o%ecy7yVzyqB?z{vgvs0SZGg;Jb zK(enkrS9;_8@EAXQ2e3SDjRMxB4DSSf zM8Z@6D&XlA^YF!{hS%nv+Wu-o9s6^V7MFGPIo}JThx}yE2bM3$4x>_wrOWl7lUZf4 z*5B+om(b^mwR@ThWB-EmBiZh|v;oH(QR zJCCFLp^aWLPSuFBc!4jm(lYHfOg5R>W`Q<9!MR`-1$-5Fo`g37KP=%*z>6jP8t`lh zZ}HE&@of>mOyY0n zmp%sgVJSWy_*r?6r~?S=B!*7Ft0YVct(Ne}&TK-Z7G)lkav`2pC&rDmYJ4LC&kGxm zrJ05JKa{-*ToqOPK78+t3*rX%UN=HTM8ypeHzXItT~TpKQ4tYl=7J)iqN1UonYoZ@ zE(c2!m(&usQm>^Jrj?azS(#B%SyFCPR#;f?^PQQ4hxz^9_y2$Ihllw-=X}qZGiTrC zOk#V_-VCM2DwjD#idPpsYE03Rm=_)T!J8953bFW3_o?T>*^ z5bQk``;*|)#dhix48+0MJK*9CPJ@dL<9py@VL4-Q|2}xK5P%QBQw08@ZjaF;kI|1{ zus~4w*y6z_;9?KtJUE`9(*394;_}L8;Nr0MD)?AI|8vr(WfdNPFJM3;1kS$%j}!Pc zaIvfZmBs!#xHzc%+G1Y}E+)x$;At_!4Ss}y7-c_!i%<9qxR@tygNsi{c|`0g(CoQ* z!(ThFqIrrYU3-HC&sQdS4|&r#TDpy$#XQp5u)Ytqms!bI?i#FYf!dPY_)y(Ur;8^# z0*@M}EK}z)2namtS++pAXOG|(6fO013qz68LF7{{Ji*3thiZdaQS)SPr|qoASD#Rj zsu{EWXFVRDY$e`HN-bg;%ala#6-CBb+P7=6g#KzY3w~B|K}p3|s!3k}T~w!^)mhx{us(#yG5d2W}LIAaR~=-k9@{ zn#SI3&U>01PV^r&RI~LHEeEp`E0ia4R-E-kePX1Zx1pmSCJcXVbD*8cn>KI~=i=Wy zfR3;vo%y(C0sKee0+S~|CY^=gPg``d4Nl!2!{bFTSZqi}2W2e}Z~5Ad5D zfP4@*1aP;9A=43{Zwh8dARh&e31%M1$AP!F8C6|xgPZ_PazmJ%g8UBfF2HYG1o<@Z zo?vzc@>$@0Ajo{W4y!_e^t8Jli~P%7oyFW&YRI;WIPJcT zd!+s?fx2-Qef3!zN(?)D;#;jLi+xcUBb8iag)b_Tr0`43YrXQ0bo~-Lw;rC3yUcoR zP~xR?m)RCv<=`tgDl)}AQ(AF_rEXM~cPqc*YnzKeQTMVba19;@;7S4g3i5T}YoHkT z2KW}Z!8(mpo6B&@*4;%dN8faC;B9>OKsuU@zMOFNQ(s#uJ6Nm?W1|)*4tC>=(nyN= zjP+v5Lh15n>^M_q2M)Mu9N(V;FX`5t?}Kb`7M+i0`0gqz%EvQAf6f9nE2G#8Nm_lm z@N*ojze^oSF;$HU_a+H=`0x{lZtDmp*7aHaxkhebd0?cGcnKtuNW3+sb&! z{~BBSvNBy>cFoswrE79WJ1hB4spgA7*h=tkTEHB2)?76$iLKkG;WGq(x?NAC%*;rg zL(kRhy3uT`LiA9*-0V6#vK5b1aGiy|qAYFT|FtooXpSpo!5+9yVB6ZLqu7D=s?XTH z;M5S3Tbgtbc|U<;E>2%f=k~;@rs6yZa)`mPzh0flMlM!;`YXjotMMOfngE>t2H7F- zi;&3&Zhz%5XWJL6tvdUBI3v+&kM{!W3B0$aTcZguhS%mK){{VQI{3hfd1^b^M-x7E!#LUrUxbUoJTqm^9Qr28v9e)|;gzss2*w4YqeX z8mQKS*qAkLw|KeaKL5jzf%=mTccX-3$W49`=fNV0IDDkKy#cO&;o22fN~3bf4}oZt{|)&c zAP*q>3S1un1*ZMKkpBZ>O-@0!1C)PBUy`t^T9#PZE+s8+#SgxEukkP}>H?fovukjc z`zm^YK{r|HtI8lL?4`Mf_xSO+ySCzU_){iV^k1{Xt z0W^}~TLBONaJ~*QC2ci{<&IDnHp~6Vs03+T5(HF7kSVx?8j>e>ud+$<>wn8A+kww~)UY!kqIC;Pm{QcLWa=cqfZ~XYg8r{ZQ~HbiS!j z35@67(C%hRF3#;Hk3i3!o0Y+gyrP~SH#=dPasHFZJ9tL~T>Y8l7Ani7u-nXQzp}7N z;cZ`iC`6s6&H(2TEWK2T)@xlk{EnW`Vi?t%wsKg~ zkmU#9Nuc}=yL>?D9>L9jf>{UM+|c_Qa$kYlk*V5&^B>$t9z?}^^DaAi5bavRJsfx( zf>yHc+ln)%=$_F6+=n_`PydTp}z$vuX6q!WM3c&ZbKy&bVO;b@(7v^vl&1tz`Id1 zA*TW9Kn(c3V zepN8s4S5f+7f3Zdd=2vJz&?N?kpfr^`4Dgz;DLDq@|(aBfa@KFd<^ga zF6xkzhsQzQ0^TM=)9eJ~lfWr}=ZJS8zY7!rE+YzUry;)woB{Yv&O&}4_&_lG5b`6o$*G4tjFmVHba zR-@}5zIdOE6+GuoWFa2KOV0g6Z)69u65nKRwsxu8TP}mqcYkQp{G$IfDxFmHl&I3- zzvw@i&v9kEeC|&i1TxG$+R^y0svpWK`@?hoxU$?HvA5jtp&P1XYMwX`HmhjPmw;1g z=6rQcc6q%rQ16F7fzv|gsFfXYX!UyNt8Y%Ijt9A~wxN%-ouqHJd9$bQHmb$aHfZKo z*%q8oe5Jy_S>6d{hcxaV7J5>d9env8qsL3#KS~1rLoD0AMHJrvN&xoj5UoQEGW||s z0b4O;GHMU{lQ_8TM@JAG*#;QFvqJLNT>bpeM8peweFw%eI(f9C{ z|A_x!;WsV(M+^VS!f#Q{%zxxzsYT&u3;)H!Z(H~s3#Z`&|B-mtVtN8OPgYzDc zscXb}7sympIPU|Q+;C29LJNU6f-LIOP)hV)0S~~T1Mq+;Mapgm_oywxN!bnN{->41 zT93g0C9vmCD+kA4usiggXkR1>6}Xh>(2fO>8k|I|?n0Q9nDzB9t?BN+@K@+cP#;tF{Ib{jXKV%29-LWh^ z-d%qTRZ-N7+5p{T=v)A(N67h63-4y(8!ddlja`0UnV@^lUV2}t(=xic5sDk8Cg))Y z65R=$ee}LE(^(3|1Q^i#3H|K2FW>;2K#-~9g4_UT z2s8p315E%wpqHuh1Z01pDbNgP4g>%#fEa-86^Ls~B)BaILMxy(&;~F*(v7Y+%RqfLLH6KslFgHVN`%AP$%U!~;`-1Rwx8pLC`{P6Uzw1yBJEa05eN zPxnfOoB~V-a%SLPDlijB186Fel+qz*0JDJEz#JeGmhl$cup-AQxByECui#0GuX`^nV7#$5dVh`B`8&@EouLSP85G0!*FNkn@1&fi=Jj zz*=A(kZT6)Mab)c4ZucV6TpCcAj{O*4EZHW|Cb?b0k#6K0Na2}^JWE*w*xzXoxm>O zRbV&3({~T#y})b0>%cys5ZDiNF#S0I`58Pq4CJ%G`@jdlhrl`DBOuQ7=VQp906FLJ?*ecU zxCC4V0!*bVkUs@J1Fiy}1784N0;Q(THOOB9*MYBrV&EI#TVRE$a|3b-@E!0y@B?rY z_>sy#57AFBxCN8~KLfu2w}CsrNz|Zv@g9Xae{FPXPWvQ@|Yk*qT9Z4g>%#fIy%n5ClY< z#kLjX)<7E|7-$Q$1KI;TQ+I&e5eNZtI^ka^&>09L*$j0T$X$VMKzE=A5DxSN_|r!~ zeiG;f^alC>eSt`T>-2*h1@s3700V(Rz+eDLpQGpMAs|D6VZd-88W;hL1kRfQ8U;B9 z7!8a8#scGjrvRR=;~`G~Vu6XkBw#WS2b2I*Lr%dp9+(Ow&^I@yK}ZCW0Lnz9q(D{y z4R8a=KngG&;JJDRtOeEq zIWOYhdSC-Ez|2G&A#Va0kPmDIUIJbQc)D(ZycKu_*aj2;+kqWGFY{(QA@2fS1$F~_ zfW5$LK!%}{V|yKBA5aMF2Mz!SfkQxm>Cs`xZvbxsM}VWiF~9?4nL5WIzXiMvoB&P& zr+{|=FZ03PgwX z1(X6@=V!>j0JniVz+K=Ta32_A`cnq^SKv3`ci;h#^9TO@3D7zbF1Ek$uN-&?{0;mA zQ~-~FSkt3_A^!*1&~VuS36OzmK)9(>9dZqzCg26s0=$9R0Ls07uR7IH{_Db^9zY)! z_W^tX2asSYIU&1%20%lg5zrWD0#MGUfk$I7`2P zfTw+L$bE9~uP+b@^aG-R{s0fq0LTM@LBL>O2rv{F26Qk3G#qj?Faj6}i~?eS(Exw? zF_6as#bO^+r*o&-z=;(#eYJTMiAG<6anPXiKxBtQXFKm<xgjS5 zDZq4K20*hbGXeheX^_(?{WBoU0%ikqfK1?;d9%5Y=K=G9EMNh!5O^90Hg&QgF9H?= z6q~ug5DD}fSIX%*zvKpyZsum*SmSPMj( zI_n_62&@M-02_f#00Z`#I{A<{11|wD16zQtz$?H2Q)e56xB%D=>;QHGyMR{#uCyES z9$+u<8t^)>4=4n9bG;w(0pK8T2sjM90lW$DymSQeQQ#Qh0geMXZ{gqDK%^O>6Oc~= zr+{~WcYz|{G{B$iJ;-N(v%ven2f&BGIe_PZk05^xd;**YE&vySOMt&w*IcIbzXF3# zfzN=ez~{gh0FUY~AzuT&0vzZxfIomgfxm!q;32?s_ur8J0V;q; zz`wwMfDO}SJX!6KB|2;w1$4!{Yx zfCd0B+6^H$0vZEN06*XffJvVz336sb2U9;&W(D4C=&(&gFln-f<_|>P7TmuED``t(ik#XQau#7SQ3mE5;romk`PT!Jc>hn}(r=37 z(2O0^0QSuM;Y+v-xoa#}d_$?RPC zOA*-;_bE5cD6dm434&Q2T&W_Z=aJ2=+OhKtctB z&XB_d-UV`3fp>%4UEn<+hYP$XzLm>|n_;AS40v`c+WF<#EHwq-C(g589$YTUP7VmlpU44I$!xq3s-9!F6 z^l4H}Hlsvohd1QaQBdeNiMjMB*C9D2srM`R)%>Dx= zcSD06o|!)=-Rvz=+dA|HtO-g0ZN$MlCjor|QuQxqorhg5_Fu3%hTUDQ*2*ab9|;|r zqwvR-^P@=d0D;r|g=kOn7NR|IY^${;<4NiFpZQzcPF##aXA1T_cTY!g_6<_ik;kEw z2uA}EV7kc+K`9mTOo69CP8WCvm_sHyLK4KeRyA($LE;+i!(A6&rGU7BX^z z?c@F|_g|&iu!I2){T?u?tSi!?xY=~W-HLv9C1vwRezrm>y40VQ{)<-=>JN12+pEB% z|5JuZxaR+-MA5bQKO9GMssBbFbv#{?)p)v`Q%B3<7)_}lDYpSyY`Q3`qg`&Hu zGcz(5;Cch0r6N0EB+K?v`$%yk*-0-o!jJ3I5_d=4-eE&Vp-}nMQd^V1;kDHFqWYTMj4&$3y|xvzF#Rxf&Qb7Nd6s0)LrD9 zCVKpI&d%0Wr{@$xFAkhCEA!l~YM(eKMzfuLx6K^fvdu)-V^Q9Eqtbh&#>?m3wIkF=M0(wpg@Q> zpq5zV(=2?dg;Ti_^{HkP`9uq!p!1x^PyCccVXTFZw(wCFKElF>Tli25A50wguZ)3# z76nRU@d+rSiJbC;$a`D(lNR37!h3*In^zftZj}lw*;oCv-p>;pdQSF8MO?Ol` zYo4#v9#aN8%HRA&0?zlrtSP|x5WCSu=A5>9Q0>V%?Pa63r!0=0Z=@~`JT=8()4->~ zT>!3}Q&)>>mmW3s?Zb{C@eaMfQauWVHDr`OR z~7Y-7k)B&IhmGjw*`8t!ojB9O}@5U7wu#4>t zQ{jZE@V;STyMikz7UN1W@-wbiAOo}$T z9a@0uA6B6nMK1yAL>)TL)4(a~aJ~p0Q;k)jvLgX%>zpl`LvJ8pR9OnB8-eWz^sYeq z>;UY1hTVDSQP}v8QY8Y(&ws?9v~cULF6wU3j~A9+HTAh8!;n1aZSkOw#X(;SkF@Z9 z;CQgY7OG#vC|x!pg@%d^;6Ln&Vb{ICU`KCSP}9yMh+d>HbPc!PRob%-fog<<>m7lg z%?&@Z0@b&@w~`ab zT3?P!b+8KyHFTMhw0hFXR2I8S9mfhbsNS;wOw%f%gX&~|wNdK_X3sRHJYDdGwwiHH z!)eM%*)u)C!D=77<7Qgb3C){nEUT?LDI_7?2+B+Zg~|`-JZM!W5z;rcQ>O=(zzG#$ z%4t**_>Y^XNn*I5mBg z6x@CwWJ*-d2SE-J_+ZHJpZ&2@9YV9ZbtYHN`SzM+%=rdFh3aCF_Y*kPP@OD%sKDuV zRCo89#e6!T@R!f>WOq=TNsd;T#xv6f6Uv~iGFf4W>NjQs%qg1rkL&Sy7|wZIan9#q zIOp>)tuj50JE_ap92NA8D~4Rms`$E^0{5-UW~AO==RUKn_B+LO+rTgTeXzXhcDJ zoKLavcnhaU)^nm69<{1HQ@g6ZIoz{vVM+Zb&Tl}bp$g|EkVX5S!6}b%`(Giq6nHsg zD(>9=A!I80oc|3u0Lz_~2LHf7bWk6uLj7d!zz4jwz@6ampwgZez{J>Z32xkw#dcG7 zwEpmEWB7OxS7d+v$NO|c5X(b>VVDByuBNq%gibOv_Tox0cokRFM79d4q3tGQZeH;; zJKh~b)-Bma=ZNZ#RsiR;#1Wu#7TrUAz1g`%Mi^jJ*`K6)4>#^z)Los<7Kf{K+I59u zI+S+eN*-Ru70+Yyk{jBtLFVRVi`bEHb$RFf#s9m$>woAQLoz$t)>*wR4aqTbdU!57 z8=($scqG@MAAyTI={e2Fku2y*bxd{J63pYWce|@I!eSw6P3q&LMrMP+lBOs3i zvLTc6QIKP5>Myyqd;oVeOLZ8ant=23k2zcNDwd88olxtsf@=!qI`WlzvTf~B=IX63 zmMWIA4ZYPhIa{AGnvEK8SRLS;N{7fP?LE$~(bV2Q=S3JZV1!Z%s?Rtw){;rlH74dS?eWdPo? zC=^-vhZcU(!auk0VhjJl!hZqRN0vNFsNylAly!~7w9x39EHhFaQ*R719xvZxYqG16 z$Uj$>vvK{@L}}J@?07%5U90@(9LAKSIpJrVSRH^bxo6_#?TCQ0uy4%j$E!_PK$Kcf zy7?RnjZ(WyJ}X#ql-k;R$O?zv6OCQL@}tzi_F3RG=d%h|>duc#$;h0R5s--US>0-Y zO7p}K0WjaS0?Q<4l>x%)-`N!`w!fMtN3O(zz@?;V(xH{C!vJ-XSxaRLNez=;Xk#~ zoX49SMwPvP-kB#eSlgaLn)4s=@inQem_IU@U{Q#*@QEg;nv80%NhasRjYy0BWDAe8 z@F_Jz&Aa150f@IKSjRh4YqFSkl^1jVT4(fTJHrjd0_Qy-Q!B@L7s!-;ocDoDZaAkJ zv4y~?2^aM#)kOal@BnO|fCsGF2sPf1d&J)w;oM7N1s9VBvi*(Kp55Zs8-xA~xTZ9{ zhDU`jdKCVDADke?t!FVK)u@p04Gulv;(OkiFr#L79fb;won`2kSRM+wa{h-=S~yX=i6^pK(u@w&b(mv8X_NHnY63C`Or^4f_&!LeZGH znKd2HHu$?6| z(pqmisd`xGN=-lfq8giO*Xr0`VI3x-ubzk;lw<;TtlS=>z)Uqk=Dh&Q!WzunCdiy} z1eqtpEJX+Pc@o1iw;8?M@vv(Ta85PE69PX9ncCINZLGs2O#8YDjF~*})JbYY^>N^B z*$ZLn0CsrsJM7fK*^6kOrg!8Ne)HHZZ3qD>|Pvl7-fDuVFE* z)b{kE9%`nAYF(C*qi&}Ij{4F@2|w1!qtwLXe7mD^q0u-i#1XTz>S#7*C%ZZYb@$1g ztWLZdCf(V|BIDH%DPR}Nh*z&W-rHpiOO_*y6i4svVsTTkyfEoiV-uJvlkmZj=RGoT({OtRvkXCIrN160v=MO>hl`glBD{1XCef1b+Do&HL>0n z=uw}7YMIWocP3G)^E%t0VA%uLlZyIM^=kVlJr1r^Crgq0JjYdam|e;)WYyeiMBPV) z#v)Sf{g^#sot7&}Qt*C?$mw$ael$@j?kRG$0}kVq6y*TBL+dtI53uMIG_+k0dh$}# zhITpRki+xc8(Oe_x(Id2_8i9ClBP|Rix2CWdVyV<{3bhpLhZ^zzfSUaN&?+Z9K_T- z*-M^r)WJ@NC5N!ftF_&f^;_sk?MYwb?roQMcu=6Dlb14|Xt$rs*86zXbwF@7Ed*ga z1VNw7S`@1_iSl`?>cS%Du}-57=A3n_%6(DmQ#IrB7P~x0O>-QFKU2Z!tqC$e{uYbL zR2$0SZ{xNbw9&L!*Vs={jSX8dZyPl>b%>~jjd`2h$wZ%{_-#gS*h=G0u#&lIMA*0! z#ssYgI+Tw%CwEltIDZ>5^+(|@dY&2|5p&X^Pfv3D;Rq5n?VQtaSLAPkQ-3!LQ#`kn z_=wb$L_MHI@Fxl8czC_;M3@4K9bQ-wXkQO#?;j$sr0lbE?XUBAJhCy)tMEM_d@_U4~E>y z!iNex2r`X&o1dYXl}Y+hGf~CxJPwBc0h9uq{|1@jhI8urk_Vh$spPC+vD&)bin9*A zZRhseVNWr~c_d^?q2e>1vc>A(c1OwwMl-g(zLAwuK42BOYD6M8{|d^K#W?>KGG!@| z4-xnc$dm=SJ@vgQMnp~zg!|+#QTya@^U1i0c%OI>>ZEY{Nv6Fw!b=6J3DTRo3EZBJ z<`DUC^qocjmej7w$ACk>OQi?7sC6jjxra|#JeX{9?+@6DrE2#uuD8shw*s67rrdrQ z1`tNTSlLoFs?W7^#wHzZ-yim3KqXT@7g>Sp{DZ*y>VC3}XVj=J-24#2EZ*w_a52)} zMx=xrVPW4LaCdZahqUXifoaj=pnIT%k94%ypCZ4EyR+}! zaQCB3SM;13GHLGxV~UL5=qV_PH|7HjZcp8A@y6pUd}1YMLsqDZ9ibN;`jq}ym{V~H zy~wVuKrf`|A`4%sM#%w}9PHO#$sMJ*ORR9E8t>R}$=Gk0hV-Fayy23^f0eq>E;YTv z@>fG4_e#}C@Z2lRD^Hyymt8S;GG+v5eokBTr^dLI&e5QZ68$MF$-`jd+@~!1d39Az z*UudKB-cPQW;vf~;qewut7%mFxPFF(&oK3oAN3#CTMY9KkKN_iR>Oc|ge&BLw-Y$M zj7u@i?ei_1Ufvb$H(5BnIxE`KySS9$4gb)UFNA>@0DAw`aKOsepy=Mc>d-%(!2{3{ zO~0t$*}}uYAK$=u4YEb$4Kbpz==)oEUGUbA^>g&MM#US_tFR)cz6fP{9>DS7VgM8i zUkXk`n1Gf>hY+Hz zT=(Ldv-S&P>39>aL4rQL{$}VK_oLV4ME_2Li`jx+#S``GnkAjzpI$-}?Pb_UQe(>% zs>48xrD_&VufQ4Ez_VeU`h{I8zs6G6tBHZ*zA^?iQxN*L0OyI2JL;U3tw%w;_LW%> zY2{JsdYu(+fa!+o#%@4I+4ZWUfU@f>_m(>T3FT{t{%RH!^)uXx;U$HWyc->rY@Ymf z^=md{lRCXtc(LKjeU|>57R<`ua=*>CGPPs%tZ!(%G&NouD;Iu)9h*fsl(r;I{jG8j zYhCHvZ#}V_)p;1zl(5S$Veo#u#5mJJ^8e0L@Un_6iQB$6wj?^Qes9z^D-e?IK;#XF zXWB^j0=qo*CPr8@wSoGQWcm)Jws+A@Bjn%KUS$|sM1PdJp!I5pz)--3gOBqP+x4l;wR%FOJGLk>(HK{i=y|zUxd6K*ie&| zeBfTyrOhp4TtIo1l8^IFkjYHsR0zP?)(`OpLwc^-fDPKA`UIXgy`a%3IT1NIIe&{~ z?NH}Q38k!zuGdOg@=gqqVt!_&JMkEoe>SS_AXK?j)m{FXmYJtVMgC&+-uu9uszuJJ zCr*#We;e^Qn*avn1Dk=DfR}4}F0ayd+u7^8anfMqFYMfIj9<54v4@|{Bj3D(JomJj z7-a*rYV05#*)sq~s_j7t3hx>bS;wqFI8Q=|s7B#D1f235ywf+m)A_GGb?v{9wo>RSj%5>yub{a1{@bwJp2@IErp%K&-sV{c!*P5r7bQ zKq2K%V&yzQ)*D+nPg3rWl~cfSD5Ts&uK53#cZNq8zT0}@N=XoD;Z>d(_Ci3B{xBF~ zI^Y4Y@)+2o8LNzu|2IC~qG#oCuz#HPc#Y~oj@7{6)(~6y|0#xqC)6L%$}96kj#=y~ z4NRVZkkZ(S$H;VWirQJYQiad2JWX%IoRX4r?(YA@BdiMCV_tsYr~bQZ2H*j%6on5S zu$VV7^a+2+PQIze%ex+8x^*+o)y%EXYC5a^ZS+m3O{0zjIP2%*9s%}UJy=Ob;b=vLC>U0Y4F|Eaobiz^O+BP>`p zSI0W?F$x1@8qu}28hm{<|$|ow&ieu=E+^X`u>x6Y9@)XJ6T=Z-nH_OW^FIQ!3`8 zWv8d@JL(1dN z@wA$f12>%K3e8iU7`k2d9B4=UAwyqJI1DIrY^{&X$~2r%4&!o{~4TwvP`*ugwB9 zZIbL?$H`7Vbl+g#{-pNac;8*i^UjBAiCqq=@APc{NL^reZuc<~z7f3ahFgHMj-Mbk zT)s}W`4e?+NUpC_fA`^iGm^KXKy$O_VMgVhb4{k5iLA&=bFnq&)fhS1fk!#7PLnS? zoSuOf)G2m(l*?(ng|-aBwAJou@=cf1GmYMHlKr7>pNIiY!Y*u<$!v(w)9Jrui`|ZD zwyU6{uc&IX@J3Gk3#2;`5RZd% z_n)hAUCusXJQwfHbIy~K^TtSC%Dmug))(q5Io99Fe*8jRBA56(JtFLt=%igsc(p&fZhF8?OFXQ4BD|5`X*0cYuaEr&Z`xQ=?%Cg;iDVsB5&HB zwjaROxR?^Pb?uI=o%#slP%EcrNr_s^o|6ode{f%z=nG5qX$vZ_oIeDoDLPa!Y+mPVVT`kFu4IL(q#M9fj+3g*dCsLXhp|Qgu<_T3FDqt`9&JApLlGEJA=z zW4*3#a-!4K$*C`v42C_`_~2~+&uX`p+(LmNdB8b6HLVqsV)b9tncjEcLjnvA%Pe%G zTVW-?sE%53p+^0i%Q|gzt1RKRT2C$xMgG36E^@|pHmc5*aMcO`XZAblg6^fTm;r;4 zKt13+1oRBReG7+K5O5Y|yvV(8yb&@mFU(oxjS$W=pilYY|9-QG45##!jahP57d+!V zb)b9)!gp!zf$UxbH9+p#)yaGtsyg#x?_|1tAb z8ni$Fs=jVwo^UURJN1rv4P2?YX@D!`>cDVT_yE&U8zXRI9CaL67Ev{0a9#`f{0TUi z(Szmvf&E*VPnxB1F9a%$Qg|;`@+Vd)i+Zukc5P``pWeWE zjyxm70gHR6`VIO3dErA7u&XR}=V11c3GR6j>?w9R|Fx2{lMmH}@~*ym4%PH`oE!m> zMop7~D5i)Bh-4@K#uD{`NRQ7yc(==Ov7b|4`J!GSbZi&XRsd-vO< z`Z>u_Mor;DEl-id`6zJeH*r43!s%!a(Y`A>Px~^ zlxkU*_~Z@YA5G%Ie37guP8wO+3=M$r#NCDk0CGwY^BwEi4V$1C73 zAb$y51Ne_J&{vo%%3r8gXOPgX!jSrR#7|#+Gqi>O%TL7W z-NNw_uGA}(4#l!OU+wjiY2p zY+3_ti?jWds(BDxZv@+Ifdv(|GTfG;hQFs%5?8eqESu%UAJ^5_!Yk?dCo}5&SLY-@REuL2^xYB2RTV_PeWQr2THT zB|sY{hbEhS-c$(G=XGpJuG;6_lFV{jXlYWN6js(k+a%?uuX&T?@nr=i7 z&ne(+`!=*!<`EIO;FbHB;!B`SqahlVQ6}WPURYH=1!YvU=lhzt{u_aY{dHvOZ1_XP z_-kb7>&oo3{29(FXBQPihn8eX=Nri10=rCp19AyK2~76iLH-`#e*OTN|HK0~Zo>RW z;3w?h3)5n;vqx)}la=bUErvGrDmnw4&xA}(6X(=Rpk{~jd5~$y#d#LwP6AJXOtmw& zUj&(EG8ws_to{ zO;#!kZ=;Qu&Ze=oZM4Kd|8%4L9E2TBO`J_Lip@MYrj<+obQUuJb(Q|gT|v5&J!<5h zGSrsgtg^bpIiKJVx6Ech7wwB}Hm(#Rew{;{z5A!uqsA79oo%$u*u_%YYD=XWvshVM zZMGwOmN91k2@@w&q_StR%ywFuw{5o3OhnsR!3XL!<9i7g+iN~eqvsfR8;L93jbBHB z%k2LB#3t<8pISYZ73;1`b9&ixkl(jzt=Z)v$>w(#9=)YR8B1$3nk3hk3o@OaMNN`h z+iCY}cx5|SOKv*PXa^lx^QzWCS@T#zC+$V)&OG*@leR|MGM_CA)pkhXSuD7-Hpmg4 z<^9^(=n+sm`o9->I5dCs9Cw9wR7zOn z3GJ?3m*mO0=H$j&2>RqkS*||05p2)VTc3NlO)og7VBCjH8^(SGDEi3kH^{#O4}cic z><`F)0)GMAZ8_wJz~2D1GUWCj$Q1y8^a_}fzXnI-{tH42JY2z!2Z<7RHSm5qXIq}s zR)qyWaxFJG2p1MMHR9 zyxJ&Jd?K@WH47N1MaYGD=ys3CR9R`Br)Z$|lU@3Jjc4y*t-Ia+CA%?1>o5KLcoDUZ zeJv|^S{tOVXJZMqwp?wU*+rudQAr8wSoknhCw?y)Q=;eBc@7QJCgFso^*s3@7|9Re zZbyvj^rrJ;(>bis3C?)wYeJZhiTKR64I~BL~*~5ybYJKF?J(yX%s|{eZ>DsYtj}cI8)7ERO zU3*wwg0?EK*Ir{RL0PR9eB+#Elc}cawU>oY)B05E(MO#`J^GlF!CC$^^y7kGV-?d7 zioDlYY@*gZhx<1SMHpRbTi$C`d!XDt1!dh|xc`UXltkQ~PNNn%?e%FP*wX>wB0psC zE|nh8dD^1FWbh!tgSbl0B9pZEz{{^2y~k>JzyLwd8&6@l!xn#Skc0^GQndJ%`TLyu z*G_3Zob0)K`ph7?2WPVqlFc%M56(4{8W(!X6%8+$WbQXQ^?Ud0o%*46hL=xjc`muN zH)ZMA8&srmRu)=Z3?4_}^N5{}Y?_HCa_te8F%x}gucNGZrZ%X0>QSdHoK4-SjEyRU zI0|>=q45GA4bDp<=X`v@`8RmlF3^LQC)2brzvyF5{b{&8eS(XU8}?r5+Ps_{u#W@3 zfv2R3k#ovEZ3Rx>vZTh4+lRs*n&#u&AH0dcX^RQX&T#uy;4}fjIlb)`KrgLugK>sI zC65CaJ*3qIs-?L;eHD#bjUC54kr~>tS`KbOM;BAIzvCG5T8NCCe;VI`)ikN%G&{dg ziw}!?&&U^a7$(Y+P2?>E-m%i2#XYU{sZkR{+PL?q29B3P&!CQ+Tm4O<4Z?rO0FyH=1MKzJL`%O_{DfL?2dc5zAvfeRTxt7dmRV_IH%7& z2N;|!8i<{1=xBdKt=pec`Dg509%c|?uOh|!C1W8LFO@m2R!!^j&xFOJ@wTAPjZ{4d zFDX^)BE@+Qs0Uf(^})$(1>E@HN^jFR04LxAxL+l-;cgVGcOhww@V-yX3)*jzl<^fC z@S@gEy80E%cu^Z4QvQ_@JbFK#3K!=i!Kw7~AD-HVWTeA`Sm1gsGv~y0r+ylq4T@9> zIk%g9@{|rwFNz2V;O4ZpK-CWC@0;AagLkFbPZk~Ogp!+xfXD94@0)h1bi_Y!%01>E zIOUvw;Pk|GHe`dgJg4kyW2{AAE2lvP=X=0ul9BU$;Jq!JVu;%p!k!+S^Ebh1K*Bkd zOA0*aZ-K-AoJxa}FrW&ND_jDn3X^lHkf}t9T=eiV?E4D#SHP)9!Sz1{ZzFK})_8kb zoZ<>!!JwI-K%YQ^Cr)D~?tu@u808HtoSGQwY;*nA;Nk;>fn$rxV+EQx7Nc|kxEKS}1c^@^4=x5E z(ZbWf#Rtj&r@;EG#JDM0`4AyUc617BA=D#ft0(oRCGG?ZEQ8#@MeRN>wK~;rte48g7=~W#zlI zKndLd|2>#(J9y7n-+c=HQ=5A5o~K|B25i#7d+g?GTD!o^UyX1t!WHc&6buKin=u8w z(ATwgenqgSA>aq5-bGx!!LR+wGGEsMy(_?J703HGR`9y!mlOOO8ffrvTE^}8`gNp4VC*f{T5$vuq=wPE&F8y*5crtJ7~e9-KCzq0~kL?{rRWS6D)--WiQTeL#{9IJCLas=Jv#E>zvg&q|Ni@=9oP_ z6srwxnw~MIQ({Uc%`v*ljRIPR08yA+<*e)wh6K6gp6J6`GrL^$&=}P_Djqs*W1zv0 zoQ4LrF154Ex#gHjcnuvr8qhHs(CNFD=!AhUjJM=3JgYUy$$Mlx%q;jp55xH)$W-b$ zUkRDY4(F>OQz_(p4dg(9Z--1x7Po&DGUYAKUxSSN6JN!EYILp;j_0O+iO4C#aZVf1 zDdjkS5}Znt$lJ16Yqh=}&7+mK4&xSd(3kk6Gr*~oaC_p^y~umS)_$u+MRD^Ci@Ukt zVgQMY0h|wR`0H`q(CT>wa*wE(icxt8oSJ{!aKJ6?&&njBevTMW+AbqLF>%o!;s--!n`2y7bIh6*FU?4iE0H-p{9nb^?WpK_>hRv8W@>EA~YJ9mp zt%tW1_z*O<;sXo^?@K*B?jQyR;uDRr@Hp@w!9(KIesT9xES%oB6Yc4ZJdxARPkcJ$ zu?I6@K$8XBLv)0yMA;&6Bk7DM*1*L)kq0iu(DUHp6Vsb@eFgtt2G1EO7;J+9^;LNQ z=(CpX1x}y0476~oy_hLaLcgV;PhYnb1NbiW^a2D080d4@JOK2WOR6dtQ0Gr`lzJEa_Gmja(tL(g8bnN6WEyWfjl3XFJQf zy7UdZiSUaeU}0AmyKomX(%oEa(LF8R-kl|+xYOii-Cb=lXaK{iThv+ar%X)au*q{g}_+T9Un=C$!j&O$a^uv$B7* zThaj6ADhsop_s5r<+%c@+P1Ub%87wEkYib@Fd2+r~opw2LkV{`rk+TQ6 zXtyX%`_Xs1(0Xq*+dqR5a+|ev#sa9Npy}BuUssb4PMd3bYM(=}SH@!Bgtv zalREI)ljzKELldpWe;cPa1AVmehiGM4iC`n4flH?Qw;|FA=TXRj<{%-zPFEWN4E|4 z9IxiSXqS7Abg|8=vCBsPcJ~%A`gXUsZItnF2W-Ndib&8}tgwML+UbGyX!y>@Cg3zS z8Q(6(rEe2CkK0AVo=^FuLVq|oADO_OjX137FJ2yIC2<;k2gkN-w9DAKvF!(C@8h{6 zhO=Vs(`pS`(Q{*6`Zj5)Vl3sfL^*Dpi*`vH$0`|lkzuas4Pz1e?lgDX%AH5z@gjW# z-S1h?9D2MUeYw<4v-E=|y4bYE+C*vBL{FrT8)u4pP4X=Bb+3`?W=%03P+wqUonq9f zj$#;5obd5p@f6Qmm-|I~;IgSMeJ+pB-E{@0G~-jJU8k}E4c*fN>m<0UY?NWS zP6E5!(48o)O<-Lcxiz^W0hui!d8F|kM%*-3(a0SypPc5Rw;{%`ceAycl7AvQ-q<}o zA~(?p9N!VmIiJqwoKNR-9wMT-05Yh>x`;pDR{c)W(#+qBq=jJUP10eyL>;*e4wCo*t)Pe3g_NAV2J#mDaJn&h=wVVY(f6oJrRU6jvRrO0_WkAOHjBH3>_eh89nW}N- zdWPamUwn4@t~Bg;5lLRja!cKlcPtq{J-h`Ook)!KD8tTIAG$DPpXcQQ{*o9&JFHQ5{UaVI+ zHG$s~W7RntO~?^a?8& zhkLX%3nldLjB`iG$=lF?(W@6*An31NbSQAqn8)_{Ru>yR0L6>8{Gls$wt(#&@7C&u zY&U8feNz{E_pZ{YZXS$i+@k;3rF%-3>W5%te77mE6r$LMat{)a!>G^E+Drc+gA}`i zZJFTS-Eh!Omp(7`zwLH!b^?|td$xCQrOAy8xKj7}Ic_gvRH}FNTm<3A1=sB4SQjN3UdhIiMlbg`uQ0G4cp$#yffEIjc zw=w6m;L`=*G0_!rH!oJvLR%$O>|>D$?vJJ7LQkD(?$(mr>7ZFsl!Hch=IlYeJJZ%) zue;z!4}AqQm3=$K9mKXMZikd}m>p8w%cW{>uyEBqTUz@DD^%StO>g(6OJAR)5eJ1d z9KQ4fxOo)Jr~>DlcVIb>gB?}S5rUf;;MC5}Q8W8x;*$@Fb2HU;Z?Z$0yP1URWzFr^ zhr53UdNjJg_qFD#xJDjv>60H%!aw}!vC<0y{EC^Ko}tdhm!IHAu-ou!h#O^*`xS!N zrs4tnY`5F59XF>L8M;Sr_|pgAG2It(Bmn&)x4U5&*MAZE)EDNQQnA0lX(^8KG2D42 zyPH+s|6`b&_Ya5pQ0|`Iqon(DPBV}c*ZpwsOnl5LbsEKwkq)%xL;ZHnyMZ@i>3iHm z+2uFg4W-hfn^Mp=k2|IhzN90^JeR@k^5ElU(~%9~^d#*z+j=3X4;!^WX~Zt1x_zZn zZ?Te8_w-s_-*y=vTV+%GtL|C_pfv93%C>!id|Y{grtEXV#jey%jyBG7%{}4LU)jlk zDh)3G?_bf8a!;`QGz?kdPU6%QG>5xRqEuZ@GEOmm(9%%7Aw}hsh$11@N4huagU>@9Mt1~_kP zu_rG2*N*(7{yKL+28M@h$Q<|Lh^*77XJJ1Q<}}OJALT&7mCEG+$OD1@hp+E|kD_@0 z&h4fF0g_9O8X!SHK+0afqlR9jHvwsPw|lpHBqUS;!2|^ar6dsY&=VA;NC~I}6$C7Z zN(l;z)S#%KNKsHk!1p`5x8cD5@6Cr{pXZt0o_Xe(XXd)Xb%W~;*8{F6T%*{6Nr7>k z`6J4j6d2X6=p$|Uu8Cxru1m++a?eK5qYM!{TO^@R{a&$zM>H(dZgLKESMI6(qs7{81@9_)@ks$wl6q^a4q0;{4>D4RI93r z`3S<~l;g@1>!(@IXf_M$W;VVP}Gm%7xz2GeI%`DD}$;42b&VSW<+$i zihn8KH_iZ^C9GRX&iIPvL8-;v`bt%98Rf4ZRc?WvGaG#M>eo~@J1~UrbpqRmC;c97 z{Rvt<#Se2jJI+d$a$cL|BXbg(m=o`Vif)x4L1hP1LuYF#gZ@=kMe$U zvgGjGz-9yI`}OF2gZQ@AmwC~JP8R{c|_G?mtAd|9sg_e=m1gpfS0SSr1(Z$*lJPFqyUDf-+5Jt#N_&; zbm4*@leC{by$XNa{DE+7Z17Wh0%L1$vM{>ww4k07+;r$5mi3QVvx z_*olDPaq6qLpt6NFyn$_QJHi&{8KBN0Wtg+X+p(4h?fDHD>Stq{_c01%hYd0pl9^% z%NX_0rT|_VRa1rykA0V{+?gd?PAD^lO6hf$KF-mO*!@Cp2pk1 zX{#%Tre=KcHqM>bLVqyknmUIP_gs5)4gn`mOFw=E{ztK4S5|!Cx>m&x5S#U#ju!%E zx^Nw5OP3Ia_XW-bDd9Th6a`vUabaHT&48bF8*su6<#ec9(CmwcJC8vkwYVu~lWNdjG@&?jlV~|y8Tx?0dHv>ik|ITd;rKM6I z%I+)G<_`Z!r5muN$cm+_8v;GK@v-FE2!53Rm$s-7zHJcw>%XXYV_-lT{0@=ABc5l43rmRM-NWz;fZ2Ml$NvFv z@b!8)!#8?58{v%xyf4DQ&Ht>gML!8$&x(xU|rJri6Wo^7o$ zWowla^k;(g1fHeEFG?-TTTp);SohXn2i9@@bztCh^F^sc`$6}$ov$81e;!!Jxj3x? z?0I0FrauqN5*h!J)WM>A=ou0Ic~N9cfN32#>Yd0^dNe;!!J_2+?gTz?)|$Mxrdbv*PuaHsMr>rVjd0rV$; zbzFY}I2_jo5M>oZ(SVv27YACES7;@gl`#W7{88XcWY+QHkNKYh9zMYJr-SwI`qRNW zu0I{DzS*4lc)MVXB3N$go}hxlGD$${E+g+DAw_Rm{^KDLike=`YXeF0R5F=9p8(<>{ts0F53wK19Up@vedlk z0?wqK8R!8AAy8P#s$NRNX~x@7VqfA+C0E`KoHQ_q4!j!}me@GTq%v0h?k(_gV|XSc zs4x?UbX?!1>G)spudn&jaYW=@ zl}%*+FrXwBRW?Pi?)(Oh3D>}B>xY3ZjdD?D%v7}!d4QL|ErrwnkYYrBm|Y$}sfvjz zyy+jwmjX}^Qne?LgsLWLzCTbiF~6!wm8h18gJ7V$Av^pk!Z0Kql?% zLUrrmtK-Z*n~iuK&jZeipyMlmGp4BHD}ggfM#q^!dCM^T4dAT#b$@0+j_^t4gsmWi zGNhTG2I_RuL#~BKcut3r3Y$B+Kf~G3(D5UH!4TEPI){X^JDW^8q5RnimXqGP?Eo{b zpyT>OW;)K~PPP*2_+a2nF{k4b0W&3=j_VJZh42v(`b%bdfRW%^tOhzR15XRXb;D}i zpK0+@!u**QufB%U$%BDq*3s2WszohZ1X#^pofZ{Y-4vnFzb66{ zV%1B@In^;a&WhZzHe)A7=PDe7=NQ^a`6 zX2qYFl{s#rmSDdWt!1ip@ZxueJ-$f;Jma*y4yWkVrRP$oSEeyv1)}+0scHq%A708V z1qGKf=R|d{Z;F^g*@pv@Y0ODqG+$ajlshhnH{|<0VWOEQQ1eRwQ1f(Jb5@L{-!?9Y z)w)P*0Q$+mWd1S$B$yuGE7RxEn1P|7A~Mu^(Xp2PX!R<( zQSF5hjZEs<5t9)N)N-`Hec~;UY(RB}EIf%^NBf8I-2t>c6*v}lf1W)(LF?lKsq7u= z9nA6}maZksskFGF|9xgS0Rb=~(A1&o^+aqQO`E7$o3#9>I0-3@1h-QQSSc-btgPRGoFzI?ytCiZqq=&mBuS2W+!+@xBz zG(aeo0fz7t;EXTn{;3S7#n=7M@InjIW4}Ap(iHmLp_V50V_JBE?O8LHf)8*l=&>J= zf=$WO>Zx-4YKvAp)l>r+(arAuX3@wcVp-TJB;U*m7XCagF0t0kUSNGxn9yxfi6hMM9<$T~e-_#ju_z_N1=oP%JZb%61ofXws=aCck9tQqc8&k>59|MyO zT(@?V)k|K;-Y%^C#EF2<}Y1ZYy zFy5ACqH~u6?n*1tOsXXD1_-HF0!=C%1_3-e;wT7%uLRt@se_5~t^}I%y#O4z5-?Rt z?_g3_wP_$+yn^=@7j!U{bonLlu7RJ_DOB5y0B}uRHBX2ncKzdtxXzk1!}KBz;B;I+ zwFge?YWQ2IbC1o@j?{04RIyUT*e=?L(oGiF^W*%XE+(3M4RS-{uBt>c(mJoJHb8XC zi*P&@`RTZBc>%mcx*n)(NIcl>(IEkx@{-sULHzO-dv>a3n7tmesj5;^v_^skIeV2@ zm5;DKO=W)symj)Q){<$=Di@ZaYPzBRDrKwKURsbcc(Z*Q`(tt&n-GNnis074>1Aa$ zmaMG~cB31&0<9W-jQEUk9LAT;L-sCWK$?&;25?!qAN9K(sOGo_oUsc%tWWkZ=C6iM z?rl;Hn{~g?@6kuNdeiFLfv-C5fImyK0WxFd)bWPE+48T))4#eu+aEICyQ4Q1{~4%e z)cwUirU=GL5BI{WCxIt6k zOqw;qCjeAE?V!OJ)zH%#&klaHuU?C#)eqQ-;}E*{07~KFA)&l44I$)RwrrBzv|_EH zCiTSk(vWvI%F_*%pBrXUtq13!@(#LiFz_n(&oJ7<$#uEcW9cjh)4bf_rif%ZwmC35 z`yGJKA|&hb#&A0R6H3a&HXZ*NI1~HAakc{Lcr@CY$(`Xi6R32&Dboj*6I1uNaKu=S~ux0o6ZL#X?2Y3Hx3&8=w@foXiAEe zz1*SEB~xSN0*()O(J^>dF!2+w)-gJ722Ket1xC@>2L5`DTt3qy&o;F}#%!vvzuoX- z@NOS9j+6UDodDj2ok?}1y>W6Ku7OBraRVvg-rAS>#TYJ z>Rwge#Ua~tY_#imQ^1U-<7t3VRp2x<5hE>btd{>=>?hc)0lhR) z?$~lR=w{&IrqugEW6R-3__DUqzaNjqF7{YpeC4a~2*P6md>gVC?VdGerEAlI-R7{t zD=VFvndHq}oeVl7vkul`}>zkn1gMLZ5kGB98^BBV4B7rwxbw~$-zTa%1=QLH3ANQ zW@Z*L{*9kbd+N(wqoz(bMYJrrzC!F~;6HmlB=Fw@pbGpWWEn4ver=6{p=#%5|HjXPZ>@n(jXv z{%nBj_#EJDi70!apt0=d_GFjHjb#|NI%kDer1V*o>5m-sH%fH;JW5g@^euB~ zMoZaJQFz&;mJImrmh$w<>A>0SV0Y8%)3N%pHR>`*EeQwmpRyl2ZG>~9`6e2+0_R4| z1cr~O@k$96Y&Z__$>=c4yNcX0c-~0`@HjC+=6C=NP zF->*JbL+RuHK}H9O!#3uOUK#j!qgJ&aw)|v*XQugwV2x62W34-0pAS-~i|YpvJ+gyFA66g)52i1mBYCrSuJBhq9)Ut>AOnf{Xv+|=ci(gANwpIH9rumY~#A@9CI z9agxUqd!DzT)sjZP-l@9>tv+SucJJQi(E;?9p#`UeWjL`Zl0^-`nF8Rb@SZxl_kA8 z$>$CHo2x^7@ziR4^Vp>D|F?O3`Zay?`0?v(^H{)p)?@bICI-I;0DC^Q1ka~-=PFm* zpp|I|W~PxY{OxbaPu&n=ds_ggY%gx3uIKo%zdWq&tD8)!3BvDS;B14#7VJL&--5dx z`|zFoigBAwsx9z5^$tWYD$18C^73Zz_J91Zs`HJDdW&+V%GC&O-ll2~(x}|PcyG(2 z?S5|y?HP;-HFaxA$`Honu5SyqNrUa7EhgL68|Q7;;_2J^dE2S`Q29+`_hPMY4xpY) zpLlOOw#QQ{#_oW62IxD*lrv23$hX;{jlY;Ic+7znR9;_yeM8Cf&&t&eT=YBIoJe~| zn-f{@JUS<`-qGen86JgVb0Ya&ZBFRn^f`fW>YT`WSDh1E5UefApa*M+-5M(*f{hs^ z59gD1h1Qp>U5~a&)~*tqLBM|MlM>1rgOCk&Kc?H7mco|?; z*l@gE7=H0Fe};$qq2+@!wUSp}1Xo$Kki2{>Erbi6un z#$O@7l+&!Bv4Nn6VP>XG`WBAU(CJt}bh-#SV~(KjpDsH%eD6$`gX}9lFSn|H7fgix zF{Z-YKab(}U}CpH8p6w8o2YXCK+Qh)9}DmRc%RAXs!?9}rtj9*n&_^7|3x^Rd$A#I zfa5Aq&Mv7B*Z2gL&cGO(eS%yw<#y~lb*4OyYj%<@&y<^T`6nsq1#qLUPtw#Ej^6}YN!>`zZ8z5?_^2_PC(Pn!Lb{9*Q0)bbu&&v3WlI5bu@ zxVqn&o{Vq<=mz%;Tn5~Wa0}sHhbxBr0Pf&-ba^&famiVVn}cTGeU{SZ$hEk{3N!-W zrb(#Kz|0IO+=SBvnm#0|0j>^LqXO;!O{~UuKZj*zj$B=RR+AIY(WN;U2+Pk={9MRs zpPZw#xk$YxQlASsZuogBWq7R$+RJG*Uxr#?-+6MqjKJ5=ll-#W%4oe{QiZu>d>PBI zTqt?xWw}-)*Y^jg9OXZ`luLM!3=#0XvjAG9luIVnoNOv=;I4}`=(_^Ba;M%MhK?TC zquc1tJ-YQ6G!V(?p`HiK7^sea1Q-=6$NvG$1}Rd{UnqBFxtzr}TMs`Ce&O*eVdjS8 zagX7ZAH&&JxItKc&jDxJCq4byz?m$o<9^^MPm6K_vm&V<7N9Ed@B%P46;<-}BDqsk z$9cbE93t#YIA&z1wFg&01$M7G3v)!zo?)7q< zE+ao~`EQh5fFXo$uL9Z9X!&p2&TMa}d@Y0)5ju_4k(CKy*B4;*!1qQ0xL*;T(IHHw zQ`cw^VbI^ZMmg-;_&RMNxe+($I-OwnjOzu<<)(EvUN@=QgC;Fn44RfD^$;857Xv_p z`XS=Pb?Uwxj5Xy3PQnm%=nXoxT*lMXHz<7tl%dHtX~7D)RYluPQ$z~F54uUEE95>2 zQ-L$FVHduPH*sWm6_3n!Tq&nDium26Zks_aUp1HlIvjtp0&QF=w=+J2u#E2o@MQ*2 zFZ@n-R?78z>hz+Je=)u+i5EiORw1NM&KrJO)HSN3UjIDA0=B> zK{zosx&^H+f^Mm(^;4r;bZ@mhJa!A{y+Eggx&d5B*&@YNotWWCPoJ1MK|5EzO}T62 zj!|j1p^TzcYvg45V~v~`I|Fz#7H`K&DY>NSS~{zO06!;qm(hxx4XD z$nRko>a`K0`PRRbwGkqJjfiRlC4Ccq1b~YhW%pC_P-@nWEAg$5?*w*Eo+6DCQICzs6KBHy(dB-lfwSErm4c{QA^T6xnaPiWO@^yufjfzb>e zZFgA(v*2}jZGy$&vx}`-$sWJW;}QH8tKhW=lIWgFvkG!+lHi>@fPO8LyBMaC`Jyaw z(}P;lSyUKDDNp0x>e{D^(zxft$wiflx^Xl7VF80DGOEzJ?`1nT(;G$}{exVQ?r$r! zb1$SnO76jB%VCtY6EmvP*&k#FpQG1JEkK>PqK^D5!^5ol8eSyBO}QqOwa=SUNh$M5Te!nmTg{9Hq(mc1J30V{slPqNMMGG)aT zwWL4WXC=}zKg({zJj(l7_8aE2&r=lnO<`-pD>VADoNK`L`Z5ll7Enry+r*7~iwtA6j6h1Et-r`NezD<08vm_ai^`-WDFuTjKUq*a-$e00WyjHj zZbb?7+^=#oKG)!*1C5GMQE3S_{KbV8DW`9di_bGW`#9ZsRTlUqXt&40XKgQRMdsh+ z7Ifk1anW>bdtnPhK9ydTo73puP>y9NnkOHFptN663LX1Rw(te0fKD1>AUfV2B}hq~ z-jts2UnFqL4bU0OH5jEn{nfw7#;-7pq#e_;YEYUnw-U{~4h7Rn^v6R|i@zor@goef z)38eGgRCF&qA2&KT!H%Bz_45WI91@MR;4d)K>N6c^>mhDt=5@(yg_`S;XIAMl%0&9 z!6>Ri^=jmb^n9sYXK7mFNOO;IS-35fE-~Yw(Js+v6(pzIF8OSJi^q;>;1nZaO z`3V1pK_T-`*$t@lmRy;#ZpkkGO~XPO|A*X=krZx&fjaz_|ZUj0jU z@>?(#FrsQu=^d1)O6>F+^um)x7Qb_CPqUqc9k`DT1)pNtFIZk^=07pC zr@5yJ+w-3qf|RqfFvuS?45d?fQ&OQUEpi$@qx+oF)o_S9^GZklbHf0-zq4?F;R`y; zE4>U~QjQA(vm-J$YAs*C@os)Y50o%jaC{`aWtZT&ESdr2}3TcLLPt8(3QqlP?G3+^wcPF zyi?fR@D25gRdVpd3&&#-;S~E+qkYj+W2s#QMKF9vnH7|045!(rHc6u}63$S)ipn7V zEEq*vprHn=|Ce(3adq0%vL+|?8M*2Y!9Pb zEKZtLO&Q4lV|a_sl@v;m7QrrPLGP85%vPsHx{u`svHKvDP0g*7;Q@VFL+J;C(;Sxl zzvThVR)-pQa1IyW)nQ9%-Y%ufR9MoCn;`jTaq&GKBfZGg7$Er@55$fCae*d}gno&O zAN*M8+0?I=GM}HrwWZXlS@MqDoZhvn>4(@t``MXS{*N}|Q=w7C41Jno!F{&4MV}{5Z-IluRlcn$t;5)M$}> zF0)tg`kgk(EIGt{j?Awr$ux2oW=x$FCBd+aMn9$OPDDax(Pi;jEpD$>wAu@}r)kHA z3CR`+_0ojV8IbEUJXxbBDx&1|OczZ@nMP@; zsP1y^V0p7wqKfsEXZaP}crxsoIED_@NA4@N*81rQH2Nw|pbO(C)uS2>5OuYVJ<8ce#wcO`guKOD(3RlR{@wnh7 zH7K2Kh>VK3zSRGu(vF^Lgd(h?oR-Q;`nC}|>@|+gFACP9*e8{ySnBhdE1%KbClO^m z_lcTh!L6)HG_A4HBf)3(TRnnL^f-&&9jOnLG*Yfmm8zQYlU3pv}|J){+8d4(jRY$ zWg{movk|?~0?l8nPoKVn7sk-B<%{b)Y<|jYiDAEkwc=(715XLcNbYTp)|Ji}f(x`t zRsJ1rx>}l~|En~V+b!Kh`-_yOMhBa&Hit{JdwdSN+x{*`{ohc!B)A2S-RhMjyVL41 zyBxkkYzSoKpW*I#G2r9V7|Ng%1<#X1C34b=vH1L9$vr z;%?e!R*v%TaZ~?4h4QRY+9tZ~UeV+6idM55gWDs#&mC1~V1=%D?0BMYf+W$xdPAtbNXBkkMjfWE*)>4RiCc6%s5C>tx96#9&RT`J63^_XH&2i9kMEa^Lx1| zY6*=0Z5HbP>y&n8zt8LvQDTe5=W)6$A98i4XDGo|t)82pOoB8kyIi8vZ?#B%pV#ig zt`MgVgAcH&dpK-0I@1BfQ8thPN@`u1N7^k6y4#jTxoK2%TROW!B^946SEkKn=3&65( zn*e6xaJWUg%Vx7W{dVz7igzj_42LPhsXPUN3ZL5ajuZ7b8paL=()A|6XrtX~lRRdx zBvedle!t2ZI|8QvfIo)|8aG8 z*C{wOBdWly*!i!xueC-lojWHcwr}VMw$;`)S{)*?#G+-hxqW_z`D>2GPeZmB7H8I> zEH|<}fov~YKq_)8gQzr3X=k*X?QWOHBH5f?7nX=`xM8ed9SX9u(TAtn$ngUx5m8tj!VOyb8KVswg%fct%WLS4K{a%E7&zLlU!}kI%m0YYDFtPtSEVm zneF1;Ho@byT6`9V!|Aoy&uQ`JusG+r49YWSr&8`wMWA{Lc;c-#DE$S_LN|wwt5Iiy zgcoXjY>)~TzvS}RoHm8+h1M1GqwC6~%*=GQuE6Y8TUX2;tKaF91gp;u1&G&n zk)wWIWoUxg4Yuodd)(Nh`Q0w>_iC{ct!7MekJ;(RToL^?=MP-ETB}&SR+QHzt6hTI zVYUl?(d7}aPLQO{T22iW#ycSXWK@psmsw0;bxeZQ7x-KXXIN*`bXHB~J@ zMgDl-Ru}lp;7U9MylEwOVw>k?W_b1e`=u)bw-i?!l-ow2eVZwh8$h64BZJ) z%DT*rNia)3zt>^0*dUTg9{=AQe(_7`NPl)g)VrYuPni&`K>N<*R;SKgk;y+SlbVsN z9+Wyb*v@FS*&RNQ1bNkCmqgD!u1&$sNhuW9V`e3KiN(0js!@lgF3x<4&N0FRy51F? z_-{#SH^qP_&G~0()~8B)>iKdoE>Uu0>2OI_5ptE?@Ab^$=aXTIGMeVR^Fmb`Hc*M9 z!tN;Ei#+Yg=q76x?xw$beAEo zgpjtqfxH?*a)9s)_n<3B88WVjWnb{Q1-pG=SlULr#cwk^C7;#iv06ok zcTu>f&*tL@{>kSkQ|t@4xfNb?2x#mP<5_gDx&niB>4HB6wY^DQ^lk45iDbMbpy*ArG$6s`S}FRB0{W8Y8kcwOT!)Dn$-L zV-;#epwWZSSVfdINNLTj4@SJ#_)fI0?b=kDH(069zs_gS#i&Um zsKO9%&-HwPHY!U81mn>1FGW*ntO#khK&hH&b69O|Y;&;7@v%+Y8@x98Sr;^;(i6ez ziEg(a-3_+lfv(K$^1aE6te5O+2PL9sEM^yinBCBv3H}Ydo6I91<)y7EjG^LZlq!kf zp&quT`$f0IZgbi<{x=8|(r$+!LD=?Ky~8m4k4LS`ZQ&^|G1$>)@md`gY~hfFRkV4WTQxfQhhkc63nA|V;kWYx z$@9C?oU%U1u14|0(Dub@Hzim+R-4P>7DcZlxO}302c-^ECUQG5A`W40|IC8Et@UV+ z;eg*^@BrE}9CCJE08r&;LEWW=$OO!l@MLJGw5GZv;IW%pj(`T`JvtCnx+aKr@LDtE zC!a@fy4}+I1%71+onQe!VEKyFVx_n zWFZv8K9#Q+MTg%CDa-1T>^866?!?i@tiu!P)0ojp6>2sb^*_M3BEz{g$tj+RK1CTl z!6PbDvFduTrNvMeB?vcO>m)dQu~M9cHiSvRmzfAhqzEX$|EX zs}8MKFjl_@H)8wzuM{w@AGCZhAuToun@()8+;*FENh@KWAWHb71{X8GNUxWV!%rA=^tZ|x@A0}2XdOda#`a`qV?)3_iy&!T7 z^E6ZZP)NY<&O|#?B&F>f*N!4zKz7SR$RHs63Oz6zo<@&o!U4nC!MyFDi-s%uiB^$^Z6=}n*jigc8P`4LGc4XDAPr}xWC_0<1 z)aHvK(oop#MM$)YZqexw zKn1rp3-#=ha-ET%dLu({9PBCy3 z{WvYNV^b)KRtYPNWkX~K+R=G@DvfzjiKq3m&^j9*AzfyqO&~q2Q2iH`TKwj)P$^Jr zp$b037PThidP#|o+!{ICK(l6KJV7bH&yJ@XJ=PfMnmYscgA+@a0=myfk{_zUjXo&*L`}r9TdWq# zzDPRIW_(TR`y{p{$@?*(7thC#+8;@)*_r{xmtAl|L+q7AyUlkX)R_e>f~I&V{=ibL zcBc<&bdU6rRtBr+ldv3Gt$xu74U6!x)+f)rf?|H6!5=XAQw^^7D&T`8ysC7AfRM5o z>+rSCnMt(iRi!3(C{o*Em%XZ(`OhQU)0n$sYg5YwN(1hTNR4BzS%COoYEAJkgAc24 zf?&1SMAipTvp}Bl98t-M*iT~xu-MgRfZqOSq?d|M;v^)#XRrZ%wh;67n3^fX0pH3x zWL$*3a%p6ba%tB{eHLL!I{r8bKg6~O?eF~C-TMb;Bvbb#m;>i%_!6ZTcOLBhAoke5 zEJ2YkXq_mT%{UP-i#Ew-lk9d!8TDPN4CgLlj2?!v?Z&hz(R5^~QkVZe5&~AeV10_u zSL#DnP%At;A1PhZ8r%u_1nNVx5Beap)9L&%^5MGIjsDC>F@K7DCA4)}J}sX1C614y z@0Ov-evVwI(Vs4WKJRiQ&N-i+ScA6TRc4UzF@)H9q%`BML{k4+$_Uy7g#RTnpHgMz zS+XuyTJgU|!f@reU?5+Ji~$(N?D~e;clsOY#^;&g-Ew)`zo9<X@(PuJBT{iVT048B7< zRx7ViKi1s~*C468kxs_Ylh~N4MEll&tN(+(&~>5Jsq$LvEAMHuB+(AJ1t$$orpks! z*Lwdy!#B|kMU&O;aSB-3{63fX;J-nfP9HQ+SSO(R7cExXzyC)N(TqhAQli}l`A_oZ zL_Icj5)+yB&E>$k8YFbHBzR{1H;B(}wp#68y8z+Qhcl=b{}aS0`6V~Dc`&zd`=MfV zz7$1y^OOOJOz(%?s^}A)J|~ohv!g7OpiE7oqiZo@HmpU{%?Tsb<>!WBRT8aGg;=2i zv^YF|pWi0E9PUe93lV+ZBc$gUY5pUmVn%x95z>#0^y(v|T18l-7DR<95okV0I0DSw zsq~C@KwaSg@e68E0+~r$mor z^*Pp~Kx~Iov;ljiH=>xHM?GSTfnKZpxH3~c6dH{~%W;#GNz<@1#{3sN7B6%lI7vdA zy&2WMd|^=4AThLmqf$8$Dkclg2cXr36%cxI!~Y0}b4QDaqbZveePOqIH~x=se(0^h zg|WK(Y*@Uko1#LzaPi+tZ?bGu6n^vn8MO}oR`~cZLdosG-q_*A354LWN?W3+|NFr{ z)O-^bzODGlr=>~{qs8HLxI7+7J=4X3;II^BJ?O`KZHNKxFa-r7jHr@?Tk`I@&rM|VF8Zn91;d2&ZFLD zBecKKYZmPoPd2~VBZ8;A6Xn;&di*x!iA0Cb;&uyAw_)5lZKC_#sL%o^tQ*%LL3CT} z772_-vO}-u-4#XaHYx4667)6u?v7$-Ha+$)v?$@d<7>I@{-T ze1Ih8D+6iTTWG62p+H`<&y6iO&KR%_z#!Wj3UrPI`Y<$!(zamG!X^O2K0(6n-|ukx zU=(3?`nk z62N&mn_6wR1O7})Y%PNiY4E=c{+z*Mpkf(ctjy-VRHF~1o;$D*AJ*GZ4^PR^Yuc4=sqNjsIM z{PC!;4Qv8T@I;Tr300lXZ}t1VUooyXjQ=|73-zR&ojEkXi#+KL+VD0w(21x%VT|GX zx0ObQlaH}BqYR@Bha0+EkK1aOtS;v_{|SNK^5Hbp4&{s8jrsZQVm8KkI}Dj}tsxH2JsyuAOu_HK${~49Ys1?JrJmglHH+Edc1l*k zbtcqL{oX|%oF&h@$^!13%6QVK988!<9u*hjGEqRMsUJ zO`S@x(qD`ktj#dS^b@g}##x7%O$EW?^!vV#>P|aWta*Z}beoez%Sy0~`2h=Po&}q> z{m*4oqti$O@>%9?Wh{-_jl6$k@blbH=&v_}1C1VVNzq{uyg28CPW$I5m?t#PT1+$E zQ>ycqqcT*ra}o?_1e?PLRTMj;@;j_oLOw>>`hk~@@Lee8={8%Ur}evkK{e{MZ?K1`gcDR@OS=8zi}^VZ6N~J@`nO#NB5LbCwYU zTZCj{HN(!wZ?!!LH8w(j%9p`#B-v2#-z&k$}-bX%>xk2Rf>KwCaT`g5bzbtA# zI-PDO)|&;<+PrtP!W0UAJc=3xLAyxhoq}=EX?VM!B zmuRQF=(kG_yq}S3pdE*?sag^pS~RevfaTe6;N`*8w}@Ww=B2tPnp51uRaA=ZJfIiOg;LcCh9RGVYyjy2F*Ln1V~{8&NVZmf(> zFFr2lvvDNSDZv7DgkXcwfM~T~4KGy59qGqo$h!y!MZb=1Lob&CSr~7zp)T>JWL?~Vam_s=rX+Yu=oLizhY9>%`pMcU}Yc%yc2@9ib(X{=fGMe8WN;Ody zZLkSx&juIP{&LS1&Dp6VDCyM$>_H z*mY(mq*tUdXOxEAK6Pd$Q?T0Xx=FIn;l;r+j$g6+Lyvm*NBapjay4npiLq_zsk11` z0rajaNI=0-h2*o!liWubkY_QWKaTFlCUgTDehxePPe5f#@zQgM^=X(_-FUAk!8Xyy zq+!t_97I6u{pjWMXxGnFWFTEV4+-p0$fxfG_qK`IIyf}9fVK3$v{B~Rv z_);HYjmj{k4r2g(uS_*!!r7RxZ*e&>fvnym8l75SM2bf--663VEj}kWna|;HS)nAe z9*geGwgri-l}zfs%P2$U@VZ0~j!~HA+v6xxAd%Zqbpf_p zR`03MpnU#E^!j(KX$H{wAF*7Wj?SUf0Xfwu=Z1o7w)r!v6(o&qNjdq8D<|48K5>vM zc^D_eq4JsNG|l$oGh+~H+@DaXvtg{F8r=nnJEt~RUz|+(Y#!_qCATCwAts#1pgIuj znrIdvabaAev3-KaBVLFOshV?shN`(Nx;1(F&aO+B_l&JfX_ryli>wj7{P%kM6~BUK zJMLV@`i~pFS0D>Kdj+8`Y4AP1P$jUIRua7`G0$WXH*`<+3)8 zl3>5*#oopb{)vUxbtU>mLmN8YBda^jtvbFI9qE@8uwd>(f$Q5?pg@x@*9xrq4B%=s>9o`7U?>^e03rx6z74TGT%aM_@-f?UB0FZyq5L3&+BkUuqe z4uk*F;13ymhruqx-x@O*b^~R<3rS(tG?=j*xq-RAhLQdWBQ@afg<(n5@Fq%oKU$OF zP(GNa-2~Tu0A8S~;}%I1pgz2*)ZzX`p!+Z~OZpu#a$+>34?||fXfoMWAh`B*(-It* zC}0^g!}1OWaFWwuHNO-iYimruzZ56U_yf^q$7ssTQXu@CnBF15rD%K%t(ZQg7S+3j zg3OIs7E(A42v(-y`^MHXdTcH<6BJG^oTj?nmX~8R!=p*Jkm$S+a)=@GH6+1h@v_Yi z4rgqVh^hCARz?R-!QEEBgv~A_2#@{Mm@fFi<;=PT|0=lKejBA)5Ta12Ay|Wk-9~3F z3=dSq0xi-5jp3jU`Q^4!g7k9!f_~7-2_%BW>7**+dD}S>|Oi znjUKK9VA;2^8qt48cE|`nwd;OdmQ+Pe}hgj4^u+#=N_7+hfSXBUrov zv|`o2E4Kr)k)>C}h&$2mEb`l-kOBwdJ2BLO1M%HZarSY+cy1SFBO{iCh<$kwcdOC5 za_@zR7Z~yV7`n+L(XgzTpum3;^D4u96dfCE!hIS;=GfqP{$R{t z+=-rDpN2Qjs7RUaj2d($HkiPD7NZ^IwyJ>44uz0cfIyqFy>76OT2+L{7Z|&cSB$W* z@H2fDmJGYaX10E*%@ZR`o_wMi2B{7R>2|B{a18aT7<6+-LSsI&5)wIzx>gGIJp$P#IlGB6p(5B-)Zy&kzEMDp|Q>E!kMpbQt$IW5QHo`4OfAI##>?LpbC-^b9T_@JHp0poI7@M-!p9=Tnjcw^8;trGzM zsKGf5{t5Tif-gXjfOlu^verYC4^fD}67x_nN-_LGx!8`;Q;CT5s|IH?_$q@3^1mT) z@hY6JaY?}jxICsd+tefkxULPe#wLuA8`{XA=?uAvYWcGKSm!G>#p_;*3{Qa0t>i8_E6>Q8u z2wP(s#JeH?F)g0cj7^No{x4|`P677B`Hc_~(3xzby_CNzv3Q8TEPjzw{RveIDqlK-O-s(ukXnhc}ahBKHa&Sv?Z$ZDdCHW@zcK+rswL zCcLT@3U>)ym|oC%+kLnZVDT-8rNMQAsrVo2L9=SsM(@-?28+T;i5T!6OdgzW z<8T!wuZzQdsb5`0$bE#g79=h&mYErE<8Z57wOz-pq8NH1ZbBR_t{1G!FO6*zwh+Rs zGYac0OrQk^3~kZlf)&?VY+f<{e}senQxIXnWkn64zHu-6AK@g2A1fNBs@)1@iqBi{ ze}+ru2*sQe938Lf88N$INQdpTb2*s@1$&V@1vOd`OP*A4m#Yj}8AAG|0$HUZ9&UAr zXsQq5nh-LTA!|d(8HN;wkakZ1!F@@Vs?mvK4k%Q7J_&mj*!rvs1&VBdK(B?607LN1 zv|5fY7_vTuG;avxjS!N{kT*5N$fOB7_Q-CWF~Z>3z9AH7NFxN=7((7-2wrkl6Ha~- z$mS4|&5*Y+hMo+1xh4mJJf-(mTot}B-u$>-GgI|xFdt3Z!h)_I0^EL!rP&IPBumA?}P?0 z?zvmh=g>gABxpMv?}h@opTY>-6&s{uhNaKY>rVv}`I6X<+Le-vPk{;SMxPscLNGh^ z8P3R?Hba{4sfEMU{$@cpOkL8327A(3c<>*@hN%)0!FX^z0*A}E-{E)q&3nRq>5Jxw zus60FT};V*0(L45xDR9LxOr>`3ba5T`$EY3K=}P(F+Kc&FswgqY>Chx#nP;2aU@ew zK&0*PeN6`%8*Y(?E+mc7?S`^6z+B5s^~$a#7rmD z?OKW%tL$g7lx7A$I~3wuSedOZFT1?pg4*07eICmD8#B5D$0FXKpL$!6#h374c5H<} z_`|Uw5j|__ktxT$cb1=*fQ}cD*GqB z0euMyPHa@(Yw^3-5^Hurp(H@K{zflG>FeVfP)j>T>$ixz5DF?m#1%tWkk~vHQIveA zv=%Y?y-s#I>B0H~)uHJ6E|%HwJxik<$oI60jD@7Za-*6~(9UX2Oj8(gF4RM257>~` zDdEf#wkeYTe5hWhS)dCcq@4>$Stth96ssF%iIi=H#$=++GNEYq0S+_-giDOTG&eTujcCe*f$ZiRGy3MCq3$j>3RN^L4`4GH$wP2h63MA{5>*lVyV;sV#DbnJj|` zGZ<#F3@%{s?;89qga2T#nQFERR%N!aX+aA;+b&oIa)%mzWjloVQ-jYi_%97kZV&j5 z29IR$-x|D@!FM(I0)zk2;FL7L_ZXbU-+yGa+YTS@fi{fdVHSs@Ol*j4FbQ|K|J5Sj zU_o$|Q8mkN+X2X|3e>klur>Fh`hAK@81bbLa*H9eHNMKTfpfwx$n2aG3iSW@ zIu9@>s_y?kOt5UI&H(5mm8(0w)3pSG71V}=$`{Jt<=|%b;dK08qrFR9S z7o|uOP(XT7Lz(qZbf_0?Dt|u6l=^WB!ENqnQ&~0*#V4xva-{5kjA&U?KKyU%6lwcVtg5X~ z(oG0L@DNi*-;`;pP$%j7FdO53De~FF%#!`}E%WQcG9aa?G`hBLZF#YN%xxQ(Lbx7f zN42GX>=xUgl)J25YEA>T3?-$g5y+4fdA&ibtuZ*o+M~GwVSh;JhrJjeA!!|wB8?u2 z71)NRG_mSm@JQ@-V;BvlHc1?5aDj`uF%Wfm1Ciq47Tt-d5Qa&}d>MMK0-t9DPiJai z)wCwRJjw%)EG3P820OkNAB$z#MwOCGu0@a0lA}|s>AdpefH5iNz7Rb(qHj0$NGM0R zt9LB)8nI{O$m3M_nxHe zB+bMO$$6^)zal^0NRh~7lkT_E=Zb=ac5*4Vj);GXMV4hxGMcBF;6Y=WRfjyMu!=;BMcD81ksF*%WDQU!_^|_|CZ3JzOE*Nzo zM|ZQOK&(tmh2pt%{5hSU6W7zRTw~r9a1ELV7nYfYg&cz;-f*B`J|>0i=%UXso)?(E z?EzlAxF8t8xI@XdLklgIs?Wl*$ol;Ozm3HyrtsLo=>=5)K4Gk(OuvC8DfCht%&_IH zWh|xNEqLoj`Ad~pW_@5g4rJ`Q@qY{Bw&L+DxB7!re-54%7H~%J%R%Zw_w^!>_Itlb zd0z1T4@jHmVpWYVQ>6cM?5b9#h<#5yDtA6lmsypftu8-$K32(Cog!nNk3C>~l_K?C zh&>{;U!e9iCV0_UtBHpp+Sa8ct4f}H5x(^)()7jHtHy>Da|h!fxC2HzoKq3cA%OR6 zwCM6|6PPz?FacoOOl7mG4DieMi{jNB*!g0mfW8Ww7*8l%v_%iBq9Rvu)QuCME98y_ zUH+{pkI2FDAJmlEFU7K*QEa&o#=BHI;Y;iOI_YXv;~SdvrC4*@wj^q{{6az7_7tr! zzUk%IjYN$Jm2l(=(U%D^;4j8ZgqhH_^Qw_G`(;Mfw<)sc<=9)st`rHqMj(Znuku>E zHE5#19u0abuvde{3hdM1lmg#rP~|niehnHbaKHq$Z3k1#kPKI1bfBTa+Jw~`KP>dS ztfgomg6{9lhnJ12><^Sxhw2BL0uIsI?`dr;SnBiVSN}bM50r4O!G(>p5uDr`dxt&y4O5g z1UQ)@r;B4AFrU%jKMI_sXDWN9@1nfHIb9sn zO#FjfUgktRiagPubcylJDDkrfDa`@rHE5~8FU0J9Cl78U1=?S$3jbmJE!=Znj-YxguvSHg2sck50sSu~j@)(e_75eQ7kHMGg5Z z&VqQk^g&GL3p^u>F*(DA3^gEM=1;v8VF2yMg9{r4B(DV?|6gXCKPn$4c&PTNN{#%4 z>`l=gU7j#ajGO1(?A zJkXM00j*gxJExk9l9TPI8=apY2N`sYfk>CsUP?q+Th4AlFt@)=%x>$NO6(D}EFXWg zI74c`&JLhk>MPP=X{$;y;+vS;>7leMfMhFN6kslnbie8H+;vm()$9{bY!<+jxw%FExwqR3;jk#z+Jq$=fV zL%HQ`iVxI{6lEP{al&IBH+2jr2cO!r<6g%-JGTK4(uAW1{?nK^j<)F1 z@;}ruCY98aaYl#&V^fvP@g?IE^Y3FQu4wRavUMy6!0h*77;m)<@p(d6b1QG%h_5hM z==+ox!~<4V!DO3|darcohgoaqJ9^pWn*Y*$CZ;9}m7e`CT$7SX4yJo=kgy!#LJWx+ zqLWkQ;K=yXa_tAPOxu)H_H2JUMLxAP=CtGGr#xgakSq*@kd;ie9`f4{sCnAIo9mtr zp-)e3^tX;bOFsHAR)u(R=DS_rj(3}>$5u0dZB}ZVB-tTGBsUndQzbMgez(+U5A$al zyrsbBspcetn% z3yO}FsUg|>GD5HkUEo?p`4T!dgW4`fy2Ng@txmlX&!Cd=RjM`bFX~GDYjhJ-=|;)5 zCV0kP5MW0eWV`J{@*i-oOO;Be<5lP#%o)n52O}8_b_>?)!F6YMT4aNoX;xvO-8b?^ zS-ISuL(E3q^8^kMeF4qQ9X<464HHkGw)(P@h=>4SLNGa57l*v_UV2@0Kr zoWM`T#}b2j+vh7fmpV|n1?3|0ek(-=4~o5O{A3P*h6o`>&qV?>qJ;N4Z~Z>bZ{rs| zrXCk+zmR%m-{6u766<37HT8b!_jLR=X)>5z{2R@qR8w32j;rwdw3gMdSu4WZp$HKw zR(Vlx@b~1E*1?WCi0L$@HaOE@vT%{sh_!rFstn=&mvj^OiZPJoP!SGCaJl!o{vgV$ zItF7K&0&V{9E`I9bcL6Bf`?kw$Sw+UQsl@Nrr{W!e@e3`3v4QLzkAkOVNM@2Kg;!2m&oBB1~)F1om)k2F2v_2U2I3wV|C zl7n0)=vX;A3Dd-gaTnt^=k|sQT%FTiBmFv|#U7o+wu7Ck--AVW02w`A+@3DUS7p_3 z+PUjhq#7f5*lt$cs5rgsm?LQGz3B0Lq3&tshRA`GgwSZ1eDKB9v93p&I&nN8uO1nZ zBYQ@$V)sn5_KmlVq`F>da_&IOiioXwQPYHuk?sjadZ(ESu+xQiIdY(=kFcxzvH8L zlzvug%44JHdi}+ID%K3ce-D=6oUPe%VtF=zr_yKRYh?atrs{rYV~w+l=}(w%;?NK( z@&pGd;xmLTVi2mMgO6^7vY^BwW2F?p4iS@1#G!OFvB(^pF-i;~7{mtxp9;droI(JJ z@R740?Hu$VQ;i0Pq{-RYiJK%noJeuv;j6++d5JLKim)3Vns#M^yV*7@?PcXjOQ6sR zt!l{fvAoo9vr-9s!rP8WQ-W-te4xO{H0kpRLa$M2)?OrY9NeQV?o<3W#-v$8;gRux zv3%-`H(r#_75GGh8$PATIP+zk%%CohGOzJQa99aM$MZq{-tOjLJK<-q8}^1V_(0(B zY1-p;t2s z3z_B+;Nf~6X2an6@~W#*e01Dy^u)yLEJpjW^6IOYPap=t631J_wx)R1Raa4dVHXg= zo;m_k$h-Qgt8R|^1inO?#X`x7|5fr;sW6i!SW`+mJGEuH1Iw%eCISR6bls45ZRtgI zaCG8lU0gue8+`6@o%a{7OS+owzyJeJv9Jf#ufI4NS)X(<%~^oqG;Y_}rxPFto5~HP zSIxVkXk@`=O=s#ZC~|Ksy~thD9T-f9BG|7YH7E*&gPW2rrb&<4yu#*WlGDqggf9kh zR#=E!h3+j^UB&vC*2EOG7$p=QYg^OaOVXOH{|wdN*U1Isp3k|%H&>CyE7G=7l6nKl zoWrJKdzz)_X*-8LxaYfmeL~$VSWxIlvh*CbX5B@IsB8NUAauQ0D{SNkl z-u=lJivlVlRlw~I1~AAkEI5#SF+xm{Fdj!P&S}vyTkEJ!2gDuS#OR6-gIFr^Osfw0M zWBInTX&lP@EpCucm&R^1&RGkDLpk`my;uvgEx-gk@DnS)GSX?kjM?XBYySR~-?sB< zA?dfi#VtxRQpfg75~?N3mh%c1(q!v$QrcuY z2`P`poDFdy=S#fzF8=Ec?aD%rwaD!)EJn5*Ex2T^V{*-xJQ|@~Sk9$|`hD42tP7ET zv19Uk*;267xrynbST-saV!H5~?Vt;7E>3vZpCb$pB4I;6@oY9lL+qjhDxyZ9xC2zR zLk}bKLmPp4Q=tk`S=iB{%b=CK*+=Qt(eL6)22&?}<&{-j>8!6*U(J;+`bziJTxse(lUT7<=H`f>M-lM_9s!?D0l+TsmA#I(Euzp~Z8$@n;3%G~wed>NJ!zmIsTIIjnlI~saUJUjcO zYelCS4Y0==1Xz8qBJEbBepiuhTMMcGRiw6xG~g=II!MOAbg8>Oc9)c_<3$HqfM6JY zjO{(Rc@j00Rj5QW-MJnnF~Os@!Re2v(?dnEZHV1z3`tjA^Kognfp#65u1>d48pC+8 z+{C?7Wh3Q=YtTx85xPk^QXnh}6)+RH(90K%l%{3lQ3o~;K>~Re(6QJa7Dvd^!HMA& z+vxQF+f*MFC5{*b#btR!Umh6qfAh-rO+3TcbW>(Vq!4^!yvmhGnGCuLKS{UjN#<@w z+A&T&P&2t>3$HbvPEo&QG+TLz;0+r^w8*wJ_^J8KQei7~PDsCE41nnp5t(pEDpKlq zZ_qt4{b6OITbYciZ>CGrF7M!9Krm=5ebBWdY(SMhDSe%UZg0_93F!lztx+&B$@;MG zbq9+kr*BbCqdiRtzLVnuXBGSk2w077HaaDJtJE9Oryq8|2@h5d#R1&Pig`+9jyW~m z^kd705K;aX82=Zr$)09)Pg))cSBS%n7u!O2@$~d7auk+h&aIs9S&5M=gaU;#(h(mv zmRrB3f6p{4;ABJm(WsjhSMB2p!?V(5%b6B6m<9=S$oYZ|0|Jh)Yqmv~KPYQ_rh)$( zz~>sY0@&uHU)lWDGv@N_9a>hiV@gpJMHS6^p+9iXOP6||y;05Xji~Tr=+LnB2!ulO z)3ur`s>1sykvtA|i0Btsbm_5;yDc<(>tphx0*lfuGn2yYfW_3Rj_rJ7B?RIG6!2j6 z8C=4L#dXqw$eQ4x#CHn#2?S6WS*mYGU`N#5ganMBxpGH*%dDxz?naGO#1Vy15?GZL z1eeQ!KV$i_bbIUxV}+h^=I!9dUzoiyZpQ^1&*^~joF>{_=u4}U%8Z@xtSo&9Bn(kg z<4njk`ur+Qk8(gD3K^OgC1G)gR`YN>WAQRyS)+G=>)sTA?*kFQyu~8FeD&i&$jw!I28Mn=w zJ_km%%0(9AoC1{4k%BE2lY`I4ILALLO58PqsmzB1*thUC@ci`o_omm9bDN0Ub8a6-3j5OQ%B&Y#-%1*b z#Pw3=J1Y6k91->)Uh)J|4WZ*IEOh&$`%SXs?uX@o#ljpJ2#L3n=D;26MmG~M*q zsxD2QPGpMfd#)c#T6<)$q8z7JD0Rf|3Y;h%4lH13RPee(?dI`#PU<=G)gPD_PgwxR zQ5HwS%M%oWXd9u^)(~*`!?^w8|LWzqf(fVR40P-caE<2zF&I$avCHwDwbMl(q;6aSkU;H{xmmsx8xp%c-{gIb<_y+4>&DFHh%6R zFJ}pF^nx{;?>@}T{;S!W>=-E(6MW29M5I7sSVVs_$=Pb(#zBeTszIW6hkY{UhIsRA z54Kn`JkF7*p z$|o_(TtWZ}?_XT6`Jq>Z1<8;(KgM#(w3k_RHcok`bB7Jlf zsn#)W+X*)^waC8*uyxLOK{h>%FH)bo-*(84TjQBd5)Df#Up*3VMLCn#VMy@ijW@_bXU6Ffy)e^!kYpmR+vCqlrL(-= z5OLoge+G9%eiKAS(GQ=c!eJS5_5#*sHO>KsYtTZ05q#jEuuq$Ojwc$a!AS*1nZPZz ze}Zka3F;bSEF!+=5f*JWKJ+~l4r6t}^FLAW6AcP}28`3-Jq5;Vuuy?dHTXk;2^!pc z9xyROo;n|^YfQ>8rM*rcM)b@Mq#{xB4X8thPDh6d#>0A^~?M1ffv3|C;b2Hz?0nb~-Cjn6Hj18aPi z1EzU=&QaJ8Lo<8BAs9<5+8X=2;&r`Wqi>zV&;Z`n|yV zaJ7GDs#$2#9qgbyL>fWl%1$Nf4liOj4NBCI_3#*rO;Fv5Tohje7w4)VA<#nwOER8J zGR*Q^jJb`aw3Sk#uDZz6Ez7{Ct2Sx!&RmS$WLutuoO0hK-gN~X^iu2%;|ud|SZe$M z@kz5tjpB5DkI4m-hrG{dHeFT?7BF)uV%Pij@2=~$}l&0(uE?%8V!~yur@;l zTYcVGmtjh&<)J?zuD5_gZGu7^k#H8r1J>={09_quH!G%%88~>wii}Me66zO!NP7Oo z<801&PPU$i*O2zd;??BHU+8DIB$28Px;LI>+geIdrVfKj;&=vSbpP9?;0~$3zdhkK z*c*BI%7}kCT4B@nO@#PvI^nTJqA$k~070uK^*jNl5s&9H2G(Qx9OkD&k}4Gg$jEQ=kOqJ_ z*nxnQaF`K1CH$Nn1A#pmQpOfvZQGlXY@ftwya>@uh{s|v9C+cAc7bSWsOixBx{qk4<1pbVWHw!h zhCv+aM8RQUN@r8p&C#W+cW>7#Q)+o_}}+9P+T#DxYd+Aby0ll|H?BNP=Uk9MZ~r~xVao^oL`J;2?P7A@cSP~WMEip2 z1;%b+fAA6=dHU;3q-7?(`i~6xFf(4DL^5hAt(e6?`7ya9V-!rPZo1)re|% ze?pkJ3P06Mb1TC%L4yia026h^?W$1mBwd{Rmc`6=#8JVH0|(T}G}I%p>QdnbN=(T# z4YTdUz(NJeffz>YP9jsq{fx3fWXG?J+KE_&rq>^tW|HOls`S$7Rxge5+nB+<)Q-1J zwRkn#%*^EdckYdR*I8GQ-d3d9SCO_W(q~tZ{5L`R{3_BQMVfOJ=@&@GT(a}s9Dm-J zmw833Br|U2%KS`Ay3O%F=)rS|L<0Dr7JCx zUt}iji=3#F-9>~?_OS{me45%^Eyj3$TS| zQAg4t3T)Njhyq_*z~SXs>LT0+84M6`M9? zI0#|=+pQ=5^$xn{4(oTTJNdoS`h8ga{?_{aa&2zAD^r%OfBhyaE_O-nczI(t4e?By zApUTih*1ckfehf}Sg?oItsN(GWoFRIHdWIV&$sQ%{D($BR=cS7JKdV)-GKcXBosKH z!7>F7nxK*Ky(UIHtam?TCa=WX6zNbB>6x;Jlh6Zpq*~bBC?5$0OGejl}dcTvA_6;j{zGQW-EbnIBm$D~OCGsX#CQUwxST)-DUndy^ytrL~yWC3q_ zii!F4{(VV9wzTuL(s#$}Ir3M-H?EgQ15|Qae@ao{j0T4kIBR`B%ud+aaK2L})Yu@L zyK1%R8Dwqwsgz`z;YNx=ypIo$1ALINJ^VRoU_017kP--8J!%&Yz3%h>xQH_rlQp3< zeeBqN;hhTOZagfA?BgX29lpXj4drrkuaAVx>R+ z#%iYQ_3tg@wSG^!ql{9Ni)OKU#wDw`+;SI9_($fYzXQefkh-$>|Dovw%Yl z1!a(ibteW_L0@;x^z3~w_0V8~0zEajs6a0bo~R4xt-)voKDGd>HeVp@Vd=rX0GVSS z&Gc|RnEGlkM1g)9oK&E{3GSD=_tSj`WJ#m@_CkvuhIveuYTi5RH>6QBr9 z#EeTApHH%^xpaSh%8kpCbM;xK#%tn#8bJJ1gVhR5uzv`iUtb8(>2qb zkHIuUgZCAfslgfrW@(W7IAC^`k~f<+t0^+?@pvBE6(;+r4|i52s|*G{`v*sLK z6+DwwrZC9cVMy`y-=3rOgI-N0wV=<+aU`r(TFxw(ZPn zuB;x*$%vG=R~A7szSZ}>??o!v#m83a@n03#ZGA_(k7kZ?ib3yz;i_kkF3_q8JbQV4 zCH>fYUZqecKA+bU_>S+V&MhS`@#y=r?kRP6$dm_Ojyr7!vWR(qB>s+U zemQ=Faga)|gt4RWz@U;zjbN4tf4?`$LmUWNQ92TPD6HhHg^?dLog7RgGD7KqP7lGX z{}6NQv{rSc%d6b;aMsh(?gsJ>SAH$-ls$@cB#CsB?Z>RT%5tNcw7;fRmIDtW<;KDJ zjbOS+evb0|$}Qom*LcZej1R0d<-7vNEkKk(tQhEaD%mjR3%(QP2fs(!G^JOZv>J>Q zU~VEOdvLA7uZhrGr?OsDHzfzzZEu&8TSD@M?90It>Vjvxz$-c4m&Au zE=x+n@v!ZuQkKVyp#GdCuNK8$wVls0;}ler14Z#_#xEwdp&jiYDnODflc0zQ7Z>zr zTvJTnB38;++$3&~@VLKOUr~BRsPcE3QF&UQQCBWnSI`QR64tMr!|{JaoO?;n3gl)Z z#}GtRHeLd0|Dk7v{ASd2*#fAJ3kW%eG6J_HLQod|NnsT*YmQ?2i}xphF9VcBMR+rz zRzh#;ZBJMTb=IxWoTumj=+*+GQp9UG&>&34iqh-tm~G8dotjh6N7>5J;8i)VKqn1~ zTL3y+z=1@IQI1>>yE^6GMUHl}#5Tp$)da7}Lox2x%>+%QdOV(Kbk}SHJ{IQiDC4nRR>9Z8eJ#2Z;iGc3=Wu}{ zD(Z>!%YIN+E?;JG;7V5FA@7>&dszW{&tA_IBxl|?-i3Q-zgUCZ()(fZTLOJVka~bqXQEK zl;A2Jz)*{2gJKzG{&p%WA{RR&PId_53L?X^lcFCwiJ632odD&mcEpeIjL0T9x1WfU z%ifPyzza+nX_FI-vl3phMI*1e8c~sTFu)*78Zm?1;Zey~iF!`JGe$78zf#;4jn?hZ z^9^2oj0W2k7;80(gGm|(2Qq(SbD@UlCz`3{n+(En$(74ANXB@5{Z|D()h+wbTYw4X zl|t$J7JXo%dF63ql4h^*HXM^JKq#$(0GU|nfF9IjMeZrOnq`Vb zak?%^f&$`faAY95waO1WLo=OFOfz*gh3^7p=@KemENO7UtcWVswR^TMu~9L7rb|?O z5AeCZ5>a4|bp`E4(1!spcE%`Eg3;o+n(4A)nx~6D_8-7}ePxgW3(PC`plJxXu<7!W zaue@e-@@efBvdH&79lJf&^ZQC*DlgEv}{Wai}eFA*^{c%i$oa~vFnErH|UZcT)0u@lFE{y#mu$QqD#egyw;}d zTGB2vUS8_AV@=(h9aa$!>dDA{M7c zwR9;v;IFe~MLV|o-(*{hd&BlT#I|e+wU0M7wp&D!jjD7Ch&?c^BBEtvhh~1e0}r#4 z!A|n!YBH$+vXwXN2y(aJ( z`!w;AB7R3hb&20%$DcsWM9dZ#P!~k^Yo2Bw!E-=^5egi%0G?UJIEv${;m0Hq4aN6X zMUvWyj`D*pabG7&9LknPo#H;@uqIAX#3LrSh4Y6Bu#aJ*k8~yez>m6?a-FH=s4nnC zX9^s%03J06EJ@vDdMS{j__$_TpqNgWx4K2ns^TZjx_rhdO?R`9_2fr!M(JrYy z<2Rw`*nA>>k2CD1H3`hYLPP)$cVQ>H)?pmz-YP|g_oPR6wm+E^S&R^y4%yq2r|M#t z*WGQ)OSxVsGrHPkjFG4&@m}1cn+78R1dczzKy%;~NUk3x-o|>35!i!=!tzk^dee+O z?P|C^E&u6FyW{d|p2?bh%*}h-A2avN(zj2qD)RZq96~;}3t`nCa;PY3=+m%L!B&qv z;C(2kwx@-Cc!a(hL>1@Dty3A+R3=-F(9wea_Ktt2c-}0Lz6j3-*bC+0hS*Iq zwr@Po7-+o+TW@0Y5Ng}&Ma_V**C4yn=Qg&L*c(|PCC>I^u#4Ri!#vTSdk)rMG{825 zTDM%&s+_FvPs0txVQ6v7%JNk2*11x30IxL6t{l#vmd*nxIoxh)Tjl5gT4sb@&)5K$nIG)c_zU4g|Dvdi?P^(C%A#tZMi_64$aA1r;3Ide3Dw`FpGTRygSmCPk zZ4~Kz1mnGM7ohuRSq z6FjWIy_mi;j0In)8XOVX_zXJ(Xs)X5Y8~HWW|{CF>&};>aMqCBz3K_D-ZIf#%il1?wf@K&B3LCoE}L2 zqF>qTS;yI)opQuBI&QbEv0LZ+lKF|M4vbt7*kW1W!eyp7wATI)g(P_Zx!d1i#s-aH zoUFG$DqCOcS6m*VY;~TqmBAqdgI<_&Y z#-T3S&Je5-zg=pMhq!}}ne0T>z}Wc@N>Hx*6vl7=MSe$-cj;b<0<@4}6=lCkc5*fZ z7F`~nz(eh!nTc>*QL^ufUnkQh#bTBC*Js$@JV~7O*1^q`RUtz=zfs@Ey08Oo=Cq6Y9^)vTh2C6X}O9 zV;@^~D!)%zzwcGQPg}p=Q@_uczwPXVv30}P7a1L*gy30=<)mUcXZ@}|jo&|6znk*g z_?ZuhP|1Pk8UtJ~)EJppvO*y{t$Q(p3uuLFvly|4Y z^s5G!6!=Ypb~6CKo1mj{(fs?Sbel;FT+$qAv*7qcgFXserUTE4cQpRgM41ioFAXYw z259e)S)aw93N?L`y4&yx4&Vkpp^ zx=*6XS~3^4Qx8Y7^e}fGU9D#+Y33eGAzIJlfqOZ`JwH+3fo>cv5z*9L7(2Uzy-PVw zomGgrl<5TFFy{0)Ykcgm^z469snN$F+4JKM+4?$kNZ+)dTW89B^W)b_xA|P}=ddQv zs8U|Bna1&sq3bT{?@((Gahgp>Y8TT!Nv8|k159#6UR*%gfix$(9y=lcEDVY`0uY3` zATkIZC7oq5M(Kv1VYFCjG)kX-}*4l{A+AlyxJlG*y7shXr z6Y2&-G^n}|FjRxa3Jf#B&C+urt;8PAEVE2qA-gWXYmC&ynu{Qg(%@AEMmwaCX>#VLdo7*Ux8V_+(3$&evVv@SVsT(M0Qa%>qQC!=nX9KcBK|!$W_%L#i!jvYElN zk{?61FXzE$I;>M=U zhoLL@exEz6J>nk<%+b}p@&(n-)nJ(d^Z1Bg#GBgYJIr`QFG-&-;~v`rhZ#WqCAnc` z+-+OvSZzjOD9IRpgLGXPA7ESLm|sfCmHMmVeQb*zD|MuXnjbplrPVAA>8s=YZA%;; zd3{klUrs@CB0DB6l$xl0oK5}irAb#S8p{|q$^fyitIAs4<@du1A9dh#;1j8#GvV397338%R>r`p5phZo&V{JS_4&r|06HVmQT8gZu zHA*)U*~$qQYbjiGFxw|kukm4$t>&SA_bsgt|4SGzMUC)(`8oaN-CJSJ_k5zEU#n;34 zgkTMuHB*ZXFm2J`fC5`Jczz?`YYjFj@QnpjzEtc?%-(?zJsjA^6qnk$j#REgBA?+e zx6PM(HZd7)cO)6F$ft_5gDH%laJA*=Cbnlg9d1h@lD!#)$hW1}UfawGWEUUAjO~G_ zhXCG0fmVu)XkfQRw<}Y2j7-BQ*$_Ot-FvL&k8I&CdmRr+-A?b^A>+5iaUh{TkxgQT z`lMy0Z))qZ^6pl+zH_`UrNPAOC=2{5#(ui=g12sx+rFk3AJA`01Xiz_7Ky3C!7da! z$VgK0H~#pVO1^h|D@1Q;N+|4+Psy@x;x&yQ^mX4ht{+NjgC}f<9fg)%#Kvv$O12}8 z=jF9&e8RHZy5%xPuOG+WP&c`hCXy zjsI)}$D#nsW{9m~ap74OtDV$w&SLGd6V{*9Z?CN1Np(M4^vrLepLa;rZ{hvLqLnDx z1?%^2_4`-#+b30bape2We5U)2-}x$7F5{a@!d~SGgYE&-Gyg?~oC=$`dlxskWKCsG z5;J{B8JY)~2l)2&U8rdw-=Gg`%Eb^0{PU*LwKoqUM zqa}N3uvUTI8r-}e@UaCPEHG}Q5NJr*2;eW$M>DlkOnpu8qR~$i{RbfS*PyQg12j0H zz(C$ieIwQ%bUOI87xA%NA=e;_E<+B&RAM#?*$@;E3lIyJWljaGA=@SUrNCg#H1m5J zWQa4#waOXbTeyhbjo%nHhDD*FS6#)+1z!lH-KrkUriUe8MMoIoG|1GYa&+UbKHMo^ zd>_BrHp2OgY+cm#9$B`Vq~x`J;K@cht<5kNlth=um5aq@=EpgJILwupJPHUaLpsswv73DNff&{{Kk<*eeOvE+}k8_IaWfCmc9X5)r z4_c~~DpL-}b8X|DFG;EQqis@YpLzdBE=_hyqe(;!pZp_FG=+|r|JdADxmjzgjGV0u)JFf`H?am;&Om^X3h9luUz0oHJNgnFSg35W~*1F!WlSL z^GM2p@O=fovhL`_lbx+30;>>Co`uDcHBK{ltPZ2L;w%!uwN#?K0Hn@HdsbJ2R|!&Z#THs>$`*ucm>7w>LtbSgnZEotx*53|Vxw@as=xc_DgI8jTH zeg*4z;x2QF2yAgaCM&*v-6?J7wY*ibeuj0cIci=szSg5>6-3)N$(=)PI8XiC7z^iV z`tADF@Y6x3PyS$)IR+n*9nQCvWqYpFYS*`-jQAz~kg?M&Qb(#@;6C4K&`N<_PHBH3 zKFhY-8IsVvzE9;eM@hk`3$cFqaVZG-_LL5kmA|qr*;|Ur{>HG`N7KxD^t%@dzOkooD~QKJmKWc!C4}A{YJ+`5<3WZxe5kVZZa<-<#jz zMY-l8mw#}|+RFdI3HT!O{~;R5{>s}|cO1X8T3N zxku>zt`;PLY}}p>bz_SPrZcuNAi2t*IZUu- zqU3Ta5C5ji#>ynJZNEF8umtI!mr3N=F0ybRyeFD3XTz`O%cU}jyKI-7J}d6(vqqwv z@drb|NHA9#i7ex?3EZ|nomV`U%Nc*^B@U}H^aSMhM&pe5ySROhX+@8Dqzg+L!Uv%l z=2+nBV9}k(q4BaH^PUgaU-YsabKa11&h}O1wO86_$sH93RhO2wL}lY6PT$Iu;8z>3 zivZLFZ@+YpRI)~oe-KYKrb%a)Je-=a8zniG@zsb_%1MqXUy)xG7;FJ2hj6Uj z@Sq|*8Y*?~kpKBvGGuicuQv35Uv!dLkGxkzTp)svN(?hB$8QM`8m@TfI=P(2lMKfu z>7`cHiBrKomaM`2M@$g(5w_0s;A@;ttBKTOXZq#wX!1&sh|ZA=jh#^xyb*rN_?Kd`PP3KTj=0;ae=$@zQ6x>+h_(jMbz zRR23oq-!QUe>}}*Zf)33V;M&JQue~+efTuT-2Whg#{iNT1%x!jFUA#|fRDdYSIo_# z@WdQTo=`3uFeyje%~~{)wgB7YoFqY;ifzpH!Gq&6T2yA7DLHScwV;Z85O3`ut!R#H z8Ke>rbRh=BBX(YQYL2;YG*hU$ZPSuaHQ5P+F`YXh1C@8VKKh6I)I!|V5J7nRRFBg zT?3U99x@)hkpcwi@p@L9^d?MXeD$w%38_elHM#^EY#gRg!?F6ZXav@3rk0g>mvuRf z)TB{KPS1QjLnc*9+-h6T>s>Wj-zK#x!@42o`M*uwGbFt-%Hgh+>0KLh8cJwjUjmK~ z9F-!i2eJDe^~R`cWM^fD-=-WnUO92QZF7#!8U0=rs9SQZe55$(XUn`QiA+Zb`&K4t zFX0mLo(a0P=18?$5+MoRz?*!n!4w6)(V$9Iz%~n@$i%2D>QfOIk<5qP+ci_!YB254 z;9UiFYH(bEZ#8)3M!+r&wkWXM0xCtFpXgykBvF~nBK|#^Y3@xh?bV>>&47Ix3|HVg z4YF^H&d#sTwhST5Ycr#e_Vq|umQutOFB0$B2)zPIS|e07@qhn$#nc>2Q%ByJjB zOJ-J2+-w}mksZ|&g~nlKk{XEzjU)V35r)ZhmMd)*e3L8J_Px$(Ke-3Ie>?=i;I+BOa3iCcMq<2h|D56CZXP2?LV z%zOICV#QmX)ZjS>H zKK=OSc~CE)@Fwi)Io|z_#0L%n9bpnzfK@C(-#IY+1YLzJxaD>l?q?02SKvJL&Si7c z<91ftU+CDJLuBFYJkbT-dPB<_<+Qr;D{LI7og6)}4kCmSQg@{^{;hOkG}R3|Ytfs3 zaN>UXXx>l2A=DSro5U8G)RN!(h2OXf57HvX`lReIkE@v;V$Y6Je%V2T2N<;arS ziLlW=SE{)Z_Zl5?)$CBy=xF{eFXLS>eUxizQDlb#oiw=44d|R}dMMxw>0+|rbixsd zBz2K4xt6!kN|rB;+sJlQSA#^yfB$_<8sZA>T-(=^!NIW5WNcfc!(fJX)VzTJw%JwPmk2VYl_=K@Z*)bLTWCbO51r*hhJh zBcRRcr>{uV$Mn$Oy0?7lqly8!FIna@PxNeYy)@nTMg@6lBi=IC`1$?=b4~576U#%K zCpmwT!IFSe;X%0pnYAERQMQc3>g7E@k6LmSX*MK7a;4#2i9Ffor>O_i4$7t9R{$82 zYk3^?QD7)HDM-9%4AaDi0uYDu1=Lba5=`Y)&4!*mdpJ}uLf6?+F^#kyPbLFwqjLYx zb=Ij)XGO$cVuytW0Jaad*#PnP_cz2>mHs1}$3=_O*%*?fP@AK+FoJB*vY1-fX$!zC=#hCAkgjNWYFFZ;;!bX?+7b6{M()9in1kom%Kydevpw zejo3>jM1z-b>C_>GFzN=>FLXJWy`~f+vKUbe2Nvh@5rpBZ&i?n>74?y^1p zC7c?$T2b_%o%%}CF%3o6LI@PHAre=)V2wqWN%!*(YnfhNNc5109ssPf9v{gMwkE|m z!{9?k_^jaiTC$lm*s7PrsD=1#(7lPn_}P=D&DB+DteWhNe`|Po)oe2bGz?KXB3se z5l;a(`?ezXc>5W<|CVd!zuo4pyPD%<>?3?vfb&3c1X=BY{|_%~y9yyeydyVJ=iHuy z{~uls_NYJ*hoj7=(-eQt@J&TnU+O;Om*#dtLjKf%H~fK-sCNJNJ;ECvGQk7J;nLyx z2w(09ZLkCjpW~0P7XQfPt`_r(k8Jal3-(F(v?&&?n_Fc#iAt z*X}XuKcT?|1x^CcvP-MSVLPR-9D1B9r>%+C;U&B=0hds?5~iM|?Tns~Uws0mvsQ@; zbbTU&U@#qKc_kglx!hWBzEynJT`gKmnFH~hoaQPT5H{T$S26I7ctSt1s{QR^Be@L| z*{MHYT}B>g$ml-LYgBI)l6i0#zv$G+3{|A9N!2DoziECzxauu#qAdTEu%f_loSlit(o| zGWlux>tDHdNSRg5E6J{>dFJ+c)_p2H!~EGn&derbqzX$eO(57h=4syU&%pbU=G~w! zbt=7dNnPrkM>q-gJzeso>dQn08S*TjsB50|1z;>u>}5kij60?bS5db-Ylz(1m>1}- zL3;&yXz(qdOiyvmPc*QT%|->NC+9YEO4Qd&vvhk7{@xlK0FV}^%xpv{#Ad<2ufQL| z77sl^VIPy6tsEus#V0Pz4D%K~&b|S8_voM?&vTj@n1sq9HBp&znBUl(;SE|iC~vWJxDX#D z!^;r4{p{QkWu@>1TB;<^THWFbNS>T~v2`^Wp}^ogYxrzdU`U>tjE5RS^W?uTCP?0w zSL#7eeq&rO3Ef2!0hecZp6Qrm$3UG2BojIb7%>%$j~8ynqRiL6kq&NRuot zG@(gH?-b(<#cFEd9qUo$!0G?7(iuGN%H zLv+Y_e~+f}#(cA&SDJ)*s|C825n*asXaNVpOd^?J(!@GUT!z9$n(3Azm=6!>kUoyy=C7zL3gjIH>2HO=_Wr7#w;V5jYEkL**#QSKf@Y-S3 zafQF4&)kUG_CS=UT|?K7^7+@Ae=Et|%_zAp&oW(LyN1OM=hc7;nOG2AZ}m1Z=n(-l zKx}iIvXsO4hCF$q8Asubx{?{Hl1=9ATNs=5Gj(nbaf=C_k>kyI+N~NiZUOi@Pg=G} zJZSqS?_Mc$^9NOBTZ=>$V;fJROk8@!D7@VS)$s-=f=IML`DnV)-0#S1{kIu}OM1_E zGedlFX26~F1_By7LW~%~dEqR8iwq0!x6o&|y4N0Zp#fKmtnxiZHn_{|DNZ!VKAZ*F zHK_$B(z6L#b^~UPC#TiuSr)B2m+}H;JKYnSEw0c6PG_Xr}ErPauNyeP@xe zm*`m7M=`wF`yDXJQnwYI_MpXrWg8{{SQiuMLglUa-Xf#r zP?1!MNHK|{TBPU)tK>XY@{q+6Av!JkG!HS9$*NRPcvzFMc_8Y5n_M(1(TMMeRr1c( zwDga8mRWpr1&&$(iFGjIMi7fTC7Ptd!ee|672;@LYx>b~4f5LnPUzx2+EDzYE{+bJ z-3;+8@Te^g6cwH-rL)N+x)>JOgt%mhIBj(z2d2pc^2LOme4?CG3(uJJ%63%pBm_{t z)tEX&!e_0oEQ!~-*SS1PZ%;@yykcmNu!?`|3jSo#rNSF9{j8aAx?wuTX)MB7m<8&* zW?G||e$n8DHvt#&#QkQXvGFT^dva_V_h#ZY?`G2S9VV$i&EMImH%Mnmswa{{7P*3dS=osKe&QaNN%ZCi%kMrgAb}T*d54l61d`l&CRDr(wC0}a?=x4G$VD#7Q z#~|7U>1e{s5LooLEpvM<-ikncR(AP0=8`J7B5_ij8Ts+^$xQWv?Pm*Y{ONQMwK@ zCE@=`GCM=xYC;cgHB*C(o`6}p1O{Yk2O41N;H>6y&(=)46w_yP&0e%n-Co?|a}yLB zb2LXJI~CJ>4et3Eut1jxlW7Pmc;?+OBECY`Ld}%Y z2c|{&(xDGGZqtVwFE&B3u_Rws>~Hm)+|!ri*HW4x{zhXv6EEi-GVdTw#3^=}MV9OP zQE)j`eoqs%QecGz93*?hdXG>D$O}+)e35^**x!5iW=ZXz$hUo2iW-27l{9hxM6t0- zKU&2BJlbjtU;>5}H_@coS@=krR``|v9!Cdovo*TJ69Xx+R+m63PDTb&)^bR~N8Yzi zKWl|Slvr;vHJ0`YY{*y9N(+pQx|+%*jKod(rfkXMY|bfLSyQon#eRuB@aBAVz-nm6 zQHMDB3^z_=;ZV^Qll-JZoyf?*gqtdpIO2${nqG)!HF458P~wBYD}1f#n84xofu%G0 z8In7>zR~n3!5{Dv#PY#Ss1jdrTfQj^!+jGERibOMK&xc4#oH~qv>43G@6e#(5Wr5_ zXh&4YS^1u78PrRnVXiC7)NB%hc|B)Zzo+^szMnh&L>JsJ#C zU@sj+9mO}PYWJDo#%x@IRQN5rR@m(eeU~rxVTosq{XBt^j!qdyxdRqpCxozv;}y~$ z;)uIE2hH_>xFz%{jsq%%C^j{P-}6jFucMc0qY3AkH9A6BM-QK)MQ$b_g9wxoZE^Ej`Ho5 zW!6Sj^q2-06*#Uzjgf#88a%7ONv1=ibtNa(EC{FD8Szy9Yjvd2?sipW)5KQQ zq|WF>hRlV(?CJbhlP`=|fxa|n6cXh#`I0@XWlhY@*)SnJLaBnPzc_q0Ut8)Dx+Fuo zjG~Tn|D%pW)KT`Qf8DjR@pHbV#b$yt4e$rD}ffd4#gP@MBEbX9zU%lT%yh_~e98(QR>W;RX|tTD5auZTEM zgx_`jng8|Qm82x`5kZN}w45o(ABkwO=&$^3Cf~JIGF$0>16w7PN19kXMCZWeh$kga zLUFWxIc49|N@l(iyG~vj#lo)M%7Kppf*7R;!&aI6QXR^vgaVCa(|FDY9m`qfv5$XB zbAD9L+{jQd2|!T&dl-R)_X~6?XZbAMH36p17Lzl=KnP>-Ux)z!iOc<6$~FI6gMEW! z*Nxd_Jp8t<P2S+gJg?fF?3hG7 zeaa~%;3Ifzxzr9H`7OR_o^aoCR)CXRCo`}1EBAluGh`GDM*ng$YjVP0W`NAPre#;a+L0o}x8mw1fJYPz=8eTsO@Tmq5DKNnT z4kT3Sqi{mQ$(_vM6Zur?{JB6eP14}30+Y>_i%Rp^w9pi*8Rfg#T$x%<_&1#UMn zz6gjyHg${!7bjnp_&jP|ausPMB+}oF`7`mT+%TUzEMqv#PdsNVFDD1)CmxbbinziA zjg2p8++>wh6=}PG%U{y>7Lb^6h5{=s;P4@Q@T%#TgajPbU8_vG*I2EY%P)laD-E7h zV2v(`(N|#@Ee%Nr2%F(9TC17nE2ed{&`MmFk0`KSgPcWx4HjVX#J7blegs)cAtBl~ zYNj@dX_E#c71*r71_icga8ZG+8r-@V@U;fdDe#R3ofOz+0S9iW%0orv!C-ss32xU+ z2Ncr|4KkMic4|;Zfp0a4DX>d}!3ylwV6_5!G&rxoUJDRiLMbW=!yyk6S{x|%X{M)^ z!t|X6A1bh4gQ*G}&|tR$2Q|2U8Q^;j3KaN3gJJ~^S-??*VX_CqWi}w3cKo5knrXRW zI-sj+e6pu|)7GBnzMir(E{?guH5+yR&ArB%8Tr_%0)1$~KkV7*iu#s>Df~OhgY7e&Y3p)Fma{q9@&LNBm zvJG6!kdC3Z@f4obk9P@vk8VSiW6G(s_T<6a-OtYF6+fPGQauTrJD!qM*Kt%-lP;^|Rd zIiA;&a%;Fn&+>Ba@LPA2bO0?RnWo8bLFBh+uksJdlg$#fWYl_c_Do(wvEJn^aiRcPsdr?m%NMQW-@B}t@mHc3L) z%V`*l!R1RfB%ZVlDSw|OirGH~QB2*jy{?nYJi++WS;T^r-B8mz0aP~G>~0ntC@6>`KF?#rMmE`%lHC9T zHWW~LN6MiWrFT%OR7H^9i-7drk>2F{zB4xv^!NJ%vY#{O-f4Gc?mgvm##EHO8}eQ? zzBm6qBf*WF&<_H(rkJ3OZE8iAoQ@%$FlkF( zq-|Qo`*9KuLV3s(a0PjPV7r8BV>*{W#Yc?a!X=o&sj6tGom=Q_rUs901NXm2(i%PuL)Xp6o>=dW>lItV5NO^1)V(8CHEOau##F7KNgv!4ASBmQ<8Y z^_ynm#~}4kaq3~SRaa=KHO3=|F@zT$8V?v&U@`J7t9ai6SrQ5;kN`0FD}L(ma?@Yq)S{6(#ekj40yMyucON(04b}vdhD@yOZc^?+pCH;~@FOf!{$!m>Qq@t81 zGWriwEZzTPwC%n(+D?Sx9gs;;0}zt{Z1dE)*i(3;9U4AX87zZ*kjVNn_g1tbe_!9n z9{*%$?90nC_90a3=0*E>1om4)U(Nw+2P!s{?5>?NrT2lna`MW4_I=%0N+ZXQn0Bj}&|mpp>tAmT4n%@4|{Q;hrkKUGp3 zEdE&bP-QHrA_JTk3Tvoibl{O72*Zi{UJ({$UM#F&9qs(1?ES9?;J&x+t2jrs| zXS+_&*^LL}>Z&>@b;D?&oDzl?{DC(MYnZp`*^`{et-@kaC+Og_pUIe4#247|1GgX0 zIB=4qxKmhU_SNJRef?cntS+KD2qQaAp)|I|p9b*DJ|_K}6gqIrLqe8=Gfi8jkG?DAD-a}>8Qa91v*7a!iBtd zpi87VgRxV~Ih#5?%v10T^9JiG{X(IJRIF#YMPv_eC+OJxo^B5uggHJM zpW{+=e?V^Dr?uzkz6VFqta)YxmB6X8O-Qm|vAG6vdqzGfHA5q!rN((?B)$IKdfa(h z_tr;R>H?sT2^t%H^@;6Q!hR;mwS5=)s;aum?D1lr%hvy2{Y8)>?!!gNl96ax42lCD zP~ifn$c>Af$iN5W>MF|ze<2_AfZV*-*$|&PiFPrQ9)m6^tie6av<)sSu^zInm$>^w z{w+VFMcSsnPGw>27m;7 zr+aGTh$7PB#rBa>|3==o#k`NEGT;xqcZD$lhnID*-XLenU8i*`Ro*0Lh2yWb)r{U@%uPNvK>=G+I# z61dIvm|Iw~Qc30&mQ=cfWPV{uS0!0+Uy>rH?(j)ncwdq%ul$Y9&w70H1=tov>bc{A zhWYV!*n%m;%I6%{94^qskycdpY1M3r_2@^iV#nd>QXD-_l5+h^BmX(GR6Z6wFp3-t z|3ENznfY?C6ZA*SE;&||p(5?px7-xV`n$}OeldR!%nFsZ{TgY7a}NA0RKd0)(yXj* z@mvpF8j3Z3i!^IsK}1IoCbiGtH=s^u(6!P!JgHSAgfXb#SecL#3X7FN)mjc_{Z8LS ziuNxneTPF`&{L_dj+73*=KqU;d)k$Ou^KxQQS$DLHHB3ppxw@*syO-d?3BdWwS~7z zb%Wzx7ui;7R%!N*=HWPuW`FRT^ehC(~n#RSAfjukZI8wxc@wrwn=n;@%gp;ER@ zg%rxj%SAcb%?xx^j%T3)TQnH`5MZkX9Ax#t+yqAep>w3HCL|VAE zn{vM$O9+seIdPi=$L`Q#-rzy{Ab}~{@APKww8YY-SO|xh)ur4h#(w|cQY%+k=wY_( zW@tSeYGLfr8d;B`u~&mB0ODoThr&)>Rm|bUesUKnpO8+$x=`pn>Hb)#R1wP5@!PJd z>$32sfKMjgD&GOKYrixu&XqYBSyK|`G)*2fzs*DPLvaSmp~#?I98V42EyY9sF%Db1 zbWn;4{}Pi}!h0Zp%09w?RxvEEKhD7(C5z(m(9^~-Yp_6hNN5amW5PETrKj__9z@)8 z(s&4Qpt`&(JIi)?{y)?3md*m6gM)(ZTs z`+^IHfKe|~Fnp*~#lEYRN|iwgCl-CxGde_B=Q^bfr}qs&We43=8sD0rww;hKYBS-W zr+hLqla5h}1mkI=QL$6#?H_02dVQUDkLIdO(sD@b=eAqmM(2}{l*(14ceDx?Tg0I|_fkQu&Z@)KdlqHW~&CI-lH43lhT$j^7Itoh4 zWD?`gM~703F;Oxm`HOh*#Bim)kFrv=f-xM)4u_wl_`{2y?8 z;4jO`oE-I%TzsKvf{cvgSf@nEXFEa-q-;C~F_ryJzy?((o`aai&bE?a|7CorB<17U zw+%fd^U<=+hjjr;qRDBR7QfD*g%z%z0wq?m1Y{K9#1~U7{RhuF*a4L*PE5N1ixFr zo(r!8NjuoG+$3-NRx{*kqti4Eoi!Y~Vz+jx0*Khe2v*M}k8f?1EFbe}n(RsA9;GCCrP6P&CAL#M8*d5`N?+hohAY-hjB{n3#QB)IYg88GK2gfs)+EO z&B5@PzR8kHZWS7D*6*`x3T$DEC!8!#R^`yPatwIU9Hhy)R3ZkiH_Ai=)3@n+-lr-p zwww3-31f#Ao>s!09B^VdMk1e}n_W?|!5PYO5T4--l4ZrR4*Oh&_YXY`a2;kEy9`&vUxv7qEOsh0VN9A}_YpGef-3PKPJyfCSiKqt8$maJykCX%7kEk%{T$2(K zmBF!`w3@OcT0AOP^;$PujXizpoB9MP^RmDKGvUd+VWhU0Z>k z8njcOSG4qdE)=l!j{aDMyjGAJgT5{=BTlmPd;R&4-RQ&dJsk4eRb^;QXc)fzte0G{ zZ7Z>OYcNRqMO)MPNj2#3JGNl_kn;-kkCq}eL;p1fL|ZT8VKuqH1Ec@NmQef!~2$hjXYO{yY1tJb1LSCy)n=#Qp%fXKaMGm^uqKeem+q&2I zFS-^f{BO_~U3XNd{2U);f|($haR+%f!u9KNf6s{?e5lp?vZyv!{s-=is)AenB^DfG zrREgH7mM40LO8^5dU>DcWQ;S#lJ+tx=@yIaxFDvwVn{bqEu0C(MAPd1htJ zindsHE7qf**%n~UlO8l@{i=XyFemtRfS-9-RVB$L3M{gK z14ju&j^qbZD9s1M@8W374s=8*E#X!0UXup$QhkQR(rBHG@p=7Fylq)@73njQckitF zp|ZB+1=~)lZNEh4Nx!#4tn6RsWwUq)e&=?lnmi7#?j~)R&KX zjB?1*2BC`bRs;6+TXZ{lc64%C{7oWW@kqyP8A!H*i4}f9K-=a+Dh%c$X#oFI3*xMA+Tqp{f%2AKN!a zo3(47mFPz)B~3^-F>r825xfSIs%uMh3wa}{X$5({ZGWf4zR9;{tG+43{$cWgBp^Vr z4d420T22B;E~JCh&Y>DJkK6Wwo5;M_=OZ=_H-3iOmAfNa`o0}{OGdrP$?lAnS#O3K zvT%Vj3cn#qCrqNe&Rx-R@SV_$(&#Oe{?K3!z_yzs9KC5L(sojtl)zLzt64Fs=9gEJ9H=HA5<-jYSmXXyB zL+M41TepsC#5`35C37v6vET$ZT@}2n^&Y2ivd}AJ;d`NS#wo^;V*ZGHpRK2(rF6M3 z{v#jl{=ArUL}EJ={gli~$&ZrR?}s96XA96_h0YbAG9Q4>7oge-T_`|p6uPKUIbNGk zweVhIHA*xoDPGRM3N$Au%}deGSYaIdJ_tn_m$`*=TU0KUOBiAX?-Se&ncge7IIze%ZV$>E(ue1 zchyR{N~xPxqP(OkSPF@GI+k`%u)9|JTPgJ@P=ccr0(Ljq;!q0*(tB#9dO2LpUNN3Q zCvbLrmJ^D$^^R#_@=XoOZ}oy)%TZI47%RB8c`l!vzA@4vH&oZ?Xa4ocLjm^kodyjQ z=ug+Lcd9PK1E>$s;J5+<0VUg4w|lYRkU>P&oeEsd8l+pd4boaPSf#*V3pgmOn~7nT zl383%j6XxP(gz=-G&DxunEPpUne;Kc7-j(#;sf`%s{Ka>cSi1T-Qc;#G#H^lHw8w< zNKId_>ax8ttw(7^ zL9EfN7u}PQs~oc7d9;`kBNvObO0~nm5OBH)g;%+j9?w*cSkdM_7D8uQj52FLkB`TV zwI6{J3C~`W)jh_+IRMomLsl#HWS~%ph&HSgRimVLN-7L;k1+QFJV0Mi4 z_W8TW7sVoSG0r$y6JvhG;NkZD81wGE`b7>Injdl*KXKz*gnaTybIx#%1(d}3`5I)l04&g;odOF@P}lg`{QI<&Z^<%xk=AI`5{<TwzQ3Ge*nTKmQ)H2p<`TCD)T#z^}m;p);C zU|SJW5Klvd15+i%+o39c!E@#I{uX0SRvdg4p);Z8A#Zwe7rZMOr={~>mXoTxRn|R$ z)SjZAescFH45bRu|E}eVoGu-+AoWSJm4jk6@;0I8rFv_2zb2-$;)?%3+W!=OSe|af z{CI_uul=Vy$yle`jcUVA*PGyVV}m7hz)!*FC|ivbrz#o0(UM0fUkF|ZoaxkGAm?vW zOuc*GPp7e2wywtzj{@d3?iOY^ooD0_L;v<*FL z{AvDuQqC%kedd!Hkle2T`#Et{muv4=s2{N2E)iIusE0%zCaeaqk9ZEoRHuqa;{+-7 zb*Q54Pz;X2$3v_}zs4qZnEidtn;R-*$abPmuVM7FUe}9e9^it6c<;d2+Klr3p}g5JFY2S9NDDBUJ?;KKq8l zyb@D*=5R!buEzXFE^hoJUgDF#D<{1>VyN(ai~QQZ<-L{s`oH8jG>CyVXA#7a1%kdC zT$yfIb!&G-|K>mSqm5gvc0xsPM-aS9K8H$O z$^Dzxx$@o}Mb)^=#Ziv4cRO>X+Q(X3)^=t~2S7Bl#*{9AZ(^-u>7u~58k|(1qXzZ5 z0y=3hO@YoPctc8eqw6jvXk>J?G#n~cnMn_RF;6y`pPp_7aw?_s4JS>W)E!d8x?6H_ zcc;f58r)ETI&$XeKi>n;D^}j<5o%`Z9qUp2vgKt*57t3_wEoLIQR%C}BnA4#%FjJR zFBSPt(#wVu>`c+Hi%=674r>p&^8HP*yxEKO&;aXq7xjCf^?L!oZG&P9t#PD$Z+ewj zYi^gTz+ekF2;ES;3jQob`{>Ke9-@{0R!T!PsMiNDOt+wlpCZ&?xq|oF<;fndl?E%N z5gHs-fZ4w}Lv7a=FiJPig4QnxK`K*M$lRIhA(1Z^ zqLUxAQcx+4)k-;v5eZHxQe??O&2f#>atr}1$jGkGq8g)8KOjrdur{=vmPK;$e2ejhU4> zBet#_9Pmkk9P1xSGiI7i+@&BN^b=OX!Z;&0XO`7ez8pY5vvsFS75LEvFBm^*jb{cT zoTEW&1?Fn?1q#fww!mRQtTx{t?1Y5&1cURnl4lS~3v}~*1s29ihe4qijGwjej1n%= z>R3XVf#@ww6j)-aLk1!|YfJT(V`|GX4dMm^mYcw9{GvM=u7tnF%JjjZu(5(?NF`h{ zc(PqYcELlT!X$p&(BErPVNW zu}GB1VKI^4#s-E=IqY2}29J1LMmPVus;W;CW!o6Ls8D5_w}yuX+BU^@mKIezmywN| zLJ!NMBSLw$&9Sd3D}FT@xwBm{+1I_zBQj?MLu^ZIH)XGnAte^4d9`ItOUmsLp|@;X zV|9ql*CVkXZi{`iJGkFw;ze|I&3jCpgb2MPL1+cp?7a-tTl_*cgoxDdY%~eW!HMpU`pBg+f z2C&Zr8Ki5n%l#&(X&lhPV&5Y?sMYIykNP1EdMI#MgAD-qJJgM_WBgH6a0GwnU|8{a zj+$aw^aJ|GwEkTMj+^IN(>S4poyHil48D|)` z_8`dGgei+N|*K%Lsg7h<~90{{5_Gi#cdNbGVa7m z^GTuVw!ay9CWFPM?TyRGiAh|zyRkYmqTMY-l_q1LXdkDvt4Q8tj-!JH69Kkw;%ZvH zY+RbfWbb5blixldil4$tq+^^}g4Is=I-eQrV_6XO!)M${4n7$U%7iJ5htAgT*s1KI zOPn~T@*H)I%abv+I^%3;K~2*OQ+WWp#nrkOE0<{N9#@!Nvh6g!#XaI=%tK)~Ri|Mr z>=`G^A8Q@Q`w)^*HOg_<`+Z(luQ;iBy+w2>%1F3a`1#XWJ!JK!rMo#vJ5a`Y2|pmA zS0&=~i8EKnb`|mtk0yRgwPelgYl=UV?$bHoeq0l^9=bEw2j5q}N(#))4H6)gnK4Q$tx`&(xn%V|g?N89qhySA*lKM=AcV5Y zQ{4+X!0+QsTd<`3$hrN%z7MvkB8`3wMcT&31>}uQd9TTuAF*4HD?k}PfyNi0p$bhX zK*k)<#JGW2R`b4;!E+cAlj2&*#i#Nr$Vc1Tl#@|gTT+E#JFnckb3#>ZlM5PtF_(r@ z3eX{tF*VN2wvf1aoXRv4xNOto?w7^LDl$XfNFg_W8ydEmaWBaEw?;;bZGI>fy77zE z!hY#FpSH8PmCCJoMu8tScy$5bCk>_oY;)qCRSTaaX@4a2n4D4D=f;^1FFP(*B1Z{d z=OqMRihG`Udm~f?Gd3V@5J7*iwakyJB1=EZuUMwB6Y8oAR)}QqDT@2R0=*@ou@}>w z4|+$^%~@>+Tnpn=#_kg`eIfh%Ic^@+(Vj12EaE;a!n(gWPU5bR{u02i8mw1fg$B^kinh6Y#9oav!!vHKReF*_AhUjU|^O%jtZr z25X?T+G>gU%_Nr;e<&K@AW7e5J-saNGMS2EMS&lS*oo~*{4sZ(nF}iu zEM(Xyf;;YC?i4!&McEV{AXkZitxWIE``eNu6t5wv0c3Wtq9O2c7i0Fos%90W)R*}s zB>$~19+jdiSq=Zen2z}@L29k!+;#&#hko|6l|&uxvBvczHWb-w{obRL{)|(u=|m~D z3a|7&u7+BRwqC`S{c*Bv6^r)i3LG$j*Epz!@xLQHq`|uY+u^vzvUyMI@`J)Hy|VCk z9`++~VQb~uZcdkn<@Ii)j3loPCD@L}t(N7vEi1}s`-q2S=0(iS_^LjZGpj?X#xdS0 zY6(B}=TXEm#Jwtirsc&*%Qc~Dwi9uUWY(jt_{zQ9rIcsu zs$`tvtb^?mOMASOo1#WXrpmj@$USYH^T%sB|1;L_A?o*8>-Spq`<(Urj{1Gx`dw`u zzb}}-9T4F8$k4*pM5HS(yo=nS>qB#mE7qGprfy)<)wnlQ*j2pj-w;Z-T`PnVA|m4k z``;9*Eq4{TX@WOxx6teNdpnm5-xP|q-3A?~*V-i)Kt=9Y$I^N;{rw#mQa*}AnY=kv zugG1gS(%A&#VzziDHF5kUi~e+y*tEf9xTj&5J_X?BRea{^-X*YSsq1HN#AMQ+Gg8B zrDO$dZQsT}Gw5Qgc)7L(!+gj1CnURjetCIvEB?$*@n0+d{3z5UoEyq+{?R8*a+#gB{3yS< z6d9gh#-Y+*VZ|lJD2p;h-t1oSmOD4NgJbI*uL9&68GYg{k06sjc(-x6Fr}opth=w4 zv&Ll-s48?ZGt6>&`&n|y+({?j#Y=Xz{P&oLz%k~;icZlcW-k3ro%f`~E^fpC-Qcrb zG#IFRg|~oEFf!YTc4S`d9Hf=fcB3R*r1bpvWZ-U^54N@p+QWt+S}RY1p}H$9QY1rQ z*v5;6AJjFBW2)QyJv-rzKCG$OF8p}cyu&TA)ZWX3HzJ;D+~=DlN!}VRdf&ZV=8+GG z{zPPqikAy}LoJQb=3l?8{FB{|(V+T1M$Px}|CJVR<)_Nb{RHXtRiYo_vn<;DU-$79 zA6r;~V0Fw`tfjM6c|fK=;|gz;PxsS&d?C@3wh0d$RK)`v=fpw^xHb;ZW>Wm~(oa>3 z9ep5_XiSc`7N`5!WK1zZRb#68H(IJ6_yiLFmyR_li;#tYe~wn#pp@n^B;gy9+lM%= zdGVHyK75!h^W&xc;ZQBxg80HSk;`h+Lhif@G=Aj>C;xMy?UA-c1!&n3tfh;2A#7*^ zS@WIdFDtIq67u3v=J-p@t}|uGQQ9w!|NOz|f>(`Yy8mX!*uFg8E3?9wn1&x?;`mFv zWdXd)CgWGe>2Ve2XbBx^CJrM8EclemBYSkEDh=8I zY`@3f_i9u#Rl3 zM>{om=PY2C24fZYLxT$n?AG9!bAUY>bX8!l2HO<)(*h3Wlkk;6#Rxep6SItcS}FcK zO8Yg)Q{aFG^A$L#LD36`vcd!=+-gLMj=&>;6Oz)1~eDsajI4uXexC#I+4(`SK~;W@39ZY!lT8q~Q2 zI9t#H<30zVYUrvJdiuF|)AApI3yT8_c!Pwk;tO-1k57}$GaHweC6{=qUEm?R#O(Q^ z`PU_NFVp2;8uV7+lG*<&#$~$;O?uhPj44Z10CQ}>9chpItde-J-E)QiDeT4}pdx~-M4(lc>^k&~(d z3_tH3trWV3(%%{^P~ffx4_ybePcX+drO&7)N0b@fPqpUA?U2x@(1h&o>x8HLgud;Y zf66P{zI{LxPGIi#LK(X@;-M`UzKuoA5I zD$q4SYThApo_H{-jj~RsC^#M&TVTDiA)A9;Boar3E|z(sO$k+E`wC-=@<(`j~Di&{y|V z?GB)y30%f^S~x@r`)ja4fdLk9q!YcD0Vj*1XohDccVL3FNbcY!oh_8$U^akJDd^1& z5}(1mb5MeMy_1tb-9=UO0G2>1zUN4SS@#RdrvOA}Icn{gnU#?}IKc|slia%uqahsZ zB=P}A9?XA4hTJ8RXlP-{CM6k`AV=?pT(;o}g-tPyDl~h1;Adf&FcM5pvV-JYh!jX2 zB2ur6BlW#Qg_wsAWr$ta2V=2knB4L~c zCa7ii1SpRV+W=M#B0~Z{&}m-tTGGa#!C2j3jX{HPTq2cQS=$B}ufZ|}CTQ?Bb++DW;MW-aZ_KaN2Z4)U~9tvmJrY78{=8rR` zB`8x{Yynm@$2d=43c)Mxw2ln15z!(5Fy zmeQa{IDxqg302Jg8f|5!Lxe2<0U$|@vs+ZGi2uOOzfw;!(?6aQ5TokII{+P+h}Y;(j8;Xhg=^1eLK6DeFpwE85l-bftQS z+L0=?q^08h^5CEJtWW4B3CEgcOWo4p%C-#&_ieM$GO={nZrhmflC{(^&9(c|Mn6`j zF`f>bn$VBkH#YP5s8y8NYD4AG#pEj`-ol&C9!@j1a)d1X z2RS&}ZPssjM}h4c%v4~929HDlc52W_fn9W8kUQhxyB1*0z=Dxi7NNL*6yBKShYl3W zzuTQ1z>ej3g- z36y6nok;jZE-uV>$?Kc*oU*$-2XN9ln8z#7=2U{jRtWoTryo!|#wOdDLZWo}pdy`} zRrg+{r}e5BPP3g$D3m=cM=FM6ZRZ(V1W1ukJZzL1%ar6Gnk0kENzhV;BIEX7;Msq; zbuzU=2>Qb`MZgQZQl5;9T!6<~$J-fXizhMQkirq%^39~^azW}NJvD+ywj4I_HO#l(bI2M=M^+1XbuxeSY`&A!fuG2Ehdgx9MIAyU(pc@h;fyf+g5RdiraRJek1)BGl8%UjWO zdMiOWa$}`)beKp>#!qy(rtMCGPg+DWc8bS@BaFWpH!)$CaW_Fa?1Q_Jge`}(V~eeQ zqDzh!8=WZgVt6<@BwCzDr()>$n?%bpRV5bitp-g2wvLIq^B-dAqElj)G*WS`+hW5p zM(0E^Q~EPVaKftTBYHlAHMXZqBE{reu=I@MHQf~u$B^oVvRd7&jbj(xHMpTb4-G2C z1A1!krUJbz;DFW*yJD8QXW5YNXZF_eY&Vyc*rjacM9B8$K&EQ$W4~(L7ZA^m`H{?RO@Vs8?-fA#yl1plhLWPZr#!8NQ*3g+8A$Dv6yAqn*lqRP;dEnX23k zc4JswhjXWr!cB}3i55qxpARwq2-5H=eHzT5Y`Pgl*gBa$MkR{9SCcpFo(#eZF+vk{ ziO)Zin{F-{3BDy*hmaPtXhl}m7%iu`0LkQp5>S$v8=3JvH;qXC2)-mdUs;45sFIkO zo*xp4#!qj@dv!yT%CaRn48s=$wsl*)B{fpm{WyjWfr)l(N{RxD8$;4rwrf1QQT$qC zmCgifbl3wvj7G3>mD zo)9*8ktsNj&I0wmtjwX#;qs`L=MaExZsPND@I{IpE~^}_Vw;!viY(vUGDg}RYWJ8l z?2JvKQWd(LpD4a6;a6-65^HMTWR*@2$@nVa1lz*IkR*(4n)Z*dyI${q!6d;CZzjCk zaOIhc-=8^*|FkGCc~!%y#v*+?eyYk27AJ~X5bk(Y4sZ!WP|=-Le1Zd9nwUpH!uIb; z=O=hyEK4-gLE!IzbXG;m;1|fi#;}~r%mmHOmFI)PBA<$p!SvuSTFfBEW$bfN^3@6V z^sm+!mzSSn*DE*p%1TbKAOsc)1TXe6OxQX?b$n5Fr5G_MwY`4zDL7*lyZM+i6l7<|}zeAtlGcNYG^Zx$I$(KlMyB_GtJm;U4<{$cH ze@lVg8a$mzi#@bx|MF+?63z_A*!KQE+AFO;ACPl|#pQM;=eO?xxw*fm-RSRsKyK={ zb)$cv;L9?}&6nk1qAYLLqORQ?q$n4bW9sEGLcE7~#*T;TN;3~5<1jjEQZvfKkso0w zdHCub)xt-;2#;y-oC3!!;K0(&)Sh`Hlyn432Tt&UdGD*TGSnN6H%=x>pWW>!Mds!E zdP;*LS%A}AUSBv(YGu*a84bQx;4Ck|tng39IV}wP5S}+dmT|!nQjvvsOFG|qUdyDV z1}|#m=;|o{rNLVYT+*Pg0+-Fc$I44j1Fq=40+~EtBuJ3og*z?Vb5*x!kCN?LVtuHw z^RQ^vYgKm8z?P3l=`t-#;!Wqp2=x!%Z$2q5|8?D__%n2TgI7Rj!uu5^d8z-l$`0pd z=jDe3ult(@a%4=aR*4iXgykEKjR29w6bH|`nW*fRZ$_{>4iI8Z;yCX-cb5NFV!HI* z-L8xbd4@4_JF$v|);|+2XS-8?ZYuP5;(ZfHS*iCdL*VW`(X-)XTl=I3ll<*O*HEa9 zH6w&4jCoIoB+Ftl=s8Z|8w)tn;Xb5xJtdS>+DdxPw_0iU^C%I5tIAiiVuoD+E};wz zYEF;O-AOCGR0E~XS_zIEvOgg@4?;GG*Sd?A^I4-BA(Kr=!r?#nch!w!Ytp!z2Hh3t zuEA9Wdg$gsHzC%TbMUxQxzLx}Gf9?(Nd6xD0t@tBNkfZ>ebVsyQm;M-)nEoRSDqKS ztG$zg(xGPXO&R$jui`#QDmmU`^i7h@BR;JprEBpx^h;7n@E+s4Bj7u&s4$@NwWN<@Y_^}KllqlFzsGuDKN_VeO3J)ZT$|_;rAHp_Yr>EzEAo< z`guQlL40+?QMMnF#>>IBt)s*>7)FU+b;B);u}Ono2|s6yOOhI|guTXi1)q`$uh4cv z(#Hgb6J^~y@$=I1cy1d^X)8jJDuj;Z4?#+q(BM$vVIt?N;>|X#ZyY6W)eBd!O-ia! zD8JyN!;K%4k@c86PfoJdk)>ZH=4OAraCu|OeF-iS^B^io?yFqIX&Q`BU^=J2yy?qw z_0@1G!Yo=WV)a((HO`fq?&|lu{5EEpN-q(X0yS-6Tgb%f{?K*Se5hUq^plk`=XaLV@`j)M)@%put21 z7HaUw8-Sm=Foe!TK+USWyl{!KxWNsxD5gb$LaoNo)?^fJR>CKFcwNjmhS9zczT z;dgC&lHQP6zcK&&v0=Enu{TN1Hw>p6e{!wrw)Iql{sk&UVv?!EMSk+Wq=-;{>u{_4 zUgO4ryuAHM51G;fjC+;ltZZaH-ujqzC=io-&=h-&LrG>9w2XR>Q#@<}k8#A@m?|aT z=j@I`DDXb-k7MTFO7=hopE4+`m{Vhl@E^By9Ukfw1*yxZE+Mh7t`oYCuT>u>3zYC| zs9HqCsgS?ocb-a8RWm)tY4dL-IsZOKamE66tOQ=gj~0Oa4Aa}$Bx(KuU-U*Fgi9Ld zOyDujC&_^iczbUAfQA=L;4v;*LTIgc`BP8=hl-QJDu3yNAS2Ah_cfQ#33Cfy;1X}{ z55sAtslcKlB1y4e7Mgk4lzNMpf5_s-zfB1h++rB_ecr43?52On*GdpKN84)N90r>5y!(<$R^U zHyX@P;9CpWp^;`QJ|X!CH#Qy$&#?BRf0UPKo1KLU5Lk#OwL^8s`mJLCX1@`VRw626jRR= zlT82~>Ry&uwyUPSldT16u^djdj|N!^^i8&wN6m6j>!-m81-{c@qXPXc06ChUBdlgXIy3J;d8v0UAGEt5*|SP~YJ3&BnxH)otB zlrA5KOBmx#kSOy%=1eD8y~xRrIiHCdL^TFX(%>}(CYyUskah}8VTio*bxk}ml;^@k zL7E8Ez&Wm|Tn;#p94b8(9yOv?R4~2YJ&oa^Y!ejJqX~g((DSFK2dASxp+$mS<+&4$ z>ZObeo-yAHJpju#VOKLXcv*p29MO+Nm3`5K1D~x&(G<1iM-Bc|;3o}AH3iJk zgcMk$uhS?67F)osiV0ySBk`ZKe}DE8>-g+k2OOS3%q?m?pS4u)Av2FXEVC||e4Ix= z%gysnkRb~EqSe+YwO=*3t-uPdRW^gRS_rk@=s-ohg+pvvsljvwRwb)>Z>I6P`8Qc2 z!_4SbC%DWe-)R~x`}^cqbvWUU$;7n)6)+Pi zr*9pP;L5fTDm*u`ihP;RKGy3Fkd%=N!}3!cEK(q8VgZF6EXZ)#pgSzxJp8n=Fl-`G9n?2=aq$%XgGR0RyPNB${_aU; z=@s@Fd(G_}NNYO#(`@{lG;Ph^_i39(EI9MrekpY#k%Y7_4-|__h zxs=s^=u?jKINdR~gVqc8DG!^98FQy+drw$$Dfbz>Ihkywdh>+ZwpP0^HG{wE}+^v{B%0K^q0yr&tfC`)fc4 z4O%PkjRtcR_*R1}3czV@KG5!VfKCN%6zE*gMu9E`Z2%RzrZ_(O=uSAGHi* z=jG++bW7Q2X7!pzhtmHrIuHUst&>%1OrpLZa-n;QS^Lb)FosQJUGog-J2tNv-!?w* ztXg2sqWWxBMvoNMb)P2NvAx1?oP$A_;E60>&lI_s)G|rxbl})}rAWVupQqZHf2r>S zlQev=E_d$~IoKuak-i-mzkO0}LYEWYWo z3m+HR{V;$!2WTbVwrIp{)OIy43lwM>GN*vb9_o+)~mjW zpFAq3y75At!2MjF-lT`9qI0siJE{{?b|_IRiT@e$z(apI10 z)yF6&^G9~n{F6)v`JuTu`lwos-Hh-1PwY!&q7WM8C2uy%LtX&&eRJo~{eZArBKvS) zb7^ekB})B1+=6)~AT&j7nQsBs#*{#yyl_TVfb^qa#saN$Oerl)k(w*>6D6`Q&41Qg zUhT`4MO>nO&0i`_03r>UY+%dtI2W7J+HynbFG;Z$we|a1RPm#@CT09|f-=XviPyW#6PuSIG*^j%4Qzq%(^Q+ZX-usSTS7~-G1ssGFkgduXQi&)S0yk)-Axdc@Cp|dqvE$>&VCKkj!HMJ7 zze(#<8idYf4Z;d+(O`}OTQ#_?z%~mwur{(z&V}r@zw&Mpl;Qs58s0BhTJr`(U{D(~>%m*PqEVZ$LF$?e;tn`8~4$zBcG zDe$Mc!`j9^{gy5^6ybiY@tOh$G#H@3K@IjOaL57_J7XEG0Ly zA>!!$GL1<}aB^R=;VNhTm*YQmZ;LD4OPUS2LSC%IL1*yvy)Ar+vvFZklE8zjFUxu6 z-WCr9t#SzxfZdXaFK_nQdt0bgMC2%CM=~H}qpa?^ds_$-WCPKHnXnKucR7D=3&Hd- z1O=cAXCVP^_yxTsqA>*#ax#hhaB`z4+?jhZMKAtDuGfH$bUtvb7t%m zk_@gPYjNjQHPypt9;jg&rPi7C5%A4G7MDQ*gL zH%w4mw+#0kUI;nOKQ8TY2Pja^fKK3p+^NF-d6MCnky+7I>AH-)!K z%6Ps3-xd;8F49pBK1-d@VQNdK)Q?nZNnN=%9^ZH8R4FwfoMr2h`rN(UJu0myFmdae z`u;sWO0Ur^RppFE3q=mnlj$;ksx+#&Q;I$j!s7P#NDVx5ua0i5qCHcC z_hBWu+oR1xviPsIk4m#iJV3ott)(vfvbfFR?q`mh>rQv|My?_Ws0~YiS#COB49+*l z*T<9xrTS#vqkSzvB0Am-TpX@!N@eFb`{}m4;oZc-5gDpDlml7crJBJWa$qu-p?_*~ zu|NFPyMrnWFBZ|5@^>t0ANs81RDdbvg?X32yE4(#{*dZ-lvZ(3 zpMe%mqCO`fSI;w?AdmtOZ9&8(<$@=tDwcsd^3-gu;FMGq_FdnY%0R$V4DUq zd>)VGLcQgx+VZmougnK5(qNTs(~&vc1rWk|3n(etFa^38JZDcD&09TE|{FQ<#W1)@!XCUFiPCb*`u z;AT;IXBp{#TF;6!{Dp^NAIG6$dmys&`eF6UhMSf2to`~8N-el-at1OobD7Wkod>Kp zsJ#3uM}1I(B?=tUz`X)+IMoXCo~ghQ4XXYIII6*T1&&$30p%z&9log)fg%hka9k@5 zUy0HQ4a%j3wbBH zDD}acF5u0*lv-bkyb_L-57vY;ZI=r_r&4S!$8aT8ifj*ur8B^G^?~ih*RlPY_4vs+ z1+HuG{CdC*6AU(PT0$c7G8r5yf140wPj1F7tLKOe{0O=DXt-<`BK+C63+?0``>yVkG&@Mz;A`MQ5TTOOzEYt#kjQ3^ zuR|sE;^^kUE{AW2?-gOG5W0QyfacsSXnt#Ic9jNO0Ub3sr9h`j(qVDiG>3W_GxK0J z?IUQ-pWRu@3EOw&aLh28sHEWZF33x?tRUh1me0x?+rnjxu2y%@>8Y6ua|hM~%rSl4 z^lr{?V>jI^shjY%(SzpdZ%^=!a3iA^N(+cAA;}}1btn@_5_ut%U(+(Q<(Mm*c z5r9iJIw4O~sC4($@&JUSRE1*5vX~?Av|lB;*ol;cGdp-_zpEtK-{rk&XHpLhvz493 zYP7$p^FNullN}7uAZ8a}U?pfPXn;+{MMw+0sYFM6{e$S|kMNsvY8Rb~1`YlI3^qZo zF+>ZacOx8Xb?Kl!4zEF$6<(4u+(GX!y{qH9+0}3jUfTm0p&FJU4eF zXW5gpiQG%K@SU5Wy#k{vQCmKoYmCvtSN}x#y#?$%IYB~=RWN5RON$@$uFCIYS7SB! zN`Y~DztBjjDITT4xSE(N#%raz`%#)eqVfLlTctCy2wzoqSXG70o@h#QjY-_qJ{)4( z1029)-5+Zy^3!-%!uaYXsBeny@8yH^H&uga3QXgQH*5JOD_^flWxzd0`9oj!bW{A6 ze0c~D%M43L4jf_^GiiN@6Q5Pd@_;WojBqwr<5)PCR3l0w1~Vz}%52x?%K6cf%Y-BB z>L*&B#b+LSlooSz3p~zF)-KeY#=TBp*j(M>(POljr$IXf=9{3Eu|Nx(9Y?s(0u+<> zxUjZU@Ceg;c2@4sTIuZ*C@s=py#kAM3m!S#fMm2$z%_&NFiW)3f|DpM)u7rbz%uhp zTN%ss8AqSy_`Nz5J&4t4Iu4Ci1A@0wvpj zrB-Tk7Nu4C5*;{8^WRO-%2=(1>&_uuqr2e?0w*%Cq zx8T!4sX@#dUSh=Yl5a5O0g1dww;N6HaVa?Da$PI|@uWCCn<~kei{VzrX06%wFEqF4 z?pRq;WRS0vDwKutR!c4)Ut*uzH2712?Yf2Xqcgp8`B>koI>0-$((217?c~w9!r-WJ zg?;QYK`Y}A^KVd|yviutt-Dby?&PAVJaz(W{TX|7H|4L<&0Y<9De$Lmp`vA}*-C{Y z2x=fx+^1g_O|P@B{aoEn6gb{^ofZcw$-(R4q@o8a6|3)^Po7v-G;=n$D%Us9(Jt}2y(&rHvRln`{w6rar&%C0NRcf#A zO#+UORq|T_#TQ;_5iPx*X;VTPyx*#nl)lAr9p@lfKuYIZ^l_q+a=|pDq6!|A930t@ z22ghMByVzen}&9B^dUb}wT>xf;mSN^YQHP*-=^tl4OS^|#sUuL|8dEx&`u~;Vfi`B zVd15bk$2ehIZG)5(rVnuOv+#-a53dRUuo;T>LA&&CZ%rSMaiylQ~RWIPdXnC*P>-j4N8MzE^%&v6U&p>&(fy%80#7VAC}Q4wP_mO6~JH zcNikLf#taVH>}@|Oq{*2Mq$6k0>gCqrq*eW&Mp0W1ix?V-)s1NNB_RY@4v0zl3WCE z*8+At%h;QE94I*BgO{_t9Q=W_`LEF_(!u&YMg9Ip{f?18isY9n@~!o|n89zX9O&DX zTbkfBR+gDq%rbI2SxrAOXxiEO-IL!&moyn^FfC~UX-B^(V}0Pq@QZ}qMTFUI}6yEVR>`-AYd+o^U&X4w;ouG)&n#+ zslY(M3!l}J=O4~5X$(q}4yRkbXs2WskCr!=!h#qE{9=ja*u(5$ux{;pgw{jStY;)E zpmOt6bpW0dzjtWb{fVs%Rf@yXtYEc26c}z^#L80U(frc35ouq_#oM31Enh#HpKKeM z_Of*NylITgEZ58-eVXBN-iwwo%G~RV4qm;G2P%dvhHbiMbXv9?jP6zUUbJ2r+n6-B znjcq`Wsl`Y+rBS^9+#r(b?^hXPLb4BQ($bG)GVG~-xx>##q+Bh!rERprFvG@N2;R3*p&6Q?38 zglEH@ie1QqxHWqSQl_v!IGcjQ*70{On8-w#_ zE+RGS?3^O3Rg@FJ9pnmTFJf@0^p{$8`dG|StMC+()^ed%&Ln+}3gmvz5=$<_l+seI zMAdd>K_zB^?<^0&GObkCfzoo0LIqHcRNxo3m?l3eTzW}0f@h!4jmQ5hN_(1pEWINb z)+@Ad>_RBI{)|HmhptgBMOJQw-rUGj_{Ku=(?$i7~DnFND z$o~F-=r$r_HJ5;RAgNZCuGVnX+hK+6J2elBW!d}+wzX;F6u%@9c^e=B_@!)qQ)6A4 zS+iFDr(Tik(-hesUf8l z>km^w7Go_Z=-ZX{w%E_KsH{lh9+ltjv@9#B6}fhQ=v~WyD&|KTyD3y(G5<;1o&xDS zqz~^+d-<8xt_-mk{nRDJBiYHHX%Z8e|B7v2T60;RI=Z4b?=~(bamk}=$m+;^yKR43 z-9lVJqaGh!T*^ivKad6o^*#ObR~pxsK}vow?NucwIQn|yBsq$x{Gl{^A$NVq^wu9v zYh+CpUO6=i^0k&NACdQ?X?`Sa$GxvIH1^T?@7s?4Q}ikv&4hNa(8E~e!eQV(#${6> z#2?0TM#uI2B`^mXSqi#&xO!ga3C0mIf0VO#Qm__ZC6)qQzbART13e-K%_cy5bkSy& zq;eeN>=dsKm2mjB0;d_jPmvtfNr5vw*<>9$m}3*#1!FE%x8c(DoVDa~AdW*g2T(=J zO2yOSyx#ImJX?=)3EXz@p6~^| zq@T>s66oWy2J02L!l~B`)h(>EV=xg zME|!f5JCDKP5_9y2*Z`{>iuGdl!wy!L+X0&seJhsyF%O8)D{H$!bMwo$E-BQbt_~fiUTAsrzgKT8=Nq|=>=ZHmw zWY)X+X>!NNqx^UVbJxkTd3Js!I}3fPoj8e}VA`JT%$#D1rMps@YN>G1G8xdg>mg=_ zcygMha#N{Hw^TCx6zalKOokA)Zcq9QOQop`m6?``i+hL*Reee*w3MDZ%Tn2`RAyT$ znLg~9(6Omy2lpWGqowjnCMrK^6)24<1?~Ce<9yQ*3bQ z^DLDrZdB%5D&7DQXDaK9Vm_=5vKLq?LzT)xO9cXNw&E%zIGYf8*Uy&9V;)o%St>-0 zl7bTqt z*6E~yVjT6ZQsOk3lEqr*|L8jFI4O?p?SJS=hyy!|J4t}B!j8-05iA06580jF4L&ni z0yhG|-8r}T+t0_laHFMBEQrP?^VrU&niCT=;jVnV9O;`Yd}*fRk&eOe%eE~!=p@M4T0s(0 z!^y_B3X+pyEVr~zWr%K%l`KJG%dQZVamO2%lC!DdqHLYynjd~wzO2>i$$W4bFy+G= z0CrkDD}FbN%qW%3mAJM)9%5f*@J_4h*n&-;jDs{h5G1z^6fGW%4ZA9s3s2IzVj6;$ zOYMdbcjnoxI`7N^GF5LAwLe63AVtnVG%^<&dfT>dDR@- zQq*F96=BiWGxPeuFc;a82nD@grajoyrB z8G})lbqsFi3|!yY3ITcPmGD=I*>g zbN_14@KwMSeb&_g+tmuSthwHWSHnrhH3qMm;%2;t-gOODDsV%C!ZiUmEkH(3vO{6+ z3X%5~lADZMT4{??x~)OET7Wwh)b{t6GPD*8le;EpAWzh$`}Z{XT7ml}_(D$BrcV0= z(+5UAr~~Mr!EXxusDZC8prZy873c&|G}VP(r?t+yq|57+bV-n7&$N18ma3Aj3D!pC z<8N>ax+Q#O=BSr^CtAi!y*I*TjqVASU**9!Q0|dn#k{l5CoFdu&WX2OSA}?!B`t_deDMJ%8*iOVh5~F85`>zCm%k-#(9=`-l-dEkVXL7+KUx zeVwoB=-fksjh>f}KMv=)Y6)?eL`s3x7wpc4o`W&StjC++){GI|!HF*CE?(MRKEET$2 zRZ2H#_N2`GB3#;7ZayTL;%$KP3O$_1DzK94!+}>0DzHj}!e0VbYw(@|YZ4@q5q=X! z2y>i<_{#HiW&Xm$nHGLSnx~=js|h|c)|&s{l*Du{Y@OCPnU2P979h?Wk2oeG#Jb_! z;q@B5lOK2*W*4EY z2-u^+P=IZ3!l$fVNhCl1`Zs0enkwJNORR3IPvV%x;*yF>BBpO*HTEaS>SArn$e>0n zC=Xa~JzT1T?f|o9tf_>urXAETx~7e3=a2>LDyQH4o;I!wGWq3NPM6O6f>~ zTx=Zn8Ar|k<>jp=Ow*5XC8mw@yC&fT<4=9!O-(rQUkn~T=QPT979TbhMaYXLaGdAE zOa@Uc%P!j&G=4%FH0ASo!fdvj3~kD}PU?m>Hw_oEol1b~!`mocR{f_*(Rkwj@OQ>B zoTV{u?zGbhDT{j5C21#MSWiGXU`x3UtxH(HhWI zgEk6uvw+=2tQ-EKe2cO&gMN>CkALGHYBkP;SR=v9>-+oK&`Y>DGky}&t*3VKKKtJjTGlyYtPp+}h@ zSu)yEWwZqpFB2}{%Ktk9uA7XEF}mF|DA~p)wvqnLaW`zxE*x(gm-vIs8PTYq@<9AZ z{%Xeq{Zrywl9NinXZ*}a`nR`FzWWa+7_Y%PfNetJ+(m1aHY<@!u6`RX_}Ik6R+VK( zgZ@S2*={6EtNC5HvN0)9I(-**8j}-c5&vyd62~bj!#1-0vnF{Y{C&8jF;!o{^6zPX zng+KOn4T#8Td~Vp;fHXdF@w>q{NdaEK*`KRGpCD8Q(%?_@P|)x^30PVjD@l{m^C|5 zR{X#mbWWlQ9eh!~?-(v>C(DFaZ6E~9Gz{*HxtuVaxXTsoxtH@2rNh){OFP6%zJL>^ z3HZw(#5R7BS`$_!{Dqvhb0@bUeNw_R7e_6po|e zqS!*%*0IVl%E|hQLx*FrE-cw4Tr3VY=5#-9MJ~7o@IGAn(k=wT7VR=#Ub>jD2nOIp4Wk7fEWhd&diY;HK z%2&sf7m&v~)5w~KO2y>;&U~GINvx$z>F}d$Y?xO@b!I&Mnj_k#M5hoLYjr)YF2Pu* zL34oZw?}%qy9*~-|L`P5rCe7e8xk$A>JJpym}o{c%M=ARF+f$|WBzV{&57m~IXO01 zeBw@oADLP;Z_zqGD4negvToskZCm0XsnMc&nk07*dyMUgrXAhRmmRt&T*R>f;AD}V z=#w!YGkyX*5Cnc;Ukn~b+&f%X zw)f_=M@;aEaa0St_Ca`z2V}#yug9@T=ED!ct!OMTE&fRtb;xm0>h?wPuZNO4#__}l z@yC^n6AwY6om^G$Y^J+B*eGCL4xEfBl;!t&y^{PLD=9qy z$yqIVYXCc1=N^JYvisqj#nX;ii_nok;5>t-c%$M&2J-s4@ZdN}x(uY5i!p+uN^mJg zkU9v#zFINPkD| zEVns}S!0@Dvb)2`cn~>WdMMX^H&*hElH7}xWGl)2SjkJnkhD*VX{WuCbcmJgRgxcL zC63`pI>t)6DM_bT$x$WgoMes52a)VjYXssh|3^GiiM#%n*lTqAFG*SXb|i}3|63f- zybQK{2ee`sli8o@k<{4wRmt{SP3n*0-t~M$v_gq`Jt9gNji~n{B0*&INwS_Eg6$LK zl9Kdgr+o|y+z=(LYJbj1AY5ykij#FhK)jV3PDd)USRVJQ``lOtUQGyBKr~ zvUKBFq(MLd{{<9|%Ik1&QpkFNY#kSN%FuCiXh@8xh9OBR*1xwg)cpUQ6#to%4NI~d zck2GkCv_J>?NLcTNS)HUOuB?$-DO)Lx(%`NFqcunv4`9#Kj7~Vx zr*m#%Sc5p{6X=!(IU}KkW0SUU(C&obJXHbE;LR!S3-uxEzfCBtf_D}(S%H&#?U27;3; zxlEpf(qyf~#)OmYZjA8k+wiDO(Mo$Jqcl~6+*1M5G-#s0bPciTMO?5Qb2(Zmhirx5m zW(L3ef=5JeDbd1MksZfr9K~F?Qu~=91^kPWWX-4FyZ}Ew49O}Oj(rBWCY+0r*KA%} z&d%VhOH5EJ-i0NNC`G8o$VW#A^wOkV?188X=BK?gslA*Be0Dfl3eMs# ztkB?n1y*V>NP$%ruoKCij_Wvq9?E&&<6W)g3;>UEzGp=nBAH%jjg~`DM|>-*`E)*p zX+ifdy3u~KY4leOwkxpK1XYZ6=KqTF)*O2Go7U(x2aWX>z-bQ`bz=RXFM+Hn6xyJb zo}P=+Mh)sHut|e%0NdsV7f+@GJJA@tvlWlG3nrSNXA2LUnl`Lf^|oqoLxF92$bK>p zuwAz}Oo43F)T(pKJi59gNe;~mzhL~Hq@2^=k@}azcqYuJjnm| zpnO0nBvd?dlG8|l{NALZ&#JYyW2{dxTxFv zTY*a&ys?U#cR49lW^cm8zj77hqPr6P6C)~Y{F@|uS22FBB*|U%|Eg8n&JBR_8#W<` zLkI^5Uem4aT+J!2TV0mm8o&*H`7ZE<-&+%Y#?H}Y$_-)!A}AnAYoBa&d)qJJVn&CD;91G@E9d=DOU$bx?J{->2sJWzOA}$+F{V&j z|4KhPC0m(JHY?CM*`l?-r$84Az!~6FjKny|v%lkljI}6rGr{vRbSECwy`s5WgK1dNVN@2Mu#R_-qdS1(84ecDs2P|PqsFan7I%T0M`JH1x&$4 zaED<)CQGXt8~7uzUruPqNUN%y6q5Lqd)(^l4$*~cRI-XBYfPjIVcz~U60YDe=}jMP ziW^C>&75frb(Py8YktNvc^a{6DJJl-|JB<(cC~E)X#+PBn=fnlacHPe+Y6h+MQlGM zSC@LHI+c}_EexEW>1W~AWl44iJFoI~U|NH%GBiFJW8638W$G4oMkXZ7(kZHHWej_-e zfLRd|u#7am`0SQp`CTMOLy?C0h@xYo03$Q5tHG?rdMuFifaq&-z_3lu4o>D0J-nX! zolY;!QG%%n%Xd1-BFP@%3oT2w;u&53keA?mth?!KV`eSaV!Rt6-(U+I&RDMQ6d-C4|98CL z@v<)vO<91hsmgy?fK>t!EYMhbGvOQ~|NBm@v}GSkyEO3c z2kh20_z08SHO&Rrol2UVzDFxPcL1fm8hoR`K3&5R!0(ql8HB%KIdu8LrjGZ#|-R(agbBs8NfCYPr1tz zJffe!mk!hHQR~r=ZVDVrmf?rPU5!7r#y3Y0{-rhcDsbHF#k*4FD9`SR#n^2H=un*^&@{RhZX2h(R?#X)w6&f zE2<$BGCEoscFasH3p4nzscZtS%uW@p7x&ZWxT4M#^}F+}b6j~Bs~uwcnfu}`j>!{t zmtZ>ly^Pv-<)!mf>6TOF@V4d!<6vEJKf%Qq0~>`kgf{!*WeVuHlSj&M@M^Y+rWx316rnErph4m9=>PCYuFvcO^BW< zem6|H5jYF1Pctg!L6DYb6?6DlXL@1DKaMOIz?}yHzh`|0DFVvN>uLIE}R*& z-04#*N{5@_FN|pw<=D;eE4JwsKbLX4arSxp7IwuM6(4wa6f|a5w32`3z0E0RarbUB znVfC@FJn(7ucXD-rmKG=Sr1BPIBk1@W67Mt>*RJqHSZi#NG%UxPp zszJ5_%QPr@53pQ=3_z|G5;r>HmdW?&fLjspVp8#C{9>tGQ!2lj$Ag2Be0X@OnuEXPaGiCyio@T`!#KPW;XX;jOA;mo zHc;1_VtFkWDjTfhZt8fWb-Y;}Z?cZ_7#wdlkK-_#@YJ#LB5s|0?V&A}${?k()jHmz zj<;FIMQt2!w~jwo$Jy5LSarO^JdR7J!7Ru(m`Gvf_6B~pRLVVu${*HoBXzvfI-ahM zcUi|5)$wlgI1Z0h52;e{*ThwUz0W%9SUU zmp2@q>@Kp`9j$2YE6KtqB6*Et6(!fxEnk$gs>Yudh=+ZV2q>2FPMoPp^z#>Q-5qBM z*)Y=~`S2^_gXYG~l+SPIcx<8k=gCN3+lh*gGE|h#b<(;x#jH$r7j`w(G{qk}B|8>I zGG*gaT>ok7xZ2YkpRtY?sN=t_wSYGSp+Ch-c-UHCU{R8Zu<8TaDm+UcU@VtVzT#dV6ZM(vP+l$WSEVP)gvg%gQv+D@EEDiZnEOr^uQaKd@bq zx62b!wJ?3_L*G=W$xsFQTENbj<{ibpxZ;C{U$mc=li(DGFN~--O_E{O)nCgo)sk;C z6Hj)c_*tn9(2c%PghmHyB`2mLvfAMSgewyK4uiDPM5Q$NK}(q#eC(kFad}8+l{Unb z*I|1UzDTy#*%pAEG)uHPL49oXWGJFMa+?t-qTBqWC~XeYV7>ywbqy6pr50YiGg%%4 zog++n9m!japK_#DQjW=_{3O`Zk%3ECV3cmDcyU@9tw9?F#%PcYu#HW5UHNLJh`mIl zxG^q8%JgaBw!?i#)*3ZAC%7uhANVOnaYxKAsCUWKZ4xt3MA|v3QKvi3lFXYmjcxFO8>X&azQEwuh;F%;8j2=zW;I-0# z$r?-r*rueUS~KitZ?-2Ew{)bKZK@tVlD|x(q%lovcP&HJ=^C6 zf+)h!Os%x=d6Z@`xU^?m5yceI{wjE#&7Uv^c7iOo_F^06jHIPP2el#BhMQvQXWi=a!b3H zsIxM~GTzU4i5tI)nr0*{yfYzwT@v@O=*-Amt*hP7+xtnm_);W~u?9^Q+)5ZXY=K0z z24L_b^Wra-Trw)q_OIMP<>$X#fwdasPXMgrtitiLmm1IM##Gi;{V~QE-O*Udhp$N$pp9)-7Hl=(lZ~ukSadrNYMWkP1B;MGZA~zk8 z^0I|$wk-@6=anXB|53)m}W!nO!@o=SYuyt@$wU(<#D)a0A=&&x{QH7$8j)xYJf)c61E$>8ml}JmYv%|W<1*+0s7u{YD z1-d%aJ$*q|DbUR!JE}%n+PcS_#4fF?(RhzXL<^Our=zwNdEI_z|H8#nQ`4KaZo$k1 z&uP4F`3mCk2Ipa*m&1IY7LudYBB{3Cj_9Ld*{RZ|dZe(ekE4ktzx2u28gjOJgrr|q zKjU%1#wV4z1QQ-i`L2ErR*p{-Oy9dkq=2oz!=X?K`K1OgpaBkxyrAUET+ToZzE)t6 z2H6S>)}X>GfFTwjV;oVJ>>07sLcnBZrf8)DN@=JDo>u|GH0Z6saKM}G5@h46k%Gnu zhYF8=*BI%rViwxIhQ=rjwka^$fz`cLMaff>-)D>olBH)&O2#@Ydc54V0OKrx(<8o$ z1m7|x$WXD9KWU{qO6g|}zOD@z?=WLf3Fk6Xv5>9+@*noUCUACV_*1E0hZ9cZp4N#p zHYPb_Yn{j-V>10!v-^H^X<>>6+ZC8<0a7s$RT#v_ggehfGBC|LjkJ3mrRiofoh08I zjE5NxzqGGM8tqr#;7-icMMo(zW;ta0Dd8zys z7q`G+Ma49KixwBse`1|*V8JESO)@{`M9^<8a%9BBaICHu$sFm^C(#olQ7^t zDK(}=Sy}lGHGVOxe`@^7le{rfN7}s0mTc%&{#6 zX<*PrbTlsQ>$t-c8odTNjdHDqb(z%nDIV&Mhb{79)9!EiLQ7t8(-6Q3=y zrS=e>i2O!=7~J5_@jJG1k)AfCWE-b3wmGE#!Zzh3_xt?B+bL1*@UOp5Nwx*-Y(L{( z!6sjbIWH{uJG2}}UuaHM95sY7&UEMRIdbClSTbUjhslxH-amAsdsL%4H7M}`V3)3; z5*S0pgAG`HIy~;(IdaGyR4y?Xr{Pr!WbM(Fr>M$%wGvz|xPT~nZtgkGT>G@rMWwXg zVbL|XvGPK!$U2ObY=$r6fR_6(j*z{W1q;RnoRSV&a#{5ul@IZAd>BbG4)av2c_kJZ zCVOr-vBY@12SZ0JxxD%j%12F5OGbUf{PLL9hj_9Gu^|@12SLSvx;=l!{x0JCn0kLP zaJqIWD(N3bO52XdlqcCvI9%4p=-S7Tg0_?Dy-eC|dH$0~G2;}kwvuCu%cq}2${42~ zf;gG>39X*tt#qZ;OL9W#{;k2C4Go_b&!>^NqGuiXV<(4;e2@R@7@n)L zba?vfm!-+)kq;lg@(8X~!0ls8F^i=$o0~-YxvxH2PI@#Nx%OYe3kZ$t=GkjX%?5Pk zh6bY)xM}sv?kC+_mfGaURg2;5yruhF_e-kZ)=FuabO5tGZn&htr_@;Aq^zB|7%v79 zQe^Y8VA0*tl1p=?)JcO03Ut=spaNZV^)z_fiEARoco6b`S7ukOR5yfDHw(n$@`B-$ zC=>h}*z`~D?$k@=UqdXFdpH%Xb8Dj~-BYA(D>A6sO9M|PptlCo6zJoW%W++5hE5>wxXB|0Kvr8c< z-7w-Z22f>8*F>^$@$(EM@oU3KCEFlpyO=aNr5Z8q9qg34jUwL~L(Kn8#nYHxh^e0# z&qN#hB;E`}kEIihFx2_E)R_2vlFV)#DPw0BSY zFyY(@@vPHSpgP4DzOn>Mt(?YRc1aG znRr2s7qSwtg-V>e>ZUj2C#RmxG^5p@(P>KhitWv4XuMO7Hj8|1o8Wv?;(i-l zOjb?&Hm}sL`rYHwy?LahZK5+xI=tNYb-CJ{Il(0BV(e_HgjhzTVYz{hJLsS6lCz*(*~c^k=%h z{)-WMI>W5)GiK^$8blG!a!NEB@fowVaJv%D;hLh6UdCK5^uVBE66q5uEUUNjI*EMR zt+X6&5eeAlIVVevCyA$aY;N?Tk{6Zw!&^NiJz7#Y-#Im=u)3>5SqZd4zJN}fl}bCJ zZ_4To1D}-qPvD-FzjY+PZQ+B$@m=1P$*s{}xm(9V%-CJ`gGsrH3d|*nZp_ zP3N>)@`bpZ%{g*XSn%3muag%6oAXKoP4v@W>aN*jCb&2nsAJ;Q~aQ6c_JGuB92l38fY46`- z$>sBb-21&+iI7L~`e3jnP)fN>?bAvP2BEZ{XJ=64J>vk6iOF)oD~#U=mIpF^5y5xR zY30Rn45mAWc$E*1R5A`*$}(jzEgW&0{!?;Pful}~fgouJ;247n-YWS-fj^xVy;b)i zH1wA)S*S{m(*VvaQc);5VFAeYg2W0!p2FmkpZlafV`HJhDSZK}6*#Ry!J&XN8Z=el zZwn}!2xKD4InAGe!QXXOD-|Aw(mCDm`wE=5E;i0Xpdc*cL84_HWRJUG>Lf|_FgkdV zCu0~!%u951IQQbRzLa*uY2Y7T&x*Ed%5XIQb;`KJW+i3saAs#$P*>hu^;Y4ubyb7= zD*@Lu7(Y|;r&{yg8A)?D85mEuE(JB414j?iEGjP>94l^F za%nh{4&3GySnuo7GF;WTV}eq42s%|xO_fF!??+$Yt|gaEs>VGHZYywKgQQV__Abl9 z@VNpVEP(3{>kLJ)4V|7!-|(Z$O4+oQmpDsBT_h}p2s#70Tx{t~ zgF9Pd={lPJbA~lR2s&$v_Rvte>4= z57zNvS`NJ^$!y`{f+(M7Jvf}ptkLXMx$!eCjc}QnFC;u3Fp`^MQYAuzh!Z4c6enb2 zF5f6R0##zZpc*3NOTgPLlo1+jYJZiF-vSCbURZ3_ggj$RX_lN+4UW~|^9g`)x^?zx z$o0eH15cEb+yFmmIqnlaf-<4IVVQ^f>d#uvhNx5Ju5q&>B=w4Oyq4o&&Bi_i*&gf; zIC4y|HH3{*+Gwqcbyo zIw!?lja*kG)!`#SHYF!cZh;w=T#_cy;h8x~=>hm^GgX=a*p(p(MpDlkviz{J4Tp2Mp?3J{LD=W99Z5q6B(3}PpYPfywc9v?+H zJZlQS*g_48P6aGt0AkXV52n)WVhbn=dGeyOsTJh6hxKiV%xMs<7*E(6BuOfrF(w!| zftI?mHA#bnHMCXTCJ)ucmmq=KB8&ctzz`2^Q6e$fw0WCl(A%5yM- zm+D%x-KuhD23y_h%#KQ>nKb*G3xm+0UWFucW~7L*-aO+QculBFk=tnCHDMm7&Z2vp zTthBL-jUJjc(Y3`&x)kT5e2rGpqjB&pC>Y#wzs)nF;}A7hemVDmtEkJUWnM(?y}Mz z)&F&%T`v7HFu%Mp2eV{0BWOVF;O0yONHOLT~^3ql6;{Af5ZqDBe3ms z#RjC6orlgYm#mr7shYG=V7CVA71*Oe;rW2QoUKwDhkT;IJ`F}HuwUQD{qwnx2lS6r zZ~-L;T{13$(do?vlpNy9ix6e_EhV$-%`~&UUIAN4VstBNgP6s}(q=fo~DuPYtFk@RtSbm^(tsbi=5^LD-pjTq_M-%n47p>Pd~a+d0*_O4?4k zs)(agixM)n);Ety$t98Ewo|T$VJBsc)4H=0mQeRhOi=;3gvj_?mzQ2j`B_@qvA0ce zskapK#5rBmk0Rr|2CJ3c1==aI_*;iKo@0~s>1E2I;L@}0(#z4ll!Lr0K$mk+-Ibt! zO!QbT`EnIE^IsFi=dxXKy=zT_YsQZ)D#>e@hhOEXUBl95>>3oWnIPS`ZvKBqzWRl> zZfLMsftwnn{0g|mZ~1HF-8g2Q@VsMX3X!DHm44e4ryF-HU3&nFkTU}>Dc;N>zbpN& zmIraZg$)fG5D_#^SMZ*0`?_lTz6PJJ1+;g|jetwW=e2K9dfuwqkY%Q(VWNT|Rp9(on5eO=rZ)h&4eU|4tYog@0*@965bs8AtK zV;+swEgg0}e?~VgR_VUUGD~2+IRo!b7fj|9BKuHd2B$)1g1#OPBqwQ7K>BTul#q)`b(r}}ePj%`ela_l zJz1%fUkNHYVn9c@-;sQMB8hT8KdG;7Y^26Ww_KXrG)a7$cwk1kKeTo-n{JADY@=gP zSvk82oAns?D@viP^o@R#hqW|y#>R;9%GaCG8W$tVBg>W6Pq89m*l?+KG7^+4Ix(d` zyG>sRX zBinFznC$k-+egFs<$k{QPs<Qi0GN^h^D&VwHS}z+8#-;O^dmy$+qb+s6;$N z7V0A}9Ok$YI~{=;v8CeArpq(kF2aMy6p#klkrK99?&?zJTFX*0I-3{OY<|>imd$hA zayC2isxj9s&K;4uws|r4`9)c`gJ$MGa%Io_&Xp}-`0%V^W+CYyu2W=MgxEabTBz@c z<9F`JqDL<8tKZq*SWLZNqOZzY)yNVJiv9suszF47Wg7gZz;d3C%`IM&5<7YNS6C(X z3>Bk?6E*Wh@)@~2D|L+xJE^fsgOa-dtKAmwT^|M3n4r1wi~0XciR@--@v8|M$dTQg zV66uA_5jwoMcE5vl>)z+pt-T$)c8V1@1?;F8symr*r>tx3T)Egf&!a0_+md`i(8oq znj2fq{|%(t0b1XtHD(?_W4i_=4+63QiiEH4LDY7bpt_~bitnkelWi$bC3HW3t};2FE$M(R~0y>!4C@jX@a2fmlj@C!s8k=`4ezLgNX{9w1AyO0$z7e z&MHC|_FqnEIkXDQ+Swb1H`PJN%4sc!xCnkD=BFwhDf~TWbfa7UqS3##lDX^7@(E&T zqJ=Xu&RX*PY{PL&oNoAX;W-R?&$(k*ezt+`d`3Zj6 zOStuZk=jpnVdyz5FyX_PVp_g;g)=7Fb{V-&8cqcOC{$a+wcLlyzsMuf9jUL zANQ2fZL`L!#vSuLQc*gc!Mc9e)JTvmXXw~Ht)BaD)bHyyRmve8{&7pf0>%=fy~jFn zSEba!V~sIKGSBh8>ZTia_*jgQ8e0(oWwN&I?on^c zit^7nwTECeF2VDhsi#Md?TH5CSa`vfj1>;X0=F--m)Ve4Hl62A^www1dw~jlJW}RD zq=C^_w=zu$`|17?>qU4!-+E3A+e)avRywJa2IyvzE&>KpqV7o>1qSJo z_6Y-?8}bh}s!<-P{tw?2Tn){;yYwHbjonj3u-DbPJ>|tO})b!)@%C=#l7^NHb%SM=|n+jmhSJ`UVRkNiX5FC1f-! zG{qD*uxH|20X-bg69I*=+D)bU4{!iE{NKe()-^77TC8N6l1z`4TvC!59+_RT@lY9l zUAaHR7N59I@vQ&V_2+G~J-EcF#J%Y^`1;PtL8Cy%T#sc;+I}PQf-z4w-|HqN^XWPM z5VGecEicfZ_$|P~m=oh+$Ap@z!tBdiJtMHl!|JZ3M<$_ZTkNSNHF^=R{AJ!zPsycQ ztZkOWR2JWDl$LtZq=vI`S!sSdQrWi5lPYC8LV~vDcBGtbxyNs1GJWh$q=d185%E*_ zI~jY2UaVxSeH(2niFX03G+3y>YP!JpOwK5<#$(Zh+{@K2H)w_~Sm$4ZZ^2=#kvHqAA8EeVGmRx6LiRbJ664@A=)5 z%U!A%e`pYRoccRG-K;lHd{ z2(QT}qGcpsZd%!60XuO5E*4$sd_$NCI(>V!(iEk%PlLQq0QNIh>PDZJHcvz`Q|Rg* zV#e8b4nfY%uMo;Qh`bg`2bIzx55@>U-X{Tvt?J|lBub5pGZ_0YP6m(Y3aypSQGLEi zPjbFv8thl#PYotK4fsp&cLW^iSG7*#=g_&vhqid5+Ok%G>zt}r z=Sr{uk-MGX7!@V}*Im{PODqoEEO3{~Jq3&gvLx*@_v?JzmmFL!kGZdHk&3rpXdxYgIUM+ezDc^{tX znRs*81IKMP-@I6SvpRbRTl{ow9i#Kgg7|1Tql;G##Ybx!T{%ZVmR3#jbHZ+3>uDLS zKzFaq&L4fv=;5`Vfg%O?nR|LAp+NKnqnB6e6^OoQ^wu?o6re^Q@54J~hn5M^kMhyj362ubIqfPe|P&v@+5QjrXCi%Sih&(HG+h zXCu~uoOy8OGZKTNyfKNA^)GpUJZyYp*5Ouh+pv_`W!!w?? zRWhw6#kpA%yy=p|AN{N(mxw+o*-Ad~zvYFEN#@x5L~@s;FOx}Yrt%JA*~=hpHjfZ) zUY_(R*7%eICF$Z+ew9nW?ILIr8%Bu z9XD6Uv(01Dd$Ql8GPrmkJSX&Uj-_%172DjLn_s_d6fmbH(R zKU1Fi>taRm?3H=^q+}uEFS#Imf!|_FWtpn5-utRWjlHB!vuEW(`RI$b4UcGj@)BAb zV?{92cpYTxBW8yDP3)R)VvII#Q9;h5YHape!F%slpx&04pR$y()w-95RLQp37R8%@ zX!|3g-iVBBE;kgdB>PqQj@WX@6p347U6%>F9CK6e@4A#bS5|r^GOGUY)|6w5VIy6e z7%gSn8CzQtlW1^PtSBB&4<;5t(%=T11XzZ4$Ck=XVeWiWxwvWL~mBIF6 z2+BJs*_qHD_AWYBG1}pA;|RYLnc<|fhoOCxhg+qJ-{s*>ALHE>ie$-~UP}J->g`^Y z0tM;W1nFEUTEce8 zTf;)zD@6<0E_-WRD86#Er0t)avM(xA_HRzTpDIU77+3fzR*u%RUCohxw6Ni`QoRZv znQII`^90{l;VX4LN1^&66#h^OH+b|+g}ACb%r|q;M+)8I(`S~Asmh1&Hlx5q7pg{! z*zV*s{KJxl&q%duG~g$ydh`{ig;uuCrA+NqVhl_>^R$ zV07`Rdy*)5UXB*Cb@kOy+KCcg+3<1s>}4A0X0@3pBVOjlbk9L=uHtGgDTN-iXZ)2(9hQ0PO2&!U#C9f;3@qhm^olX)Fm1fHPyYvH)-9%Ei+ zKt8Qa<70i&KBaki8Kl5CpGjyhXKQnYpL`!kuFLFEj2Y1BX>rtHM)yNZF-c!Vzq+(B*{9~6PGbtfsmiaq zZZz4L%2_^dJjqUYDU=R`BnA}kSY~LNPinl$qs!MglNe&A-+Yy!dYW#@rQ{nlKSP7I z3e41CrvkGyNO==5+XNpQb1We%Q+!eBIH{XRPnniEmpjooS~m_V7L{_{flEHlELrn( z8`a;UjrkgkP+$R9puR$<6 z3jEFxR2d%$l#5_?`A@C6?2QI02qHJbZAI+NWD;`w1=W*GfUZN$15*ymGk< z1`lYZGfL^8R$_h5PAW925Sg+)>^`KGKK>M?!&)gFCpbkLkC$f}adfUDT4|$FI;xde z(O?Wt_^KM@vykvs9cH)Oz zybg#bXAR~_yX>nc{dy1%lJBF&rNx)VoADoC6u|eAhVNipE8y@A&5N(oIRO$4b^CvEA^!CTsrgR9;f5 zvf2DZC|cOKX}0mYaf_>aw?$={8sbuKThF#!SKy9y7QFn)hXIu#F%IyHID&Ugd6l>j zfz8bOFrO3p;JfGZ%aJApFWp)<5 z?c!IjrPqzFy5@&pQL~!~>SF)Ff(j!I0Tm>;^K{o0^E9Ml4_%>QLn`$2tJiO3S*S{S zS-{SaVNZwWmlZW`jlKQ#ExSO~M$z&{A4@3?4`^Ik$kRkLGDfYwrnr(^Y(%U5%=3M0 z^hX%wUJq@oCItQ(5?3{=q>O#C9c$~xe7gtgN-s6xHyh-y95XsTYeM;8zc_pHc{|#( zQ9fC=zt>YTvk8-+AzXTs=tqWdC1m@I!zTp)NP@*!4#So-)USeMD#(bYT+=XgZhTik zb}2C2EO|-tG^3LvG^nk>NWaYK(W1PacObqiu%_W|#g ztkGzb9X1XwF8KA~tLE1s1>_jc)jayXG1mP5njC6Q%i}cggaJSKC9YtXn&g{-GKK{J zPKP1V_xzy+f}FKAvkY$;+{O?OZ9n@(`? zQ0(LPM?O+)YVZ&^C;3ZAl|J7U$sK9kwCQ9{*D~ssK$LS&@ef#5#F)z8{7vRP@(&{gua0L=7T>&EF#~x;)h-2SBXh#ktp<1krt)o zMyqJPTuaR3IQFwy4U;fb3UBH!-)-}_ zjQ*M##|CbL+Mg-^4R>p!1)u@L$O%U!(GMo`$R@2+r7cREHQ1oQ7F~nQC1QB6B;cGt zCHGdXbhsT#+caqOAHa4Et|*YL!4Ka8c9@{M@jDMo%NFfq$anmje`t-;-=ncpgJ}xv z(!lovV7CSA#D4^EYl8b*EtoUX_GqOy+M~2rgFOoD(>2(1PFExiu*GM3;cnTlmCkoS z>3{~`{0KPsphhO+pD}{{iqCi2A+6M>BT9!gDAEaVM1%1P9MvGDGvFA{UFYbR#-EJk zV{H;thV-Xpk1F|#5vzQ{^LGIpw*VQ0nfPYHv<`_RTVoj~v{E0XbW(%O3Y^m5$*zFY z8oZ{!84K9SL&}_jpkO{4_#iv~)=I0C(pkR>+#tJ#DNK^oZu|!4>8$ch|5||y7Qj2s z?|>wlUmH7n$a67AoW%xvh+v&Ge7_z3OS)>s?o_>Of@Ephoq_icx8vm&NitcL{LB8~ zH$=XjP~eIM;=B%mQ`qC-M_~vDu4&Z3W@hdmt6nU;!^jYIBpNrvKbFE&S?VfH10w9;)PyA?z z#Kggjtoyo|)xCJ|+RNo?T+dyOjSc}Znc5w_sr_TXw8F^5-jsCIphO=)r+{U8f%TLb zC3_*vehK>RZ0cmmvwf-E#j0TE)eWT<7Xo26uY=640W1FHmQw15lJa9G{+aN6s1*sK z#(}WAKG~^$eDit)zEVc#m!)$5Xj!9YKxPk)R>N(Pi7xD`L;_$-_V+TyRqZ$}5MM<6 z3ydQw19fjLXJrIcI=el1+A)>%_X()iM?2X%fL`=9L0kE7AlKH<0^E8WD}Cf^!apP! zNDKAXO3emw&jzS_mMqf-@e&>xKFB(LaWKb&&Eq&ybMXDakHq0tVUbxwES1ry z7-IJBEn{dvYJ4?nvP>R=a2VU^%4c~mAlGn9yMS;bMg-c)v2A4R9-Y4_3^5XY-WX}> zmWm@*nvfSb`UvxensSuYL>vKRqzld@o}Ek(PET;Oj7x4&(audH1p%(4tOmS{WX;D&rbn4)}w79d2U#=p7FEp>$k(GIo`V0vIUT9 zg4OY-hEp(+CY9B%@^EhUBweM6Dw!NGKc3Jm@zaxsJlic4|Eb~| zNnd7~fNJe6=Y|kV)fc zVT~zFjHB01I7G=)jvY3X{)^Tr^%FY3LJ9N}Gt9LCb6aM)lC86j@2lhAcuD-s9?p96 zze~FO%-J^3r7;ngY*b*Q(ss*p<9V%aQpfm>jz_-PYy~nR96y+35=hBRBF(eKYJBH- z8sBOi7n;EFHtYBkb-dj=9;J@6t>dHWcn3XyJmQLjfEn&U6{g5udZzRDz(aaCJaT!F zWT}jgIA`F1_XlsP8g0tR2NUVjP7S&#uuBinww{9OaSbLZa6*H93Y^s7 znW=zNw794RoAp!a#c8wTdBt9@l1cGlV&dgH6VUsXj;9(w6GyO~2Rn<8OpC6}^sK)F zD!pAt<19Z!iI%OT-83%k9QQ(nzh9ch8P03))pWoG{gpT}9kq+pA)$2~A)O2fct&uh zgNZx+lI*D6;uEPegZIs4^OzSQ-*7y$e0a*Fv*P&25-YnXerE)q@hyc=`(LZ(d{y&` zrJ`;OlScTja47b;9ak-tQZrGxW*zrX$JedntLpfMb^PTlj&EAWo7M3x>)1D&E4j@O ztJ%C(d=Lf^-0ARJ&Eh5E%DR(tw@kv=PD=GIzn0p^TBX3ffb5tZ{lK`dNB10L?Sod% zl=jcC8M97FIs_jMU`d>dx(C%uBtbr$&v|-Szz&h47pA;S zr+V+P_U)<9pFN+Ny-bj5^wu?NEudzfpyfbSJqwDpSxQ2V<~0jAK|fvhrG?b(AC$C3 z(Zo2#E&`z;Ec;}-N)HUsO^sPdMR*V9EM(0z$f_8Z#x@~S`ZV5N@Ul7w>-Op|qP-zz zd#Q#5Wz?c*Wn-w-zT{p^;V`oYi9DiC7VqrJXJQj}XARdU`))BO8xfS%zeiJLqXHu} zD6j-D$^!OGh<+SQY;g5rj^y)<)=D#!(ijbHDlk@q*Omgt>FRjAL6i!!0StPC<+*>- zN{5uv&l*%%1{kkFYXv6g>VD->K)5#i#ZK;lbD~yyZaGSmH27G7$tI{I6PI)8Q*?Er zS@4Q+V-BYw_Oz#JrK&4Xnx?CFUqSWh8thVFhOUlf2+s|EBWOy!_&d$iO3hZHG|L2) zWa&!UnypJ7Uq#6rT^#~%R%IT-0fS8RJ;Av_sotn%DLYXvOr)6qla3wcjr4gra;PnF zo5TN(H#h8c^DVg?SB);vpulRtLJevvutHf#YO_5%Fv*?2(3? zu$HR7X)s2C^|YgW?Vni(*kA!Wtl3zheOauEh??|eY~(pt;p}0hw22qbx@eNIIVh#y zY59pf^&7%1`lowefvwh$8i!B1@=hdYWsoE1Hm!4B>1@{^xE_$LL1zVaSb*HIWUIlM zj3i#zvpreAYo!t!Q2IlIMhfiIU;)6kD_BLssV$3$V@EWR9&=j@PV zdR(Cle9=P?24y++=-S_Hq^Z3cY*b*M1_d?&_FDkn;Y`d5fupJ4$Ez!%ZO38%EP4Y|qIA|JQ-9q_MU9+D8$22&o zz@Hktv=#7|2CWo0uEA;rPH6D#Ho!?e-W)9Qcskg5CyNPT!l$&-M@s3m2ICbtqroKw z{??%KcEDK;x+!o@gPjVT*PwJZ;DQEC6}YIuVg)Xlpprbk1B2$}m|x~a;~%ZpZwJ57 zzrjZxxGTb0Pby`ufnaK~$A$b?g0gLQ3y(DXoo26UFjIkRW$<_3e;~ZU`@b&l32-vH75eCpX#^rz$Jc83A~LW>vVtWvrg6w}q*y9;nn zgC7*QZ-UxJ`&3f{o0EznP_$h*5a5o|!II18yHWm8gGmZ>%&EcpQ_ZOHOd^QT@93nJ zD(yk3vj&|N=%T@P1-hmRF8;NRZsvbn{e5gH@}|TFj}6`3UF*)+i*64Mt}D>f0(K@q z0sJ-b?Po$pbYCy6)N>z7y;H@xKN^(X`*`E^(V+BxKwlHoHu_n@I5H5bWaK_(TCnLk z`s-Hi?x&Rj8q_+#ENGw{>))bITn29=vKG4t$8q6%>>s4Wb>+?h+8)fcDB_jWgH#@( zD|b>rG}xxVPz?$n0u0mFue_r@EXN>)2>Cp&;aX?9(ix#I;QAp>GE$dRKTOG}R7u;{ z{C$~pn3BVcc{cMIy6y(uK>9w z$)zqWUX|s?cyuPGzAVR58^iE=3~z!dsc*#iNi{znCGz)As!uih`HnG7_xHLIPEVDd zf1y$KFTf04(pG_)W=WDU%Q~w)0Jk1{YCbliv8y>kvvqGO9p|#={P#JNY;#jTlpP0J z7aHt4OXqjZ4agO5f*+Z^-fimtvAuLr%@N-Lphr$ZsdPkfpk#`Az|r z>5>e9ZF%ZLr^{z${3&b}D^ec>wU;9TiM^zisn$&T%hS<9#;Q~^Z>Zf(yiX>(BrY$0 zxGs0vYAt7R6Cx)!e)rf<*)m^~BUjngAi2SdAG=a8{TD6wsg&+yA|bAeoKQZ`uUgI$ zjOm;T?}Czo>sqVj0SFmfYMRIkfi0S}bvbesPy7G)dJp)hithjamAf_&A=xNZ5kvt+ zA)8Iv4J8CfNMZqeuop~Q>18*l4f>UdaA&RO&;H4l zr^=nPJW#t5@RIJ_kcSo%3|ml;_7f59i`&gpr&idJ=TO>XpGGxzHaj5j{Ib0p3(34M zc5i|cQ~20<4!6(T{z(fp$>4e3wx93n=(h88bU)3W@9?JU0MC5V@d3}syI)L%TRFM) zz4GA&{IU)vq+$QYi#LB@+XrRM1-y|CA@Vc|KALwCUz5WL(*9D1Cn6y-#e~8{kZpYY z-*b-enA<51dtGGzE}x_55V+$am+L6+{OZp-l$OR-#=GUAOSl*vOGqhnl%|(><$kdn zj<$|-Jzi<+lY^Hyr4x2<)5Uk0c1|WVl-0#Mm6i%ch&*X?xx-VgQ=DLjiQR|^3LEi| ze1Dne{#S0Y=D44Cxx*t;>^I!4PE+r1rI&x>U}qS^9{B_^E>}-9eJvv8V)yLQvi-LX z54+ALOn^*(cv()T<2jl1jBH&rsp{~QFqzkQczbEQ>62cO%;Ms3a$)C*FntK6&L!-X z%fF8(yYTl8-`!)K=f#a`T~_vA<<4E;NY^@)m3yxNF4~}6I3!V-1R7_sY{n#Z$(BBC zT{fz{RP{Hzkuoyx8kgaB0}d#-!U-y+^ZkFJ_J;!qN!NHf(nx3ozc1!b9>Xqe%E`Nb z@z`HAwR`_X?Q03j0bMqN?O}`Ik#TDT%qjN}gt{d>cb-)b=!10>n<+0;i$5uG= z*qcV_T~)f3AUm&jXe28Y+_ph8>ki+Kn;j~;S!Kd;fMp00Ox8Evt~I6GE!bgu-{1tg z)pXclm)xM{X9k>8(A|K?ZvuMQz+?3^!k#MZWx!$uy$v|4pifPQfcEiQ9HOsN;wJWp z&3PguGRP*!o>4zjqsJ|3^fzFUf&n#cmRdQh)d$vem^9wIP065|&MG5M!Qh&5IV`ub zY`cxxkeUt;BV!&Tt&V+gwZN=8w5H?sNiZB6VcGEzqGq#S3zAPCthLn>XfpH``w1Qr1ygB0sTqsX4po@ZuPDf=Uz%{96 zQ>^9_%FA_EFwUB6idx-6(dRYm%IZ?Me@wV1Si$-c)Xszb$eJJ>b z8}qf2J@G~J;5Orr``*Zz4lrMYwUR(}jQ*Y<9C;*PEJ(59uqZ&JloQBVQ?rH~jcZ?4 z4iyhRVy)$<*E^)k#1g@KNnC=b7L5J4922Y&o3ZZi!bhz2bYIu``%BRM4F-gV12!6v zqF|E&ofT}Z=`izbRj{R|T&mqAMWU(@DA(+*PWO*oHLjez77>iFw$_x2Wie6rk3esm zxe!|wY^Nmg15X6oIJ$1eREJweRA9&d-IklSb{4edruvWnr`{ux!HBS*r0zGEpwl9Q zC0x5|Lgn{ryYlki$Y7*vcg>fGp@#Fc@$R#lKjg?|&?D41Y=dX4Bc_@2D$KW=sV%ii0*)HcAK*Gx z6L+>%!IBc5GBI4%sOXowM7OlcaYo{li4En|Qh*bt<-Q6|8n7I2 U()smfW<6)Nn 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 seyhMrZRZdbSD6 z%O+mzz^A{@*T|n$tB<~rJ#I9%G3PUXKKKhvs55EO=beYb3hhVg@I3a6LB@0SPc_v z*hGOzFJ_UoY+{{>3QV*PCf1v1jfwEP)-dr=jXENt2CjZxgN^{3nKkNbBbrzcYa(SP zDlt)oi7JiK4#Jjl{I~MqotUE@TqFOmQ~iEqQV+0=cn5(hP1z&k?1xO$Xrdz~N9Jd8 z-%j-zB{OcpE_LdN8I0>OQJ0BoOmyBvJ%;~TyVOxm_@84Em(U3468!Ho5pDzQH&H)A zl|`l~#g1D%Wz0m|2<60YW&bYKIWmj2-7@LemoU*y6Wuc5txt{{x$?iXuKUvb0yRIF6^|BqsoqNj5UU9F&U*C@0~A+S~}v_^3>{il4oK4v7|$)_NI zp2M*93@aRhtyieffc@){*oS5OZq@zfTt;nXRLKx(vqB||5~WPuqEM+qTa*c6tD^is z`2lTZJE ziTz=T18-V}%iDX^*Okkqa%{c2WCVBgln6?RFuMA*2$~jw&Mr;+)HKt!k~#Y@Nm96Pl;(fSS#lk)&p0s6MdKF&us-lTE zLC0aNFR9`P_DfV;KDhTbv-)PRjEDHjqA1Mi2Aa3*Qv0CTrtGibg4#z;aefBh;p9G)<#a z&2hvhpKexPdV-f@>hNe3$6D!t&(ZWW2F}%Jjz)74lI6?!%~-a$_Z_*p8OsZR*C?)TD< zMZ1N2>4)N!MbBZ|r!A%yT-qekff9zEM-{T#8mC3Y14lxcQpoP{60wE6qA^c`qaY{?H zF7^9-St@y@8_|8j)ow@}w$ec(#%Z$BVJj|7dYxSyvEqy!v0~}cO3hYr)JjLKIJvl1 z9piB47&yn-(g~}c#AaJK(`uy?R%(UWHY**s5`J6Q>}YJ=on*0-5No&UEA8SG>z6I( za2?0BVEB3U`w=zgYUD4^t4}D|pUMAs-WdDky7TJPu}y3s*+!FX)NZAzHcGZ}k0^)| z2%E6QV8a#z$4?^FMyWRL5il^FS<}IqVWSy{d2KY)hU`~_^_Z=e_8I z_@CVyZbk(*DzF*NXswOb+ISSG?8RgeqxqFy)iokCn!hhfVZf`56I*QDPUJT)ga)I8 zm$Xsez;I|ZjY=D8rOHNIYy^0vjjC+icK&ri{fn8~dSQ&rouS1&n8#=Qpp6mzARBrS`ib&<3_lB+BuS`!IU*ap^0Wep&s@#KYj=74^RqS225?Wrw~jJKoXa&|M;%bJ@sc zIe40N3>EY7b@dvLn7_JVjF|FoH`IVBOD?^k1``t5UY(t4>{MZ=T07O*x&7rh#BNr! z+m2OyJMFQHy>{Ab54FE~jtA?(*~jz8{dPT#l^n36rW@?E-%bto3F4rg_Sp%)2khMb z?0O+S9nLBbL9o$IjdsywC#}iOP2$Y~^*J7>1|8xAV@?3mVy70nXtnF@ti8=nt#)d& z^FXzJK>gN#3{4{);w(#?g+!;FI_;v%PF+xnbBoDjH}kr|J7=eJc5&WL=j{$m9q49g z9D0-gF%Bi+-x$K~*y)blXnS|%qS1+? z={P=k9Ze^q(F*vSVL7~ogU}XmTchx%Xh?i6~2HZ;X~ zOY}jnS9wG9N9%?U;wT} zXwUljntU&s?nN6lk{CmYF{lxf-V`Aw#=yggF}P_iMz86vk#DHlBg&>J^3SS9O5LAi znyNiBriu;Bj)4bhF<}p8$52`fd(fhW4agXhF@}MR7|OVBAd?Mb!ob29eI5+FpoI*) zqiOVP-Je8m3@R`;=GzLsdYT*aN_13Iv|ZoL2A9U@npieuaA^!JGYqcQwEv9j=mMZ1 zhStQ;$`~qu-Bof>)8dt+7v$4sZIqIdCx2?z#&W%8nl+bFoGh!%nqL`QD|^k_NToR_ z%@*yYFA_j_&1s#!hb~m9P8YUq1&uc9vF73Ycp+=fk^GcxI8ZN%2;ZTp%t;TGS<=aC%HIMTkuQ`Gq9Sl zDV8>dR~EQ+W<4sf(15uV)Rx6kS*$3JrSe!Fqdu`~Z}AXUX4irvidlS5EbWS=s#w|` zOM7B@th!^@hUQ%R*}MHvb08KYMMJFKgi3ijD%5>m=YNd*e~!{d|CFoqcq|={H41+s zmQKVPE$w@vg>|$*M{BHpl`Xc#Qfn-=#X2fxhw9)YBTfR*9;+vzr8Gu`>fmOS=4As< zL~Fl{&f^R1rC7QY>u4*NQ=_%OhaF71$_pdcxVYD#;d(3~U5TasSh^bPSn@h|rl`^U zYaJaGVb_~j28$>+VjZpJreStI2Ut)UhE)~ZAOJO91u_1uSiKmIJP?D9ijxr^6LRGJ z7;Vfi!y{7?FKr}YX=93mrZ~h@2TgT2GBz2pF$S(=W+#J<)flW>U||MpGGJpkd{m?| zGZoC~4w~+84vV#~lndV1_9>_SAV2v)`;pT5j$HQvY){XV2R_i=RVI#;{$Fb|`G3o= zwV<;08QJw~?WyPn-o5!T{fK_-sQ5}cf1|lZ-F{18s=EWFe1l%6Hyp(uil5WZ9Vh=$ z^1I(?S53-|Rr1}Bw8uwv|2yhIUT&PkQR^f`eUnWz+2j~lCFg&nxs~pJmsEVDy%6zG z$Fl+)lnQLgA=r;hM#y67oe$3oT|P! zto&gb=BWKtem+6_15Z|uP0#`n?X@-1@&%e*%EQwAh4zhzJ`jEcf+Zyk|I-)R+segN za>o~;LiBv0Wtk#!YHDQamm#@TUur8JFRX!Y7kKWDsW&F(7cqCo^c%Bu{9aHU(Er6> zwJha=M>_tdjfksa{A7*#v4yG8WX;hTCtvuRmj8GIGo%JZ8O97dLz^HnHCmt%ex=5W zOn=uF#I-YSwML6HTBXry&CwMnSN~mez0}8yLVlyz294HhRH)Gg4c8wG(wJNDtbZe> z@kJUHX`)!uXY2%glSTy^6>GG~aO8o1XkUzMVn#LZ1=VP@L!)YqYFJOnqJL;(O*}TH|E`*$&1xxOt~Vixe{~rG}AP*NHtR` zHcm?A7ynON%t{{or}q7bl~D4Fe?kf7oB#M{NXeRiYF~1v75~zV7^di7+IQosxGC&4 z(;hR`nrW}uk^hl2{abUzH8A6#nHtQr&rAmm#tUFP+s+JZ%N#LNqZ#`%j%6R|b$BNd z@75fJTgS|LA486t>6n?0n;rW;m+Al3mL(+Cg4%1Q9y9eq-IwBmS;xNiMHajW!AoX6 zjUjzzx@4w41JZBSdl4!y(>zw%0g z_M)=sgOaBbwf7XIe}&9A>mysKr9ZEYxZV*JvB>617=yFPTLzWC%jElN_jVjqaO_ zj|EjR6+u}i2X545;eOn1#B0M4s9|bm(Hj^t6sd8g_gJ__jUA|7KrUGHc7`BKyTHL3 zLoQjkMiH?ML(GOd7%X}pLlCfqLN!3HSWu&nimQyd3d}W&p12#B>lV6Zq3cF~QmK`;SZS-3%B+q7bXa_{ zy__Y>A-T;;+wjgwt3Jr!N-I@ZsnY5=Hd~HO)}}?IoUE2dleNdhKpPY{g>@p1JYb~; zD>Ygv6iQBczhq>JW-%#u@+E@)(XZFMrMJY2D{STp%v`n7Rb2k8y0QI)?J^6t%R&wg z{O`6I4TKyVDQ@!C-YqL$T1>aBj-2OZ>NM?<@1oQ#4snl_-hnVu{tJ2Slb#A9z?S zNvWZ$7)!H1Wli~+O9kc4d+HIrVHjmg7u9Ur8DfMAn`)r}TM5?#ZKBH2y zXP{CtjIqrKNfD5uQfg*|&-@!Rht7OwSVfnOPTA$_I6n3U?g3S zq#KcRE0S(U(xBn(Pv;JK+a4z*N0SoKWQLtG>>|@nnRedw`Fx%>;(4PDW!uq)7TZHk zVviNEIRf&x?+fWWqnsRyfm2weiJ}|&)o)Pq*p zQS#McrEBc8(oU=FwAxN`t+k7FcHL+_>+Q78PU{i!&X(VuA1-~bQK8C7ib8lz_v|z&iY7--c*PbQsOCF`5oxLmI0ZhK}Z(kd7(2Vc$w061OpIrqy{yzx+Cx`zx;Qwu`^*KZZ$4?cAfGT6DGFBiOtcrDX zV51LPKO@C<=57afM=b4#71gm+9qTyxrX7Mc%&GxvXDscE6^JBvv7r3sYHg%xzWmW@ z&G%m|lXeah8ktCQtoTxxv65*)23KXP-pec-S;@w%NZ7K2h1MFS4>Bv7q9__HS+p8O z-}HeL#Utb7<<;6Vug;hZ{$unF8bgmc?)`(;U7Ug-P2+{ov7rArJbQe+c!Hh~PCbj! zE^?9}7tq*Fa0BWdFFg9wa{JkDJ+68jN4_cNuhHK5uL8zCOY!t9JM}G0?VqD>(Q^}c zOEa3Q1cAxL7ot=zSm}4@hUyrv=(KqFb2s zBl;ozh)EKp(Y;K1P4|kQ!Qr2c7q2618%wV_uKi3NDA1lt=+85Wx8cMu>23Pu1n~~N zgSF8?78*z691HiF#Jl>8BxK*C_l)eX^eoQ4PwyMq5A*`g{+fR6$N=~^dd^0Z_z<=} z94|hikHl~Fd(9Y;f2W(p$MjqJ4gHQjcC33_p8?n>q{@G-)y51jXBB_K4RD{*A80)N zi9U6#PLylcYEEY@v;Kl5qA&FZKKv_2mcP+w^acHezNEj>-yA2$$!lx1PnEVZ`MY)6 zH)D5ihP`PfXv0!e!A6;Wc=$sPO)*i5iKdx&b9bi6(eaYrT_{ie{;`K-%Q|gDYwr1@3<0#Oute_)#8DuZZ?js&qk9`>?Ul9Vku|d22ChAU(3=B+B{|5 zc=@x9+Ox`ruVoVdZ!VKtHfql+mtU5bH)>BR14$B**29*rMC=c5HpvYWZP+<48Zw{E zw@IcbI$(bgw5KwmAzwS2?O&O zc$$G{6lzoGltQN!I-@wYB+7f6wUOW1%788f>&M*+8M}7WtvKZCdOI`DDRfRTYURA5 z_c5hMp&kY8LB3w1jd{%2F6rZ)zkY=-Db%Y_pF;f#H-qvcCMm4APb{lM8!^Uc2LoIW zHx;@XzRicDgk}A2@0fWxQHYhSh@d2r9>$JR&`6|mm^k}R$mvc8EWH>>)#sj{yE)=!Nq ziLGSo$zSOWY~9$XWa}?hX=BE;GYQ}D!mbe(pLzF^j$^f5<+6WX6)O9Zs!-WWtF&}W z6JC`#qtzsT{wUhy@3w0rj1%+E?eOF5OLFb@AwMSbw;Yl*{nS)>Zae&F7*}H50Y9Fc z`IX+sMwe-{OfybQo~E~)G>PTBG_f2@6ZsnDYhs0_Cnn1`szX)t-_=7^gOv?CuWVqw z;{M_Ws%As=&^Um5Pw_e%O`n`BFIK}c28-yLA-8rg6N?%t$?_*PV4faV^2Zu>E9EPF zUNYP|t#Rm+HPNZ*dC9VHXUMJHJBQr5#ENl4YL7-2weU@; zaO;6xIAh1lWZtgu89Tg7d&+$BB|YhsNj~tj7AGIA)kb{N7>v@)P?2udSF;~;__8+F zOf$?h+e~R@N;lISGtI@C$+(h_YPI)Fk5BtbFJ)-4nTpLuXWV4g>zK0HOqk;z>_I!&`UCmM-k}P|8ipM!79Jd!zN$-~Y zeXrJ{jGzCN-ph{dw9rnA;r%X)KFE|>3)O}wbr$p(MeMfV6zsu#d1R1Di1Hsrlz%_E=Q3r@ zRHW!p<3?tt0g-IO90f7Hv3ty6KCT_g5zT5+mVH}BHN)xc3|nc_@fJuM<=JS3jaJ%d zmCbP|QNGoThH3PhLK~Xc2Ah5;O{O=aiS>*tDQwoJV^94n`Tb+K=+%#ve>(b5!h5=$zMXgdhCM#NDc*?u7wN?9oFW=v5(^{2DKa^um;#?fgk#C&D)w(T5PUZijIkNnu zc2GGqR?cq67&~iQP?8j_H_ef~=P*Vr{aQY7UR$fIA1|xU(lQz7L1()7vi!IQ%_DCvG;D}QyWAK}YonaBXP3 zFf>!_jYeHvh}JjFl>--0!{^7zhcAYj+TSjssoi-+zI_Rv9?6lZm(au-a%2_%AIy>0 zFQKV5jFr3l;JGnDEQ`UsuRMltO5PenWieD9#L&(d zs*9oBF|;Sfu`;n_PQT_*l$NnF?+TE$Tp3eh5xY(0jYvw0r75vAHP&%CQTARL>MJv2 zQGi*odh=ZAyNUwb9w&c%6>9?93*_${Cdq$Y zLjmu;BHzCb9Pmr{ANbSPLwMVb5dQl&v=1Y?2dZW64K$Z2Ka>drFwmMKi}-(Uj_ks} zHt9Y6@?80io7!_vTxQSbIPehRT!&tK0V{s<9F*>$IS!iZpm`3*rCj;9o9K|qzn7+4 z+Wsdl1Q8V)!5TWxYDH}3ZMV(Xb}MmEiG#P@mdMMuG=FUOQD`<3$Eaq!yek%(2E%L76#V0>1XtFdXs)ZZ_(S16XQz$eMj?YuS`eRWymQL zoid?-c=IJ5@_Rs>;X6dnn6Q{+q7IWdiwg|HI!!2bmx<1rsFQCn^kjN!PFJ}ru zt3D(48f`U?PN-+nH3cM;87H5LG!GBe@R|tJa6tsEh@jOGv?hWIBDjWs6FF4FMI1X7N9em+cgjVP zMh%y2i8TL1OGx@k?_lFqcy|~FPk1Sit_KmN)p!L z@j$Z5KBl=vEu(93e`FmN;Z?C))pOf`-oxMg+H2h0xktsltc=cbi+V=a1HDg`7b-Q& z$YKT`Q1xd-1D;1V?gwpPa7ly1jJvSVn)C+W>XlG)D!U3SBUkTbiT{Ooa~R8U?H4+g6>m(oIpw_9 z|I)2GSf7EUMt$<~s8K5~cWXNgm|mB=H-~G8)*b_u}-gTkoNUVUr#gb^efy36(bZh&|}C9^2`9w4D`$(yPa4( zmyN1+AA{L_4Drkm&mZa)z7+W|uVDP)o*C+yVV)Uo$=5(WLgXVLAL*HqoS9@krzq=)RAJDL1woB#DC>def}5{#M^wzBtkueiW6qh{K*TubER0!*JVraE z+3b`!>70}Dt5bzlqMMtd0`pR)I%Vdj%sjhOng;o&BL5Wf`6)9$H0We#=x_iNpEY=0cS&TV90=c}#{ zN8X*+ySIcR@1p8dnJz5eNj}Zfh0EFT=+NN16i1#McZM4ujl6ExyCZ5%r>46^+C6Q$ zr#12(zQJu!_k@Bt%xt8y%CmS#SLzqx&wC++doYmK8j8-%||wNoMP=eG&s#W z#MWp~+6>knNnN!028!=$23}GUbY0Kn^Tv&C?QmSJOw(8Bv|_NhB5hXcFj3>G|Bc1I zTBqIA`gCE+t_8uS8^dvR_C|MvvzU+D58RQpR#1~wD%gdzxnOJZ(oNK4n}XiUP!rA* zn`by#3S1o?YNs*&JpYRoEUPdXpasRTdmk(itUiWB^rj1?K6=jBsDpFQ`8ZE zYE&F-(=t?Gdd5u2n5vAKmNC;as=$Os#R^nwS2j0O_+s~h;G0I_Hzaq9`?Ex?NtFDA zvf>DAoZa)hd^>MO%RK~5&QkIzSu-hXCTGo*EM+US{2a{~ZMmkh<@z{lKF<18*}_DT zPs>u3=~+{iHPfo1 zCuVHTP(`IG6Ms~!%F!%UIhHLf-LoJ#{G+fhN`LG=RQGVEuusJZRZ{iZT+9}BeNhtp zuvfC|muD2kv05XaGqvwe)2PsqFZkeSYt)LZQR|#(o%7q|3Pblo-Zn>t+T~1}oN1dg z?Q$yek{?H}`l>s^*P!Q}yal}3b?+>`1rxQ0o0Kce7LUm}l#Zs@4V>M&nMpY_IcKKi z^1ScO?sOk=&eW``hDX9#^Kh{K?&7y?WGUaOQKe>RsTomfMwXgUrTKY$+ct^m=u$IU zOXQ%@J&dx03Yt*L>W>ZA_-N;)#((7=8vnh0#7-?O-~v?Eo@Q#P`M6Xy>3olBGUSe+ z=TB(-p(0x=ChP1m-It|it#onolPZHPKPfi;7Hzq5pw|QL9i@GH!q2s9ea>J2Ji9D7@_?JKKStp>J`+0WGgsK9&&H0xm=NVo5to&b2pJy?>*$+8moU$p)VsK`umZLdC9!2T$laIeZ2msk8ti% z;{OGi?;GYX=8bayO^#pQ%%c+bdAetur*o9V2D6D1B`VjRA3=u+;#W8UGkDjuCy z#ZY}L@!zG^?>6-jwg;s8f97xI|LGj6&%^GOHTx>4GG;1FWlVubhu6L=*!-{yR>Y9t z?8EMZ&WMMD`yX+C;?BjkZG9|=4X9Zb^m)X+LA$&8kGR)rH~94pN0Y42=kGVIMjZs$BF*8$^ZKgVwUw&86U`j}Z0GwWhzy^Xl~aUu>X0&EQsH$rd?SiPc% z^NL`fvLo8CD3AU`)b7xW2=*lVV{B2_muSa z4}#|ZmAUkRog!%MAZ%;nm{yKy?U*)pLvS8`ZMDX4%NoC(W7;|X`%a<#hmf~tm&26o znD-si-Z33SUv=UM_do1svHU5wk+c58V8Byu9j(WvKjq$XyItGP(H5!NDYWhllerG_ z0hVc)u+4VN9LH2UX0BuAIeZoIp%x3aS7MWP^V58r28w=(gLrbOV-`4Ov167vW~r0^ z{GH&Xr^#({@1Wz;o-Eq~bTblu zFAS?h_hF*Y-0^z@JkF>UVX}#FotWSMt#C%ECwpeHUF$vghTGsFJ0zxg42kKUsq)M;&rG)~&gzjde}>k2 zGg#|=;+ao8f2LQk17w!R0GaKXnVy;Dnc0?n`N+VmNM2U=BXXGMX+(VLnYo^s=b2CK zVsPUd(TI5NE$Z>5=rEvaBm=6iBh5U_sPs`A@K&)EPHEwK+AF*_AlUpCt-uQDyi)fa zKZNzx=dw=w`Bl?exXokEiid-{Tak9D(ss(hymQXHpEDhErc=&z&gJJ;1}$0@i`G+L zvjCwY(z90X6}4A9SHN&9$Jul59Clkd(xizWr+ zTko~w_RRf-;RAzL-gp1gnf+$4<$d>uwY&VLFkv9Y{z#vXk4mv?m>4V646bYMUVDv= z7*fiR8Cn{Ou7;JG!KG%1{fZ7NmFVg(?OiLnI^Et~am9YnrW}8?0X2i8&t&RUU^b$!V8XbKOHS!tJiUoY1{A;L?ptj_Y3fS((Nq z*rb%8sgW?*#wFOP#1NAuOs;VWJeyZmR=yj4LGN(t5+y5-8a9hCN(v)2?{G>R5+`|F zURef}HIwz~k)7wupuVhe$pb`R%I&4fIha&4*|0W16}+vvJL7*Pt}gd=Rg&OH&1C)8 zD8+j=XDdp>M{`V8y5ax$eFAp9oCKFQ^{+5j_*WuUi{)p7fifnBlr3SdYKrEF@qN)< z&GXff+6dYr*XDaZWfF}_#ssUbO@AJ&F9r79M%)eI-Hl7oDZ0BxHs-_= zN!LrIGg&$kON6@qJ%#2$;`-E`6+h11Ayu3v&^Kv{%H_~n=W8JS+U^`A0N`A?gtMfbl{ zO={)x(sQXm*(70}YwAC5p0|o7lb`c{3&$7CZ_Nwk{)^_t(o1t?*}^s{nk39iP5qb6 z%PeVL5zAL0e9gRSUMu&1XMR^&Cs#XL_@>1FJ%qn+ijK)2{MXIv`6tCuYtF7cbnV`kH){-4dC(Lec%DBpncP4k9%v)q5nyj6Nd?(%HmNQwVf zSpK!CUvA3%e>MM_pV}0~lvubrD)-+uZ=+9i6-s$pBPGngH`N-6HPO2&TlC0vB8jIdTa18)7 z2x3i&NC$IiOo6}5 z<;0J1pp=jg;g;%q6W2=InJnA;eQ?6Nh zgJ;2PA7FpM6aQSdc5vI4T3&2laMiPA^@Fze)~m@of1|T6=Fb-CY)Gq7+zo0yQ?smo zRV;t;541g?asblC>~xdzrz<}HLajPpH5m}qvu5d~zYwZowOwFVQ%>t-f#^A6ItQk8 z)nDBmf38@~rNidM%slM#V}>hi+qSIy-mO>m8>kkEY7tb6V+I?9aB;dMmJi#Td3tHF zy_adxYL?O7%VU)EGXX)Y(A~)4>vy*27oSdFrRg<(TwDeHe} z*Ro&Qo>;4PT^scT%9AB%P^u?xuszYi@mcaFSohxHRMrT4f|W2<>~r5VnI< zJ7XLHa4w)zfWm-a&dQqggR%G5%9qh`PqgtF2crxa~=|>_-%Efoi+}mh08@J)FV>$L}eYJz4Yzj^XOT zT`#Aw9%O4Gf*053uf319=Xs$LFC_5S zm`RSA;*HFnZn|5Tc)O4M!pXda-zr{V-e4C{v)fHah@sMNB8e{S{)mf`EO&rrKWp z{JJL@y&P1b^hAH2C=J{?-c?Mf*Vpl`Os&kJ1!z|0f`{vPR}=Uaf&QwTRQy&IdG2%k z&&Bg|0v^x@cULg3j#sa~zAx*+3Ki>9G|6cx`*9FO{PsFt{nBvqgW|ly8YNZNd#qyI zVAeye(!UQP+6(sDZFVs(8DDPYY+fSR~K2RZi`yl8L_0#)GLFoH& z+fUe@r~LMuSH=AfBJF@SV8^)OYR_G#xQf}Ch~WJfYu<1x535z5)nsx+sE^&^0>tR9 zl-;545jR}jxa%pFL9G_qdQWQh=^ZycM z_lui;@$h}>ubBREyGTy?ABj46bA6_cvp60sIGDP*f&zRgW?#bWmE2|7LWhLUsTv-J zU^gOeM(|$64Oc8LXug)13n+FJu^hXN=Dmt5$yf!BC2(BajN`r1i5&2l`Tll^N-9QL z%%3Q{OfxZF?oZMqSeX?TDzluUIx{66&TbZOZmQbn@9m0%hK-J`xjVY7q)X>IDAstsYIl2({WiEsu@(v1y3g}rOR#=TKV3tXTp z?i1qP%+*5CB_Z8T40@;+>YTIifNnK9!=~t!keVl7ZDOnAraJD=jVsAK1)Nn+0*Ru!6Q&r02zPvnXyB^SC5#mPAcq5zdyXDVD{}(zsb> zn_{^twmfQzb!v)rwkgVNQy_TwOeOdXg1%8xtWXL zjGIkyvnAfZ->SH6akDjEVYU&uJ#Mx~Eo2escBqAR#?6kn*=bv7m+HGKYN4;xLSNYy zs%cxOI^pkDId?-aA!?yLN|NJEb5LD`~w(?BP-vN*5}V zex<5iiMXqI!f?rO`n{JEg?-rMDW(N6Eipt7V_I=mz!rd6n0<)ssH4dY>TPPHZ4{$2 z3GX(E!uo{YRvg;Gp&b)&0yXERLb2Ael!>IEH_d6)h=>2FuU?IZ*ksWRqwR+`RG zc9Fib-xdFuiEtMDKrtU+x{Y{%Y1dLC?UTHZX;(_oXh$>cl6COV7wP&z`z5KeA5x4R z%3+6!rY&?~dGi0t_$1XsD$PqVApqK`tU^=+#e5(v2jP$-;SXj_!@eYuUxRRXcseLSG?tZM|{>oX=x%mkWSd#0W0@twBEJ=^0`lKw=Mbs_}Qq8^{5 z6ogJn*dBMayPr(IV&yH;DO77JM_D)&<_-;Us#B$iDjugLfs(lbKV}O(dN_#j~(yWmn?w%1P|GOQoc@=Gk=LoJ`kwfpiO% zZXwi*So<-}a%VL#lx}xUDjK_$j@MAFyhq))hk$)a>VT3)mn140ge@fHp-?fDlW~7Z5cW{1atu!D+Z7kk6TH!O`u)= zcE)-lzwgm<-$aF7p!DVye*IZAdA5fGKz62nEu``p2 zaJ~fVr2>K|kO+=UN?(?z2H3QHlfbOaHha+K#^efaeqfUtGQvUfw zVSroLzo5ViZCn zB*7)+6?cVS#>4`{4}_`!dKsx+{T3UBS-V^>5_CWY@Iok61biV#nqJ8!fG^N>y_3w; zyLY*FJfxXmit7&)zkw(hS4WLAC`scG3d)%#Tt^e`V0;9){t%H4A?u+@>>IFpkck6j z3SRpuD>*Vftm+)5Iw;$q+-;iz^9H60NXI4(*J$p>S#B6TFh}qRt^=1Mu!fk3L0*Z_ z9mXYrcZeow@;)NgM{G;kZf%G;QdC3G9sq%OaSBzOO6~lQRnIE@0ks=Ih-m;%0O9>{ z(o_k>yMaGLaUgfkNSaTGo0$xyp&)tRj{#YUKT9Q>m5eszvy+8=Zt&Re+&Zy_LB)Nk zn{UBKs!DT|((F@37bXQ+w@9fLQH#Y%!?lpRB{u1bcat|&IQv}xm{J`h)q308Ej@pQ z(yV}TWzwun`m2(mxZ`u#V0@7@tCHsPr1>K3`!lY;TI8!CUz0Rza0Zbqz+7d{*^o3}(NG)J1e?@an{~G(X*MR!78+w~(rika z%}KMBhT5jM?MbsOX|@x$gNDMWghtZXIq&*AmGw?~X?`?zc4_Poy6Ydt&TfW*SAo3= zw0kJ#-lXB$%^kBM#oMol{XBl1G+c_n_T+#a2M3d8pAgfdaRBvkwc&A%10jSTvMrCD z3U3kV4qJnjL);xvrv6by9Od!Yy-9OSxa&YzB+YTl`$W=?Vt zKN*d&;EjFmFDf)l%y-csxhUQj86+GFr2I-yFFe0Fl1bAX^|1F`!&S*$3m17qONF=O zsg-NE6yDl3tz8ZEHm+&mnl^4!MeEhk=Nc~Il5}!SC(9apoA$E0iC9y>Q{sIJ-UB?%H_JUAgB(^Xq{1wxt1D|AE8Xel zBHig8S?ZYXu4bQK7pgtKhv<7i-_tccnP#B({9X#|Mc{|7`Ox)yyC!f=Z#No(r0U~F z?`mJy^l?pJw~61+Wo-3#nT`UOA%9DGu86ORB4i|m7>O`h-bw6jBRX&Q=^gx z{3;ho4GNG*bI^c9{c*YrY^t6suxpYsW7&nUeN>Dc{BPJBGKIZFUXUM((y)Mq3rJmB-+jfnL6XA`8$+q2dQ?tW~b}#0su!S8@tuJdt9^2HM?E2#|6h6CC!w- zSLAyk-{%^>0{eMyQ~uWq{F=Z60_5=zx@NyyAzYqN^hYw#c|5>*G*}M1=8!;nfbq1? zM_mAW%u$|?x#oxqG*1&j^TfdAVZfZ!-6@OEa|)8v0_rg*1;^6>R375K6)unYmbkNw z6%cu%8NH%!3TPh6b&gTIJbDGs>lGvvl%8lgkoUprSxm!-G{ou=M$ZK*Q;8ZV8q_*4 zZO*~`dsc;25iLB^!c+GM{GKE6sC!y^V$@3Xt-PjB`lz~cwIpd9%L%1dwqZP?49lg6 z_dWBzKYO$52(HK&`I`C~yz+#P|_8wy>Xf)WXQ$Zd$pI~!FdR$R(wdby@XS!NW z@0FTPlvJD;)*mRH-%a%0pz7`!t`E5DVGG++5j}YfJj11kUY_Y?8DWdlgNhc5M7Awe zq^nvIvM=25yyAc8MRQ?q&wS{a-d>Yn^@ddA@arHBNVifYEH39t35NvGu2)bf3C+sN7X}`9^B2h>K^mGa+zsbtq+Vf8~6(qx5zUK zJ@eB=L@xGt9~P?*w8CkbE?R8f;jD^Yhov5`!xEWq7GDR1V~o{wQ2v8-9j7uKwEsaG z@X@s2Mvc*i#sKFh<*&94y+$=zLruQ)4A*Mz)+(`JsSsT8xLyjOIuM zK_K&F1shIg`Yw-6OIw`X9fe<~TIgnU+P3UlQX#L1OM#rGMUw}RtczsDSBhu!d%p9~ z>?!x(LsL3s-b*#{Tcl{&mO?CUr9Z7xrUkgdkf7y*u1_ne`!taDPfXfBR_~|We?Mj0 z_5G9`d5ucm^4m+%q&=D@c+{v7-p!$5k%XqLbD9b(o9(Q3xJ$}(N}0|n(8`iJJ7oAxm%<`jU+Y*q8>W{#To#`s_T zcBP1gK&fdbtePieg| zH!Lii*aCe6`*-~gdQ;l-rhqNVI+>fcx={$a<6+2p+pb5_{%{p@I1Oa2mHm;af)(#Z zmda*i%8W{x(J35^#0nML(*79HkAZ${%8X6<<5C5fj91`z0w<&l-}#9tGcIK&(jdQ3 ziAdE^HSSbuI`Y+_#*Q+hyN61JA=MBAN2(&Yok0ZWLmhMj`9f zO${A{n=@05C{9lrLMglp$N}iRj{t)-X+86UI|Uc2l)+|7)d}A=UU0#7vdUx zxzl5F4f_w2>H|_$X7rkj$p~GXITgzF0vHEdykKS0K#N}rv^X&1f)U>+&q8n#Op_GJXBo&Z)IxYsmz>cFfEQoVpQ@w&Cih7url zwPYWN>;odZr43hC?z)T2??FVcZH8O7qDLv#D5eMH(;ALXF5CgkLqir~Oj4{>itzQ6 z3>ZBoE+PQa6eC_(2kJmI4+z*N7^aWXg~b_vfH({w-N3Zr z`Y1U3e$sXJWr7-wy@pzS4i{NabG%pQSCnM5$VWqN0pQJW?koVjGVFz!0A+|uKF+cq zFZ%INO-LKAaom9m0Q>UsUj4gC^dW}YAOaRkNfy0T%H9Mlw&Qg_zrD?#}qmhf{P0>{tGmM5BD1QjA;Rx>EXK5e1oE3u153#Z^*s0FSVuu$Q5)kRR zR&w`6TBTX7h}Ar?1rZpPZR;0}rX|tBhCCbOL2TtpiU_E3T(uQjtcVAgf z8x^sU$4zO&rHIXGv)T4;A0WwrSd1Ebi)FM`^jo3YmNr~lxZ7?S?NG!H9(R&IFbj&= zl{UL9r@p1aCG1=50cy}sJYlJgIw|^-P@PH}t`ppywv5gw;tY@9S}$*kI4fsw4AKhe?w)3x7pqGRa8<@D zK)_;qCU=hUne)$!$9Ym(n=0JIAv))kbN!2oxX5E=#&9VD+p6XnbuSiH-vOPO2`3w5 z;r>AJ9tiJ!Io{?LnTo<0GzFz&+Y$^!P#w8iaMwB`$tyNkth9N=B#TQCU^%w4yg_%w zO6&b1Z>aII#-SLz&xm*XOrdQlCR>DcART5~)^ZCeT1JAm&Wh-qsc7nV$r!Ho&~(k1 zu9o))8Ph3aJ}B~r9K~g}ZSZa@QA@XsoFa4=i|(ZBkuhA|xa*14ljjGD2zcz3Ffv5IxBbv@{&t2!!u^M zZGaIJF=Iv)8vyd*;yoPR6S!%_D%u|j0~C7G{wQv4WNG1J8pX|eqLlyWOrg5eAERu> zz=UiAlx$A;BZU_h_P_rshv!q z3Jv|`6`9a4A`>UkXnE%Raius(G~-I|WX40tCYOn31<6*@;W>YmxUAyw^NitA#1|R! zh3%Bp8M88DR;y8z;Tn;yf#A!G`7-0L&0zDsE@Rea%sK+s+x#kcyRbpyVSJR~hK!yz zK=D;Z@7_jn*~sIjjNwwm=8V~FGu)CfUuDdeVuqlXGMz%OEn~K2glk&ORx=agnKGB! z9C_y$A>2<;hSyNVUGn+}wkh~j_LbZtHhXy7n=xFwdc5q_t)M<%EBtH14`j>%)>9dJ z^iake%$P$2ek1M-Y+2QDKhgFm?)5TyIt;-P`z9R~lcPKy%NQ<29M72JwhKW*Il`cd z#=;4k@&p7YGlgJv>%=7$dN`9YXDl_|7*A&K$*7S->An@?Zy^9_^=!rmfOR<{$q03o zSy9Dvc;B$;<9db7tU|&F%Cb!iMsl++t5UVpV@vq8%9>VLzjd~-o`Z+1X`MA~2yILBjSg=i zW`^8PjY`!ntEYAlyr0!O+Fo4RXRl$6mNi_8>6kSgZLvCK&HGu?Nu?sk;Ak5(5q1Ge zk_}yUvUIbV@Lplj$ogVbvq6x2~r$>B%D&;#`WbkhH2gsI)xVH_pfVlEpu;i5R7DJiMYvGNG9 z9uZoDl=vg{G?FK4Cj!nblNC?af@HLwM)PECOCs3Y$m#^_TP6|WtUU@=zbIJnbh;GP zk8wR?IdmkLe8I$JuB7l2vSvcoub7xM69KLLLsnlK?153KAab${gJmI%ZSef3v--;Y zAKPHefo(cImskZSFb!@hBjM>R8nb3b7{_P&6UBW(9QMI8vpy!mvuvF9j9oa>n4OI_ z2y?6to;lejezh89t{m#j)1ObXraEgr#jDQzteKlN^W?9mfxkd;3$tcH)+{7$ky?9E zmVJc2B}Yqf>qGn!x%9!0PkHFahghxcm#Iw4DARIYl;v4G`QWX`I=7TVAL3Tfa7USx z?Y0)zKH)Jr?tNCuy-yR|`%uC!l)-BK!IclLe%6r7msvdg;N8c3NeR~~Ze7-_&6;(@ ztyc-x7fX1o)ZdVmh~lfP*^o6~L4fn0jf&QWcaw^-i6U;6>mNA)!uwC?vU01Uwo<}l zwuGz8W2RDn2W)>tZOs~s@oVC+}XYHYYd$Y2}*cU+;mjjqZ z3HKLEc)S#QZQ>8eRvX-`avy-KgSLPOln<#ChbZ7TS-j)=z-QqgH!L6^TAagEKpgMT z7Y_ih#W4k@-H5}E3t-C}huH}|SNJEh=2+I8B;ZumoXDC}l>W3ze@1zKt3PM6=5*Ga zh2&h;oXMJRv*sM7Kd-n8S#w@ai^?$%r|{nu3xA?iR^l7Mg@^aY{U~35oBu~S(?4fEB65HVIG|X-Q>FeuB_5PB19N5&@q=?_uq|Ih ze~1b(gz^o|nV~sfyTnR25<> z<@-2iKF;}7Ia5_E-!w%{v-Wl-R!37K^IJ_HFV37QkYa}1Iahtw(d{356kzhc^5U8_ zH#PNdHaBC6*0;m_691Nh>)%=!qTAa{BXf(n)!b$g&Z}eo525~HQ{21W?*9{rhmicp z{1Xmd0U@8>+5Pj6Ew2AB3OD)p7dqrINlSijk`@B`KN#|T$o#_GZyu0s8ra~$^IhD} z@4qmNEwpfjljaXieayc6Kbk)>Yzrr3`IR((YAVYwziFr;VgZLkW^WjaI&9t$Jo#H) zIgH-eIry-vTW(z`lz!kwt`yqFLi%>{W`m`bX%pcJ3!eOu4_q(istlN~5A0T>%)^N* znJ*8jyVbb#n)#~gC`^<5(Giz1F*7n|Mp>V&V{nc$Fc{s<{gDG|{`PKeJDc?z-HTZ- ziV|TZG|w6mEsU8(vKUgp`gc4|dF8#~mh_HUsQI zhFdqRBV`z3$I^g=>_gCcA|;j~V;syv3cHjN0}w1k#yO0sSkSGP+t#+_l^+&M{b|G$ zla0_89cz!!a)VO8^kK0rx5fRf%3v!QY;(*u$KURN+@(^lL9bL%JBZpTtYoYtq7!Uc zlI)2x0MQHU2@CTjXfN7wW^cE?Gk7)t_3kzY0Qnhxcm`E{Z6EiLbLy&KL0`;?XI&MX z(QnWoxT&9eq-=dhDutpts_kg614g{Gad1n2cdIjGXi)Pb_xidARqGA1jX?Jry=|1X zzl!HSzdv~7BaWf_z8miiRVC((;lZ=xTF zZtNKB5m>Gz@)u?VZw#W1_-!}Hz4uuPTR3C2RnbL*b{dma!k^CEB-*GVGZOlWVSA7M zs`OH4a`u_XPsiYWR-({BxzA3}O=z%M<9zBATsfE)nXxE%aIkx~3f_7!1zvD_FkQbC z{NP}BYuPj(T(RVaC=Cf|}VT9PP8_Io{eY$ym7 z-R})5hpIhp2qq7O-3YPkpESLbreD(ZPm0~pVeYd|w~oPg!`wQTZobJMDVI+9g{5-u zG%A^&Ge5X-xceJt)g?iz;qJSo`@~{S(#%Qbcg+kkBiu^o^Jzhc5w3B%H4es&Ah#Je z1lvcDTdz)#97d!!%@)By&?GhDCpaY{sSpOg?PiF z|Mh71SI*97gTbTS#?E9DY#mL)VU2_Q7^a9>Hv~<_xJS#*s7&)+v}_{iU=ltw*1bAQ zEl`?SA+`8wX#H3yXZkc#3eMGo0E;??E~ZZ9EmB<^(W5 z_Vx%KK*h*uHza5}!M)u%oeTO;AmO=8@c9JyRM{>itkTJPcs@?Ts;?%xFD9I|j|Kny zvAd}D2-S}BA$wB9VG|yC^8N3qs$B)Ri!-ZM@T2Ll>r*56<8=2#*&4CKhiNN$ph3hg zc5lvbuZzo9T8~+LFP8o@fZY5Zzbe>2i#B=hpMv_c;jqC3kIZ(rm(3Rk1bFAtlG9xj zhoCUW{fqM@9xLa#4~o&*IU%EKtNA^0Rq$xF`&Qk)N;o)ExB+1j(j`fjhT!ybVDM$N zyV*H+eK2J%uXcwa!MVBabFcL(E3~bFM14E-Ny8mJxn*&;#NR zD-MyMV^t>K;Z4awW=a&2Ul11)gdyln!USQ+>WpL{Ycl!8&s0sF=hlhK;lqjr?p;p5 zi9u>1zzr*B1UK;e=RL(&aHI^o@k z3p08yb+1&tfV8_(^}0{Ldu9Z$ETx`%rUeyC-ODebsQ4$T^bf+De+gG zVG*L(zByJ~tSVVz_G9tHO0s{BvR5USx$noEK1+hG%b7k-mIY&$yL<1boKKrIG$rN+ z(=gw$o(|zol=wHAxVf>Z{{!;_|E9wFS&-aZ$oP%SP3C6PD1WM1u;erMI(Sqa`OK{m zyW_~GP&^BhUz=wmCd*@3*vG%OurKToli%{Wc)|R}U}K+e@pkZ|l_8Vgu5=s3?%yUR zt!3}qDrQ>8B0fVLpA`?bcPt^=#teIT94+h-Gt{*3>05NM(4N&yvqIb8zWXn|G+4Qc zcA<0!SGmu{e!fbKr;72En3-B+d>;H%G5#3FRWVZ~JM6+yF~$NLd#@NK*=Bmo%!uVH z-wxV*K}W)I#uwsPEsndyk(JM`B1fE%?iR=0aAeuD2PKSH;iNdS>dCO=VF45_bn?fW z1<$MrIksIRjuXVOo9sD1a7;HRsyv^h?hYKg^Ud!eLs`EkMy28y$eI?UP)un9L5AiJ zHVdv<8*=>hS~y-ZKpd@2DMqGX-gK-NRIhXE)onAI@P!TqT4bSa7CL5;lW+bu9@@j? z*REIcE=rE~1e}>U2G0p3@3evBU6mYo&$N#vB@Popc+Ydqf;k()hQ!U#c>Zv+pyS3cdG$s$$B}uEtyFT1&{itB24)9O z_GNMG%MhW)&F69di+Ev(IIfQKZN;|ii?~@G$G$ATzgh6x%^}B5o5gXPIR1lGQpjJOtXeZEfV?fngus*4LQEBRUB7|BP)gyRt{P=gdAt0 zQILS+I6lP~)Qrc5F;SQ#juVBjgOv=XHKCczv1Y;PZ6U`WY!}CBaoi-1n0Ra|a_pX# zt9A_B;J8KZ*yXEzt~hQ>FuP*lfyu|Vgv>mSHVYQ)2sxhFA&wKovAxv0-%pzM$*7D6 z(|(5}96O*`-7#r8CjCyy!Xk0(oTOvB{Db*Io412*yF!i&cfs+J0pf@XehE7HsN$<* zZ`(u1u2OQ8?sHlipo%}+E)d$i9lW|HOx}Hul6O(^{Yt(siTb#bf47(9o0J^A@U)Lw zIQrv<;1wC11XuLm|iIhs1G}I1csT2;k>XFXDK8LnP5JwcGaI`8#si=%&YN9~}$CfB3pfJ@6&B9cngE+QHF)mP= zLaoZ8CgsmI3*yH^j&~e~<0S*ck%bW^WLhApV+Wj|V|yw2$0-^O9U8Q3SUy#y@+X=F zpPvYmCr&DP7bQo{qXcyiDSD9n%~K>FsO0E$r2IW8vnyqGr_7#IzV+LHc!$ZqIHly3 zO5Q~Wwx*F>&Plm{VmAlaHtK-!==<=R=P7oEOJc;@B?($G#bk z79)-`%Y05D<9|Peb3`L=Hd{}%J?hk97d)36dpR)i(tnh=gb zKJL}4yI#q0N|%uIoi!ngK~{g?G{bdyn7mnB$-5{yqTmvQ#E68Id`p7lo0NRB&@qt$ zBNs*@j4b$Kv!G@&O#ZW^l2+N8( z8z#?tN`6FS$jM5Omq}Pg^8c6eZm4?W7v4X|oU!AB5%+u7I>Vk0R^0FXsOGAzP~QZx zz?+T_sH)Y(>mG9^lm)|o={0r6JRg)j;9alZyQAOVMZfK%-^tPM#^^WxU`T&c^n2^$ ziQ2)xJm_66CS6Ot+CjhQ;gbiw+ZA{?`Yr!ku6FRx4~3M^J`_f_kACMwzsIBB8-5kW z7oLQD`LDu6ouk0cv&d#c6!>PHJRl|N!oZWBEGuy>=g`#X9{@YhF+EIMkb1T;!VM=Zua8nUSW zSjghh$6(Q2ECz`M0x5)3g9X46eDGM21=6Mxq)|wn#NzYELKgQt9 zG4`pD#rCIQ(N`?qk252*7cK_K7ix>^pDwZh|Dwcnikr@Hv3ULIkj0v(Ll&uLU@=rI zSV|_elnmFAuz2K|B8!n?F+wO5V$ty#?=P;#$2Q!5y$L4qCBF^_$gRJI*GTcg2bU|E zS19m;SF>Lic>&4*Hj9uM#B0j0!{S{1Y*?IMKMRZTVzFK|LKJ2NVyaP}XNxRADJT&% z!Dh>1n3bbh zYvpCbEsOkbi!6|tl^{VwY$g_u|2AYX`?n#BW50#P=VDQkA&Yu1!eXOX;2A6{&tOX6m7@QPQSTmf zf}{JhWx+Ksg}r;p82MRS@Jb7NSvKaAN$YRrLu;?llSd?b5C=E?W#lrtxkp*U? ztf`V1l8VKvzYAHc{9VW*{(D&T6$^Z#u;xvgQ%Q3=DHad>zR2R7Se#9obCyNh--j$t z{XS&zgFnDxq*!!ud6m0H&c?*ztv?i5^w0vkyNd;*N-_QqA&VeI+p^&CZ@iy7L0Qn_8}Bu*Wh0ZyFL@^T?i;U;v*qrf&SCGmUu?ar02Ezg(l%}i zs`B0bJ?0)cZ9X6Ke?s6-n)>&ed;OmlrYXbwm?H{>YTf?K{M6u))BH@b{>sDNYrog= z$F>-#h&l5_QxFlK6daH%fWCYT z2AvRxfbiEj=68viE;<(qjvn=D-?>lxy6bcb515uy&zR{JGu>mRhhY9}A@DOMie3W! zGreN+Pkiq&&-y3s4py%C_k(}`nCTB#Zme)bOi^o1_yZ%RgJR~Rm>Cc=Kmra5nIgR( ztdxUEIYcObKHz?5lyX?i42>BM(Wv3fW8P$^dTdaB+`CNPh}$0byqFG9x}HFrm*zak z*@xJC4?-sZx^*33vpL2%+!7UFYs_ql89?bm*k*cZ&k0sm9F5dCiIK~QT+rks%RbKF z{&v!vT+g;dOD9BgGw(U3g=1PeI&!=JR8)XRPkZ&Rpa5f%I^*Ib*!iDlTnPJGo%ZgH zh5f^k)2EL4FlK-W8}>@D_Kau!6u11=3;h(Ik)Id19DvI~2Va@~A;%ojnN!gGtcSDf zan$IjDy~61#ubDVXVOH07Bwag zid3P4avCQg(D-;*Mi8UM3RDU>DbSf=iFbxBMqNc_{j4E^!gDQP` zr$r2=3quO*s0a)S2CrQ3>f|SgaF%>`g6yPW(&j?3PDq|CS`vb(P!Od$J@sAGX)jz1 zN6jW|q?G+pvgaFrEG`(HY2tc9*`JKE=QGbD;6&VU+DcCzZ8^#{9TI2e)C5Z4TGG21U} zRffal>J#&PJMnOeH&llESm0x)uMB^lP2KKn>Kwe2EoR6$TWH2^P1g;MI?3?oxhTVj zOT!EgW@T}m`=1uq2bAG%Wws#5`R*r`OesXGHWE(QTdKO1I7~f)YJ6;T!=h2H*%I{5XLvvfc z@{HMk%@^yj*o%x-u+*_+STq;X3>x9cr^2f9j+4OD?gH8<>bf@+xY7bF+ zJ+s%tshrpRs&vpo#`$pwPt=LJ z_&0UK42RV8+oZ{`4FWJuMcbx1AuSA4hVQ4zussG5`ighZfhh(`GEVA%Da*iMeBCg^ z9d(Ntjwt%985a5VREFc~6`P?gZsC>Fr{sjB4ztMxX|o`$W>{T6YKEGZr|LgT=bW!8 zyO7-9?Lx2#DU4UC4yO4cVF_YOg*Xpe5v)W)k)FoQ7<8PK@*f3y$naS91(lblYFB(L zCMVMczNQfqtT|4ku>+9}$Z1s#aK&2w88P|Z1|+oq(AsfKE&rUNWVeBh$N4k{9))RQ zig^csY!TB+6q%z#VyrwY(^a+n=9%EKD^mIVV$rwEV4z`IX7t7T@fF2J?47|xLgo>@ zWC4K%gBme*Wz=h#t5Q-lsk;6u8q5x^X?dxxgX70i8eR1b8T8cALRYK)H~8#!aLw>- zs$i|3+IZzW6qmZkq>qdu9tW}AqyjAMr2cIDNn`mZj2hVxFejnT7%;zOw#OUt;o zJy5jB-Umj~k zi!VP%CUU|~0Fq<2?qz(8$?+`R%O(%INsO_+$Cv*EYdT;11~j}$Tgkt7eW_uh2rV3W zDYv2W2CFa%)jR{penX;U&ma@k zaMVm;+jz7Bu4n&sow+{$0Xy#yZ@yK`zX6&XfRzOQ7+A@e->{Gl{<}}QGT7E9eeDfl z*d5T^(YS=y^o|B1 z{{=<6Un+g&eiPHAG@VNcX#SVb{W9`CX&w~aL(u)o;CZs#f7m=+ngjI^aG*z^d!(tr z=>5mcW1@Q;x+l!z=81Ccxk_v1YGezGN-kmZl`u~=6&$^`U3uiBf4C%h!_%aAffRN_ zRSwAfOQo0PF10HDFO%Tqrv5AD75`Q9s#w1U;qT0A=6B`(@6GQ^>*ng99A1LfVd5XP z4y&35+b&67R&l1p|1&XvZt4RrkCUA@@{^nTZ^Gg&_GxdG11kU5(kq32oB~)rVal5d zTb|DS9^C!k)PyO&846Z!L-2M};N}0_;FITjnD=)?kq2r%VcrD}Q+R9d0RG5tL+9rc z68{@~-U#h_%J<;&5%xS;jzAzcBIZ|+9=-p{m_e7ad8{xcn3%q@>Iwii;Enuy*Z)8P z9|(~V`4sgPBeQ7o1YGcBs(kUq)uVVm{w6M0N0} zt8P6QOw5_@`Bq0p$&XW1h@|ELlxrI4_F{R8O8I{rZg9whLP96526VGigZ zBYHJRb-37h0M2v9afHsRII4cZ=WL08Tz4m8=BUu<%LO`b4?6&!Z{VL&+-afD13h0Z z$oVr-?|rG>`&P1)vx1*D_=e(@I;U*O?0hE{}Q- zaC!h?1yXN&&thO-WVaXG+Bo-M*(kNqDB5U(T0u8!%7L_+TmiZqy?10v3M6fg}DqfCQQC&X5n z20a^$I&EIJK2_`HAGUR5=#3&MyzdgI^lGW+L!!cm$6)}m3$%>dv#2jw0`*eg`&!j=fFNJB1P-v0&nq!<`dxLCQ1yuOjLjM&i4yR_?Q>q#Elq#BK9DlYG%`)UU%B0@iN>^Qwdv&;$EpzBhOm%vbM?|tpQ>|Gpu(E*IMp2h>6d^8pjzta?HlHHrV_vNLQLE zh#V(QBHAs`q7uH<3H8Clp}k!(+vyw@oB*3y>YWPP3H2_k0WLN1-L@=y z6tRa#RKvLx0f_!Sry&M*`>m>Yi7q|V)S`CZ!I8G4!mLhG5bgot0aJAsBb-d6kczj)^ zez2usuI$!caUndQ$we!HP;bHfu{S`Di9il=gqvIum_Ke6TD@5F=I7u%QHds!s4W=( zsQZat!2R9P@Qa5){$c<2R7_7$)LFo%{J>K8QdlpjKa3l$fV6KkhN&#-jME50S^BoJsE#mubjlOOVW}3$wNh(XISg1^t+?ZBZ8@o8{<6 zGFsb(7S90bEx72&Zqd%CPN4R4O^YKo`6NzlgYFwLH{VKaCaaMq(@6W&f7J+G1;kI- zTvBn+%T>+Yr(zd;vmw(cANQvy%@oo=zON+Mx-xrNHox~Z(k}}Gj->0vs)N%<(v2!$ zH&x_QA^(#=z&WizJ`7d{T-QiNF+{+pAI8!TZ4*G@6T6n!b#bupb&^by4GP>qAVwBn z#lgJS$@0c{ewXbPQUQP;F4{O=wuj420Ku0L7wGpTpx@Ii+XaUY^gT$h0>d}k1bN>8 zY+Z`qmyjl=7G51Ycb&WskQh0Lm%x|z<%3DAxK__g#We5 z`*r+|#?G#&lMaZA-~(YNxq8nI#tT@|91`vKDD^1V3$)sa^5j>m&z& z{!EEqsol!|0-#TbZwp2I|HGe$dYW>XMlSDiR%plQlmsyJ1hz@s;p~g54yT^RXaedwXzpN{o;h*USaK#c_Y#1dY`+F!mPgMO7G^1y8d+KHl5rSs~tW_ z$d^JlB@qIBcNR4)b-2R?CA@kn;(HI2Hli1E2Wtncu`O=>hZNCH_)yOf>lv_~mXPk^ zu7sRa0!jnBKCFEbe%}gwMrtjHYf1;dlz6EOol@reb-?m0At#k`P{{<7Ftq=`gqRFc z;2;7AgRPMOx*lYEGb9mxAxJf}__AY@GgO)eO;9*sOpXwk{Yc%RWPl37sKiU*V9S-t0D`Q}TT0#Kl9kvr34MNm$ zkLcWkiSDlx(se6z#35jMq0dj`u1e7KYB9`x*w{`hwiqSGHe z5r?L8(%&Yf=TOPnj<^9yDLqT!xv4PicO-;m50hOA+(qDS@ca}09+pEae2OEERC|jp zxi4Y%Cd@usa=(Vs*J{oKy5r1hKO^BFqv{Y7nKipQ#E9eY3Ov{7unIg^jkqJl5jQ01 zbB?70tUDaQee8(i2&;quPO<(z;*K*=I3^Y82}*fViYT0KF^?q*l8^U4DyXG~`+)O$!~gHSt>sb-Xpm;z52z>NarfXn_vNaLA!U zj;0Zy+IFXfTFm;S^kUeTak_;zxm73!fhWlp45b*RD#B5b;p)U)_oV5L5+^od6(2?8S|8Ez3SK#0Qw{l`GnOCNC!qfS5NN1$R|r|+7iJ7Z>Fx5t1q7CDfK*3 zFSf(%L{f%tAnuUhqonyL=?_R2>>hVul07Z}`U8>?g1+W8j^qZ5TzL6Il7>zmnk>MB z(?ljK0_}mKjuMATe}cbpf+`N!|O-?j@V zU!)yk*;S*UfLMZt7l8gY)AT5&`n--jkpcB#yr1WlFad%&FDDw_UXarLM}iv= z^&|76Va`3?f+Qb;g-NjoaPzr9_n)w^n($(A=yMYay#sfm!GSyN`&dv^XpNo@3j8%m zSn%OxP_65jG;Jyo4;?=7>xti>_zlE&H+1`bQsTyEaiLYP;BQKLn;8b}_#neiVY&n{ zzF6?LCNqN>HRvrcWa5~H?AyeR4>i8+Bczm`|{zsDUZ61 z?2FWGi|DqE>i!Q*_hXNS9z(gYGE9T{9@7<5DIE9cFa)to<3|Y?s(oZc12%;Te?nF? zO)N$9wQi{y5;J3(!*w5Z-6TVLKZ&mUSiLrxjtSl$oNjy>Ju+QALgWn9HiP>sv#l(K z06i64dR@BqA2*_kD6NG0=cJ&gcZ>Op>;1W=CG!kv{k&{TntO}&jEiZBI6s|VB z1ro4;VhbUrPhk}R)0U~hYlfSVlYnYeXbFY(nfcT!ErxoO4l*tm(L9{=zS-ihOtHl; zOF>UBYWlKpa&<_1->0UBmflCkTFDTV{JIpR^WvO`u6})Xa#2d$^98kaP`NQBj`@vr z(I!os&Gb`nvKb#Uw>&##K$z{2z#TkmhiJ-R#gIb;h76iAdYg7B%P#8NE#n338DNeV zk~H+Xf@MQt`Umv!@XF_jLZ0?~p~7b=mg-7MCl5{ z8Gn$!4x0+#kVm~Bc+_ylD*?jzV`jj>B0)BPJUd`CXPHDVGo5c{&dY$7qM36-z$N#k z6Z8wi$%(Hz2b>b8FoG@tQsNXQitO9ziUETW>0$0nnN_Z=@Clk7V)$!w9ym!yA4 zCSSk?ybTQPIYHws>}Ou~ma9F>X-|nBwL@BdI69_@>qyQ{X~^PT5y*Eo!n!D-3&E~w zmmei`OGEyy7qEL8R(L4lvo9dtStNP|q9=sR|9Hz#`5u%q-0|MK*NFf=^UlohuCOJn z@ljVm84rVeuXHo9#zQKa<|R6^B`tNw9gx;b#8pn(FHd`eBytcU2d7d)N=L0h_qjp_OMSuzd(S2d10jjv2nhs z6L=R}Ai`Lw@S~KmGE7eU1UJ-MN!>sBgGQRhJw0F1-+V@ z_9629K1aMem0IA5$2VJp5$Sr`bFdqLRFs0NDY#JunH&3TIN^z#L-x7Ge5QoI=F!@u z*x}Jj2rfvw{3rp#nuVrKnAgmckxkeiXf9c%QkEYs>l^aTg*Ki#7BgzLm%l`^mLOqi z+T~|4e=SSvU0<$*FvD=jPp_GSY zo^2K)wm=^*tR7T<=3RnL9wmq%%<=pv0YdrhMs&GhmM_nW=FMAwon)^^HWa+@C8zz- z4m|V3?WEwYG$u(f&C4o@85(RGnKt)q%q&P<$+Urjqg4=Nq>6NK;iz=&8qB6ICE!bn z9TZlS)c$kbw((aM8cQlQC*s-*GH0>TE@;IsJ^E@(! zFFcBKiy>G1D&mvp@Q3*oyzy)MT5OWDobaecVtp3_e69%KzZC&I+aJarJ=lhGR?P34 zBUu=vrsA6k=&hZw-cwowttn^ z#fJCY?LuT%QwNi3i{tY5mZ%QM-U)Rh1N84F?cjk`EczPh_Y4dCdm?R?@E`HL!$c5> z@!bt5+s6oJRzZ==-&-T$ki8S?ONM^7=3IZZus=a)-T6_%KoPvFK4{(h+0eODU%o1Y zsvRAP9ECPy?cNX@ngmS1hKRu(ZOBx}RQuGy7z{q%u=gk)(os4utH;g+a`poLYbkzq2-&yO!g956hbn-Q z9k&*?0KB`X1yjHshMIjhEd;^K)+~bWvNcl+KZ{zJ&-TdMrwrH-vbKLt;V*3W3)4g< z)_%2OKP`l<{Q!%S;cPd<0whpr2Wg>B-9#*RDBD7q+aYqVpoNgP1Im*8qx$EV?H;z> zV^nh7hRxkQdWY>Er-`t(bB!*dc39iFMpqM0W;=1FBl32%D#Ooynsh_nu1>r)=+QCB z)tTlAh*mY|I~t_Zw|bny6*y6swPL|?+*VFAueGLY8|@|A>YsPuU=~eG3$LBywsG9H zj@!Bxz4ahZ^@(U+t;qb=BhB6^p@c zj@u1@lLII^oW}+ujV1*fypHf>W(CuGIHd22;2pO2X0W}}K0wprdFP+r207iEHUtrX z+6`zQADWn`-uu9ZPFg?O_Y!pPQ3D|!?yn33VEu-!n+yZR`K|`$dV|!!K{RkM)Ygtj z-3!k)aEQ`|(7^1=Sy@gDhAMU_C5Ewx6>V;7*NTbx>c~6xPplc22X)%<8|JG!+u6&i zmIm{4z~9{BHg$iVS=uzH+uoie)~l86?Mtg0)~nxfTJ(GOG52@w??rg^U3>dF5neUu zVE;6Ca(lxk^Pu;F%aPW-m}tG|z96!vH~EHK(f=iXc+AUllWtxfHd?R9Kr2fj^@#VH zsIX>qurI$^R9OEAnXvxJw-C!K_jSX9^)HJ43zL{w$bt25EVSOhH0ur3aA8OLUeQQ3 z?`YqUSahR5Iyk(&ZuOwBBL?HJNzLkL!zQJN8z~@+JHp^xc)$srY{MqCw3B^tW!R*+ z_H~mDbH)YFy?SwtAko?OelL!xQh5D%Huqz!P_QV%n#-6IoohaJMYnlHF?Wi{RA9*x zfr=r(f=|T|U?BwGK#_5gTKwP6c6~?BS`vdVFF5>erg~69eR_&row3+mdSg(l3%_ap zeO>JBwMMJ?SiXEF(-?PujPU^<6%6T>sh-3d21=~oceO)GtP%`o)!gGW1=E(VVxq(v z*VVq>>T`SWX;*|oiIwR_pY)N?euhe=ujTf$H0V}$`}YmoDq)!ASHpb69V~+m*>4QB zGH_&J%Q3w^$(?77+J4j(c%8dm>Z`&w(~-NEnP z@7ec@KI_DLd>MB?9-v>`QrB>-6^dhx zo8STQkfViL;mkL+f`9fx;;O5Ik@|i5wqR2)`(~@{&w{G&GfnnP4X%CPZd5Cp<_+ZO zoO#Y|0XLvQ@Ynb4+Sa~*2kqadQnPy<9ZCkDZED@1h6hUT3V}EyA`? zWKG|&2sb;pBBsc9eZzryqMuzM+OG#tj;sMqgV*|peO=g}uG`%gNgUcA)G@wJ?UD5E z0Q+HU(}%&X0rrh<+n?z{AMpy3(pFj}b&TGM)3?@1w{<;@#!bvB8vq_SK?< z+BVRB-P+nGcx;eusG$Bci0Yt%8b8QBE*R4MB&V#*g%X6!NxE}5uTJ_0^g#1;x;j7U zS17O`LUsyevcMofJ{@eoEvU^?g`rV=+my~s86ZsI8>(Bx{4=1H59g`YCoRo5Y zdiJmsqxeaMA<$xPq22LUh6D3R5)#a#_@=Gw;b&8BHc`KMhj8ed45=_rMAA+g&zwgi zz$ZtRvizPj#7-LZt?_MgT{5?65ej>m~t1MfNf*62KAMkQ9e^I=CAy0bEO_b#TYwJSEM+ zoggmbRFWe*j_&}sV9MTQnBCDZHRcYtFRyfR+dQyck{S5JLts<$;n5>KH-Z*n?B4|? zM{>{lC6rIX$&$N0g@>B*s70I?ZA;;!kfSBej!cViE5uO}1dgsheru<9d|Z-f85Y^>P<_xRY`H zicyhqeWec~ll%|tAZ9^eHhT;ateacL*l+3OcycT+N8hHw|Hg(d$46s%IgY83-OUE4 zn>H(YIfjfQ0~~N`$MJUcsU9>M&u50$;KA_-;x$-0p4XuGgW%}+@HO}go`S@P*8Riq zHJJOMeZ+#>ZOTXXpG`|HpJ-ny4z%0#d*$@tDgA~6?SB&y3{99L<#o@ngp9GvPzCAL5{G zpgW*cWR(X8inw6nBzr>DF;81Zo&2lbzB0$dZ0J;Q!~KnF=)N6T!aT34Th+_>yOp(?n{h92t7Y0e z%J%XivR;(uRrlBCcs0mcBhRbp)&zK5%dMX2@|-@{&v~`;QJHex+HP(OkjF{4PScz} zbLDn1e`c-q-Agi`!by24QI`S$&~x63-G0)&tcmrie@yjWj{SbWr7=wR+fE_qxtN&oblx(?p5yHna}R>x8CkGBcWNIcaM9IcdrWGNBF)x?|%1w?*V_fI^se9 zQa}Lrx(~Pyy1&kp7htu1dp>x8r29~wAOYY3kn+>ebH89} z$*TaB3}hf+{(=_Bc_qr%w z7xHzDx%_mFxt(H}VYIcLb%{{z{LT%$CUt7&12yOt%Y2S0JaJbEU%+n{Oo88)MH3_e zm)ppBU!Zp21O9;=VF&Q;P9&&yjQ2qf^fthE%J#*i8}$B3zC-<#s~@@g$K3wxghGJ> z6?-1yJwN6S5Wqb%?mzwkN);--kWxcp?hu&5Ls`QVdp_Dd+yG>Xc`NE^Kag}sQf8Ft zqtObECip?j9TjswINL`J;F8wU)$_*2SU2I4PP(^_Bjfm(%gRZHeWgBlVgEE3f@A91c+Uv*hR#aiuKxC9Lx86Ol1--i2+{#hu|)W zWj?Cr_aN(1WnD_vWifYI%v&BaVpk}31+gn*?#h@~7IT-!+_G5a10U^Y6}S;bY_;;N zCeNCf%g-wQTFW#cWt~#i5ndm2`5`6v`K)xUCzJK91HY0VD6}t~y#C6_*`(Z?$PFjK z=9srdvwv&M-6H$~b~U8dkN3C>r%|FJI6*n>^|wXD1e^}DFw75D{JCn~tK&HW6mACy zU~;+ME|Y5)Vsdf?(q2nH4X8d9_vsK#4rQWjnU zQ}zfs06I`MIDFLwb@G+*3}k3AaF42^d@hE^5_*D+2Ie4egN6Wj16S$9evQzW01coW z-l1G9^IdJf2j#v|j&I2Etq=?zzy(Pw&|a>9y<97Ck$bHzzfjYojphH;YnyMm-?2Jn z`5UIQj7^w>F9Vf%hcfLfw;kN3mXY59?<=waAPgO8A!G2HUcC??!d7ZNkl@+U9J@kXhp zQPebAEbKx`p!@U#6$}ygx_l#t@zk7Vn9Ez9FYp@;S-2rg^~at;ZCtKegEcn zSdtSwS5&EbGYJCU01+lx&30e7hiQU7WcpTTX3oUue=)0)^2{R7Y|G_mCVv5XK#a%E zKN$>uzS33sw6nwg;Bv|NE%Wu{ef|MTf_7lvM}E!?7Frw{7uo{uR%mT~cEw_xU6^dO!>`KdBX?bM=IdFL4mRXt4@5=X!DY!~m zR*?me!)nW0V;OO46}y($b(Xu%@_;xPO=g2;=SIsPppFCHaGB5zYlLIyw!l$j^zA16{>D~8xfU#LrDscsRzrTz;03BF* z$n&ib55OIaOfU}Q!t%LQ92A4s8VXxWSO(32VoJ49x}Xc78QR8yGDueN>~AaA%HL|i zyTXX0=5)l~no;Mx2nG!@L&m~SNB-&(H}e4)1N^XrIaT6EDKN8jkJq<21F0nDmR7V> z>vxY(R8JM?Nw#<6E%CAEAO}>Tc-}oB(7`12j)QWLtkyWv1B+o~8Nh>@1>yk< zKO}q)@t|qipOm2N^2)jSfYSSc(NIAReDQrks$;Q8M2Gv#!wr&@K}Z1xF*pte!gqD* z1r}lmkwZzP*!|u+kX(ZIs1#mr4T~!@j10qRJ^cwFg0lp|BjI2TQ%1$zQP-N*w}T)( z?zS^!*P_gfR_61mYt)cnRxi8O6&xUrk7wpx=Jz2VFbPy5gu+qt5tx#=Pw8Mz2E4>p zP0q=2zq%-D;IaWN0Z8JLcxEEsk!6eEL{-@-lr0hfLaa5C2=F0!4)`FH8GBk67Rop98iEM=amluOU0Y$%3SQ8TYUC4ho48LMZ@CfShm-#xotC@K5ez zagvlnNU4as6>$iLOpVYBu{aTXRAfRzPi&SnD28f*o$xCZ069^~I~j+L=q%X~{DS#% zyK$nqHs_}#9Jdx>I!!Jb+Uf&!YfP|=|jx(42e!6u>4jtKZNdjg*{`6c{DQ1P}_)5@wJ-P{IcZaBnUB3MSzgg~yPQ zBlEEdAt}@huoP%b#Bz#mc%t%!t>9q&gG6TQ>;6s0EQ5hy-l`3T2bQU~EccRslvXrO@UY z%CMOXKrXg`4NFK?FmYC#?}=f`EJiz+&k01iGM1BZM*R6#?p4b_W1>*SK4sZQmd^o70QVC50<49**8nQM0PJwTrsIBP+fO#|6tLud$$b7Y zoR8eE!0gV5m$wWj5p-bXysQ<9ub{+XUBGY?W7>ICu|h}ynmCpKF~Nib260GWh!z4& zaAO080-+}onfd?qyQsY@6&_5+!lYZ6^oDSC zM9YRMb||sKICV;T!;^0Q5Fse!Z)nTw{xUUT1nN{WQ^;~MGO3LnXbN_Flo^fcBoGC! zdlo;zYQ+FlVCASxja zBRrq8D7jDIIEqz>H4TRy<{EGzJ#X~fGk=rUY^D@?ZpGjH-INB1AshyWRcsBD-r}$} zKp5y-$y^jJc7#c9nXnn|vZUE4tUbi)Fgk_HSIU-^sGwH76lfuzdQhSBT z1yp$*31`&#-Fn5JzNZcD~@QtmsfT&a9tO>3{{_C$9` zxgAmhgtQYNgp!%fulr?cLZ_75DP;z!GnpIaJnMByF&teZAV>=!Aw~!2mO=+8R|xq3sOW*O{A z^wCd%9Z@10S;`-NjI(uR33v!FB7IU^GYcs~W4VTgJeY~ngG^jAv)GY|i|76+@U3B4 za3m~rL=Q>S&uMgtfvSOa*F zLwahMiaAC%;E_>aO1P8$AWK`!@;(*WU_V&vXbl*V@hJczrbf^qtZ>AF4gsSB{KKg9 zlTu6+fFHpuWP|;%y-y6FWMaw%81iw-ot$z%!68a>Ewxi5V+t~gM0@N_W&Epn(^Br# zlsk>s=_!9cPccKeW)LnG8iZ?cm!Ih=qiswjeU{Q^kv?1K5bz_W)EvdmA$D#G@Q61r z6}n{0Nb{&TVtll*xRJgf1y}^Eh@LecqzJ_p5nYLPxn`K2RGw6QJgqJ-qBdlG_paU)a0;&W_!oo&D@FS~I-fC{siCv@EHN*lS z$zO|gb;?~W1PLWG+nDaVSlN_iJy|vgI0AgcFNgsh0YTz!B6c$f9+tM0yCrouHUZez zZPm2bR_Ife{FFS{0Bkmv09#ULD&^!7Z4*Gv1_KzudM=CN7kl@`i z3b-5F00i%mV5#qWRa97#&tyR0^6&0Qa5>6Z%H2na&sE}cmC!=~H(_<7#Qu~~v<@hI zfbf?ocYn&|-+ih4b8S1QWMN6bog7L5I`LuL0ZRh<>kOOctv(es}9gi^of4u=Mxj!YTy(acEap!RQG$4UTB+>Yi;oh#f4p)*JY zbfRz2x03TM;qPEQ4O0rzZUH_ZSe>9TWPvh8GeV$Hv=v6*t<$Dx8yQEmA>20Y@}rb@ z((XGH&BsSlB{7S3Hf8Z!W6HK8NBgjB2bC4>1dIwlN&%tL$yD2=5^e(BE~cn@ytDFl zCI_$;@I+k!0mOw@0lCtR*zQ=XV@R0>ka9PG6uPiyewxA3%KWa1zDp)hC;(gdw@3Qi z*nmz!wIlWYwEMn{J^b>x7o;)xa06odU`vl`mv;LixSs^~lU%(5{Z+C*c?P82K53vV zeJV&8o3yB?)2GAlr3qY539E_ziTORcLY~~POIfjvA zxKJ$~_!Ws8so0Ukj>`He8mv|6gS3B(kSik$QUxpvu8PKTm^FGG@Bdhp8A};(EaQY! zG4elD?1#h}sERNuW+9!JW>uJ!_SZ`+_>^3sQvkO>!3ux{=*q`wcXB#&thqnB44qCw zK0(M7;Z*>us75d;#0rA~EM;1L+MAvZPqToeT<8_2!_%ypX->0drCk6n)6?#Zv|F5Z zXQtg*>CCC-exIdmF(qX-QcBXmPe7`e8s{o@F0u0jLII`{UXd(FbC|U-9Uf*aO0!^t zE|`-B!ICfd%0j_a#0k5V>wj&p7pM8Of=gMP2AI+UV2b&)E;VC%ob^z(ETa|>D$7AV z37(QU_%nT1E7UOtrD6`l%F_Pulbr3VfY2uZQdXxyqxc20$p;oCpO3;i15N>QvM!wo z9`+|tV7&^gr+@*a$Su@b6##is&So=m4h8x|`9V7{&ndK3g|<=%1PVV}_-k8O|8}Kp zCtRL(`BBP_G_aC-djEDBn95FrNns%v-qPzT{kE&laa$U}yHtD^g?6VyYFs{Ad(-ga zW=U}=Hld~0trG0GZnx+~-Y2eHIC0sq0*j$}Ur5Rqg!hXf*Q6Yv{|^{o41kr-(;!w* zvi$=mFb`MegJeFGb`PaJz$$t|&?;zm#AeYdZiPTVz*RECoA{-a1G|Fl9662)qvCy) zHquTg_5`sf)9%T%cZ!vzgzh{||JU@sPP<>F-BW4zG)qr9Gl>_Y7n07X%o)m@MYBl$ zcZ!YRECsgL$`0QPuq&1E%H=PX*tRwk42oZXFRcvSZyVcfE7IT0;pTqXS77;NoYW5M zr1rot+JnKfO^sk%*mDwn7TaQO4!elZx2qk#7u{^$3+%x#X*QUb5ZEHauy33D1<39p zAw3Y%({_78S7MtQ0lJ{R5evkn7mSLw`>yT2Z)ZB@Kk08*o58rSAqBND`b{{n1BC)Y zn_;XV`x?1GIaKo?V}zfIl&fKXZ^0gy{S8{msTF9Yq&Aq)X+055(I$`4lg zvp5$3Fsy90k(>|Q1wD?4VFuQsBmgeM4VDDx$`AoqqMg@(H@)tfncbP0J>E1=3-*Nt zk1_`P0`A4<`Wn#7Xn|fp>)D`PGVNb7c`>hJp(7Ts%QzdRLm^*)x3JQY&i&P! zUXMyZTHGGdJO<4|XaX4~h7SYcg$*oWgL!c$1TA*LBPK_{Q{*J=ZtyL90Ez^5nZRN( zRoSPKeHs7<257p%(+SV8-Dx&R7s`YmgaUGdcVQn(Do~f1oTu4F#%#sTCe|QZglGZr zGRMwrxCXTb1#K?#h;@$)^Mq~z)Z$ARkQO$v#2QqK2bu-6%OYDg5T!Q>)53O@R0C`A zmhf~b*rP+jXznjX>J0<_%itZ2sEjJthTiBXXbh{8SfLuVtgk6hVz%A@%N!(!rZxQB&#_lpWmtDl} z=JAuDUEDo1ey`;2m0W#lK2yoh$g|JTWb^Nyb7Dchu#L6RqYUx|%!^;17T{&SFfZtO zq}Pv^z3%m_vt8>6x($p9!u)t*+hrwM;; zyZk8SjP0H=Md6n|#d2YaX1s4q(QnA`ZCLa>75$Dd;FyAZ$5j$gnO2Ufg_!zVRv1$j zCIpzbSqUAE?;KMtNE!CQgn`f)6b<(c0?(*u?@Geb^fpB&TnCzltlwiDXD}fc=M<0f zz-T(-Qq##7?YJw-@$C=#J+2gzhEEt7vPc>qQMegoZ6p%7Oi%W^j(<>VAE=pJP&0Bs z2$aV78qBQYD^Py1d=GM#M+u-by&YgQk_~Q#)sRRqG<_ZLGkgPTAP0lj${4)*?dE7X zbo`5gA?xC`@(Z5u3onwXD@!1SjHRnL#F2OmTv_~x6gbB5hC6;Al^x-5O*qmCSNu^9 zD?U7_Si(YVJHl~CW?9oWHD`r|;uJ$MM8M-Y#?f|stmBvRt%OgLO{~NDCoGBlC=V=$ z{ET(9pvI)P2U<@9y1KNbUrZqw2-)M36Oui=K}-xqO;YS6VxeyP*bx~Ubb6B=v$HI7 z#I}Z-M>33IQ}7n)=y|6qaw?Je(;V2dyy=cVPR};O@oU1gWNHIx#c3URW;rgnsM!wG zVbEc@fYv~T&2}<<@0VU(qHN!DB9zU`C#9M!W>=?i(%{0{n}EmCk1 z!7gw5XLwNf99aCQ8a{=^4g?8dsih8i;Y~GPwB-(*36KH+-UlxqebH7peg)-$kFy3+ z9;`P%EBI@bVv}V{@jZ2Yow}i4myamI%d9 zrPosgbngZSw60%f(6<{M(6?-S9e}g?ppkWpvTh-As{b5&L7KQ(RlzSw zJ19S!V&gyLWO|H_p;Ds4e3ko?%+SK3 z3PAx%4OTVp;7 z{!>Kx!wrL>MfUwQR}ZHa3}+#@%$m#M8Y?!{Zgi1pK)V<%z}yX=+d~Tjf2zIO`tHS` z<}~{qi5f5slnA2ArrA%{+$>Q5z1T-ZKriSUgFB{YMNOBeX~tQaKJ zgA%pc@*xh8DHL{167_XSRuo1~IT%A>?4(Zn`J7NxW-g*8d>HhZi>PHc2FvE!zpr^z zqS}h{@*NrDxbGOZez(lais~SW#P;%rBvEh7vj=H9d5SFF5iQ`(1D><&;SYyB3$h;Grbo1EexO-?}%rC^bi1=1IbMn+hr`#!!kEemM{RfNvLCV;fQI*#GQ zhVvTIf?1pFE>`*T!GoLaL6UbM`rTy<6NB(|Tf^T=_+3k~I2DtqZ*fL3>=FY>58nFJ z&W-I1dVgyF%w5ncKho5Ss0UVl|1=Z zke$F?eurDUyODBtp4ZH6=H25j+e-4ienam*_a2}V_vz%I*Datb67KzZI9YfARK)>_ z_%()44+&V|KBPPaM~IV~g+jzW;>L_OfZymh^!>kOS;ogg@Nl_Z#Tq<2c&eOz+eg0( z+Vicb*+V6tCC76(u6qU?#B-TF1w}Kcr$r=#!z>#!0#&80k{mn zNkC?MLGbEMyFq5(WV)qq48^J+=T%1*1fzF?K|0+$SV(be)kne6oy?!&;^3NHc7ymF zGW>p*-N+hve^I+#c86r9^_zZ~+JPD9EQ_uQF8|!VIJbN^QS&T%W4gVrPHVpk5h|3teKaBZ$#Wiwex69m*cYxfzW$h<6 z;~vKr1kW9?tKUinFfthMVJ|}l%=-Gry#aB5@D{`kjQfo|toH`Q-GO+hHsWlo`251# zgTHR9RJ&;20s9g2tThj2pLMZp+psai_>6TAL$oDvJ?kG1+6@|+QCy{GT^;v7I7SU? z;=U)NG0e}-Gbe+aH$xA6a?l=T6%P!aJY)~Awj2iz%T$Dw67Q=FVbuz|?mb%-btcXb zV*G?<6edyMn0EHU(i<}MdgQxG}7()3SkCVMsf-!BKz$VIVmB128Bi^FIuAOTh zx?O^Y#-!;T89uq~m0DC-VZULXv(6E_VK`ecy{RG78|-zkXqf~nU_#IN92vsdin&Z> z%w_zc#}@>Hj)Y@ce8j%@DaLfZnt}bwqR>hLqn2ZHb7a;cdzL(J2}C#vXhi+B%C{`R zpkmWv)^O}vG^hpha%9~i`xcCeWy1oKDCY`{>QTG8MU(%1)K12%VNHU!j%AySNkJmzRavH2o@Z(8-+u2T21D&(Dy5KYJwYMOfs=($a2r10=?_L&)85Ihujq6G=3UzIt=^p7C8Q{1`4+Soi8P4Pw@Pg49? znoY!U&e0X%1hNJ+IXb8`q&ni!;kfZcI`d6)T=qFPq_xHaM2cqM;elxJhq z%OT?AFBxpk5nJ2t*%QP=LxQder@htwrJz>QS$f54PJkw$OmqH)`58NKPQFIl(tEcwd7WLDeU{3pnf5hZGVz4nEI1QQ|Q4tP`b^`dfqzusA^NbJmH{*Bn^$ z-&rS08ImF=N{9-R%r~ov<&qRRQ9^PnQ%X*h@S)VGF=>$#C2C4#y(ryDv~i$hDh-QN z=c_WOpHutx#QAtjNDW}@-Yq|`=iDRdJm`F{NO()SBopviYMApv@MQ7Lmp2t(#>?In zl(~W;3gjjC)r#gpCIFt?i22l zEkH{C;ev~BSV5k%{)`d;C+T~9*P_%sO-hKEbn(0t`ZLPMcJNtcvC$F|?sH8nOrsO- zvrVjGe%B-9Jx>+qIbffw}iGMlI`-}S*FHiYi zA^b|#9aA0-nL_GIa{iTZ2&OoH=N`DCHUVa z)@_kHkS>v1r6yKEG^ySq!~fj3%%rL%a<{kr!dNi<>N<^rKL@p|GAn?Z#B{NRF=YCd zIQlJDo@n1Jrt&k>9-LE$7%)k8ghEQHbfJ}7kJq8TRfroP6`W1MmVTyp)#|k_I{6~q zgUW=pEZ%W=PwimB?n^JRAYX6v>r8`cEpA6Yr-qEtHK2@Sq1td*O>UMvQ0W91>W8eQg&i=F3ZXuSLk0XrNY17@hr zT75fn=}n=hkNH@ws*Z`^4_VaAyEjSuN@6F)Oivk4AAk`z#sc>@7uB{(V!_~Bs@21D zT7CZJZja(~c!G`eRxoE*m0H2}TdJjF8-t0DSHC#8zCktP(20xuxym`0oD*Wc8$2{1 zw^nV_K?~J@g>(?BmF+E3;th{nSlgNq3&xjLs}sEazy(!VQnTSS#Wd24` zXW@G8nc(pI7v%=U2P!#1(@qy<#1Bm?xN&7bsGzYNWt3T7TX{NZ3)JQv%YDc4+6kdY zpO0m^pDL&xsqIPa0D#8wI$A0M5)ZR;B0CF`2UgGRC}3V@G7Ejf97=)OOM%)GRdRQO z*Xxe|pVZO|ueglW96TPNU<*e?fbUv(K^BP@SapN)5mjrx5>D@)8aMEFNe}cLpt=FZ z@d*ID93Xh-#%+)y1`%;v!GT( zt*KVfppA2JtvDJYm-=iy=pSJ$M~8XZ;NoIxa45gZ#Rgx=4fa^}Cd$L8#d%(Ct5G90 zY8I05KU8Q5YlrbTon)|f;P4=AlenzgAqa&m&~_%l0Pb`G&&@ZOyCqTeQ;eV@2`Zxa zRLjlh|0(=A%}4@;hcP%ogTgZjAn}SVNm|MkzXhvf)JW>(?wlhDA_@UDLiwS>0_B+v zS_smEHiNM#QA!Dpc2E^Efc2DnuHxoe)wt&}p0(#taK4%sJUrvVORIAo&wg%s)b3Ih z3G!#~o|ED4%@ZLmmD~EI78mwWljtL^>rteMxKm%)0f1ms%}Qj0(_^B6%;P6q0D8oY z6C#eKIN;UMl(!ZX9v($hWF3(lPOUdih(PXburlG|K&g$E-zwi|LqPKkK(85?J)U!m z#cTwY7xO^nf#Um=*|^PkC;~0E4X-?a^I~Vgc`X3vfx!zWXK%BpSbimMmz)d1R-|v% zZcVe@=S@yVj(+{N@To+Fp);bgYMT8{Z_1go(80#GlKc9_Qpl*dm6e;rj>q4KaFCwScKf|c-J;|sCGj8Z)q(B_nkQLo z(G$Vc4;;gmPZ-k=s7ona5|<6h0qxX@k)NSHabS3$@Io&jcpU-_Y@86WbMGHF+}~It zu}=rxLUwlR1LN%6C4*y2)*m7{#4L;pc*l+&qN&IqnA{KLM|w>bbJxrp9%r(RkOP~M z`fF5N@VZersTmyygXe<38;t{-50o}W&f#%8golv0btg{Yjq(fARb0;DaS;MOsZZ3) zD!*TT+cajQe$Q<^li@ybH~oV9<8L z>3SQ~lnpcmU=l33yD)EFc^u!JA1zK_94T$1gR;fx2XAF$zRZry zxP*{woC7d2m~EJk67aPgB0#X68<`5GZ?N^Rm2;n>nqw*L4xy$6Vy@#xc=qQU*Eor{Cci|y*aDhJG?f?FwA zW=86a;AO=0r`Q02%H*8K=y!u87&zHLI1&XaGY9Jxi6Hh9JoHg)n2HUf*lm&vE&V+jQ5>M{Pjt~ z=P^ENYB#7wE3qvT!7-yHqzK1dWr@JQCRsbyA$a1NWc^$%=E&jng!yT@jX`agb7yeF z=}I@Hblk-l=AEu|<1MsuWi)j=MpFuKmOSBbSt>U;z_kR*QmG#Gk{4f1Az8pBu!D;18v=zDRlb*E$>76hQfw=d!J=nU zm;RO`q|Ygxtq5@#&;jrwqL1;50=VK!Rq!QZIh;F~z|oCwRL%-{-#KjXRuww6%k<-p zrZgG+=2EA+Rh|sodX?+k5^B1oU>S6y1LO)#m-9MMSf`l;oaYe^5msjibEL<0&o_x? z!B;(J1=Nl;WI^(`xc^+Q*N4(!6U*^;ltt+8AbpoCogBb`j5l(IAL6A^>P) zbSBs*ay;`RzcW+-kc#tb#P%0x$~dGMAl#IO2Lr^u+)PIe8fXL!QvS#bP5xkEtN1*c zrVdfc5Q0Oo$OsdL2|^`FSSA)?k_lbF}{X086zbUTIngTr~>*p3%TTaXm9uiNLGI3SZR%e3kj$jE_8#fU@G9#uJHA zbUsQ#j2^tbI$hgB;R#l!8#HPzdrD|_X$)`)8{m}exTdPuR32xVz*0b|gqKp;%l?$A z6I5Q41~HlP4yfb-O7=)e@c?TuTjd0QD#7F;2|J>1luV9VE9t29>^ZBh3;{vRSN8d2 zUyuYX1yo8h7Af+4I8^ACCeno|#kp*&0+ivFLPjkSII0=wD0*SJdTfRM;`$K0)Jpn; z+r;H?XXrYyE&wUgRtqHsI0`Oh`U+T7qT82w65Q!bQtS59uOzOk&4(>Z1kZkzdEPX_uSv&O@g4g z!ZiuqQf@aRh|_WId5=nv_Os;1mN(&Ec#N1bJxTYJzb_s9qJFwIn~~qu$Cm}uR(8Gs zQOUC}EmtyuYB(Q+#E}G;BalcD=!kJBlwC0BBhKM(;pD}}m5o9JXxG3L10oO-s|3Np zDLJfBLSYI9OpWOfxw`>}gvtYUBqbaYpK)>w69uMlNVj>QkcOwS^p{k~0G>#@BUA2) zsKQYxg+@_oG$@ZW&?JP&1I-wNL{h?7xvNoy<5GesjZ=lHZ@jXGZfo-KTZ7LUZdgGi zfliu0F;GWT$cSU<%-<)Y3PBUV!ju%iBvn{sP)kLo!VC~4 z)e1xjTLbb>7Z3@!61)A>gBoifN&vzM&on3{rOZkJPSV^sh2=gtlW1ChCEu5nKtwR?QFs$pH!Is_>e?d2lSojv%Ko9U7JyHc7U7+?rC>q@-V{=X zvy_x8v7CZCQXrg!bJ`guhTp7RV7=HSwG`k9NYn0AeltK%v~q8XW%e`uvo8e#3Y=04 zuuY(!1bg~CRTpRzY5P;4n?N$*XG=YEKwfC1=$%M|a3UQ*)0Zg_O)Wx16RCpV0B2%( zqD_Z|YXa5;WXU`XzS8rRc9ag_bwSXb;G9rwj;Ex^fNDA>Y!l#f6FzAuSx*u^#fv34 zQ!}~FfuT%wpV2?xFpcCZr-iUfUkkDXeyJ|_CDID;N|AC4KzFoC)A&|$F$1A~LxxGH zr5HYQ1WRf|hPDDNsr4mX$7w3QgXKs&L6N{H0YKv8p;LnnO6q_m2(KP0L1O?*QTKK- z$fZu{W^$^-9jU~FO^OMc)LGD^7V@RjCGF;S75Jzw5G4|O3WDVJB=KFf@LkhF8h9!# zuQ@TVSL89LMF>h#0~^cO1^=V8FOa=UL_-@|s$lDqz}iJqPwjItd+`~4hQGh;UjQjJ z%Lk=I1M#yH1CYc&gAHP7Fl{K5ryU?lz>?|$OCoKkut`9YS^!3(eZ#WtJDv81D}98J zNnnmzcq3W-Ob5CGCb6%feWTNO%>kK&SDh@w{TR?7>}Y5qO8_m*fK7^8I8M%XfG0H* zJ_+_7$^S_IOo-q|I9Qiw9o*^wM5-%@68snuA_;yBHE?pafnTRVCXqfR4LAv4QVWnt z0FCHC&P{`l>N_=W$Tn$)nmdCQW#33{TWvr}#1``qGX+Z0W$X0dOwzfz>X~on>n@eI z*R?Zao-4W|ccVW*8E)aE@U|+r2{b>uYiQ9zHy$TN2nBidc$0_H}XvM7%u^xXYSebUNf8y})n0E(- z?sV^P?`+}uu1}$2<@}}lOJipAD}R}Sce!^Nlajmr9vgDFMNFLITivSk`}{c9hxfX7 zyZ5>GgWL@sx1B3%ZdcN8Fh>3@cZiR;zu~HIOhM4ycCM;<OC>F3`X8jvQ4_0!9B{IF<^t(t}fdzRWebBqAQ`Z_$5L{Z-scrF~O{zK#>zW7U z@}Qb1|2m#W_Q&JCUDat6=W&CNsyekS9&!;SLL-WS;$*`DaVQ%R|Q-S zL`VNT?iCs5ZEMwxU}y$mdfYV`=layXU-}0&=L9?IRz{ht=G3e^QG#aa5@WW-0XxU! z*f2q2m)ZM9@at+c)MQww3|J{~HoibabyzHAHoQ^PyPBRCn9Nj3;Wo9{*v{Nv%c)zp zR8e!{j53E_9D>b^4!|_j1+|=pae5$_P>ToTiA!rajp~{K<}eEk@AqtWG|bg%I}NLv zVcsMQA9$UX76iYp?ObZ{sIS)MQMbo}Mq2hep_Pspipt(7D$nJCQa#`FC+~tfp(oqmJq5wwOP!hxF^d`9ih^u# zF;bDO6rNX)?J-m$a2~O@E=alsNl}SRZ58aeG#u*FmpTnyGt`}u40UG^S)i}X?zVH1 znGIdb9=HZyN>mS?yo||Zx`5ql3c3#wg0P=u=lUM|itB>Tmu0)4pG;2rC;b_%f<>2w zU9gwLx{K97_J~!)zQJaaz2$I2!?Ej);QGtyip8yhr!S{vYu^Z3Uha&pwh*(YjVi>B zY_>77xxr9xJxPghu5MK` zKTZ1kRRgRKRmAzQG4kdK8-xfRwqs4xJb2WjmJ`ahSJ~Lx>|~d3_Bx*>Gqird*$j|1 zRPmr{_(IeT;$b+H%dNX92%Eh#xD zP6ptOu9MkW5cpR+4Z?}FLtylsDZfqY;D1-st81DE{jYYKRv)0!=okm2m7r{7cDx+y zyV|))27#Ae<210wwGJM*#%XMgzCU>D8V7d`0hWTH<)_FR<@8rB-@wLtdtDsph z^g1foTo|mo&biUrS{OJDoEwwvpY)fu4(@E=+;rtqH5NmGs$Q$ewg z00u$t2BB@wz> zuo@;AQSc&y7h#zZ1*;RR-oz@2f;HUwX}1O(Q&G4k$u;qp5(R4!tkuLq`KDRHAFpRw z7*#*mdc8B&n)Y~b!|$9R(`D2n-Y@vN-|pUC&+0Mik)ZJn&a)==ZelTZ31bUyaHd%w z*A4z~qjPV(0$~q5&XhP*CwT2~=V9xcR>7>tohz)xvxBBLIlsD?&dKrq4l8U6zg*q( z5BKkG3-=$H?QaHmHg|5URv@5qOL(#W=DzN>%$&ZnXv|S*#3T%9^{5a0(U}=n&s2WO`H9IfUpW?t6FJP$|5oQ7 zzg!i;bG%ek$C;HSu^cWeVHu6lyUV$uhxK>`hbJ+=WDFV0M12fHvpZ9l@{k`7Y#c0o z%DJz$5d+8Zsu=Xgw3_V-`wc(1?rG;)(~53SN3GbVR&0;C+oM)o*3`KtV~X#MxqD)m zA<&B8(r27HajFb@Hl@d?<>6iFb#0*7V)h#ps6m`oDcZA(?=ug>h;XBO-d!C^HepjDu)$^Md!frWz zN7yYx?u@!+yQ(X-=KWEf2gDHRy_&d<#c!mV1@2uj!V`f6jJG8$)wi5I3`>4GfKb@XDW~Zdvi?s1;pw z#nx3WaKctR{i|%ZV4EBoCetlXy&QGRs$YfO(*5OZw{U;iH!fPyeWHrxE>ra!emU%x zes_i4;@=&0%M?{tBofZBy6f_yZrPs~HHiB;Lwva;%JJW3*=|`C86HR7!i5}~4d{F> zr`E*XHC)QZ!)}3g0XyaJf{^!wJJ-g+*jKXMvRN#b?uM{iHk;;Fel_ZrzrGr^VwYM0 zGv)5672n>I?Uwx!tE6VjH?KzB(&FB*TdsdC+b!I|!7d3;B)6F*VvAI_^n5MsmZtZG z-Lm7ps9U<~wy2vZ6vJ*=`q!viI{z(dP@!@R;k-M_QTKstw{W>MN>@x#x4%8 zlqjy6#w56a3cH2tC+?#9u%pxk#<+yK<$=FvyM@~&a}{M~3s+1uckJJzZn>~U)Cz8n zzyq?sidr$~!ECq8HH3k4)rw$Xi>Ov(iLtC?tIMorS(aqFwBS)hGpgFDGX)hk;0(ZvkHS^Q5Y@> zUiiH;(3%`+4F?cww1$dEYiK_$)EbsXS_9pb)f%>{qkgD0oKfUCt>Npe*06O~q%|Cg zw1xw_$oK=TVSl7GoKe~jwT8o4t$~L%TEl=yYtUnzuQlk&jMkt&GFpRjoUb(~htV3k z?53jskJfNN8GocT42rY{Bj$%%!$*tT7z0)v<6fBM_L0_21aY37Na$oY(Lf-sK;mxbc@j%=oX_j zsJipD232RY1~tfN4a#x8)}S0lYcMtaf3$`J>XsjA4K&zj4MxllwFa7Nv<9`pXboz` z`C5ZoVYCKQ{6|^?RR%_DpcbPwm~21R8mPx;4Rnjq8t4|IHK@AtwFXsZv<5ZEXbsA7 zzSf`|Mr$xN{eQHE1L~F^X$>^kXbncp548rGYqSQn!e|X@#rax;T4A&XQ~XC-162k_ zYoHdRHJEHa)*7hCXbp6W(HiI$qcy0y^R)(5XS4=2$Y>49alY1|97by}HT{3Ih6C!B zA88FV*k}z#%n!8&nrpNMwZdo(YQ_0lgIZy<22=b;S_4%EMr)uJqcxapKh_$k$7l_7 zi_seB7Na$&y7RRLRcEvYHOOcU%5lEdpd3bPFg5*1YdD}j_>tB?>x|Z5%KT7kplwEL zP?bh&P?hIv4XV;;4W{^yv<6eP*kVqCfR_su}G3zXy;Dto$JTUi?b1aDa1-^-1&KkbV=N zJJ7kh(pRHn9$vCC>z)Yi9q2q^9UdPHBi`E6FjzX!X;yRN@p+t+#4tGEq_-f(d2eQc zA6z}ix$z=X@jEeUZYwV_)E(pva#jgR{)@p*Uy0f{n9~KbEN3g^q#Wzc<9`XB`R1e?rxI0b7@`0Se=*GIm;4mqz|>%3M_jB97!Fu$$`!%%;m*Hno;*V9 z##vyZah<{kWV|JjcaO-5#AF*2E%``MCwCm-yco0QKNeJsbav}W*N+OHw9;sr_u(*_ z_m$juoRE1f&MqYD&Cyv|?D=xo1hVZ@^Jb2A4E+Ax51bZZ^RY9{!Qd2QQ>E7&k|BZJW6=m&Oy8JVc$$2@4OmH0Dzej0x{LvTR(ILTe;>5 zX9%rcEWU6weYnFjUv~-)O`tgaaOFg&Ls%SJuN*AAF!wSIoakJPhryyv6P=cp8t~|3 z=X63n`tUTTj(+D&BM0N&ZW<>@I0n3FI{FAZFL+Hd{gXPogVd=E*@V9X1$%hGWhjOr%KiGL6p6M z#(C})nZt!eFVA#xW7fDdki^3o~w3#!YgHr51FX@6-;14EI=yFPiV{4_gM`1e+<^(nkhuD1jKl5Q4>D12unv^MVHI+J#IW8uawSY=gju zV7Dg!Olr`ig;9elmpb*;peCi+2JtrKfOX)lQpE#GojLiYOBU!71?|e*plG1DP=UGu z({v40sRE@Ko9D<#h^An}C`bs-e-?w2Fjn_q3Se7^3M^A#nJEyf>@$i&jPo$dNiR)6 z=LU2f2rr>!Nz5l1+#QQ~woXHWdzSEQ+wTwlyCnN;dnF4K{=KHjE0=KC+`l*&z0|qO zD!wx~xRgWZnO6jm)^rH_mX|mOus1KW`eMd1=dD?oRn45^chD7$w&j>ya1F~-WunUnx_9h(s*Nyir)h~9gx(2jq_V;--E%S zHO_t3!6re|wax?lE^5ElsS?XI;&w^gZVWKBrH3^i6UkugI_Hv`PSuET98l&bzDJoK zj@^D0WOw`pR&&}WV^AHOrl3`DNsznVX=e556g<10&Y@p>t!JS&O$6Bt^+XodOcO8P z;4})moU5Rm5Yw!FduBtn%eQZgy8PRXVVA$KDeUq-o3dSw^;?c;!Ivae^uVU5%kSP2 zcKP48WV;-zuN*AEu>K0Wd|wO;FdpxGKf$nDtILmWIostUQamcAMpz_`#PY)rF5H&w za_Ep#vNyu^XpBj^W1H#nqW8A(CABtGE^4&HdDN=BxkRWn%>4>01>ODXwS!^1oL6JL zi!!^Nf5og>?SuAvxL_G!7fsvaToAW5mjtEzoG$6!#=x~WXxzJUjU=e4IWHEy{<*Ut zVYOcx{2ay~YxvVePaSm9F{|U!;3dd^tYJ?VbvUGm4oiccFaRmX#}&@wmep=)PzBN- zB7#Ooou-){ofbnmi;0;mzB9eX1TBv`*Htf6Y)?5HaeK&lNM_f-V9HVF_39Ipz)2Ox z-kcKkNn{E~1;04vG^k#p1njl@XYIA;Js14%m{X@pzcDcxYjc4*`**>RV@|v3Wy%WJ z9~*15RJ>cyeXgkKap%?e|1owR@KF_O|IazQY3J<1LMWl1Lr01frCBa(!QMsSqNw<) z7;Id-S51Hbp@%x4l!O|Jbl6aYC;>tbNEam(6$LeTQBhI;-)GKljNW_S_pkY|yED%` zGiT16IWy1mo8OaOA~{%j7W%REgywQ4G*f`9gLTSafObP*Viy^VHZ1OjLIr{hs9Hxr zwUqKuwc(5r$l!$>E{Er}9!6Yi8F9#rLeJ>e`B9O`fnSq1m~x9I{+>J%^OAr*_a_K+jf(}618Qw{g2312 zByhu2_%iRXuqAU^BW1b&y}LNDz3$ zUbW+L@+Nz7;g&cFvm5$!y$at_qp_DjFkMMl_H?yqLM^A3B!nJ{CAf~Oiq$rXws4RgK z(vq;UEP<2IlJI$1!Xw0oC83%xrt}Ht2}!u6EP;c`lJI(2!VAs|k}$t4;T7iDrkpzcD}#Vm?R>f*Ordr3njsH!Br?YG*bXenG&qa;auM2G!q*&<&`ojkb% zF}{^-!@>U`jx3N8p*>Hk^OQAD-K84FTODuGI%enqr&@=Dg>t{&&5>}7Ir375;6Svo zQb=-VO6p7;P_qn&KZJ6P(2=)PZoKudZ++pGNeL{smNrx!6RhUuiF?(P306-Z#np!i zR&5i(k_782-v$z@C&E*PcUM=0S1VPFQy_t<2-g*V_`CM#ihfL_d;#TK zCVAzbO7hB&PqMn}n!ZW$Y6>JH`4N&gCVP@^C3}+dldbN_x~AU<&8qg^R=JwAtiFYO zA@V&fPkx-`$#1lxnrqme=8iU!TabLg_9XLcPx62rmAo?GN!}emvIxn+0Z(#6z>_>1 zu)5dRZTJYUjBwO&xtnm+aITR*LKc2xO20lCM8RGZObvPp4g@^~W`$@~4_C12Nb}#S zfaC!rS5)vM&sFdwYgCL?#SuQXr5xb{SWH#k5k6w>mFlX-S46=lDA-=nQ{W4E3R;Jv zRSge$RV@f1c^b(RAy2YqB~S8}N>Rz&N}lA0m5}@z$%~ad$u^Ze$=;QtlKGWA$-|YA zyntlI6i@Qj6i@P%l&IvM6i@QI6eNE`vT+qp^3f`uQ!}5Dw6Y%%u4kn zKTP!`zfFxw-de+x>{|oLWk}}M@Fb7c@FWv!MkODw=}8W#iR1@JuC3`w{;Q@Z>C}o! zzFEtYe76>oMM!>J%aaV$_9Q#ij$J4(yQKttmLMA5%T8W$ybd$trB7GXM!^9ToU83A zXjI2jaDSa>Rg3C)Rqd>Uw1#c*Yza()s0oPJU$E?zzV5q1@E?%IyTHQ2__>| zeO}kP-(1{Rb*g7|F)vMv{Ii~Qz-YN80cw!&Y$FXot@oYSo!)oBRQNe4nHG+7jD8=I zt=@L6+O3Yp|53#I?iJyCSrG>a>Sd#U=qM+BT0IB+j5pC#(8Ova zpID~>mr|IDi;R|vFq};+aWPU(W`|x@`qCz=R ztaf<)AH_=7l2Rv}{YOfnq|^?V@Ifgxp}n;+ajMrZ>hB$_D-##VkNG=Pb_Z*sxoC-M z($Q*c&S5Xz(YmT)-U(K7wOH2IWWjSWM;-q@P*W}HX#HR=>ZxXRLULM9wS&((EBb-S zG{9tn$Lud;Z9xm(1XfwXw4y3>wlo7}o6go<=DZ~;qccT6xn1RTwi;FXs)S0O2%CT| z1#HO{;IqzFbFc2c)cv&6SL#l^#(Kz{zeK%w4P`gfSCg-?o~n9Q%EC?(FXSZPDOq7q zKIK}gZDrkdP?m8~gyqGYNcU^4Ck%7xgKGVC*3N{57`-w~<=m4{Ma{h4s%b8)fxpB0 zd(~1=N|5e&0jmI9*{zkf{98;ZfD{Zt0!*P@k^Xmj3-u9p3K91(`u z$0H#}w#5WeT~#_8Oi}4KTAfn$HRqdL^coY+0tdQ+HD+kWNL75J)mD1Of0K2CcM0tI z6<(R4ZvVV~cK2|f0oe;BG&PbKrmEv?xVOJ~5D-H`AJ3paflg9SG#k$&` zsxR>uTt47&Z|_We(q_l7t37a@63flnzB^oE=#GR z9_(dl=F$GW7zNrg3!RMZ&NH036761wR!J|bZC$Nzp^SnB64@S=MnH3%EaC*Dq4r*9 zRadt>Y%P&GE zYEV!0wzTcH^P`@^4VF=KshTK*2r$t^Q&i7zP=Gq*DGgar+#?mqYjY>68T9RXp4M`#w&51)*-`$_9ruP1Si#d$=2x+nF~dk6xG zed@%P#OjerPg#46RBhefDPwk*1c!A9^twyyd%LfvZ&}}1b2x1t$FXycoTD#tXTq~q zXQ+fGX(k4k5Aa+F%Hhx9@G$E>-e1eBxBFY!V&<**4@;YS7e_zuddZ40behU^_QxeB%{<4SFiTYQks^?$toYV~waoajp^iv1{p{>zr$y>-r0FGZ-K6vm}7W%1Grx0Rnoyb1#UJzLqUQoaQz|TD4`Q0> zhCsJ8*vuYsAUX4h$jmCxnjsN_+05_sAhNDlXuA`g_wg`tefZrc4YU6fyow*^RqXL_WT@PndMWV`mxbfh zjHevRJ@2u*oL$BpegQ1}i(pe?I^twi830xxp!@w{>PiOn}_fgy%03Rn?nf-MNkIQs+<6i-o-@Rp^jy-QQ8o27AT z%>2|EYU5oMQYyXZ9uaLv(3UEVaG~KU(Wa;ePX%qj zLovy~MG-o#nYQu`;ez$L;61~6*Kpo5y1G*h1_PLRNT}r-hKs3UyWrrG0lk?s-M}cp z!6nJVSdnXBt>EC2SS!5Vz979l+vpt*x^oO?w&Bdt3|+jM;&?y((doRd;&@w0w^wB0 z(bQbe@os5v9%&<^9Y0@$NS$x!zSnQB1xC2oP`hiS2#Zsziis_&aUn;gLypoR#bQNS z4#lmZGOAWhRl9mss;MR|sG*t7ieU*7!A}s(6Whd#*IQLvhrZ~;#b{{n2lPC167fRF zbvH_LHqw0shQr?mzI}*hwQ)8&f6GY@UBv-OoUq44=P`6P6%wvX(4I)aEr@S5oUMji zWH|g8p+!tnrG~2X9n5E!3{`x@u90|3--=Ro_UAyiCkM!2J7UmvID9;J52F?TjyQS# z=sNB7Ii|bL)?If2&LgSvQ_`}dUH6%kBK0$`>mbQW0)HINg2CyZHUr8~{VOFxLqSn# z{--oQOWw?18sQQHpgjk-k?q+csl|0!CPy2P`3#v7gSjT^P$G<^xNyahix>BE>BaA* z8Q;^3%;!l$h}Kc{pI}!vO4QU}11&3;7;-)Wq6sv06z4*|avuv-N&ii{X9?YtXS%nR@hUCaB3~xX4s9-V9YY^Gx;W zKC4c>5-1mdB-14xeUs^)kUly=0t=fYHMUh!HC5+hEAgfx(*BZ1w6zBJAD#C8H(HqJUdcP%x;AjfgNW9X-mtlIb! z0<{$;GvG=|UuoXY!D-XsPcot~@Hm&91}nXY^sXF1P8CW3IJRhHsa!_B87|Q~5>8T6 zY^^@imCv_zQl$#tS+R!d{&B^WD%2lc<}+?hvC)t8srxD=r=;sw0=(79Vh{XC}j@`crYm@u1gTIB(luhW{Ss>#U>uh=*!3F?l7ZMDLzYlm^&F{ zkXsvgC>dmXf3Le|guu)>!&Q7G7x1+_CI2`ZXkAZ}YLuERcu2<9 zDRgDgNfQ)YzN*_6+V-Yu)X2mdYR9k&q1N2Nrta5L)7R9LFRfuu2uT^6LZKdu!sh{1 z5F$)8jBA_JvP!;BBHQ9vq)eV>^V;uI=XWHhyr5q&gMCbr(2HeCC;}+PLK!32)c9ON z5I}Hb|~K zm2^t6V}npc~sdQSY z3=rx3Q&n~EW7lV&M?sAG{GC#JZVaRvr_?ts0=2HE?(JPE(b5ZRd=bR>zeB+3Lh- zam=dOg~5%-9w@~3)T-YJw+ev^6bJkU2a@D6c=G-5(vvm-H^D$Ztn^L>-{3i8>m10j z;lx1A1#If#>yN6TW+8qdxHU7ACM7%LcZZ6Wp_I*HDeiZN`NMiqFkFt)j)*$Toe}=f z0LIN>zdKUIMRYo(faEo=1=+D>}lM`F`+G9%Ul=>180;3pDbze)mEB0b5W6FGT8q$};J zU&J?{B^QMNjf|!I#Cy-5WZ=zT&Z8XXUL@odtXVPDNdGLVf7YGL`m-LCXyF1v)r*dm zlw8H^;8CQlhAhrhy?#ip(M+Z?Aa1J#=;o~ecs)t96CvK|;42WWG@x+B@oMZYCRcbh z7wk%Gel>3iA?4wXf>5ytZ9-?fTPT$kQrTu+>V9Vv-?qTQ=9B0Fel_PrLIa+`hH!q9s%jgCQkrgjwZR~_7{0aLUCJH}ii9cnoV2MxSXXG|Bi{sr4LOSz=By!>K}Zv%!p}wYa|FI%jpld1^s~GJ zF!W^^Vu%X44+A(_%)==aQXh~Zetk`;v;K6sO~8l*LPVTDVR6$r-^zI)sqj0EFZwQ4 zVX26gB6?m3-CTk)G?btW-%B_K=$yzUTvxmVkLUZqXoWxU)bpGp@T0!5KZ%l`_<7Nv zE<|sV^D|>r59C4cqkuw@qN0q8%uHY=&eXbE3pE@VPzt~dM;-^7!x4UTyd9m)0?^(f<4N>2sc3ADo!=g!1#1#DedZ$oJ{ff$-^`_frC(xMM-}-;uj>o z75RW*s1gVaQxrcry~LknfPopN3l4!>3WSU#t{E?bubo5ci%Jcsr96AC)c?~m67vl0Zgm8A7&`t!eQt#B|f+CD55In}ivXIfKlccqb>`&5ehdPE(S|g1aLWbzv5} z=`43=v2_wMfv)asIY>4~=+WlNKl9>+UtnH5#I5npoOow0( z3302(pVpGrLqkXY`$9zLyifjOVnAyix{mG=Y0?s!v^3sX8t>wEOZ~ z9Uv`iij!7aNCQ`juhv;f16N4{SBria>I@;MTSb6CDp?cntQLkkc7Fo3L!+7Vzc=w}t=c8zkf}@bU zP5Pcl15@3?SOYi5!(ZoYrh!|efm=m?k^HkQ-lMJS4_%$JRg)`hr-3^p4~m5y-2a_4 zV3)LTSFDAD63Xc7c9+rD73&733K)y2mIm$<_BzPxpstG%&Fq)F{WLH(Oh8g4xUknT zZ&KnQK>_0hN%dn#^JIK_jdvQvxvIg-*1ff|cd+rd!e`=K7B!BY#+kl=lk8ZbrGwSz zm#zBd&ahhkvenN#(_Phj#j0B8tL|=H!6wv0yk45?IF9Q&EV zK0@@A-o$)*#OWRSDOcIAS@j!FmW(Hz$Ki(gALq%?Pxpk`DLsXVY)t=X|^G|s}oqf$}mOLeeDVS(_7biW7iR|jvt*5JAkjn?i zG}3VTIb-B#KDyPi*DVba-zlF(tJRmUTbbs{q3XFete(bNwe<}vKea$gVk+ZM`UV4Y zS?G%t*=iT5Wo=VaA`9NM-tqZzXhHLLtSjnH$5Mc~ZklZUrm^9J&1Je~c%OltC11Vt zj@8zex3f^?y<;^nhu^Jsy<_#LkuTSbB>{T_#tIL}pWQip*r(jD0x9t;&Ct<4>Y;S& z)@nr}3AYP20jvoe1|wG0#e3AsbnDI<)v8;iYUaT{s!fJf z)pv&4Z_5BnF|CK{n_=Bm?V^;!cXUWt%A@|H?9OUO23^RYl zb4Xek&+eHk{faC7T8@OfXHDmu+{v27~u(@`>Wm~_iQ2ld&SM|H{d8m(C zGXSI$pN9r;3HegZ00J~=cWQ>u8Q_ykxR{`d+a^_uKiCKBqjLULv3g(&*5520jxVQB zy*ZG3zw=f#X&^q}(Kjn+kToP!B)W2aFj@l*XdSt@TZfRjyG>cn8G<7WOg z*lJO0>29hy=?gdF7?$il*o=5UAr##-#8Z?u#A+&vCJgZu?HyuWEsBzc(f~fM8EVz6 z`+dF*Nsf9zWd#fFmO0#8EE>22*Q;W_+*yf9Lb)j4`wT{%{|orWN|?& zFK&u+bNu1@a_)PouoF8uesR8WK?}3I3)-9IUC^&tfL7?4uEVSr^)E^VtE2*!wo7G! z3tyII2Ik*Yx`GMAtU>0I1XW|W)x1sC9^`lEli3^mgtL-k*~6NLXD9zL&L4szPvq!${N93HsWs8YJ~NYNugOIxQl%59%1#B z&yFLl*UaLzk!2&T`97G4du3a-YK>gQ6HUColQNHUrqHu) zTbWJUG3T~RbFXr)V&c5oX)7c1!Ex53^^VOeh$E6usgQ6bJ2#}^0=v<@$?4*RA>o?% zg4#C@pb(?==W*8aCWW3EZ?!Ye%~R9I<1l67TQ}azKRMod=;@pe?n_~;<}ah_}; z_k9MYQo4bYAnd1v&BR?{I4cYyIH>GNR<#D}r5O=}cJLTzg=?b0OQXlJF6OFjldQVt zhC9?(lXz@Sj#0IhwZgnGPwiD!Rg>DzC~7l*o2$-G<^e@>aEetUU7o9BJ_$*ZOi&WI z#U&~U0ZGCIbE)!@`2B%#>MF6!|7tjw48oFNpw}Icij|&s3C4J=^)P|au>;I79PHTX zld;sZv=uwOn<+MV>EC01tn_3JCJRITkfsup#Or0;5A3#0uP%a;V5-m3ykWzc#Bf6r=AOIPPk&2u%$H^crgk^ zo9)?nJ=<=vR`AkP?{3VU8fz%?{ulZs!7G9H!8zT~e@u(soPSQILIQW3P7u3g@}KOM z;i*y~)=I*$_`H4^BbH3hXh~oMX>sv%`YBHYAqp8MbRp7DKTVHSKVO>^XN%R47zECI zpY+qF8PV!@=6KbwPlU3c>bEl07D*&RIn29Mv~Cx^vmMduv6gL<2!$TjL8^CislHeQ zWA-tr{?^=B^e?^Kg+wKllA5}`H#)9w=rfMMNZDOZZ=YM!`RRb zjK^W6k1{-_I_Fu7%*zj|GkMl={k#|WWcNU%apuy6oJ`<6k8Bq7Xq<1I4{9YWwl@*_ zb)7o3z`C>YCAo%OnwIP(Atsyqm~g;uQ_&S#0w^0;U{j@FWRTuS0eI-%Fb z;f!RNy_5eudxy2s)4+IjJ-05hj+!T~QVri{1+dLgx5=lfrJjG^T3K;v4lkAtPCKW) z(;@UOCw&)NTSfSn#Z0W*9px^u8YQY)0&jmfGajuzfQS(SpqA1!l^`eCVcl}vBV zms!JnS;sf2$TF**b@4Mw&X+=}WSKYL{j|)xiIY}%Lwcnto>(>@)VR%Xwi)hrBdh^H zI|M(qGg>21y6sV7C}4F`W49HoN2qb+ifE0gD`PdD(KUuwdNuY~867r{ukxzIal|af zo|;*Mxh%_+`Ar|@!~vNo4oH2GBcszC;g=-v5>>8V#YG+;qt300R{8qsSe5gnkjh={ zRhhp!TIGk4=)8fYTdLebl}u+_xo9(dTDo$Z$$`1;(JGnDSPSFK!jrW_S6MBeDo>43 zcjiZ{Je(h^@(W$1vBs-1bxpKNcWrd8U``h-_+aLWA>xg}4HN!es?73nE5!*TKbX#N z&#)>TCO9j(%2(G~cbZ4XsKT|;D(_uq)pPZ&oEI&`423fU9|+zKJz>dgmA#G@^pf{x zj$h)B@SIRJ_I^m2HjA;J=O{ciUc!&i5o9ryZN-P@3t!S5;bUXPG^Sg%ZiA`6Zmbd%GqMI zk~77{TiC?V=5M2)fvqSaz2#Of{f@0{b~vS+w$<_(=DNk|g(9nQ;%E)sdQd%ThH9!Y z#r2cb#v&_F@#01*tjX%VhEp>%B}W}CvP#X>X=>*-4}$r_HV=YXYr6-*ynZ_n%(;uz zsO>;7r-jt2?N--HnPX7$DDTn7B%-pQ5Cc1`7M||^LAOABr{qL#*WsX!Lkl>$iztxo<_-3Z>t ziQ>8{dlQ3z?0M8{>Zqf!;_Sb`gvdTj+GBsh2>P^7q{$~%LW00#uRLLm7YtzG32WMQ zpR!NlnUw|qaLg&QqEv*&BlEIufQf~uxTxAZ$kR#?4Gn^f-&Udq_w>Ts; zP*Eh{LHQm<0%GMhVn{$_GWhRxb>hyhDbFFLe|a{T_NIeiG(IYYysT(^)YiC9q5#1g zJy)ds3qWw^e*g%s0$Rci*TGR^0KuIeK=55X%5M5IK=9TWK#-$@nTsh|myQ#FU{)DG z@a7mm5V%{*xbE)%A3(5s3?RtE_-BA%=+6Mb(Eleu(D^Gs5Fp_V^x9tmg00<~xo0>3 z0T4v)KLP|9(RUzO4j{Ow=YIkSB2$J6^b1z7DHi1W*$dF0&I4(LJ$(@1;C)e4U_iiv zf*aJKPeCb(S)^Ng6JQO=*{0i_HurG4KkfAB@AhP`1Xpf z`t7Y6iRoTMu;&;~&$CK-Uhsi0aJOIh1MKr6KVQV#5yb~S%W}pq_(6OtdTH>e#5_YUnF=d^yUBKU_9e z{}iV8w@7&_jh*J(&Og~{qFg;1sZvcfIa#ejij<PwYYZG8Y(?MDWy`6*z+u*O@R|GQYFE}DmHsnueWmyIDkSa<|0EG zITce<*ug3z+P^uNOW3`t7qjhq>KDJylQL6wjI#t52qaKCbGA%^vpx8lI+1NxYcU(! zy0lB+fVi7Y88#U4|Pv|~!9}cCOImV=)D>mggQ8T{EtRqegT(;6hOYzihwU@J@>v10e_ms_YlTnKgI;34 zgjj>FViE#~fUx@TZGxzx{L|59i#xKRnHN=~QRN8G@3a9+7zu@F+bsN|g8Spo>$Ss% z3;GZ94Y?Ws$eL4%u(tG18ktlj-9ru`#u*N8X4@S-$I(@YN5KmT2y?G|<0!`-Imkhv z7Q-pl2R1(jgt=ex4j9gU1KQF4?m@#j7zJS-kUMcm%ms%H=MYg;^_>7wC@d1*!0shp z1z?6i;z@~%hTCLS{)x0&;D)E8x27D)gxng9B>Ys6jL?%I`WY8^T!>9U8?x=t(Pwe7 zwz!H*!-s_ZjSef7JH?x_s4NUC;aw#1D%_`OE~{v?@uDRD)rORYDcm@I<5I$MN8uvk zp{gr$Q>vwFj4Yr-{D0giUJ1l?kzlD&*r9}Ab@-F8tQT};KZxuP{QS{y_>+vE4Cg0E zSaDYy!ZUMGu3iQfO^f=tIuK12Y$B_5tRnaXDdbs2Dq#NL&j`&EXtJr=Z1tx!Kn&Xl zMoGl5gJfv1BBqi7X6O@5DuQ6z_6lw~kVFq6dqnQeP=T_s0MJ$rc}|9z+>2p=zhW;s zOdz=K1O*qx7-pIhqLnulPiBjv^z0B{081xXxFy`|B5H6oJK38sEtH2`p;2u-A< zo@^!o@-ihJEQ?w8B9nurGg)H9vXV8KhITz>wWtyjZz8pElk=oMV11vg`d<^c?QbkT zsgU%^8n{;|th1!drT9G4nP!g<8C!I z9WfLn)pPy!&)2-i@zJ0SD@-|EwJK!n##v*YW_BDz{&JiaF9Z>1=&;d*@aM?e|1wp?gK~4E~Q3pG{$fa?7>_=f^;v88m!4G1h6f$1$gZ-i3 z<+fdl-8OKP_(yQXbK5|)=(o%7a@$D#J*n)zUHzn0FOfzJ!l9rBgeo*_OE2&n-!#U5 zxjO>KVmDW^!GDY}dFEp09MLGRkKec0tV+Sb(_ zD*!P9ml_!6_-BHgc5^0xjG7p=(>W7CiA|C`<@17~68UF>wMX`s@*Zs^QadNNbe%1XqBGklxJm4oKc8a6eN$m}|94h;t9qCY69DeXHW_EP6dSe<>G!sMk1gjdABqPNwr)svGYhU+;=;WV~D@xJj%pi%&N z-}<62BZ_<{O#_VwG_RB9YgXj%`S~yD)qll$^#YNHMc)NFH8Z*w!jKW?88oC* z=`o383Z#rG@BB&5Xu2>OUG#}Z9w3^$RnFsIkXkT=zOsBmENT zze)OUx<72C>Lk_^qzv&%Mqa*go?oKw50RJ1DGW4zYIdTJ?^ibp6CBda8fKX zU`)hVENh49Vum3&X>{#?G}sc{fT#qDh+`7Bp!f#U+#K-_;wuD(g?U*UnSu3^%i`1z z0tIp$peG$PDr&aapNVLi=Eeiw!!zA{7`R2LZ@%A|BXLTpPqZ%(?F*1wDD2UK*-I73 z-l8(h9@>kDlM3tvl~L_r^Z2!dQcI;*1i>d5z9@iCXRHu3p47KeyC_#med*kwRoW%G z3XdheOL1Lxj-#zIVfq2gFdSyiB>w|l5Ra$d*}%_@z_T_A+Z|pTP$|0PTwp6K1$0RwnoG$K$^S@~+$1Fh z3-V8@1kCdhyxh_L*dhhDAh}f+l%e1h@pBu&-#Na+H=M59{Tely2Xuv_ zNxG!=%8ENy&%qD^OTnG|;w6iPUViQ37q+%CoD$;_FRl1#iH;_?K@T?QfmRsUKnDdp z2%<&ceqNYXoypABi3nIkYxUkH2Q*ahfWND&D`TO>(K7kxi1zg!;SOQoqw2$0`c$jC zldGkJ`_ofoOWqjZ|ByW%1^e}PO9aYCE=%YW(u6X^U(~6=BP>>+(~@^uU$3`d`8?L1 zF9iAr?60ff{(wM;`mf}luQdYjYk&WA5PlALz^??vR|}jUnE?F2`+Y-WzxA74K>0-* zc+f9#TbZ0datp+d$w?r7(m)5CAC35)J_76aFTddYE{GviH}D6^`$69VX<*3xG1kDJ zSoZ!XNWZQi{b(V?O9}~yPpGS+7(REf;POJ>H}hIJL^6k9NQ(^%8#CFTaeQj{ zNzUHp*N!whWoYmT7_BwNgWZsWc?g7WZ z%&D==)soqZH#W8trZ0EL0)W7U z!I2GLSa%ub?@y}W8S5Eyd3W`C^z+miYm>R8x61pJ`kM zxI4~0VK^s@&}Zw_qi3xaav`J6ifekhdjBjArEvvn-&yMlW2E}+to5ilx?-gFIqP1- zE6NsOvI*HzWZgH`1T&Z;>R9rAY>K*vOFebNOFeZ9N>MkyK<>h@m-Y|-(bKl#N9(LuqjP?ODCL`cwd*JFF5l!w z?!IUlhGg9LvzPJC&pJb0{@GeGzver&^ThL}xi= zOec})zgf2#zO0=GBVYe+^)h0lC#&wXpEc5>R2Vz|Akc`?WgPn>B}%Dr?vIox?Z&YU zWwaYnZjPO0DbAm{N5UJ0ETvX?vJ??$_y@I0j8?>>|0rKP(#y1`8YZ+WKl|)P^6B{P z`}mB!oD|0wUN0s88&^x+KNbHEWG+#zmTv!D#h+X7 zA5{EBpd4FDq+!tZn{6*ir)w^kiw|-NaXTaI;zvvKs`84sI64)g&ibV%~+X?_N!nhU{7u4@-JwPQO=h zDu?Dhu4-1Y>zSXXsK+baQPmf^+)+JH$!=Bgj7T+f8URjgC^4O~E7`RhUz9`%qt}=~ zdMEmZOXA$-OisRUmF;#W zahyJ=Y}fKndjWIdBh#xk5a^AOVlOs-ZHtA`ZsyB6v{`+cV%PFb;LEQmc8wb+AEMsp zoab}|z30Pu@>59LChaf?ER@mSGpnY-it!K7Ir)&kH1`Ul|Q`MfEoG`x72+!`Q&!4GZ>e_Y9 zkMC49>)Fj~m5MM}jOuLom}ve0Vw}&2JXX)%XqbEMRIY0`_YFO~S>5B>)y(1y^|WiZ zXrr%!9fvKhNOD{8+iqMjVUmds`@mhKxS9fu?ZPFb5y@36x^SqX7HKtNe<@MifX_GxGBDF zV%JLen1nNyj<2rjHYMQ@350-_NOS6b5~@!Adw8x~E-zVm$HL^=C0tPrY-%@XpwrnB zR0IbfUir-?VDK79!K*b>zfKA5Rn*iTY7Tu$-Pg?CWqsU4=H9r_x1AzQudwGCmG=+X zA|t*buL~i3n)+FxI?>#|+C2S?x^F_e6xFaFa?@q5DI$wSo*t?XvCCyScb zAXj+ZyZ$$D4!p+LenX;~4Q*xj<a+17U3@ceK%Pf9H|oW+I?+lO^B zUs9GD&Qc?k!}GNaYpA4XY?)43VQ{@wooXT4dAv23xulz_(#CFX9v-T~ZS3j|KF{Dr zN|_H0=R;4+M?i)pWs~7-GD5jK)IZzUHRVE~#%LFMzgsvfi(CR^5K}8>hdLU~{gGTz z-@L7T*(`3WTC}s9UolxkG169avC(4E#cYc;7S``|)SD-n+GHzw2DI~PnbywJvybv- zewMo2j)Uxg z%#Ko1%@9XWj&MgfIhvH{dqh$-@ziWlI7`?ev_cNXJF57;n$^_vH`Y#!^nBcYQd3nG zJYhd%cmz)%sp2rLi&33xX!@kxt(GRI0!E{a;uy~{myZx~DrRa`@U~S&EqaoNmfqR+ zq#Y%xVsRPgV3B5pNuSqw%1$vnk}3j<#LM~fmHIIHYED~^RJT6O712R&Jsm5)Ns8;! z;!?c$X}ht{BdNl&7msBRE1#J3#`!{!R8{Ebb;u3<>?lbUW;d={%x_Y>pr74Nd)mJG6QH0?|0@#JIUnnG z)p7%MRN{EMs;3#}UL0;eoP5%_R^#ovrE%|!_Zqi+JdMkiJMxXeo9A1@`Nn`3UM2^3 zLacE(&*JcmLE9lJo}6H70`AO2tY8 z#f|eIxs;A1Pqw=m=K1;Ru_<;H6Nt;JQ@rb3FolOqSBJ+SPTT|+rMgJdckQRx!_HUP z?@@pn=Dz3EaP+-c4fExx%+okn3bdL^4XL`vSem7qI43*-OGpWfF}EB|^gNvIG|Ol5n6bp)HFZ z5)$Ubly-DFNrVwaFGx-3D?E|IXYEa7?J7$lUICAs z*-=X8AwsewQXkE;+jvqu(mc(duAh`=r+Qq@fCH+?s$XvdSo_N?FzhAXO9FjRx8~V3 z6Z0Bt}&3{+VFR;5+)++G)$3^*>CleHR0lP!tcfP#9t`?9Y z%m6(66mb{Y4|qjNq{wki$w!eP3n?O$&Px|Yi<~i>GrGvWvLZbHak319$cG{w7E$CQ ziafq3S_Dt{&$`H}Mc_0D6bJQ7%G=kn4(5JkUc_C}hHXdz3{!2r7L4)L{ zp;x^hQ-K3HF3PfliYf1-0^VnwT%zJ#?J%BVI(&fzq1TvAlrwIrqj$Zd@N5*4dZp}C@uFNt;^CjxfsBF55Kkwa31W#=K? zea|eVR@kBA+)t(9pP3H+*-uS}FGsvukDJbMtzuP~3jDBf9!-lhyv{OIKpPz=XUT~A zVLIQK&bOw+m#;k)rJ9SHhCj0`)(ZTpM4%A2s;Jm2D&Uijb1%!}&IvO-ryX+@`%F%`HH@i~YyQCg9^5*3h9v%T@*tSR(4ANjx)gDJ*?s8x8- zVpM!nrUH79IA}r~2trWNZ57upbkymqqSt;<=su*@+*Pq!@%+VjA1RW&np)wd21hE_ zj(ZOW;OE-UcfzX`ci)#7O5~74H^{0r7H4ks}mo1gW*Sw|LTUYUPQK3&$4DE?uj3 zZ;6UVYho(!OvT}(fsORl$cMZj~ec(CP`wU1z5nYa*T3*)tLn=1&CW6sK}e z2dgC!pnAt^fcwQiXHY7Wm+ zM+;e%U#g^1HrqYSnM2fbo9!i1uI?7E+>|X|xoft175&sqf@AuUzJKuiOvYy>id(pxm#O)Z87q+@zgev1L2GV$FAX#dhuTie10kE4F$! z#eS)zzT53pciSGX+%J2)axWKq<*M!V$_?G?mAkx`az9p59rx*Sk#YNM!?1Ds@s_O( zxo3tN@Y&5*sC%n-s-TuU)HPmx^0D2cX7*^tK{MPlS2#_bEBa&AY~nO`nuW5etGo8I zZQr|4W$d@x)muN91##zaR-$_icjcNi4r5=-N$gHeXXm;QM+Nuo_pCfW@3(t3%n_yc zU=)QOlcUYyq69cH{m#8h%M5>vkE#k?cYBJ)Q1O&;CGHA9DWg^q_jY zSG^c=z0%x=!`UMBh@9#U{hp^jIbd^Iv0~(ogZ3z+YL4W=)u<7cGI+4gu2lWI)u~c@ zsbo#nCkWpYN=9i)M|c`hJ57yNm8z?&4%_wOf2kNQ@WM?Il!X#`nz51XM;@s|ENEMwRqGDhZ>E$;?s|Qk8?5AdBQ*DMb?Xsq1f`Pkk=TOd zocBjMBZG`;86(I5;#a7Ha8H(stOtZ*&%-O4oAr}q6i5c|YF^yHo;W5>#+4`RM(v6vW2hX` zaRv#JNp2Q5CrjQa9>OVHA|kxhy;u6K7uC=ccGL7yNyWN>jboJN>7M<#+%jJ7tl)rt zfN9DYg$S@F&K*vm#+Ly$$t{~CB9jnNzHqjPOqQTp4iWMYnS!MO9#Ro`7m@dT;T#c} zDr*DSmPKTmkNfw8J6&X^BQwJnUMeyy5@yI!L1b7sa06K|@OnXHmM>f&BA8q}g9{>a zeA3f%MPx1_^Pp}P5w?Ew2p7;&S0jY zreDt3*ZT^8*`%)diW;!nKlW9uh7DkptHibJ-4-D}N7mwV zeVSU_HlXR#kJbukL+5X`0(Y5tOVpjU$-mH2J>M>Hb0rP??8^q>8K*BnfUsp0whJ`( z>UfU3`z$Ud>iE4~V1aDCm(~enijLM-2il5`|G7Hw_o^DN2+J*mF;QAu(ep7Pm33QZ z%2bf6w|A(jQ!k*SP@b6y8bgCesMgKAj_BPbrh{dBT$ED+9ml!^YWl!vM1F4; zXzCZkNYhpUIqIcuxH*t*j>=Q}Zw^eC-!FF!Os^hAa{vnhqmPAzRh+hvG`l6R-CVrH z8&kOtdSj|c;vdAu)KC9qOkrpI{~A;8in6{eLjOFbbRDrVMIHa^n3^s+7*mP=KBlyu za$^cre;!jyyfKA6agoEAnj@+hQ_256rnIVZV+vJzOhMwW$CS=5H>SwfV@h8kW6CcW z@-lPze;ZR;OSv(HmU3fCUnyfM@qZmtT1UAt^;1rSF;!}$>Z@ZoCI4wSVP4b2i9UFw zJHtsAFE^ZM!hau5;fEPcJnRQ<4(RBmGMujXFT;s-e#u{;Y3kKsflKD{8j+WW2iBP8 z%w~}*M+HEM@a5Lg0az1eHdFVF37nUNo3aBTLu4Ns8>o;dU!IyASZ|qIa+UFRt&~WI zS%Cz@+?uQYHak#cF6xsjR+ z11*x;T-v%7+lTB(%o;WuQ6FqnwXGfs7 z`Ptu9#*V;q4KI>@w{v&sxMvP?Zf|ckWlv>?CrHjctez=RX=h-$CBG$}8^3q$3|!wp zen0Cx8#AOiPq#Pkl-<}$$q>K*w!2ol0ymkXtEiWE1#WIWA9w8=T+kaZ<#Mo3#NL#1 zfBz(n6H;$EZ*f@aP3P^<;o*_fy8?F_0TFpuIL^@(xpohirIVHm)kdgfeWZUe_edwP zOeGT9@%3u&-oS;x&y+i9I48CJaPPiA>#CCSrJP)eUg#+!^sgILwT}Z%Wy#{mCx>dh zGoSyuOWpc$pp{NPr&sl74d)#4cd4w81J`Kf*xfL>(Gz<<4vf($`izOBr0ox^HfIl0 z^$+k;TxLgZJrLMyNJ6bcIzfdG1zyobus&_k0I81-1$vsN2dO%Td4KLqQC$uP^0Y*W z2{DlK{iW#AVY`ngFkR7tt=NT7vI`BF$Jq_3Yo5_nMR`QV6GDUURnZU5q2UZ zZa*4$LZ=M$IRgb=rPdscYRME*UP(EBG|)=Ru#Oz2Q<{Gg=;=Q_XpiR9O;PWC5(r2m z=YJA-R0~ei_8yv40gvc$9;oR(Wb#5VU;w7JIb#w3;T_&ezFjbvP z4t6oO#IJrnSZGAPw}bNo=9l^Eg|~w3l1tmc%<3dMN7Rf5gAd0a;d$yjsar5La(|8B z5<|^Q3-&hu6>Y=0Z*?0!`J;MLr24>rtX{;azK2)ya}{EBn%}ll)B6UWGNU!seI_{6 zP*ZLQJ{-H)%-F@=abx+5C0S|<{m0s*jK0|AHgHbYzt?d&cIyz=eYZ7Q$=|6TVLDeZeIL}u^%Bl2V=U~C_2jkM}$ALgA`u(7~A|u#B=k?48wrpIS(fuw0vUZXG zoj5sH!)b$z?)Bqt4kkEpEJR-pi^4@2!M$2@#(?0KsKP`C%5@YzFfgic;K1OOH=(e8 zf#AK-v>wjrj#HLu5p0yW3|TpwbmqEYf`M% zq-d?X1_gTryjp>+QLAc`8N5ngcHhk4D?Ujn$qYtx%DaPuBiqTv(y#XfsX}Vo@BO}m z%jbMzTKGc7A?fxdkoAIbeye}z_-NI0NYLq0lF{AaoL*A>WNu7*lb>9wzQEI{kfo}5 zM=ee%W_0&%jVM1RIRY16N~fwkYpI=H>LQhz~eseIA*hi=s0xtBC$f4TG`{k>SHA1fzQtiK;l*BPhF2_4qoOLY1< zPe^|+(cjPL?-$C+oYCJ)b^4`pGNtEf6vzGQ_FpytiMmz>9fmy&(Ys=bo!!l-}ChMyvqmEX~oLe556ze-&t!5*WdGXdSSWm1^Rn|PT#4&7wPZ&%cU3T@5MU(SUH(uzNg2959^H6<%ACF?rUT~21Q{+^@L7nPIA(cklQ`bzyh-4n{wKbGo@_2qhJkFy|A22zIQv}5qcY)KG-7jfV);ojfvGu8Pm*!oBuV3n(ZNQQn6~LHQ*9$`}sburOsdVMppk?Fxs%D@~V-xAjmg$^_XCjmT2ZR;JYhG zA4^O7$r%0Lx}bIqQ)YeoXD3(pj+0pK6}e$d@OtTf4y?h@RCde%^fs1TZtCtgW8H5? zyZ`F!U>{>oWO8;e$uQTxqGpZ_HZ-Rcs-m&MxyBgv!nj~Bd-7E5G!iZQ^!mtwambtF zYN$>Vf?wV+L3m__h&5`cL0l-{3gD2SdqJlM&^F-A~ zFrDhf`~6ibd?5Y<7-5|PKm}bRGgWY_FaE1)uqLYTCa{A8-V4?;Cl#vc?*%6q1(9}B zgCNCzY^?r1EqK~TpQ!NkU`m2?Lx!!|EVENm_D`n*T-t12v~OG5nlU|ih!W~dQ9@pfbTCI}!I z@68C_d&5QDse0->*H)nz+2X*}zvpL=_25qrsXG}v6_H0b$Q+(L8MNi9| z;GJT#{bx?_dUNSCwJt|S#|!F2PB3Z|UWwh?Qs*D`r>d)RgZHK6i-@evorj7qC;4ftIQ5A zG^ahKKAatN%?-Dy)3bw(%<>n2RoPrh04Ext2|L# zHCYh6(p=bC^;kf;{3dF|g5b`|v!&b)DYsq7=%kg;EDT;@&giNpE=2y_&T7j-ub!V5 zQjeC$7ZnG*51*9CA6VqoQ{jCsfcjd#AFOTW)lql6AH32(v2%Foq~;Z?sB!P}5K`-s z_o;P))C$N3XN*SLpk>tJV2Ajxc=qE}@ugr*b!u_&_Tc`>$mI#?f^5Y*FA1(P>8bNe z=wo^+b!qSg>5ySdgSVKQuTlG!dJT8Jbr|&0EHG z&FQQTFZ24rUe0x0kecvU;U3fODq8gAa__pF72b9IE&ADe1?2|RQe#)3XL4utk^JV$ zeprE?)1oI|^hD%Hx%AK8mBAXqczbSTuwz}WFr4Xg3w*SwfFb&!1ekF_fPCZ=YTX-F z1z)M0DZNt;@qvzQtAZU|$_ih|VN)KiBpxgrm_ipP;a?6Ax@DDeSJTO;xjy>Yi_dGO z;yz)-fd@(AICz@)m`Z$Jv=*x54Y*&Jlck5qJSEZ9<#70EU+C+6wQP0pYP0Zmb!K%i z!=!?=NU&yS3WZndQ`SiwvL-x%Jcx3*nrBh+@PhIHCh-)e$;0@&FZv)-egoyDfk*kQ z_O%>YTq=~C2oJ&T2*Ku1zq)ICa7e|x2}~71O^qJp^`cI0=Q)D~GO#1quwuSs)`Xa? z8ZbpN|F$D|n_2ibHGBsHLlvrJJAwm^;p(cL!CUMikriAaZ^I!wgM$roY%LYs9Xytj zF^L=ydc62N)a@53kxRRIkDBkdQL~GK@5|={dxO`>=eWJWRwiL(KH3}XCBN(KBOS8p z-uq+_bX8;a1xwA}Of}%+;Lz0kiD<^f+Ftyt_*^~i6&_({f3SLbspP_^GDv{r!o!Fo zj`Q@R;lNmII*_37FW@%t4zmsfyQG{EIZ*A(VyN~(A@$>dU|sX#1Xb-I zpIOx-?GFZD5npHI{X@ZFro5y&9%aI327UdgH{nk|%40MoC9?Nu@G2ud%P;h9%W5T7 ztG8sexJ#d`S_H(X!^LVhfFK@&?75qM!T66yhid`4Z7|h4@PDjul zL|O&sI{0C=<9INfGLcgXig*8;`4NOM;D(f6nEewv5{d3D(__+?+_Lzx&IDLIuaJtLhQXk*az+4?u**dxn!igCFKZ(ni(dU%`6nPzn7% zaR=UddizjI)!{_&^|}R8qAx72&(Mx%{vT=Y9bZM&#Er9ib5ls}?z!nC1oqNRcNE1N<1PDk8&7id3cg|iEpXYhs z_mAJ_!-tzaXHMDOvvcOmd}qe(a>GmLU9c<#z}UoAbmWrbn0}0DzJhl9BjYQ6ZW)&y zrCv_%j6&7>#e`C?M-D%E=k7;%sB${r0zH5`a$RwR`pS8np=qbWLa6N(M;y;%!WGBw z!TH=b?lX;(03Z-1x*wP8h~hWx9rWmi z<7DturpE`jT*WX5I`sQT)aIEZn*O-yhz(BT%Jr(Tm@AR18kL#P93>r@T<%dBMv7;V z^UP6{Cj9Q0StpCjv*gzcS()h>Pt50}9Jc)6%q$)7XXAL2=VK=Flh~yqgwmnsVA@z0 zLvA^$zP!N^RP2TK1`pnPd4mWcG?iN+ijXw_dLsy(@ZR7HN_>GEOt@{`;F#Nvs*Ze~ z6O4C&oMNuKZsUY~Y}^UDblYL@khVKuuXtCr?pW`Ny54aVFC(93KAt8I1_}Fjj&9BP zQvgrzc?Y`!?Z3Zo2xZ=J)a6xj^NyoL`7CZAWps=t(bVN_)novg^0vAhe`W=Tpb=*( zdurcxtX1l!{{ijuKg@$$gu9}RLaw5CUPWV7j+h6PLZSrqr7*FVsT8}1HMYv2HuoIe zY#aVKNGtAPXTFEfIrqRcE-s)u_rNqVo*cB8#+)Z;+Q7`_9{z)AG`jCFt0jYJ;J|?3 zUn=r1AxbV2HV1EN0Udlxl(%$q?q%?%7Rbr`b8pJL4_0!~T8kcwmBgAD?*GI}n$naAvj11)4ak#ia!De z@y_Y!s~m(MgXAD`7T_T11qWZ@AV>e^AmMZdeeh(SJpvoqzyti7jr{e8BlhJO*MW|# z6A(&m3c#g!49QaD7+@*c7=u{~BGwZXI682zHw(Z?9`ZAIm6JRQ&V7uce=`x|PrP8f z$98{WVWM-%L}cG!A`hAVe=?Eve>&P>B#+Nu%tTU{?%z!0ttaR=X910WV)aWIPr#jI z$6z1n+~9w)54!cl@um7?JH7uDT;n7^nE&D$9fEVY{C_Zvhg|+D!`M(giAVaMyaFa; z$t&haYcY65nh#8)2Wii9e6o1=*Pr8)#T`Vx@ZLfF7ccJs{NW_``@i@Def`3^gMt^1 zstFsI>?K=}A1bq{Wbe@M4nr^y@T(LbGv!ZE=J2<1O_5s|?2p%5&giFA#p{_tntVGm zwrbvo2*`Rmw*a%aAtQ*%^F4S6c<_uTT6f-o>9oDih-w0c^pT0Lb* znGgaZWJ2_`1%y^lnS8=qBjeyr1E?hkcd);cC(5Bs=Q8my5F-tTAd~t;XoJ;9jp%fQR$Todo(dwg>gsous6r&l?{%knky>~w znZyG~0Uw6vJY9$$fcpAgs=VehK$fF^n|U_ZeD;Z+4^>;50vQM_%uMFtaC`?hgQpJ? z2Rx6|))$doK*k4rVEsR7IIvPZ2a9Olj2?(G1vsm(7tV?poeX9@#Th+3ccZkziki}d zo?td|XUB7@Wd4y`R^}KK7vI$K0a0R#{!yf`%5?iWk4%3>s2q7QV&_9BO{%@GJ;L z2>O$%*ja-%7S}!tPUlYW{lgJSVh_+syrJz-=P#uv2wI^QG@}?7zJa|pD9)vQ7Il*8 z6ZwFS4K)!5Ruf8Kz`t%Sr~L@@tZt5{n=WgTF(oj`Y^G0RdJ6=K{{JkYB`Vu#SV`Rf zF9xkH39=3HUYHE}vi;mGO(>;RQ12|KO{KIletE+&#_i>liwiYxI5|pd^*QFt>!r2m zC}^n6slF~Kw0xn}LP|wWsLJ@8iJq;onvbn)BCAL{!P%xWTm@*Dk4t*=#6uQs3`>uYhYTQkvqIs22XP@umxmNT@Q+pkoNm5SKg zo{BZlim8YR(y)QnP<@_B!y9M~#7rJ`E30x@g`4*wbx)6spvw)kXt9B-ew0ve;Ji`Q zz9OnhH3XmF@Z=4(&`@*_?GzMKYubAq{!`l1hYhv9>Volftf5v@y=^CZBaDaZrj4|= zz6X-NO@Z;%IeDEZ)+~szLq>h6IV_CNpRId@>*mtvKzJCu2>^h zfUGyj)B`O&NpEW*3hT>ey@SngOMN={j^<&?;68q2C3KTp$!Q>%(ps?c?_bVaM%-*4)g%;%}gV;r&dw@p)^(PiK(7yM7?@y z)&0M##P^t|&?iqL+t9V1+LyuGxC<<%Lf++sE(Z0&B3RIimh{p}sVghd;a=$Cmqzrg zm-QyA^~UF!!R@4ga8-ezz(WW1(dwz5($u^U=+88wFZx*YEBk_mLgSS?`cC-sNUY}i(j-o+*fPPyIWX4u$xg))UqGu zIWL&L?x#HozQyx|C8Ch=2U{dCPtUjSYvXuZbAE_bmx;IhA?UHKP5lt}b)M;=?=R$4 z_v5}kc5BGF*NMitwaSh=CMULli=j<;;%S$+>bzUq7W(aeHqkgRd50T}QWFoxC^U7& z>!AoSpfyv}OAW~X6U~Tbx?3FP#QtiSld47)@gp_FP zpd;8>Co}B@{_G4*1~a)s3q70qYkgF8TWL?!AWbM?c}xk`0|OF#S71Ye`Q;e(o*Euu zpRS0%bb5QR)?5AFpLPt!P35+rUj}QZ)Nl7w=BHW%bz=*<`>A%ok;#Kxf@jZX z+7VUVUYb&dY7auPxDIj)q!zp%1n`A=arPJZ{?Pg6FSHSSoAtib%9Z5Xgd%qjzs)^( zn|m1>XJtY$cBy>4{?U{4r8ZrOU`oMx`RwqIL?T+5n(x6Fs`8aa%52(;AF*Ni9!_Ck zH+;o-u-H&q8xRssMy;~Go^QX_Ix2o^b<1}q_ZzKed^S^aFV$C_74O2(3c3jolHp3C^(cq z92=p@luy_v#}cgAkEZPyt#n8VHys5>8H5PN z$kLByELWs+1(e0m6vJg_ysX%Pikcg^0vciPB4~?{iwu4=7-b57@>8&yph3)Ll4&a9 zCLq8z-W7$9)yma8$)!;Ak_?=HNF?y1!7H4_4QHX@Y-HA4}8ZK1LqzsTiUA$0+TL4Kq+|U&l^iYMMjB>k{;9$TcP%2v* zWsoex!An6DZICPn$qHOD2~G_-sIHU)W#D+I#IUlt5OmGR39gzOm6wYgyhKzCe zpy4`GFiw-MGk=c9)5~V6>oVQh6$viIlCJ)(7RCzt7T;>IAt#vtiX!NTaNdK82n5r< z)pjZC>CFjR0ejN4o~SjnonN(wCQZ~3Wo!Vgn+U#%7))0uYJ;leu0jV}rKxob2MK1K zJuDY+>g6!Oh$hP3y@(VHw#x1+Ny%FI*K&E#Y@1n+S?X@-;0v}|0BJwnhf@ZzQT3IS zL1{b$&OTY*P!Oz!znhHx1N{X~(xQB!2Ny>UQpHJSPl~+Z zp5bYb+5^|>c!v0x*$**bq1IVFyoh=))M9K&k9X6^g<$j#7twqasEg8R2mk(*P8az1 zX*xY!h|@`09jdrUdp|OFF=n$!hGD_sdl5KAFR0y@ET$EUK)qox9pK-ciz$zPcP}Qt zbS=iUk6UFZd|uCh0t4AxT&v{ODqNK^4=<*s=~{yC=WkMcuzj-p#0bB|5m~YX!CHOXymY@Q*+S{BSh-0##B6uk{ zOA1%O9|-P+h{y0yx>MpkNS6*PlYyDeBn2{~K>^m@KyokD%8l5-rC?t;ErQu0K_fT| zzWx`?BCX^EW;T<6$t5zYV;(X}e*Lg`A;1&9>?C~YOfp8YJ9ba}48DoX&A|W*feUgP zGc%V-;6ehv_^l+Fph6vzz>XydlmnV%;4GL1%+V6l(9L8ZVUZAmNxb|qX(>ql=8xbZ z9hPY!B85v~Cxg)pK_5{1*)r{P$cX?Jz~!q2*8$5}xYg5rxu!~9(|d(hxCeivzBsy`m8|E_721zrJ=<1le=zIW zkfAj!m(1JkBpW-$!R?8CpWN)WGR5YCCuFj8hnk9XN&_frmBp9ZtkMRBq;RW+Huk@S z3(G7_8-p>Sp3HkRzA@ z^x!h80W+Z?tF^MPP2~y%O|Qv8(_!EKf#ar2W;WA@86z`AH}k`7HZVgoo5{frH!@#j zrigxiTdhUaW4AwP?`Dg)o0F>Tws8!EY#GPf%#w-K7;yrLiW#JpQjI|y)z?7TGnrbg z(Mmby{Dp&=-N0dkqg9R!?GTZww+M7(aB(1PeSuv3eLFqIv5kwIhA^C5l-wpPCh9O3 zML?E~G<=Lmx2uRWBu9uxZE07R2B9R{>&SSPPVt#q75zLDmo>^5C5^ITWpB?Hnc6I6 z#4dcnuoq%O>t>!+;B@UHovw{{fa~aPbQ9kCWe|(Z9L3cW^*!AXih8+v8@-Wb+gqOj z(TKn7cTxYY8-me$uD(WJgsVY4e+>Ol&a#orx9wA2Jto7_e*js2oi^Jx^$D;R>$RBZ z%}+4LkqT^e9GQ}H!Wy_rRK&^d)OWqLT4t`-x;bV(1tHE}NV<)XlP}h5r(g}Q<2k)i zgLly5GBn-;;>=;Rjej?8_1yJnYZbMi3@!Wt1#5=UY5v`{)f2Eq`%SeUYz+re37Dc6 z+py#k0#Qv?OLTOG9=|F4xlmGW^Q8YB%4{n zHAaR3fpK({bQ*?-#~7O!_ZFSpu2uIPgD3qon*w)e)l1?J_7O%*zwc~T_(He><1+yk z3Vy;!M2Z-OJ$GnhIDF%^9opgGo0S-F$Ke}U*~7n-y%P!;gdtY5w32?CiyF4dg-X%L zGF78e2iEoVw9bNxOGQNCtX*0Y8T~jd699&NTdy)@0*t3Bk1&r|kk??O?$78A50A83bep42MMrbn_>za&=TeYC{SES%naO za`yLB%>F*|f$;1fNSNJyPVT|8Z*dfF7DJ3Zs$J*cnfDqu4)u&arX338y}SK+XdH5u z)3@ifN~~1zoY#;Pyd_;aucZcMu2fi#gnQD~g*5ttRwi_QwoIUYOBEyW*KO4t|6?|7 zzo3;>bBfTl3tD`!S>qwl+4vBS@ZY#qX)|C%AY7Qz4pO7vv^0_NBNpsL8MzgRzYWXj z?r)GJ#=b+vE<(V&{07Bcgfaq${vj8&mg*NOWNl$ z&h55KS`FK_$9w4BC9Q~UFaB^`){4ZRc)W)r?%ItCv1$Sye?|ORF;;B?u&?wD})`9^Z(O0yZw#+~GP=_nHN$gyoT(N|?lq=d>%{Fr{UGd34btzE`EEsR& z!fs%oGhy(2+dRyd9M6kGi*^Uc?txMHkcrG|0Y+gCDOxiZuMaUlyXR`I66cxzBLvv` z7^g@CKE-MAY9i8Ca54M$A;xD~E{+9g=RrGdO(!$)FVt~PZq(h*g#e4X;HyyFqR)m` zwTh*t-Uq=r){x>nINFPu#o18yEL^Zw9`mQnfm(zo{i=3CQ71*w7uUfA=buA6U{ph0 zSu)7Qj+Y44-HCA4hbjlbJ?~%Ftl*xmJc#CtTTzER=v$Akq0xC3fhP|HyYBCyYfP}T zl_&g$hG>rTCAGc_o;b0aIrXnSG#Y=G#2*lrY|u1J@bW~gH-uY&SKI`NGX+mPbJyaD zJ@Pe=Qb2Y^Z`k(aX0-D+{KYIh;{Y?o51@7*10bP5BhVFO=5n>e9Irs-6J$7`_Mvv> ztshW`-0L#JvM`_Wr4u{s{6jQN(L;+TZ$Uvg0t!YzT^(*jaGNwPi!>s|yhD_&=zZ1Q zTdAU|ms8g#P$yM)g=I294Ls+XMin;E7&XOjLn&F+|5T5cq;WRg)oDMIbitDA3badS zshZe__j{6yIVA3U+(I`q)A6qj+05nY9;O4!rn}JtU`x#AA(vr4=Gi>6=>ygMTWNp~ zX0suIX8B+?Nn1hiHE!V>!yE8fTpa2-=A+kC)UzeY?yFZ+_iv$lvm+y%*D!~fOutB; z1Mn2O`RY++mT}QC4%P@wxr97JWzK_d=86?kdye5}`|4BFJ$M*?dTsmW1T$Hu>cbFF z`U^ij%(j2)9-8W>hpXp@dY1d?^%V7VNy_!tD@My_@jIt5z9pspn~L$f^!hxV=&2B( zzvrXwZB0`hdPUng^s&Q%K5iw_X@{O`&u(pww^8+6K%-A+dRTNW&j)#sf|z%KnMze6 z8$Qn@lB(-9d}ntv^U+D1u2(OKKjd~Tuw7ewF94IH*%=eNHNca+_fFPzx%Y+%{a}fc ze}_&EH1lwN-`Wx-%u568w|x6tWe{mr5U4ZTepV^K9R z{G@&iYOuy)K^tlsq9ZExQu;DPuiO0*zHcz-&Y)q{m(c}`Y5Y!f_m-hb-n4LtX@D>J zc~e9hs(3a|VO)PHuqXT&Qto?49Ic3LsR!u1OiC3`$B`DQyVTTgs79z>TK#JUy%nmL zQ8#Ua*s6c1&a33P6{=rXY%_Nrq|@Pgaoa-t@i<)nM!m6uhDLz&+6tNY$yCgh+_R$?K4_4hgYjKt6QYDoQW!$l^9Q=^@k% zx=W1G&#O0G)FT?J3nZUM>*XBB_`xAU#2n^uv6Od2>#0#UU9JojT|>PCgRvJ& zxEg4~PpE%Uw9Dak8&m|y<93UR>aG}G5}P?o7_2XTFu@?di;R-DSru#Fpi4#ds_KOm z6dZ$B`NKA97NZYQ=T`D;kI`Yv!L)uVW=-o_F?65L-9!0vTXr8^T>mVHyN6)<7nHmU z==R7rQZOKv#@AQMC@mHbqdx7i9v?6BeA`}+gPo`X?dgDm z7xU>>2fa-9ty_U(3B#iQCoihGgL~<2!i3O+154o`18$c19EI4C<(}QkoLU4jtdCcQ zh01p-SHFjm`$Fy8%XrV|D^_=+0dIiErgGKCrW1Sf2fSHhhhC9Li{H>ogx%kWs?X4B z2x9VoDx>mGtw`t5s?;k{`ImAB!_Bb&h{~VWm0WLv@nL9c_a@fBm7(+j3Zms)puzQJ z_3Z@3%Jq&=oZ{qATJxr!tp2i<8g$fKsX3p~w;lC#b<12&)lT|7AN9LzPl;}NhNAw~ znvT7VzPF+8=WnC$>_iHGNB5p-ARh*DRKx>3vAe42V%ZfqlUrUt5(}dy9(1LF@95Rl zpVDa2JK(P;(h#c3M!OCnbp4%o^l0Djx|ugIfZiPp7k_ZvBpi0IyUSSh*w2Aff4R3a z!+p2A#c*$S*AEu{z0%)@oE<&%2-^0E-i9UJ!2bC7x3{D!{qdSp8&W6!%_>V@_t)p^ zNvU|NRUoZbhM@+4^9loS2nIU0*#K;c@NXD60K_Zei1-&y2RjDn3-yOH(5N#Sv9$(` z1`O1zsYjdAf`NJn8y+_e#1{&~kzwc2Zpo+kcHyyb;#1HsjU(G< zpvNR*KhqCd^e37AXHH?t^9&xMkK=iLKSb}~Nay}w8iZ94J_dgd(d+XR>U^%pxY&0f zAJV<*y2n5X&gzLsT=x|Y$%SBCARF?zUV?oAW_^y4m&MV+&#jq0`&=K)-3%J4OP`3T zL-nF6d=FL+1>N#Ex;Rv??!UP#drzNLNz8S&rG8)Np9gQ?$-ELL6qCL4g)ZF(0>0EO z_W?`?=PKWS&Q-3Rs94++lZJ`VB83ks@3D&O$6FY#b+Y^LJFbT``=Cl1rg z*O%CT@Q#bz*+nqd90pLhE~&;PY0C^W)1YPK%FC#PV*QHh%2kbA%d$BP>jOOneWge9 zL8bgxR?joO(oJ?4IQx~J$o1X6)-8tt^aY0L3zq4&7$vK@CbQQ9_zVmhTsH-EIL1%4 zaR9Js>`Xwb(H{MK4t}kF=%ZerLbXR?K~C&RJxA&_qmyO2W2_%L77_dh_z(Q2il1Ji zRU`FS^~7s*m4A=DMlqxGhU$bc>OKmK5bE!wQThe-SP;EC+Pa=FTECzyrw@{_<)V6O z5~^4D(tt5mb?O*gZx5s)W3B5sWA)$E{4n}@oV@ld8mD*nDZUpgCIC59((qdtvH;_2 z1Kr3i9)#n{;TBXpS??KfVYve7*no8GV??-FC`NjO$xUfSvi_!;J)UkR>y5&0J>HG8 z9701^gz~ApQNgGv#ucT8ldz6XR-$(%>4tj9q~VjWo}MhCHIwwRk!-t%>bnuTZRCcY zBEe-Efbaf5cP8l(FKe5kw&_3VxltQ4S?|fOYWQT`kaO#b9rrDez2)Y!80>#P6sC=n z_0AS-fs{TRE2Qh>dOuRm8a;X{R{jcOZGPkQQ8k7k)FX* z^aK7r4}8pAno`X_f`{rl6Q9NI@icU%Ubkp2_x6j*$wi?jMHJd3fv%A-;bG<;Iy6%+ zS_F{|gE&+zM~y-fVAW*AkD0V~PwFi6gHemmf~=gfb`RC@7IdDa*9l2qi;ls7p<1}h zwjTk%gfyny0Lsl?$}_X{8a|JF&GD3VC?K?QHn&McUO{g>TC@Qk13D=N?7LmiOpTJc zJV)C^@H{94{g+W9(|y6QahRjBar@)4fCVCdHQol4tG6WF<_iuY|?}I=xX|8 zg(i1%M%03kBCEfLDiuH^IP2Q+Ugt3MsGOQp(3ufQm{ZSxqFn82>gk)NcT$yEv~{5# zQ*U=)>q(sD9?qhNIo_N9g$p8Ug2Q#d8!(2+?8sO3`q6ZOa9w0WuiwR&g_#V*sUm65Lq$U7fk@8F-! zUE@1FiLUt-o#K4J+;#FYbiItw^*L{X6M?QbE%SDLcA3?6^X2+5_3#+ly&PxWovW$i z3NYJ+Z_?K*^jLlWS_nEt@C`&7MMQcU?OLJ#&Q`b8E5Y&cd)E7_X5bnrOe$sQW%;*L zhAxBoeU$;J;c|PLm!UUMPmQAseEmzS)Kz*t=j}}N-4l_(EMNj+@U>c{m$Qa^4?{8{ z0Yi>lrN6~Z&##hA=>@m_gWGv z*b8n89Z?|sso_-(p_AkP^;n}<36{4zndK6I3ns&gmPYf|=mXTHYe>(;iRRZ<)HqYG z7B+z&3v^@t|KLN>#rVvZT`b`)7Ar{mz+LRm#FIuBb=F#4e6$u_e8*ito)2_wle#EG zTSXU{YhQMe#a--Fj4atj{#w1CHM{*>zE3gs%kmG_=_PDipt~sK)mxy!+Z*)WHas%gxxs31 zWrNi~+xW5pEQ)Mpgk_OO7_w2nVZ#HW-kbCgU(U(0Or=XY#OO(zAeZ0~uGpl%X3Y)X z52F+K3rbJ(Jl~|BR03D0Dl99@;C~l3>z%@Q|7Ilw@87(S--H`{5NWep#nH$gbW_<$ zyMNF#^zkpSOH_xfT+OJ?rmf*y^s2U;r+X-Kiyp=s(!MQvh1U5`L6u;{OLKwTM@&q? zbh}=|SJc={e1_^K*y^B?Fq#emZ09wj85|X{+tmknr;yRy4VwbzW1RX7TA=re%bq)K z#S2Cx-`!g=9g)U;NMnyN5?)HnDRjFYAC}3bSa1-GtThLiRJQb@2sN{~4$E$|_xQup zpSWF5s0jEE>`TP#jUY?SWI#C_`ORb8U^W|#EYK*&_x)qLj)0|Hk;eSmn|lX6RoS7x z;E1MGcj~1pGi|bL|>lHuhIkvOUf!^2+1WOB*8HoJe_zl5HEgIk$cCrTQzob6H3e0 z%LgZNn*%C9%9zms2@3l)TmOP*&}ok~qi^^Z*NgY)D{M0{lQ;J2CGDvL%v|KgVMnA% zd-doT%qRtUi+QZa7)x3SygCSswP&wBIASx81)bU+#O;*|wQGo?np21d&ep?YU_QkY z!~xI;T3t7r6eildiU_nHxevlJOr>-A7vjke`}8jM(a6$;lycSE$B^!5YFEcaQN8_m zNPrOb*st%>Pv&F1>bNgn%fJs-IiSZge$agoqUG8+`u-p!y0g+hGDV>&B}>MUdPwi1 zXLGwR&<<(C7$5oRA-#I^qef7g0x$IqCio9h6bRBS@w5{J412wQ2&b|Q+!|XyJisLk z86Es|SYK#Qs&3{Zu=IDqAvFGo9_{yw95|oO9}Q_skB{g>gVVX?UT(QZG4@I*=g6P* z4E`pn9@QsdIo$;T&{qH_JW<5cWpwzMUMnn{OGiVhW84)$2n-#ZL*}5+(2$c{1>nI` zd@&5c;!mRfalIaY5`foF;kRXB34pNzlEBR627rJ9m;hV>9C7hUq#f6bg*@a6Ag+K4 zO=aj6_jLTYey`Pyb{u2M0F=p`0|3c*MrZWq$lxWdfw_fZ{g7J1d$kj`an zZ9ww4W@lh+*teBdoq^o2E`iRR(GRJ+D^dDcm=rcJVJmFzuY>otl*poOQ0HfHaciTs z9I}mxFo$h1WLr1mR$cAQV_e+y@|BA7&7V?m=q3drQ}~QV%6LRu8@qJC)N8`2wkwc-2YXt zt$Gru{CV)|U2tK!0M(eB%we9)5#H~iO=g!_IL!W@NCPkEm2BA$vT6PWD7?-M^=!VN zNBO9yThqx)XnKxE*}~?7t^Yvfk;z1yOr)sGdain=b?OzU%&wt_Dp%0MnnY@L1!}J; z-OM{E8-4{^F8l#4j0!E+b)f!k?RpYpju{vX<+_6-&$YRxY$$cmL6HRlce> zj@o<_9oVr9eet4v5#0$I<3hlPWR9T;S0T+EHfh=~aiO&9Di$@+9T%?Z4fXxps0akk zFo>L)%c;UOF!6ig^u{&4Q&j$OR943RT*atlR2c;4?}~8$t}NzurCrzbVrpI&x^zts zEqbGis~%$H$6?$!H$wf#bDV!b*y@R_GUU9j7k4I}Ku?V!22{ru-&j0u=P|GAjTQCx zE;Kez@1maRLl^V(Mj>Z;I*AHE9A8KnhnP^2s^5V6=X4)xeFFjwhWzjb&Sghh(ViQS zdT(^0-*4#c!}GWy&P#JS#3#GU!50iP9d7D19gn$gk+e*~k!{*dJ>E9{ST-HKsmHuA zw`&w+jn&Ldt)vlra)2@G7@8oJqr!O{p=w(PJHUEQD8X(>YZW|!C{{FV;C36Zkwb-p zGX;b%^n0vFbZFy^9Ky%&Sd<7av4ttOfD%F|NBuW9^9b8{1PBKZN_SucND5L+Ft&3$ zn(@2dCUQU19gvBOAT3~B9#F*8ICC?NsOt>(73cbxw+him1Hy{YUx^`wso^b%UsIZT zI^EJEmFj1?aXuTxIIq!N#<_9h$5Ne#gx{FYtLnUSeQ4fo-HgoRX4pLVmDUegQFbA@JIXKD2fu=N-MnQl~)!?&t~O<9Yo|l|hh!PQxyO z#Afr0c=p`U%PQ4pawSl$0KZ}*flUOK5X=n+Oz%0)Z5`pPEdn=6G5PxIk;}LlJ~NLB zhi@xk5EhAmGI*fH5oI*T=TbVItsr zfP27!(8Bi=v@?@@|M#}?xG%4m7rf)Vz>WhAOQMa{Do7bHVI#e`k3|lFCF+45Q)dF} zQHnz44O%Nz0Ja=!$AQiTbveGg^Y}pY0R)hZFl}Xff@K1MchEHM#0ZJT8xK( zOV4?+5%l&$J*Lce(2{Uskdpip342N+=UOcd5JMTGG}LsZjFKYnbDH;1Z{Vd31=j$r za8)x$Gi`M+*c#HhUCpSKG?j_02`J$nH#i$fupU_2JrsY0Lr4l?~n8^-vIUrVbO9FsCaygcie2T zgc+xYg^4m#xFK6{c#rL6&awU5iX$ig9wz^f6$kldH~pczTBUQ#kD;ji$BN^@2DX`t zp&^oHp#f%!9XcW(W1t(^mj}59Bh4_XKjrCsW(;Nv5B4i^72rgFuL-p(z=~a#MEwh} zTkK7wu?2c1{lF$HIPX!~96gS96+riw)0J`x^oqJP3Qgw|E<~GkNfh-Mm3O*Qy~p|@ z_3&KJZ;$nguyK{8z`r0hEjOvrUwXX|E2HlIBuvFJks_z=#J}{Y=sRaH))`J3ixcf> zPKoF})#9eJ{(|X0eH7jPOOL3`cY2oFUt&zIyjSG-ND1H^A3jhhagGltm5|}X%uAx` zPxLT5_T{7iGRwd{t;Z8=Be>t;Pq2;3G_gojTbNZ$;95AJJe1M;@c^=)ynFyp`5vDs z`~Y4&u^vFNr!ODCST;Y6!-qSTx<1uo0`7FhraVD46w3NsGicsZD0U9c^%Q-^593@} zYWZ9~49_>u^?RzCQ+J}mv%0AwRKnl}+C)V?aUE{77QU>SMlEsOMk{RM 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


    iVsV>4 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%0DLoq8`Z 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 diff --git a/rust/spikes/leptos-tiptap-spike/generated/island/snippets/leptos-tiptap-c355e6ec24c3df4c/src/js/generated/tiptap_paragraph.js b/rust/spikes/leptos-tiptap-spike/generated/island/snippets/leptos-tiptap-c355e6ec24c3df4c/src/js/generated/tiptap_paragraph.js index 630f3577..bbd5fc3a 100644 --- a/rust/spikes/leptos-tiptap-spike/generated/island/snippets/leptos-tiptap-c355e6ec24c3df4c/src/js/generated/tiptap_paragraph.js +++ b/rust/spikes/leptos-tiptap-spike/generated/island/snippets/leptos-tiptap-c355e6ec24c3df4c/src/js/generated/tiptap_paragraph.js @@ -1,4 +1,4 @@ -var jv=Object.create;var Pl=Object.defineProperty;var Gv=Object.getOwnPropertyDescriptor;var Yv=Object.getOwnPropertyNames;var Wv=Object.getPrototypeOf,Vv=Object.prototype.hasOwnProperty;var Xv=(i,e,t)=>e in i?Pl(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t;var M=(i,e)=>()=>(i&&(e=i(i=0)),e);var qi=(i,e)=>()=>(e||i((e={exports:{}}).exports,e),e.exports),ti=(i,e)=>{for(var t in e)Pl(i,t,{get:e[t],enumerable:!0})},Kv=(i,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Yv(e))!Vv.call(i,n)&&n!==t&&Pl(i,n,{get:()=>e[n],enumerable:!(r=Gv(e,n))||r.enumerable});return i};var ot=(i,e,t)=>(t=i!=null?jv(Wv(i)):{},Kv(e||!i||!i.__esModule?Pl(t,"default",{value:i,enumerable:!0}):t,i));var P=(i,e,t)=>Xv(i,typeof e!="symbol"?e+"":e,t);function Pd(){if(!Fl&&(Fl=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!Fl))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return Fl(Qv)}var Fl,Qv,Gm=M(()=>{Qv=new Uint8Array(16)});function Ym(i,e=0){return lt[i[e+0]]+lt[i[e+1]]+lt[i[e+2]]+lt[i[e+3]]+"-"+lt[i[e+4]]+lt[i[e+5]]+"-"+lt[i[e+6]]+lt[i[e+7]]+"-"+lt[i[e+8]]+lt[i[e+9]]+"-"+lt[i[e+10]]+lt[i[e+11]]+lt[i[e+12]]+lt[i[e+13]]+lt[i[e+14]]+lt[i[e+15]]}var lt,Wm=M(()=>{lt=[];for(let i=0;i<256;++i)lt.push((i+256).toString(16).slice(1))});var Jv,Fd,Vm=M(()=>{Jv=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),Fd={randomUUID:Jv}});function ey(i,e,t){if(Fd.randomUUID&&!e&&!i)return Fd.randomUUID();i=i||{};let r=i.random||(i.rng||Pd)();if(r[6]=r[6]&15|64,r[8]=r[8]&63|128,e){t=t||0;for(let n=0;n<16;++n)e[t+n]=r[n];return e}return Ym(r)}var Da,Xm=M(()=>{Vm();Gm();Wm();Da=ey});var qd=M(()=>{Xm()});var A,Hd,cF,Ud,us,di,Km,Zm,fs,Qm,Oe=M(()=>{A={CHANGE_THEME:"changeTheme",CHANGE_LAYOUT:"changeLayout",MODE:{READONLY:"readonly",EDIT:"edit"},LAYOUT:{LOGICAL_STRUCTURE:"logicalStructure",LOGICAL_STRUCTURE_LEFT:"logicalStructureLeft",MIND_MAP:"mindMap",ORGANIZATION_STRUCTURE:"organizationStructure",CATALOG_ORGANIZATION:"catalogOrganization",TIMELINE:"timeline",TIMELINE2:"timeline2",FISHBONE:"fishbone",FISHBONE2:"fishbone2",RIGHT_FISHBONE:"rightFishbone",RIGHT_FISHBONE2:"rightFishbone2",VERTICAL_TIMELINE:"verticalTimeline",VERTICAL_TIMELINE2:"verticalTimeline2",VERTICAL_TIMELINE3:"verticalTimeline3"},DIR:{UP:"up",LEFT:"left",DOWN:"down",RIGHT:"right"},KEY_DIR:{LEFT:"Left",UP:"Up",RIGHT:"Right",DOWN:"Down"},SHAPE:{RECTANGLE:"rectangle",DIAMOND:"diamond",PARALLELOGRAM:"parallelogram",ROUNDED_RECTANGLE:"roundedRectangle",OCTAGONAL_RECTANGLE:"octagonalRectangle",OUTER_TRIANGULAR_RECTANGLE:"outerTriangularRectangle",INNER_TRIANGULAR_RECTANGLE:"innerTriangularRectangle",ELLIPSE:"ellipse",CIRCLE:"circle"},MOUSE_WHEEL_ACTION:{ZOOM:"zoom",MOVE:"move"},INIT_ROOT_NODE_POSITION:{LEFT:"left",TOP:"top",RIGHT:"right",BOTTOM:"bottom",CENTER:"center"},LAYOUT_GROW_DIR:{LEFT:"left",TOP:"top",RIGHT:"right",BOTTOM:"bottom"},PASTE_TYPE:{CLIP_BOARD:"clipBoard",CANVAS:"canvas"},SCROLL_BAR_DIR:{VERTICAL:"vertical",HORIZONTAL:"horizontal"},CREATE_NEW_NODE_BEHAVIOR:{DEFAULT:"default",NOT_ACTIVE:"notActive",ACTIVE_ONLY:"activeOnly"},TAG_PLACEMENT:{RIGHT:"right",BOTTOM:"bottom"},IMG_PLACEMENT:{LEFT:"left",TOP:"top",RIGHT:"right",BOTTOM:"bottom"}},Hd={[A.INIT_ROOT_NODE_POSITION.LEFT]:0,[A.INIT_ROOT_NODE_POSITION.TOP]:0,[A.INIT_ROOT_NODE_POSITION.RIGHT]:1,[A.INIT_ROOT_NODE_POSITION.BOTTOM]:1,[A.INIT_ROOT_NODE_POSITION.CENTER]:.5},cF=[{name:"\u903B\u8F91\u7ED3\u6784\u56FE",value:A.LAYOUT.LOGICAL_STRUCTURE},{name:"\u5411\u5DE6\u903B\u8F91\u7ED3\u6784\u56FE",value:A.LAYOUT.LOGICAL_STRUCTURE_LEFT},{name:"\u601D\u7EF4\u5BFC\u56FE",value:A.LAYOUT.MIND_MAP},{name:"\u7EC4\u7EC7\u7ED3\u6784\u56FE",value:A.LAYOUT.ORGANIZATION_STRUCTURE},{name:"\u76EE\u5F55\u7EC4\u7EC7\u56FE",value:A.LAYOUT.CATALOG_ORGANIZATION},{name:"\u65F6\u95F4\u8F74",value:A.LAYOUT.TIMELINE},{name:"\u65F6\u95F4\u8F742",value:A.LAYOUT.TIMELINE2},{name:"\u7AD6\u5411\u65F6\u95F4\u8F74",value:A.LAYOUT.VERTICAL_TIMELINE},{name:"\u7AD6\u5411\u65F6\u95F4\u8F742",value:A.LAYOUT.VERTICAL_TIMELINE2},{name:"\u7AD6\u5411\u65F6\u95F4\u8F743",value:A.LAYOUT.VERTICAL_TIMELINE3},{name:"\u9C7C\u9AA8\u56FE",value:A.LAYOUT.FISHBONE},{name:"\u9C7C\u9AA8\u56FE2",value:A.LAYOUT.FISHBONE2},{name:"\u5411\u53F3\u9C7C\u9AA8\u56FE",value:A.LAYOUT.RIGHT_FISHBONE},{name:"\u5411\u53F3\u9C7C\u9AA8\u56FE2",value:A.LAYOUT.RIGHT_FISHBONE2}],Ud=[A.LAYOUT.LOGICAL_STRUCTURE,A.LAYOUT.LOGICAL_STRUCTURE_LEFT,A.LAYOUT.MIND_MAP,A.LAYOUT.CATALOG_ORGANIZATION,A.LAYOUT.ORGANIZATION_STRUCTURE,A.LAYOUT.TIMELINE,A.LAYOUT.TIMELINE2,A.LAYOUT.VERTICAL_TIMELINE,A.LAYOUT.VERTICAL_TIMELINE2,A.LAYOUT.VERTICAL_TIMELINE3,A.LAYOUT.FISHBONE,A.LAYOUT.FISHBONE2,A.LAYOUT.RIGHT_FISHBONE,A.LAYOUT.RIGHT_FISHBONE2],us=["text","image","imageTitle","imageSize","icon","tag","hyperlink","hyperlinkTitle","note","expand","isActive","generalization","richText","resetRichText","uid","activeStyle","associativeLineTargets","associativeLineTargetControlOffsets","associativeLinePoint","associativeLineText","attachmentUrl","attachmentName","notation","outerFrame","number","range","customLeft","customTop","customTextWidth","checkbox","dir","needUpdate","imgMap","nodeLink"],di={READ_CLIPBOARD_ERROR:"read_clipboard_error",PARSE_PASTE_DATA_ERROR:"parse_paste_data_error",CUSTOM_HANDLE_CLIPBOARD_TEXT_ERROR:"custom_handle_clipboard_text_error",LOAD_CLIPBOARD_IMAGE_ERROR:"load_clipboard_image_error",BEFORE_TEXT_EDIT_ERROR:"before_text_edit_error",EXPORT_ERROR:"export_error",EXPORT_LOAD_IMAGE_ERROR:"export_load_image_error",DATA_CHANGE_DETAIL_EVENT_ERROR:"data_change_detail_event_error"},Km=` +var Zb=Object.create;var T0=Object.defineProperty;var Qb=Object.getOwnPropertyDescriptor;var Jb=Object.getOwnPropertyNames;var ew=Object.getPrototypeOf,tw=Object.prototype.hasOwnProperty;var iw=(i,e,t)=>e in i?T0(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t;var T=(i,e)=>()=>(i&&(e=i(i=0)),e);var rr=(i,e)=>()=>(e||i((e={exports:{}}).exports,e),e.exports),tt=(i,e)=>{for(var t in e)T0(i,t,{get:e[t],enumerable:!0})},rw=(i,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Jb(e))!tw.call(i,n)&&n!==t&&T0(i,n,{get:()=>e[n],enumerable:!(r=Qb(e,n))||r.enumerable});return i};var pt=(i,e,t)=>(t=i!=null?Zb(ew(i)):{},rw(e||!i||!i.__esModule?T0(t,"default",{value:i,enumerable:!0}):t,i));var U=(i,e,t)=>iw(i,typeof e!="symbol"?e+"":e,t);function Fc(){if(!k0&&(k0=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!k0))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return k0(fw)}var k0,fw,N3=T(()=>{fw=new Uint8Array(16)});function E3(i,e=0){return xt[i[e+0]]+xt[i[e+1]]+xt[i[e+2]]+xt[i[e+3]]+"-"+xt[i[e+4]]+xt[i[e+5]]+"-"+xt[i[e+6]]+xt[i[e+7]]+"-"+xt[i[e+8]]+xt[i[e+9]]+"-"+xt[i[e+10]]+xt[i[e+11]]+xt[i[e+12]]+xt[i[e+13]]+xt[i[e+14]]+xt[i[e+15]]}var xt,S3=T(()=>{xt=[];for(let i=0;i<256;++i)xt.push((i+256).toString(16).slice(1))});var mw,qc,A3=T(()=>{mw=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),qc={randomUUID:mw}});function pw(i,e,t){if(qc.randomUUID&&!e&&!i)return qc.randomUUID();i=i||{};let r=i.random||(i.rng||Fc)();if(r[6]=r[6]&15|64,r[8]=r[8]&63|128,e){t=t||0;for(let n=0;n<16;++n)e[t+n]=r[n];return e}return E3(r)}var fo,k3=T(()=>{A3();N3();S3();fo=pw});var Hc=T(()=>{k3()});var k,Uc,eU,$c,$s,Mi,C3,_3,js,L3,$e=T(()=>{k={CHANGE_THEME:"changeTheme",CHANGE_LAYOUT:"changeLayout",MODE:{READONLY:"readonly",EDIT:"edit"},LAYOUT:{LOGICAL_STRUCTURE:"logicalStructure",LOGICAL_STRUCTURE_LEFT:"logicalStructureLeft",MIND_MAP:"mindMap",ORGANIZATION_STRUCTURE:"organizationStructure",CATALOG_ORGANIZATION:"catalogOrganization",TIMELINE:"timeline",TIMELINE2:"timeline2",FISHBONE:"fishbone",FISHBONE2:"fishbone2",RIGHT_FISHBONE:"rightFishbone",RIGHT_FISHBONE2:"rightFishbone2",VERTICAL_TIMELINE:"verticalTimeline",VERTICAL_TIMELINE2:"verticalTimeline2",VERTICAL_TIMELINE3:"verticalTimeline3"},DIR:{UP:"up",LEFT:"left",DOWN:"down",RIGHT:"right"},KEY_DIR:{LEFT:"Left",UP:"Up",RIGHT:"Right",DOWN:"Down"},SHAPE:{RECTANGLE:"rectangle",DIAMOND:"diamond",PARALLELOGRAM:"parallelogram",ROUNDED_RECTANGLE:"roundedRectangle",OCTAGONAL_RECTANGLE:"octagonalRectangle",OUTER_TRIANGULAR_RECTANGLE:"outerTriangularRectangle",INNER_TRIANGULAR_RECTANGLE:"innerTriangularRectangle",ELLIPSE:"ellipse",CIRCLE:"circle"},MOUSE_WHEEL_ACTION:{ZOOM:"zoom",MOVE:"move"},INIT_ROOT_NODE_POSITION:{LEFT:"left",TOP:"top",RIGHT:"right",BOTTOM:"bottom",CENTER:"center"},LAYOUT_GROW_DIR:{LEFT:"left",TOP:"top",RIGHT:"right",BOTTOM:"bottom"},PASTE_TYPE:{CLIP_BOARD:"clipBoard",CANVAS:"canvas"},SCROLL_BAR_DIR:{VERTICAL:"vertical",HORIZONTAL:"horizontal"},CREATE_NEW_NODE_BEHAVIOR:{DEFAULT:"default",NOT_ACTIVE:"notActive",ACTIVE_ONLY:"activeOnly"},TAG_PLACEMENT:{RIGHT:"right",BOTTOM:"bottom"},IMG_PLACEMENT:{LEFT:"left",TOP:"top",RIGHT:"right",BOTTOM:"bottom"}},Uc={[k.INIT_ROOT_NODE_POSITION.LEFT]:0,[k.INIT_ROOT_NODE_POSITION.TOP]:0,[k.INIT_ROOT_NODE_POSITION.RIGHT]:1,[k.INIT_ROOT_NODE_POSITION.BOTTOM]:1,[k.INIT_ROOT_NODE_POSITION.CENTER]:.5},eU=[{name:"\u903B\u8F91\u7ED3\u6784\u56FE",value:k.LAYOUT.LOGICAL_STRUCTURE},{name:"\u5411\u5DE6\u903B\u8F91\u7ED3\u6784\u56FE",value:k.LAYOUT.LOGICAL_STRUCTURE_LEFT},{name:"\u601D\u7EF4\u5BFC\u56FE",value:k.LAYOUT.MIND_MAP},{name:"\u7EC4\u7EC7\u7ED3\u6784\u56FE",value:k.LAYOUT.ORGANIZATION_STRUCTURE},{name:"\u76EE\u5F55\u7EC4\u7EC7\u56FE",value:k.LAYOUT.CATALOG_ORGANIZATION},{name:"\u65F6\u95F4\u8F74",value:k.LAYOUT.TIMELINE},{name:"\u65F6\u95F4\u8F742",value:k.LAYOUT.TIMELINE2},{name:"\u7AD6\u5411\u65F6\u95F4\u8F74",value:k.LAYOUT.VERTICAL_TIMELINE},{name:"\u7AD6\u5411\u65F6\u95F4\u8F742",value:k.LAYOUT.VERTICAL_TIMELINE2},{name:"\u7AD6\u5411\u65F6\u95F4\u8F743",value:k.LAYOUT.VERTICAL_TIMELINE3},{name:"\u9C7C\u9AA8\u56FE",value:k.LAYOUT.FISHBONE},{name:"\u9C7C\u9AA8\u56FE2",value:k.LAYOUT.FISHBONE2},{name:"\u5411\u53F3\u9C7C\u9AA8\u56FE",value:k.LAYOUT.RIGHT_FISHBONE},{name:"\u5411\u53F3\u9C7C\u9AA8\u56FE2",value:k.LAYOUT.RIGHT_FISHBONE2}],$c=[k.LAYOUT.LOGICAL_STRUCTURE,k.LAYOUT.LOGICAL_STRUCTURE_LEFT,k.LAYOUT.MIND_MAP,k.LAYOUT.CATALOG_ORGANIZATION,k.LAYOUT.ORGANIZATION_STRUCTURE,k.LAYOUT.TIMELINE,k.LAYOUT.TIMELINE2,k.LAYOUT.VERTICAL_TIMELINE,k.LAYOUT.VERTICAL_TIMELINE2,k.LAYOUT.VERTICAL_TIMELINE3,k.LAYOUT.FISHBONE,k.LAYOUT.FISHBONE2,k.LAYOUT.RIGHT_FISHBONE,k.LAYOUT.RIGHT_FISHBONE2],$s=["text","image","imageTitle","imageSize","icon","tag","hyperlink","hyperlinkTitle","note","expand","isActive","generalization","richText","resetRichText","uid","activeStyle","associativeLineTargets","associativeLineTargetControlOffsets","associativeLinePoint","associativeLineText","attachmentUrl","attachmentName","notation","outerFrame","number","range","customLeft","customTop","customTextWidth","checkbox","dir","needUpdate","imgMap","nodeLink"],Mi={READ_CLIPBOARD_ERROR:"read_clipboard_error",PARSE_PASTE_DATA_ERROR:"parse_paste_data_error",CUSTOM_HANDLE_CLIPBOARD_TEXT_ERROR:"custom_handle_clipboard_text_error",LOAD_CLIPBOARD_IMAGE_ERROR:"load_clipboard_image_error",BEFORE_TEXT_EDIT_ERROR:"before_text_edit_error",EXPORT_ERROR:"export_error",EXPORT_LOAD_IMAGE_ERROR:"export_load_image_error",DATA_CHANGE_DETAIL_EVENT_ERROR:"data_change_detail_event_error"},C3=` /* \u9F20\u6807hover\u548C\u6FC0\u6D3B\u65F6\u6E32\u67D3\u7684\u77E9\u5F62 */ .smm-hover-node{ display: none; @@ -19,13 +19,13 @@ var jv=Object.create;var Pl=Object.defineProperty;var Gv=Object.getOwnPropertyDe .smm-text-node-wrap, .smm-expand-btn-text { user-select: none; } -`,Zm=["img","br","hr","input","link","meta","area"],fs=1.2,Qm=["fontFamily","fontSize","fontWeight","fontStyle","textDecoration","color","textAlign"]});function Oa(i){this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(i)}var Jm=M(()=>{Oa.prototype.init_genrand=function(i){for(this.mt[0]=i>>>0,this.mti=1;this.mti>>30,this.mt[this.mti]=(((i&4294901760)>>>16)*1812433253<<16)+(i&65535)*1812433253+this.mti,this.mt[this.mti]>>>=0};Oa.prototype.genrand_int32=function(){var i,e=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var t;for(this.mti==this.N+1&&this.init_genrand(5489),t=0;t>>1^e[i&1];for(;t>>1^e[i&1];i=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^i>>>1^e[i&1],this.mti=0}return i=this.mt[this.mti++],i^=i>>>11,i^=i<<7&2636928640,i^=i<<15&4022730752,i^=i>>>18,i>>>0}});function oe(i,e){if(Array.isArray(i)){for(let t of i)oe(t,e);return}if(typeof i=="object"){for(let t in i)oe(t,i[t]);return}op(Object.getOwnPropertyNames(e)),Wd[i]=Object.assign(Wd[i]||{},e)}function Ot(i){return Wd[i]||{}}function ty(){return[...new Set(ap)]}function op(i){ap.push(...i)}function ic(i,e){let t,r=i.length,n=[];for(t=0;t=0;e--)dp(i.children[e]);return i.id&&(i.id=hp(i.nodeName)),i}function ce(i,e){let t,r;for(i=Array.isArray(i)?i:[i],r=i.length-1;r>=0;r--)for(t in e)i[r].prototype[t]=e[t]}function ze(i){return function(...e){let t=e[e.length-1];return t&&t.constructor===Object&&!(t instanceof Array)?i.apply(this,e.slice(0,-1)).attr(t):i.apply(this,e)}}function ly(){return this.parent().children()}function hy(){return this.parent().index(this)}function dy(){return this.siblings()[this.position()+1]}function cy(){return this.siblings()[this.position()-1]}function uy(){let i=this.position();return this.parent().add(this.remove(),i+1),this}function fy(){let i=this.position();return this.parent().add(this.remove(),i?i-1:0),this}function my(){return this.parent().add(this.remove()),this}function py(){return this.parent().add(this.remove(),0),this}function gy(i){i=Mt(i),i.remove();let e=this.position();return this.parent().add(i,e),this}function xy(i){i=Mt(i),i.remove();let e=this.position();return this.parent().add(i,e+1),this}function vy(i){return i=Mt(i),i.before(this),this}function yy(i){return i=Mt(i),i.after(this),this}function Sy(){let i=this.attr("class");return i==null?[]:i.trim().split(lr)}function Ay(i){return this.classes().indexOf(i)!==-1}function ky(i){if(!this.hasClass(i)){let e=this.classes();e.push(i),this.attr("class",e.join(" "))}return this}function Cy(i){return this.hasClass(i)&&this.attr("class",this.classes().filter(function(e){return e!==i}).join(" ")),this}function _y(i){return this.hasClass(i)?this.removeClass(i):this.addClass(i)}function Ly(i,e){let t={};if(arguments.length===0)return this.node.style.cssText.split(/\s*;\s*/).filter(function(r){return!!r.length}).forEach(function(r){let n=r.split(/\s*:\s*/);t[n[0]]=n[1]}),t;if(arguments.length<2){if(Array.isArray(i)){for(let r of i){let n=ql(r);t[r]=this.node.style[n]}return t}if(typeof i=="string")return this.node.style[ql(i)];if(typeof i=="object")for(let r in i)this.node.style[ql(r)]=i[r]==null||ip.test(i[r])?"":i[r]}return arguments.length===2&&(this.node.style[ql(i)]=e==null||ip.test(e)?"":e),this}function zy(){return this.css("display","")}function Iy(){return this.css("display","none")}function Ry(){return this.css("display")!=="none"}function Dy(i,e,t){if(i==null)return this.data(ic(iy(this.node.attributes,r=>r.nodeName.indexOf("data-")===0),r=>r.nodeName.slice(5)));if(i instanceof Array){let r={};for(let n of i)r[n]=this.data(n);return r}else if(typeof i=="object")for(e in i)this.data(e,i[e]);else if(arguments.length<2)try{return JSON.parse(this.attr("data-"+i))}catch{return this.attr("data-"+i)}else this.attr("data-"+i,e===null?null:t===!0||typeof e=="string"||typeof e=="number"?e:JSON.stringify(e));return this}function Oy(i,e){if(typeof arguments[0]=="object")for(let t in i)this.remember(t,i[t]);else{if(arguments.length===1)return this.memory()[i];this.memory()[i]=e}return this}function By(){if(arguments.length===0)this._memory={};else for(let i=arguments.length-1;i>=0;i--)delete this.memory()[arguments[i]];return this}function Py(){return this._memory=this._memory||{}}function Fy(i){return i.length===4?["#",i.substring(1,2),i.substring(1,2),i.substring(2,3),i.substring(2,3),i.substring(3,4),i.substring(3,4)].join(""):i}function qy(i){let e=Math.round(i),r=Math.max(0,Math.min(255,e)).toString(16);return r.length===1?"0"+r:r}function ms(i,e){for(let t=e.length;t--;)if(i[e[t]]==null)return!1;return!0}function Hy(i,e){let t=ms(i,"rgb")?{_a:i.r,_b:i.g,_c:i.b,_d:0,space:"rgb"}:ms(i,"xyz")?{_a:i.x,_b:i.y,_c:i.z,_d:0,space:"xyz"}:ms(i,"hsl")?{_a:i.h,_b:i.s,_c:i.l,_d:0,space:"hsl"}:ms(i,"lab")?{_a:i.l,_b:i.a,_c:i.b,_d:0,space:"lab"}:ms(i,"lch")?{_a:i.l,_b:i.c,_c:i.h,_d:0,space:"lch"}:ms(i,"cmyk")?{_a:i.c,_b:i.m,_c:i.y,_d:i.k,space:"cmyk"}:{_a:0,_b:0,_c:0,space:"rgb"};return t.space=e||t.space,t}function Uy(i){return i==="lab"||i==="xyz"||i==="lch"}function Gd(i,e,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?i+(e-i)*6*t:t<1/2?e:t<2/3?i+(e-i)*(2/3-t)*6:i}function $y(i,e){return new Ye(i,e).transformO(this.screenCTM().inverseO())}function ps(i,e,t){return Math.abs(e-i)<(t||1e-6)}function jy(){return new ue(this.node.getCTM())}function Gy(){if(typeof this.isRoot=="function"&&!this.isRoot()){let i=this.rect(1,1),e=i.node.getScreenCTM();return i.remove(),new ue(e)}return new ue(this.node.getScreenCTM())}function Hr(){if(!Hr.nodes){let i=Mt().size(2,0);i.node.style.cssText=["opacity: 0","position: absolute","left: -100%","top: -100%","overflow: hidden"].join(";"),i.attr("focusable","false"),i.attr("aria-hidden","true");let e=i.path().node;Hr.nodes={svg:i,path:e}}if(!Hr.nodes.svg.node.parentNode){let i=xe.document.body||xe.document.documentElement;Hr.nodes.svg.addTo(i)}return Hr.nodes}function up(i){return!i.width&&!i.height&&!i.x&&!i.y}function Yy(i){return i===xe.document||(xe.document.documentElement.contains||function(e){for(;e.parentNode;)e=e.parentNode;return e===xe.document}).call(xe.document.documentElement,i)}function fp(i,e,t){let r;try{if(r=e(i.node),up(r)&&!Yy(i.node))throw new Error("Element not in the dom")}catch{r=t(i)}return r}function Wy(){let t=fp(this,n=>n.getBBox(),n=>{try{let s=n.clone().addTo(Hr().svg).show(),a=s.node.getBBox();return s.remove(),a}catch(s){throw new Error(`Getting bbox of element "${n.node.nodeName}" is not possible: ${s.toString()}`)}});return new Rt(t)}function Vy(i){let r=fp(this,s=>s.getBoundingClientRect(),s=>{throw new Error(`Getting rbox of element "${s.node.nodeName}" is not possible`)}),n=new Rt(r);return i?n.transform(i.screenCTM().inverseO()):n.addOffset()}function Xy(i,e){let t=this.bbox();return i>t.x&&e>t.y&&i(r[n]=this.attr(n),r),{});if(typeof i=="object"&&i.constructor===Object)for(e in i)this.attr(e,i[e]);else if(e===null)this.node.removeAttribute(i);else{if(e==null)return e=this.node.getAttribute(i),e==null?ib[i]:rp.test(e)?parseFloat(e):e;e=gp.reduce((r,n)=>n(i,r,this),e),typeof e=="number"?e=new fe(e):ui.isColor(e)?e=new ui(e):e.constructor===Array&&(e=new Ur(e)),i==="leading"?this.leading&&this.leading(e):typeof t=="string"?this.node.setAttributeNS(t,i,e.toString()):this.node.setAttribute(i,e.toString()),this.rebuild&&(i==="font-size"||i==="x")&&this.rebuild()}}return this}function ab(){return this.attr("transform",null)}function ob(){return(this.attr("transform")||"").split(Ty).slice(0,-1).map(function(e){let t=e.trim().split("(");return[t[0],t[1].split(lr).map(function(r){return parseFloat(r)})]}).reverse().reduce(function(e,t){return t[0]==="matrix"?e.lmultiply(ue.fromArray(t[1])):e[t[0]].apply(e,t[1])},new ue)}function lb(i,e){if(this===i)return this;let t=this.screenCTM(),r=i.screenCTM().inverse();return this.addTo(i,e).untransform().transform(r.multiply(t)),this}function hb(i){return this.toParent(this.root(),i)}function db(i,e){if(i==null||typeof i=="string"){let n=new ue(this).decompose();return i==null?n:n[i]}ue.isMatrixLike(i)||(i={...i,origin:Vd(i,this)});let t=e===!0?this:e||!1,r=new ue(t).transform(i);return this.attr("transform",r)}function oc(i){return this.attr("rx",i)}function lc(i){return this.attr("ry",i)}function xp(i){return i==null?this.cx()-this.rx():this.cx(i+this.rx())}function vp(i){return i==null?this.cy()-this.ry():this.cy(i+this.ry())}function yp(i){return this.attr("cx",i)}function bp(i){return this.attr("cy",i)}function wp(i){return i==null?this.rx()*2:this.rx(new fe(i).divide(2))}function Mp(i){return i==null?this.ry()*2:this.ry(new fe(i).divide(2))}function Tp(i,e){return(this._element||this).type==="radialGradient"?this.attr({fx:new fe(i),fy:new fe(e)}):this.attr({x1:new fe(i),y1:new fe(e)})}function Np(i,e){return(this._element||this).type==="radialGradient"?this.attr({cx:new fe(i),cy:new fe(e)}):this.attr({x2:new fe(i),y2:new fe(e)})}function mb(i){return i==null?this.bbox().x:this.move(i,this.bbox().y)}function pb(i){return i==null?this.bbox().y:this.move(this.bbox().x,i)}function gb(i){let e=this.bbox();return i==null?e.width:this.size(i,e.height)}function xb(i){let e=this.bbox();return i==null?e.height:this.size(e.width,i)}function xs(i,e){return function(t){return t==null?this[i]:(this[i]=t,e&&e.call(this),this)}}function sp(){let i=(this._duration||500)/1e3,e=this._overshoot||0,t=1e-10,r=Math.PI,n=Math.log(e/100+t),s=-n/Math.sqrt(r*r+n*n),a=3.9/(s*i);this.d=2*s*a,this.k=a*a}function bb(i){let e=i.segment[0];return Qd[e](i.segment.slice(1),i.p,i.p0)}function Jd(i){return i.segment.length&&i.segment.length-1===yb[i.segment[0].toUpperCase()]}function wb(i,e){i.inNumber&&kn(i,!1);let t=sc.test(e);if(t)i.segment=[e];else{let r=i.lastCommand,n=r.toLowerCase(),s=r===n;i.segment=[n==="m"?s?"l":"L":r]}return i.inSegment=!0,i.lastCommand=i.segment[0],t}function kn(i,e){if(!i.inNumber)throw new Error("Parser Error");i.number&&i.segment.push(parseFloat(i.number)),i.inNumber=e,i.number="",i.pointSeen=!1,i.hasExponent=!1,Jd(i)&&ec(i)}function ec(i){i.inSegment=!1,i.absolute&&(i.segment=bb(i)),i.segments.push(i.segment)}function Mb(i){if(!i.segment.length)return!1;let e=i.segment[0].toUpperCase()==="A",t=i.segment.length;return e&&(t===4||t===5)}function Tb(i){return i.lastToken.toUpperCase()==="E"}function Nb(i,e=!0){let t=0,r="",n={segment:[],inNumber:!1,number:"",lastToken:"",inSegment:!1,segments:[],pointSeen:!1,hasExponent:!1,absolute:e,p0:new Ye,p:new Ye};for(;n.lastToken=r,r=i.charAt(t++);)if(!(!n.inSegment&&wb(n,r))){if(r==="."){if(n.pointSeen||n.hasExponent){kn(n,!1),--t;continue}n.inNumber=!0,n.pointSeen=!0,n.number+=r;continue}if(!isNaN(parseInt(r))){if(n.number==="0"||Mb(n)){n.inNumber=!0,n.number=r,kn(n,!0);continue}n.inNumber=!0,n.number+=r;continue}if(r===" "||r===","){n.inNumber&&kn(n,!1);continue}if(r==="-"){if(n.inNumber&&!Tb(n)){kn(n,!1),--t;continue}n.number+=r,n.inNumber=!0;continue}if(r.toUpperCase()==="E"){n.number+=r,n.hasExponent=!0;continue}if(sc.test(r)){if(n.inNumber)kn(n,!1);else if(Jd(n))ec(n);else throw new Error("parser Error");--t}}return n.inNumber&&kn(n,!1),n.inSegment&&Jd(n)&&ec(n),n.segments}function Eb(i){let e="";for(let t=0,r=i.length;t{let n;try{n=t.bbox()}catch{return}let s=new ue(t),a=s.translate(i,e).transform(s.inverse()),o=new Ye(n.x,n.y).transform(a);t.move(o.x,o.y)}),this}function Zb(i){return this.dmove(i,0)}function Qb(i){return this.dmove(0,i)}function Jb(i,e=this.bbox()){return i==null?e.height:this.size(e.width,i,e)}function ew(i=0,e=0,t=this.bbox()){let r=i-t.x,n=e-t.y;return this.dmove(r,n)}function tw(i,e,t=this.bbox()){let r=Ns(this,i,e,t),n=r.width/t.width,s=r.height/t.height;return this.children().forEach((a,o)=>{let l=new Ye(t).transform(new ue(a).inverse());a.scale(n,s,l.x,l.y)}),this}function iw(i,e=this.bbox()){return i==null?e.width:this.size(i,e.height,e)}function rw(i,e=this.bbox()){return i==null?e.x:this.move(i,e.y,e)}function nw(i,e=this.bbox()){return i==null?e.y:this.move(e.x,i,e)}function sw(i,e){if(!i)return"";if(!e)return i;let t=i+"{";for(let r in e)t+=ry(r)+":"+e[r]+";";return t+="}",t}var Wd,ap,rc,ny,Hl,Ja,sy,xe,qa,Cn,nc,jd,oy,cp,by,wy,My,Ty,Ny,ep,tp,ip,rp,Ey,lr,sc,ui,Ye,ue,Rt,ar,Ky,Jy,mp,_n,Pa,ib,Ur,fe,gp,$r,fi,Ba,sb,Dt,Ua,Tt,cb,vs,Ul,ub,Ln,zn,Ci,Hi,fb,hc,In,ys,vb,$a,ja,bs,Kd,Zd,yb,Qd,Yd,or,Ep,sr,Ga,Ya,Sb,Rn,dc,Ui,Sp,_i,Dn,Pe,Fa,we,Rb,Db,$l,Li,ws,Ap,kp,tc,Bb,Wa,Va,Cp,Te,Ms,zi,Xa,Ts,_p,Ne,jr,Ka,jl,Za,Qa,Gl,Me,ht=M(()=>{Wd={},ap=[];rc="http://www.w3.org/2000/svg",ny="http://www.w3.org/1999/xhtml",Hl="http://www.w3.org/2000/xmlns/",Ja="http://www.w3.org/1999/xlink",sy="http://svgjs.dev/svgjs",xe={window:typeof window>"u"?null:window,document:typeof document>"u"?null:document},qa=class{},Cn={},nc="___SYMBOL___ROOT___";jd=ci;oy=1e3;oe("Dom",{siblings:ly,position:hy,next:dy,prev:cy,forward:uy,backward:fy,front:my,back:py,before:gy,after:xy,insertBefore:vy,insertAfter:yy});cp=/^([+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?)([a-z%]*)$/i,by=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,wy=/rgb\((\d+),(\d+),(\d+)\)/,My=/(#[a-z_][a-z0-9\-_]*)/i,Ty=/\)\s*,?\s*/,Ny=/\s/g,ep=/^#[a-f0-9]{3}$|^#[a-f0-9]{6}$/i,tp=/^rgb\(/,ip=/^(\s+)?$/,rp=/^[+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,Ey=/\.(jpg|jpeg|png|gif|svg)(\?[^=]+.*)?/i,lr=/[\s,]+/,sc=/[MLHVCSQTAZ]/i;oe("Dom",{classes:Sy,hasClass:Ay,addClass:ky,removeClass:Cy,toggleClass:_y});oe("Dom",{css:Ly,show:zy,hide:Iy,visible:Ry});oe("Dom",{data:Dy});oe("Dom",{remember:Oy,forget:By,memory:Py});ui=class i{constructor(...e){this.init(...e)}static isColor(e){return e&&(e instanceof i||this.isRgb(e)||this.test(e))}static isRgb(e){return e&&typeof e.r=="number"&&typeof e.g=="number"&&typeof e.b=="number"}static random(e="vibrant",t,r){let{random:n,round:s,sin:a,PI:o}=Math;if(e==="vibrant"){let l=24*n()+57,h=38*n()+45,d=360*n();return new i(l,h,d,"lch")}else if(e==="sine"){t=t??n();let l=s(80*a(2*o*t/.5+.01)+150),h=s(50*a(2*o*t/.5+4.6)+200),d=s(100*a(2*o*t/.5+2.3)+150);return new i(l,h,d)}else if(e==="pastel"){let l=8*n()+86,h=17*n()+9,d=360*n();return new i(l,h,d,"lch")}else if(e==="dark"){let l=10+10*n(),h=50*n()+86,d=360*n();return new i(l,h,d,"lch")}else if(e==="rgb"){let l=255*n(),h=255*n(),d=255*n();return new i(l,h,d)}else if(e==="lab"){let l=100*n(),h=256*n()-128,d=256*n()-128;return new i(l,h,d,"lab")}else if(e==="grey"){let l=255*n();return new i(l,l,l)}else throw new Error("Unsupported random color mode")}static test(e){return typeof e=="string"&&(ep.test(e)||tp.test(e))}cmyk(){let{_a:e,_b:t,_c:r}=this.rgb(),[n,s,a]=[e,t,r].map(f=>f/255),o=Math.min(1-n,1-s,1-a);if(o===1)return new i(0,0,0,1,"cmyk");let l=(1-n-o)/(1-o),h=(1-s-o)/(1-o),d=(1-a-o)/(1-o);return new i(l,h,d,o,"cmyk")}hsl(){let{_a:e,_b:t,_c:r}=this.rgb(),[n,s,a]=[e,t,r].map(x=>x/255),o=Math.max(n,s,a),l=Math.min(n,s,a),h=(o+l)/2,d=o===l,c=o-l,f=d?0:h>.5?c/(2-o-l):c/(o+l),m=d?0:o===n?((s-a)/c+(sparseInt(x));Object.assign(this,{_a:f,_b:m,_c:g,_d:0,space:"rgb"})}else if(ep.test(e)){let c=x=>parseInt(x,16),[,f,m,g]=by.exec(Fy(e)).map(c);Object.assign(this,{_a:f,_b:m,_c:g,_d:0,space:"rgb"})}else throw Error("Unsupported string format, can't construct Color");let{_a:a,_b:o,_c:l,_d:h}=this,d=this.space==="rgb"?{r:a,g:o,b:l}:this.space==="xyz"?{x:a,y:o,z:l}:this.space==="hsl"?{h:a,s:o,l}:this.space==="lab"?{l:a,a:o,b:l}:this.space==="lch"?{l:a,c:o,h:l}:this.space==="cmyk"?{c:a,m:o,y:l,k:h}:{};Object.assign(this,d)}lab(){let{x:e,y:t,z:r}=this.xyz(),n=116*t-16,s=500*(e-t),a=200*(t-r);return new i(n,s,a,"lab")}lch(){let{l:e,a:t,b:r}=this.lab(),n=Math.sqrt(t**2+r**2),s=180*Math.atan2(r,t)/Math.PI;return s<0&&(s*=-1,s=360-s),new i(e,n,s,"lch")}rgb(){if(this.space==="rgb")return this;if(Uy(this.space)){let{x:e,y:t,z:r}=this;if(this.space==="lab"||this.space==="lch"){let{l:m,a:g,b:x}=this;if(this.space==="lch"){let{c:I,h:O}=this,D=Math.PI/180;g=I*Math.cos(D*O),x=I*Math.sin(D*O)}let v=(m+16)/116,b=g/500+v,E=v-x/200,S=16/116,C=.008856,_=7.787;e=.95047*(b**3>C?b**3:(b-S)/_),t=1*(v**3>C?v**3:(v-S)/_),r=1.08883*(E**3>C?E**3:(E-S)/_)}let n=e*3.2406+t*-1.5372+r*-.4986,s=e*-.9689+t*1.8758+r*.0415,a=e*.0557+t*-.204+r*1.057,o=Math.pow,l=.0031308,h=n>l?1.055*o(n,1/2.4)-.055:12.92*n,d=s>l?1.055*o(s,1/2.4)-.055:12.92*s,c=a>l?1.055*o(a,1/2.4)-.055:12.92*a;return new i(255*h,255*d,255*c)}else if(this.space==="hsl"){let{h:e,s:t,l:r}=this;if(e/=360,t/=100,r/=100,t===0)return r*=255,new i(r,r,r);let n=r<.5?r*(1+t):r+t-r*t,s=2*r-n,a=255*Gd(s,n,e+1/3),o=255*Gd(s,n,e),l=255*Gd(s,n,e-1/3);return new i(a,o,l)}else if(this.space==="cmyk"){let{c:e,m:t,y:r,k:n}=this,s=255*(1-Math.min(1,e*(1-n)+n)),a=255*(1-Math.min(1,t*(1-n)+n)),o=255*(1-Math.min(1,r*(1-n)+n));return new i(s,a,o)}else return this}toArray(){let{_a:e,_b:t,_c:r,_d:n,space:s}=this;return[e,t,r,n,s]}toHex(){let[e,t,r]=this._clamped().map(qy);return`#${e}${t}${r}`}toRgb(){let[e,t,r]=this._clamped();return`rgb(${e},${t},${r})`}toString(){return this.toHex()}xyz(){let{_a:e,_b:t,_c:r}=this.rgb(),[n,s,a]=[e,t,r].map(b=>b/255),o=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92,l=s>.04045?Math.pow((s+.055)/1.055,2.4):s/12.92,h=a>.04045?Math.pow((a+.055)/1.055,2.4):a/12.92,d=(o*.4124+l*.3576+h*.1805)/.95047,c=(o*.2126+l*.7152+h*.0722)/1,f=(o*.0193+l*.1192+h*.9505)/1.08883,m=d>.008856?Math.pow(d,1/3):7.787*d+16/116,g=c>.008856?Math.pow(c,1/3):7.787*c+16/116,x=f>.008856?Math.pow(f,1/3):7.787*f+16/116;return new i(m,g,x,"xyz")}_clamped(){let{_a:e,_b:t,_c:r}=this.rgb(),{max:n,min:s,round:a}=Math,o=l=>n(0,s(a(l),255));return[e,t,r].map(o)}},Ye=class i{constructor(...e){this.init(...e)}clone(){return new i(this)}init(e,t){let r={x:0,y:0},n=Array.isArray(e)?{x:e[0],y:e[1]}:typeof e=="object"?{x:e.x,y:e.y}:{x:e,y:t};return this.x=n.x==null?r.x:n.x,this.y=n.y==null?r.y:n.y,this}toArray(){return[this.x,this.y]}transform(e){return this.clone().transformO(e)}transformO(e){ue.isMatrixLike(e)||(e=new ue(e));let{x:t,y:r}=this;return this.x=e.a*t+e.c*r+e.e,this.y=e.b*t+e.d*r+e.f,this}};ue=class i{constructor(...e){this.init(...e)}static formatTransforms(e){let t=e.flip==="both"||e.flip===!0,r=e.flip&&(t||e.flip==="x")?-1:1,n=e.flip&&(t||e.flip==="y")?-1:1,s=e.skew&&e.skew.length?e.skew[0]:isFinite(e.skew)?e.skew:isFinite(e.skewX)?e.skewX:0,a=e.skew&&e.skew.length?e.skew[1]:isFinite(e.skew)?e.skew:isFinite(e.skewY)?e.skewY:0,o=e.scale&&e.scale.length?e.scale[0]*r:isFinite(e.scale)?e.scale*r:isFinite(e.scaleX)?e.scaleX*r:r,l=e.scale&&e.scale.length?e.scale[1]*n:isFinite(e.scale)?e.scale*n:isFinite(e.scaleY)?e.scaleY*n:n,h=e.shear||0,d=e.rotate||e.theta||0,c=new Ye(e.origin||e.around||e.ox||e.originX,e.oy||e.originY),f=c.x,m=c.y,g=new Ye(e.position||e.px||e.positionX||NaN,e.py||e.positionY||NaN),x=g.x,v=g.y,b=new Ye(e.translate||e.tx||e.translateX,e.ty||e.translateY),E=b.x,S=b.y,C=new Ye(e.relative||e.rx||e.relativeX,e.ry||e.relativeY),_=C.x,I=C.y;return{scaleX:o,scaleY:l,skewX:s,skewY:a,shear:h,theta:d,rx:_,ry:I,tx:E,ty:S,ox:f,oy:m,px:x,py:v}}static fromArray(e){return{a:e[0],b:e[1],c:e[2],d:e[3],e:e[4],f:e[5]}}static isMatrixLike(e){return e.a!=null||e.b!=null||e.c!=null||e.d!=null||e.e!=null||e.f!=null}static matrixMultiply(e,t,r){let n=e.a*t.a+e.c*t.b,s=e.b*t.a+e.d*t.b,a=e.a*t.c+e.c*t.d,o=e.b*t.c+e.d*t.d,l=e.e+e.a*t.e+e.c*t.f,h=e.f+e.b*t.e+e.d*t.f;return r.a=n,r.b=s,r.c=a,r.d=o,r.e=l,r.f=h,r}around(e,t,r){return this.clone().aroundO(e,t,r)}aroundO(e,t,r){let n=e||0,s=t||0;return this.translateO(-n,-s).lmultiplyO(r).translateO(n,s)}clone(){return new i(this)}decompose(e=0,t=0){let r=this.a,n=this.b,s=this.c,a=this.d,o=this.e,l=this.f,h=r*a-n*s,d=h>0?1:-1,c=d*Math.sqrt(r*r+n*n),f=Math.atan2(d*n,d*r),m=180/Math.PI*f,g=Math.cos(f),x=Math.sin(f),v=(r*s+n*a)/h,b=s*c/(v*r-n)||a*c/(v*n+r),E=o-e+e*g*c+t*(v*g*c-x*b),S=l-t+e*x*c+t*(v*x*c+g*b);return{scaleX:c,scaleY:b,shear:v,rotate:m,translateX:E,translateY:S,originX:e,originY:t,a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}equals(e){if(e===this)return!0;let t=new i(e);return ps(this.a,t.a)&&ps(this.b,t.b)&&ps(this.c,t.c)&&ps(this.d,t.d)&&ps(this.e,t.e)&&ps(this.f,t.f)}flip(e,t){return this.clone().flipO(e,t)}flipO(e,t){return e==="x"?this.scaleO(-1,1,t,0):e==="y"?this.scaleO(1,-1,0,t):this.scaleO(-1,-1,e,t||e)}init(e){let t=i.fromArray([1,0,0,1,0,0]);return e=e instanceof fi?e.matrixify():typeof e=="string"?i.fromArray(e.split(lr).map(parseFloat)):Array.isArray(e)?i.fromArray(e):typeof e=="object"&&i.isMatrixLike(e)?e:typeof e=="object"?new i().transform(e):arguments.length===6?i.fromArray([].slice.call(arguments)):t,this.a=e.a!=null?e.a:t.a,this.b=e.b!=null?e.b:t.b,this.c=e.c!=null?e.c:t.c,this.d=e.d!=null?e.d:t.d,this.e=e.e!=null?e.e:t.e,this.f=e.f!=null?e.f:t.f,this}inverse(){return this.clone().inverseO()}inverseO(){let e=this.a,t=this.b,r=this.c,n=this.d,s=this.e,a=this.f,o=e*n-t*r;if(!o)throw new Error("Cannot invert "+this);let l=n/o,h=-t/o,d=-r/o,c=e/o,f=-(l*s+d*a),m=-(h*s+c*a);return this.a=l,this.b=h,this.c=d,this.d=c,this.e=f,this.f=m,this}lmultiply(e){return this.clone().lmultiplyO(e)}lmultiplyO(e){let t=this,r=e instanceof i?e:new i(e);return i.matrixMultiply(r,t,this)}multiply(e){return this.clone().multiplyO(e)}multiplyO(e){let t=this,r=e instanceof i?e:new i(e);return i.matrixMultiply(t,r,this)}rotate(e,t,r){return this.clone().rotateO(e,t,r)}rotateO(e,t=0,r=0){e=$d(e);let n=Math.cos(e),s=Math.sin(e),{a,b:o,c:l,d:h,e:d,f:c}=this;return this.a=a*n-o*s,this.b=o*n+a*s,this.c=l*n-h*s,this.d=h*n+l*s,this.e=d*n-c*s+r*s-t*n+t,this.f=c*n+d*s-t*s-r*n+r,this}scale(e,t,r,n){return this.clone().scaleO(...arguments)}scaleO(e,t=e,r=0,n=0){arguments.length===3&&(n=r,r=t,t=e);let{a:s,b:a,c:o,d:l,e:h,f:d}=this;return this.a=s*e,this.b=a*t,this.c=o*e,this.d=l*t,this.e=h*e-r*e+r,this.f=d*t-n*t+n,this}shear(e,t,r){return this.clone().shearO(e,t,r)}shearO(e,t=0,r=0){let{a:n,b:s,c:a,d:o,e:l,f:h}=this;return this.a=n+s*e,this.c=a+o*e,this.e=l+h*e-r*e,this}skew(e,t,r,n){return this.clone().skewO(...arguments)}skewO(e,t=e,r=0,n=0){arguments.length===3&&(n=r,r=t,t=e),e=$d(e),t=$d(t);let s=Math.tan(e),a=Math.tan(t),{a:o,b:l,c:h,d,e:c,f}=this;return this.a=o+l*s,this.b=l+o*a,this.c=h+d*s,this.d=d+h*a,this.e=c+f*s-n*s,this.f=f+c*a-r*a,this}skewX(e,t,r){return this.skew(e,0,t,r)}skewY(e,t,r){return this.skew(0,e,t,r)}toArray(){return[this.a,this.b,this.c,this.d,this.e,this.f]}toString(){return"matrix("+this.a+","+this.b+","+this.c+","+this.d+","+this.e+","+this.f+")"}transform(e){if(i.isMatrixLike(e))return new i(e).multiplyO(this);let t=i.formatTransforms(e),r=this,{x:n,y:s}=new Ye(t.ox,t.oy).transform(r),a=new i().translateO(t.rx,t.ry).lmultiplyO(r).translateO(-n,-s).scaleO(t.scaleX,t.scaleY).skewO(t.skewX,t.skewY).shearO(t.shear).rotateO(t.theta).translateO(n,s);if(isFinite(t.px)||isFinite(t.py)){let o=new Ye(n,s).transform(a),l=isFinite(t.px)?t.px-o.x:0,h=isFinite(t.py)?t.py-o.y:0;a.translateO(l,h)}return a.translateO(t.tx,t.ty),a}translate(e,t){return this.clone().translateO(e,t)}translateO(e,t){return this.e+=e||0,this.f+=t||0,this}valueOf(){return{a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}};me(ue,"Matrix");Rt=class i{constructor(...e){this.init(...e)}addOffset(){return this.x+=xe.window.pageXOffset,this.y+=xe.window.pageYOffset,new i(this)}init(e){let t=[0,0,0,0];return e=typeof e=="string"?e.split(lr).map(parseFloat):Array.isArray(e)?e:typeof e=="object"?[e.left!=null?e.left:e.x,e.top!=null?e.top:e.y,e.width,e.height]:arguments.length===4?[].slice.call(arguments):t,this.x=e[0]||0,this.y=e[1]||0,this.width=this.w=e[2]||0,this.height=this.h=e[3]||0,this.x2=this.x+this.w,this.y2=this.y+this.h,this.cx=this.x+this.w/2,this.cy=this.y+this.h/2,this}isNulled(){return up(this)}merge(e){let t=Math.min(this.x,e.x),r=Math.min(this.y,e.y),n=Math.max(this.x+this.width,e.x+e.width)-t,s=Math.max(this.y+this.height,e.y+e.height)-r;return new i(t,r,n,s)}toArray(){return[this.x,this.y,this.width,this.height]}toString(){return this.x+" "+this.y+" "+this.width+" "+this.height}transform(e){e instanceof ue||(e=new ue(e));let t=1/0,r=-1/0,n=1/0,s=-1/0;return[new Ye(this.x,this.y),new Ye(this.x2,this.y),new Ye(this.x,this.y2),new Ye(this.x2,this.y2)].forEach(function(o){o=o.transform(e),t=Math.min(t,o.x),r=Math.max(r,o.x),n=Math.min(n,o.y),s=Math.max(s,o.y)}),new i(t,n,r-t,s-n)}};oe({viewbox:{viewbox(i,e,t,r){return i==null?new Rt(this.attr("viewBox")):this.attr("viewBox",new Rt(i,e,t,r))},zoom(i,e){let{width:t,height:r}=this.attr(["width","height"]);if((!t&&!r||typeof t=="string"||typeof r=="string")&&(t=this.node.clientWidth,r=this.node.clientHeight),!t||!r)throw new Error("Impossible to get absolute width and height. Please provide an absolute width and height attribute on the zooming element");let n=this.viewbox(),s=t/n.width,a=r/n.height,o=Math.min(s,a);if(i==null)return o;let l=o/i;l===1/0&&(l=Number.MAX_SAFE_INTEGER/100),e=e||new Ye(t/2/s+n.x,r/2/a+n.y);let h=new Rt(n).transform(new ue({scale:l,origin:e}));return this.viewbox(h)}}});me(Rt,"Box");ar=class extends Array{constructor(e=[],...t){if(super(e,...t),typeof e=="number")return this;this.length=0,this.push(...e)}};ce([ar],{each(i,...e){return typeof i=="function"?this.map((t,r,n)=>i.call(t,t,r,n)):this.map(t=>t[i](...e))},toArray(){return Array.prototype.concat.apply([],this)}});Ky=["toArray","constructor","each"];ar.extend=function(i){i=i.reduce((e,t)=>(Ky.includes(t)||t[0]==="_"||(e[t]=function(...r){return this.each(t,...r)}),e),{}),ce([ar],i)};Jy=0,mp={};_n=class extends qa{addEventListener(){}dispatch(e,t,r){return tb(this,e,t,r)}dispatchEvent(e){let t=this.getEventHolder().events;if(!t)return!0;let r=t[e.type];for(let n in r)for(let s in r[n])r[n][s](e);return!e.defaultPrevented}fire(e,t,r){return this.dispatch(e,t,r),this}getEventHolder(){return this}getEventTarget(){return this}off(e,t,r){return gs(this,e,t,r),this}on(e,t,r,n){return Xd(this,e,t,r,n),this}removeEventListener(){}};me(_n,"EventTarget");Pa={duration:400,ease:">",delay:0},ib={"fill-opacity":1,"stroke-opacity":1,"stroke-width":0,"stroke-linejoin":"miter","stroke-linecap":"butt",fill:"#000000",stroke:"#000000",opacity:1,x:0,y:0,cx:0,cy:0,width:0,height:0,r:0,rx:0,ry:0,offset:0,"stop-opacity":1,"stop-color":"#000000","text-anchor":"start"},Ur=class extends Array{constructor(...e){super(...e),this.init(...e)}clone(){return new this.constructor(this)}init(e){return typeof e=="number"?this:(this.length=0,this.push(...this.parse(e)),this)}parse(e=[]){return e instanceof Array?e:e.trim().split(lr).map(parseFloat)}toArray(){return Array.prototype.concat.apply([],this)}toSet(){return new Set(this)}toString(){return this.join(" ")}valueOf(){let e=[];return e.push(...this),e}},fe=class i{constructor(...e){this.init(...e)}convert(e){return new i(this.value,e)}divide(e){return e=new i(e),new i(this/e,this.unit||e.unit)}init(e,t){return t=Array.isArray(e)?e[1]:t,e=Array.isArray(e)?e[0]:e,this.value=0,this.unit=t||"",typeof e=="number"?this.value=isNaN(e)?0:isFinite(e)?e:e<0?-34e37:34e37:typeof e=="string"?(t=e.match(cp),t&&(this.value=parseFloat(t[1]),t[5]==="%"?this.value/=100:t[5]==="s"&&(this.value*=1e3),this.unit=t[5])):e instanceof i&&(this.value=e.valueOf(),this.unit=e.unit),this}minus(e){return e=new i(e),new i(this-e,this.unit||e.unit)}plus(e){return e=new i(e),new i(this+e,this.unit||e.unit)}times(e){return e=new i(e),new i(this*e,this.unit||e.unit)}toArray(){return[this.value,this.unit]}toJSON(){return this.toString()}toString(){return(this.unit==="%"?~~(this.value*1e8)/1e6:this.unit==="s"?this.value/1e3:this.value)+this.unit}valueOf(){return this.value}},gp=[];$r=class i extends _n{constructor(e,t){super(),this.node=e,this.type=e.nodeName,t&&e!==t&&this.attr(t)}add(e,t){return e=Mt(e),e.removeNamespace&&this.node instanceof xe.window.SVGElement&&e.removeNamespace(),t==null?this.node.appendChild(e.node):e.node!==this.node.childNodes[t]&&this.node.insertBefore(e.node,this.node.childNodes[t]),this}addTo(e,t){return Mt(e).put(this,t)}children(){return new ar(ic(this.node.children,function(e){return ci(e)}))}clear(){for(;this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);return this}clone(e=!0,t=!0){this.writeDataToDom();let r=this.node.cloneNode(e);return t&&(r=dp(r)),new this.constructor(r)}each(e,t){let r=this.children(),n,s;for(n=0,s=r.length;n=0}html(e,t){return this.xml(e,t,ny)}id(e){return typeof e>"u"&&!this.node.id&&(this.node.id=hp(this.type)),this.attr("id",e)}index(e){return[].slice.call(this.node.childNodes).indexOf(e.node)}last(){return ci(this.node.lastChild)}matches(e){let t=this.node,r=t.matches||t.matchesSelector||t.msMatchesSelector||t.mozMatchesSelector||t.webkitMatchesSelector||t.oMatchesSelector||null;return r&&r.call(t,e)}parent(e){let t=this;if(!t.node.parentNode)return null;if(t=ci(t.node.parentNode),!e)return t;do if(typeof e=="string"?t.matches(e):t instanceof e)return t;while(t=ci(t.node.parentNode));return t}put(e,t){return e=Mt(e),this.add(e,t),e}putIn(e,t){return Mt(e).add(this,t)}remove(){return this.parent()&&this.parent().removeElement(this),this}removeElement(e){return this.node.removeChild(e.node),this}replace(e){return e=Mt(e),this.node.parentNode&&this.node.parentNode.replaceChild(e.node,this.node),e}round(e=2,t=null){let r=10**e,n=this.attr(t);for(let s in n)typeof n[s]=="number"&&(n[s]=Math.round(n[s]*r)/r);return this.attr(n),this}svg(e,t){return this.xml(e,t,rc)}toString(){return this.id()}words(e){return this.node.textContent=e,this}wrap(e){let t=this.parent();if(!t)return this.addTo(e);let r=t.index(this);return t.put(e,r).put(this)}writeDataToDom(){return this.each(function(){this.writeDataToDom()}),this}xml(e,t,r){if(typeof e=="boolean"&&(r=t,t=e,e=null),e==null||typeof e=="function"){t=t??!0,this.writeDataToDom();let o=this;if(e!=null){if(o=ci(o.node.cloneNode(!0)),t){let l=e(o);if(o=l||o,l===!1)return""}o.each(function(){let l=e(this),h=l||this;l===!1?this.remove():l&&this!==h&&this.replace(h)},!0)}return t?o.node.outerHTML:o.node.innerHTML}t=t??!1;let n=Ha("wrapper",r),s=xe.document.createDocumentFragment();n.innerHTML=e;for(let o=n.children.length;o--;)s.appendChild(n.firstElementChild);let a=this.parent();return t?this.replace(s)&&a:this.add(s)}};ce($r,{attr:nb,find:Zy,findOne:Qy});me($r,"Dom");fi=class extends $r{constructor(e,t){super(e,t),this.dom={},this.node.instance=this,e.hasAttribute("svgjs:data")&&this.setData(JSON.parse(e.getAttribute("svgjs:data"))||{})}center(e,t){return this.cx(e).cy(t)}cx(e){return e==null?this.x()+this.width()/2:this.x(e-this.width()/2)}cy(e){return e==null?this.y()+this.height()/2:this.y(e-this.height()/2)}defs(){let e=this.root();return e&&e.defs()}dmove(e,t){return this.dx(e).dy(t)}dx(e=0){return this.x(new fe(e).plus(this.x()))}dy(e=0){return this.y(new fe(e).plus(this.y()))}getEventHolder(){return this}height(e){return this.attr("height",e)}move(e,t){return this.x(e).y(t)}parents(e=this.root()){let t=typeof e=="string";t||(e=Mt(e));let r=new ar,n=this;for(;(n=n.parent())&&n.node!==xe.document&&n.nodeName!=="#document-fragment"&&(r.push(n),!(!t&&n.node===e.node||t&&n.matches(e)));)if(n.node===this.root().node)return null;return r}reference(e){if(e=this.attr(e),!e)return null;let t=(e+"").match(My);return t?Mt(t[1]):null}root(){let e=this.parent(ay(nc));return e&&e.root()}setData(e){return this.dom=e,this}size(e,t){let r=Ns(this,e,t);return this.width(new fe(r.width)).height(new fe(r.height))}width(e){return this.attr("width",e)}writeDataToDom(){return this.node.removeAttribute("svgjs:data"),Object.keys(this.dom).length&&this.node.setAttribute("svgjs:data",JSON.stringify(this.dom)),super.writeDataToDom()}x(e){return this.attr("x",e)}y(e){return this.attr("y",e)}};ce(fi,{bbox:Wy,rbox:Vy,inside:Xy,point:$y,ctm:jy,screenCTM:Gy});me(fi,"Element");Ba={stroke:["color","width","opacity","linecap","linejoin","miterlimit","dasharray","dashoffset"],fill:["color","opacity","rule"],prefix:function(i,e){return e==="color"?i:i+"-"+e}};["fill","stroke"].forEach(function(i){let e={},t;e[i]=function(r){if(typeof r>"u")return this.attr(i);if(typeof r=="string"||r instanceof ui||ui.isRgb(r)||r instanceof fi)this.attr(i,r);else for(t=Ba[i].length-1;t>=0;t--)r[Ba[i][t]]!=null&&this.attr(Ba.prefix(i,Ba[i][t]),r[Ba[i][t]]);return this},oe(["Element","Runner"],e)});oe(["Element","Runner"],{matrix:function(i,e,t,r,n,s){return i==null?new ue(this):this.attr("transform",new ue(i,e,t,r,n,s))},rotate:function(i,e,t){return this.transform({rotate:i,ox:e,oy:t},!0)},skew:function(i,e,t,r){return arguments.length===1||arguments.length===3?this.transform({skew:i,ox:e,oy:t},!0):this.transform({skew:[i,e],ox:t,oy:r},!0)},shear:function(i,e,t){return this.transform({shear:i,ox:e,oy:t},!0)},scale:function(i,e,t,r){return arguments.length===1||arguments.length===3?this.transform({scale:i,ox:e,oy:t},!0):this.transform({scale:[i,e],ox:t,oy:r},!0)},translate:function(i,e){return this.transform({translate:[i,e]},!0)},relative:function(i,e){return this.transform({relative:[i,e]},!0)},flip:function(i="both",e="center"){return"xybothtrue".indexOf(i)===-1&&(e=i,i="both"),this.transform({flip:i,origin:e},!0)},opacity:function(i){return this.attr("opacity",i)}});oe("radius",{radius:function(i,e=i){return(this._element||this).type==="radialGradient"?this.attr("r",new fe(i)):this.rx(i).ry(e)}});oe("Path",{length:function(){return this.node.getTotalLength()},pointAt:function(i){return new Ye(this.node.getPointAtLength(i))}});oe(["Element","Runner"],{font:function(i,e){if(typeof i=="object"){for(e in i)this.font(e,i[e]);return this}return i==="leading"?this.leading(e):i==="anchor"?this.attr("text-anchor",e):i==="size"||i==="family"||i==="weight"||i==="stretch"||i==="variant"||i==="style"?this.attr("font-"+i,e):this.attr(i,e)}});sb=["click","dblclick","mousedown","mouseup","mouseover","mouseout","mousemove","mouseenter","mouseleave","touchstart","touchmove","touchleave","touchend","touchcancel"].reduce(function(i,e){let t=function(r){return r===null?this.off(e):this.on(e,r),this};return i[e]=t,i},{});oe("Element",sb);oe("Element",{untransform:ab,matrixify:ob,toParent:lb,toRoot:hb,transform:db});Dt=class i extends fi{flatten(e=this,t){return this.each(function(){if(this instanceof i)return this.flatten().ungroup()}),this}ungroup(e=this.parent(),t=e.index(this)){return t=t===-1?e.children().length:t,this.each(function(r,n){return n[n.length-r-1].toParent(e,t)}),this.remove()}};me(Dt,"Container");Ua=class extends Dt{constructor(e,t=e){super(Ie("defs",e),t)}flatten(){return this}ungroup(){return this}};me(Ua,"Defs");Tt=class extends fi{};me(Tt,"Shape");cb={__proto__:null,rx:oc,ry:lc,x:xp,y:vp,cx:yp,cy:bp,width:wp,height:Mp},vs=class extends Tt{constructor(e,t=e){super(Ie("ellipse",e),t)}size(e,t){let r=Ns(this,e,t);return this.rx(new fe(r.width).divide(2)).ry(new fe(r.height).divide(2))}};ce(vs,cb);oe("Container",{ellipse:ze(function(i=0,e=i){return this.put(new vs).size(i,e).move(0,0)})});me(vs,"Ellipse");Ul=class extends $r{constructor(e=xe.document.createDocumentFragment()){super(e)}xml(e,t,r){if(typeof e=="boolean"&&(r=t,t=e,e=null),e==null||typeof e=="function"){let n=new $r(Ha("wrapper",r));return n.add(this.node.cloneNode(!0)),n.xml(!1,r)}return super.xml(e,!1,r)}};me(Ul,"Fragment");ub={__proto__:null,from:Tp,to:Np},Ln=class extends Dt{constructor(e,t){super(Ie(e+"Gradient",typeof e=="string"?null:e),t)}attr(e,t,r){return e==="transform"&&(e="gradientTransform"),super.attr(e,t,r)}bbox(){return new Rt}targets(){return Es("svg [fill*="+this.id()+"]")}toString(){return this.url()}update(e){return this.clear(),typeof e=="function"&&e.call(this,this),this}url(){return"url(#"+this.id()+")"}};ce(Ln,ub);oe({Container:{gradient(...i){return this.defs().gradient(...i)}},Defs:{gradient:ze(function(i,e){return this.put(new Ln(i)).update(e)})}});me(Ln,"Gradient");zn=class extends Dt{constructor(e,t=e){super(Ie("pattern",e),t)}attr(e,t,r){return e==="transform"&&(e="patternTransform"),super.attr(e,t,r)}bbox(){return new Rt}targets(){return Es("svg [fill*="+this.id()+"]")}toString(){return this.url()}update(e){return this.clear(),typeof e=="function"&&e.call(this,this),this}url(){return"url(#"+this.id()+")"}};oe({Container:{pattern(...i){return this.defs().pattern(...i)}},Defs:{pattern:ze(function(i,e,t){return this.put(new zn).update(t).attr({x:0,y:0,width:i,height:e,patternUnits:"userSpaceOnUse"})})}});me(zn,"Pattern");Ci=class extends Tt{constructor(e,t=e){super(Ie("image",e),t)}load(e,t){if(!e)return this;let r=new xe.window.Image;return Xd(r,"load",function(n){let s=this.parent(zn);this.width()===0&&this.height()===0&&this.size(r.width,r.height),s instanceof zn&&s.width()===0&&s.height()===0&&s.size(this.width(),this.height()),typeof t=="function"&&t.call(this,n)},this),Xd(r,"load error",function(){gs(r)}),this.attr("href",r.src=e,Ja)}};rb(function(i,e,t){return(i==="fill"||i==="stroke")&&Ey.test(e)&&(e=t.root().defs().image(e)),e instanceof Ci&&(e=t.root().defs().pattern(0,0,r=>{r.add(e)})),e});oe({Container:{image:ze(function(i,e){return this.put(new Ci).size(0,0).load(i,e)})}});me(Ci,"Image");Hi=class extends Ur{bbox(){let e=-1/0,t=-1/0,r=1/0,n=1/0;return this.forEach(function(s){e=Math.max(s[0],e),t=Math.max(s[1],t),r=Math.min(s[0],r),n=Math.min(s[1],n)}),new Rt(r,n,e-r,t-n)}move(e,t){let r=this.bbox();if(e-=r.x,t-=r.y,!isNaN(e)&&!isNaN(t))for(let n=this.length-1;n>=0;n--)this[n]=[this[n][0]+e,this[n][1]+t];return this}parse(e=[0,0]){let t=[];e instanceof Array?e=Array.prototype.concat.apply([],e):e=e.trim().split(lr).map(parseFloat),e.length%2!==0&&e.pop();for(let r=0,n=e.length;r=0;r--)n.width&&(this[r][0]=(this[r][0]-n.x)*e/n.width+n.x),n.height&&(this[r][1]=(this[r][1]-n.y)*t/n.height+n.y);return this}toLine(){return{x1:this[0][0],y1:this[0][1],x2:this[1][0],y2:this[1][1]}}toString(){let e=[];for(let t=0,r=this.length;t":function(i){return-Math.cos(i*Math.PI)/2+.5},">":function(i){return Math.sin(i*Math.PI/2)},"<":function(i){return-Math.cos(i*Math.PI/2)+1},bezier:function(i,e,t,r){return function(n){return n<0?i>0?e/i*n:t>0?r/t*n:0:n>1?t<1?(1-r)/(1-t)*n+(r-t)/(1-t):i<1?(1-e)/(1-i)*n+(e-i)/(1-i):1:3*n*(1-n)**2*e+3*n**2*(1-n)*r+n**3}},steps:function(i,e="end"){e=e.split("-").reverse()[0];let t=i;return e==="none"?--t:e==="both"&&++t,(r,n=!1)=>{let s=Math.floor(r*i),a=r*s%1===0;return(e==="start"||e==="both")&&++s,n&&a&&--s,r>=0&&s<0&&(s=0),r<=1&&s>t&&(s=t),s/t}}},$a=class{done(){return!1}},ja=class extends $a{constructor(e=Pa.ease){super(),this.ease=vb[e]||e}step(e,t,r){return typeof e!="number"?r<1?e:t:e+(t-e)*this.ease(r)}},bs=class extends $a{constructor(e){super(),this.stepper=e}done(e){return e.done}step(e,t,r,n){return this.stepper(e,t,r,n)}};Kd=class extends bs{constructor(e=500,t=0){super(),this.duration(e).overshoot(t)}step(e,t,r,n){if(typeof e=="string")return e;if(n.done=r===1/0,r===1/0)return t;if(r===0)return e;r>100&&(r=16),r/=1e3;let s=n.velocity||0,a=-this.d*s-this.k*(e-t),o=e+s*r+a*r*r/2;return n.velocity=s+a*r,n.done=Math.abs(t-o)+Math.abs(s)<.002,n.done?t:o}};ce(Kd,{duration:xs("_duration",sp),overshoot:xs("_overshoot",sp)});Zd=class extends bs{constructor(e=.1,t=.01,r=0,n=1e3){super(),this.p(e).i(t).d(r).windup(n)}step(e,t,r,n){if(typeof e=="string")return e;if(n.done=r===1/0,r===1/0)return t;if(r===0)return e;let s=t-e,a=(n.integral||0)+s*r,o=(s-(n.error||0))/r,l=this._windup;return l!==!1&&(a=Math.max(-l,Math.min(a,l))),n.error=s,n.integral=a,n.done=Math.abs(s)<.001,n.done?t:e+(this.P*s+this.I*a+this.D*o)}};ce(Zd,{windup:xs("_windup"),p:xs("P"),i:xs("I"),d:xs("D")});yb={M:2,L:2,H:1,V:1,C:6,S:4,Q:4,T:2,A:7,Z:0},Qd={M:function(i,e,t){return e.x=t.x=i[0],e.y=t.y=i[1],["M",e.x,e.y]},L:function(i,e){return e.x=i[0],e.y=i[1],["L",i[0],i[1]]},H:function(i,e){return e.x=i[0],["H",i[0]]},V:function(i,e){return e.y=i[0],["V",i[0]]},C:function(i,e){return e.x=i[4],e.y=i[5],["C",i[0],i[1],i[2],i[3],i[4],i[5]]},S:function(i,e){return e.x=i[2],e.y=i[3],["S",i[0],i[1],i[2],i[3]]},Q:function(i,e){return e.x=i[2],e.y=i[3],["Q",i[0],i[1],i[2],i[3]]},T:function(i,e){return e.x=i[0],e.y=i[1],["T",i[0],i[1]]},Z:function(i,e,t){return e.x=t.x,e.y=t.y,["Z"]},A:function(i,e){return e.x=i[5],e.y=i[6],["A",i[0],i[1],i[2],i[3],i[4],i[5],i[6]]}},Yd="mlhvqtcsaz".split("");for(let i=0,e=Yd.length;i=0;s--)n=this[s][0],n==="M"||n==="L"||n==="T"?(this[s][1]+=e,this[s][2]+=t):n==="H"?this[s][1]+=e:n==="V"?this[s][1]+=t:n==="C"||n==="S"||n==="Q"?(this[s][1]+=e,this[s][2]+=t,this[s][3]+=e,this[s][4]+=t,n==="C"&&(this[s][5]+=e,this[s][6]+=t)):n==="A"&&(this[s][6]+=e,this[s][7]+=t);return this}parse(e="M0 0"){return Array.isArray(e)&&(e=Array.prototype.concat.apply([],e).toString()),Nb(e)}size(e,t){let r=this.bbox(),n,s;for(r.width=r.width===0?1:r.width,r.height=r.height===0?1:r.height,n=this.length-1;n>=0;n--)s=this[n][0],s==="M"||s==="L"||s==="T"?(this[n][1]=(this[n][1]-r.x)*e/r.width+r.x,this[n][2]=(this[n][2]-r.y)*t/r.height+r.y):s==="H"?this[n][1]=(this[n][1]-r.x)*e/r.width+r.x:s==="V"?this[n][1]=(this[n][1]-r.y)*t/r.height+r.y:s==="C"||s==="S"||s==="Q"?(this[n][1]=(this[n][1]-r.x)*e/r.width+r.x,this[n][2]=(this[n][2]-r.y)*t/r.height+r.y,this[n][3]=(this[n][3]-r.x)*e/r.width+r.x,this[n][4]=(this[n][4]-r.y)*t/r.height+r.y,s==="C"&&(this[n][5]=(this[n][5]-r.x)*e/r.width+r.x,this[n][6]=(this[n][6]-r.y)*t/r.height+r.y)):s==="A"&&(this[n][1]=this[n][1]*e/r.width,this[n][2]=this[n][2]*t/r.height,this[n][6]=(this[n][6]-r.x)*e/r.width+r.x,this[n][7]=(this[n][7]-r.y)*t/r.height+r.y);return this}toString(){return Eb(this)}},Ep=i=>{let e=typeof i;return e==="number"?fe:e==="string"?ui.isColor(i)?ui:lr.test(i)?sc.test(i)?or:Ur:cp.test(i)?fe:Ga:dc.indexOf(i.constructor)>-1?i.constructor:Array.isArray(i)?Ur:e==="object"?Rn:Ga},sr=class{constructor(e){this._stepper=e||new ja("-"),this._from=null,this._to=null,this._type=null,this._context=null,this._morphObj=null}at(e){return this._morphObj.morph(this._from,this._to,e,this._stepper,this._context)}done(){return this._context.map(this._stepper.done).reduce(function(t,r){return t&&r},!0)}from(e){return e==null?this._from:(this._from=this._set(e),this)}stepper(e){return e==null?this._stepper:(this._stepper=e,this)}to(e){return e==null?this._to:(this._to=this._set(e),this)}type(e){return e==null?this._type:(this._type=e,this)}_set(e){this._type||this.type(Ep(e));let t=new this._type(e);return this._type===ui&&(t=this._to?t[this._to[4]]():this._from?t[this._from[4]]():t),this._type===Rn&&(t=this._to?t.align(this._to):this._from?t.align(this._from):t),t=t.toConsumable(),this._morphObj=this._morphObj||new this._type,this._context=this._context||Array.apply(null,Array(t.length)).map(Object).map(function(r){return r.done=!0,r}),t}},Ga=class{constructor(...e){this.init(...e)}init(e){return e=Array.isArray(e)?e[0]:e,this.value=e,this}toArray(){return[this.value]}valueOf(){return this.value}},Ya=class i{constructor(...e){this.init(...e)}init(e){return Array.isArray(e)&&(e={scaleX:e[0],scaleY:e[1],shear:e[2],rotate:e[3],translateX:e[4],translateY:e[5],originX:e[6],originY:e[7]}),Object.assign(this,i.defaults,e),this}toArray(){let e=this;return[e.scaleX,e.scaleY,e.shear,e.rotate,e.translateX,e.translateY,e.originX,e.originY]}};Ya.defaults={scaleX:1,scaleY:1,shear:0,rotate:0,translateX:0,translateY:0,originX:0,originY:0};Sb=(i,e)=>i[0]e[0]?1:0,Rn=class{constructor(...e){this.init(...e)}align(e){let t=this.values;for(let r=0,n=t.length;rr.concat(n),[]),this}toArray(){return this.values}valueOf(){let e={},t=this.values;for(;t.length;){let r=t.shift(),n=t.shift(),s=t.shift(),a=t.splice(0,s);e[r]=new n(a)}return e}},dc=[Ga,Ya,Rn];Ui=class extends Tt{constructor(e,t=e){super(Ie("path",e),t)}array(){return this._array||(this._array=new or(this.attr("d")))}clear(){return delete this._array,this}height(e){return e==null?this.bbox().height:this.size(this.bbox().width,e)}move(e,t){return this.attr("d",this.array().move(e,t))}plot(e){return e==null?this.array():this.clear().attr("d",typeof e=="string"?e:this._array=new or(e))}size(e,t){let r=Ns(this,e,t);return this.attr("d",this.array().size(r.width,r.height))}width(e){return e==null?this.bbox().width:this.size(e,this.bbox().height)}x(e){return e==null?this.bbox().x:this.move(e,this.bbox().y)}y(e){return e==null?this.bbox().y:this.move(this.bbox().x,e)}};Ui.prototype.MorphArray=or;oe({Container:{path:ze(function(i){return this.put(new Ui).plot(i||new or)})}});me(Ui,"Path");Sp={__proto__:null,array:Cb,clear:_b,move:Lb,plot:zb,size:Ib},_i=class extends Tt{constructor(e,t=e){super(Ie("polygon",e),t)}};oe({Container:{polygon:ze(function(i){return this.put(new _i).plot(i||new Hi)})}});ce(_i,hc);ce(_i,Sp);me(_i,"Polygon");Dn=class extends Tt{constructor(e,t=e){super(Ie("polyline",e),t)}};oe({Container:{polyline:ze(function(i){return this.put(new Dn).plot(i||new Hi)})}});ce(Dn,hc);ce(Dn,Sp);me(Dn,"Polyline");Pe=class extends Tt{constructor(e,t=e){super(Ie("rect",e),t)}};ce(Pe,{rx:oc,ry:lc});oe({Container:{rect:ze(function(i,e){return this.put(new Pe).size(i,e)})}});me(Pe,"Rect");Fa=class{constructor(){this._first=null,this._last=null}first(){return this._first&&this._first.value}last(){return this._last&&this._last.value}push(e){let t=typeof e.next<"u"?e:{value:e,next:null,prev:null};return this._last?(t.prev=this._last,this._last.next=t,this._last=t):(this._last=t,this._first=t),t}remove(e){e.prev&&(e.prev.next=e.next),e.next&&(e.next.prev=e.prev),e===this._last&&(this._last=e.prev),e===this._first&&(this._first=e.next),e.prev=null,e.next=null}shift(){let e=this._first;return e?(this._first=e.next,this._first&&(this._first.prev=null),this._last=this._first?this._last:null,e.value):null}},we={nextDraw:null,frames:new Fa,timeouts:new Fa,immediates:new Fa,timer:()=>xe.window.performance||xe.window.Date,transforms:[],frame(i){let e=we.frames.push({run:i});return we.nextDraw===null&&(we.nextDraw=xe.window.requestAnimationFrame(we._draw)),e},timeout(i,e){e=e||0;let t=we.timer().now()+e,r=we.timeouts.push({run:i,time:t});return we.nextDraw===null&&(we.nextDraw=xe.window.requestAnimationFrame(we._draw)),r},immediate(i){let e=we.immediates.push(i);return we.nextDraw===null&&(we.nextDraw=xe.window.requestAnimationFrame(we._draw)),e},cancelFrame(i){i!=null&&we.frames.remove(i)},clearTimeout(i){i!=null&&we.timeouts.remove(i)},cancelImmediate(i){i!=null&&we.immediates.remove(i)},_draw(i){let e=null,t=we.timeouts.last();for(;(e=we.timeouts.shift())&&(i>=e.time?e.run():we.timeouts.push(e),e!==t););let r=null,n=we.frames.last();for(;r!==n&&(r=we.frames.shift());)r.run(i);let s=null;for(;s=we.immediates.shift();)s();we.nextDraw=we.timeouts.first()||we.frames.first()?xe.window.requestAnimationFrame(we._draw):null}},Rb=function(i){let e=i.start,t=i.runner.duration(),r=e+t;return{start:e,duration:t,end:r,runner:i.runner}},Db=function(){let i=xe.window;return(i.performance||i.Date).now()},$l=class extends _n{constructor(e=Db){super(),this._timeSource=e,this._startTime=0,this._speed=1,this._persist=0,this._nextFrame=null,this._paused=!0,this._runners=[],this._runnerIds=[],this._lastRunnerId=-1,this._time=0,this._lastSourceTime=0,this._lastStepTime=0,this._step=this._stepFn.bind(this,!1),this._stepImmediate=this._stepFn.bind(this,!0)}active(){return!!this._nextFrame}finish(){return this.time(this.getEndTimeOfTimeline()+1),this.pause()}getEndTime(){let e=this.getLastRunnerInfo(),t=e?e.runner.duration():0;return(e?e.start:this._time)+t}getEndTimeOfTimeline(){let e=this._runners.map(t=>t.start+t.runner.duration());return Math.max(0,...e)}getLastRunnerInfo(){return this.getRunnerInfoById(this._lastRunnerId)}getRunnerInfoById(e){return this._runners[this._runnerIds.indexOf(e)]||null}pause(){return this._paused=!0,this._continue()}persist(e){return e==null?this._persist:(this._persist=e,this)}play(){return this._paused=!1,this.updateTime()._continue()}reverse(e){let t=this.speed();if(e==null)return this.speed(-t);let r=Math.abs(t);return this.speed(e?-r:r)}schedule(e,t,r){if(e==null)return this._runners.map(Rb);let n=0,s=this.getEndTime();if(t=t||0,r==null||r==="last"||r==="after")n=s;else if(r==="absolute"||r==="start")n=t,t=0;else if(r==="now")n=this._time;else if(r==="relative"){let l=this.getRunnerInfoById(e.id);l&&(n=l.start+t,t=0)}else if(r==="with-last"){let l=this.getLastRunnerInfo();n=l?l.start:this._time}else throw new Error('Invalid value for the "when" parameter');e.unschedule(),e.timeline(this);let a=e.persist(),o={persist:a===null?this._persist:a,start:n+t,runner:e};return this._lastRunnerId=e.id,this._runners.push(o),this._runners.sort((l,h)=>l.start-h.start),this._runnerIds=this._runners.map(l=>l.runner.id),this.updateTime()._continue(),this}seek(e){return this.time(this._time+e)}source(e){return e==null?this._timeSource:(this._timeSource=e,this)}speed(e){return e==null?this._speed:(this._speed=e,this)}stop(){return this.time(0),this.pause()}time(e){return e==null?this._time:(this._time=e,this._continue(!0))}unschedule(e){let t=this._runnerIds.indexOf(e.id);return t<0?this:(this._runners.splice(t,1),this._runnerIds.splice(t,1),e.timeline(null),this)}updateTime(){return this.active()||(this._lastSourceTime=this._timeSource()),this}_continue(e=!1){return we.cancelFrame(this._nextFrame),this._nextFrame=null,e?this._stepImmediate():this._paused?this:(this._nextFrame=we.frame(this._step),this)}_stepFn(e=!1){let t=this._timeSource(),r=t-this._lastSourceTime;e&&(r=0);let n=this._speed*r+(this._time-this._lastStepTime);this._lastSourceTime=t,e||(this._time+=n,this._time=this._time<0?0:this._time),this._lastStepTime=this._time,this.fire("time",this._time);for(let a=this._runners.length;a--;){let o=this._runners[a],l=o.runner;this._time-o.start<=0&&l.reset()}let s=!1;for(let a=0,o=this._runners.length;a0?this._continue():(this.pause(),this.fire("finished")),this}};oe({Element:{timeline:function(i){return i==null?(this._timeline=this._timeline||new $l,this._timeline):(this._timeline=i,this)}}});Li=class i extends _n{constructor(e){super(),this.id=i.id++,e=e??Pa.duration,e=typeof e=="function"?new bs(e):e,this._element=null,this._timeline=null,this.done=!1,this._queue=[],this._duration=typeof e=="number"&&e,this._isDeclarative=e instanceof bs,this._stepper=this._isDeclarative?e:new ja,this._history={},this.enabled=!0,this._time=0,this._lastTime=0,this._reseted=!0,this.transforms=new ue,this.transformId=1,this._haveReversed=!1,this._reverse=!1,this._loopsDone=0,this._swing=!1,this._wait=0,this._times=1,this._frameId=null,this._persist=this._isDeclarative?!0:null}static sanitise(e,t,r){let n=1,s=!1,a=0;return e=e||Pa.duration,t=t||Pa.delay,r=r||"last",typeof e=="object"&&!(e instanceof $a)&&(t=e.delay||t,r=e.when||r,s=e.swing||s,n=e.times||n,a=e.wait||a,e=e.duration||Pa.duration),{duration:e,delay:t,swing:s,times:n,wait:a,when:r}}active(e){return e==null?this.enabled:(this.enabled=e,this)}addTransform(e,t){return this.transforms.lmultiplyO(e),this}after(e){return this.on("finished",e)}animate(e,t,r){let n=i.sanitise(e,t,r),s=new i(n.duration);return this._timeline&&s.timeline(this._timeline),this._element&&s.element(this._element),s.loop(n).schedule(n.delay,n.when)}clearTransform(){return this.transforms=new ue,this}clearTransformsFromQueue(){(!this.done||!this._timeline||!this._timeline._runnerIds.includes(this.id))&&(this._queue=this._queue.filter(e=>!e.isTransform))}delay(e){return this.animate(0,e)}duration(){return this._times*(this._wait+this._duration)-this._wait}during(e){return this.queue(null,e)}ease(e){return this._stepper=new ja(e),this}element(e){return e==null?this._element:(this._element=e,e._prepareRunner(),this)}finish(){return this.step(1/0)}loop(e,t,r){return typeof e=="object"&&(t=e.swing,r=e.wait,e=e.times),this._times=e||1/0,this._swing=t||!1,this._wait=r||0,this._times===!0&&(this._times=1/0),this}loops(e){let t=this._duration+this._wait;if(e==null){let a=Math.floor(this._time/t),l=(this._time-a*t)/this._duration;return Math.min(a+l,this._times)}let r=Math.floor(e),n=e%1,s=t*r+this._duration*n;return this.time(s)}persist(e){return e==null?this._persist:(this._persist=e,this)}position(e){let t=this._time,r=this._duration,n=this._wait,s=this._times,a=this._swing,o=this._reverse,l;if(e==null){let f=function(g){let x=a*Math.floor(g%(2*(n+r))/(n+r)),v=x&&!o||!x&&o,b=Math.pow(-1,v)*(g%(n+r))/r+v;return Math.max(Math.min(b,1),0)},m=s*(n+r)-n;return l=t<=0?Math.round(f(1e-5)):t=0;this._lastPosition=t;let n=this.duration(),s=this._lastTime<=0&&this._time>0,a=this._lastTime=n;this._lastTime=this._time,s&&this.fire("start",this);let o=this._isDeclarative;this.done=!o&&!a&&this._time>=n,this._reseted=!1;let l=!1;return(r||o)&&(this._initialise(r),this.transforms=new ue,l=this._run(o?e:t),this.fire("step",this)),this.done=this.done||l&&o,a&&this.fire("finished",this),this}time(e){if(e==null)return this._time;let t=e-this._time;return this.step(t),this}timeline(e){return typeof e>"u"?this._timeline:(this._timeline=e,this)}unschedule(){let e=this.timeline();return e&&e.unschedule(this),this}_initialise(e){if(!(!e&&!this._isDeclarative))for(let t=0,r=this._queue.length;ti.lmultiplyO(e),kp=i=>i.transforms;tc=class{constructor(){this.runners=[],this.ids=[]}add(e){if(this.runners.includes(e))return;let t=e.id+1;return this.runners.push(e),this.ids.push(t),this}clearBefore(e){let t=this.ids.indexOf(e+1)||1;return this.ids.splice(0,t,0),this.runners.splice(0,t,new ws).forEach(r=>r.clearTransformsFromQueue()),this}edit(e,t){let r=this.ids.indexOf(e+1);return this.ids.splice(r,1,e+1),this.runners.splice(r,1,t),this}getByID(e){return this.runners[this.ids.indexOf(e+1)]}length(){return this.ids.length}merge(){let e=null;for(let t=0;te.id<=i.id).map(kp).reduce(Ap,new ue)},_addRunner(i){this._transformationRunners.add(i),we.cancelImmediate(this._frameId),this._frameId=we.immediate(Ob.bind(this))},_prepareRunner(){this._frameId==null&&(this._transformationRunners=new tc().add(new ws(new ue(this))))}}});Bb=(i,e)=>i.filter(t=>!e.includes(t));ce(Li,{attr(i,e){return this.styleAttr("attr",i,e)},css(i,e){return this.styleAttr("css",i,e)},styleAttr(i,e,t){if(typeof e=="string")return this.styleAttr(i,{[e]:t});let r=e;if(this._tryRetarget(i,r))return this;let n=new sr(this._stepper).to(r),s=Object.keys(r);return this.queue(function(){n=n.from(this.element()[i](s))},function(a){return this.element()[i](n.at(a).valueOf()),n.done()},function(a){let o=Object.keys(a),l=Bb(o,s);if(l.length){let d=this.element()[i](l),c=new Rn(n.from()).valueOf();Object.assign(c,d),n.from(c)}let h=new Rn(n.to()).valueOf();Object.assign(h,a),n.to(h),s=o,r=a}),this._rememberMorpher(i,n),this},zoom(i,e){if(this._tryRetarget("zoom",i,e))return this;let t=new sr(this._stepper).to(new fe(i));return this.queue(function(){t=t.from(this.element().zoom())},function(r){return this.element().zoom(t.at(r),e),t.done()},function(r,n){e=n,t.to(r)}),this._rememberMorpher("zoom",t),this},transform(i,e,t){if(e=i.relative||e,this._isDeclarative&&!e&&this._tryRetarget("transform",i))return this;let r=ue.isMatrixLike(i);t=i.affine!=null?i.affine:t??!r;let n=new sr(this._stepper).type(t?Ya:ue),s,a,o,l,h;function d(){a=a||this.element(),s=s||Vd(i,a),h=new ue(e?void 0:a),a._addRunner(this),e||a._clearTransformRunnersBefore(this)}function c(m){e||this.clearTransform();let{x:g,y:x}=new Ye(s).transform(a._currentTransform(this)),v=new ue({...i,origin:[g,x]}),b=this._isDeclarative&&o?o:h;if(t){v=v.decompose(g,x),b=b.decompose(g,x);let S=v.rotate,C=b.rotate,_=[S-360,S,S+360],I=_.map($=>Math.abs($-C)),O=Math.min(...I),D=I.indexOf(O);v.rotate=_[D]}e&&(r||(v.rotate=i.rotate||0),this._isDeclarative&&l&&(b.rotate=l)),n.from(b),n.to(v);let E=n.at(m);return l=E.rotate,o=new ue(E),this.addTransform(o),a._addRunner(this),n.done()}function f(m){(m.origin||"center").toString()!==(i.origin||"center").toString()&&(s=Vd(m,a)),i={...m,origin:s}}return this.queue(d,c,f,!0),this._isDeclarative&&this._rememberMorpher("transform",n),this},x(i,e){return this._queueNumber("x",i)},y(i){return this._queueNumber("y",i)},dx(i=0){return this._queueNumberDelta("x",i)},dy(i=0){return this._queueNumberDelta("y",i)},dmove(i,e){return this.dx(i).dy(e)},_queueNumberDelta(i,e){if(e=new fe(e),this._tryRetarget(i,e))return this;let t=new sr(this._stepper).to(e),r=null;return this.queue(function(){r=this.element()[i](),t.from(r),t.to(r+e)},function(n){return this.element()[i](t.at(n)),t.done()},function(n){t.to(r+new fe(n))}),this._rememberMorpher(i,t),this},_queueObject(i,e){if(this._tryRetarget(i,e))return this;let t=new sr(this._stepper).to(e);return this.queue(function(){t.from(this.element()[i]())},function(r){return this.element()[i](t.at(r)),t.done()}),this._rememberMorpher(i,t),this},_queueNumber(i,e){return this._queueObject(i,new fe(e))},cx(i){return this._queueNumber("cx",i)},cy(i){return this._queueNumber("cy",i)},move(i,e){return this.x(i).y(e)},center(i,e){return this.cx(i).cy(e)},size(i,e){let t;return(!i||!e)&&(t=this._element.bbox()),i||(i=t.width/t.height*e),e||(e=t.height/t.width*i),this.width(i).height(e)},width(i){return this._queueNumber("width",i)},height(i){return this._queueNumber("height",i)},plot(i,e,t,r){if(arguments.length===4)return this.plot([i,e,t,r]);if(this._tryRetarget("plot",i))return this;let n=new sr(this._stepper).type(this._element.MorphArray).to(i);return this.queue(function(){n.from(this._element.array())},function(s){return this._element.plot(n.at(s)),n.done()}),this._rememberMorpher("plot",n),this},leading(i){return this._queueNumber("leading",i)},viewbox(i,e,t,r){return this._queueObject("viewbox",new Rt(i,e,t,r))},update(i){return typeof i!="object"?this.update({offset:arguments[0],color:arguments[1],opacity:arguments[2]}):(i.opacity!=null&&this.attr("stop-opacity",i.opacity),i.color!=null&&this.attr("stop-color",i.color),i.offset!=null&&this.attr("offset",i.offset),this)}});ce(Li,{rx:oc,ry:lc,from:Tp,to:Np});me(Li,"Runner");Wa=class extends Dt{constructor(e,t=e){super(Ie("svg",e),t),this.namespace()}defs(){return this.isRoot()?ci(this.node.querySelector("defs"))||this.put(new Ua):this.root().defs()}isRoot(){return!this.node.parentNode||!(this.node.parentNode instanceof xe.window.SVGElement)&&this.node.parentNode.nodeName!=="#document-fragment"}namespace(){return this.isRoot()?this.attr({xmlns:rc,version:"1.1"}).attr("xmlns:xlink",Ja,Hl).attr("xmlns:svgjs",sy,Hl):this.root().namespace()}removeNamespace(){return this.attr({xmlns:null,version:null}).attr("xmlns:xlink",null,Hl).attr("xmlns:svgjs",null,Hl)}root(){return this.isRoot()?this:super.root()}};oe({Container:{nested:ze(function(){return this.put(new Wa)})}});me(Wa,"Svg",!0);Va=class extends Dt{constructor(e,t=e){super(Ie("symbol",e),t)}};oe({Container:{symbol:ze(function(){return this.put(new Va)})}});me(Va,"Symbol");Cp={__proto__:null,plain:Pb,length:Fb,x:qb,y:Hb,move:Ub,cx:$b,cy:jb,center:Gb,ax:Yb,ay:Wb,amove:Vb,build:Xb},Te=class extends Tt{constructor(e,t=e){super(Ie("text",e),t),this.dom.leading=new fe(1.3),this._rebuild=!0,this._build=!1}leading(e){return e==null?this.dom.leading:(this.dom.leading=new fe(e),this.rebuild())}rebuild(e){if(typeof e=="boolean"&&(this._rebuild=e),this._rebuild){let t=this,r=0,n=this.dom.leading;this.each(function(s){let a=xe.window.getComputedStyle(this.node).getPropertyValue("font-size"),o=n*new fe(a);this.dom.newLined&&(this.attr("x",t.attr("x")),this.text()===` -`?r+=o:(this.attr("dy",s?o+r:0),r=0))}),this.fire("rebuild")}return this}setData(e){return this.dom=e,this.dom.leading=new fe(e.leading||1.3),this}text(e){if(e===void 0){let t=this.node.childNodes,r=0;e="";for(let n=0,s=t.length;n{mo.prototype.init_genrand=function(i){for(this.mt[0]=i>>>0,this.mti=1;this.mti>>30,this.mt[this.mti]=(((i&4294901760)>>>16)*1812433253<<16)+(i&65535)*1812433253+this.mti,this.mt[this.mti]>>>=0};mo.prototype.genrand_int32=function(){var i,e=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var t;for(this.mti==this.N+1&&this.init_genrand(5489),t=0;t>>1^e[i&1];for(;t>>1^e[i&1];i=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^i>>>1^e[i&1],this.mti=0}return i=this.mt[this.mti++],i^=i>>>11,i^=i<<7&2636928640,i^=i<<15&4022730752,i^=i>>>18,i>>>0}});function fe(i,e){if(Array.isArray(i)){for(let t of i)fe(t,e);return}if(typeof i=="object"){for(let t in i)fe(t,i[t]);return}q3(Object.getOwnPropertyNames(e)),Yc[i]=Object.assign(Yc[i]||{},e)}function Wt(i){return Yc[i]||{}}function gw(){return[...new Set(F3)]}function q3(i){F3.push(...i)}function ru(i,e){let t,r=i.length,n=[];for(t=0;t=0;e--)$3(i.children[e]);return i.id&&(i.id=U3(i.nodeName)),i}function ge(i,e){let t,r;for(i=Array.isArray(i)?i:[i],r=i.length-1;r>=0;r--)for(t in e)i[r].prototype[t]=e[t]}function Fe(i){return function(...e){let t=e[e.length-1];return t&&t.constructor===Object&&!(t instanceof Array)?i.apply(this,e.slice(0,-1)).attr(t):i.apply(this,e)}}function Tw(){return this.parent().children()}function Nw(){return this.parent().index(this)}function Ew(){return this.siblings()[this.position()+1]}function Sw(){return this.siblings()[this.position()-1]}function Aw(){let i=this.position();return this.parent().add(this.remove(),i+1),this}function kw(){let i=this.position();return this.parent().add(this.remove(),i?i-1:0),this}function Cw(){return this.parent().add(this.remove()),this}function _w(){return this.parent().add(this.remove(),0),this}function Lw(i){i=Rt(i),i.remove();let e=this.position();return this.parent().add(i,e),this}function Iw(i){i=Rt(i),i.remove();let e=this.position();return this.parent().add(i,e+1),this}function zw(i){return i=Rt(i),i.before(this),this}function Rw(i){return i=Rt(i),i.after(this),this}function Hw(){let i=this.attr("class");return i==null?[]:i.trim().split(Sr)}function Uw(i){return this.classes().indexOf(i)!==-1}function $w(i){if(!this.hasClass(i)){let e=this.classes();e.push(i),this.attr("class",e.join(" "))}return this}function jw(i){return this.hasClass(i)&&this.attr("class",this.classes().filter(function(e){return e!==i}).join(" ")),this}function Gw(i){return this.hasClass(i)?this.removeClass(i):this.addClass(i)}function Vw(i,e){let t={};if(arguments.length===0)return this.node.style.cssText.split(/\s*;\s*/).filter(function(r){return!!r.length}).forEach(function(r){let n=r.split(/\s*:\s*/);t[n[0]]=n[1]}),t;if(arguments.length<2){if(Array.isArray(i)){for(let r of i){let n=C0(r);t[r]=this.node.style[n]}return t}if(typeof i=="string")return this.node.style[C0(i)];if(typeof i=="object")for(let r in i)this.node.style[C0(r)]=i[r]==null||D3.test(i[r])?"":i[r]}return arguments.length===2&&(this.node.style[C0(i)]=e==null||D3.test(e)?"":e),this}function Ww(){return this.css("display","")}function Yw(){return this.css("display","none")}function Xw(){return this.css("display")!=="none"}function Kw(i,e,t){if(i==null)return this.data(ru(xw(this.node.attributes,r=>r.nodeName.indexOf("data-")===0),r=>r.nodeName.slice(5)));if(i instanceof Array){let r={};for(let n of i)r[n]=this.data(n);return r}else if(typeof i=="object")for(e in i)this.data(e,i[e]);else if(arguments.length<2)try{return JSON.parse(this.attr("data-"+i))}catch{return this.attr("data-"+i)}else this.attr("data-"+i,e===null?null:t===!0||typeof e=="string"||typeof e=="number"?e:JSON.stringify(e));return this}function Zw(i,e){if(typeof arguments[0]=="object")for(let t in i)this.remember(t,i[t]);else{if(arguments.length===1)return this.memory()[i];this.memory()[i]=e}return this}function Qw(){if(arguments.length===0)this._memory={};else for(let i=arguments.length-1;i>=0;i--)delete this.memory()[arguments[i]];return this}function Jw(){return this._memory=this._memory||{}}function eM(i){return i.length===4?["#",i.substring(1,2),i.substring(1,2),i.substring(2,3),i.substring(2,3),i.substring(3,4),i.substring(3,4)].join(""):i}function tM(i){let e=Math.round(i),r=Math.max(0,Math.min(255,e)).toString(16);return r.length===1?"0"+r:r}function Gs(i,e){for(let t=e.length;t--;)if(i[e[t]]==null)return!1;return!0}function iM(i,e){let t=Gs(i,"rgb")?{_a:i.r,_b:i.g,_c:i.b,_d:0,space:"rgb"}:Gs(i,"xyz")?{_a:i.x,_b:i.y,_c:i.z,_d:0,space:"xyz"}:Gs(i,"hsl")?{_a:i.h,_b:i.s,_c:i.l,_d:0,space:"hsl"}:Gs(i,"lab")?{_a:i.l,_b:i.a,_c:i.b,_d:0,space:"lab"}:Gs(i,"lch")?{_a:i.l,_b:i.c,_c:i.h,_d:0,space:"lch"}:Gs(i,"cmyk")?{_a:i.c,_b:i.m,_c:i.y,_d:i.k,space:"cmyk"}:{_a:0,_b:0,_c:0,space:"rgb"};return t.space=e||t.space,t}function rM(i){return i==="lab"||i==="xyz"||i==="lch"}function Vc(i,e,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?i+(e-i)*6*t:t<1/2?e:t<2/3?i+(e-i)*(2/3-t)*6:i}function nM(i,e){return new it(i,e).transformO(this.screenCTM().inverseO())}function Vs(i,e,t){return Math.abs(e-i)<(t||1e-6)}function sM(){return new xe(this.node.getCTM())}function aM(){if(typeof this.isRoot=="function"&&!this.isRoot()){let i=this.rect(1,1),e=i.node.getScreenCTM();return i.remove(),new xe(e)}return new xe(this.node.getScreenCTM())}function ln(){if(!ln.nodes){let i=Rt().size(2,0);i.node.style.cssText=["opacity: 0","position: absolute","left: -100%","top: -100%","overflow: hidden"].join(";"),i.attr("focusable","false"),i.attr("aria-hidden","true");let e=i.path().node;ln.nodes={svg:i,path:e}}if(!ln.nodes.svg.node.parentNode){let i=Te.document.body||Te.document.documentElement;ln.nodes.svg.addTo(i)}return ln.nodes}function G3(i){return!i.width&&!i.height&&!i.x&&!i.y}function oM(i){return i===Te.document||(Te.document.documentElement.contains||function(e){for(;e.parentNode;)e=e.parentNode;return e===Te.document}).call(Te.document.documentElement,i)}function V3(i,e,t){let r;try{if(r=e(i.node),G3(r)&&!oM(i.node))throw new Error("Element not in the dom")}catch{r=t(i)}return r}function lM(){let t=V3(this,n=>n.getBBox(),n=>{try{let s=n.clone().addTo(ln().svg).show(),a=s.node.getBBox();return s.remove(),a}catch(s){throw new Error(`Getting bbox of element "${n.node.nodeName}" is not possible: ${s.toString()}`)}});return new Gt(t)}function hM(i){let r=V3(this,s=>s.getBoundingClientRect(),s=>{throw new Error(`Getting rbox of element "${s.node.nodeName}" is not possible`)}),n=new Gt(r);return i?n.transform(i.screenCTM().inverseO()):n.addOffset()}function dM(i,e){let t=this.bbox();return i>t.x&&e>t.y&&i(r[n]=this.attr(n),r),{});if(typeof i=="object"&&i.constructor===Object)for(e in i)this.attr(e,i[e]);else if(e===null)this.node.removeAttribute(i);else{if(e==null)return e=this.node.getAttribute(i),e==null?xM[i]:O3.test(e)?parseFloat(e):e;e=X3.reduce((r,n)=>n(i,r,this),e),typeof e=="number"?e=new ye(e):Ni.isColor(e)?e=new Ni(e):e.constructor===Array&&(e=new hn(e)),i==="leading"?this.leading&&this.leading(e):typeof t=="string"?this.node.setAttributeNS(t,i,e.toString()):this.node.setAttribute(i,e.toString()),this.rebuild&&(i==="font-size"||i==="x")&&this.rebuild()}}return this}function wM(){return this.attr("transform",null)}function MM(){return(this.attr("transform")||"").split(Pw).slice(0,-1).map(function(e){let t=e.trim().split("(");return[t[0],t[1].split(Sr).map(function(r){return parseFloat(r)})]}).reverse().reduce(function(e,t){return t[0]==="matrix"?e.lmultiply(xe.fromArray(t[1])):e[t[0]].apply(e,t[1])},new xe)}function TM(i,e){if(this===i)return this;let t=this.screenCTM(),r=i.screenCTM().inverse();return this.addTo(i,e).untransform().transform(r.multiply(t)),this}function NM(i){return this.toParent(this.root(),i)}function EM(i,e){if(i==null||typeof i=="string"){let n=new xe(this).decompose();return i==null?n:n[i]}xe.isMatrixLike(i)||(i={...i,origin:Xc(i,this)});let t=e===!0?this:e||!1,r=new xe(t).transform(i);return this.attr("transform",r)}function lu(i){return this.attr("rx",i)}function hu(i){return this.attr("ry",i)}function K3(i){return i==null?this.cx()-this.rx():this.cx(i+this.rx())}function Z3(i){return i==null?this.cy()-this.ry():this.cy(i+this.ry())}function Q3(i){return this.attr("cx",i)}function J3(i){return this.attr("cy",i)}function e2(i){return i==null?this.rx()*2:this.rx(new ye(i).divide(2))}function t2(i){return i==null?this.ry()*2:this.ry(new ye(i).divide(2))}function i2(i,e){return(this._element||this).type==="radialGradient"?this.attr({fx:new ye(i),fy:new ye(e)}):this.attr({x1:new ye(i),y1:new ye(e)})}function r2(i,e){return(this._element||this).type==="radialGradient"?this.attr({cx:new ye(i),cy:new ye(e)}):this.attr({x2:new ye(i),y2:new ye(e)})}function CM(i){return i==null?this.bbox().x:this.move(i,this.bbox().y)}function _M(i){return i==null?this.bbox().y:this.move(this.bbox().x,i)}function LM(i){let e=this.bbox();return i==null?e.width:this.size(i,e.height)}function IM(i){let e=this.bbox();return i==null?e.height:this.size(e.width,i)}function Ys(i,e){return function(t){return t==null?this[i]:(this[i]=t,e&&e.call(this),this)}}function P3(){let i=(this._duration||500)/1e3,e=this._overshoot||0,t=1e-10,r=Math.PI,n=Math.log(e/100+t),s=-n/Math.sqrt(r*r+n*n),a=3.9/(s*i);this.d=2*s*a,this.k=a*a}function DM(i){let e=i.segment[0];return Jc[e](i.segment.slice(1),i.p,i.p0)}function eu(i){return i.segment.length&&i.segment.length-1===RM[i.segment[0].toUpperCase()]}function OM(i,e){i.inNumber&&Jn(i,!1);let t=au.test(e);if(t)i.segment=[e];else{let r=i.lastCommand,n=r.toLowerCase(),s=r===n;i.segment=[n==="m"?s?"l":"L":r]}return i.inSegment=!0,i.lastCommand=i.segment[0],t}function Jn(i,e){if(!i.inNumber)throw new Error("Parser Error");i.number&&i.segment.push(parseFloat(i.number)),i.inNumber=e,i.number="",i.pointSeen=!1,i.hasExponent=!1,eu(i)&&tu(i)}function tu(i){i.inSegment=!1,i.absolute&&(i.segment=DM(i)),i.segments.push(i.segment)}function BM(i){if(!i.segment.length)return!1;let e=i.segment[0].toUpperCase()==="A",t=i.segment.length;return e&&(t===4||t===5)}function PM(i){return i.lastToken.toUpperCase()==="E"}function FM(i,e=!0){let t=0,r="",n={segment:[],inNumber:!1,number:"",lastToken:"",inSegment:!1,segments:[],pointSeen:!1,hasExponent:!1,absolute:e,p0:new it,p:new it};for(;n.lastToken=r,r=i.charAt(t++);)if(!(!n.inSegment&&OM(n,r))){if(r==="."){if(n.pointSeen||n.hasExponent){Jn(n,!1),--t;continue}n.inNumber=!0,n.pointSeen=!0,n.number+=r;continue}if(!isNaN(parseInt(r))){if(n.number==="0"||BM(n)){n.inNumber=!0,n.number=r,Jn(n,!0);continue}n.inNumber=!0,n.number+=r;continue}if(r===" "||r===","){n.inNumber&&Jn(n,!1);continue}if(r==="-"){if(n.inNumber&&!PM(n)){Jn(n,!1),--t;continue}n.number+=r,n.inNumber=!0;continue}if(r.toUpperCase()==="E"){n.number+=r,n.hasExponent=!0;continue}if(au.test(r)){if(n.inNumber)Jn(n,!1);else if(eu(n))tu(n);else throw new Error("parser Error");--t}}return n.inNumber&&Jn(n,!1),n.inSegment&&eu(n)&&tu(n),n.segments}function qM(i){let e="";for(let t=0,r=i.length;t{let n;try{n=t.bbox()}catch{return}let s=new xe(t),a=s.translate(i,e).transform(s.inverse()),o=new it(n.x,n.y).transform(a);t.move(o.x,o.y)}),this}function uT(i){return this.dmove(i,0)}function fT(i){return this.dmove(0,i)}function mT(i,e=this.bbox()){return i==null?e.height:this.size(e.width,i,e)}function pT(i=0,e=0,t=this.bbox()){let r=i-t.x,n=e-t.y;return this.dmove(r,n)}function gT(i,e,t=this.bbox()){let r=ta(this,i,e,t),n=r.width/t.width,s=r.height/t.height;return this.children().forEach((a,o)=>{let l=new it(t).transform(new xe(a).inverse());a.scale(n,s,l.x,l.y)}),this}function xT(i,e=this.bbox()){return i==null?e.width:this.size(i,e.height,e)}function yT(i,e=this.bbox()){return i==null?e.x:this.move(i,e.y,e)}function vT(i,e=this.bbox()){return i==null?e.y:this.move(e.x,i,e)}function bT(i,e){if(!i)return"";if(!e)return i;let t=i+"{";for(let r in e)t+=yw(r)+":"+e[r]+";";return t+="}",t}var Yc,F3,nu,vw,_0,Lo,bw,Te,yo,es,su,Gc,Mw,j3,Dw,Ow,Bw,Pw,Fw,z3,R3,D3,O3,qw,Sr,au,Ni,it,xe,Gt,Nr,cM,mM,W3,ts,go,xM,hn,ye,X3,dn,Ei,po,bM,Vt,bo,Dt,SM,Xs,L0,AM,is,rs,ji,sr,kM,du,ns,Ks,zM,wo,Mo,Zs,Zc,Qc,RM,Jc,Wc,Er,n2,Tr,To,No,HM,ss,cu,ar,s2,Gi,as,Ve,xo,Se,XM,KM,I0,Vi,Qs,a2,o2,iu,QM,Eo,So,l2,Ce,Js,Wi,Ao,ea,h2,_e,cn,ko,z0,Co,_o,R0,Ae,yt=T(()=>{Yc={},F3=[];nu="http://www.w3.org/2000/svg",vw="http://www.w3.org/1999/xhtml",_0="http://www.w3.org/2000/xmlns/",Lo="http://www.w3.org/1999/xlink",bw="http://svgjs.dev/svgjs",Te={window:typeof window>"u"?null:window,document:typeof document>"u"?null:document},yo=class{},es={},su="___SYMBOL___ROOT___";Gc=Ti;Mw=1e3;fe("Dom",{siblings:Tw,position:Nw,next:Ew,prev:Sw,forward:Aw,backward:kw,front:Cw,back:_w,before:Lw,after:Iw,insertBefore:zw,insertAfter:Rw});j3=/^([+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?)([a-z%]*)$/i,Dw=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,Ow=/rgb\((\d+),(\d+),(\d+)\)/,Bw=/(#[a-z_][a-z0-9\-_]*)/i,Pw=/\)\s*,?\s*/,Fw=/\s/g,z3=/^#[a-f0-9]{3}$|^#[a-f0-9]{6}$/i,R3=/^rgb\(/,D3=/^(\s+)?$/,O3=/^[+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,qw=/\.(jpg|jpeg|png|gif|svg)(\?[^=]+.*)?/i,Sr=/[\s,]+/,au=/[MLHVCSQTAZ]/i;fe("Dom",{classes:Hw,hasClass:Uw,addClass:$w,removeClass:jw,toggleClass:Gw});fe("Dom",{css:Vw,show:Ww,hide:Yw,visible:Xw});fe("Dom",{data:Kw});fe("Dom",{remember:Zw,forget:Qw,memory:Jw});Ni=class i{constructor(...e){this.init(...e)}static isColor(e){return e&&(e instanceof i||this.isRgb(e)||this.test(e))}static isRgb(e){return e&&typeof e.r=="number"&&typeof e.g=="number"&&typeof e.b=="number"}static random(e="vibrant",t,r){let{random:n,round:s,sin:a,PI:o}=Math;if(e==="vibrant"){let l=24*n()+57,h=38*n()+45,d=360*n();return new i(l,h,d,"lch")}else if(e==="sine"){t=t??n();let l=s(80*a(2*o*t/.5+.01)+150),h=s(50*a(2*o*t/.5+4.6)+200),d=s(100*a(2*o*t/.5+2.3)+150);return new i(l,h,d)}else if(e==="pastel"){let l=8*n()+86,h=17*n()+9,d=360*n();return new i(l,h,d,"lch")}else if(e==="dark"){let l=10+10*n(),h=50*n()+86,d=360*n();return new i(l,h,d,"lch")}else if(e==="rgb"){let l=255*n(),h=255*n(),d=255*n();return new i(l,h,d)}else if(e==="lab"){let l=100*n(),h=256*n()-128,d=256*n()-128;return new i(l,h,d,"lab")}else if(e==="grey"){let l=255*n();return new i(l,l,l)}else throw new Error("Unsupported random color mode")}static test(e){return typeof e=="string"&&(z3.test(e)||R3.test(e))}cmyk(){let{_a:e,_b:t,_c:r}=this.rgb(),[n,s,a]=[e,t,r].map(f=>f/255),o=Math.min(1-n,1-s,1-a);if(o===1)return new i(0,0,0,1,"cmyk");let l=(1-n-o)/(1-o),h=(1-s-o)/(1-o),d=(1-a-o)/(1-o);return new i(l,h,d,o,"cmyk")}hsl(){let{_a:e,_b:t,_c:r}=this.rgb(),[n,s,a]=[e,t,r].map(x=>x/255),o=Math.max(n,s,a),l=Math.min(n,s,a),h=(o+l)/2,d=o===l,c=o-l,f=d?0:h>.5?c/(2-o-l):c/(o+l),m=d?0:o===n?((s-a)/c+(sparseInt(x));Object.assign(this,{_a:f,_b:m,_c:g,_d:0,space:"rgb"})}else if(z3.test(e)){let c=x=>parseInt(x,16),[,f,m,g]=Dw.exec(eM(e)).map(c);Object.assign(this,{_a:f,_b:m,_c:g,_d:0,space:"rgb"})}else throw Error("Unsupported string format, can't construct Color");let{_a:a,_b:o,_c:l,_d:h}=this,d=this.space==="rgb"?{r:a,g:o,b:l}:this.space==="xyz"?{x:a,y:o,z:l}:this.space==="hsl"?{h:a,s:o,l}:this.space==="lab"?{l:a,a:o,b:l}:this.space==="lch"?{l:a,c:o,h:l}:this.space==="cmyk"?{c:a,m:o,y:l,k:h}:{};Object.assign(this,d)}lab(){let{x:e,y:t,z:r}=this.xyz(),n=116*t-16,s=500*(e-t),a=200*(t-r);return new i(n,s,a,"lab")}lch(){let{l:e,a:t,b:r}=this.lab(),n=Math.sqrt(t**2+r**2),s=180*Math.atan2(r,t)/Math.PI;return s<0&&(s*=-1,s=360-s),new i(e,n,s,"lch")}rgb(){if(this.space==="rgb")return this;if(rM(this.space)){let{x:e,y:t,z:r}=this;if(this.space==="lab"||this.space==="lch"){let{l:m,a:g,b:x}=this;if(this.space==="lch"){let{c:O,h:q}=this,P=Math.PI/180;g=O*Math.cos(P*q),x=O*Math.sin(P*q)}let y=(m+16)/116,b=g/500+y,S=y-x/200,A=16/116,C=.008856,I=7.787;e=.95047*(b**3>C?b**3:(b-A)/I),t=1*(y**3>C?y**3:(y-A)/I),r=1.08883*(S**3>C?S**3:(S-A)/I)}let n=e*3.2406+t*-1.5372+r*-.4986,s=e*-.9689+t*1.8758+r*.0415,a=e*.0557+t*-.204+r*1.057,o=Math.pow,l=.0031308,h=n>l?1.055*o(n,1/2.4)-.055:12.92*n,d=s>l?1.055*o(s,1/2.4)-.055:12.92*s,c=a>l?1.055*o(a,1/2.4)-.055:12.92*a;return new i(255*h,255*d,255*c)}else if(this.space==="hsl"){let{h:e,s:t,l:r}=this;if(e/=360,t/=100,r/=100,t===0)return r*=255,new i(r,r,r);let n=r<.5?r*(1+t):r+t-r*t,s=2*r-n,a=255*Vc(s,n,e+1/3),o=255*Vc(s,n,e),l=255*Vc(s,n,e-1/3);return new i(a,o,l)}else if(this.space==="cmyk"){let{c:e,m:t,y:r,k:n}=this,s=255*(1-Math.min(1,e*(1-n)+n)),a=255*(1-Math.min(1,t*(1-n)+n)),o=255*(1-Math.min(1,r*(1-n)+n));return new i(s,a,o)}else return this}toArray(){let{_a:e,_b:t,_c:r,_d:n,space:s}=this;return[e,t,r,n,s]}toHex(){let[e,t,r]=this._clamped().map(tM);return`#${e}${t}${r}`}toRgb(){let[e,t,r]=this._clamped();return`rgb(${e},${t},${r})`}toString(){return this.toHex()}xyz(){let{_a:e,_b:t,_c:r}=this.rgb(),[n,s,a]=[e,t,r].map(b=>b/255),o=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92,l=s>.04045?Math.pow((s+.055)/1.055,2.4):s/12.92,h=a>.04045?Math.pow((a+.055)/1.055,2.4):a/12.92,d=(o*.4124+l*.3576+h*.1805)/.95047,c=(o*.2126+l*.7152+h*.0722)/1,f=(o*.0193+l*.1192+h*.9505)/1.08883,m=d>.008856?Math.pow(d,1/3):7.787*d+16/116,g=c>.008856?Math.pow(c,1/3):7.787*c+16/116,x=f>.008856?Math.pow(f,1/3):7.787*f+16/116;return new i(m,g,x,"xyz")}_clamped(){let{_a:e,_b:t,_c:r}=this.rgb(),{max:n,min:s,round:a}=Math,o=l=>n(0,s(a(l),255));return[e,t,r].map(o)}},it=class i{constructor(...e){this.init(...e)}clone(){return new i(this)}init(e,t){let r={x:0,y:0},n=Array.isArray(e)?{x:e[0],y:e[1]}:typeof e=="object"?{x:e.x,y:e.y}:{x:e,y:t};return this.x=n.x==null?r.x:n.x,this.y=n.y==null?r.y:n.y,this}toArray(){return[this.x,this.y]}transform(e){return this.clone().transformO(e)}transformO(e){xe.isMatrixLike(e)||(e=new xe(e));let{x:t,y:r}=this;return this.x=e.a*t+e.c*r+e.e,this.y=e.b*t+e.d*r+e.f,this}};xe=class i{constructor(...e){this.init(...e)}static formatTransforms(e){let t=e.flip==="both"||e.flip===!0,r=e.flip&&(t||e.flip==="x")?-1:1,n=e.flip&&(t||e.flip==="y")?-1:1,s=e.skew&&e.skew.length?e.skew[0]:isFinite(e.skew)?e.skew:isFinite(e.skewX)?e.skewX:0,a=e.skew&&e.skew.length?e.skew[1]:isFinite(e.skew)?e.skew:isFinite(e.skewY)?e.skewY:0,o=e.scale&&e.scale.length?e.scale[0]*r:isFinite(e.scale)?e.scale*r:isFinite(e.scaleX)?e.scaleX*r:r,l=e.scale&&e.scale.length?e.scale[1]*n:isFinite(e.scale)?e.scale*n:isFinite(e.scaleY)?e.scaleY*n:n,h=e.shear||0,d=e.rotate||e.theta||0,c=new it(e.origin||e.around||e.ox||e.originX,e.oy||e.originY),f=c.x,m=c.y,g=new it(e.position||e.px||e.positionX||NaN,e.py||e.positionY||NaN),x=g.x,y=g.y,b=new it(e.translate||e.tx||e.translateX,e.ty||e.translateY),S=b.x,A=b.y,C=new it(e.relative||e.rx||e.relativeX,e.ry||e.relativeY),I=C.x,O=C.y;return{scaleX:o,scaleY:l,skewX:s,skewY:a,shear:h,theta:d,rx:I,ry:O,tx:S,ty:A,ox:f,oy:m,px:x,py:y}}static fromArray(e){return{a:e[0],b:e[1],c:e[2],d:e[3],e:e[4],f:e[5]}}static isMatrixLike(e){return e.a!=null||e.b!=null||e.c!=null||e.d!=null||e.e!=null||e.f!=null}static matrixMultiply(e,t,r){let n=e.a*t.a+e.c*t.b,s=e.b*t.a+e.d*t.b,a=e.a*t.c+e.c*t.d,o=e.b*t.c+e.d*t.d,l=e.e+e.a*t.e+e.c*t.f,h=e.f+e.b*t.e+e.d*t.f;return r.a=n,r.b=s,r.c=a,r.d=o,r.e=l,r.f=h,r}around(e,t,r){return this.clone().aroundO(e,t,r)}aroundO(e,t,r){let n=e||0,s=t||0;return this.translateO(-n,-s).lmultiplyO(r).translateO(n,s)}clone(){return new i(this)}decompose(e=0,t=0){let r=this.a,n=this.b,s=this.c,a=this.d,o=this.e,l=this.f,h=r*a-n*s,d=h>0?1:-1,c=d*Math.sqrt(r*r+n*n),f=Math.atan2(d*n,d*r),m=180/Math.PI*f,g=Math.cos(f),x=Math.sin(f),y=(r*s+n*a)/h,b=s*c/(y*r-n)||a*c/(y*n+r),S=o-e+e*g*c+t*(y*g*c-x*b),A=l-t+e*x*c+t*(y*x*c+g*b);return{scaleX:c,scaleY:b,shear:y,rotate:m,translateX:S,translateY:A,originX:e,originY:t,a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}equals(e){if(e===this)return!0;let t=new i(e);return Vs(this.a,t.a)&&Vs(this.b,t.b)&&Vs(this.c,t.c)&&Vs(this.d,t.d)&&Vs(this.e,t.e)&&Vs(this.f,t.f)}flip(e,t){return this.clone().flipO(e,t)}flipO(e,t){return e==="x"?this.scaleO(-1,1,t,0):e==="y"?this.scaleO(1,-1,0,t):this.scaleO(-1,-1,e,t||e)}init(e){let t=i.fromArray([1,0,0,1,0,0]);return e=e instanceof Ei?e.matrixify():typeof e=="string"?i.fromArray(e.split(Sr).map(parseFloat)):Array.isArray(e)?i.fromArray(e):typeof e=="object"&&i.isMatrixLike(e)?e:typeof e=="object"?new i().transform(e):arguments.length===6?i.fromArray([].slice.call(arguments)):t,this.a=e.a!=null?e.a:t.a,this.b=e.b!=null?e.b:t.b,this.c=e.c!=null?e.c:t.c,this.d=e.d!=null?e.d:t.d,this.e=e.e!=null?e.e:t.e,this.f=e.f!=null?e.f:t.f,this}inverse(){return this.clone().inverseO()}inverseO(){let e=this.a,t=this.b,r=this.c,n=this.d,s=this.e,a=this.f,o=e*n-t*r;if(!o)throw new Error("Cannot invert "+this);let l=n/o,h=-t/o,d=-r/o,c=e/o,f=-(l*s+d*a),m=-(h*s+c*a);return this.a=l,this.b=h,this.c=d,this.d=c,this.e=f,this.f=m,this}lmultiply(e){return this.clone().lmultiplyO(e)}lmultiplyO(e){let t=this,r=e instanceof i?e:new i(e);return i.matrixMultiply(r,t,this)}multiply(e){return this.clone().multiplyO(e)}multiplyO(e){let t=this,r=e instanceof i?e:new i(e);return i.matrixMultiply(t,r,this)}rotate(e,t,r){return this.clone().rotateO(e,t,r)}rotateO(e,t=0,r=0){e=jc(e);let n=Math.cos(e),s=Math.sin(e),{a,b:o,c:l,d:h,e:d,f:c}=this;return this.a=a*n-o*s,this.b=o*n+a*s,this.c=l*n-h*s,this.d=h*n+l*s,this.e=d*n-c*s+r*s-t*n+t,this.f=c*n+d*s-t*s-r*n+r,this}scale(e,t,r,n){return this.clone().scaleO(...arguments)}scaleO(e,t=e,r=0,n=0){arguments.length===3&&(n=r,r=t,t=e);let{a:s,b:a,c:o,d:l,e:h,f:d}=this;return this.a=s*e,this.b=a*t,this.c=o*e,this.d=l*t,this.e=h*e-r*e+r,this.f=d*t-n*t+n,this}shear(e,t,r){return this.clone().shearO(e,t,r)}shearO(e,t=0,r=0){let{a:n,b:s,c:a,d:o,e:l,f:h}=this;return this.a=n+s*e,this.c=a+o*e,this.e=l+h*e-r*e,this}skew(e,t,r,n){return this.clone().skewO(...arguments)}skewO(e,t=e,r=0,n=0){arguments.length===3&&(n=r,r=t,t=e),e=jc(e),t=jc(t);let s=Math.tan(e),a=Math.tan(t),{a:o,b:l,c:h,d,e:c,f}=this;return this.a=o+l*s,this.b=l+o*a,this.c=h+d*s,this.d=d+h*a,this.e=c+f*s-n*s,this.f=f+c*a-r*a,this}skewX(e,t,r){return this.skew(e,0,t,r)}skewY(e,t,r){return this.skew(0,e,t,r)}toArray(){return[this.a,this.b,this.c,this.d,this.e,this.f]}toString(){return"matrix("+this.a+","+this.b+","+this.c+","+this.d+","+this.e+","+this.f+")"}transform(e){if(i.isMatrixLike(e))return new i(e).multiplyO(this);let t=i.formatTransforms(e),r=this,{x:n,y:s}=new it(t.ox,t.oy).transform(r),a=new i().translateO(t.rx,t.ry).lmultiplyO(r).translateO(-n,-s).scaleO(t.scaleX,t.scaleY).skewO(t.skewX,t.skewY).shearO(t.shear).rotateO(t.theta).translateO(n,s);if(isFinite(t.px)||isFinite(t.py)){let o=new it(n,s).transform(a),l=isFinite(t.px)?t.px-o.x:0,h=isFinite(t.py)?t.py-o.y:0;a.translateO(l,h)}return a.translateO(t.tx,t.ty),a}translate(e,t){return this.clone().translateO(e,t)}translateO(e,t){return this.e+=e||0,this.f+=t||0,this}valueOf(){return{a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}};be(xe,"Matrix");Gt=class i{constructor(...e){this.init(...e)}addOffset(){return this.x+=Te.window.pageXOffset,this.y+=Te.window.pageYOffset,new i(this)}init(e){let t=[0,0,0,0];return e=typeof e=="string"?e.split(Sr).map(parseFloat):Array.isArray(e)?e:typeof e=="object"?[e.left!=null?e.left:e.x,e.top!=null?e.top:e.y,e.width,e.height]:arguments.length===4?[].slice.call(arguments):t,this.x=e[0]||0,this.y=e[1]||0,this.width=this.w=e[2]||0,this.height=this.h=e[3]||0,this.x2=this.x+this.w,this.y2=this.y+this.h,this.cx=this.x+this.w/2,this.cy=this.y+this.h/2,this}isNulled(){return G3(this)}merge(e){let t=Math.min(this.x,e.x),r=Math.min(this.y,e.y),n=Math.max(this.x+this.width,e.x+e.width)-t,s=Math.max(this.y+this.height,e.y+e.height)-r;return new i(t,r,n,s)}toArray(){return[this.x,this.y,this.width,this.height]}toString(){return this.x+" "+this.y+" "+this.width+" "+this.height}transform(e){e instanceof xe||(e=new xe(e));let t=1/0,r=-1/0,n=1/0,s=-1/0;return[new it(this.x,this.y),new it(this.x2,this.y),new it(this.x,this.y2),new it(this.x2,this.y2)].forEach(function(o){o=o.transform(e),t=Math.min(t,o.x),r=Math.max(r,o.x),n=Math.min(n,o.y),s=Math.max(s,o.y)}),new i(t,n,r-t,s-n)}};fe({viewbox:{viewbox(i,e,t,r){return i==null?new Gt(this.attr("viewBox")):this.attr("viewBox",new Gt(i,e,t,r))},zoom(i,e){let{width:t,height:r}=this.attr(["width","height"]);if((!t&&!r||typeof t=="string"||typeof r=="string")&&(t=this.node.clientWidth,r=this.node.clientHeight),!t||!r)throw new Error("Impossible to get absolute width and height. Please provide an absolute width and height attribute on the zooming element");let n=this.viewbox(),s=t/n.width,a=r/n.height,o=Math.min(s,a);if(i==null)return o;let l=o/i;l===1/0&&(l=Number.MAX_SAFE_INTEGER/100),e=e||new it(t/2/s+n.x,r/2/a+n.y);let h=new Gt(n).transform(new xe({scale:l,origin:e}));return this.viewbox(h)}}});be(Gt,"Box");Nr=class extends Array{constructor(e=[],...t){if(super(e,...t),typeof e=="number")return this;this.length=0,this.push(...e)}};ge([Nr],{each(i,...e){return typeof i=="function"?this.map((t,r,n)=>i.call(t,t,r,n)):this.map(t=>t[i](...e))},toArray(){return Array.prototype.concat.apply([],this)}});cM=["toArray","constructor","each"];Nr.extend=function(i){i=i.reduce((e,t)=>(cM.includes(t)||t[0]==="_"||(e[t]=function(...r){return this.each(t,...r)}),e),{}),ge([Nr],i)};mM=0,W3={};ts=class extends yo{addEventListener(){}dispatch(e,t,r){return gM(this,e,t,r)}dispatchEvent(e){let t=this.getEventHolder().events;if(!t)return!0;let r=t[e.type];for(let n in r)for(let s in r[n])r[n][s](e);return!e.defaultPrevented}fire(e,t,r){return this.dispatch(e,t,r),this}getEventHolder(){return this}getEventTarget(){return this}off(e,t,r){return Ws(this,e,t,r),this}on(e,t,r,n){return Kc(this,e,t,r,n),this}removeEventListener(){}};be(ts,"EventTarget");go={duration:400,ease:">",delay:0},xM={"fill-opacity":1,"stroke-opacity":1,"stroke-width":0,"stroke-linejoin":"miter","stroke-linecap":"butt",fill:"#000000",stroke:"#000000",opacity:1,x:0,y:0,cx:0,cy:0,width:0,height:0,r:0,rx:0,ry:0,offset:0,"stop-opacity":1,"stop-color":"#000000","text-anchor":"start"},hn=class extends Array{constructor(...e){super(...e),this.init(...e)}clone(){return new this.constructor(this)}init(e){return typeof e=="number"?this:(this.length=0,this.push(...this.parse(e)),this)}parse(e=[]){return e instanceof Array?e:e.trim().split(Sr).map(parseFloat)}toArray(){return Array.prototype.concat.apply([],this)}toSet(){return new Set(this)}toString(){return this.join(" ")}valueOf(){let e=[];return e.push(...this),e}},ye=class i{constructor(...e){this.init(...e)}convert(e){return new i(this.value,e)}divide(e){return e=new i(e),new i(this/e,this.unit||e.unit)}init(e,t){return t=Array.isArray(e)?e[1]:t,e=Array.isArray(e)?e[0]:e,this.value=0,this.unit=t||"",typeof e=="number"?this.value=isNaN(e)?0:isFinite(e)?e:e<0?-34e37:34e37:typeof e=="string"?(t=e.match(j3),t&&(this.value=parseFloat(t[1]),t[5]==="%"?this.value/=100:t[5]==="s"&&(this.value*=1e3),this.unit=t[5])):e instanceof i&&(this.value=e.valueOf(),this.unit=e.unit),this}minus(e){return e=new i(e),new i(this-e,this.unit||e.unit)}plus(e){return e=new i(e),new i(this+e,this.unit||e.unit)}times(e){return e=new i(e),new i(this*e,this.unit||e.unit)}toArray(){return[this.value,this.unit]}toJSON(){return this.toString()}toString(){return(this.unit==="%"?~~(this.value*1e8)/1e6:this.unit==="s"?this.value/1e3:this.value)+this.unit}valueOf(){return this.value}},X3=[];dn=class i extends ts{constructor(e,t){super(),this.node=e,this.type=e.nodeName,t&&e!==t&&this.attr(t)}add(e,t){return e=Rt(e),e.removeNamespace&&this.node instanceof Te.window.SVGElement&&e.removeNamespace(),t==null?this.node.appendChild(e.node):e.node!==this.node.childNodes[t]&&this.node.insertBefore(e.node,this.node.childNodes[t]),this}addTo(e,t){return Rt(e).put(this,t)}children(){return new Nr(ru(this.node.children,function(e){return Ti(e)}))}clear(){for(;this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);return this}clone(e=!0,t=!0){this.writeDataToDom();let r=this.node.cloneNode(e);return t&&(r=$3(r)),new this.constructor(r)}each(e,t){let r=this.children(),n,s;for(n=0,s=r.length;n=0}html(e,t){return this.xml(e,t,vw)}id(e){return typeof e>"u"&&!this.node.id&&(this.node.id=U3(this.type)),this.attr("id",e)}index(e){return[].slice.call(this.node.childNodes).indexOf(e.node)}last(){return Ti(this.node.lastChild)}matches(e){let t=this.node,r=t.matches||t.matchesSelector||t.msMatchesSelector||t.mozMatchesSelector||t.webkitMatchesSelector||t.oMatchesSelector||null;return r&&r.call(t,e)}parent(e){let t=this;if(!t.node.parentNode)return null;if(t=Ti(t.node.parentNode),!e)return t;do if(typeof e=="string"?t.matches(e):t instanceof e)return t;while(t=Ti(t.node.parentNode));return t}put(e,t){return e=Rt(e),this.add(e,t),e}putIn(e,t){return Rt(e).add(this,t)}remove(){return this.parent()&&this.parent().removeElement(this),this}removeElement(e){return this.node.removeChild(e.node),this}replace(e){return e=Rt(e),this.node.parentNode&&this.node.parentNode.replaceChild(e.node,this.node),e}round(e=2,t=null){let r=10**e,n=this.attr(t);for(let s in n)typeof n[s]=="number"&&(n[s]=Math.round(n[s]*r)/r);return this.attr(n),this}svg(e,t){return this.xml(e,t,nu)}toString(){return this.id()}words(e){return this.node.textContent=e,this}wrap(e){let t=this.parent();if(!t)return this.addTo(e);let r=t.index(this);return t.put(e,r).put(this)}writeDataToDom(){return this.each(function(){this.writeDataToDom()}),this}xml(e,t,r){if(typeof e=="boolean"&&(r=t,t=e,e=null),e==null||typeof e=="function"){t=t??!0,this.writeDataToDom();let o=this;if(e!=null){if(o=Ti(o.node.cloneNode(!0)),t){let l=e(o);if(o=l||o,l===!1)return""}o.each(function(){let l=e(this),h=l||this;l===!1?this.remove():l&&this!==h&&this.replace(h)},!0)}return t?o.node.outerHTML:o.node.innerHTML}t=t??!1;let n=vo("wrapper",r),s=Te.document.createDocumentFragment();n.innerHTML=e;for(let o=n.children.length;o--;)s.appendChild(n.firstElementChild);let a=this.parent();return t?this.replace(s)&&a:this.add(s)}};ge(dn,{attr:vM,find:uM,findOne:fM});be(dn,"Dom");Ei=class extends dn{constructor(e,t){super(e,t),this.dom={},this.node.instance=this,e.hasAttribute("svgjs:data")&&this.setData(JSON.parse(e.getAttribute("svgjs:data"))||{})}center(e,t){return this.cx(e).cy(t)}cx(e){return e==null?this.x()+this.width()/2:this.x(e-this.width()/2)}cy(e){return e==null?this.y()+this.height()/2:this.y(e-this.height()/2)}defs(){let e=this.root();return e&&e.defs()}dmove(e,t){return this.dx(e).dy(t)}dx(e=0){return this.x(new ye(e).plus(this.x()))}dy(e=0){return this.y(new ye(e).plus(this.y()))}getEventHolder(){return this}height(e){return this.attr("height",e)}move(e,t){return this.x(e).y(t)}parents(e=this.root()){let t=typeof e=="string";t||(e=Rt(e));let r=new Nr,n=this;for(;(n=n.parent())&&n.node!==Te.document&&n.nodeName!=="#document-fragment"&&(r.push(n),!(!t&&n.node===e.node||t&&n.matches(e)));)if(n.node===this.root().node)return null;return r}reference(e){if(e=this.attr(e),!e)return null;let t=(e+"").match(Bw);return t?Rt(t[1]):null}root(){let e=this.parent(ww(su));return e&&e.root()}setData(e){return this.dom=e,this}size(e,t){let r=ta(this,e,t);return this.width(new ye(r.width)).height(new ye(r.height))}width(e){return this.attr("width",e)}writeDataToDom(){return this.node.removeAttribute("svgjs:data"),Object.keys(this.dom).length&&this.node.setAttribute("svgjs:data",JSON.stringify(this.dom)),super.writeDataToDom()}x(e){return this.attr("x",e)}y(e){return this.attr("y",e)}};ge(Ei,{bbox:lM,rbox:hM,inside:dM,point:nM,ctm:sM,screenCTM:aM});be(Ei,"Element");po={stroke:["color","width","opacity","linecap","linejoin","miterlimit","dasharray","dashoffset"],fill:["color","opacity","rule"],prefix:function(i,e){return e==="color"?i:i+"-"+e}};["fill","stroke"].forEach(function(i){let e={},t;e[i]=function(r){if(typeof r>"u")return this.attr(i);if(typeof r=="string"||r instanceof Ni||Ni.isRgb(r)||r instanceof Ei)this.attr(i,r);else for(t=po[i].length-1;t>=0;t--)r[po[i][t]]!=null&&this.attr(po.prefix(i,po[i][t]),r[po[i][t]]);return this},fe(["Element","Runner"],e)});fe(["Element","Runner"],{matrix:function(i,e,t,r,n,s){return i==null?new xe(this):this.attr("transform",new xe(i,e,t,r,n,s))},rotate:function(i,e,t){return this.transform({rotate:i,ox:e,oy:t},!0)},skew:function(i,e,t,r){return arguments.length===1||arguments.length===3?this.transform({skew:i,ox:e,oy:t},!0):this.transform({skew:[i,e],ox:t,oy:r},!0)},shear:function(i,e,t){return this.transform({shear:i,ox:e,oy:t},!0)},scale:function(i,e,t,r){return arguments.length===1||arguments.length===3?this.transform({scale:i,ox:e,oy:t},!0):this.transform({scale:[i,e],ox:t,oy:r},!0)},translate:function(i,e){return this.transform({translate:[i,e]},!0)},relative:function(i,e){return this.transform({relative:[i,e]},!0)},flip:function(i="both",e="center"){return"xybothtrue".indexOf(i)===-1&&(e=i,i="both"),this.transform({flip:i,origin:e},!0)},opacity:function(i){return this.attr("opacity",i)}});fe("radius",{radius:function(i,e=i){return(this._element||this).type==="radialGradient"?this.attr("r",new ye(i)):this.rx(i).ry(e)}});fe("Path",{length:function(){return this.node.getTotalLength()},pointAt:function(i){return new it(this.node.getPointAtLength(i))}});fe(["Element","Runner"],{font:function(i,e){if(typeof i=="object"){for(e in i)this.font(e,i[e]);return this}return i==="leading"?this.leading(e):i==="anchor"?this.attr("text-anchor",e):i==="size"||i==="family"||i==="weight"||i==="stretch"||i==="variant"||i==="style"?this.attr("font-"+i,e):this.attr(i,e)}});bM=["click","dblclick","mousedown","mouseup","mouseover","mouseout","mousemove","mouseenter","mouseleave","touchstart","touchmove","touchleave","touchend","touchcancel"].reduce(function(i,e){let t=function(r){return r===null?this.off(e):this.on(e,r),this};return i[e]=t,i},{});fe("Element",bM);fe("Element",{untransform:wM,matrixify:MM,toParent:TM,toRoot:NM,transform:EM});Vt=class i extends Ei{flatten(e=this,t){return this.each(function(){if(this instanceof i)return this.flatten().ungroup()}),this}ungroup(e=this.parent(),t=e.index(this)){return t=t===-1?e.children().length:t,this.each(function(r,n){return n[n.length-r-1].toParent(e,t)}),this.remove()}};be(Vt,"Container");bo=class extends Vt{constructor(e,t=e){super(qe("defs",e),t)}flatten(){return this}ungroup(){return this}};be(bo,"Defs");Dt=class extends Ei{};be(Dt,"Shape");SM={__proto__:null,rx:lu,ry:hu,x:K3,y:Z3,cx:Q3,cy:J3,width:e2,height:t2},Xs=class extends Dt{constructor(e,t=e){super(qe("ellipse",e),t)}size(e,t){let r=ta(this,e,t);return this.rx(new ye(r.width).divide(2)).ry(new ye(r.height).divide(2))}};ge(Xs,SM);fe("Container",{ellipse:Fe(function(i=0,e=i){return this.put(new Xs).size(i,e).move(0,0)})});be(Xs,"Ellipse");L0=class extends dn{constructor(e=Te.document.createDocumentFragment()){super(e)}xml(e,t,r){if(typeof e=="boolean"&&(r=t,t=e,e=null),e==null||typeof e=="function"){let n=new dn(vo("wrapper",r));return n.add(this.node.cloneNode(!0)),n.xml(!1,r)}return super.xml(e,!1,r)}};be(L0,"Fragment");AM={__proto__:null,from:i2,to:r2},is=class extends Vt{constructor(e,t){super(qe(e+"Gradient",typeof e=="string"?null:e),t)}attr(e,t,r){return e==="transform"&&(e="gradientTransform"),super.attr(e,t,r)}bbox(){return new Gt}targets(){return ia("svg [fill*="+this.id()+"]")}toString(){return this.url()}update(e){return this.clear(),typeof e=="function"&&e.call(this,this),this}url(){return"url(#"+this.id()+")"}};ge(is,AM);fe({Container:{gradient(...i){return this.defs().gradient(...i)}},Defs:{gradient:Fe(function(i,e){return this.put(new is(i)).update(e)})}});be(is,"Gradient");rs=class extends Vt{constructor(e,t=e){super(qe("pattern",e),t)}attr(e,t,r){return e==="transform"&&(e="patternTransform"),super.attr(e,t,r)}bbox(){return new Gt}targets(){return ia("svg [fill*="+this.id()+"]")}toString(){return this.url()}update(e){return this.clear(),typeof e=="function"&&e.call(this,this),this}url(){return"url(#"+this.id()+")"}};fe({Container:{pattern(...i){return this.defs().pattern(...i)}},Defs:{pattern:Fe(function(i,e,t){return this.put(new rs).update(t).attr({x:0,y:0,width:i,height:e,patternUnits:"userSpaceOnUse"})})}});be(rs,"Pattern");ji=class extends Dt{constructor(e,t=e){super(qe("image",e),t)}load(e,t){if(!e)return this;let r=new Te.window.Image;return Kc(r,"load",function(n){let s=this.parent(rs);this.width()===0&&this.height()===0&&this.size(r.width,r.height),s instanceof rs&&s.width()===0&&s.height()===0&&s.size(this.width(),this.height()),typeof t=="function"&&t.call(this,n)},this),Kc(r,"load error",function(){Ws(r)}),this.attr("href",r.src=e,Lo)}};yM(function(i,e,t){return(i==="fill"||i==="stroke")&&qw.test(e)&&(e=t.root().defs().image(e)),e instanceof ji&&(e=t.root().defs().pattern(0,0,r=>{r.add(e)})),e});fe({Container:{image:Fe(function(i,e){return this.put(new ji).size(0,0).load(i,e)})}});be(ji,"Image");sr=class extends hn{bbox(){let e=-1/0,t=-1/0,r=1/0,n=1/0;return this.forEach(function(s){e=Math.max(s[0],e),t=Math.max(s[1],t),r=Math.min(s[0],r),n=Math.min(s[1],n)}),new Gt(r,n,e-r,t-n)}move(e,t){let r=this.bbox();if(e-=r.x,t-=r.y,!isNaN(e)&&!isNaN(t))for(let n=this.length-1;n>=0;n--)this[n]=[this[n][0]+e,this[n][1]+t];return this}parse(e=[0,0]){let t=[];e instanceof Array?e=Array.prototype.concat.apply([],e):e=e.trim().split(Sr).map(parseFloat),e.length%2!==0&&e.pop();for(let r=0,n=e.length;r=0;r--)n.width&&(this[r][0]=(this[r][0]-n.x)*e/n.width+n.x),n.height&&(this[r][1]=(this[r][1]-n.y)*t/n.height+n.y);return this}toLine(){return{x1:this[0][0],y1:this[0][1],x2:this[1][0],y2:this[1][1]}}toString(){let e=[];for(let t=0,r=this.length;t":function(i){return-Math.cos(i*Math.PI)/2+.5},">":function(i){return Math.sin(i*Math.PI/2)},"<":function(i){return-Math.cos(i*Math.PI/2)+1},bezier:function(i,e,t,r){return function(n){return n<0?i>0?e/i*n:t>0?r/t*n:0:n>1?t<1?(1-r)/(1-t)*n+(r-t)/(1-t):i<1?(1-e)/(1-i)*n+(e-i)/(1-i):1:3*n*(1-n)**2*e+3*n**2*(1-n)*r+n**3}},steps:function(i,e="end"){e=e.split("-").reverse()[0];let t=i;return e==="none"?--t:e==="both"&&++t,(r,n=!1)=>{let s=Math.floor(r*i),a=r*s%1===0;return(e==="start"||e==="both")&&++s,n&&a&&--s,r>=0&&s<0&&(s=0),r<=1&&s>t&&(s=t),s/t}}},wo=class{done(){return!1}},Mo=class extends wo{constructor(e=go.ease){super(),this.ease=zM[e]||e}step(e,t,r){return typeof e!="number"?r<1?e:t:e+(t-e)*this.ease(r)}},Zs=class extends wo{constructor(e){super(),this.stepper=e}done(e){return e.done}step(e,t,r,n){return this.stepper(e,t,r,n)}};Zc=class extends Zs{constructor(e=500,t=0){super(),this.duration(e).overshoot(t)}step(e,t,r,n){if(typeof e=="string")return e;if(n.done=r===1/0,r===1/0)return t;if(r===0)return e;r>100&&(r=16),r/=1e3;let s=n.velocity||0,a=-this.d*s-this.k*(e-t),o=e+s*r+a*r*r/2;return n.velocity=s+a*r,n.done=Math.abs(t-o)+Math.abs(s)<.002,n.done?t:o}};ge(Zc,{duration:Ys("_duration",P3),overshoot:Ys("_overshoot",P3)});Qc=class extends Zs{constructor(e=.1,t=.01,r=0,n=1e3){super(),this.p(e).i(t).d(r).windup(n)}step(e,t,r,n){if(typeof e=="string")return e;if(n.done=r===1/0,r===1/0)return t;if(r===0)return e;let s=t-e,a=(n.integral||0)+s*r,o=(s-(n.error||0))/r,l=this._windup;return l!==!1&&(a=Math.max(-l,Math.min(a,l))),n.error=s,n.integral=a,n.done=Math.abs(s)<.001,n.done?t:e+(this.P*s+this.I*a+this.D*o)}};ge(Qc,{windup:Ys("_windup"),p:Ys("P"),i:Ys("I"),d:Ys("D")});RM={M:2,L:2,H:1,V:1,C:6,S:4,Q:4,T:2,A:7,Z:0},Jc={M:function(i,e,t){return e.x=t.x=i[0],e.y=t.y=i[1],["M",e.x,e.y]},L:function(i,e){return e.x=i[0],e.y=i[1],["L",i[0],i[1]]},H:function(i,e){return e.x=i[0],["H",i[0]]},V:function(i,e){return e.y=i[0],["V",i[0]]},C:function(i,e){return e.x=i[4],e.y=i[5],["C",i[0],i[1],i[2],i[3],i[4],i[5]]},S:function(i,e){return e.x=i[2],e.y=i[3],["S",i[0],i[1],i[2],i[3]]},Q:function(i,e){return e.x=i[2],e.y=i[3],["Q",i[0],i[1],i[2],i[3]]},T:function(i,e){return e.x=i[0],e.y=i[1],["T",i[0],i[1]]},Z:function(i,e,t){return e.x=t.x,e.y=t.y,["Z"]},A:function(i,e){return e.x=i[5],e.y=i[6],["A",i[0],i[1],i[2],i[3],i[4],i[5],i[6]]}},Wc="mlhvqtcsaz".split("");for(let i=0,e=Wc.length;i=0;s--)n=this[s][0],n==="M"||n==="L"||n==="T"?(this[s][1]+=e,this[s][2]+=t):n==="H"?this[s][1]+=e:n==="V"?this[s][1]+=t:n==="C"||n==="S"||n==="Q"?(this[s][1]+=e,this[s][2]+=t,this[s][3]+=e,this[s][4]+=t,n==="C"&&(this[s][5]+=e,this[s][6]+=t)):n==="A"&&(this[s][6]+=e,this[s][7]+=t);return this}parse(e="M0 0"){return Array.isArray(e)&&(e=Array.prototype.concat.apply([],e).toString()),FM(e)}size(e,t){let r=this.bbox(),n,s;for(r.width=r.width===0?1:r.width,r.height=r.height===0?1:r.height,n=this.length-1;n>=0;n--)s=this[n][0],s==="M"||s==="L"||s==="T"?(this[n][1]=(this[n][1]-r.x)*e/r.width+r.x,this[n][2]=(this[n][2]-r.y)*t/r.height+r.y):s==="H"?this[n][1]=(this[n][1]-r.x)*e/r.width+r.x:s==="V"?this[n][1]=(this[n][1]-r.y)*t/r.height+r.y:s==="C"||s==="S"||s==="Q"?(this[n][1]=(this[n][1]-r.x)*e/r.width+r.x,this[n][2]=(this[n][2]-r.y)*t/r.height+r.y,this[n][3]=(this[n][3]-r.x)*e/r.width+r.x,this[n][4]=(this[n][4]-r.y)*t/r.height+r.y,s==="C"&&(this[n][5]=(this[n][5]-r.x)*e/r.width+r.x,this[n][6]=(this[n][6]-r.y)*t/r.height+r.y)):s==="A"&&(this[n][1]=this[n][1]*e/r.width,this[n][2]=this[n][2]*t/r.height,this[n][6]=(this[n][6]-r.x)*e/r.width+r.x,this[n][7]=(this[n][7]-r.y)*t/r.height+r.y);return this}toString(){return qM(this)}},n2=i=>{let e=typeof i;return e==="number"?ye:e==="string"?Ni.isColor(i)?Ni:Sr.test(i)?au.test(i)?Er:hn:j3.test(i)?ye:To:cu.indexOf(i.constructor)>-1?i.constructor:Array.isArray(i)?hn:e==="object"?ss:To},Tr=class{constructor(e){this._stepper=e||new Mo("-"),this._from=null,this._to=null,this._type=null,this._context=null,this._morphObj=null}at(e){return this._morphObj.morph(this._from,this._to,e,this._stepper,this._context)}done(){return this._context.map(this._stepper.done).reduce(function(t,r){return t&&r},!0)}from(e){return e==null?this._from:(this._from=this._set(e),this)}stepper(e){return e==null?this._stepper:(this._stepper=e,this)}to(e){return e==null?this._to:(this._to=this._set(e),this)}type(e){return e==null?this._type:(this._type=e,this)}_set(e){this._type||this.type(n2(e));let t=new this._type(e);return this._type===Ni&&(t=this._to?t[this._to[4]]():this._from?t[this._from[4]]():t),this._type===ss&&(t=this._to?t.align(this._to):this._from?t.align(this._from):t),t=t.toConsumable(),this._morphObj=this._morphObj||new this._type,this._context=this._context||Array.apply(null,Array(t.length)).map(Object).map(function(r){return r.done=!0,r}),t}},To=class{constructor(...e){this.init(...e)}init(e){return e=Array.isArray(e)?e[0]:e,this.value=e,this}toArray(){return[this.value]}valueOf(){return this.value}},No=class i{constructor(...e){this.init(...e)}init(e){return Array.isArray(e)&&(e={scaleX:e[0],scaleY:e[1],shear:e[2],rotate:e[3],translateX:e[4],translateY:e[5],originX:e[6],originY:e[7]}),Object.assign(this,i.defaults,e),this}toArray(){let e=this;return[e.scaleX,e.scaleY,e.shear,e.rotate,e.translateX,e.translateY,e.originX,e.originY]}};No.defaults={scaleX:1,scaleY:1,shear:0,rotate:0,translateX:0,translateY:0,originX:0,originY:0};HM=(i,e)=>i[0]e[0]?1:0,ss=class{constructor(...e){this.init(...e)}align(e){let t=this.values;for(let r=0,n=t.length;rr.concat(n),[]),this}toArray(){return this.values}valueOf(){let e={},t=this.values;for(;t.length;){let r=t.shift(),n=t.shift(),s=t.shift(),a=t.splice(0,s);e[r]=new n(a)}return e}},cu=[To,No,ss];ar=class extends Dt{constructor(e,t=e){super(qe("path",e),t)}array(){return this._array||(this._array=new Er(this.attr("d")))}clear(){return delete this._array,this}height(e){return e==null?this.bbox().height:this.size(this.bbox().width,e)}move(e,t){return this.attr("d",this.array().move(e,t))}plot(e){return e==null?this.array():this.clear().attr("d",typeof e=="string"?e:this._array=new Er(e))}size(e,t){let r=ta(this,e,t);return this.attr("d",this.array().size(r.width,r.height))}width(e){return e==null?this.bbox().width:this.size(e,this.bbox().height)}x(e){return e==null?this.bbox().x:this.move(e,this.bbox().y)}y(e){return e==null?this.bbox().y:this.move(this.bbox().x,e)}};ar.prototype.MorphArray=Er;fe({Container:{path:Fe(function(i){return this.put(new ar).plot(i||new Er)})}});be(ar,"Path");s2={__proto__:null,array:jM,clear:GM,move:VM,plot:WM,size:YM},Gi=class extends Dt{constructor(e,t=e){super(qe("polygon",e),t)}};fe({Container:{polygon:Fe(function(i){return this.put(new Gi).plot(i||new sr)})}});ge(Gi,du);ge(Gi,s2);be(Gi,"Polygon");as=class extends Dt{constructor(e,t=e){super(qe("polyline",e),t)}};fe({Container:{polyline:Fe(function(i){return this.put(new as).plot(i||new sr)})}});ge(as,du);ge(as,s2);be(as,"Polyline");Ve=class extends Dt{constructor(e,t=e){super(qe("rect",e),t)}};ge(Ve,{rx:lu,ry:hu});fe({Container:{rect:Fe(function(i,e){return this.put(new Ve).size(i,e)})}});be(Ve,"Rect");xo=class{constructor(){this._first=null,this._last=null}first(){return this._first&&this._first.value}last(){return this._last&&this._last.value}push(e){let t=typeof e.next<"u"?e:{value:e,next:null,prev:null};return this._last?(t.prev=this._last,this._last.next=t,this._last=t):(this._last=t,this._first=t),t}remove(e){e.prev&&(e.prev.next=e.next),e.next&&(e.next.prev=e.prev),e===this._last&&(this._last=e.prev),e===this._first&&(this._first=e.next),e.prev=null,e.next=null}shift(){let e=this._first;return e?(this._first=e.next,this._first&&(this._first.prev=null),this._last=this._first?this._last:null,e.value):null}},Se={nextDraw:null,frames:new xo,timeouts:new xo,immediates:new xo,timer:()=>Te.window.performance||Te.window.Date,transforms:[],frame(i){let e=Se.frames.push({run:i});return Se.nextDraw===null&&(Se.nextDraw=Te.window.requestAnimationFrame(Se._draw)),e},timeout(i,e){e=e||0;let t=Se.timer().now()+e,r=Se.timeouts.push({run:i,time:t});return Se.nextDraw===null&&(Se.nextDraw=Te.window.requestAnimationFrame(Se._draw)),r},immediate(i){let e=Se.immediates.push(i);return Se.nextDraw===null&&(Se.nextDraw=Te.window.requestAnimationFrame(Se._draw)),e},cancelFrame(i){i!=null&&Se.frames.remove(i)},clearTimeout(i){i!=null&&Se.timeouts.remove(i)},cancelImmediate(i){i!=null&&Se.immediates.remove(i)},_draw(i){let e=null,t=Se.timeouts.last();for(;(e=Se.timeouts.shift())&&(i>=e.time?e.run():Se.timeouts.push(e),e!==t););let r=null,n=Se.frames.last();for(;r!==n&&(r=Se.frames.shift());)r.run(i);let s=null;for(;s=Se.immediates.shift();)s();Se.nextDraw=Se.timeouts.first()||Se.frames.first()?Te.window.requestAnimationFrame(Se._draw):null}},XM=function(i){let e=i.start,t=i.runner.duration(),r=e+t;return{start:e,duration:t,end:r,runner:i.runner}},KM=function(){let i=Te.window;return(i.performance||i.Date).now()},I0=class extends ts{constructor(e=KM){super(),this._timeSource=e,this._startTime=0,this._speed=1,this._persist=0,this._nextFrame=null,this._paused=!0,this._runners=[],this._runnerIds=[],this._lastRunnerId=-1,this._time=0,this._lastSourceTime=0,this._lastStepTime=0,this._step=this._stepFn.bind(this,!1),this._stepImmediate=this._stepFn.bind(this,!0)}active(){return!!this._nextFrame}finish(){return this.time(this.getEndTimeOfTimeline()+1),this.pause()}getEndTime(){let e=this.getLastRunnerInfo(),t=e?e.runner.duration():0;return(e?e.start:this._time)+t}getEndTimeOfTimeline(){let e=this._runners.map(t=>t.start+t.runner.duration());return Math.max(0,...e)}getLastRunnerInfo(){return this.getRunnerInfoById(this._lastRunnerId)}getRunnerInfoById(e){return this._runners[this._runnerIds.indexOf(e)]||null}pause(){return this._paused=!0,this._continue()}persist(e){return e==null?this._persist:(this._persist=e,this)}play(){return this._paused=!1,this.updateTime()._continue()}reverse(e){let t=this.speed();if(e==null)return this.speed(-t);let r=Math.abs(t);return this.speed(e?-r:r)}schedule(e,t,r){if(e==null)return this._runners.map(XM);let n=0,s=this.getEndTime();if(t=t||0,r==null||r==="last"||r==="after")n=s;else if(r==="absolute"||r==="start")n=t,t=0;else if(r==="now")n=this._time;else if(r==="relative"){let l=this.getRunnerInfoById(e.id);l&&(n=l.start+t,t=0)}else if(r==="with-last"){let l=this.getLastRunnerInfo();n=l?l.start:this._time}else throw new Error('Invalid value for the "when" parameter');e.unschedule(),e.timeline(this);let a=e.persist(),o={persist:a===null?this._persist:a,start:n+t,runner:e};return this._lastRunnerId=e.id,this._runners.push(o),this._runners.sort((l,h)=>l.start-h.start),this._runnerIds=this._runners.map(l=>l.runner.id),this.updateTime()._continue(),this}seek(e){return this.time(this._time+e)}source(e){return e==null?this._timeSource:(this._timeSource=e,this)}speed(e){return e==null?this._speed:(this._speed=e,this)}stop(){return this.time(0),this.pause()}time(e){return e==null?this._time:(this._time=e,this._continue(!0))}unschedule(e){let t=this._runnerIds.indexOf(e.id);return t<0?this:(this._runners.splice(t,1),this._runnerIds.splice(t,1),e.timeline(null),this)}updateTime(){return this.active()||(this._lastSourceTime=this._timeSource()),this}_continue(e=!1){return Se.cancelFrame(this._nextFrame),this._nextFrame=null,e?this._stepImmediate():this._paused?this:(this._nextFrame=Se.frame(this._step),this)}_stepFn(e=!1){let t=this._timeSource(),r=t-this._lastSourceTime;e&&(r=0);let n=this._speed*r+(this._time-this._lastStepTime);this._lastSourceTime=t,e||(this._time+=n,this._time=this._time<0?0:this._time),this._lastStepTime=this._time,this.fire("time",this._time);for(let a=this._runners.length;a--;){let o=this._runners[a],l=o.runner;this._time-o.start<=0&&l.reset()}let s=!1;for(let a=0,o=this._runners.length;a0?this._continue():(this.pause(),this.fire("finished")),this}};fe({Element:{timeline:function(i){return i==null?(this._timeline=this._timeline||new I0,this._timeline):(this._timeline=i,this)}}});Vi=class i extends ts{constructor(e){super(),this.id=i.id++,e=e??go.duration,e=typeof e=="function"?new Zs(e):e,this._element=null,this._timeline=null,this.done=!1,this._queue=[],this._duration=typeof e=="number"&&e,this._isDeclarative=e instanceof Zs,this._stepper=this._isDeclarative?e:new Mo,this._history={},this.enabled=!0,this._time=0,this._lastTime=0,this._reseted=!0,this.transforms=new xe,this.transformId=1,this._haveReversed=!1,this._reverse=!1,this._loopsDone=0,this._swing=!1,this._wait=0,this._times=1,this._frameId=null,this._persist=this._isDeclarative?!0:null}static sanitise(e,t,r){let n=1,s=!1,a=0;return e=e||go.duration,t=t||go.delay,r=r||"last",typeof e=="object"&&!(e instanceof wo)&&(t=e.delay||t,r=e.when||r,s=e.swing||s,n=e.times||n,a=e.wait||a,e=e.duration||go.duration),{duration:e,delay:t,swing:s,times:n,wait:a,when:r}}active(e){return e==null?this.enabled:(this.enabled=e,this)}addTransform(e,t){return this.transforms.lmultiplyO(e),this}after(e){return this.on("finished",e)}animate(e,t,r){let n=i.sanitise(e,t,r),s=new i(n.duration);return this._timeline&&s.timeline(this._timeline),this._element&&s.element(this._element),s.loop(n).schedule(n.delay,n.when)}clearTransform(){return this.transforms=new xe,this}clearTransformsFromQueue(){(!this.done||!this._timeline||!this._timeline._runnerIds.includes(this.id))&&(this._queue=this._queue.filter(e=>!e.isTransform))}delay(e){return this.animate(0,e)}duration(){return this._times*(this._wait+this._duration)-this._wait}during(e){return this.queue(null,e)}ease(e){return this._stepper=new Mo(e),this}element(e){return e==null?this._element:(this._element=e,e._prepareRunner(),this)}finish(){return this.step(1/0)}loop(e,t,r){return typeof e=="object"&&(t=e.swing,r=e.wait,e=e.times),this._times=e||1/0,this._swing=t||!1,this._wait=r||0,this._times===!0&&(this._times=1/0),this}loops(e){let t=this._duration+this._wait;if(e==null){let a=Math.floor(this._time/t),l=(this._time-a*t)/this._duration;return Math.min(a+l,this._times)}let r=Math.floor(e),n=e%1,s=t*r+this._duration*n;return this.time(s)}persist(e){return e==null?this._persist:(this._persist=e,this)}position(e){let t=this._time,r=this._duration,n=this._wait,s=this._times,a=this._swing,o=this._reverse,l;if(e==null){let f=function(g){let x=a*Math.floor(g%(2*(n+r))/(n+r)),y=x&&!o||!x&&o,b=Math.pow(-1,y)*(g%(n+r))/r+y;return Math.max(Math.min(b,1),0)},m=s*(n+r)-n;return l=t<=0?Math.round(f(1e-5)):t=0;this._lastPosition=t;let n=this.duration(),s=this._lastTime<=0&&this._time>0,a=this._lastTime=n;this._lastTime=this._time,s&&this.fire("start",this);let o=this._isDeclarative;this.done=!o&&!a&&this._time>=n,this._reseted=!1;let l=!1;return(r||o)&&(this._initialise(r),this.transforms=new xe,l=this._run(o?e:t),this.fire("step",this)),this.done=this.done||l&&o,a&&this.fire("finished",this),this}time(e){if(e==null)return this._time;let t=e-this._time;return this.step(t),this}timeline(e){return typeof e>"u"?this._timeline:(this._timeline=e,this)}unschedule(){let e=this.timeline();return e&&e.unschedule(this),this}_initialise(e){if(!(!e&&!this._isDeclarative))for(let t=0,r=this._queue.length;ti.lmultiplyO(e),o2=i=>i.transforms;iu=class{constructor(){this.runners=[],this.ids=[]}add(e){if(this.runners.includes(e))return;let t=e.id+1;return this.runners.push(e),this.ids.push(t),this}clearBefore(e){let t=this.ids.indexOf(e+1)||1;return this.ids.splice(0,t,0),this.runners.splice(0,t,new Qs).forEach(r=>r.clearTransformsFromQueue()),this}edit(e,t){let r=this.ids.indexOf(e+1);return this.ids.splice(r,1,e+1),this.runners.splice(r,1,t),this}getByID(e){return this.runners[this.ids.indexOf(e+1)]}length(){return this.ids.length}merge(){let e=null;for(let t=0;te.id<=i.id).map(o2).reduce(a2,new xe)},_addRunner(i){this._transformationRunners.add(i),Se.cancelImmediate(this._frameId),this._frameId=Se.immediate(ZM.bind(this))},_prepareRunner(){this._frameId==null&&(this._transformationRunners=new iu().add(new Qs(new xe(this))))}}});QM=(i,e)=>i.filter(t=>!e.includes(t));ge(Vi,{attr(i,e){return this.styleAttr("attr",i,e)},css(i,e){return this.styleAttr("css",i,e)},styleAttr(i,e,t){if(typeof e=="string")return this.styleAttr(i,{[e]:t});let r=e;if(this._tryRetarget(i,r))return this;let n=new Tr(this._stepper).to(r),s=Object.keys(r);return this.queue(function(){n=n.from(this.element()[i](s))},function(a){return this.element()[i](n.at(a).valueOf()),n.done()},function(a){let o=Object.keys(a),l=QM(o,s);if(l.length){let d=this.element()[i](l),c=new ss(n.from()).valueOf();Object.assign(c,d),n.from(c)}let h=new ss(n.to()).valueOf();Object.assign(h,a),n.to(h),s=o,r=a}),this._rememberMorpher(i,n),this},zoom(i,e){if(this._tryRetarget("zoom",i,e))return this;let t=new Tr(this._stepper).to(new ye(i));return this.queue(function(){t=t.from(this.element().zoom())},function(r){return this.element().zoom(t.at(r),e),t.done()},function(r,n){e=n,t.to(r)}),this._rememberMorpher("zoom",t),this},transform(i,e,t){if(e=i.relative||e,this._isDeclarative&&!e&&this._tryRetarget("transform",i))return this;let r=xe.isMatrixLike(i);t=i.affine!=null?i.affine:t??!r;let n=new Tr(this._stepper).type(t?No:xe),s,a,o,l,h;function d(){a=a||this.element(),s=s||Xc(i,a),h=new xe(e?void 0:a),a._addRunner(this),e||a._clearTransformRunnersBefore(this)}function c(m){e||this.clearTransform();let{x:g,y:x}=new it(s).transform(a._currentTransform(this)),y=new xe({...i,origin:[g,x]}),b=this._isDeclarative&&o?o:h;if(t){y=y.decompose(g,x),b=b.decompose(g,x);let A=y.rotate,C=b.rotate,I=[A-360,A,A+360],O=I.map(W=>Math.abs(W-C)),q=Math.min(...O),P=O.indexOf(q);y.rotate=I[P]}e&&(r||(y.rotate=i.rotate||0),this._isDeclarative&&l&&(b.rotate=l)),n.from(b),n.to(y);let S=n.at(m);return l=S.rotate,o=new xe(S),this.addTransform(o),a._addRunner(this),n.done()}function f(m){(m.origin||"center").toString()!==(i.origin||"center").toString()&&(s=Xc(m,a)),i={...m,origin:s}}return this.queue(d,c,f,!0),this._isDeclarative&&this._rememberMorpher("transform",n),this},x(i,e){return this._queueNumber("x",i)},y(i){return this._queueNumber("y",i)},dx(i=0){return this._queueNumberDelta("x",i)},dy(i=0){return this._queueNumberDelta("y",i)},dmove(i,e){return this.dx(i).dy(e)},_queueNumberDelta(i,e){if(e=new ye(e),this._tryRetarget(i,e))return this;let t=new Tr(this._stepper).to(e),r=null;return this.queue(function(){r=this.element()[i](),t.from(r),t.to(r+e)},function(n){return this.element()[i](t.at(n)),t.done()},function(n){t.to(r+new ye(n))}),this._rememberMorpher(i,t),this},_queueObject(i,e){if(this._tryRetarget(i,e))return this;let t=new Tr(this._stepper).to(e);return this.queue(function(){t.from(this.element()[i]())},function(r){return this.element()[i](t.at(r)),t.done()}),this._rememberMorpher(i,t),this},_queueNumber(i,e){return this._queueObject(i,new ye(e))},cx(i){return this._queueNumber("cx",i)},cy(i){return this._queueNumber("cy",i)},move(i,e){return this.x(i).y(e)},center(i,e){return this.cx(i).cy(e)},size(i,e){let t;return(!i||!e)&&(t=this._element.bbox()),i||(i=t.width/t.height*e),e||(e=t.height/t.width*i),this.width(i).height(e)},width(i){return this._queueNumber("width",i)},height(i){return this._queueNumber("height",i)},plot(i,e,t,r){if(arguments.length===4)return this.plot([i,e,t,r]);if(this._tryRetarget("plot",i))return this;let n=new Tr(this._stepper).type(this._element.MorphArray).to(i);return this.queue(function(){n.from(this._element.array())},function(s){return this._element.plot(n.at(s)),n.done()}),this._rememberMorpher("plot",n),this},leading(i){return this._queueNumber("leading",i)},viewbox(i,e,t,r){return this._queueObject("viewbox",new Gt(i,e,t,r))},update(i){return typeof i!="object"?this.update({offset:arguments[0],color:arguments[1],opacity:arguments[2]}):(i.opacity!=null&&this.attr("stop-opacity",i.opacity),i.color!=null&&this.attr("stop-color",i.color),i.offset!=null&&this.attr("offset",i.offset),this)}});ge(Vi,{rx:lu,ry:hu,from:i2,to:r2});be(Vi,"Runner");Eo=class extends Vt{constructor(e,t=e){super(qe("svg",e),t),this.namespace()}defs(){return this.isRoot()?Ti(this.node.querySelector("defs"))||this.put(new bo):this.root().defs()}isRoot(){return!this.node.parentNode||!(this.node.parentNode instanceof Te.window.SVGElement)&&this.node.parentNode.nodeName!=="#document-fragment"}namespace(){return this.isRoot()?this.attr({xmlns:nu,version:"1.1"}).attr("xmlns:xlink",Lo,_0).attr("xmlns:svgjs",bw,_0):this.root().namespace()}removeNamespace(){return this.attr({xmlns:null,version:null}).attr("xmlns:xlink",null,_0).attr("xmlns:svgjs",null,_0)}root(){return this.isRoot()?this:super.root()}};fe({Container:{nested:Fe(function(){return this.put(new Eo)})}});be(Eo,"Svg",!0);So=class extends Vt{constructor(e,t=e){super(qe("symbol",e),t)}};fe({Container:{symbol:Fe(function(){return this.put(new So)})}});be(So,"Symbol");l2={__proto__:null,plain:JM,length:eT,x:tT,y:iT,move:rT,cx:nT,cy:sT,center:aT,ax:oT,ay:lT,amove:hT,build:dT},Ce=class extends Dt{constructor(e,t=e){super(qe("text",e),t),this.dom.leading=new ye(1.3),this._rebuild=!0,this._build=!1}leading(e){return e==null?this.dom.leading:(this.dom.leading=new ye(e),this.rebuild())}rebuild(e){if(typeof e=="boolean"&&(this._rebuild=e),this._rebuild){let t=this,r=0,n=this.dom.leading;this.each(function(s){let a=Te.window.getComputedStyle(this.node).getPropertyValue("font-size"),o=n*new ye(a);this.dom.newLined&&(this.attr("x",t.attr("x")),this.text()===` +`?r+=o:(this.attr("dy",s?o+r:0),r=0))}),this.fire("rebuild")}return this}setData(e){return this.dom=e,this.dom.leading=new ye(e.leading||1.3),this}text(e){if(e===void 0){let t=this.node.childNodes,r=0;e="";for(let n=0,s=t.length;n(i.attr("href")||"").includes(this.id()))}}});Qa.prototype.MorphArray=or;me(Qa,"TextPath");Gl=class extends Tt{constructor(e,t=e){super(Ie("use",e),t)}use(e,t){return this.attr("href",(t||"")+"#"+e,Ja)}};oe({Container:{use:ze(function(i,e){return this.put(new Gl).use(i,e)})}});me(Gl,"Use");Me=Mt;ce([Wa,Va,Ci,zn,ys],Ot("viewbox"));ce([In,Dn,_i,Ui],Ot("marker"));ce(Te,Ot("Text"));ce(Ui,Ot("Path"));ce(Ua,Ot("Defs"));ce([Te,Ms],Ot("Tspan"));ce([Pe,vs,Ln,Li],Ot("radius"));ce(_n,Ot("EventTarget"));ce($r,Ot("Dom"));ce(fi,Ot("Element"));ce(Tt,Ot("Shape"));ce([Dt,Ul],Ot("Container"));ce(Ln,Ot("Gradient"));ce(Li,Ot("Runner"));ar.extend(ty());Ab([fe,ui,Rt,ue,Ur,Hi,or,Ye]);kb()});var Wl=qi((pF,zp)=>{"use strict";var Yl=function(e){return aw(e)&&!ow(e)};function aw(i){return!!i&&typeof i=="object"}function ow(i){var e=Object.prototype.toString.call(i);return e==="[object RegExp]"||e==="[object Date]"||dw(i)}var lw=typeof Symbol=="function"&&Symbol.for,hw=lw?Symbol.for("react.element"):60103;function dw(i){return i.$$typeof===hw}function cw(i){return Array.isArray(i)?[]:{}}function eo(i,e){var t=e&&e.clone===!0;return t&&Yl(i)?Ss(cw(i),i,e):i}function Lp(i,e,t){var r=i.slice();return e.forEach(function(n,s){typeof r[s]>"u"?r[s]=eo(n,t):Yl(n)?r[s]=Ss(i[s],n,t):i.indexOf(n)===-1&&r.push(eo(n,t))}),r}function uw(i,e,t){var r={};return Yl(i)&&Object.keys(i).forEach(function(n){r[n]=eo(i[n],t)}),Object.keys(e).forEach(function(n){!Yl(e[n])||!i[n]?r[n]=eo(e[n],t):r[n]=Ss(i[n],e[n],t)}),r}function Ss(i,e,t){var r=Array.isArray(e),n=Array.isArray(i),s=t||{arrayMerge:Lp},a=r===n;if(a)if(r){var o=s.arrayMerge||Lp;return o(i,e,t)}else return uw(i,e,t);else return eo(e,t)}Ss.all=function(e,t){if(!Array.isArray(e)||e.length<2)throw new Error("first argument should be an array with at least two elements");return e.reduce(function(r,n){return Ss(r,n,t)})};var fw=Ss;zp.exports=fw});var Vl,mw,Ip,to,io=M(()=>{Vl={paddingX:15,paddingY:5,imgMaxWidth:200,imgMaxHeight:100,iconSize:20,lineWidth:1,lineColor:"#549688",lineDasharray:"none",lineFlow:!1,lineFlowDuration:1,lineFlowForward:!0,lineStyle:"straight",rootLineKeepSameInCurve:!0,rootLineStartPositionKeepSameInCurve:!1,lineRadius:5,showLineMarker:!1,generalizationLineWidth:1,generalizationLineColor:"#549688",generalizationLineMargin:0,generalizationNodeMargin:20,associativeLineWidth:2,associativeLineColor:"rgb(51, 51, 51)",associativeLineActiveWidth:8,associativeLineActiveColor:"rgba(2, 167, 240, 1)",associativeLineDasharray:"6,4",associativeLineTextColor:"rgb(51, 51, 51)",associativeLineTextFontSize:14,associativeLineTextLineHeight:1.2,associativeLineTextFontFamily:"\u5FAE\u8F6F\u96C5\u9ED1, Microsoft YaHei",backgroundColor:"#fafafa",backgroundImage:"none",backgroundRepeat:"no-repeat",backgroundPosition:"center center",backgroundSize:"cover",nodeUseLineStyle:!1,root:{shape:"rectangle",fillColor:"#549688",fontFamily:"\u5FAE\u8F6F\u96C5\u9ED1, Microsoft YaHei",color:"#fff",fontSize:16,fontWeight:"bold",fontStyle:"normal",borderColor:"transparent",borderWidth:0,borderDasharray:"none",borderRadius:5,textDecoration:"none",gradientStyle:!1,startColor:"#549688",endColor:"#fff",startDir:[0,0],endDir:[1,0],lineMarkerDir:"end",hoverRectColor:"",hoverRectRadius:5,textAlign:"left",imgPlacement:"top",tagPlacement:"right"},second:{shape:"rectangle",marginX:100,marginY:40,fillColor:"#fff",fontFamily:"\u5FAE\u8F6F\u96C5\u9ED1, Microsoft YaHei",color:"#565656",fontSize:16,fontWeight:"normal",fontStyle:"normal",borderColor:"#549688",borderWidth:1,borderDasharray:"none",borderRadius:5,textDecoration:"none",gradientStyle:!1,startColor:"#549688",endColor:"#fff",startDir:[0,0],endDir:[1,0],lineMarkerDir:"end",hoverRectColor:"",hoverRectRadius:5,textAlign:"left",imgPlacement:"top",tagPlacement:"right"},node:{shape:"rectangle",marginX:50,marginY:0,fillColor:"transparent",fontFamily:"\u5FAE\u8F6F\u96C5\u9ED1, Microsoft YaHei",color:"#6a6d6c",fontSize:14,fontWeight:"normal",fontStyle:"normal",borderColor:"transparent",borderWidth:0,borderRadius:5,borderDasharray:"none",textDecoration:"none",gradientStyle:!1,startColor:"#549688",endColor:"#fff",startDir:[0,0],endDir:[1,0],lineMarkerDir:"end",hoverRectColor:"",hoverRectRadius:5,textAlign:"left",imgPlacement:"top",tagPlacement:"right"},generalization:{shape:"rectangle",marginX:100,marginY:40,fillColor:"#fff",fontFamily:"\u5FAE\u8F6F\u96C5\u9ED1, Microsoft YaHei",color:"#565656",fontSize:16,fontWeight:"normal",fontStyle:"normal",borderColor:"#549688",borderWidth:1,borderDasharray:"none",borderRadius:5,textDecoration:"none",gradientStyle:!1,startColor:"#549688",endColor:"#fff",startDir:[0,0],endDir:[1,0],hoverRectColor:"",hoverRectRadius:5,textAlign:"left",imgPlacement:"top",tagPlacement:"right"}},mw=["lineWidth","lineColor","lineDasharray","lineStyle","generalizationLineWidth","generalizationLineColor","associativeLineWidth","associativeLineColor","associativeLineActiveWidth","associativeLineActiveColor","associativeLineTextColor","associativeLineTextFontSize","associativeLineTextLineHeight","associativeLineTextFontFamily","backgroundColor","backgroundImage","backgroundRepeat","backgroundPosition","backgroundSize","rootLineKeepSameInCurve","rootLineStartPositionKeepSameInCurve","showLineMarker","lineRadius","hoverRectColor","hoverRectRadius","lineFlow","lineFlowDuration","lineFlowForward","textAlign"],Ip=i=>{let e=Object.keys(i);for(let t=0;tr===e[t]))return!1;return!0},to=["lineColor","lineDasharray","lineWidth","lineMarkerDir","lineFlow","lineFlowDuration","lineFlowForward"]});var Rp,se,Pt,Jl,As,Ft,cc,Bn,uc,Dp,mi,Op,qt,Yr,Bp,Pp,Fp,Xl,ks,Cs,pw,ct,qp,Hp,On,Bt,Kl,Up,ro,$p,no,fc,e0,gw,Zl,t0,Gr,jp,Gp,Pn,Yp,Wp,Fn,Vp,Xp,_s,Ls,so,qn,Nt,zs,Ee,i0,Wr,Ql,mc,pc,Kp,r0,Zp,Qp,Jp,gc,ao,xc,vc,e3,t3,yc,i3,xw,MF,Vr,Hn,$i,oo,bc,r3,he=M(()=>{qd();Oe();Jm();ht();Rp=ot(Wl());io();se=(i,e,t,r,n,s=0,a=0,o=[])=>{let l=!1;if(t&&(l=t(i,e,n,s,a,o)),!l&&i.children&&i.children.length>0){let h=s+1;i.children.forEach((d,c)=>{se(d,i,t,r,!1,h,c,[...o,i])})}r&&r(i,e,n,s,a,o)},Pt=(i,e)=>{let t=[i],r=!1;for(e(i,null)==="stop"&&(r=!0);t.length&&!r;){let n=t.shift();n.children&&n.children.length&&n.children.forEach(s=>{r||(t.push(s),e(s,n)==="stop"&&(r=!0))})}},Jl=(i,e,t,r)=>{let n=i/e,s=[];if(t&&r)if(i<=t&&e<=r)s=[i,e];else{let a=t/r;n>a?s=[t,t/n]:s=[n*r,r]}else t?i<=t?s=[i,e]:s=[t,t/n]:r&&(e<=r?s=[i,e]:s=[n*r,r]);return s},As=i=>{i=i.replace(/
    /gim,` -`);let e=document.createElement("div");return e.innerHTML=i,i=e.textContent,i},Ft=i=>{try{return JSON.parse(JSON.stringify(i))}catch{return null}},cc=(i,e,t=!1)=>(i.data=Ft(e.data),t&&(i.data.isActive=!1,Hn(i.data).forEach(n=>{n.isActive=!1})),i.children=[],e.children&&e.children.length>0&&e.children.forEach((r,n)=>{i.children[n]=cc({},r,t)}),Object.keys(e).forEach(r=>{!["data","children"].includes(r)&&!/^_/.test(r)&&(i[r]=e[r])}),i),Bn=(i,e,t=!1,r=!0)=>{let n=e.nodeData?e.nodeData:e;return i.data=Ft(n.data),r?delete i.data.uid:i.data.uid||(i.data.uid=ct()),t&&(i.data.isActive=!1),i.children=[],e.children&&e.children.length>0?e.children.forEach((s,a)=>{i.children[a]=Bn({},s,t,r)}):e.nodeData&&e.nodeData.children&&e.nodeData.children.length>0&&e.nodeData.children.forEach((s,a)=>{i.children[a]=Bn({},s,t,r)}),Object.keys(n).forEach(s=>{!["data","children"].includes(s)&&!/^_/.test(s)&&(i[s]=n[s])}),i},uc=(i,e=!1)=>new Promise((t,r)=>{let n=new Image;n.setAttribute("crossOrigin","anonymous"),n.onload=()=>{try{let s=document.createElement("canvas");s.width=n.width,s.height=n.height,s.getContext("2d").drawImage(n,0,0,n.width,n.height),e?s.toBlob(o=>{t(o)}):t(s.toDataURL())}catch(s){r(s)}},n.onerror=s=>{r(s)},n.src=i}),Dp=(i,e)=>{let t=document.createElement("a");t.href=i,t.download=e,t.click()},mi=(i,e=300,t)=>{let r=null;return(...n)=>{r||(r=setTimeout(()=>{i.call(t,...n),r=null},e))}},Op=(i,e=300,t)=>{let r=null;return(...n)=>{r&&clearTimeout(r),r=setTimeout(()=>{r=null,i.apply(t,n)},e)}},qt=(i,e=()=>{})=>{let t=0,r=i.length;if(r<=0)return e();let n=()=>{if(t>=r){e();return}i[t](),setTimeout(()=>{t++,n()},0)};n()},Yr=i=>i*(Math.PI/180),Bp=i=>i.replace(/([a-z])([A-Z])/g,(...e)=>e[1]+"-"+e[2].toLowerCase()),Pp=function(i,e){let t=!1,r=null,n=()=>{t=!1,e?i.call(e):i()};if(typeof MutationObserver<"u"){let s=1,a=new MutationObserver(n),o=document.createTextNode(s);a.observe(o,{characterData:!0}),r=function(){s=(s+1)%2,o.data=s}}else r=setTimeout;return function(){t||(t=!0,r(n,0))}},Fp=(i,e,t=0,r=0)=>{let n=i.elRect,{scaleX:s,scaleY:a,translateX:o,translateY:l}=i.draw.transform(),{left:h,top:d,width:c,height:f}=e,m=(h+c)*s+o,g=(d+f)*a+l;h=h*s+o,d=d*a+l;let x=0,v=0;return h<0+t&&(x=-h+t),m>n.width-t&&(x=-(m-n.width)-t),d<0+r&&(v=-d+r),g>n.height-r&&(v=-(g-n.height)-r),{isOuter:x!==0||v!==0,offsetLeft:x,offsetTop:v}},Xl=null,ks=i=>(Xl||(Xl=document.createElement("div")),Xl.innerHTML=i,Xl.textContent),Cs=i=>new Promise((e,t)=>{let r=new FileReader;r.onload=n=>{e(n.target.result)},r.onerror=n=>{t(n)},r.readAsDataURL(i)}),pw=i=>new Promise(e=>{let t=new Image;t.src=i,t.onload=()=>{e({width:t.width,height:t.height})},t.onerror=()=>{e({width:0,height:0})}}),ct=()=>Da(),qp=i=>new Promise((e,t)=>{let r=new FileReader;r.readAsDataURL(i),r.onload=async n=>{let s=n.target.result,a=await pw(s);e({url:s,size:a})},r.onerror=n=>{t(n)}}),Hp=i=>([[" "," "]].forEach(e=>{i=i.replace(new RegExp(e[0],"g"),e[1])}),i),On=i=>Object.prototype.toString.call(i).slice(8,-1),Bt=i=>i==null||i==="",Kl=null,Up=i=>{Kl||(Kl=document.createElement("div")),Kl.innerHTML=i;for(let e=Kl.childNodes,t=e.length;t--;)if(e[t].nodeType==1)return!0;return!1},ro=null,$p=(i,e,t)=>{ro||(ro=document.createElement("div")),ro.innerHTML=i;let r=n=>{n.childNodes.forEach(a=>{a.nodeType===1?r(a):a.nodeType===3&&n.replaceChild(document.createTextNode(a.nodeValue.replace(new RegExp(e,"g"),t)),a)})};return r(ro),ro.innerHTML},no=i=>(i=String(i).replace(/\s+/g,""),["#fff","#ffffff","#FFF","#FFFFFF","rgb(255,255,255)"].includes(i)||/rgba\(255,255,255,[^)]+\)/.test(i)),fc=i=>(i=String(i).replace(/\s+/g,""),["","transparent"].includes(i)||/rgba\(\d+,\d+,\d+,0\)/.test(i)),e0=i=>{let{lineColor:e,root:t,second:r,node:n}=i,s=[e,t.fillColor,t.color,r.fillColor,r.color,n.fillColor,n.color,t.borderColor,r.borderColor,n.borderColor];for(let a=0;a{let e=t=>{t.childNodes.forEach(n=>{n.nodeType===1&&(n.classList.contains("ql-formula")?n.parentNode.removeChild(n):e(n))})};e(i)},Zl=null,t0=i=>{Zl||(Zl=document.createElement("div")),Zl.innerHTML=i;let e=Zl.childNodes,t="";for(let r=0;r{Gr||(Gr=document.createElement("div")),Gr.innerHTML=i;let e=Gr.querySelectorAll(".ql-formula");Array.from(e).forEach(n=>{let s=document.createTextNode("$smmformula$");n.parentNode.replaceChild(s,n)});let t=Gr.childNodes,r=[];for(let n=0;n`

    ${Wr(n)}

    `).join(""),e.length>0){i=i.replace(/\$smmformula\$/g,''),Gr.innerHTML=i;let n=Gr.querySelectorAll(".smmformula");Array.from(n).forEach((s,a)=>{s.parentNode.replaceChild(e[a],s)}),i=Gr.innerHTML}return i},Gp=(i,e)=>{let t={};return Object.keys(e).forEach(r=>{let n=i[r],s=e[r];if(On(n)!==On(s)){t[r]=s;return}if(On(n)==="Object"){if(JSON.stringify(n)!==JSON.stringify(s)){t[r]=s;return}}else if(n!==s){t[r]=s;return}}),t},Pn=i=>/^_/.test(i)?!1:!us.includes(i),Yp=i=>{let e=[...to],t=Object.keys(i);for(let r=0;ri.reduce((e,t)=>{let r=e.find(n=>n.type===t.type);return r?t.list.forEach(n=>{let s=r.list.find(a=>a.name===n.name);s?s.icon=n.icon:r.list.push(n)}):e.push({...t}),e},[]),Fn=i=>{let e=[];return i.forEach(t=>{i.find(r=>r.uid!==t.uid&&r.isAncestor(t))||e.push(t)}),e},Vp=i=>{let e={},t={};i.forEach(n=>{let s=n.parent;if(s){let a=s.uid;t[a]=s;let o=n.getIndexInBrothers(),l={node:n,index:o};e[a]?e[a].find(h=>h.index===l.index)||e[a].push(l):e[a]=[l]}});let r=[];return Object.keys(e).forEach(n=>{if(e[n].length>1){let s=e[n].map(a=>a.index).sort((a,o)=>a-o);r.push({node:t[n],range:[s[0],s[s.length-1]]})}else r.push({node:e[n][0].node})}),r},Xp=(i,e,t,r,n,s,a,o)=>e>n&&s>i&&r>a&&o>t,_s=i=>{let e=window.getSelection(),t=document.createRange();t.selectNodeContents(i),t.collapse(),e.removeAllRanges(),e.addRange(t)},Ls=i=>{let e=window.getSelection(),t=document.createRange();t.selectNodeContents(i),e.removeAllRanges(),e.addRange(t)},so=(i,e={})=>{e={...e},e&&e.richText&&e.resetRichText&&delete e.resetRichText;let r=n=>{n.forEach(s=>{s.data={...s.data,...e},s.children&&s.children.length>0&&r(s.children)})};return r(i),i},qn=(i,e=!1,t=null,r=!1)=>{let n=s=>{s.forEach(a=>{a.data||(a.data={}),(e||Bt(a.data.uid))&&(a.data.uid=ct()),r&&Hn(a.data).forEach(l=>{(e||Bt(l.uid))&&(l.uid=ct())}),t&&t(a),a.children&&a.children.length>0&&n(a.children)})};return n(i),i},Nt=i=>i?Array.isArray(i)?i:[i]:[],zs=i=>i.parent?i.parent.nodeData.children.findIndex(e=>e.data.uid===i.uid):0,Ee=(i,e)=>e.findIndex(t=>t.uid===i.uid),i0=i=>{let e=0;for(let n=0;n([["&","&"],["<","<"],[">",">"]].forEach(e=>{i=i.replace(new RegExp(e[0],"g"),e[1])}),i),Ql=(i,e)=>{let t=On(i);if(t!==On(e))return!1;if(t==="Object"){let r=Object.keys(i),n=Object.keys(e);if(r.length!==n.length)return!1;for(let s=0;snavigator.clipboard&&typeof navigator.clipboard.read=="function",pc=i=>{navigator.clipboard&&navigator.clipboard.writeText&&navigator.clipboard.writeText(JSON.stringify(i))},Kp=async()=>{let i=null,e=null;if(mc()){let t=await navigator.clipboard.read();if(t&&t.length>0)for(let r of t)for(let n of r.types)/^image\//.test(n)?e=await r.getType(n):n==="text/plain"&&(i=await(await r.getType(n)).text())}return{text:i,img:e}},r0=i=>{if(!i||!i.parent)return;let e=zs(i);e!==-1&&i.parent.nodeData.children.splice(e,1)},Zp=i=>(Zm.forEach(e=>{i=i.replace(new RegExp(`<${e}([^>]*)>`,"g"),`<${e} $1 />`)}),i),Qp=(i,e)=>{if(i.length!==e.length)return!1;for(let t=0;tr.uid===i[t].uid))return!1;return!0},Jp=()=>{let i=navigator.userAgent.match(/\s+Chrome\/(.*)\s+/);return i&&i[1]?Number.parseFloat(i[1]):""},gc=i=>({simpleMindMap:!0,data:i}),ao=i=>{let e=null;if(typeof i=="string")try{let r=JSON.parse(i);typeof r=="object"&&r.simpleMindMap&&(e=r.data)}catch{}else typeof i=="object"&&i.simpleMindMap&&(e=i.data);let t=!!e;return{isSmm:t,data:t?e:String(i)}},xc=(i,e)=>{i.preventDefault();let t=window.getSelection();if(!t.rangeCount)return;t.deleteFromDocument(),e=e||i.clipboardData.getData("text"),e=Wr(e),e=ks(e);let r=e.split(/\n/g),n=document.createDocumentFragment();r.forEach((s,a)=>{let o=document.createTextNode(s);if(n.appendChild(o),a{let e={},t=(r,n)=>{let s=r.data.uid;n&&n.children.push(s),e[s]={isRoot:!n,data:{...r.data},children:[]},r.children&&r.children.length>0&&r.children.forEach(a=>{t(a,e[s])})};return t(i,null),e},e3=(i,e)=>{let t=i.x+i.width/2,r=i.y+i.height/2,n=e.x+e.width/2,s=e.y+e.height/2;return tn&&rn&&r>s?"right-bottom":ts?"left-bottom":tn&&r===s?"right":t===n&&rs?"bottom":"overlap"},t3=({addContentToHeader:i,addContentToFooter:e})=>{let t=[],r=null,n=0,s=null,a=0,o=(l,h)=>{if(typeof l=="function"){let d=l();if(!d)return;let{el:c,cssText:f,height:m}=d;if(c instanceof HTMLElement){$i(c);let g=Vr({el:c,height:m});h(g,m)}f&&t.push(f)}};return o(i,(l,h)=>{r=l,n=h}),o(e,(l,h)=>{s=l,a=h}),{cssTextList:t,header:r,headerHeight:n,footer:s,footerHeight:a}},yc=(i,e=0,t=0,r=0,n=0,s=!1,a=!1)=>{let o=1/0,l=-1/0,h=1/0,d=-1/0,c=(f,m)=>{if(!(m&&s)&&f.group)try{let{x:g,y:x,width:v,height:b}=f.group.findOne(".smm-node-shape").rbox();gl&&(l=g+v),xd&&(d=x+b)}catch{}!a&&f._generalizationList.length>0&&f._generalizationList.forEach(g=>{c(g.generalizationNode)}),f.children&&f.children.forEach(g=>{c(g)})};return c(i,!0),o=o-e+r,h=h-t+n,l=l-e+r,d=d-t+n,{left:o,top:h,width:l-o,height:d-h}},i3=(i,e=0,t=0,r=0,n=0)=>{let s=1/0,a=-1/0,o=1/0,l=-1/0;return i.forEach(h=>{let{left:d,top:c,width:f,height:m}=yc(h,e,t,r,n,!1,!0);da&&(a=d+f),cl&&(l=c+m)}),{left:s,top:o,width:a-s,height:l-o}},xw=()=>{if(document.documentElement.requestFullScreen)return"fullscreenchange";if(document.documentElement.webkitRequestFullScreen)return"webkitfullscreenchange";if(document.documentElement.mozRequestFullScreen)return"mozfullscreenchange";if(document.documentElement.msRequestFullscreen)return"msfullscreenchange"},MF=xw(),Vr=({el:i,width:e,height:t})=>{let r=new Ts;return e!==void 0&&r.width(e),t!==void 0&&r.height(t),r.add(i),r},Hn=i=>{let e=i.generalization;return e?Array.isArray(e)?e:[e]:[]},$i=i=>{i.setAttribute("xmlns","http://www.w3.org/1999/xhtml")},oo=i=>(i=[...i],i.sort((e,t)=>e.sortIndex-t.sortIndex),i),bc=(i,e)=>(0,Rp.default)(i,e,{arrayMerge:(t,r)=>r}),r3=i=>{let e={};return Qm.forEach(t=>{let r=i.style.merge(t);t==="fontSize"&&(r=r+"px"),e[t]=r}),e}});var n3,wc,n0,lo,s0=M(()=>{he();n3=["backgroundColor","backgroundImage","backgroundRepeat","backgroundPosition","backgroundSize"],wc=["gradientStyle","startColor","endColor","startDir","endDir","fillColor","borderColor","borderWidth","borderDasharray"],n0=class i{static setBackgroundStyle(e,t){if(!e)return;if(!i.cacheStyle){i.cacheStyle={};let l=window.getComputedStyle(e);n3.forEach(h=>{i.cacheStyle[h]=l[h]})}let{backgroundColor:r,backgroundImage:n,backgroundRepeat:s,backgroundPosition:a,backgroundSize:o}=t;e.style.backgroundColor=r,n&&n!=="none"?(e.style.backgroundImage=`url(${n})`,e.style.backgroundRepeat=s,e.style.backgroundPosition=a,e.style.backgroundSize=o):e.style.backgroundImage="none"}static removeBackgroundStyle(e){i.cacheStyle&&(n3.forEach(t=>{e.style[t]=i.cacheStyle[t]}),i.cacheStyle=null)}constructor(e){this.ctx=e,this._markerPath=null,this._marker=null,this._gradient=null}merge(e,t){let r=this.ctx.mindMap.themeConfig,n=null,s=!1;t?(s=!0,n=r):this.ctx.isGeneralization?n=r.generalization:this.ctx.layerIndex===0?n=r.root:this.ctx.layerIndex===1?n=r.second:n=r.node;let a="";return this.getSelfStyle(e)!==void 0?a=this.getSelfStyle(e):n[e]!==void 0?a=n[e]:a=r[e],s||this.addToEffectiveStyles({[e]:a}),a}getStyle(e,t){return this.merge(e,t)}getSelfStyle(e){return this.ctx.getData(e)}addToEffectiveStyles(e){this.ctx.mindMap.painter&&(this.ctx.effectiveStyles={...this.ctx.effectiveStyles,...e})}rect(e){this.shape(e),e.radius(this.merge("borderRadius"))}shape(e){let t={};wc.forEach(r=>{t[r]=this.merge(r)}),t.gradientStyle?(this._gradient||(this._gradient=this.ctx.nodeDraw.gradient("linear")),this._gradient.update(r=>{r.stop(0,t.startColor),r.stop(1,t.endColor)}),this._gradient.from(...t.startDir).to(...t.endDir),e.fill(this._gradient)):e.fill({color:t.fillColor}),e.stroke({color:t.borderColor,width:t.borderWidth,dasharray:t.borderDasharray})}text(e){let t={color:this.merge("color"),fontFamily:this.merge("fontFamily"),fontSize:this.merge("fontSize"),fontWeight:this.merge("fontWeight"),fontStyle:this.merge("fontStyle"),textDecoration:this.merge("textDecoration")};e.fill({color:t.color}).css({"font-family":t.fontFamily,"font-size":t.fontSize+"px","font-weight":t.fontWeight,"font-style":t.fontStyle,"text-decoration":t.textDecoration})}domText(e,t=1){let r={color:this.merge("color"),fontFamily:this.merge("fontFamily"),fontSize:this.merge("fontSize"),fontWeight:this.merge("fontWeight"),fontStyle:this.merge("fontStyle"),textDecoration:this.merge("textDecoration"),textAlign:this.merge("textAlign")};e.style.color=r.color,e.style.textDecoration=r.textDecoration,e.style.fontFamily=r.fontFamily,e.style.fontSize=r.fontSize*t+"px",e.style.fontWeight=r.fontWeight||"normal",e.style.fontStyle=r.fontStyle,e.style.textAlign=r.textAlign}tagText(e,t){e.fill({color:"#fff"}).css({"font-size":t.fontSize+"px"})}tagRect(e,t){e.fill({color:t.fill}),t.radius&&e.radius(t.radius)}iconNode(e,t){e.attr({fill:t||this.merge("color")})}line(e,{width:t,color:r,dasharray:n}={},s,a){let{customHandleLine:o}=this.ctx.mindMap.opt;if(typeof o=="function"&&o(this.ctx,e,{width:t,color:r,dasharray:n}),e.stroke({color:r,dasharray:n,width:t}).fill({color:"none"}),s){let l=this.merge("showLineMarker",!0),h=a.style;if(l){h._marker=h._marker||h.createMarker(),h._markerPath.stroke({color:r}).fill({color:r}),e.attr("marker-start",""),e.attr("marker-end","");let d=h.merge("lineMarkerDir");e.marker(d,h._marker)}else h._marker&&(e.attr("marker-start",""),e.attr("marker-end",""),h._marker.remove(),h._marker=null)}}createMarker(){return this.ctx.lineDraw.marker(20,20,e=>{e.ref(8,5),e.size(20,20),e.attr("markerUnits","userSpaceOnUse"),e.attr("orient","auto-start-reverse"),this._markerPath=e.path("M0,0 L2,5 L0,10 L10,5 Z")})}generalizationLine(e){e.stroke({width:this.merge("generalizationLineWidth",!0),color:this.merge("generalizationLineColor",!0)}).fill({color:"none"})}iconBtn(e,t,r){let{color:n,fill:s,fontSize:a,fontColor:o}=this.ctx.mindMap.opt.expandBtnStyle||{color:"#808080",fill:"#fff",fontSize:12,strokeColor:"#333333",fontColor:"#333333"};e.fill({color:n}),t.fill({color:n}),r.fill({color:s}),this.ctx.mindMap.opt.isShowExpandNum&&e.attr({"font-size":a+"px","font-color":o})}hasCustomStyle(){let e=!1;return Object.keys(this.ctx.getData()).forEach(t=>{Pn(t)&&(e=!0)}),e}getCustomStyle(){let e={};return Object.keys(this.ctx.getData()).forEach(t=>{Pn(t)&&(e[t]=this.ctx.getData(t))}),e}hoverNode(e){let t=this.merge("hoverRectColor")||this.ctx.mindMap.opt.hoverRectColor,r=this.merge("hoverRectRadius");e.radius(r).fill("none").stroke({color:t})}onRemove(){this._marker&&(this._marker.remove(),this._marker=null),this._markerPath&&(this._markerPath.remove(),this._markerPath=null),this._gradient&&(this._gradient.remove(),this._gradient=null)}};n0.cacheStyle=null;lo=n0});var ho,s3,Mc=M(()=>{ht();Oe();ho=class{constructor(e){this.node=e,this.mindMap=e.mindMap}getShapePadding(e,t,r,n){let s=this.node.getShape(),a=15,o=5,l=e+r*2,h=t+n*2,d=Math.abs(l-h);switch(s){case A.SHAPE.ROUNDED_RECTANGLE:return{paddingX:t>e?(t-e)/2:0,paddingY:0};case A.SHAPE.DIAMOND:return{paddingX:e/2,paddingY:t/2};case A.SHAPE.PARALLELOGRAM:return{paddingX:r<=0?a:0,paddingY:0};case A.SHAPE.OUTER_TRIANGULAR_RECTANGLE:return{paddingX:r<=0?a:0,paddingY:0};case A.SHAPE.INNER_TRIANGULAR_RECTANGLE:return{paddingX:r<=0?a:0,paddingY:0};case A.SHAPE.ELLIPSE:return{paddingX:r<=0?a:0,paddingY:n<=0?o:0};case A.SHAPE.CIRCLE:return{paddingX:h>l?d/2:0,paddingY:ht.name===e)}createShape(){let e=this.node.getShape(),t=null;if(e===A.SHAPE.RECTANGLE?t=this.createRect():e===A.SHAPE.DIAMOND?t=this.createDiamond():e===A.SHAPE.PARALLELOGRAM?t=this.createParallelogram():e===A.SHAPE.ROUNDED_RECTANGLE?t=this.createRoundedRectangle():e===A.SHAPE.OCTAGONAL_RECTANGLE?t=this.createOctagonalRectangle():e===A.SHAPE.OUTER_TRIANGULAR_RECTANGLE?t=this.createOuterTriangularRectangle():e===A.SHAPE.INNER_TRIANGULAR_RECTANGLE?t=this.createInnerTriangularRectangle():e===A.SHAPE.ELLIPSE?t=this.createEllipse():e===A.SHAPE.CIRCLE&&(t=this.createCircle()),!t){let r=this.getShapeFromExtendList(e);r&&(t=r.createShape(this.node))}return t||this.createRect()}getNodeSize(){let e=this.node.getBorderWidth(),{width:t,height:r}=this.node;return t-=e,r-=e,{width:t,height:r}}createPath(e){let{customCreateNodePath:t}=this.mindMap.opt;return t?Me(t(e)):new Ui().plot(e)}createPolygon(e){let{customCreateNodePolygon:t}=this.mindMap.opt;return t?Me(t(e)):new _i().plot(e)}createRect(){let{width:e,height:t}=this.getNodeSize(),r=this.node.style.merge("borderRadius"),n=` +`);for(let t=0,r=e.length;t(i.attr("href")||"").includes(this.id()))}}});_o.prototype.MorphArray=Er;be(_o,"TextPath");R0=class extends Dt{constructor(e,t=e){super(qe("use",e),t)}use(e,t){return this.attr("href",(t||"")+"#"+e,Lo)}};fe({Container:{use:Fe(function(i,e){return this.put(new R0).use(i,e)})}});be(R0,"Use");Ae=Rt;ge([Eo,So,ji,rs,Ks],Wt("viewbox"));ge([ns,as,Gi,ar],Wt("marker"));ge(Ce,Wt("Text"));ge(ar,Wt("Path"));ge(bo,Wt("Defs"));ge([Ce,Js],Wt("Tspan"));ge([Ve,Xs,is,Vi],Wt("radius"));ge(ts,Wt("EventTarget"));ge(dn,Wt("Dom"));ge(Ei,Wt("Element"));ge(Dt,Wt("Shape"));ge([Vt,L0],Wt("Container"));ge(is,Wt("Gradient"));ge(Vi,Wt("Runner"));Nr.extend(gw());UM([ye,Ni,Gt,xe,hn,sr,Er,it]);$M()});var O0=rr((nU,c2)=>{"use strict";var D0=function(e){return wT(e)&&!MT(e)};function wT(i){return!!i&&typeof i=="object"}function MT(i){var e=Object.prototype.toString.call(i);return e==="[object RegExp]"||e==="[object Date]"||ET(i)}var TT=typeof Symbol=="function"&&Symbol.for,NT=TT?Symbol.for("react.element"):60103;function ET(i){return i.$$typeof===NT}function ST(i){return Array.isArray(i)?[]:{}}function Io(i,e){var t=e&&e.clone===!0;return t&&D0(i)?ra(ST(i),i,e):i}function d2(i,e,t){var r=i.slice();return e.forEach(function(n,s){typeof r[s]>"u"?r[s]=Io(n,t):D0(n)?r[s]=ra(i[s],n,t):i.indexOf(n)===-1&&r.push(Io(n,t))}),r}function AT(i,e,t){var r={};return D0(i)&&Object.keys(i).forEach(function(n){r[n]=Io(i[n],t)}),Object.keys(e).forEach(function(n){!D0(e[n])||!i[n]?r[n]=Io(e[n],t):r[n]=ra(i[n],e[n],t)}),r}function ra(i,e,t){var r=Array.isArray(e),n=Array.isArray(i),s=t||{arrayMerge:d2},a=r===n;if(a)if(r){var o=s.arrayMerge||d2;return o(i,e,t)}else return AT(i,e,t);else return Io(e,t)}ra.all=function(e,t){if(!Array.isArray(e)||e.length<2)throw new Error("first argument should be an array with at least two elements");return e.reduce(function(r,n){return ra(r,n,t)})};var kT=ra;c2.exports=kT});var B0,CT,u2,zo,Ro=T(()=>{B0={paddingX:15,paddingY:5,imgMaxWidth:200,imgMaxHeight:100,iconSize:20,lineWidth:1,lineColor:"#549688",lineDasharray:"none",lineFlow:!1,lineFlowDuration:1,lineFlowForward:!0,lineStyle:"straight",rootLineKeepSameInCurve:!0,rootLineStartPositionKeepSameInCurve:!1,lineRadius:5,showLineMarker:!1,generalizationLineWidth:1,generalizationLineColor:"#549688",generalizationLineMargin:0,generalizationNodeMargin:20,associativeLineWidth:2,associativeLineColor:"rgb(51, 51, 51)",associativeLineActiveWidth:8,associativeLineActiveColor:"rgba(2, 167, 240, 1)",associativeLineDasharray:"6,4",associativeLineTextColor:"rgb(51, 51, 51)",associativeLineTextFontSize:14,associativeLineTextLineHeight:1.2,associativeLineTextFontFamily:"\u5FAE\u8F6F\u96C5\u9ED1, Microsoft YaHei",backgroundColor:"#fafafa",backgroundImage:"none",backgroundRepeat:"no-repeat",backgroundPosition:"center center",backgroundSize:"cover",nodeUseLineStyle:!1,root:{shape:"rectangle",fillColor:"#549688",fontFamily:"\u5FAE\u8F6F\u96C5\u9ED1, Microsoft YaHei",color:"#fff",fontSize:16,fontWeight:"bold",fontStyle:"normal",borderColor:"transparent",borderWidth:0,borderDasharray:"none",borderRadius:5,textDecoration:"none",gradientStyle:!1,startColor:"#549688",endColor:"#fff",startDir:[0,0],endDir:[1,0],lineMarkerDir:"end",hoverRectColor:"",hoverRectRadius:5,textAlign:"left",imgPlacement:"top",tagPlacement:"right"},second:{shape:"rectangle",marginX:100,marginY:40,fillColor:"#fff",fontFamily:"\u5FAE\u8F6F\u96C5\u9ED1, Microsoft YaHei",color:"#565656",fontSize:16,fontWeight:"normal",fontStyle:"normal",borderColor:"#549688",borderWidth:1,borderDasharray:"none",borderRadius:5,textDecoration:"none",gradientStyle:!1,startColor:"#549688",endColor:"#fff",startDir:[0,0],endDir:[1,0],lineMarkerDir:"end",hoverRectColor:"",hoverRectRadius:5,textAlign:"left",imgPlacement:"top",tagPlacement:"right"},node:{shape:"rectangle",marginX:50,marginY:0,fillColor:"transparent",fontFamily:"\u5FAE\u8F6F\u96C5\u9ED1, Microsoft YaHei",color:"#6a6d6c",fontSize:14,fontWeight:"normal",fontStyle:"normal",borderColor:"transparent",borderWidth:0,borderRadius:5,borderDasharray:"none",textDecoration:"none",gradientStyle:!1,startColor:"#549688",endColor:"#fff",startDir:[0,0],endDir:[1,0],lineMarkerDir:"end",hoverRectColor:"",hoverRectRadius:5,textAlign:"left",imgPlacement:"top",tagPlacement:"right"},generalization:{shape:"rectangle",marginX:100,marginY:40,fillColor:"#fff",fontFamily:"\u5FAE\u8F6F\u96C5\u9ED1, Microsoft YaHei",color:"#565656",fontSize:16,fontWeight:"normal",fontStyle:"normal",borderColor:"#549688",borderWidth:1,borderDasharray:"none",borderRadius:5,textDecoration:"none",gradientStyle:!1,startColor:"#549688",endColor:"#fff",startDir:[0,0],endDir:[1,0],hoverRectColor:"",hoverRectRadius:5,textAlign:"left",imgPlacement:"top",tagPlacement:"right"}},CT=["lineWidth","lineColor","lineDasharray","lineStyle","generalizationLineWidth","generalizationLineColor","associativeLineWidth","associativeLineColor","associativeLineActiveWidth","associativeLineActiveColor","associativeLineTextColor","associativeLineTextFontSize","associativeLineTextLineHeight","associativeLineTextFontFamily","backgroundColor","backgroundImage","backgroundRepeat","backgroundPosition","backgroundSize","rootLineKeepSameInCurve","rootLineStartPositionKeepSameInCurve","showLineMarker","lineRadius","hoverRectColor","hoverRectRadius","lineFlow","lineFlowDuration","lineFlowForward","textAlign"],u2=i=>{let e=Object.keys(i);for(let t=0;tr===e[t]))return!1;return!0},zo=["lineColor","lineDasharray","lineWidth","lineMarkerDir","lineFlow","lineFlowDuration","lineFlowForward"]});var f2,de,Xt,U0,na,Kt,uu,ls,fu,m2,Si,p2,Zt,fn,g2,x2,y2,P0,sa,aa,_T,wt,v2,b2,os,Yt,F0,w2,Do,M2,Oo,mu,$0,LT,q0,j0,un,T2,N2,hs,E2,S2,ds,A2,k2,oa,la,Bo,cs,Ot,ha,Ie,G0,mn,H0,pu,gu,C2,V0,_2,L2,I2,xu,Po,yu,vu,z2,R2,bu,D2,IT,cU,pn,us,or,Fo,wu,O2,pe=T(()=>{Hc();$e();I3();yt();f2=pt(O0());Ro();de=(i,e,t,r,n,s=0,a=0,o=[])=>{let l=!1;if(t&&(l=t(i,e,n,s,a,o)),!l&&i.children&&i.children.length>0){let h=s+1;i.children.forEach((d,c)=>{de(d,i,t,r,!1,h,c,[...o,i])})}r&&r(i,e,n,s,a,o)},Xt=(i,e)=>{let t=[i],r=!1;for(e(i,null)==="stop"&&(r=!0);t.length&&!r;){let n=t.shift();n.children&&n.children.length&&n.children.forEach(s=>{r||(t.push(s),e(s,n)==="stop"&&(r=!0))})}},U0=(i,e,t,r)=>{let n=i/e,s=[];if(t&&r)if(i<=t&&e<=r)s=[i,e];else{let a=t/r;n>a?s=[t,t/n]:s=[n*r,r]}else t?i<=t?s=[i,e]:s=[t,t/n]:r&&(e<=r?s=[i,e]:s=[n*r,r]);return s},na=i=>{i=i.replace(/
    /gim,` +`);let e=document.createElement("div");return e.innerHTML=i,i=e.textContent,i},Kt=i=>{try{return JSON.parse(JSON.stringify(i))}catch{return null}},uu=(i,e,t=!1)=>(i.data=Kt(e.data),t&&(i.data.isActive=!1,us(i.data).forEach(n=>{n.isActive=!1})),i.children=[],e.children&&e.children.length>0&&e.children.forEach((r,n)=>{i.children[n]=uu({},r,t)}),Object.keys(e).forEach(r=>{!["data","children"].includes(r)&&!/^_/.test(r)&&(i[r]=e[r])}),i),ls=(i,e,t=!1,r=!0)=>{let n=e.nodeData?e.nodeData:e;return i.data=Kt(n.data),r?delete i.data.uid:i.data.uid||(i.data.uid=wt()),t&&(i.data.isActive=!1),i.children=[],e.children&&e.children.length>0?e.children.forEach((s,a)=>{i.children[a]=ls({},s,t,r)}):e.nodeData&&e.nodeData.children&&e.nodeData.children.length>0&&e.nodeData.children.forEach((s,a)=>{i.children[a]=ls({},s,t,r)}),Object.keys(n).forEach(s=>{!["data","children"].includes(s)&&!/^_/.test(s)&&(i[s]=n[s])}),i},fu=(i,e=!1)=>new Promise((t,r)=>{let n=new Image;n.setAttribute("crossOrigin","anonymous"),n.onload=()=>{try{let s=document.createElement("canvas");s.width=n.width,s.height=n.height,s.getContext("2d").drawImage(n,0,0,n.width,n.height),e?s.toBlob(o=>{t(o)}):t(s.toDataURL())}catch(s){r(s)}},n.onerror=s=>{r(s)},n.src=i}),m2=(i,e)=>{let t=document.createElement("a");t.href=i,t.download=e,t.click()},Si=(i,e=300,t)=>{let r=null;return(...n)=>{r||(r=setTimeout(()=>{i.call(t,...n),r=null},e))}},p2=(i,e=300,t)=>{let r=null;return(...n)=>{r&&clearTimeout(r),r=setTimeout(()=>{r=null,i.apply(t,n)},e)}},Zt=(i,e=()=>{})=>{let t=0,r=i.length;if(r<=0)return e();let n=()=>{if(t>=r){e();return}i[t](),setTimeout(()=>{t++,n()},0)};n()},fn=i=>i*(Math.PI/180),g2=i=>i.replace(/([a-z])([A-Z])/g,(...e)=>e[1]+"-"+e[2].toLowerCase()),x2=function(i,e){let t=!1,r=null,n=()=>{t=!1,e?i.call(e):i()};if(typeof MutationObserver<"u"){let s=1,a=new MutationObserver(n),o=document.createTextNode(s);a.observe(o,{characterData:!0}),r=function(){s=(s+1)%2,o.data=s}}else r=setTimeout;return function(){t||(t=!0,r(n,0))}},y2=(i,e,t=0,r=0)=>{let n=i.elRect,{scaleX:s,scaleY:a,translateX:o,translateY:l}=i.draw.transform(),{left:h,top:d,width:c,height:f}=e,m=(h+c)*s+o,g=(d+f)*a+l;h=h*s+o,d=d*a+l;let x=0,y=0;return h<0+t&&(x=-h+t),m>n.width-t&&(x=-(m-n.width)-t),d<0+r&&(y=-d+r),g>n.height-r&&(y=-(g-n.height)-r),{isOuter:x!==0||y!==0,offsetLeft:x,offsetTop:y}},P0=null,sa=i=>(P0||(P0=document.createElement("div")),P0.innerHTML=i,P0.textContent),aa=i=>new Promise((e,t)=>{let r=new FileReader;r.onload=n=>{e(n.target.result)},r.onerror=n=>{t(n)},r.readAsDataURL(i)}),_T=i=>new Promise(e=>{let t=new Image;t.src=i,t.onload=()=>{e({width:t.width,height:t.height})},t.onerror=()=>{e({width:0,height:0})}}),wt=()=>fo(),v2=i=>new Promise((e,t)=>{let r=new FileReader;r.readAsDataURL(i),r.onload=async n=>{let s=n.target.result,a=await _T(s);e({url:s,size:a})},r.onerror=n=>{t(n)}}),b2=i=>([[" "," "]].forEach(e=>{i=i.replace(new RegExp(e[0],"g"),e[1])}),i),os=i=>Object.prototype.toString.call(i).slice(8,-1),Yt=i=>i==null||i==="",F0=null,w2=i=>{F0||(F0=document.createElement("div")),F0.innerHTML=i;for(let e=F0.childNodes,t=e.length;t--;)if(e[t].nodeType==1)return!0;return!1},Do=null,M2=(i,e,t)=>{Do||(Do=document.createElement("div")),Do.innerHTML=i;let r=n=>{n.childNodes.forEach(a=>{a.nodeType===1?r(a):a.nodeType===3&&n.replaceChild(document.createTextNode(a.nodeValue.replace(new RegExp(e,"g"),t)),a)})};return r(Do),Do.innerHTML},Oo=i=>(i=String(i).replace(/\s+/g,""),["#fff","#ffffff","#FFF","#FFFFFF","rgb(255,255,255)"].includes(i)||/rgba\(255,255,255,[^)]+\)/.test(i)),mu=i=>(i=String(i).replace(/\s+/g,""),["","transparent"].includes(i)||/rgba\(\d+,\d+,\d+,0\)/.test(i)),$0=i=>{let{lineColor:e,root:t,second:r,node:n}=i,s=[e,t.fillColor,t.color,r.fillColor,r.color,n.fillColor,n.color,t.borderColor,r.borderColor,n.borderColor];for(let a=0;a{let e=t=>{t.childNodes.forEach(n=>{n.nodeType===1&&(n.classList.contains("ql-formula")?n.parentNode.removeChild(n):e(n))})};e(i)},q0=null,j0=i=>{q0||(q0=document.createElement("div")),q0.innerHTML=i;let e=q0.childNodes,t="";for(let r=0;r{un||(un=document.createElement("div")),un.innerHTML=i;let e=un.querySelectorAll(".ql-formula");Array.from(e).forEach(n=>{let s=document.createTextNode("$smmformula$");n.parentNode.replaceChild(s,n)});let t=un.childNodes,r=[];for(let n=0;n`

    ${mn(n)}

    `).join(""),e.length>0){i=i.replace(/\$smmformula\$/g,''),un.innerHTML=i;let n=un.querySelectorAll(".smmformula");Array.from(n).forEach((s,a)=>{s.parentNode.replaceChild(e[a],s)}),i=un.innerHTML}return i},N2=(i,e)=>{let t={};return Object.keys(e).forEach(r=>{let n=i[r],s=e[r];if(os(n)!==os(s)){t[r]=s;return}if(os(n)==="Object"){if(JSON.stringify(n)!==JSON.stringify(s)){t[r]=s;return}}else if(n!==s){t[r]=s;return}}),t},hs=i=>/^_/.test(i)?!1:!$s.includes(i),E2=i=>{let e=[...zo],t=Object.keys(i);for(let r=0;ri.reduce((e,t)=>{let r=e.find(n=>n.type===t.type);return r?t.list.forEach(n=>{let s=r.list.find(a=>a.name===n.name);s?s.icon=n.icon:r.list.push(n)}):e.push({...t}),e},[]),ds=i=>{let e=[];return i.forEach(t=>{i.find(r=>r.uid!==t.uid&&r.isAncestor(t))||e.push(t)}),e},A2=i=>{let e={},t={};i.forEach(n=>{let s=n.parent;if(s){let a=s.uid;t[a]=s;let o=n.getIndexInBrothers(),l={node:n,index:o};e[a]?e[a].find(h=>h.index===l.index)||e[a].push(l):e[a]=[l]}});let r=[];return Object.keys(e).forEach(n=>{if(e[n].length>1){let s=e[n].map(a=>a.index).sort((a,o)=>a-o);r.push({node:t[n],range:[s[0],s[s.length-1]]})}else r.push({node:e[n][0].node})}),r},k2=(i,e,t,r,n,s,a,o)=>e>n&&s>i&&r>a&&o>t,oa=i=>{let e=window.getSelection(),t=document.createRange();t.selectNodeContents(i),t.collapse(),e.removeAllRanges(),e.addRange(t)},la=i=>{let e=window.getSelection(),t=document.createRange();t.selectNodeContents(i),e.removeAllRanges(),e.addRange(t)},Bo=(i,e={})=>{e={...e},e&&e.richText&&e.resetRichText&&delete e.resetRichText;let r=n=>{n.forEach(s=>{s.data={...s.data,...e},s.children&&s.children.length>0&&r(s.children)})};return r(i),i},cs=(i,e=!1,t=null,r=!1)=>{let n=s=>{s.forEach(a=>{a.data||(a.data={}),(e||Yt(a.data.uid))&&(a.data.uid=wt()),r&&us(a.data).forEach(l=>{(e||Yt(l.uid))&&(l.uid=wt())}),t&&t(a),a.children&&a.children.length>0&&n(a.children)})};return n(i),i},Ot=i=>i?Array.isArray(i)?i:[i]:[],ha=i=>i.parent?i.parent.nodeData.children.findIndex(e=>e.data.uid===i.uid):0,Ie=(i,e)=>e.findIndex(t=>t.uid===i.uid),G0=i=>{let e=0;for(let n=0;n([["&","&"],["<","<"],[">",">"]].forEach(e=>{i=i.replace(new RegExp(e[0],"g"),e[1])}),i),H0=(i,e)=>{let t=os(i);if(t!==os(e))return!1;if(t==="Object"){let r=Object.keys(i),n=Object.keys(e);if(r.length!==n.length)return!1;for(let s=0;snavigator.clipboard&&typeof navigator.clipboard.read=="function",gu=i=>{navigator.clipboard&&navigator.clipboard.writeText&&navigator.clipboard.writeText(JSON.stringify(i))},C2=async()=>{let i=null,e=null;if(pu()){let t=await navigator.clipboard.read();if(t&&t.length>0)for(let r of t)for(let n of r.types)/^image\//.test(n)?e=await r.getType(n):n==="text/plain"&&(i=await(await r.getType(n)).text())}return{text:i,img:e}},V0=i=>{if(!i||!i.parent)return;let e=ha(i);e!==-1&&i.parent.nodeData.children.splice(e,1)},_2=i=>(_3.forEach(e=>{i=i.replace(new RegExp(`<${e}([^>]*)>`,"g"),`<${e} $1 />`)}),i),L2=(i,e)=>{if(i.length!==e.length)return!1;for(let t=0;tr.uid===i[t].uid))return!1;return!0},I2=()=>{let i=navigator.userAgent.match(/\s+Chrome\/(.*)\s+/);return i&&i[1]?Number.parseFloat(i[1]):""},xu=i=>({simpleMindMap:!0,data:i}),Po=i=>{let e=null;if(typeof i=="string")try{let r=JSON.parse(i);typeof r=="object"&&r.simpleMindMap&&(e=r.data)}catch{}else typeof i=="object"&&i.simpleMindMap&&(e=i.data);let t=!!e;return{isSmm:t,data:t?e:String(i)}},yu=(i,e)=>{i.preventDefault();let t=window.getSelection();if(!t.rangeCount)return;t.deleteFromDocument(),e=e||i.clipboardData.getData("text"),e=mn(e),e=sa(e);let r=e.split(/\n/g),n=document.createDocumentFragment();r.forEach((s,a)=>{let o=document.createTextNode(s);if(n.appendChild(o),a{let e={},t=(r,n)=>{let s=r.data.uid;n&&n.children.push(s),e[s]={isRoot:!n,data:{...r.data},children:[]},r.children&&r.children.length>0&&r.children.forEach(a=>{t(a,e[s])})};return t(i,null),e},z2=(i,e)=>{let t=i.x+i.width/2,r=i.y+i.height/2,n=e.x+e.width/2,s=e.y+e.height/2;return tn&&rn&&r>s?"right-bottom":ts?"left-bottom":tn&&r===s?"right":t===n&&rs?"bottom":"overlap"},R2=({addContentToHeader:i,addContentToFooter:e})=>{let t=[],r=null,n=0,s=null,a=0,o=(l,h)=>{if(typeof l=="function"){let d=l();if(!d)return;let{el:c,cssText:f,height:m}=d;if(c instanceof HTMLElement){or(c);let g=pn({el:c,height:m});h(g,m)}f&&t.push(f)}};return o(i,(l,h)=>{r=l,n=h}),o(e,(l,h)=>{s=l,a=h}),{cssTextList:t,header:r,headerHeight:n,footer:s,footerHeight:a}},bu=(i,e=0,t=0,r=0,n=0,s=!1,a=!1)=>{let o=1/0,l=-1/0,h=1/0,d=-1/0,c=(f,m)=>{if(!(m&&s)&&f.group)try{let{x:g,y:x,width:y,height:b}=f.group.findOne(".smm-node-shape").rbox();gl&&(l=g+y),xd&&(d=x+b)}catch{}!a&&f._generalizationList.length>0&&f._generalizationList.forEach(g=>{c(g.generalizationNode)}),f.children&&f.children.forEach(g=>{c(g)})};return c(i,!0),o=o-e+r,h=h-t+n,l=l-e+r,d=d-t+n,{left:o,top:h,width:l-o,height:d-h}},D2=(i,e=0,t=0,r=0,n=0)=>{let s=1/0,a=-1/0,o=1/0,l=-1/0;return i.forEach(h=>{let{left:d,top:c,width:f,height:m}=bu(h,e,t,r,n,!1,!0);da&&(a=d+f),cl&&(l=c+m)}),{left:s,top:o,width:a-s,height:l-o}},IT=()=>{if(document.documentElement.requestFullScreen)return"fullscreenchange";if(document.documentElement.webkitRequestFullScreen)return"webkitfullscreenchange";if(document.documentElement.mozRequestFullScreen)return"mozfullscreenchange";if(document.documentElement.msRequestFullscreen)return"msfullscreenchange"},cU=IT(),pn=({el:i,width:e,height:t})=>{let r=new ea;return e!==void 0&&r.width(e),t!==void 0&&r.height(t),r.add(i),r},us=i=>{let e=i.generalization;return e?Array.isArray(e)?e:[e]:[]},or=i=>{i.setAttribute("xmlns","http://www.w3.org/1999/xhtml")},Fo=i=>(i=[...i],i.sort((e,t)=>e.sortIndex-t.sortIndex),i),wu=(i,e)=>(0,f2.default)(i,e,{arrayMerge:(t,r)=>r}),O2=i=>{let e={};return L3.forEach(t=>{let r=i.style.merge(t);t==="fontSize"&&(r=r+"px"),e[t]=r}),e}});var B2,Mu,W0,qo,Y0=T(()=>{pe();B2=["backgroundColor","backgroundImage","backgroundRepeat","backgroundPosition","backgroundSize"],Mu=["gradientStyle","startColor","endColor","startDir","endDir","fillColor","borderColor","borderWidth","borderDasharray"],W0=class i{static setBackgroundStyle(e,t){if(!e)return;if(!i.cacheStyle){i.cacheStyle={};let l=window.getComputedStyle(e);B2.forEach(h=>{i.cacheStyle[h]=l[h]})}let{backgroundColor:r,backgroundImage:n,backgroundRepeat:s,backgroundPosition:a,backgroundSize:o}=t;e.style.backgroundColor=r,n&&n!=="none"?(e.style.backgroundImage=`url(${n})`,e.style.backgroundRepeat=s,e.style.backgroundPosition=a,e.style.backgroundSize=o):e.style.backgroundImage="none"}static removeBackgroundStyle(e){i.cacheStyle&&(B2.forEach(t=>{e.style[t]=i.cacheStyle[t]}),i.cacheStyle=null)}constructor(e){this.ctx=e,this._markerPath=null,this._marker=null,this._gradient=null}merge(e,t){let r=this.ctx.mindMap.themeConfig,n=null,s=!1;t?(s=!0,n=r):this.ctx.isGeneralization?n=r.generalization:this.ctx.layerIndex===0?n=r.root:this.ctx.layerIndex===1?n=r.second:n=r.node;let a="";return this.getSelfStyle(e)!==void 0?a=this.getSelfStyle(e):n[e]!==void 0?a=n[e]:a=r[e],s||this.addToEffectiveStyles({[e]:a}),a}getStyle(e,t){return this.merge(e,t)}getSelfStyle(e){return this.ctx.getData(e)}addToEffectiveStyles(e){this.ctx.mindMap.painter&&(this.ctx.effectiveStyles={...this.ctx.effectiveStyles,...e})}rect(e){this.shape(e),e.radius(this.merge("borderRadius"))}shape(e){let t={};Mu.forEach(r=>{t[r]=this.merge(r)}),t.gradientStyle?(this._gradient||(this._gradient=this.ctx.nodeDraw.gradient("linear")),this._gradient.update(r=>{r.stop(0,t.startColor),r.stop(1,t.endColor)}),this._gradient.from(...t.startDir).to(...t.endDir),e.fill(this._gradient)):e.fill({color:t.fillColor}),e.stroke({color:t.borderColor,width:t.borderWidth,dasharray:t.borderDasharray})}text(e){let t={color:this.merge("color"),fontFamily:this.merge("fontFamily"),fontSize:this.merge("fontSize"),fontWeight:this.merge("fontWeight"),fontStyle:this.merge("fontStyle"),textDecoration:this.merge("textDecoration")};e.fill({color:t.color}).css({"font-family":t.fontFamily,"font-size":t.fontSize+"px","font-weight":t.fontWeight,"font-style":t.fontStyle,"text-decoration":t.textDecoration})}domText(e,t=1){let r={color:this.merge("color"),fontFamily:this.merge("fontFamily"),fontSize:this.merge("fontSize"),fontWeight:this.merge("fontWeight"),fontStyle:this.merge("fontStyle"),textDecoration:this.merge("textDecoration"),textAlign:this.merge("textAlign")};e.style.color=r.color,e.style.textDecoration=r.textDecoration,e.style.fontFamily=r.fontFamily,e.style.fontSize=r.fontSize*t+"px",e.style.fontWeight=r.fontWeight||"normal",e.style.fontStyle=r.fontStyle,e.style.textAlign=r.textAlign}tagText(e,t){e.fill({color:"#fff"}).css({"font-size":t.fontSize+"px"})}tagRect(e,t){e.fill({color:t.fill}),t.radius&&e.radius(t.radius)}iconNode(e,t){e.attr({fill:t||this.merge("color")})}line(e,{width:t,color:r,dasharray:n}={},s,a){let{customHandleLine:o}=this.ctx.mindMap.opt;if(typeof o=="function"&&o(this.ctx,e,{width:t,color:r,dasharray:n}),e.stroke({color:r,dasharray:n,width:t}).fill({color:"none"}),s){let l=this.merge("showLineMarker",!0),h=a.style;if(l){h._marker=h._marker||h.createMarker(),h._markerPath.stroke({color:r}).fill({color:r}),e.attr("marker-start",""),e.attr("marker-end","");let d=h.merge("lineMarkerDir");e.marker(d,h._marker)}else h._marker&&(e.attr("marker-start",""),e.attr("marker-end",""),h._marker.remove(),h._marker=null)}}createMarker(){return this.ctx.lineDraw.marker(20,20,e=>{e.ref(8,5),e.size(20,20),e.attr("markerUnits","userSpaceOnUse"),e.attr("orient","auto-start-reverse"),this._markerPath=e.path("M0,0 L2,5 L0,10 L10,5 Z")})}generalizationLine(e){e.stroke({width:this.merge("generalizationLineWidth",!0),color:this.merge("generalizationLineColor",!0)}).fill({color:"none"})}iconBtn(e,t,r){let{color:n,fill:s,fontSize:a,fontColor:o}=this.ctx.mindMap.opt.expandBtnStyle||{color:"#808080",fill:"#fff",fontSize:12,strokeColor:"#333333",fontColor:"#333333"};e.fill({color:n}),t.fill({color:n}),r.fill({color:s}),this.ctx.mindMap.opt.isShowExpandNum&&e.attr({"font-size":a+"px","font-color":o})}hasCustomStyle(){let e=!1;return Object.keys(this.ctx.getData()).forEach(t=>{hs(t)&&(e=!0)}),e}getCustomStyle(){let e={};return Object.keys(this.ctx.getData()).forEach(t=>{hs(t)&&(e[t]=this.ctx.getData(t))}),e}hoverNode(e){let t=this.merge("hoverRectColor")||this.ctx.mindMap.opt.hoverRectColor,r=this.merge("hoverRectRadius");e.radius(r).fill("none").stroke({color:t})}onRemove(){this._marker&&(this._marker.remove(),this._marker=null),this._markerPath&&(this._markerPath.remove(),this._markerPath=null),this._gradient&&(this._gradient.remove(),this._gradient=null)}};W0.cacheStyle=null;qo=W0});var Ho,P2,Tu=T(()=>{yt();$e();Ho=class{constructor(e){this.node=e,this.mindMap=e.mindMap}getShapePadding(e,t,r,n){let s=this.node.getShape(),a=15,o=5,l=e+r*2,h=t+n*2,d=Math.abs(l-h);switch(s){case k.SHAPE.ROUNDED_RECTANGLE:return{paddingX:t>e?(t-e)/2:0,paddingY:0};case k.SHAPE.DIAMOND:return{paddingX:e/2,paddingY:t/2};case k.SHAPE.PARALLELOGRAM:return{paddingX:r<=0?a:0,paddingY:0};case k.SHAPE.OUTER_TRIANGULAR_RECTANGLE:return{paddingX:r<=0?a:0,paddingY:0};case k.SHAPE.INNER_TRIANGULAR_RECTANGLE:return{paddingX:r<=0?a:0,paddingY:0};case k.SHAPE.ELLIPSE:return{paddingX:r<=0?a:0,paddingY:n<=0?o:0};case k.SHAPE.CIRCLE:return{paddingX:h>l?d/2:0,paddingY:ht.name===e)}createShape(){let e=this.node.getShape(),t=null;if(e===k.SHAPE.RECTANGLE?t=this.createRect():e===k.SHAPE.DIAMOND?t=this.createDiamond():e===k.SHAPE.PARALLELOGRAM?t=this.createParallelogram():e===k.SHAPE.ROUNDED_RECTANGLE?t=this.createRoundedRectangle():e===k.SHAPE.OCTAGONAL_RECTANGLE?t=this.createOctagonalRectangle():e===k.SHAPE.OUTER_TRIANGULAR_RECTANGLE?t=this.createOuterTriangularRectangle():e===k.SHAPE.INNER_TRIANGULAR_RECTANGLE?t=this.createInnerTriangularRectangle():e===k.SHAPE.ELLIPSE?t=this.createEllipse():e===k.SHAPE.CIRCLE&&(t=this.createCircle()),!t){let r=this.getShapeFromExtendList(e);r&&(t=r.createShape(this.node))}return t||this.createRect()}getNodeSize(){let e=this.node.getBorderWidth(),{width:t,height:r}=this.node;return t-=e,r-=e,{width:t,height:r}}createPath(e){let{customCreateNodePath:t}=this.mindMap.opt;return t?Ae(t(e)):new ar().plot(e)}createPolygon(e){let{customCreateNodePolygon:t}=this.mindMap.opt;return t?Ae(t(e)):new Gi().plot(e)}createRect(){let{width:e,height:t}=this.getNodeSize(),r=this.node.style.merge("borderRadius"),n=` M${r},0 L${e-r},0 C${e-r},0 ${e},0 ${e},${r} @@ -39,22 +39,22 @@ var jv=Object.create;var Pl=Object.defineProperty;var Gv=Object.getOwnPropertyDe `;return this.createPath(n)}createDiamond(){let{width:e,height:t}=this.getNodeSize(),r=e/2,n=t/2,m=[[r,0],[e,n],[r,t],[0,n]];return this.createPolygon(m)}createParallelogram(){let{paddingX:e}=this.node.getPaddingVale();e=e||this.node.shapePadding.paddingX;let{width:t,height:r}=this.getNodeSize(),n=[[e,0],[t,0],[t-e,r],[0,r]];return this.createPolygon(n)}createRoundedRectangle(){let{width:e,height:t}=this.getNodeSize(),r=t/2,n=` M${r},0 L${e-r},0 - A${t/2},${t/2} 0 0,1 ${e-r},${t} + A${t/2},${t/2} 0 0,1 ${e-r},${t} L${r},${t} A${t/2},${t/2} 0 0,1 ${r},0 `;return this.createPath(n)}createOctagonalRectangle(){let e=5,{width:t,height:r}=this.getNodeSize(),n=[[0,e],[e,0],[t-e,0],[t,e],[t,r-e],[t-e,r],[e,r],[0,r-e]];return this.createPolygon(n)}createOuterTriangularRectangle(){let{paddingX:e}=this.node.getPaddingVale();e=e||this.node.shapePadding.paddingX;let{width:t,height:r}=this.getNodeSize(),n=[[e,0],[t-e,0],[t,r/2],[t-e,r],[e,r],[0,r/2]];return this.createPolygon(n)}createInnerTriangularRectangle(){let{paddingX:e}=this.node.getPaddingVale();e=e||this.node.shapePadding.paddingX;let{width:t,height:r}=this.getNodeSize(),n=[[0,0],[t,0],[t-e/2,r/2],[t,r],[0,r],[e/2,r/2]];return this.createPolygon(n)}createEllipse(){let{width:e,height:t}=this.getNodeSize(),r=e/2,n=t/2,s=` M${r},0 - A${r},${n} 0 0,1 ${r},${t} - M${r},${t} - A${r},${n} 0 0,1 ${r},0 + A${r},${n} 0 0,1 ${r},${t} + M${r},${t} + A${r},${n} 0 0,1 ${r},0 `;return this.createPath(s)}createCircle(){let{width:e,height:t}=this.getNodeSize(),r=e/2,n=t/2,s=` M${r},0 - A${r},${n} 0 0,1 ${r},${t} - M${r},${t} - A${r},${n} 0 0,1 ${r},0 - `;return this.createPath(s)}},s3=[A.SHAPE.RECTANGLE,A.SHAPE.DIAMOND,A.SHAPE.PARALLELOGRAM,A.SHAPE.ROUNDED_RECTANGLE,A.SHAPE.OCTAGONAL_RECTANGLE,A.SHAPE.OUTER_TRIANGULAR_RECTANGLE,A.SHAPE.INNER_TRIANGULAR_RECTANGLE,A.SHAPE.ELLIPSE,A.SHAPE.CIRCLE]});function vw(){let i=this.getData("generalization");return Array.isArray(i)?i:i?[i]:[]}function yw(){return this.formatGetGeneralization().length>0}function bw(){return!!this.formatGetGeneralization().find(e=>!e.range||e.range.length<=0)}function ww(i){return this._generalizationList.findIndex(e=>e.generalizationNode.uid===i.uid)}function Mw(){if(this.isGeneralization||!this.checkHasGeneralization())return;let i=0,e=0;this.formatGetGeneralization().forEach((r,n)=>{let s=this._generalizationList[n];s||(s=this._generalizationList[n]={}),s.node=this,s.range=r.range,s.generalizationLine||(s.generalizationLine=this.lineDraw.path()),s.generalizationNode||(s.generalizationNode=new Is({data:{inserting:r.inserting,data:r},uid:ct(),renderer:this.renderer,mindMap:this.mindMap,isGeneralization:!0})),delete r.inserting,s.generalizationNode.generalizationBelongNode=this,s.generalizationNode.width>i&&(i=s.generalizationNode.width),s.generalizationNode.height>e&&(e=s.generalizationNode.height),r.isActive&&this.renderer.addNodeToActiveList(s.generalizationNode)}),this._generalizationNodeWidth=i,this._generalizationNodeHeight=e}function Tw(){this.isGeneralization||(this.removeGeneralization(),this.createGeneralizationNode())}function Nw(i){if(this.isGeneralization)return;this.updateGeneralizationData();let e=this.formatGetGeneralization();if(e.length<=0||this.getData("expand")===!1){this.removeGeneralization();return}e.length!==this._generalizationList.length&&this.removeGeneralization(),this.createGeneralizationNode(),this.renderer.layout.renderGeneralization(this._generalizationList),this._generalizationList.forEach(t=>{this.style.generalizationLine(t.generalizationLine),t.generalizationNode.render(()=>{},i)})}function Ew(){let i=this.getChildrenLength(),e=this.formatGetGeneralization(),t=[];e.forEach(r=>{if(!r.range){t.push(r);return}r.range.length>0&&r.range[0]<=i-1&&r.range[1]<=i-1&&t.push(r)}),t.length!==e.length&&this.setData({generalization:t})}function Sw(){this.isGeneralization||(this._generalizationList.forEach(i=>{i.generalizationNode.style.onRemove(),i.generalizationLine&&(i.generalizationLine.remove(),i.generalizationLine=null),i.generalizationNode&&(this.renderer.removeNodeFromActiveList(i.generalizationNode),i.generalizationNode.remove(),i.generalizationNode=null)}),this._generalizationList=[],this.generalizationBelongNode&&this.nodeDraw.find(".generalization_"+this.generalizationBelongNode.uid).remove())}function Aw(){this.isGeneralization||this._generalizationList.forEach(i=>{i.generalizationLine&&i.generalizationLine.hide(),i.generalizationNode&&i.generalizationNode.hide()})}function kw(){this.isGeneralization||this._generalizationList.forEach(i=>{i.generalizationLine&&i.generalizationLine.show(),i.generalizationNode&&i.generalizationNode.show()})}function Cw(i){this._generalizationList.forEach(e=>{e.generalizationLine.opacity(i),e.generalizationNode.group.opacity(i)})}function _w(){let i=this.generalizationBelongNode,e=i.formatGetGeneralization(),t=i.getGeneralizationNodeIndex(this),r=e[t],s=this.getStyle("hoverRectColor")||this.mindMap.opt.hoverRectColor,a=s?{stroke:s}:null;Array.isArray(r.range)&&r.range.length>0?this.mindMap.renderer.highlightNode(i,r.range,a):this.mindMap.renderer.highlightNode(i,null,a)}function Lw(){this.mindMap.renderer.closeHighlightNode()}var Tc,a3=M(()=>{a0();he();Tc={formatGetGeneralization:vw,checkHasGeneralization:yw,checkHasSelfGeneralization:bw,getGeneralizationNodeIndex:ww,createGeneralizationNode:Mw,updateGeneralization:Tw,updateGeneralizationData:Ew,renderGeneralization:Nw,removeGeneralization:Sw,hideGeneralization:Aw,showGeneralization:kw,setGeneralizationOpacity:Cw,handleGeneralizationMouseenter:_w,handleGeneralizationMouseleave:Lw}});var zw,Iw,Rw,Dw,Ow,co,Nc=M(()=>{zw='',Iw='',Rw='',Dw='',Ow='',co={open:zw,close:Iw,remove:Rw,imgAdjust:Dw,quickCreateChild:Ow}});function Bw(){if(this._openExpandNode)return;let{expandBtnSize:i,expandBtnIcon:e,isShowExpandNum:t}=this.mindMap.opt,{close:r,open:n}=e||{};t?(this._openExpandNode=new Te,this._openExpandNode.addClass("smm-expand-btn-text"),this._openExpandNode.attr({"text-anchor":"middle","dominant-baseline":"middle",x:i/2,y:2})):(this._openExpandNode=Me(n||co.open).size(i,i),this._openExpandNode.x(0).y(-i/2)),this._closeExpandNode=Me(r||co.close).size(i,i),this._closeExpandNode.x(0).y(-i/2),this._fillExpandNode=new zi().size(i),this._fillExpandNode.x(0).y(-i/2),this.style.iconBtn(this._openExpandNode,this._closeExpandNode,this._fillExpandNode)}function Pw(i=[]){return i.reduce((e,t)=>e+this.sumNode(t.children||[]),i.length)}function Fw(){let{expand:i}=this.getData();if(i===this._lastExpandBtnType)return;this._expandBtn&&this._expandBtn.clear(),this.createExpandNodeContent();let e;if(i===!1?(e=this._openExpandNode,this._lastExpandBtnType=!1):(e=this._closeExpandNode,this._lastExpandBtnType=!0),this._expandBtn){let{isShowExpandNum:t,expandBtnStyle:r,expandBtnNumHandler:n}=this.mindMap.opt;if(t)if(i)this._fillExpandNode.stroke("none");else{this._fillExpandNode.stroke({color:r.strokeColor});let s=this.sumNode(this.nodeData.children||[]);if(typeof n=="function"){let a=n(s,this);Bt(a)||(s=a)}e.text(String(s))}this._expandBtn.add(this._fillExpandNode).add(e)}}function qw(){this._expandBtn&&this.renderer.layout.renderExpandBtn(this,this._expandBtn)}function Hw(){this.getChildrenLength()<=0||this.isRoot||(this._expandBtn?this.group.add(this._expandBtn):(this._expandBtn=new Ne,this._expandBtn.on("mouseover",i=>{i.stopPropagation(),this._expandBtn.css({cursor:"pointer"})}),this._expandBtn.on("mouseout",i=>{i.stopPropagation(),this._expandBtn.css({cursor:"auto"})}),this._expandBtn.on("click",i=>{i.stopPropagation(),this.mindMap.execCommand("SET_NODE_EXPAND",this,!this.getData("expand")),this.mindMap.emit("expand_btn_click",this)}),this._expandBtn.on("dblclick",i=>{i.stopPropagation()}),this._expandBtn.addClass("smm-expand-btn"),this.group.add(this._expandBtn)),this._showExpandBtn=!0,this.updateExpandBtnNode(),this.updateExpandBtnPos())}function Uw(){this._expandBtn&&this._showExpandBtn&&(this._expandBtn.remove(),this._showExpandBtn=!1)}function $w(){let{alwaysShowExpandBtn:i,notShowExpandBtn:e}=this.mindMap.opt;i||e||setTimeout(()=>{this.renderExpandBtn()},0)}function jw(){let{alwaysShowExpandBtn:i,notShowExpandBtn:e}=this.mindMap.opt;if(i||this._isMouseenter||e)return;let{isActive:t,expand:r}=this.getData();!t&&r&&setTimeout(()=>{this.removeExpandBtn()},0)}var Ec,o3=M(()=>{Nc();ht();he();Ec={createExpandNodeContent:Bw,updateExpandBtnNode:Fw,updateExpandBtnPos:qw,renderExpandBtn:Hw,removeExpandBtn:Uw,showExpandBtn:$w,hideExpandBtn:jw,sumNode:Pw}});function Gw(i={}){this.mindMap.execCommand("SET_NODE_DATA",this,i)}function Yw(i,e,t){this.mindMap.execCommand("SET_NODE_TEXT",this,i,e,t)}function Ww(i){this.mindMap.execCommand("SET_NODE_IMAGE",this,i)}function Vw(i){this.mindMap.execCommand("SET_NODE_ICON",this,i)}function Xw(i,e){this.mindMap.execCommand("SET_NODE_HYPERLINK",this,i,e)}function Kw(i){this.mindMap.execCommand("SET_NODE_NOTE",this,i)}function Zw(i,e){this.mindMap.execCommand("SET_NODE_ATTACHMENT",this,i,e)}function Qw(i){this.mindMap.execCommand("SET_NODE_TAG",this,i)}function Jw(i){this.mindMap.execCommand("SET_NODE_SHAPE",this,i)}function eM(i,e){this.mindMap.execCommand("SET_NODE_STYLE",this,i,e)}function tM(i){this.mindMap.execCommand("SET_NODE_STYLES",this,i)}var Sc,l3=M(()=>{Sc={setData:Gw,setText:Yw,setImage:Ww,setIcon:Vw,setHyperlink:Xw,setNote:Kw,setAttachment:Zw,setTag:Qw,setShape:Jw,setStyle:eM,setStyles:tM}});var iM,rM,nM,h3,sM,uo,d3=M(()=>{he();iM='',rM='',nM='',h3=[{name:"\u4F18\u5148\u7EA7\u56FE\u6807",type:"priority",list:[{name:"1",icon:''},{name:"2",icon:''},{name:"3",icon:''},{name:"4",icon:''},{name:"5",icon:''},{name:"6",icon:''},{name:"7",icon:''},{name:"8",icon:''},{name:"9",icon:''},{name:"10",icon:''}]},{name:"\u8FDB\u5EA6\u56FE\u6807",type:"progress",list:[{name:"1",icon:''},{name:"2",icon:''},{name:"3",icon:''},{name:"4",icon:''},{name:"5",icon:''},{name:"6",icon:''},{name:"7",icon:''},{name:"8",icon:''}]},{name:"\u8868\u60C5\u56FE\u6807",type:"expression",list:[{name:"1",icon:''},{name:"2",icon:''},{name:"3",icon:''},{name:"4",icon:''},{name:"5",icon:''},{name:"6",icon:''},{name:"7",icon:''},{name:"8",icon:''},{name:"9",icon:''},{name:"10",icon:''},{name:"11",icon:''},{name:"12",icon:''},{name:"13",icon:''},{name:"14",icon:''},{name:"15",icon:''},{name:"16",icon:''},{name:"17",icon:''},{name:"18",icon:''},{name:"19",icon:''},{name:"20",icon:''}]},{name:"\u6807\u8BB0\u56FE\u6807",type:"sign",list:[{name:"1",icon:''},{name:"2",icon:''},{name:"3",icon:''},{name:"4",icon:''},{name:"5",icon:''},{name:"6",icon:''},{name:"7",icon:''},{name:"8",icon:''},{name:"9",icon:''},{name:"10",icon:''},{name:"11",icon:''},{name:"12",icon:''},{name:"13",icon:''},{name:"14",icon:''},{name:"15",icon:''},{name:"16",icon:''},{name:"17",icon:''},{name:"18",icon:''},{name:"19",icon:''},{name:"20",icon:''},{name:"21",icon:''},{name:"22",icon:''},{name:"23",icon:''}]}],sM=(i,e=[])=>{let t=i.split("_"),n=Wp([...h3,...e]).find(s=>s.type===t[0]);if(n){let s=n.list.find(a=>a.name===t[1]);return s?s.icon:""}else return""},uo={hyperlink:iM,note:rM,attachment:nM,nodeIconList:h3,getNodeIconListIcon:sM}});function oM(){let i=this.getData("image");if(!i)return;i=(this.mindMap.renderer.renderTree.data.imgMap||{})[i]||i;let e=this.getImgShowSize(),t=new Ci().load(i).size(...e),{defaultNodeImage:r}=this.mindMap.opt;if(r){let n=new Image;n.onerror=()=>{t.load(r)},n.src=i}return this.getData("imageTitle")&&t.attr("title",this.getData("imageTitle")),t.on("click",n=>{this.mindMap.emit("node_img_click",this,t,n)}),t.on("dblclick",n=>{this.mindMap.emit("node_img_dblclick",this,n,t)}),t.on("mouseenter",n=>{this.mindMap.emit("node_img_mouseenter",this,t,n)}),t.on("mouseleave",n=>{this.mindMap.emit("node_img_mouseleave",this,t,n)}),t.on("mousemove",n=>{this.mindMap.emit("node_img_mousemove",this,t,n)}),{node:t,width:e[0],height:e[1]}}function lM(){let{custom:i,width:e,height:t}=this.getData("imageSize");return i?[e,t]:Jl(e,t,this.mindMap.themeConfig.imgMaxWidth,this.mindMap.themeConfig.imgMaxHeight)}function hM(){let i=this.getData();if(!i.icon||i.icon.length<=0)return[];let e=this.mindMap.themeConfig.iconSize;return i.icon.map(t=>{let r=uo.getNodeIconListIcon(t,this.mindMap.opt.iconList||[]),n=null;return/^{this.mindMap.emit("node_icon_click",this,t,s,n)}),n.on("mouseenter",s=>{this.mindMap.emit("node_icon_mouseenter",this,t,s,n)}),n.on("mouseleave",s=>{this.mindMap.emit("node_icon_mouseleave",this,t,s,n)}),{node:n,width:e,height:e}})}function dM(i){let e=this.hasCustomWidth(),t=typeof i=="string"?i:this.getData("text"),{textAutoWrapWidth:r,emptyTextMeasureHeightText:n}=this.mindMap.opt;r=e?this.customTextWidth:r;let s=new Ne,a=!1;this.getData("resetRichText")&&(delete this.nodeData.data.resetRichText,a=!0),a&&!Bt(t)&&(Up(t)?t=jp(t):t=`

    ${t}

    `,this.setData({text:t}));let o=[],l=r3(this);Object.keys(l).forEach(v=>{o.push([v,l[v]])}),this.mindMap.commonCaches.measureRichtextNodeTextSizeEl||(this.mindMap.commonCaches.measureRichtextNodeTextSizeEl=document.createElement("div"),this.mindMap.commonCaches.measureRichtextNodeTextSizeEl.style.position="fixed",this.mindMap.commonCaches.measureRichtextNodeTextSizeEl.style.left="-999999px",this.mindMap.el.appendChild(this.mindMap.commonCaches.measureRichtextNodeTextSizeEl));let h=this.mindMap.commonCaches.measureRichtextNodeTextSizeEl;o.forEach(([v,b])=>{h.style[v]=b}),h.style.lineHeight=1.2;let d=`
    ${t}
    `;h.innerHTML=d;let c=h.children[0];c.classList.add("smm-richtext-node-wrap"),$i(c),c.style.maxWidth=r+"px",e?c.style.width=this.customTextWidth+"px":c.style.width="";let{width:f,height:m}=c.getBoundingClientRect();if(m<=0){h.innerHTML=`

    ${n}

    `;let v=h.children[0];v.classList.add("smm-richtext-node-wrap"),m=v.getBoundingClientRect().height,h.innerHTML=d}f=Math.min(Math.ceil(f)+1,r),m=Math.ceil(m),s.attr("data-width",f),s.attr("data-height",m);let g=Vr({el:h.children[0],width:f,height:m}),x={"line-height":1.2};return o.forEach(([v,b])=>{x[Bp(v)]=b}),g.css(x),s.add(g),{node:s,nodeContent:g,width:f,height:m}}function cM(i){if(this.getData("needUpdate")&&delete this.nodeData.data.needUpdate,this.getData("richText"))return this.createRichTextNode(i);let e=typeof i=="string"?i:this.getData("text");this.getData("resetRichText")&&delete this.nodeData.data.resetRichText;let t=new Ne,r=this.getStyle("fontSize",!1),n=this.getStyle("textAlign",!1),s=[];Bt(e)||(s=String(e).split(/\n/gim));let{textAutoWrapWidth:a,emptyTextMeasureHeightText:o}=this.mindMap.opt,l=s.length>1;s.forEach((c,f)=>{let m=c.split(""),g=[],x=[];for(;m.length;){let v=m.shift(),b=[...x,v].join("");aM(b,this.style).width<=a?x.push(v):(g.push(x.join("")),x=[v])}x.length>0&&g.push(x.join("")),g.length>1&&(l=!0),s[f]=g.join(` + A${r},${n} 0 0,1 ${r},${t} + M${r},${t} + A${r},${n} 0 0,1 ${r},0 + `;return this.createPath(s)}},P2=[k.SHAPE.RECTANGLE,k.SHAPE.DIAMOND,k.SHAPE.PARALLELOGRAM,k.SHAPE.ROUNDED_RECTANGLE,k.SHAPE.OCTAGONAL_RECTANGLE,k.SHAPE.OUTER_TRIANGULAR_RECTANGLE,k.SHAPE.INNER_TRIANGULAR_RECTANGLE,k.SHAPE.ELLIPSE,k.SHAPE.CIRCLE]});function zT(){let i=this.getData("generalization");return Array.isArray(i)?i:i?[i]:[]}function RT(){return this.formatGetGeneralization().length>0}function DT(){return!!this.formatGetGeneralization().find(e=>!e.range||e.range.length<=0)}function OT(i){return this._generalizationList.findIndex(e=>e.generalizationNode.uid===i.uid)}function BT(){if(this.isGeneralization||!this.checkHasGeneralization())return;let i=0,e=0;this.formatGetGeneralization().forEach((r,n)=>{let s=this._generalizationList[n];s||(s=this._generalizationList[n]={}),s.node=this,s.range=r.range,s.generalizationLine||(s.generalizationLine=this.lineDraw.path()),s.generalizationNode||(s.generalizationNode=new da({data:{inserting:r.inserting,data:r},uid:wt(),renderer:this.renderer,mindMap:this.mindMap,isGeneralization:!0})),delete r.inserting,s.generalizationNode.generalizationBelongNode=this,s.generalizationNode.width>i&&(i=s.generalizationNode.width),s.generalizationNode.height>e&&(e=s.generalizationNode.height),r.isActive&&this.renderer.addNodeToActiveList(s.generalizationNode)}),this._generalizationNodeWidth=i,this._generalizationNodeHeight=e}function PT(){this.isGeneralization||(this.removeGeneralization(),this.createGeneralizationNode())}function FT(i){if(this.isGeneralization)return;this.updateGeneralizationData();let e=this.formatGetGeneralization();if(e.length<=0||this.getData("expand")===!1){this.removeGeneralization();return}e.length!==this._generalizationList.length&&this.removeGeneralization(),this.createGeneralizationNode(),this.renderer.layout.renderGeneralization(this._generalizationList),this._generalizationList.forEach(t=>{this.style.generalizationLine(t.generalizationLine),t.generalizationNode.render(()=>{},i)})}function qT(){let i=this.getChildrenLength(),e=this.formatGetGeneralization(),t=[];e.forEach(r=>{if(!r.range){t.push(r);return}r.range.length>0&&r.range[0]<=i-1&&r.range[1]<=i-1&&t.push(r)}),t.length!==e.length&&this.setData({generalization:t})}function HT(){this.isGeneralization||(this._generalizationList.forEach(i=>{i.generalizationNode.style.onRemove(),i.generalizationLine&&(i.generalizationLine.remove(),i.generalizationLine=null),i.generalizationNode&&(this.renderer.removeNodeFromActiveList(i.generalizationNode),i.generalizationNode.remove(),i.generalizationNode=null)}),this._generalizationList=[],this.generalizationBelongNode&&this.nodeDraw.find(".generalization_"+this.generalizationBelongNode.uid).remove())}function UT(){this.isGeneralization||this._generalizationList.forEach(i=>{i.generalizationLine&&i.generalizationLine.hide(),i.generalizationNode&&i.generalizationNode.hide()})}function $T(){this.isGeneralization||this._generalizationList.forEach(i=>{i.generalizationLine&&i.generalizationLine.show(),i.generalizationNode&&i.generalizationNode.show()})}function jT(i){this._generalizationList.forEach(e=>{e.generalizationLine.opacity(i),e.generalizationNode.group.opacity(i)})}function GT(){let i=this.generalizationBelongNode,e=i.formatGetGeneralization(),t=i.getGeneralizationNodeIndex(this),r=e[t],s=this.getStyle("hoverRectColor")||this.mindMap.opt.hoverRectColor,a=s?{stroke:s}:null;Array.isArray(r.range)&&r.range.length>0?this.mindMap.renderer.highlightNode(i,r.range,a):this.mindMap.renderer.highlightNode(i,null,a)}function VT(){this.mindMap.renderer.closeHighlightNode()}var Nu,F2=T(()=>{X0();pe();Nu={formatGetGeneralization:zT,checkHasGeneralization:RT,checkHasSelfGeneralization:DT,getGeneralizationNodeIndex:OT,createGeneralizationNode:BT,updateGeneralization:PT,updateGeneralizationData:qT,renderGeneralization:FT,removeGeneralization:HT,hideGeneralization:UT,showGeneralization:$T,setGeneralizationOpacity:jT,handleGeneralizationMouseenter:GT,handleGeneralizationMouseleave:VT}});var WT,YT,XT,KT,ZT,Uo,Eu=T(()=>{WT='',YT='',XT='',KT='',ZT='',Uo={open:WT,close:YT,remove:XT,imgAdjust:KT,quickCreateChild:ZT}});function QT(){if(this._openExpandNode)return;let{expandBtnSize:i,expandBtnIcon:e,isShowExpandNum:t}=this.mindMap.opt,{close:r,open:n}=e||{};t?(this._openExpandNode=new Ce,this._openExpandNode.addClass("smm-expand-btn-text"),this._openExpandNode.attr({"text-anchor":"middle","dominant-baseline":"middle",x:i/2,y:2})):(this._openExpandNode=Ae(n||Uo.open).size(i,i),this._openExpandNode.x(0).y(-i/2)),this._closeExpandNode=Ae(r||Uo.close).size(i,i),this._closeExpandNode.x(0).y(-i/2),this._fillExpandNode=new Wi().size(i),this._fillExpandNode.x(0).y(-i/2),this.style.iconBtn(this._openExpandNode,this._closeExpandNode,this._fillExpandNode)}function JT(i=[]){return i.reduce((e,t)=>e+this.sumNode(t.children||[]),i.length)}function eN(){let{expand:i}=this.getData();if(i===this._lastExpandBtnType)return;this._expandBtn&&this._expandBtn.clear(),this.createExpandNodeContent();let e;if(i===!1?(e=this._openExpandNode,this._lastExpandBtnType=!1):(e=this._closeExpandNode,this._lastExpandBtnType=!0),this._expandBtn){let{isShowExpandNum:t,expandBtnStyle:r,expandBtnNumHandler:n}=this.mindMap.opt;if(t)if(i)this._fillExpandNode.stroke("none");else{this._fillExpandNode.stroke({color:r.strokeColor});let s=this.sumNode(this.nodeData.children||[]);if(typeof n=="function"){let a=n(s,this);Yt(a)||(s=a)}e.text(String(s))}this._expandBtn.add(this._fillExpandNode).add(e)}}function tN(){this._expandBtn&&this.renderer.layout.renderExpandBtn(this,this._expandBtn)}function iN(){this.getChildrenLength()<=0||this.isRoot||(this._expandBtn?this.group.add(this._expandBtn):(this._expandBtn=new _e,this._expandBtn.on("mouseover",i=>{i.stopPropagation(),this._expandBtn.css({cursor:"pointer"})}),this._expandBtn.on("mouseout",i=>{i.stopPropagation(),this._expandBtn.css({cursor:"auto"})}),this._expandBtn.on("click",i=>{i.stopPropagation(),this.mindMap.execCommand("SET_NODE_EXPAND",this,!this.getData("expand")),this.mindMap.emit("expand_btn_click",this)}),this._expandBtn.on("dblclick",i=>{i.stopPropagation()}),this._expandBtn.addClass("smm-expand-btn"),this.group.add(this._expandBtn)),this._showExpandBtn=!0,this.updateExpandBtnNode(),this.updateExpandBtnPos())}function rN(){this._expandBtn&&this._showExpandBtn&&(this._expandBtn.remove(),this._showExpandBtn=!1)}function nN(){let{alwaysShowExpandBtn:i,notShowExpandBtn:e}=this.mindMap.opt;i||e||setTimeout(()=>{this.renderExpandBtn()},0)}function sN(){let{alwaysShowExpandBtn:i,notShowExpandBtn:e}=this.mindMap.opt;if(i||this._isMouseenter||e)return;let{isActive:t,expand:r}=this.getData();!t&&r&&setTimeout(()=>{this.removeExpandBtn()},0)}var Su,q2=T(()=>{Eu();yt();pe();Su={createExpandNodeContent:QT,updateExpandBtnNode:eN,updateExpandBtnPos:tN,renderExpandBtn:iN,removeExpandBtn:rN,showExpandBtn:nN,hideExpandBtn:sN,sumNode:JT}});function aN(i={}){this.mindMap.execCommand("SET_NODE_DATA",this,i)}function oN(i,e,t){this.mindMap.execCommand("SET_NODE_TEXT",this,i,e,t)}function lN(i){this.mindMap.execCommand("SET_NODE_IMAGE",this,i)}function hN(i){this.mindMap.execCommand("SET_NODE_ICON",this,i)}function dN(i,e){this.mindMap.execCommand("SET_NODE_HYPERLINK",this,i,e)}function cN(i){this.mindMap.execCommand("SET_NODE_NOTE",this,i)}function uN(i,e){this.mindMap.execCommand("SET_NODE_ATTACHMENT",this,i,e)}function fN(i){this.mindMap.execCommand("SET_NODE_TAG",this,i)}function mN(i){this.mindMap.execCommand("SET_NODE_SHAPE",this,i)}function pN(i,e){this.mindMap.execCommand("SET_NODE_STYLE",this,i,e)}function gN(i){this.mindMap.execCommand("SET_NODE_STYLES",this,i)}var Au,H2=T(()=>{Au={setData:aN,setText:oN,setImage:lN,setIcon:hN,setHyperlink:dN,setNote:cN,setAttachment:uN,setTag:fN,setShape:mN,setStyle:pN,setStyles:gN}});var xN,yN,vN,U2,bN,$o,$2=T(()=>{pe();xN='',yN='',vN='',U2=[{name:"\u4F18\u5148\u7EA7\u56FE\u6807",type:"priority",list:[{name:"1",icon:''},{name:"2",icon:''},{name:"3",icon:''},{name:"4",icon:''},{name:"5",icon:''},{name:"6",icon:''},{name:"7",icon:''},{name:"8",icon:''},{name:"9",icon:''},{name:"10",icon:''}]},{name:"\u8FDB\u5EA6\u56FE\u6807",type:"progress",list:[{name:"1",icon:''},{name:"2",icon:''},{name:"3",icon:''},{name:"4",icon:''},{name:"5",icon:''},{name:"6",icon:''},{name:"7",icon:''},{name:"8",icon:''}]},{name:"\u8868\u60C5\u56FE\u6807",type:"expression",list:[{name:"1",icon:''},{name:"2",icon:''},{name:"3",icon:''},{name:"4",icon:''},{name:"5",icon:''},{name:"6",icon:''},{name:"7",icon:''},{name:"8",icon:''},{name:"9",icon:''},{name:"10",icon:''},{name:"11",icon:''},{name:"12",icon:''},{name:"13",icon:''},{name:"14",icon:''},{name:"15",icon:''},{name:"16",icon:''},{name:"17",icon:''},{name:"18",icon:''},{name:"19",icon:''},{name:"20",icon:''}]},{name:"\u6807\u8BB0\u56FE\u6807",type:"sign",list:[{name:"1",icon:''},{name:"2",icon:''},{name:"3",icon:''},{name:"4",icon:''},{name:"5",icon:''},{name:"6",icon:''},{name:"7",icon:''},{name:"8",icon:''},{name:"9",icon:''},{name:"10",icon:''},{name:"11",icon:''},{name:"12",icon:''},{name:"13",icon:''},{name:"14",icon:''},{name:"15",icon:''},{name:"16",icon:''},{name:"17",icon:''},{name:"18",icon:''},{name:"19",icon:''},{name:"20",icon:''},{name:"21",icon:''},{name:"22",icon:''},{name:"23",icon:''}]}],bN=(i,e=[])=>{let t=i.split("_"),n=S2([...U2,...e]).find(s=>s.type===t[0]);if(n){let s=n.list.find(a=>a.name===t[1]);return s?s.icon:""}else return""},$o={hyperlink:xN,note:yN,attachment:vN,nodeIconList:U2,getNodeIconListIcon:bN}});function MN(){let i=this.getData("image");if(!i)return;i=(this.mindMap.renderer.renderTree.data.imgMap||{})[i]||i;let e=this.getImgShowSize(),t=new ji().load(i).size(...e),{defaultNodeImage:r}=this.mindMap.opt;if(r){let n=new Image;n.onerror=()=>{t.load(r)},n.src=i}return this.getData("imageTitle")&&t.attr("title",this.getData("imageTitle")),t.on("click",n=>{this.mindMap.emit("node_img_click",this,t,n)}),t.on("dblclick",n=>{this.mindMap.emit("node_img_dblclick",this,n,t)}),t.on("mouseenter",n=>{this.mindMap.emit("node_img_mouseenter",this,t,n)}),t.on("mouseleave",n=>{this.mindMap.emit("node_img_mouseleave",this,t,n)}),t.on("mousemove",n=>{this.mindMap.emit("node_img_mousemove",this,t,n)}),{node:t,width:e[0],height:e[1]}}function TN(){let{custom:i,width:e,height:t}=this.getData("imageSize");return i?[e,t]:U0(e,t,this.mindMap.themeConfig.imgMaxWidth,this.mindMap.themeConfig.imgMaxHeight)}function NN(){let i=this.getData();if(!i.icon||i.icon.length<=0)return[];let e=this.mindMap.themeConfig.iconSize;return i.icon.map(t=>{let r=$o.getNodeIconListIcon(t,this.mindMap.opt.iconList||[]),n=null;return/^{this.mindMap.emit("node_icon_click",this,t,s,n)}),n.on("mouseenter",s=>{this.mindMap.emit("node_icon_mouseenter",this,t,s,n)}),n.on("mouseleave",s=>{this.mindMap.emit("node_icon_mouseleave",this,t,s,n)}),{node:n,width:e,height:e}})}function EN(i){let e=this.hasCustomWidth(),t=typeof i=="string"?i:this.getData("text"),{textAutoWrapWidth:r,emptyTextMeasureHeightText:n}=this.mindMap.opt;r=e?this.customTextWidth:r;let s=new _e,a=!1;this.getData("resetRichText")&&(delete this.nodeData.data.resetRichText,a=!0),a&&!Yt(t)&&(w2(t)?t=T2(t):t=`

    ${t}

    `,this.setData({text:t}));let o=[],l=O2(this);Object.keys(l).forEach(y=>{o.push([y,l[y]])}),this.mindMap.commonCaches.measureRichtextNodeTextSizeEl||(this.mindMap.commonCaches.measureRichtextNodeTextSizeEl=document.createElement("div"),this.mindMap.commonCaches.measureRichtextNodeTextSizeEl.style.position="fixed",this.mindMap.commonCaches.measureRichtextNodeTextSizeEl.style.left="-999999px",this.mindMap.el.appendChild(this.mindMap.commonCaches.measureRichtextNodeTextSizeEl));let h=this.mindMap.commonCaches.measureRichtextNodeTextSizeEl;o.forEach(([y,b])=>{h.style[y]=b}),h.style.lineHeight=1.2;let d=`
    ${t}
    `;h.innerHTML=d;let c=h.children[0];c.classList.add("smm-richtext-node-wrap"),or(c),c.style.maxWidth=r+"px",e?c.style.width=this.customTextWidth+"px":c.style.width="";let{width:f,height:m}=c.getBoundingClientRect();if(m<=0){h.innerHTML=`

    ${n}

    `;let y=h.children[0];y.classList.add("smm-richtext-node-wrap"),m=y.getBoundingClientRect().height,h.innerHTML=d}f=Math.min(Math.ceil(f)+1,r),m=Math.ceil(m),s.attr("data-width",f),s.attr("data-height",m);let g=pn({el:h.children[0],width:f,height:m}),x={"line-height":1.2};return o.forEach(([y,b])=>{x[g2(y)]=b}),g.css(x),s.add(g),{node:s,nodeContent:g,width:f,height:m}}function SN(i){if(this.getData("needUpdate")&&delete this.nodeData.data.needUpdate,this.getData("richText"))return this.createRichTextNode(i);let e=typeof i=="string"?i:this.getData("text");this.getData("resetRichText")&&delete this.nodeData.data.resetRichText;let t=new _e,r=this.getStyle("fontSize",!1),n=this.getStyle("textAlign",!1),s=[];Yt(e)||(s=String(e).split(/\n/gim));let{textAutoWrapWidth:a,emptyTextMeasureHeightText:o}=this.mindMap.opt,l=s.length>1;s.forEach((c,f)=>{let m=c.split(""),g=[],x=[];for(;m.length;){let y=m.shift(),b=[...x,y].join("");wN(b,this.style).width<=a?x.push(y):(g.push(x.join("")),x=[y])}x.length>0&&g.push(x.join("")),g.length>1&&(l=!0),s[f]=g.join(` `)}),s=s.join(` -`).replace(/\n$/g,"").split(/\n/gim),s.forEach((c,f)=>{c===""&&(c="\uFEFF");let m=new Te().text(c);m.addClass("smm-text-node-wrap"),m.attr("text-anchor",{left:"start",center:"middle",right:"end"}[n]||"start"),this.style.text(m),m.y(r*fs*f+(fs-1)*r/2),t.add(m)});let{width:h,height:d}=t.bbox();if(d<=0){let c=new Te().text(o);this.style.text(c),d=c.bbox().height}return h=Math.min(Math.ceil(h),a),d=Math.ceil(d),t.attr("data-width",h),t.attr("data-height",d),t.attr("data-ismultiLine",l||s.length>1),{node:t,width:h,height:d}}function uM(){let{hyperlink:i,hyperlinkTitle:e}=this.getData();if(!i)return;let{customHyperlinkJump:t,hyperlinkIcon:r}=this.mindMap.opt,{icon:n,style:s}=r,a=this.getNodeIconSize("hyperlinkIcon"),o=new Me().size(a,a),l=new jr().to(i).target("_blank");l.node.addEventListener("click",d=>{typeof t=="function"&&(d.preventDefault(),t(i,this))}),e&&o.add(Me(`${e}`)),l.rect(a,a).fill({color:"transparent"});let h=Me(n||uo.hyperlink).size(a,a);return this.style.iconNode(h,s.color),l.add(h),o.add(l),{node:o,width:a,height:a}}function fM(){let i=this.getData("tag");if(!i||i.length<=0)return[];let{maxTag:e,tagsColorMap:t}=this.mindMap.opt;t=t||{};let r=[];return i.slice(0,e).forEach((n,s)=>{let a="",o={...c3};typeof n=="string"?a=n:(a=n.text,o={...c3,...n.style});let l=typeof o.width<"u",h=new Ne;h.on("click",()=>{this.mindMap.emit("node_tag_click",this,n,s,h)});let d=new Te().text(a);this.style.tagText(d,o);let{width:c,height:f}=d.bbox(),m=l?o.width:c+o.paddingX*2,g=l?Math.max(m,c):m,x=Math.max(o.height,f);l?d.x((g-c)/2):d.x(l?0:o.paddingX),d.cy(-x/2);let v=new Pe().size(m,o.height).cy(-x/2);l&&v.x((g-m)/2),this.style.tagRect(v,{...o,fill:o.fill||t[d.node.textContent]||i0(d.node.textContent)}),h.add(v).add(d),r.push({node:h,width:g,height:x})}),r}function mM(){if(!this.getData("note"))return null;let{icon:i,style:e}=this.mindMap.opt.noteIcon,t=this.getNodeIconSize("noteIcon"),r=new Me().attr("cursor","pointer").addClass("smm-node-note").size(t,t);r.add(new Pe().size(t,t).fill({color:"transparent"}));let n=Me(i||uo.note).size(t,t);return this.style.iconNode(n,e.color),r.add(n),this.mindMap.opt.customNoteContentShow||(this.noteEl||(this.noteEl=document.createElement("div"),this.noteEl.style.cssText=` +`).replace(/\n$/g,"").split(/\n/gim),s.forEach((c,f)=>{c===""&&(c="\uFEFF");let m=new Ce().text(c);m.addClass("smm-text-node-wrap"),m.attr("text-anchor",{left:"start",center:"middle",right:"end"}[n]||"start"),this.style.text(m),m.y(r*js*f+(js-1)*r/2),t.add(m)});let{width:h,height:d}=t.bbox();if(d<=0){let c=new Ce().text(o);this.style.text(c),d=c.bbox().height}return h=Math.min(Math.ceil(h),a),d=Math.ceil(d),t.attr("data-width",h),t.attr("data-height",d),t.attr("data-ismultiLine",l||s.length>1),{node:t,width:h,height:d}}function AN(){let{hyperlink:i,hyperlinkTitle:e}=this.getData();if(!i)return;let{customHyperlinkJump:t,hyperlinkIcon:r}=this.mindMap.opt,{icon:n,style:s}=r,a=this.getNodeIconSize("hyperlinkIcon"),o=new Ae().size(a,a),l=new cn().to(i).target("_blank");l.node.addEventListener("click",d=>{typeof t=="function"&&(d.preventDefault(),t(i,this))}),e&&o.add(Ae(`${e}`)),l.rect(a,a).fill({color:"transparent"});let h=Ae(n||$o.hyperlink).size(a,a);return this.style.iconNode(h,s.color),l.add(h),o.add(l),{node:o,width:a,height:a}}function kN(){let i=this.getData("tag");if(!i||i.length<=0)return[];let{maxTag:e,tagsColorMap:t}=this.mindMap.opt;t=t||{};let r=[];return i.slice(0,e).forEach((n,s)=>{let a="",o={...j2};typeof n=="string"?a=n:(a=n.text,o={...j2,...n.style});let l=typeof o.width<"u",h=new _e;h.on("click",()=>{this.mindMap.emit("node_tag_click",this,n,s,h)});let d=new Ce().text(a);this.style.tagText(d,o);let{width:c,height:f}=d.bbox(),m=l?o.width:c+o.paddingX*2,g=l?Math.max(m,c):m,x=Math.max(o.height,f);l?d.x((g-c)/2):d.x(l?0:o.paddingX),d.cy(-x/2);let y=new Ve().size(m,o.height).cy(-x/2);l&&y.x((g-m)/2),this.style.tagRect(y,{...o,fill:o.fill||t[d.node.textContent]||G0(d.node.textContent)}),h.add(y).add(d),r.push({node:h,width:g,height:x})}),r}function CN(){if(!this.getData("note"))return null;let{icon:i,style:e}=this.mindMap.opt.noteIcon,t=this.getNodeIconSize("noteIcon"),r=new Ae().attr("cursor","pointer").addClass("smm-node-note").size(t,t);r.add(new Ve().size(t,t).fill({color:"transparent"}));let n=Ae(i||$o.note).size(t,t);return this.style.iconNode(n,e.color),r.add(n),this.mindMap.opt.customNoteContentShow||(this.noteEl||(this.noteEl=document.createElement("div"),this.noteEl.style.cssText=` position: fixed; padding: 10px; border-radius: 5px; @@ -62,24 +62,24 @@ var jv=Object.create;var Pl=Object.defineProperty;var Gv=Object.getOwnPropertyDe display: none; background-color: #fff; z-index: ${this.mindMap.opt.nodeNoteTooltipZIndex} - `,(this.mindMap.opt.customInnerElsAppendTo||document.body).appendChild(this.noteEl)),this.noteEl.innerText=this.getData("note")),r.on("mouseover",()=>{let{left:s,top:a}=this.getNoteContentPosition();this.mindMap.opt.customNoteContentShow?this.mindMap.opt.customNoteContentShow.show(this.getData("note"),s,a,this):(this.noteEl.style.left=s+"px",this.noteEl.style.top=a+"px",this.noteEl.style.display="block")}),r.on("mouseout",()=>{this.mindMap.opt.customNoteContentShow?this.mindMap.opt.customNoteContentShow.hide():this.noteEl.style.display="none"}),r.on("click",s=>{this.mindMap.emit("node_note_click",this,s,r)}),r.on("dblclick",s=>{this.mindMap.emit("node_note_dblclick",this,s,r)}),{node:r,width:t,height:t}}function pM(){let{attachmentUrl:i,attachmentName:e}=this.getData();if(!i)return;let t=this.getNodeIconSize("attachmentIcon"),{icon:r,style:n}=this.mindMap.opt.attachmentIcon,s=new Me().attr("cursor","pointer").size(t,t);e&&s.add(Me(`${e}`)),s.add(new Pe().size(t,t).fill({color:"transparent"}));let a=Me(r||uo.attachment).size(t,t);return this.style.iconNode(a,n.color),s.add(a),s.on("click",o=>{this.mindMap.emit("node_attachmentClick",this,o,s)}),s.on("contextmenu",o=>{this.mindMap.emit("node_attachmentContextmenu",this,o,s)}),{node:s,width:t,height:t}}function gM(i){let{style:e}=this.mindMap.opt[i];return Bt(e.size)?this.mindMap.themeConfig.iconSize:e.size}function xM(){let i=this.getNodeIconSize("noteIcon"),{scaleY:e}=this.mindMap.view.getTransformData().transform,t=i*e,{left:r,top:n}=this._noteData.node.node.getBoundingClientRect();return n+=t,{left:r,top:n}}function vM(i){this.mindMap.commonCaches.measureCustomNodeContentSizeEl||(this.mindMap.commonCaches.measureCustomNodeContentSizeEl=document.createElement("div"),this.mindMap.commonCaches.measureCustomNodeContentSizeEl.style.cssText=` + `,(this.mindMap.opt.customInnerElsAppendTo||document.body).appendChild(this.noteEl)),this.noteEl.innerText=this.getData("note")),r.on("mouseover",()=>{let{left:s,top:a}=this.getNoteContentPosition();this.mindMap.opt.customNoteContentShow?this.mindMap.opt.customNoteContentShow.show(this.getData("note"),s,a,this):(this.noteEl.style.left=s+"px",this.noteEl.style.top=a+"px",this.noteEl.style.display="block")}),r.on("mouseout",()=>{this.mindMap.opt.customNoteContentShow?this.mindMap.opt.customNoteContentShow.hide():this.noteEl.style.display="none"}),r.on("click",s=>{this.mindMap.emit("node_note_click",this,s,r)}),r.on("dblclick",s=>{this.mindMap.emit("node_note_dblclick",this,s,r)}),{node:r,width:t,height:t}}function _N(){let{attachmentUrl:i,attachmentName:e}=this.getData();if(!i)return;let t=this.getNodeIconSize("attachmentIcon"),{icon:r,style:n}=this.mindMap.opt.attachmentIcon,s=new Ae().attr("cursor","pointer").size(t,t);e&&s.add(Ae(`${e}`)),s.add(new Ve().size(t,t).fill({color:"transparent"}));let a=Ae(r||$o.attachment).size(t,t);return this.style.iconNode(a,n.color),s.add(a),s.on("click",o=>{this.mindMap.emit("node_attachmentClick",this,o,s)}),s.on("contextmenu",o=>{this.mindMap.emit("node_attachmentContextmenu",this,o,s)}),{node:s,width:t,height:t}}function LN(i){let{style:e}=this.mindMap.opt[i];return Yt(e.size)?this.mindMap.themeConfig.iconSize:e.size}function IN(){let i=this.getNodeIconSize("noteIcon"),{scaleY:e}=this.mindMap.view.getTransformData().transform,t=i*e,{left:r,top:n}=this._noteData.node.node.getBoundingClientRect();return n+=t,{left:r,top:n}}function zN(i){this.mindMap.commonCaches.measureCustomNodeContentSizeEl||(this.mindMap.commonCaches.measureCustomNodeContentSizeEl=document.createElement("div"),this.mindMap.commonCaches.measureCustomNodeContentSizeEl.style.cssText=` position: fixed; left: -99999px; top: -99999px; - `,this.mindMap.el.appendChild(this.mindMap.commonCaches.measureCustomNodeContentSizeEl)),this.mindMap.commonCaches.measureCustomNodeContentSizeEl.innerHTML="",this.mindMap.commonCaches.measureCustomNodeContentSizeEl.appendChild(i);let e=this.mindMap.commonCaches.measureCustomNodeContentSizeEl.getBoundingClientRect();return{width:e.width,height:e.height}}function yM(){return!!this._customNodeContent}var aM,c3,Ac,u3=M(()=>{he();ht();d3();Oe();aM=(i,e)=>{let t=new Ne,r=new Te().text(i);return e.text(r),t.add(r),t.bbox()},c3={radius:3,fontSize:12,fill:"",height:20,paddingX:8};Ac={createImgNode:oM,getImgShowSize:lM,createIconNode:hM,createRichTextNode:dM,createTextNode:cM,createHyperlinkNode:uM,createTagNode:fM,createNoteNode:mM,createAttachmentNode:pM,getNoteContentPosition:xM,getNodeIconSize:gM,measureCustomNodeContentSize:vM,isUseCustomNodeContent:yM}});function bM(){if(this.getChildrenLength()<=0||this.isRoot)return;let{alwaysShowExpandBtn:i,notShowExpandBtn:e,expandBtnSize:t}=this.mindMap.opt;if(!i&&!e){let{width:r,height:n}=this;this._unVisibleRectRegionNode||(this._unVisibleRectRegionNode=new Pe,this._unVisibleRectRegionNode.fill({color:"transparent"})),this.group.add(this._unVisibleRectRegionNode),this.renderer.layout.renderExpandBtnRect(this._unVisibleRectRegionNode,t,r,n,this)}}function wM(){this._unVisibleRectRegionNode&&(this._unVisibleRectRegionNode.remove(),this._unVisibleRectRegionNode=null)}function MM(){this.needRerenderExpandBtnPlaceholderRect&&(this.needRerenderExpandBtnPlaceholderRect=!1,this.renderExpandBtnPlaceholderRect()),this.getChildrenLength()>0?this._unVisibleRectRegionNode||this.renderExpandBtnPlaceholderRect():this._unVisibleRectRegionNode&&this.clearExpandBtnPlaceholderRect()}var kc,f3=M(()=>{ht();kc={renderExpandBtnPlaceholderRect:bM,clearExpandBtnPlaceholderRect:wM,updateExpandBtnPlaceholderRect:MM}});function TM(){this.checkEnableDragModifyNodeWidth()&&(this._dragHandleNodes=null,this.dragHandleWidth=4,this.dragHandleMousedownX=0,this.isDragHandleMousedown=!1,this.dragHandleIndex=0,this.dragHandleMousedownCustomTextWidth=0,this.dragHandleMousedownBodyCursor="",this.dragHandleMousedownLeft=0,this.onDragMousemoveHandle=this.onDragMousemoveHandle.bind(this),window.addEventListener("mousemove",this.onDragMousemoveHandle),this.onDragMouseupHandle=this.onDragMouseupHandle.bind(this),window.addEventListener("mouseup",this.onDragMouseupHandle),this.mindMap.on("node_mouseup",this.onDragMouseupHandle))}function NM(i){if(!this.isDragHandleMousedown)return;i.stopPropagation(),i.preventDefault();let{minNodeTextModifyWidth:e,maxNodeTextModifyWidth:t,isUseCustomNodeContent:r,customCreateNodeContent:n}=this.mindMap.opt,s=r&&n&&this._customNodeContent;document.body.style.cursor="ew-resize",this.group.css({cursor:"ew-resize"});let{scaleX:a}=this.mindMap.draw.transform(),o=i.clientX-this.dragHandleMousedownX,l=this.dragHandleMousedownCustomTextWidth+(this.dragHandleIndex===0?-o:o)/a;if(l=Math.max(l,e),t!==-1&&(l=Math.min(l,t)),!s&&this.getData("image")){let h=this.getImgShowSize();this._rectInfo.textContentWidth-this.customTextWidth+l<=h[0]&&(l=h[0]+this.customTextWidth-this._rectInfo.textContentWidth)}this.customTextWidth=l,this.dragHandleIndex===0&&(this.left=this.dragHandleMousedownLeft+o/a),this.reRender(s?[]:["text"],{ignoreUpdateCustomTextWidth:!0})}function EM(){this.isDragHandleMousedown&&(document.body.style.cursor=this.dragHandleMousedownBodyCursor,this.group.css({cursor:"default"}),this.isDragHandleMousedown=!1,this.dragHandleMousedownX=0,this.dragHandleIndex=0,this.dragHandleMousedownCustomTextWidth=0,this.setData({customTextWidth:this.customTextWidth}),this.mindMap.render(),this.mindMap.emit("dragModifyNodeWidthEnd",this))}function SM(){let i=[new Pe,new Pe];return i.forEach((e,t)=>{e.size(this.dragHandleWidth,this.height).fill({color:"transparent"}).css({cursor:"ew-resize"}),e.on("mousedown",r=>{r.stopPropagation(),r.preventDefault(),this.dragHandleMousedownX=r.clientX,this.dragHandleIndex=t,this.dragHandleMousedownCustomTextWidth=this.customTextWidth===void 0?this._textData?this._textData.width:this.width:this.customTextWidth,this.dragHandleMousedownBodyCursor=document.body.style.cursor,this.dragHandleMousedownLeft=this.left,this.isDragHandleMousedown=!0})}),i}function AM(){this.checkEnableDragModifyNodeWidth()&&(this._dragHandleNodes||(this._dragHandleNodes=this.createDragHandleNode()),this.getData("isActive")?(this._dragHandleNodes.forEach(i=>{i.height(this.height),this.group.add(i)}),this._dragHandleNodes[1].x(this.width-this.dragHandleWidth)):this._dragHandleNodes.forEach(i=>{i.remove()}))}var Cc,m3=M(()=>{ht();Cc={initDragHandle:TM,onDragMousemoveHandle:NM,onDragMouseupHandle:EM,createDragHandleNode:SM,updateDragHandle:AM}});function kM(){this.mindMap.cooperate&&(this._userListGroup=new Ne,this.group.add(this._userListGroup))}function CM(i){let{avatarSize:e,fontSize:t}=this.mindMap.opt.cooperateStyle,r=new Ne,n=i.isMore?i.name:String(i.name)[0],s=new zi().size(e,e);s.fill({color:i.color||i0(n)});let a=new Te().text(n).fill({color:"#fff"}).css({"font-size":t+"px"}).dx(-t/2).dy((e-t)/2);return r.add(s).add(a),r}function _M(i){let{avatarSize:e}=this.mindMap.opt.cooperateStyle;return new Ci().load(i.avatar).size(e,e)}function LM(){if(!this._userListGroup)return;let{avatarSize:i}=this.mindMap.opt.cooperateStyle;this._userListGroup.clear();let e=this.userList.length,t=Math.floor(this.width/i),r=[];e>t?r.push(...this.userList.slice(0,t-1),{isMore:!0,name:"+"+(e-t+1)}):r.push(...this.userList),r.forEach((n,s)=>{let a=null;n.avatar?a=this.createImageAvatar(n):a=this.createTextAvatar(n),a.on("click",o=>{this.mindMap.emit("node_cooperate_avatar_click",n,this,a,o)}),a.on("mouseenter",o=>{this.mindMap.emit("node_cooperate_avatar_mouseenter",n,this,a,o)}),a.on("mouseleave",o=>{this.mindMap.emit("node_cooperate_avatar_mouseleave",n,this,a,o)}),a.x(s*i).cy(-i/2),this._userListGroup.add(a)})}function zM(i){this.userList.find(e=>e.id==i.id)||(this.userList.push(i),this.updateUserListNode())}function IM(i){let e=this.userList.findIndex(t=>t.id==i.id);e!==-1&&(this.userList.splice(e,1),this.updateUserListNode())}function RM(){this.userList=[],this.updateUserListNode()}var _c,p3=M(()=>{ht();he();_c={createUserListNode:kM,updateUserListNode:LM,createTextAvatar:CM,createImageAvatar:_M,addUser:zM,removeUser:IM,emptyUser:RM}});function DM(){this.isGeneralization||(this._quickCreateChildBtn=null,this._showQuickCreateChildBtn=!1)}function OM(){if(!(this.isGeneralization||this.getChildrenLength()>0)){if(this._quickCreateChildBtn)this.group.add(this._quickCreateChildBtn);else{let{quickCreateChildBtnIcon:i,expandBtnStyle:e,expandBtnSize:t}=this.mindMap.opt,{icon:r,style:n}=i,{color:s,fill:a}=e||{color:"#808080",fill:"#fff"};s=n.color||s;let o=Me(r||co.quickCreateChild).size(t,t);o.css({cursor:"pointer"}),o.x(0).y(-t/2),this.style.iconNode(o,s);let l=new zi().size(t);l.x(0).y(-t/2),l.fill({color:a}).css({cursor:"pointer"}),this._quickCreateChildBtn=new Ne,this._quickCreateChildBtn.add(l).add(o),this._quickCreateChildBtn.on("click",h=>{h.stopPropagation(),this.mindMap.emit("quick_create_btn_click",this);let{customQuickCreateChildBtnClick:d}=this.mindMap.opt;if(typeof d=="function"){d(this);return}this.mindMap.execCommand("INSERT_CHILD_NODE",!0,[this])}),this._quickCreateChildBtn.on("dblclick",h=>{h.stopPropagation()}),this._quickCreateChildBtn.addClass("smm-quick-create-child-btn"),this.group.add(this._quickCreateChildBtn)}this._showQuickCreateChildBtn=!0,this.renderer.layout.renderExpandBtn(this,this._quickCreateChildBtn)}}function BM(){this.isGeneralization||this._quickCreateChildBtn&&this._showQuickCreateChildBtn&&(this._quickCreateChildBtn.remove(),this._showQuickCreateChildBtn=!1)}function PM(){if(this.isGeneralization)return;let{isActive:i}=this.getData();i||this.removeQuickCreateChildBtn()}var Lc,g3=M(()=>{Nc();ht();Lc={initQuickCreateChildBtn:DM,showQuickCreateChildBtn:OM,removeQuickCreateChildBtn:BM,hideQuickCreateChildBtn:PM}});function FM(i,e,t,r,n){let{imgTextMargin:s}=this.mindMap.opt;return i==="v"?r>0&&n>0?s:0:e>0&&t>0?s:0}function qM(i){let e=0,t=this._tagData.reduce((r,n)=>(e=Math.max(e,n.height),r+=n.width),0);return t+=(this._tagData.length-1)*i,{width:t,height:e}}function HM(){if(this.isUseCustomNodeContent()){let C=this.measureCustomNodeContentSize(this._customNodeContent);return{width:this.hasCustomWidth()?this.customTextWidth:C.width,height:C.height}}let{TAG_PLACEMENT:i,IMG_PLACEMENT:e}=A,{textContentMargin:t}=this.mindMap.opt,n=(this.getStyle("tagPlacement")||i.RIGHT)===i.BOTTOM,s=this.getStyle("imgPlacement")||e.TOP,a=0,o=0,l=0,h=0,d=0,c=0,f=0;if(this._imgData&&(a=this._imgData.width,o=this._imgData.height),this.mindMap.nodeInnerPrefixList.forEach(C=>{let _=this[`_${C.name}Data`];_&&(l+=_.width,h=Math.max(h,_.height),f++)}),this._prefixData&&(l+=this._prefixData.width,h=Math.max(h,this._prefixData.height),f++),this._iconData.length>0&&(l+=this._iconData.reduce((C,_)=>(h=Math.max(h,_.height),C+=_.width),0)+(this._iconData.length-1)*t,f++),this._textData&&(l+=this._textData.width,h=Math.max(h,this._textData.height),f++),this._hyperlinkData&&(l+=this._hyperlinkData.width,h=Math.max(h,this._hyperlinkData.height),f++),this._tagData.length>0){let{width:C,height:_}=this.getTagContentSize(t);n?(d=C,c=_):(l+=C,h=Math.max(h,_),f++)}this._noteData&&(l+=this._noteData.width,h=Math.max(h,this._noteData.height),f++),this._attachmentData&&(l+=this._attachmentData.width,h=Math.max(h,this._attachmentData.height),f++),this._postfixData&&(l+=this._postfixData.width,h=Math.max(h,this._postfixData.height),f++),this.mindMap.nodeInnerPostfixList.forEach(C=>{let _=this[`_${C.name}Data`];_&&(l+=_.width,h=Math.max(h,_.height),f++)}),l+=(f-1)*t,n&&l>0&&c>0&&(this._rectInfo.textContentWidthWithoutTag=l,l=Math.max(l,d),h=h+t+c),this._rectInfo.textContentWidth=l,this._rectInfo.textContentHeight=h;let m=0,g=0;[e.TOP,e.BOTTOM].includes(s)?(m=Math.max(a,l),g=o+h+this.getImgTextMarin("v",0,0,o,h)):(m=a+l+this.getImgTextMarin("h",a,l),g=Math.max(o,h));let{paddingX:x,paddingY:v}=this.getPaddingVale(),{paddingX:b,paddingY:E}=this.shapeInstance.getShapePadding(m,g,x,v);this.shapePadding.paddingX=b,this.shapePadding.paddingY=E;let S=this.getBorderWidth();return{width:m+x*2+b*2+S,height:g+v*2+E*2+S}}function UM(){if(!this.group)return;this.group.clear();let{hoverRectPadding:i,openRealtimeRenderOnNodeTextEdit:e,textContentMargin:t,addCustomContentToNode:r}=this.mindMap.opt,{width:n,height:s}=this,{paddingX:a,paddingY:o}=this.getPaddingVale(),l=this.getBorderWidth()/2;a+=this.shapePadding.paddingX+l,o+=this.shapePadding.paddingY+l,this.shapeNode=this.shapeInstance.createShape(),this.shapeNode.addClass("smm-node-shape"),this.shapeNode.translate(l,l),this.style.shape(this.shapeNode),this.group.add(this.shapeNode),this.renderExpandBtnPlaceholderRect(),this.createUserListNode&&this.createUserListNode(),this.isGeneralization&&this.generalizationBelongNode&&this.group.addClass("generalization_"+this.generalizationBelongNode.uid);let h=()=>{this.hoverNode=new Pe().size(n+i*2,s+i*2).x(-i).y(-i),this.hoverNode.addClass("smm-hover-node"),this.style.hoverNode(this.hoverNode,n,s),this.group.add(this.hoverNode)};if(this.isUseCustomNodeContent()){let ee=Vr({el:this._customNodeContent,width:n,height:s});this.group.add(ee),h();return}let{IMG_PLACEMENT:d,TAG_PLACEMENT:c}=A,f=this.getStyle("imgPlacement")||d.TOP,g=(this.getStyle("tagPlacement")||c.RIGHT)===c.BOTTOM,{textContentWidth:x,textContentHeight:v,textContentWidthWithoutTag:b}=this._rectInfo,E=v,S=0,C=0,_=this._tagData&&this._tagData.length>0;if(_){let ee=this.getTagContentSize(t);S=ee.width,C=ee.height,g&&(v-=C+t)}let I=0,O=0;if(this._imgData)switch(I=this._imgData.width,O=this._imgData.height,this.group.add(this._imgData.node),f){case d.TOP:this._imgData.node.cx(n/2).y(o);break;case d.BOTTOM:this._imgData.node.cx(n/2).y(s-o-O);break;case d.LEFT:this._imgData.node.x(a).cy(s/2);break;case d.RIGHT:this._imgData.node.x(n-a-I).cy(s/2);break;default:break}let D=new Ne,$=0;if(_&&g&&($=b{let ae=this[`_${ee.name}Data`];ae&&(ae.node.x($).y((v-ae.height)/2),D.add(ae.node),$+=ae.width+t)}),this._prefixData){let ee=Vr({el:this._prefixData.el,width:this._prefixData.width,height:this._prefixData.height});ee.x($).y((v-this._prefixData.height)/2),D.add(ee),$+=this._prefixData.width+t}let F=new Ne;if(this._iconData&&this._iconData.length>0){let ee=0;this._iconData.forEach(ae=>{ae.node.x($+ee).y((v-ae.height)/2),F.add(ae.node),ee+=ae.width+t}),D.add(F),$+=ee}if(this._textData){let ee=this._textData.node.attr("data-offsetx")||0;this._textData.node.attr("data-offsetx",$),(this._textData.nodeContent||this._textData.node).x(-ee).x($).y((v-this._textData.height)/2),e&&this._textData.node.opacity(this.mindMap.renderer.textEdit.getCurrentEditNode()===this?0:1),D.add(this._textData.node),$+=this._textData.width+t}this._hyperlinkData&&(this._hyperlinkData.node.x($).y((v-this._hyperlinkData.height)/2),D.add(this._hyperlinkData.node),$+=this._hyperlinkData.width+t);let Z=new Ne;if(_)if(g){let ee=0;this._tagData.forEach(ae=>{ae.node.x(ee).y((C-ae.height)/2),Z.add(ae.node),ee+=ae.width+t}),Z.x((x-S)/2).y(E-C),D.add(Z)}else{let ee=0;this._tagData.forEach(ae=>{ae.node.x($+ee).y((v-ae.height)/2),Z.add(ae.node),ee+=ae.width+t}),D.add(Z),$+=ee}if(this._noteData&&(this._noteData.node.x($).y((v-this._noteData.height)/2),D.add(this._noteData.node),$+=this._noteData.width+t),this._attachmentData&&(this._attachmentData.node.x($).y((v-this._attachmentData.height)/2),D.add(this._attachmentData.node),$+=this._attachmentData.width+t),this._postfixData){let ee=Vr({el:this._postfixData.el,width:this._postfixData.width,height:this._postfixData.height});ee.x($).y((v-this._postfixData.height)/2),D.add(ee),$+=this._postfixData.width+t}this.mindMap.nodeInnerPostfixList.forEach(ee=>{let ae=this[`_${ee.name}Data`];ae&&(ae.node.x($).y((v-ae.height)/2),D.add(ae.node),$+=ae.width+t)}),this.group.add(D);let{width:re,height:ye}=D.bbox(),G=0,W=0;switch(f){case d.TOP:G=n/2-re/2,W=o+O+this.getImgTextMarin("v",0,0,O,E);break;case d.BOTTOM:G=n/2-re/2,W=o;break;case d.LEFT:G=I+a+this.getImgTextMarin("h",I,x),W=s/2-ye/2;break;case d.RIGHT:G=a,W=s/2-ye/2;break}if(D.translate(G,W),h(),this._customContentAddToNodeAdd&&this._customContentAddToNodeAdd.el){let ee=Vr(this._customContentAddToNodeAdd);this.group.add(ee),r&&typeof r.handle=="function"&&r.handle({content:this._customContentAddToNodeAdd,element:ee,node:this})}this.mindMap.emit("node_layout_end",this)}var zc,x3=M(()=>{Oe();ht();he();zc={getImgTextMarin:FM,getTagContentSize:qM,getNodeRect:HM,layout:UM}});var Ic,Is,a0=M(()=>{s0();Mc();ht();a3();o3();l3();u3();f3();m3();p3();g3();x3();Oe();he();Ic=class i{constructor(e={}){this.opt=e,this.nodeData=this.handleData(e.data||{}),this.nodeDataSnapshot="",this.uid=e.uid,this.mindMap=e.mindMap,this.renderer=e.renderer,this.draw=this.mindMap.draw,this.nodeDraw=this.mindMap.nodeDraw,this.lineDraw=this.mindMap.lineDraw,this.style=new lo(this),this.effectiveStyles={},this.shapeInstance=new ho(this),this.shapePadding={paddingX:0,paddingY:0},this.isRoot=e.isRoot===void 0?!1:e.isRoot,this.isGeneralization=e.isGeneralization===void 0?!1:e.isGeneralization,this.generalizationBelongNode=null,this.layerIndex=e.layerIndex===void 0?0:e.layerIndex,this.width=e.width||0,this.height=e.height||0,this.customTextWidth=e.data.data.customTextWidth||void 0,this._left=e.left||0,this._top=e.top||0,this.customLeft=e.data.data.customLeft||void 0,this.customTop=e.data.data.customTop||void 0,this.isDrag=!1,this.parent=e.parent||null,this.children=e.children||[],this.userList=[],this.group=null,this.shapeNode=null,this.hoverNode=null,this._customNodeContent=null,this._imgData=null,this._iconData=null,this._textData=null,this._hyperlinkData=null,this._tagData=null,this._noteData=null,this.noteEl=null,this.noteContentIsShow=!1,this._attachmentData=null,this._prefixData=null,this._postfixData=null,this._expandBtn=null,this._lastExpandBtnType=null,this._showExpandBtn=!1,this._openExpandNode=null,this._closeExpandNode=null,this._fillExpandNode=null,this._userListGroup=null,this._lines=[],this._generalizationList=[],this._unVisibleRectRegionNode=null,this._isMouseenter=!1,this._customContentAddToNodeAdd=null,this._rectInfo={textContentWidth:0,textContentHeight:0,textContentWidthWithoutTag:0},this._generalizationNodeWidth=0,this._generalizationNodeHeight=0,this.expandBtnSize=this.mindMap.opt.expandBtnSize,this.isMultipleChoice=!1,this.needLayout=!1,this.isHide=!1;let t=Object.getPrototypeOf(this);t.bindEvent||(Object.keys(zc).forEach(r=>{t[r]=zc[r]}),Object.keys(Tc).forEach(r=>{t[r]=Tc[r]}),Object.keys(Ec).forEach(r=>{t[r]=Ec[r]}),Object.keys(kc).forEach(r=>{t[r]=kc[r]}),Object.keys(Sc).forEach(r=>{t[r]=Sc[r]}),Object.keys(Ac).forEach(r=>{t[r]=Ac[r]}),this.mindMap.cooperate&&Object.keys(_c).forEach(r=>{t[r]=_c[r]}),Object.keys(Cc).forEach(r=>{t[r]=Cc[r]}),this.mindMap.opt.isShowCreateChildBtnIcon&&(Object.keys(Lc).forEach(r=>{t[r]=Lc[r]}),this.initQuickCreateChildBtn()),t.bindEvent=!0),this.getSize(),this.updateGeneralization(),this.initDragHandle()}get left(){return this.customLeft||this._left}set left(e){this._left=e}get top(){return this.customTop||this._top}set top(e){this._top=e}reset(){this.children=[],this.parent=null,this.isRoot=!1,this.layerIndex=0,this.left=0,this.top=0}resetWhenDelete(){this._isMouseenter=!1}handleData(e){return e.data.expand=e.data.expand!==!1,e.data.isActive=e.data.isActive===!0,e.children=e.children||[],e}createNodeData(e){let{isUseCustomNodeContent:t,customCreateNodeContent:r,createNodePrefixContent:n,createNodePostfixContent:s,addCustomContentToNode:a}=this.mindMap.opt,o=["custom","image","icon","text","hyperlink","tag","note","attachment","prefix","postfix",...this.mindMap.nodeInnerPrefixList.map(h=>h.name),...this.mindMap.nodeInnerPostfixList.map(h=>h.name)],l={};if(Array.isArray(e)?o.forEach(h=>{e.includes(h)&&(l[h]=!0)}):o.forEach(h=>{l[h]=!0}),t&&r&&l.custom&&(this._customNodeContent=r(this)),this._customNodeContent){$i(this._customNodeContent);return}l.image&&(this._imgData=this.createImgNode()),l.icon&&(this._iconData=this.createIconNode()),l.text&&(this._textData=this.createTextNode()),l.hyperlink&&(this._hyperlinkData=this.createHyperlinkNode()),l.tag&&(this._tagData=this.createTagNode()),l.note&&(this._noteData=this.createNoteNode()),l.attachment&&(this._attachmentData=this.createAttachmentNode()),this.mindMap.nodeInnerPrefixList.forEach(h=>{l[h.name]&&(this[`_${h.name}Data`]=h.createContent(this))}),l.prefix&&(this._prefixData=n?n(this):null,this._prefixData&&this._prefixData.el&&$i(this._prefixData.el)),l.postfix&&(this._postfixData=s?s(this):null,this._postfixData&&this._postfixData.el&&$i(this._postfixData.el)),this.mindMap.nodeInnerPostfixList.forEach(h=>{l[h.name]&&(this[`_${h.name}Data`]=h.createContent(this))}),a&&typeof a.create=="function"&&(this._customContentAddToNodeAdd=a.create(this),this._customContentAddToNodeAdd&&this._customContentAddToNodeAdd.el&&$i(this._customContentAddToNodeAdd.el))}getSize(e,t={}){t.ignoreUpdateCustomTextWidth||(this.customTextWidth=this.getData("customTextWidth")||void 0),this.customLeft=this.getData("customLeft")||void 0,this.customTop=this.getData("customTop")||void 0,this.createNodeData(e);let{width:n,height:s}=this.getNodeRect(),a=this.width!==n||this.height!==s;return this.width=n,this.height=s,a}bindGroupEvent(){this.group.on("click",e=>{if(this.mindMap.emit("node_click",this,e),this.isMultipleChoice){e.stopPropagation(),this.isMultipleChoice=!1;return}this.mindMap.opt.onlyOneEnableActiveNodeOnCooperate&&this.userList.length>0||this.active(e)}),this.group.on("mousedown",e=>{let{readonly:t,enableCtrlKeyNodeSelection:r,useLeftKeySelectionRightKeyDrag:n,mousedownEventPreventDefault:s}=this.mindMap.opt;if(s&&e.preventDefault(),t||(this.isRoot?e.which===3&&!n&&e.stopPropagation():e.which!==2&&e.stopPropagation()),!t&&(e.ctrlKey||e.metaKey)&&r){this.isMultipleChoice=!0;let a=this.getData("isActive");a||this.mindMap.emit("before_node_active",this,this.renderer.activeNodeList),this.mindMap.renderer[a?"removeNodeFromActiveList":"addNodeToActiveList"](this,!0),this.renderer.emitNodeActiveEvent(a?null:this)}this.mindMap.emit("node_mousedown",this,e)}),this.group.on("mouseup",e=>{!this.isRoot&&e.which!==2&&!this.mindMap.opt.readonly&&e.stopPropagation(),this.mindMap.emit("node_mouseup",this,e)}),this.group.on("mouseenter",e=>{this.isDrag||(this._isMouseenter=!0,this.showExpandBtn(),this.isGeneralization&&this.handleGeneralizationMouseenter(),this.mindMap.emit("node_mouseenter",this,e))}),this.group.on("mouseleave",e=>{this._isMouseenter&&(this._isMouseenter=!1,this.hideExpandBtn(),this.isGeneralization&&this.handleGeneralizationMouseleave(),this.mindMap.emit("node_mouseleave",this,e))}),this.group.on("dblclick",e=>{let{readonly:t,onlyOneEnableActiveNodeOnCooperate:r}=this.mindMap.opt;t||e.ctrlKey||e.metaKey||(e.stopPropagation(),!(r&&this.userList.length>0)&&this.mindMap.emit("node_dblclick",this,e))}),this.group.on("contextmenu",e=>{let{readonly:t,useLeftKeySelectionRightKeyDrag:r}=this.mindMap.opt;t||e.ctrlKey||(e.stopPropagation(),e.preventDefault(),!(this.mindMap.select&&!r&&this.mindMap.select.hasSelectRange())&&(this.getData("isActive")&&this.renderer.activeNodeList.length===1||(this.renderer.clearActiveNodeList(),this.active(e)),this.mindMap.emit("node_contextmenu",e,this)))})}active(e){this.mindMap.opt.readonly||(e&&e.stopPropagation(),!this.getData("isActive")&&(this.mindMap.emit("before_node_active",this,this.renderer.activeNodeList),this.renderer.clearActiveNodeList(),this.renderer.addNodeToActiveList(this,!0),this.renderer.emitNodeActiveEvent(this)))}deactivate(){this.mindMap.renderer.removeNodeFromActiveList(this),this.mindMap.renderer.emitNodeActiveEvent()}update(e){if(!this.group)return;this.updateNodeActiveClass();let{alwaysShowExpandBtn:t,notShowExpandBtn:r,isShowCreateChildBtnIcon:n,readonly:s}=this.mindMap.opt,a=this.getChildrenLength();if(!r)if(t)this._expandBtn&&a<=0?this.removeExpandBtn():this.renderExpandBtn();else{let{isActive:l,expand:h}=this.getData();a<=0?this.removeExpandBtn():h&&!l&&!this._isMouseenter?this.hideExpandBtn():this.showExpandBtn()}if(n)if(a>0)this.removeQuickCreateChildBtn();else{let{isActive:l}=this.getData();l?this.showQuickCreateChildBtn():this.hideQuickCreateChildBtn()}this.updateDragHandle(),this.renderGeneralization(e),this.updateUserListNode&&this.updateUserListNode();let o=this.group.transform();this.nodeDataSnapshot=s?"":JSON.stringify(this.getData()),(this.left!==o.translateX||this.top!==o.translateY)&&this.group.translate(this.left-o.translateX,this.top-o.translateY)}getNodePosInClient(e,t){let r=this.mindMap.draw.transform(),{scaleX:n,scaleY:s,translateX:a,translateY:o}=r,l=e*n+a,h=t*s+o;return{left:l,top:h}}checkIsInClient(e=0){let{left:t,top:r}=this.getNodePosInClient(this.left,this.top);return t+this.width>0-e&&r+this.height>0-e&&t{},t=!1,r=!1){this.renderLine();let{openPerformance:n,performanceConfig:s}=this.mindMap.opt;if(t||!n||this.checkIsInClient(s.padding)||this.isRoot?this.group?(this.nodeDraw.has(this.group)||this.nodeDraw.add(this.group),this.needLayout&&(this.needLayout=!1,this.layout()),this.updateExpandBtnPlaceholderRect(),this.update(t)):(this.group=new Ne,this.group.addClass("smm-node"),this.group.css({cursor:"default"}),this.bindGroupEvent(),this.nodeDraw.add(this.group),this.layout(),this.update(t)):n&&s.removeNodeWhenOutCanvas&&this.removeSelf(),this.children&&this.children.length&&this.getData("expand")!==!1){let a=0;this.children.forEach(o=>{let l=()=>{o.render(()=>{a++,a>=this.children.length&&e()},t,r)};r?setTimeout(l,0):l()})}else e();this.nodeData.inserting&&(delete this.nodeData.inserting,this.active(),this.mindMap.emit("node_dblclick",this,null,!0))}removeSelf(){this.group&&(this.group.remove(),this.removeGeneralization())}remove(){this.group&&(this.group.remove(),this.removeGeneralization(),this.removeLine(),this.children&&this.children.length&&this.children.forEach(e=>{e.remove()}))}destroy(){this.removeLine(),this.parent&&this.parent.removeLine(),this.group&&(this.emptyUser&&this.emptyUser(),this.resetWhenDelete(),this.group.remove(),this.removeGeneralization(),this.group=null,this.style.onRemove())}hide(){if(this.group&&this.group.hide(),this.hideGeneralization(),this.parent){let e=this.parent.children.indexOf(this);this.parent._lines[e]&&this.parent._lines[e].hide(),this._lines.forEach(t=>{t.hide()})}this.children&&this.children.length&&this.children.forEach(e=>{e.hide()})}show(){if(this.group){if(this.group.show(),this.showGeneralization(),this.parent){let e=this.parent.children.indexOf(this);this.parent._lines[e]&&this.parent._lines[e].show(),this._lines.forEach(t=>{t.show()})}this.children&&this.children.length&&this.children.forEach(e=>{e.show()})}}setOpacity(e){this.group&&this.group.opacity(e),this._lines.forEach(t=>{t.opacity(e)}),this.children.forEach(t=>{t.setOpacity(e)}),this.setGeneralizationOpacity(e)}hideChildren(){this._lines.forEach(e=>{e.hide()}),this.children&&this.children.length&&this.children.forEach(e=>{e.hide()})}showChildren(){this._lines.forEach(e=>{e.show()}),this.children&&this.children.length&&this.children.forEach(e=>{e.show()})}startDrag(){this.isDrag=!0,this.group&&this.group.addClass("smm-node-dragging")}endDrag(){this.isDrag=!1,this.group&&this.group.removeClass("smm-node-dragging")}renderLine(e=!1){if(this.getData("expand")===!1)return;let t=this.getChildrenLength();this.mindMap.renderer.layout.nodeIsRemoveAllLines&&this.mindMap.renderer.layout.nodeIsRemoveAllLines(this)&&(t=0),t>this._lines.length?new Array(t-this._lines.length).fill(0).forEach(()=>{this._lines.push(this.lineDraw.path())}):t{r.remove()}),this._lines=this._lines.slice(0,t)),this.renderer.layout.renderLine(this,this._lines,(...r)=>{this.styleLine(...r)},this.style.getStyle("lineStyle",!0)),e&&this.children&&this.children.length>0&&this.children.forEach(r=>{r.renderLine(e)})}getShape(){return this.mindMap.themeConfig.nodeUseLineStyle?A.SHAPE.RECTANGLE:this.style.getStyle("shape",!1,!1)}hasCustomPosition(){return this.customLeft!==void 0&&this.customTop!==void 0}ancestorHasCustomPosition(){let e=this;for(;e;){if(e.hasCustomPosition())return!0;e=e.parent}return!1}ancestorHasGeneralization(){let e=this.parent;for(;e;){if(e.checkHasGeneralization())return!0;e=e.parent}return!1}addChildren(e){this.children.push(e)}styleLine(e,t,r){let{enableInheritAncestorLineStyle:n}=this.mindMap.opt,s=n?"getSelfInhertStyle":"getSelfStyle",a=t[s]("lineWidth")||t.getStyle("lineWidth",!0),o=t[s]("lineColor")||this.getRainbowLineColor(t)||t.getStyle("lineColor",!0),l=t[s]("lineDasharray")||t.getStyle("lineDasharray",!0);this.style.line(e,{width:a,color:o,dasharray:l},r,t)}getRainbowLineColor(e){return this.mindMap.rainbowLines?this.mindMap.rainbowLines.getNodeColor(e):""}removeLine(){this._lines.forEach(e=>{e.remove()}),this._lines=[]}isAncestor(e){if(this.uid===e.uid)return!1;let t=e.parent;for(;t;){if(this.uid===t.uid)return!0;t=t.parent}return!1}isParent(e){if(this.uid===e.uid)return!1;let t=e.parent;return!!(t&&this.uid===t.uid)}isBrother(e){return!this.parent||this.uid===e.uid?!1:this.parent.children.find(t=>t.uid===e.uid)}getIndexInBrothers(){return this.parent&&this.parent.children?this.parent.children.findIndex(e=>e.uid===this.uid):-1}getPaddingVale(){return{paddingX:this.getStyle("paddingX"),paddingY:this.getStyle("paddingY")}}getStyle(e,t){let r=this.style.merge(e,t);return r===void 0?"":r}getSelfStyle(e){return this.style.getSelfStyle(e)}getParentSelfStyle(e){return this.parent?this.parent.getSelfStyle(e)||this.parent.getParentSelfStyle(e):null}getSelfInhertStyle(e){return this.getSelfStyle(e)||this.getParentSelfStyle(e)}getBorderWidth(){return this.style.merge("borderWidth",!1)||0}getData(e){return e?this.nodeData.data[e]:this.nodeData.data}getPureData(e=!0,t=!1){return Bn({},this,e,t)}getAncestorNodes(){let e=[],t=this.parent;for(;t;)e.unshift(t),t=t.parent;return e}hasCustomStyle(){return this.style.hasCustomStyle()}getRect(){return this.group?this.group.rbox():null}getRectInSvg(){let{scaleX:e,scaleY:t,translateX:r,translateY:n}=this.mindMap.draw.transform(),{left:s,top:a,width:o,height:l}=this,h=(s+o)*e+r,d=(a+l)*t+n;return s=s*e+r,a=a*t+n,{left:s,right:h,top:a,bottom:d,width:o*e,height:l*t}}highlight(){this.group&&this.group.addClass("smm-node-highlight")}closeHighlight(){this.group&&this.group.removeClass("smm-node-highlight")}fakeClone(){let e=new i({...this.opt,uid:ct()});return Object.keys(this).forEach(t=>{e[t]=this[t]}),e}createSvgTextNode(e=""){return new Te().text(e)}getSvgObjects(){return{SVG:Me,G:Ne,Rect:Pe}}checkEnableDragModifyNodeWidth(){let{enableDragModifyNodeWidth:e,isUseCustomNodeContent:t,customCreateNodeContent:r}=this.mindMap.opt;return e&&(this.mindMap.richText||t&&r)}hasCustomWidth(){return this.checkEnableDragModifyNodeWidth()&&this.customTextWidth!==void 0}getChildrenLength(){return this.nodeData.children?this.nodeData.children.length:0}},Is=Ic});var fo,v3=M(()=>{fo=class{constructor(e){this.max=e||1e3,this.size=0,this.pool=new Map}add(e,t){return!this.has(e)&&this.size>=this.max?!1:(this.delete(e),this.pool.set(e,t),this.size++,!0)}delete(e){this.pool.has(e)&&(this.pool.delete(e),this.size--)}has(e){return this.pool.has(e)}get(e){if(this.pool.has(e))return this.pool.get(e)}clear(){this.size=0,this.pool=new Map}}});var Rc,ut,hr=M(()=>{a0();Oe();v3();he();Rc=class{constructor(e){this.renderer=e,this.mindMap=e.mindMap,this.draw=this.mindMap.draw,this.lineDraw=this.mindMap.lineDraw,this.root=null,this.lru=new fo(this.mindMap.opt.maxNodeCacheCount),this.rootNodeCenterOffset=null}doLayout(){throw new Error("\u3010computed\u3011\u65B9\u6CD5\u4E3A\u5FC5\u8981\u65B9\u6CD5\uFF0C\u9700\u8981\u5B50\u7C7B\u8FDB\u884C\u91CD\u5199\uFF01")}renderLine(){throw new Error("\u3010renderLine\u3011\u65B9\u6CD5\u4E3A\u5FC5\u8981\u65B9\u6CD5\uFF0C\u9700\u8981\u5B50\u7C7B\u8FDB\u884C\u91CD\u5199\uFF01")}renderExpandBtn(){throw new Error("\u3010renderExpandBtn\u3011\u65B9\u6CD5\u4E3A\u5FC5\u8981\u65B9\u6CD5\uFF0C\u9700\u8981\u5B50\u7C7B\u8FDB\u884C\u91CD\u5199\uFF01")}renderGeneralization(){}cacheNode(e,t){this.renderer.nodeCache[e]=t,this.lru.add(e,t)}checkIsNeedResizeSources(){return this.renderer.checkHasRenderSource(A.CHANGE_THEME)}checkIsLayerTypeChange(e,t){if(e>=2&&t>=2)return!1;if(e>=2&&t<2||e<2&&t>=2)return!0}checkIsLayoutChangeRerenderExpandBtnPlaceholderRect(e){this.renderer.checkHasRenderSource(A.CHANGE_LAYOUT)&&(e.needRerenderExpandBtnPlaceholderRect=!0)}checkIsNodeDataChange(e,t){if(e)e=typeof e=="string"?JSON.parse(e):e,e.isActive=t.isActive,e.expand=t.expand,e=JSON.stringify(e);else return!1;return e!==JSON.stringify(t)}checkNodeFixChange(e,t,r){let n=!1;this.mindMap.nodeInnerPrefixList.forEach(a=>{if(a.updateNodeData){let o=a.updateNodeData(e,t);o&&(n=o)}});let s=!1;return this.mindMap.nodeInnerPostfixList.forEach(a=>{if(a.updateNodeData){let o=a.updateNodeData(e,r);o&&(s=o)}}),n||s}createNode(e,t,r,n,s,a){let o={};this.mindMap.nodeInnerPrefixList.forEach(c=>{if(c.createNodeData){let[f,m]=c.createNodeData({data:e,parent:t,ancestors:a,layerIndex:n,index:s});o[f]=m}});let l={};this.mindMap.nodeInnerPostfixList.forEach(c=>{if(c.createNodeData){let[f,m]=c.createNodeData({data:e,parent:t,ancestors:a,layerIndex:n,index:s});l[f]=m}});let h=e.data.uid,d=null;if(e&&e._node&&!this.renderer.reRender){d=e._node;let c=this.checkIsLayerTypeChange(d.layerIndex,n);d.reset(),d.layerIndex=n,r?d.isRoot=!0:d.parent=t._node,this.cacheNode(e._node.uid,d),this.checkIsLayoutChangeRerenderExpandBtnPlaceholderRect(d);let f=this.checkNodeFixChange(d,o,l),m=this.checkIsNeedResizeSources(),g=this.checkIsNodeDataChange(e._node.nodeDataSnapshot,e.data);(m||g||c||d.getData("resetRichText")||d.getData("needUpdate")||f)&&(d.getSize(),d.needLayout=!0),this.checkGetGeneralizationChange(d,m)}else if((this.lru.has(h)||this.renderer.lastNodeCache[h])&&!this.renderer.reRender){d=this.lru.get(h)||this.renderer.lastNodeCache[h];let c=JSON.stringify(d.getData()),f=this.checkIsLayerTypeChange(d.layerIndex,n);d.reset(),d.nodeData=d.handleData(e||{}),d.layerIndex=n,r?d.isRoot=!0:d.parent=t._node,this.cacheNode(h,d),this.checkIsLayoutChangeRerenderExpandBtnPlaceholderRect(d),e._node=d;let m=this.checkIsNeedResizeSources(),g=this.checkIsNodeDataChange(c,e.data),x=this.checkNodeFixChange(d,o,l);(m||g||f||d.getData("resetRichText")||d.getData("needUpdate")||x)&&(d.getSize(),d.needLayout=!0),this.checkGetGeneralizationChange(d,m)}else{let c=h||ct();d=new Is({data:e,uid:c,renderer:this.renderer,mindMap:this.mindMap,draw:this.draw,layerIndex:n,isRoot:r,parent:r?null:t._node,...o}),e.data.uid=c,this.cacheNode(c,d),e._node=d}return e.data.isActive&&this.renderer.addNodeToActiveList(d),this.mindMap.renderer.findActiveNodeIndex(d)!==-1&&d.setData({isActive:!0}),r?this.root=d:t._node.addChildren(d),d}checkGetGeneralizationChange(e,t){let r=e.getData("generalization");r&&e._generalizationList&&e._generalizationList.length>0&&e._generalizationList.forEach((n,s)=>{let a=n.generalizationNode,o=a.getData(),l=r[s];(t||l&&JSON.stringify(o)!==JSON.stringify(l))&&(l&&(a.nodeData.data=l),a.getSize(),a.needLayout=!0)})}formatPosition(e,t,r){return typeof e=="number"?e:Hd[e]!==void 0?t*Hd[e]:/^\d\d*%$/.test(e)?Number.parseFloat(e)/100*t:(t-r)/2}formatInitRootNodePosition(e){let{CENTER:t}=A.INIT_ROOT_NODE_POSITION;return(!e||!Array.isArray(e)||e.length<2)&&(e=[t,t]),e}setNodeCenter(e,t){let{initRootNodePosition:r}=this.mindMap.opt;r=this.formatInitRootNodePosition(t||r),e.left=this.formatPosition(r[0],this.mindMap.width,e.width),e.top=this.formatPosition(r[1],this.mindMap.height,e.height)}getRootCenterOffset(e,t){if(this.rootNodeCenterOffset)return this.rootNodeCenterOffset;let{initRootNodePosition:r}=this.mindMap.opt,{CENTER:n}=A.INIT_ROOT_NODE_POSITION;if(r=this.formatInitRootNodePosition(r),r[0]===n&&r[1]===n)this.rootNodeCenterOffset={x:0,y:0};else{let s={width:e,height:t},a={width:e,height:t};this.setNodeCenter(s,[n,n]),this.setNodeCenter(a),this.rootNodeCenterOffset={x:a.left-s.left,y:a.top-s.top}}return this.rootNodeCenterOffset}updateChildren(e,t,r){e.forEach(n=>{n[t]+=r,n.children&&n.children.length&&!n.hasCustomPosition()&&this.updateChildren(n.children,t,r)})}updateChildrenPro(e,t){e.forEach(r=>{Object.keys(t).forEach(n=>{r[n]+=t[n]}),r.children&&r.children.length&&!r.hasCustomPosition()&&this.updateChildrenPro(r.children,t)})}getNodeAreaWidth(e,t=!1){let r=[],n=0,s=(a,o)=>{t&&a.checkHasGeneralization()&&(n+=a._generalizationNodeWidth),a.children.length?(o+=a.width/2,a.children.forEach(l=>{s(l,o)})):(o+=a.width,r.push(o))};return s(e,0),Math.max(...r)+n}quadraticCurvePath(e,t,r,n,s=!1){let a,o;return s?(a=e+(r-e)*.8,o=t+(n-t)*.2):(a=e+(r-e)*.2,o=t+(n-t)*.8),`M ${e},${t} Q ${a},${o} ${r},${n}`}cubicBezierPath(e,t,r,n,s=!1){let a,o,l,h;return s?(a=e,o=t+(n-t)/2,l=r,h=o):(a=e+(r-e)/2,o=t,l=a,h=n),`M ${e},${t} C ${a},${o} ${l},${h} ${r},${n}`}computeNewPoint(e,t,r=0){if(e[0]===t[0])return t[1]>e[1]?[t[0],t[1]-r]:[t[0],t[1]+r];if(e[1]===t[1])return t[0]>e[0]?[t[0]-r,t[1]]:[t[0]+r,t[1]]}createFoldLine(e){let{lineRadius:t}=this.mindMap.themeConfig,r=e.length,n="",s="";if(r>=3&&t>0){let a=e[r-3],o=e[r-2],l=e[r-1];if(!(a[0].toFixed(0)===o[0].toFixed(0)&&o[0].toFixed(0)===l[0].toFixed(0)||a[1].toFixed(0)===o[1].toFixed(0)&&o[1].toFixed(0)===l[1].toFixed(0))){let d=this.computeNewPoint(a,o,t),c=this.computeNewPoint(l,o,t);s=`Q ${o[0]},${o[1]} ${c[0]},${c[1]}`,e.splice(r-2,1,d,s)}}return e.forEach((a,o)=>{if(typeof a=="string")n+=a;else{let[l,h]=a;o===0?n+=`M ${l},${h}`:n+=`L ${l},${h}`}}),n}getMarginX(e){let{themeConfig:t,opt:r}=this.mindMap,{second:n,node:s}=t,a=r.hoverRectPadding*2;return e===1?n.marginX+a:s.marginX+a}getMarginY(e){let{themeConfig:t,opt:r}=this.mindMap,{second:n,node:s}=t,a=r.hoverRectPadding*2;return e===1?n.marginY+a:s.marginY+a}getNodeWidthWithGeneralization(e){return Math.max(e.width,e.checkHasGeneralization()?e._generalizationNodeWidth:0)}getNodeHeightWithGeneralization(e){return Math.max(e.height,e.checkHasGeneralization()?e._generalizationNodeHeight:0)}getNodeBoundaries(e,t){let{generalizationLineMargin:r,generalizationNodeMargin:n}=this.mindMap.themeConfig,s=d=>{let c=1/0,f=-1/0,m=1/0,g=-1/0;d.children&&d.children.length>0&&d.children.forEach(v=>{let{left:b,right:E,top:S,bottom:C}=s(v),_=v.checkHasGeneralization()&&v.getData("expand")?v._generalizationNodeWidth+n:0,I=v.checkHasGeneralization()&&v.getData("expand")?v._generalizationNodeHeight+n:0;b-(t==="h"?_:0)f&&(f=E+(t==="h"?_:0)),Sg&&(g=C+(t==="v"?I:0))});let x={left:d.left,right:d.left+d.width,top:d.top,bottom:d.top+d.height};return{left:x.leftf?x.right:f,top:x.topg?x.bottom:g}},{left:a,right:o,top:l,bottom:h}=s(e);return{left:a,right:o,top:l,bottom:h,generalizationLineMargin:r,generalizationNodeMargin:n}}getChildrenBoundaries(e,t,r=0,n){let{generalizationLineMargin:s,generalizationNodeMargin:a}=this.mindMap.themeConfig,o=e.children.slice(r,n+1),l=1/0,h=-1/0,d=1/0,c=-1/0;return o.forEach(f=>{let m=this.getNodeBoundaries(f,t);l=m.lefth?m.right:h,d=m.topc?m.bottom:c}),{left:l,right:h,top:d,bottom:c,generalizationLineMargin:s,generalizationNodeMargin:a}}getNodeGeneralizationRenderBoundaries(e,t){let r=null;return e.range?r=this.getChildrenBoundaries(e.node,t,e.range[0],e.range[1]):r=this.getNodeBoundaries(e.node,t),r}getNodeActChildrenLength(e){return e.nodeData.children&&e.nodeData.children.length}setLineStyle(e,t,r,n){t.plot(this.transformPath(r)),e&&e(t,n,!0)}transformPath(e){let{customTransformNodeLinePath:t}=this.mindMap.opt;return t?t(e):e}},ut=Rc});var Dc,o0,Oc=M(()=>{Dc=class{constructor(e){this.mindMap=e,this.autoMoveTimer=null}onMove(e,t,r=()=>{},n=()=>{}){r();let s=this.mindMap.opt.selectTranslateStep,a=this.mindMap.opt.selectTranslateLimit,o=0;e<=this.mindMap.elRect.left+a&&(n("left",s),this.mindMap.view.translateX(s),o++),e>=this.mindMap.elRect.right-a&&(n("right",s),this.mindMap.view.translateX(-s),o++),t<=this.mindMap.elRect.top+a&&(n("top",s),this.mindMap.view.translateY(s),o++),t>=this.mindMap.elRect.bottom-a&&(n("bottom",s),this.mindMap.view.translateY(-s),o++),o>0&&this.startAutoMove(e,t,r,n)}startAutoMove(e,t,r,n){this.autoMoveTimer=setTimeout(()=>{this.onMove(e,t,r,n)},20)}clearAutoMoveTimer(){clearTimeout(this.autoMoveTimer)}},o0=Dc});var y3={};ti(y3,{default:()=>$M});var l0,$M,b3=M(()=>{he();hr();Oe();Oc();l0=class extends ut{constructor({mindMap:e}){super(e.renderer),this.mindMap=e,this.autoMove=new o0(e),this.reset(),this.bindEvent()}reset(){this.isDragging=!1,this.mousedownNode=null,this.beingDragNodeList=[],this.nodeList=[],this.overlapNode=null,this.prevNode=null,this.nextNode=null,this.drawTransform=null,this.clone=null,this.placeholder=null,this.placeholderWidth=50,this.placeholderHeight=10,this.placeHolderLine=null,this.placeHolderExtraLines=[],this.offsetX=0,this.offsetY=0,this.isMousedown=!1,this.mouseDownX=0,this.mouseDownY=0,this.mouseMoveX=0,this.mouseMoveY=0,this.checkDragOffset=10,this.minOffset=10}bindEvent(){this.onNodeMousedown=this.onNodeMousedown.bind(this),this.onMousemove=this.onMousemove.bind(this),this.onMouseup=this.onMouseup.bind(this),this.checkOverlapNode=mi(this.checkOverlapNode,300,this),this.mindMap.on("node_mousedown",this.onNodeMousedown),this.mindMap.on("mousemove",this.onMousemove),this.mindMap.on("node_mouseup",this.onMouseup),this.mindMap.on("mouseup",this.onMouseup)}unBindEvent(){this.mindMap.off("node_mousedown",this.onNodeMousedown),this.mindMap.off("mousemove",this.onMousemove),this.mindMap.off("node_mouseup",this.onMouseup),this.mindMap.off("mouseup",this.onMouseup)}onNodeMousedown(e,t){if(this.mindMap.opt.readonly||t.which!==1||e.isGeneralization||e.isRoot)return;this.isMousedown=!0,this.mousedownNode=e;let{x:r,y:n}=this.mindMap.toPos(t.clientX,t.clientY);this.mouseDownX=r,this.mouseDownY=n}onMousemove(e){if(this.mindMap.opt.readonly||!this.isMousedown)return;e.preventDefault();let{x:t,y:r}=this.mindMap.toPos(e.clientX,e.clientY);this.mouseMoveX=t,this.mouseMoveY=r,!(!this.isDragging&&Math.abs(t-this.mouseDownX)<=this.checkDragOffset&&Math.abs(r-this.mouseDownY)<=this.checkDragOffset)&&(this.mindMap.emit("node_dragging",this.mousedownNode),this.handleStartMove(),this.onMove(t,r,e))}async onMouseup(e){if(!this.isMousedown)return;let{autoMoveWhenMouseInEdgeOnDrag:t,enableFreeDrag:r,beforeDragEnd:n}=this.mindMap.opt;t&&this.mindMap.select&&this.autoMove.clearAutoMoveTimer(),this.isMousedown=!1,this.beingDragNodeList.forEach(l=>{l.setOpacity(1),l.showChildren(),l.endDrag()}),this.removeCloneNode();let s=this.overlapNode?this.overlapNode.getData("uid"):"",a=this.prevNode?this.prevNode.getData("uid"):"",o=this.nextNode?this.nextNode.getData("uid"):"";if(this.isDragging&&typeof n=="function"&&await n({overlapNodeUid:s,prevNodeUid:a,nextNodeUid:o,beingDragNodeList:[...this.beingDragNodeList]})){this.reset();return}if(this.overlapNode)this.removeNodeActive(this.overlapNode),this.mindMap.execCommand("MOVE_NODE_TO",this.beingDragNodeList,this.overlapNode);else if(this.prevNode)this.removeNodeActive(this.prevNode),this.mindMap.execCommand("INSERT_AFTER",this.beingDragNodeList,this.prevNode);else if(this.nextNode)this.removeNodeActive(this.nextNode),this.mindMap.execCommand("INSERT_BEFORE",this.beingDragNodeList,this.nextNode);else if(this.clone&&r&&this.beingDragNodeList.length===1){let{x:l,y:h}=this.mindMap.toPos(e.clientX-this.offsetX,e.clientY-this.offsetY),{scaleX:d,scaleY:c,translateX:f,translateY:m}=this.drawTransform;l=(l-f)/d,h=(h-m)/c,this.mousedownNode.left=l,this.mousedownNode.top=h,this.mousedownNode.customLeft=l,this.mousedownNode.customTop=h,this.mindMap.execCommand("SET_NODE_CUSTOM_POSITION",this.mousedownNode,l,h),this.mindMap.render()}this.isDragging&&this.mindMap.emit("node_dragend",{overlapNodeUid:s,prevNodeUid:a,nextNodeUid:o}),this.reset()}removeNodeActive(e){e.getData("isActive")&&this.mindMap.execCommand("SET_NODE_ACTIVE",e,!1)}onMove(e,t,r){if(!this.isMousedown||!this.isDragging)return;let{scaleX:n,scaleY:s,translateX:a,translateY:o}=this.drawTransform,l=e-this.offsetX,h=t-this.offsetY;e=(l-a)/n,t=(h-o)/s;let d=this.clone.transform();this.clone.translate(e-d.translateX,t-d.translateY),this.checkOverlapNode(),this.drawTransform=this.mindMap.draw.transform(),this.autoMove.clearAutoMoveTimer(),this.autoMove.onMove(r.clientX,r.clientY)}async handleStartMove(){if(!this.isDragging){let e=this.mousedownNode;this.drawTransform=this.mindMap.draw.transform();let{scaleX:t,scaleY:r,translateX:n,translateY:s}=this.drawTransform;this.offsetX=this.mouseDownX-(e.left*t+n),this.offsetY=this.mouseDownY-(e.top*r+s),e.getData("isActive")?this.beingDragNodeList=oo(Fn(this.mindMap.renderer.activeNodeList.filter(o=>!o.isRoot&&!o.isGeneralization))):this.beingDragNodeList=[e];let{beforeDragStart:a}=this.mindMap.opt;if(typeof a=="function"&&await a([...this.beingDragNodeList]))return;this.nodeTreeToList(),this.createCloneNode(),this.mindMap.execCommand("CLEAR_ACTIVE_NODE"),this.isDragging=!0}}nodeTreeToList(){let e=[];Pt(this.mindMap.renderer.root,t=>{this.checkIsInBeingDragNodeList(t)||(e[t.layerIndex]||(e[t.layerIndex]=[]),e[t.layerIndex].push(t))}),this.nodeList=e.reduceRight((t,r)=>[...t,...r],[])}createCloneNode(){if(!this.clone){let{dragMultiNodeRectConfig:e,dragPlaceholderRectFill:t,dragPlaceholderLineConfig:r,dragOpacityConfig:n,handleDragCloneNode:s}=this.mindMap.opt,{width:a,height:o,fill:l}=e,h=this.beingDragNodeList[0],d=h.style.merge("lineColor",!0);if(this.beingDragNodeList.length>1)this.clone=this.mindMap.otherDraw.rect().size(a,o).radius(o/2).fill({color:l||d}),this.offsetX=a/2,this.offsetY=o/2;else{this.clone=h.group.clone();let c=this.clone.findOne(".smm-expand-btn");c&&c.remove(),this.mindMap.otherDraw.add(this.clone),typeof s=="function"&&s(this.clone)}this.clone.opacity(n.cloneNodeOpacity),this.clone.css("z-index",99999),this.placeholder=this.mindMap.otherDraw.rect().fill({color:t||d}).radius(5),this.placeHolderLine=this.mindMap.otherDraw.path().stroke({color:r.color||d,width:r.width}).fill({color:"none"}),this.beingDragNodeList.forEach(c=>{c.setOpacity(n.beingDragNodeOpacity),c.hideChildren(),c.startDrag()})}}removeCloneNode(){this.clone&&(this.clone.remove(),this.placeholder.remove(),this.placeHolderLine.remove(),this.removeExtraLines())}removeExtraLines(){this.placeHolderExtraLines.forEach(e=>{e.remove()}),this.placeHolderExtraLines=[]}checkOverlapNode(){if(!this.drawTransform||!this.placeholder)return;let{LOGICAL_STRUCTURE:e,LOGICAL_STRUCTURE_LEFT:t,MIND_MAP:r,ORGANIZATION_STRUCTURE:n,CATALOG_ORGANIZATION:s,TIMELINE:a,TIMELINE2:o,VERTICAL_TIMELINE:l,VERTICAL_TIMELINE2:h,VERTICAL_TIMELINE3:d,FISHBONE:c,FISHBONE2:f,RIGHT_FISHBONE:m,RIGHT_FISHBONE2:g}=A.LAYOUT;this.overlapNode=null,this.prevNode=null,this.nextNode=null,this.placeholder.size(0,0),this.placeHolderLine.hide(),this.removeExtraLines(),this.nodeList.forEach(x=>{if(x.getData("isActive")&&this.mindMap.execCommand("SET_NODE_ACTIVE",x,!1),!(this.overlapNode||this.prevNode&&this.nextNode))switch(this.mindMap.opt.layout){case e:case t:this.handleLogicalStructure(x);break;case r:this.handleMindMap(x);break;case n:this.handleOrganizationStructure(x);break;case s:this.handleCatalogOrganization(x);break;case a:this.handleTimeLine(x);break;case o:this.handleTimeLine2(x);break;case l:case h:case d:this.handleLogicalStructure(x);break;case c:case f:case m:case g:this.handleFishbone(x);break;default:this.handleLogicalStructure(x)}}),this.overlapNode&&this.handleOverlapNode()}handleOverlapNode(){let{LOGICAL_STRUCTURE:e,LOGICAL_STRUCTURE_LEFT:t,MIND_MAP:r,ORGANIZATION_STRUCTURE:n,CATALOG_ORGANIZATION:s,TIMELINE:a,TIMELINE2:o,VERTICAL_TIMELINE:l,VERTICAL_TIMELINE2:h,VERTICAL_TIMELINE3:d,FISHBONE:c,FISHBONE2:f,RIGHT_FISHBONE:m,RIGHT_FISHBONE2:g}=A.LAYOUT,{LEFT:x,TOP:v,RIGHT:b,BOTTOM:E}=A.LAYOUT_GROW_DIR,S=this.overlapNode.layerIndex,C=this.overlapNode.children,_=this.mindMap.renderer.layout.getMarginX(S+1),I=this.mindMap.renderer.layout.getMarginY(S+1),O=this.placeholderWidth/2,D=this.placeholderHeight/2,$="",F="",Z="",re=!1,ye=!1;if(C.length>0){let G=C[C.length-1],W=this.getNodeRect(G);switch($=this.getNewChildNodeDir(G),this.mindMap.opt.layout){case e:case r:F=$===x?W.originRight-this.placeholderWidth:W.originLeft,Z=W.originBottom+this.minOffset-D;break;case t:F=W.originRight-this.placeholderWidth,Z=W.originBottom+this.minOffset-D;break;case n:re=!0,F=W.originRight+this.minOffset-D,Z=W.originTop;break;case s:S===0?(re=!0,F=W.originRight+this.minOffset-D,Z=W.originTop):(F=W.originLeft,Z=W.originBottom+this.minOffset-D);break;case a:S===0?(re=!0,F=W.originRight+this.minOffset-D,Z=W.originTop+W.originHeight/2-O):(F=W.originLeft,Z=W.originBottom+this.minOffset-D);break;case o:S===0?(re=!0,F=W.originRight+this.minOffset-D,Z=W.originTop+W.originHeight/2-O):(F=W.originLeft,S===1?Z=$===v?W.originTop-this.placeholderHeight-this.minOffset+D:W.originBottom+this.minOffset-D:Z=W.originBottom+this.minOffset-D);break;case l:case h:case d:S===0?(F=W.originLeft+W.originWidth/2-O,Z=W.originBottom+this.minOffset-D):(F=$===b?W.originLeft:W.originRight-this.placeholderWidth,Z=W.originBottom+this.minOffset-D);break;case c:case f:case m:case g:S<=1?(ye=!0,this.mindMap.execCommand("SET_NODE_ACTIVE",this.overlapNode,!0)):(F=W.originLeft,Z=$===v?W.originBottom+this.minOffset-D:W.originTop-this.placeholderHeight-this.minOffset+D);break;default:}}else{let G=this.getNodeRect(this.overlapNode);switch($=this.getNewChildNodeDir(this.overlapNode),this.mindMap.opt.layout){case e:case r:F=$===b?G.originRight+_:G.originLeft-this.placeholderWidth-_,Z=G.originTop+(G.originHeight-this.placeholderHeight)/2;break;case t:F=G.originLeft-this.placeholderWidth-_,Z=G.originTop+(G.originHeight-this.placeholderHeight)/2;break;case n:re=!0,F=G.originLeft+(G.originWidth-this.placeholderHeight)/2,Z=G.originBottom+_;break;case s:S===0&&(re=!0),F=G.originLeft+G.originWidth*.5,Z=G.originBottom+_;break;case a:S===0&&(re=!0),F=G.originLeft+G.originWidth*.5,Z=G.originBottom+I;break;case o:S===0&&(re=!0),F=G.originLeft+G.originWidth*.5,S===1?Z=$===v?G.originTop-this.placeholderHeight-_:G.originBottom+_:Z=G.originBottom+_;break;case l:case h:case d:S===0&&(re=!0),F=$===b?G.originRight+_:G.originLeft-this.placeholderWidth-_,Z=G.originTop+G.originHeight/2-D;break;case c:case f:case m:case g:S<=1?(ye=!0,this.mindMap.execCommand("SET_NODE_ACTIVE",this.overlapNode,!0)):(F=G.originLeft+G.originWidth*.5,Z=$===E?G.originTop-this.placeholderHeight-this.minOffset+D:G.originBottom+this.minOffset-D);break;default:}}ye||this.setPlaceholderRect({x:F,y:Z,dir:$,rotate:re})}getNewChildNodeDir(e){let{LOGICAL_STRUCTURE:t,LOGICAL_STRUCTURE_LEFT:r,MIND_MAP:n,TIMELINE2:s,VERTICAL_TIMELINE:a,VERTICAL_TIMELINE2:o,VERTICAL_TIMELINE3:l,FISHBONE:h,FISHBONE2:d,RIGHT_FISHBONE:c,RIGHT_FISHBONE2:f}=A.LAYOUT;switch(this.mindMap.opt.layout){case t:return A.LAYOUT_GROW_DIR.RIGHT;case r:return A.LAYOUT_GROW_DIR.LEFT;case n:case s:case a:case o:case l:case h:case d:case c:case f:return e.dir;default:return""}}handleVerticalCheck(e,t,r=!1){let{layout:n}=this.mindMap.opt,{LAYOUT:s,LAYOUT_GROW_DIR:a}=A,{VERTICAL_TIMELINE:o,VERTICAL_TIMELINE2:l,VERTICAL_TIMELINE3:h,FISHBONE:d,FISHBONE2:c,RIGHT_FISHBONE:f,RIGHT_FISHBONE2:m}=s,{LEFT:g}=a,x=this.mouseMoveX,v=this.mouseMoveY,b=this.getNodeRect(e),E=this.getNewChildNodeDir(e),S=e.layerIndex;r&&(t=t.reverse());let C=b.originHeight/4,{prevBrotherOffset:_,nextBrotherOffset:I}=this.getNodeDistanceToSiblingNode(t,e,b,"v");if(b.left<=x&&b.right>=x){if(!this.overlapNode&&!this.prevNode&&!this.nextNode&&!e.isRoot){let O=I>0?v>b.bottom&&v<=b.bottom+I:v>=b.bottom-C&&v<=b.bottom,D=_>0?v=b.top-_:v>=b.top&&v<=b.top+C,{scaleY:$}=this.drawTransform,F=E===g?b.originRight-this.placeholderWidth:b.originLeft,Z=!1;switch(n){case o:case l:case h:S===1&&(F=b.originLeft+b.originWidth/2-this.placeholderWidth/2);break;case f:case m:F=b.originLeft+b.originWidth-this.placeholderWidth;break;default:}if(O){r?this.nextNode=e:this.prevNode=e;let re=b.originBottom+I/$-this.placeholderHeight/2;switch(n){case d:case c:case f:case m:S===2&&(Z=!0,re=b.originBottom+this.minOffset-this.placeholderHeight/2);break;default:}this.setPlaceholderRect({x:F,y:re,dir:E,notRenderLine:Z})}else if(D){r?this.prevNode=e:this.nextNode=e;let re=b.originTop-this.placeholderHeight-_/$+this.placeholderHeight/2;switch(n){case d:case c:case f:case m:S===2&&(Z=!0,re=b.originTop-this.placeholderHeight-this.minOffset+this.placeholderHeight/2);break;default:}this.setPlaceholderRect({x:F,y:re,dir:E,notRenderLine:Z})}}this.checkIsOverlap({node:e,dir:"v",prevBrotherOffset:_,nextBrotherOffset:I,size:C,pos:v,nodeRect:b})}}handleHorizontalCheck(e,t){let{layout:r}=this.mindMap.opt,{LAYOUT:n}=A,{FISHBONE:s,FISHBONE2:a,RIGHT_FISHBONE:o,RIGHT_FISHBONE2:l,TIMELINE:h,TIMELINE2:d}=n,c=this.mouseMoveX,f=this.mouseMoveY,m=this.getNodeRect(e),g=m.originWidth/4,{prevBrotherOffset:x,nextBrotherOffset:v}=this.getNodeDistanceToSiblingNode(t,e,m,"h");if(m.top<=f&&m.bottom>=f){if(!this.overlapNode&&!this.prevNode&&!this.nextNode&&!e.isRoot){let b=v>0?c=m.right:c<=m.right&&c>=m.right-g,E=x>0?c>m.left-x&&c<=m.left:c<=m.left+g&&c>=m.left,{scaleX:S}=this.drawTransform,C=e.layerIndex,_=m.originTop,I=!1;switch(r){case h:case d:_=m.originTop+m.originHeight/2-this.placeholderWidth/2;break;case s:case a:case o:case l:C===1&&(I=!0,_=m.originTop+m.originHeight/2-this.placeholderWidth/2);break;default:}b?([o,l].includes(r)?this.nextNode=e:this.prevNode=e,this.setPlaceholderRect({x:m.originRight+v/S-this.placeholderHeight/2,y:_,rotate:!0,notRenderLine:I})):E&&([o,l].includes(r)?this.prevNode=e:this.nextNode=e,this.setPlaceholderRect({x:m.originLeft-this.placeholderHeight-x/S+this.placeholderHeight/2,y:_,rotate:!0,notRenderLine:I}))}this.checkIsOverlap({node:e,dir:"h",prevBrotherOffset:x,nextBrotherOffset:v,size:g,pos:c,nodeRect:m})}}getNodeDistanceToSiblingNode(e,t,r,n){let{TOP:s,LEFT:a,BOTTOM:o,RIGHT:l}=A.LAYOUT_GROW_DIR,{scaleX:h,scaleY:d}=this.drawTransform,c=n==="v"?s:a,f=n==="v"?o:l,m=n==="v"?d:h,g=this.minOffset*m,x=Ee(t,e),v=null,b=null;x!==-1&&(x-1>=0&&(v=e[x-1]),x+1<=e.length-1&&(b=e[x+1]));let E=0;if(v){let C=this.getNodeRect(v);E=r[c]-C[f],E=E>=g?E/2:0}else E=g;let S=0;return b?(S=this.getNodeRect(b)[c]-r[f],S=S>=g?S/2:0):S=g,{prevBrother:v,prevBrotherOffset:E,nextBrother:b,nextBrotherOffset:S}}setPlaceholderRect({x:e,y:t,dir:r,rotate:n,notRenderLine:s}){let a=this.placeholderWidth,o=this.placeholderHeight;if(n){let f=a;a=o,o=f}if(this.placeholder.size(a,o).move(e,t),s)return;let{dragPlaceholderLineConfig:l}=this.mindMap.opt,h=null,d=null;this.overlapNode?(h=this.overlapNode,d=this.overlapNode):(h=this.prevNode||this.nextNode,d=h.parent),d=d.fakeClone(),h=h.fakeClone();let c=this.beingDragNodeList[0].fakeClone();c.dir=r,c.left=e,c.top=t,c.width=a,c.height=o,d.children=[c],d._lines=[],this.placeHolderLine.show(),this.mindMap.renderer.layout.renderLine(d,[this.placeHolderLine],(...f)=>{},h.style.getStyle("lineStyle",!0)),this.placeHolderExtraLines=[...d._lines],this.placeHolderExtraLines.forEach(f=>{this.mindMap.otherDraw.add(f),f.stroke({color:l.color,width:l.width}).fill({color:"none"})})}checkIsOverlap({node:e,dir:t,prevBrotherOffset:r,nextBrotherOffset:n,size:s,pos:a,nodeRect:o}){let{TOP:l,LEFT:h,BOTTOM:d,RIGHT:c}=A.LAYOUT_GROW_DIR,f=t==="v"?l:h,m=t==="v"?d:c;!this.overlapNode&&!this.prevNode&&!this.nextNode&&o[f]+(r>0?0:s)<=a&&o[m]-(n>0?0:s)>=a&&(this.overlapNode=e)}handleLogicalStructure(e){let t=this.commonGetNodeCheckList(e);this.handleVerticalCheck(e,t)}handleMindMap(e){let t=e.parent?e.parent.children.filter(r=>{let n=!0;return e.layerIndex===1&&(n=r.dir===e.dir),n&&!this.checkIsInBeingDragNodeList(r)}):[];this.handleVerticalCheck(e,t)}handleOrganizationStructure(e){let t=this.commonGetNodeCheckList(e);this.handleHorizontalCheck(e,t)}handleCatalogOrganization(e){let t=this.commonGetNodeCheckList(e);e.layerIndex===1?this.handleHorizontalCheck(e,t):this.handleVerticalCheck(e,t)}handleTimeLine(e){let t=this.commonGetNodeCheckList(e);e.layerIndex===1?this.handleHorizontalCheck(e,t):this.handleVerticalCheck(e,t)}handleTimeLine2(e){let t=this.commonGetNodeCheckList(e);e.layerIndex===1?this.handleHorizontalCheck(e,t):e.dir===A.LAYOUT_GROW_DIR.TOP&&e.layerIndex===2?this.handleVerticalCheck(e,t,!0):this.handleVerticalCheck(e,t)}handleFishbone(e){let t=e.parent?e.parent.children.filter(r=>r.layerIndex>1&&!this.checkIsInBeingDragNodeList(r)):[];if(e.layerIndex===1)this.handleHorizontalCheck(e,t);else{let r=e.dir===A.LAYOUT_GROW_DIR.TOP&&e.layerIndex===2,n=e.dir===A.LAYOUT_GROW_DIR.BOTTOM&&e.layerIndex>=3;r||n?this.handleVerticalCheck(e,t,!0):this.handleVerticalCheck(e,t)}}commonGetNodeCheckList(e){return e.parent?[...e.parent.children].filter(t=>!this.checkIsInBeingDragNodeList(t)):[]}getNodeRect(e){let{scaleX:t,scaleY:r,translateX:n,translateY:s}=this.drawTransform,{left:a,top:o,width:l,height:h}=e,d=l,c=h,f=a,m=o,g=o+h,x=a+l,v=(a+l)*t+n,b=(o+h)*r+s;return a=a*t+n,o=o*r+s,{left:a,top:o,right:v,bottom:b,originWidth:d,originHeight:c,originLeft:f,originTop:m,originBottom:g,originRight:x}}checkIsInBeingDragNodeList(e){return!!this.beingDragNodeList.find(t=>t.uid===e.uid||t.isAncestor(e))}beforePluginRemove(){this.unBindEvent()}beforePluginDestroy(){this.unBindEvent()}};l0.instanceName="drag";$M=l0});var w3={};ti(w3,{default:()=>jM});var h0,jM,M3=M(()=>{he();Oe();h0=class{constructor(e){this.opt=e,this.mindMap=e.mindMap,this.addShortcut()}addShortcut(){this.onLeftKeyUp=this.onLeftKeyUp.bind(this),this.onUpKeyUp=this.onUpKeyUp.bind(this),this.onRightKeyUp=this.onRightKeyUp.bind(this),this.onDownKeyUp=this.onDownKeyUp.bind(this),this.mindMap.keyCommand.addShortcut(A.KEY_DIR.LEFT,this.onLeftKeyUp),this.mindMap.keyCommand.addShortcut(A.KEY_DIR.UP,this.onUpKeyUp),this.mindMap.keyCommand.addShortcut(A.KEY_DIR.RIGHT,this.onRightKeyUp),this.mindMap.keyCommand.addShortcut(A.KEY_DIR.DOWN,this.onDownKeyUp)}removeShortcut(){this.mindMap.keyCommand.removeShortcut(A.KEY_DIR.LEFT,this.onLeftKeyUp),this.mindMap.keyCommand.removeShortcut(A.KEY_DIR.UP,this.onUpKeyUp),this.mindMap.keyCommand.removeShortcut(A.KEY_DIR.RIGHT,this.onRightKeyUp),this.mindMap.keyCommand.removeShortcut(A.KEY_DIR.DOWN,this.onDownKeyUp)}onLeftKeyUp(){this.onKeyup(A.KEY_DIR.LEFT)}onUpKeyUp(){this.onKeyup(A.KEY_DIR.UP)}onRightKeyUp(){this.onKeyup(A.KEY_DIR.RIGHT)}onDownKeyUp(){this.onKeyup(A.KEY_DIR.DOWN)}onKeyup(e){if(this.mindMap.renderer.activeNodeList.length>0)this.focus(e);else{let t=this.mindMap.renderer.root;this.mindMap.execCommand("GO_TARGET_NODE",t)}}focus(e){let t=this.mindMap.renderer.activeNodeList[0],r=this.getNodeRect(t),n=null,s=1/0,a=(o,l)=>{let h=this.getDistance(r,o);h{if(s.uid===e.uid)return;let a=this.getNodeRect(s),{left:o,top:l,right:h,bottom:d}=a,c=!1;r===A.KEY_DIR.LEFT?c=h<=t.left:r===A.KEY_DIR.RIGHT?c=o>=t.right:r===A.KEY_DIR.UP?c=d<=t.top:r===A.KEY_DIR.DOWN&&(c=l>=t.bottom),c&&n(a,s)})}getFocusNodeByShadowAlgorithm({currentActiveNode:e,currentActiveNodeRect:t,dir:r,checkNodeDis:n}){Pt(this.mindMap.renderer.root,s=>{if(s.uid===e.uid)return;let a=this.getNodeRect(s),{left:o,top:l,right:h,bottom:d}=a,c=!1;r===A.KEY_DIR.LEFT?c=ot.top:r===A.KEY_DIR.RIGHT?c=h>t.right&&lt.top:r===A.KEY_DIR.UP?c=lt.left:r===A.KEY_DIR.DOWN&&(c=d>t.bottom&&ot.left),c&&n(a,s)})}getFocusNodeByAreaAlgorithm({currentActiveNode:e,currentActiveNodeRect:t,dir:r,checkNodeDis:n}){let s=(t.right+t.left)/2,a=(t.bottom+t.top)/2;Pt(this.mindMap.renderer.root,o=>{if(o.uid===e.uid)return;let l=this.getNodeRect(o),{left:h,top:d,right:c,bottom:f}=l,m=(c+h)/2,g=(f+d)/2,x=m-s,v=g-a;if(x===0&&v===0)return;let b=!1;r===A.KEY_DIR.LEFT?b=x<=0&&x<=v&&x<=-v:r===A.KEY_DIR.RIGHT?b=x>0&&x>=-v&&x>=v:r===A.KEY_DIR.UP?b=v<=0&&v0&&-vx),b&&n(l,o)})}getNodeRect(e){let{scaleX:t,scaleY:r,translateX:n,translateY:s}=this.mindMap.draw.transform(),{left:a,top:o,width:l,height:h}=e;return{right:(a+l)*t+n,bottom:(o+h)*r+s,left:a*t+n,top:o*r+s}}getDistance(e,t){let r=this.getCenter(e),n=this.getCenter(t);return Math.sqrt(Math.pow(r.x-n.x,2)+Math.pow(r.y-n.y,2))}getCenter({left:e,right:t,top:r,bottom:n}){return{x:(e+t)/2,y:(r+n)/2}}beforePluginRemove(){this.removeShortcut()}beforePluginDestroy(){this.removeShortcut()}};h0.instanceName="keyboardNavigation";jM=h0});var Pc,d0,Bc,T3,GM,YM,WM,c0,VM,N3,E3=M(()=>{Pc=i=>String(i).split(/\s+/).map(t=>{if(/^[\d.]+/.test(t)){let r=/^([\d.]+)(.*)$/.exec(t);return[Number(r[1]),r[2]]}else return t}),d0=(i,e)=>i*e,Bc=(i,e)=>e/i,T3={left:0,top:0,center:50,bottom:100,right:100},GM=({backgroundSize:i,drawOpt:e,imageRatio:t,canvasWidth:r,canvasHeight:n,canvasRatio:s})=>{if(i){let a=Pc(i);if(a[0]==="auto"&&a[1]==="auto")return;if(a[0]==="cover"){t>s?(e.height=n,e.width=d0(t,n)):(e.width=r,e.height=Bc(t,r));return}if(a[0]==="contain"){t>s?(e.width=r,e.height=Bc(t,r)):(e.height=n,e.width=d0(t,n));return}let o=-1;a[0]&&(Array.isArray(a[0])?a[0][1]==="%"?(e.width=a[0][0]/100*r,o=e.width):(e.width=a[0][0],o=a[0][0]):a[0]==="auto"&&a[1]&&(a[1][1]==="%"?e.width=d0(t,a[1][0]/100*n):e.width=d0(t,a[1][0]))),a[1]&&Array.isArray(a[1])?a[1][1]==="%"?e.height=a[1][0]/100*n:e.height=a[1][0]:o!==-1&&(e.height=Bc(t,o))}},YM=({backgroundPosition:i,drawOpt:e,imgWidth:t,imgHeight:r,canvasWidth:n,canvasHeight:s})=>{if(i){let a=Pc(i);if(a=a.map(o=>typeof o=="string"&&T3[o]!==void 0?[T3[o],"%"]:o),Array.isArray(a[0])){if(a.length===1&&a.push([50,"%"]),a[0][1]==="%"){let o=a[0][0]/100*n,l=a[0][0]/100*t;e.x=o-l}else e.x=a[0][0];if(a[1][1]==="%"){let o=a[1][0]/100*s,l=a[1][0]/100*r;e.y=o-l}else e.y=a[1][0]}}},WM=({ctx:i,image:e,backgroundRepeat:t,drawOpt:r,imgWidth:n,imgHeight:s,canvasWidth:a,canvasHeight:o})=>{if(t){let l=r.x,h=r.y,d=Math.ceil(l/n),c=Math.ceil(h/s),f=l-d*n,m=h-c*s,g=Pc(t);if(g[0]==="no-repeat"||n>=a&&s>=o)return;if(g[0]==="repeat-x"&&a>n){let x=f;for(;xs){let x=m;for(;xs){let v=m;for(;v{i.drawImage(e,t.sx,t.sy,t.swidth,t.sheight,t.x,t.y,t.width,t.height)},VM=(i,e,t,r,{backgroundSize:n,backgroundPosition:s,backgroundRepeat:a},o=()=>{})=>{let l=e/t,h=new Image;h.src=r,h.onload=()=>{let d=h.width,c=h.height,f=d/c,m={sx:0,sy:0,swidth:d,sheight:c,x:0,y:0,width:d,height:c};GM({backgroundSize:n,drawOpt:m,imageRatio:f,canvasWidth:e,canvasHeight:t,canvasRatio:l}),YM({backgroundPosition:s,drawOpt:m,imgWidth:m.width,imgHeight:m.height,imageRatio:f,canvasWidth:e,canvasHeight:t,canvasRatio:l}),WM({ctx:i,image:h,backgroundRepeat:a,drawOpt:m,imgWidth:m.width,imgHeight:m.height,imageRatio:f,canvasWidth:e,canvasHeight:t,canvasRatio:l})||c0(i,h,m),o()},h.onerror=d=>{o(d)}},N3=VM});var Fc,XM,KM,S3,A3=M(()=>{he();Fc=i=>i.richText?t0(i.text):i.text,XM=i=>new Array(i).fill("#").join(""),KM=i=>new Array(i-6).fill(" ").join("")+"*",S3=i=>{let e="";return se(i,null,(t,r,n,s)=>{let a=s+1;a<=6?e+=XM(a):e+=KM(a),e+=" "+Fc(t.data);let o=t.data.generalization;if(Array.isArray(o))e+=o.map(l=>` [${Fc(l)}]`);else if(o&&o.text){let l=Fc(o);e+=` [${l}]`}e+=` + `,this.mindMap.el.appendChild(this.mindMap.commonCaches.measureCustomNodeContentSizeEl)),this.mindMap.commonCaches.measureCustomNodeContentSizeEl.innerHTML="",this.mindMap.commonCaches.measureCustomNodeContentSizeEl.appendChild(i);let e=this.mindMap.commonCaches.measureCustomNodeContentSizeEl.getBoundingClientRect();return{width:e.width,height:e.height}}function RN(){return!!this._customNodeContent}var wN,j2,ku,G2=T(()=>{pe();yt();$2();$e();wN=(i,e)=>{let t=new _e,r=new Ce().text(i);return e.text(r),t.add(r),t.bbox()},j2={radius:3,fontSize:12,fill:"",height:20,paddingX:8};ku={createImgNode:MN,getImgShowSize:TN,createIconNode:NN,createRichTextNode:EN,createTextNode:SN,createHyperlinkNode:AN,createTagNode:kN,createNoteNode:CN,createAttachmentNode:_N,getNoteContentPosition:IN,getNodeIconSize:LN,measureCustomNodeContentSize:zN,isUseCustomNodeContent:RN}});function DN(){if(this.getChildrenLength()<=0||this.isRoot)return;let{alwaysShowExpandBtn:i,notShowExpandBtn:e,expandBtnSize:t}=this.mindMap.opt;if(!i&&!e){let{width:r,height:n}=this;this._unVisibleRectRegionNode||(this._unVisibleRectRegionNode=new Ve,this._unVisibleRectRegionNode.fill({color:"transparent"})),this.group.add(this._unVisibleRectRegionNode),this.renderer.layout.renderExpandBtnRect(this._unVisibleRectRegionNode,t,r,n,this)}}function ON(){this._unVisibleRectRegionNode&&(this._unVisibleRectRegionNode.remove(),this._unVisibleRectRegionNode=null)}function BN(){this.needRerenderExpandBtnPlaceholderRect&&(this.needRerenderExpandBtnPlaceholderRect=!1,this.renderExpandBtnPlaceholderRect()),this.getChildrenLength()>0?this._unVisibleRectRegionNode||this.renderExpandBtnPlaceholderRect():this._unVisibleRectRegionNode&&this.clearExpandBtnPlaceholderRect()}var Cu,V2=T(()=>{yt();Cu={renderExpandBtnPlaceholderRect:DN,clearExpandBtnPlaceholderRect:ON,updateExpandBtnPlaceholderRect:BN}});function PN(){this.checkEnableDragModifyNodeWidth()&&(this._dragHandleNodes=null,this.dragHandleWidth=4,this.dragHandleMousedownX=0,this.isDragHandleMousedown=!1,this.dragHandleIndex=0,this.dragHandleMousedownCustomTextWidth=0,this.dragHandleMousedownBodyCursor="",this.dragHandleMousedownLeft=0,this.onDragMousemoveHandle=this.onDragMousemoveHandle.bind(this),window.addEventListener("mousemove",this.onDragMousemoveHandle),this.onDragMouseupHandle=this.onDragMouseupHandle.bind(this),window.addEventListener("mouseup",this.onDragMouseupHandle),this.mindMap.on("node_mouseup",this.onDragMouseupHandle))}function FN(i){if(!this.isDragHandleMousedown)return;i.stopPropagation(),i.preventDefault();let{minNodeTextModifyWidth:e,maxNodeTextModifyWidth:t,isUseCustomNodeContent:r,customCreateNodeContent:n}=this.mindMap.opt,s=r&&n&&this._customNodeContent;document.body.style.cursor="ew-resize",this.group.css({cursor:"ew-resize"});let{scaleX:a}=this.mindMap.draw.transform(),o=i.clientX-this.dragHandleMousedownX,l=this.dragHandleMousedownCustomTextWidth+(this.dragHandleIndex===0?-o:o)/a;if(l=Math.max(l,e),t!==-1&&(l=Math.min(l,t)),!s&&this.getData("image")){let h=this.getImgShowSize();this._rectInfo.textContentWidth-this.customTextWidth+l<=h[0]&&(l=h[0]+this.customTextWidth-this._rectInfo.textContentWidth)}this.customTextWidth=l,this.dragHandleIndex===0&&(this.left=this.dragHandleMousedownLeft+o/a),this.reRender(s?[]:["text"],{ignoreUpdateCustomTextWidth:!0})}function qN(){this.isDragHandleMousedown&&(document.body.style.cursor=this.dragHandleMousedownBodyCursor,this.group.css({cursor:"default"}),this.isDragHandleMousedown=!1,this.dragHandleMousedownX=0,this.dragHandleIndex=0,this.dragHandleMousedownCustomTextWidth=0,this.setData({customTextWidth:this.customTextWidth}),this.mindMap.render(),this.mindMap.emit("dragModifyNodeWidthEnd",this))}function HN(){let i=[new Ve,new Ve];return i.forEach((e,t)=>{e.size(this.dragHandleWidth,this.height).fill({color:"transparent"}).css({cursor:"ew-resize"}),e.on("mousedown",r=>{r.stopPropagation(),r.preventDefault(),this.dragHandleMousedownX=r.clientX,this.dragHandleIndex=t,this.dragHandleMousedownCustomTextWidth=this.customTextWidth===void 0?this._textData?this._textData.width:this.width:this.customTextWidth,this.dragHandleMousedownBodyCursor=document.body.style.cursor,this.dragHandleMousedownLeft=this.left,this.isDragHandleMousedown=!0})}),i}function UN(){this.checkEnableDragModifyNodeWidth()&&(this._dragHandleNodes||(this._dragHandleNodes=this.createDragHandleNode()),this.getData("isActive")?(this._dragHandleNodes.forEach(i=>{i.height(this.height),this.group.add(i)}),this._dragHandleNodes[1].x(this.width-this.dragHandleWidth)):this._dragHandleNodes.forEach(i=>{i.remove()}))}var _u,W2=T(()=>{yt();_u={initDragHandle:PN,onDragMousemoveHandle:FN,onDragMouseupHandle:qN,createDragHandleNode:HN,updateDragHandle:UN}});function $N(){this.mindMap.cooperate&&(this._userListGroup=new _e,this.group.add(this._userListGroup))}function jN(i){let{avatarSize:e,fontSize:t}=this.mindMap.opt.cooperateStyle,r=new _e,n=i.isMore?i.name:String(i.name)[0],s=new Wi().size(e,e);s.fill({color:i.color||G0(n)});let a=new Ce().text(n).fill({color:"#fff"}).css({"font-size":t+"px"}).dx(-t/2).dy((e-t)/2);return r.add(s).add(a),r}function GN(i){let{avatarSize:e}=this.mindMap.opt.cooperateStyle;return new ji().load(i.avatar).size(e,e)}function VN(){if(!this._userListGroup)return;let{avatarSize:i}=this.mindMap.opt.cooperateStyle;this._userListGroup.clear();let e=this.userList.length,t=Math.floor(this.width/i),r=[];e>t?r.push(...this.userList.slice(0,t-1),{isMore:!0,name:"+"+(e-t+1)}):r.push(...this.userList),r.forEach((n,s)=>{let a=null;n.avatar?a=this.createImageAvatar(n):a=this.createTextAvatar(n),a.on("click",o=>{this.mindMap.emit("node_cooperate_avatar_click",n,this,a,o)}),a.on("mouseenter",o=>{this.mindMap.emit("node_cooperate_avatar_mouseenter",n,this,a,o)}),a.on("mouseleave",o=>{this.mindMap.emit("node_cooperate_avatar_mouseleave",n,this,a,o)}),a.x(s*i).cy(-i/2),this._userListGroup.add(a)})}function WN(i){this.userList.find(e=>e.id==i.id)||(this.userList.push(i),this.updateUserListNode())}function YN(i){let e=this.userList.findIndex(t=>t.id==i.id);e!==-1&&(this.userList.splice(e,1),this.updateUserListNode())}function XN(){this.userList=[],this.updateUserListNode()}var Lu,Y2=T(()=>{yt();pe();Lu={createUserListNode:$N,updateUserListNode:VN,createTextAvatar:jN,createImageAvatar:GN,addUser:WN,removeUser:YN,emptyUser:XN}});function KN(){this.isGeneralization||(this._quickCreateChildBtn=null,this._showQuickCreateChildBtn=!1)}function ZN(){if(!(this.isGeneralization||this.getChildrenLength()>0)){if(this._quickCreateChildBtn)this.group.add(this._quickCreateChildBtn);else{let{quickCreateChildBtnIcon:i,expandBtnStyle:e,expandBtnSize:t}=this.mindMap.opt,{icon:r,style:n}=i,{color:s,fill:a}=e||{color:"#808080",fill:"#fff"};s=n.color||s;let o=Ae(r||Uo.quickCreateChild).size(t,t);o.css({cursor:"pointer"}),o.x(0).y(-t/2),this.style.iconNode(o,s);let l=new Wi().size(t);l.x(0).y(-t/2),l.fill({color:a}).css({cursor:"pointer"}),this._quickCreateChildBtn=new _e,this._quickCreateChildBtn.add(l).add(o),this._quickCreateChildBtn.on("click",h=>{h.stopPropagation(),this.mindMap.emit("quick_create_btn_click",this);let{customQuickCreateChildBtnClick:d}=this.mindMap.opt;if(typeof d=="function"){d(this);return}this.mindMap.execCommand("INSERT_CHILD_NODE",!0,[this])}),this._quickCreateChildBtn.on("dblclick",h=>{h.stopPropagation()}),this._quickCreateChildBtn.addClass("smm-quick-create-child-btn"),this.group.add(this._quickCreateChildBtn)}this._showQuickCreateChildBtn=!0,this.renderer.layout.renderExpandBtn(this,this._quickCreateChildBtn)}}function QN(){this.isGeneralization||this._quickCreateChildBtn&&this._showQuickCreateChildBtn&&(this._quickCreateChildBtn.remove(),this._showQuickCreateChildBtn=!1)}function JN(){if(this.isGeneralization)return;let{isActive:i}=this.getData();i||this.removeQuickCreateChildBtn()}var Iu,X2=T(()=>{Eu();yt();Iu={initQuickCreateChildBtn:KN,showQuickCreateChildBtn:ZN,removeQuickCreateChildBtn:QN,hideQuickCreateChildBtn:JN}});function eE(i,e,t,r,n){let{imgTextMargin:s}=this.mindMap.opt;return i==="v"?r>0&&n>0?s:0:e>0&&t>0?s:0}function tE(i){let e=0,t=this._tagData.reduce((r,n)=>(e=Math.max(e,n.height),r+=n.width),0);return t+=(this._tagData.length-1)*i,{width:t,height:e}}function iE(){if(this.isUseCustomNodeContent()){let C=this.measureCustomNodeContentSize(this._customNodeContent);return{width:this.hasCustomWidth()?this.customTextWidth:C.width,height:C.height}}let{TAG_PLACEMENT:i,IMG_PLACEMENT:e}=k,{textContentMargin:t}=this.mindMap.opt,n=(this.getStyle("tagPlacement")||i.RIGHT)===i.BOTTOM,s=this.getStyle("imgPlacement")||e.TOP,a=0,o=0,l=0,h=0,d=0,c=0,f=0;if(this._imgData&&(a=this._imgData.width,o=this._imgData.height),this.mindMap.nodeInnerPrefixList.forEach(C=>{let I=this[`_${C.name}Data`];I&&(l+=I.width,h=Math.max(h,I.height),f++)}),this._prefixData&&(l+=this._prefixData.width,h=Math.max(h,this._prefixData.height),f++),this._iconData.length>0&&(l+=this._iconData.reduce((C,I)=>(h=Math.max(h,I.height),C+=I.width),0)+(this._iconData.length-1)*t,f++),this._textData&&(l+=this._textData.width,h=Math.max(h,this._textData.height),f++),this._hyperlinkData&&(l+=this._hyperlinkData.width,h=Math.max(h,this._hyperlinkData.height),f++),this._tagData.length>0){let{width:C,height:I}=this.getTagContentSize(t);n?(d=C,c=I):(l+=C,h=Math.max(h,I),f++)}this._noteData&&(l+=this._noteData.width,h=Math.max(h,this._noteData.height),f++),this._attachmentData&&(l+=this._attachmentData.width,h=Math.max(h,this._attachmentData.height),f++),this._postfixData&&(l+=this._postfixData.width,h=Math.max(h,this._postfixData.height),f++),this.mindMap.nodeInnerPostfixList.forEach(C=>{let I=this[`_${C.name}Data`];I&&(l+=I.width,h=Math.max(h,I.height),f++)}),l+=(f-1)*t,n&&l>0&&c>0&&(this._rectInfo.textContentWidthWithoutTag=l,l=Math.max(l,d),h=h+t+c),this._rectInfo.textContentWidth=l,this._rectInfo.textContentHeight=h;let m=0,g=0;[e.TOP,e.BOTTOM].includes(s)?(m=Math.max(a,l),g=o+h+this.getImgTextMarin("v",0,0,o,h)):(m=a+l+this.getImgTextMarin("h",a,l),g=Math.max(o,h));let{paddingX:x,paddingY:y}=this.getPaddingVale(),{paddingX:b,paddingY:S}=this.shapeInstance.getShapePadding(m,g,x,y);this.shapePadding.paddingX=b,this.shapePadding.paddingY=S;let A=this.getBorderWidth();return{width:m+x*2+b*2+A,height:g+y*2+S*2+A}}function rE(){if(!this.group)return;this.group.clear();let{hoverRectPadding:i,openRealtimeRenderOnNodeTextEdit:e,textContentMargin:t,addCustomContentToNode:r}=this.mindMap.opt,{width:n,height:s}=this,{paddingX:a,paddingY:o}=this.getPaddingVale(),l=this.getBorderWidth()/2;a+=this.shapePadding.paddingX+l,o+=this.shapePadding.paddingY+l,this.shapeNode=this.shapeInstance.createShape(),this.shapeNode.addClass("smm-node-shape"),this.shapeNode.translate(l,l),this.style.shape(this.shapeNode),this.group.add(this.shapeNode),this.renderExpandBtnPlaceholderRect(),this.createUserListNode&&this.createUserListNode(),this.isGeneralization&&this.generalizationBelongNode&&this.group.addClass("generalization_"+this.generalizationBelongNode.uid);let h=()=>{this.hoverNode=new Ve().size(n+i*2,s+i*2).x(-i).y(-i),this.hoverNode.addClass("smm-hover-node"),this.style.hoverNode(this.hoverNode,n,s),this.group.add(this.hoverNode)};if(this.isUseCustomNodeContent()){let le=pn({el:this._customNodeContent,width:n,height:s});this.group.add(le),h();return}let{IMG_PLACEMENT:d,TAG_PLACEMENT:c}=k,f=this.getStyle("imgPlacement")||d.TOP,g=(this.getStyle("tagPlacement")||c.RIGHT)===c.BOTTOM,{textContentWidth:x,textContentHeight:y,textContentWidthWithoutTag:b}=this._rectInfo,S=y,A=0,C=0,I=this._tagData&&this._tagData.length>0;if(I){let le=this.getTagContentSize(t);A=le.width,C=le.height,g&&(y-=C+t)}let O=0,q=0;if(this._imgData)switch(O=this._imgData.width,q=this._imgData.height,this.group.add(this._imgData.node),f){case d.TOP:this._imgData.node.cx(n/2).y(o);break;case d.BOTTOM:this._imgData.node.cx(n/2).y(s-o-q);break;case d.LEFT:this._imgData.node.x(a).cy(s/2);break;case d.RIGHT:this._imgData.node.x(n-a-O).cy(s/2);break;default:break}let P=new _e,W=0;if(I&&g&&(W=b{let ce=this[`_${le.name}Data`];ce&&(ce.node.x(W).y((y-ce.height)/2),P.add(ce.node),W+=ce.width+t)}),this._prefixData){let le=pn({el:this._prefixData.el,width:this._prefixData.width,height:this._prefixData.height});le.x(W).y((y-this._prefixData.height)/2),P.add(le),W+=this._prefixData.width+t}let ne=new _e;if(this._iconData&&this._iconData.length>0){let le=0;this._iconData.forEach(ce=>{ce.node.x(W+le).y((y-ce.height)/2),ne.add(ce.node),le+=ce.width+t}),P.add(ne),W+=le}if(this._textData){let le=this._textData.node.attr("data-offsetx")||0;this._textData.node.attr("data-offsetx",W),(this._textData.nodeContent||this._textData.node).x(-le).x(W).y((y-this._textData.height)/2),e&&this._textData.node.opacity(this.mindMap.renderer.textEdit.getCurrentEditNode()===this?0:1),P.add(this._textData.node),W+=this._textData.width+t}this._hyperlinkData&&(this._hyperlinkData.node.x(W).y((y-this._hyperlinkData.height)/2),P.add(this._hyperlinkData.node),W+=this._hyperlinkData.width+t);let re=new _e;if(I)if(g){let le=0;this._tagData.forEach(ce=>{ce.node.x(le).y((C-ce.height)/2),re.add(ce.node),le+=ce.width+t}),re.x((x-A)/2).y(S-C),P.add(re)}else{let le=0;this._tagData.forEach(ce=>{ce.node.x(W+le).y((y-ce.height)/2),re.add(ce.node),le+=ce.width+t}),P.add(re),W+=le}if(this._noteData&&(this._noteData.node.x(W).y((y-this._noteData.height)/2),P.add(this._noteData.node),W+=this._noteData.width+t),this._attachmentData&&(this._attachmentData.node.x(W).y((y-this._attachmentData.height)/2),P.add(this._attachmentData.node),W+=this._attachmentData.width+t),this._postfixData){let le=pn({el:this._postfixData.el,width:this._postfixData.width,height:this._postfixData.height});le.x(W).y((y-this._postfixData.height)/2),P.add(le),W+=this._postfixData.width+t}this.mindMap.nodeInnerPostfixList.forEach(le=>{let ce=this[`_${le.name}Data`];ce&&(ce.node.x(W).y((y-ce.height)/2),P.add(ce.node),W+=ce.width+t)}),this.group.add(P);let{width:oe,height:ke}=P.bbox(),Q=0,Y=0;switch(f){case d.TOP:Q=n/2-oe/2,Y=o+q+this.getImgTextMarin("v",0,0,q,S);break;case d.BOTTOM:Q=n/2-oe/2,Y=o;break;case d.LEFT:Q=O+a+this.getImgTextMarin("h",O,x),Y=s/2-ke/2;break;case d.RIGHT:Q=a,Y=s/2-ke/2;break}if(P.translate(Q,Y),h(),this._customContentAddToNodeAdd&&this._customContentAddToNodeAdd.el){let le=pn(this._customContentAddToNodeAdd);this.group.add(le),r&&typeof r.handle=="function"&&r.handle({content:this._customContentAddToNodeAdd,element:le,node:this})}this.mindMap.emit("node_layout_end",this)}var zu,K2=T(()=>{$e();yt();pe();zu={getImgTextMarin:eE,getTagContentSize:tE,getNodeRect:iE,layout:rE}});var Ru,da,X0=T(()=>{Y0();Tu();yt();F2();q2();H2();G2();V2();W2();Y2();X2();K2();$e();pe();Ru=class i{constructor(e={}){this.opt=e,this.nodeData=this.handleData(e.data||{}),this.nodeDataSnapshot="",this.uid=e.uid,this.mindMap=e.mindMap,this.renderer=e.renderer,this.draw=this.mindMap.draw,this.nodeDraw=this.mindMap.nodeDraw,this.lineDraw=this.mindMap.lineDraw,this.style=new qo(this),this.effectiveStyles={},this.shapeInstance=new Ho(this),this.shapePadding={paddingX:0,paddingY:0},this.isRoot=e.isRoot===void 0?!1:e.isRoot,this.isGeneralization=e.isGeneralization===void 0?!1:e.isGeneralization,this.generalizationBelongNode=null,this.layerIndex=e.layerIndex===void 0?0:e.layerIndex,this.width=e.width||0,this.height=e.height||0,this.customTextWidth=e.data.data.customTextWidth||void 0,this._left=e.left||0,this._top=e.top||0,this.customLeft=e.data.data.customLeft||void 0,this.customTop=e.data.data.customTop||void 0,this.isDrag=!1,this.parent=e.parent||null,this.children=e.children||[],this.userList=[],this.group=null,this.shapeNode=null,this.hoverNode=null,this._customNodeContent=null,this._imgData=null,this._iconData=null,this._textData=null,this._hyperlinkData=null,this._tagData=null,this._noteData=null,this.noteEl=null,this.noteContentIsShow=!1,this._attachmentData=null,this._prefixData=null,this._postfixData=null,this._expandBtn=null,this._lastExpandBtnType=null,this._showExpandBtn=!1,this._openExpandNode=null,this._closeExpandNode=null,this._fillExpandNode=null,this._userListGroup=null,this._lines=[],this._generalizationList=[],this._unVisibleRectRegionNode=null,this._isMouseenter=!1,this._customContentAddToNodeAdd=null,this._rectInfo={textContentWidth:0,textContentHeight:0,textContentWidthWithoutTag:0},this._generalizationNodeWidth=0,this._generalizationNodeHeight=0,this.expandBtnSize=this.mindMap.opt.expandBtnSize,this.isMultipleChoice=!1,this.needLayout=!1,this.isHide=!1;let t=Object.getPrototypeOf(this);t.bindEvent||(Object.keys(zu).forEach(r=>{t[r]=zu[r]}),Object.keys(Nu).forEach(r=>{t[r]=Nu[r]}),Object.keys(Su).forEach(r=>{t[r]=Su[r]}),Object.keys(Cu).forEach(r=>{t[r]=Cu[r]}),Object.keys(Au).forEach(r=>{t[r]=Au[r]}),Object.keys(ku).forEach(r=>{t[r]=ku[r]}),this.mindMap.cooperate&&Object.keys(Lu).forEach(r=>{t[r]=Lu[r]}),Object.keys(_u).forEach(r=>{t[r]=_u[r]}),this.mindMap.opt.isShowCreateChildBtnIcon&&(Object.keys(Iu).forEach(r=>{t[r]=Iu[r]}),this.initQuickCreateChildBtn()),t.bindEvent=!0),this.getSize(),this.updateGeneralization(),this.initDragHandle()}get left(){return this.customLeft||this._left}set left(e){this._left=e}get top(){return this.customTop||this._top}set top(e){this._top=e}reset(){this.children=[],this.parent=null,this.isRoot=!1,this.layerIndex=0,this.left=0,this.top=0}resetWhenDelete(){this._isMouseenter=!1}handleData(e){return e.data.expand=e.data.expand!==!1,e.data.isActive=e.data.isActive===!0,e.children=e.children||[],e}createNodeData(e){let{isUseCustomNodeContent:t,customCreateNodeContent:r,createNodePrefixContent:n,createNodePostfixContent:s,addCustomContentToNode:a}=this.mindMap.opt,o=["custom","image","icon","text","hyperlink","tag","note","attachment","prefix","postfix",...this.mindMap.nodeInnerPrefixList.map(h=>h.name),...this.mindMap.nodeInnerPostfixList.map(h=>h.name)],l={};if(Array.isArray(e)?o.forEach(h=>{e.includes(h)&&(l[h]=!0)}):o.forEach(h=>{l[h]=!0}),t&&r&&l.custom&&(this._customNodeContent=r(this)),this._customNodeContent){or(this._customNodeContent);return}l.image&&(this._imgData=this.createImgNode()),l.icon&&(this._iconData=this.createIconNode()),l.text&&(this._textData=this.createTextNode()),l.hyperlink&&(this._hyperlinkData=this.createHyperlinkNode()),l.tag&&(this._tagData=this.createTagNode()),l.note&&(this._noteData=this.createNoteNode()),l.attachment&&(this._attachmentData=this.createAttachmentNode()),this.mindMap.nodeInnerPrefixList.forEach(h=>{l[h.name]&&(this[`_${h.name}Data`]=h.createContent(this))}),l.prefix&&(this._prefixData=n?n(this):null,this._prefixData&&this._prefixData.el&&or(this._prefixData.el)),l.postfix&&(this._postfixData=s?s(this):null,this._postfixData&&this._postfixData.el&&or(this._postfixData.el)),this.mindMap.nodeInnerPostfixList.forEach(h=>{l[h.name]&&(this[`_${h.name}Data`]=h.createContent(this))}),a&&typeof a.create=="function"&&(this._customContentAddToNodeAdd=a.create(this),this._customContentAddToNodeAdd&&this._customContentAddToNodeAdd.el&&or(this._customContentAddToNodeAdd.el))}getSize(e,t={}){t.ignoreUpdateCustomTextWidth||(this.customTextWidth=this.getData("customTextWidth")||void 0),this.customLeft=this.getData("customLeft")||void 0,this.customTop=this.getData("customTop")||void 0,this.createNodeData(e);let{width:n,height:s}=this.getNodeRect(),a=this.width!==n||this.height!==s;return this.width=n,this.height=s,a}bindGroupEvent(){this.group.on("click",e=>{if(this.mindMap.emit("node_click",this,e),this.isMultipleChoice){e.stopPropagation(),this.isMultipleChoice=!1;return}this.mindMap.opt.onlyOneEnableActiveNodeOnCooperate&&this.userList.length>0||this.active(e)}),this.group.on("mousedown",e=>{let{readonly:t,enableCtrlKeyNodeSelection:r,useLeftKeySelectionRightKeyDrag:n,mousedownEventPreventDefault:s}=this.mindMap.opt;if(s&&e.preventDefault(),t||(this.isRoot?e.which===3&&!n&&e.stopPropagation():e.which!==2&&e.stopPropagation()),!t&&(e.ctrlKey||e.metaKey)&&r){this.isMultipleChoice=!0;let a=this.getData("isActive");a||this.mindMap.emit("before_node_active",this,this.renderer.activeNodeList),this.mindMap.renderer[a?"removeNodeFromActiveList":"addNodeToActiveList"](this,!0),this.renderer.emitNodeActiveEvent(a?null:this)}this.mindMap.emit("node_mousedown",this,e)}),this.group.on("mouseup",e=>{!this.isRoot&&e.which!==2&&!this.mindMap.opt.readonly&&e.stopPropagation(),this.mindMap.emit("node_mouseup",this,e)}),this.group.on("mouseenter",e=>{this.isDrag||(this._isMouseenter=!0,this.showExpandBtn(),this.isGeneralization&&this.handleGeneralizationMouseenter(),this.mindMap.emit("node_mouseenter",this,e))}),this.group.on("mouseleave",e=>{this._isMouseenter&&(this._isMouseenter=!1,this.hideExpandBtn(),this.isGeneralization&&this.handleGeneralizationMouseleave(),this.mindMap.emit("node_mouseleave",this,e))}),this.group.on("dblclick",e=>{let{readonly:t,onlyOneEnableActiveNodeOnCooperate:r}=this.mindMap.opt;t||e.ctrlKey||e.metaKey||(e.stopPropagation(),!(r&&this.userList.length>0)&&this.mindMap.emit("node_dblclick",this,e))}),this.group.on("contextmenu",e=>{let{readonly:t,useLeftKeySelectionRightKeyDrag:r}=this.mindMap.opt;t||e.ctrlKey||(e.stopPropagation(),e.preventDefault(),!(this.mindMap.select&&!r&&this.mindMap.select.hasSelectRange())&&(this.getData("isActive")&&this.renderer.activeNodeList.length===1||(this.renderer.clearActiveNodeList(),this.active(e)),this.mindMap.emit("node_contextmenu",e,this)))})}active(e){this.mindMap.opt.readonly||(e&&e.stopPropagation(),!this.getData("isActive")&&(this.mindMap.emit("before_node_active",this,this.renderer.activeNodeList),this.renderer.clearActiveNodeList(),this.renderer.addNodeToActiveList(this,!0),this.renderer.emitNodeActiveEvent(this)))}deactivate(){this.mindMap.renderer.removeNodeFromActiveList(this),this.mindMap.renderer.emitNodeActiveEvent()}update(e){if(!this.group)return;this.updateNodeActiveClass();let{alwaysShowExpandBtn:t,notShowExpandBtn:r,isShowCreateChildBtnIcon:n,readonly:s}=this.mindMap.opt,a=this.getChildrenLength();if(!r)if(t)this._expandBtn&&a<=0?this.removeExpandBtn():this.renderExpandBtn();else{let{isActive:l,expand:h}=this.getData();a<=0?this.removeExpandBtn():h&&!l&&!this._isMouseenter?this.hideExpandBtn():this.showExpandBtn()}if(n)if(a>0)this.removeQuickCreateChildBtn();else{let{isActive:l}=this.getData();l?this.showQuickCreateChildBtn():this.hideQuickCreateChildBtn()}this.updateDragHandle(),this.renderGeneralization(e),this.updateUserListNode&&this.updateUserListNode();let o=this.group.transform();this.nodeDataSnapshot=s?"":JSON.stringify(this.getData()),(this.left!==o.translateX||this.top!==o.translateY)&&this.group.translate(this.left-o.translateX,this.top-o.translateY)}getNodePosInClient(e,t){let r=this.mindMap.draw.transform(),{scaleX:n,scaleY:s,translateX:a,translateY:o}=r,l=e*n+a,h=t*s+o;return{left:l,top:h}}checkIsInClient(e=0){let{left:t,top:r}=this.getNodePosInClient(this.left,this.top);return t+this.width>0-e&&r+this.height>0-e&&t{},t=!1,r=!1){this.renderLine();let{openPerformance:n,performanceConfig:s}=this.mindMap.opt;if(t||!n||this.checkIsInClient(s.padding)||this.isRoot?this.group?(this.nodeDraw.has(this.group)||this.nodeDraw.add(this.group),this.needLayout&&(this.needLayout=!1,this.layout()),this.updateExpandBtnPlaceholderRect(),this.update(t)):(this.group=new _e,this.group.addClass("smm-node"),this.group.css({cursor:"default"}),this.bindGroupEvent(),this.nodeDraw.add(this.group),this.layout(),this.update(t)):n&&s.removeNodeWhenOutCanvas&&this.removeSelf(),this.children&&this.children.length&&this.getData("expand")!==!1){let a=0;this.children.forEach(o=>{let l=()=>{o.render(()=>{a++,a>=this.children.length&&e()},t,r)};r?setTimeout(l,0):l()})}else e();this.nodeData.inserting&&(delete this.nodeData.inserting,this.active(),this.mindMap.emit("node_dblclick",this,null,!0))}removeSelf(){this.group&&(this.group.remove(),this.removeGeneralization())}remove(){this.group&&(this.group.remove(),this.removeGeneralization(),this.removeLine(),this.children&&this.children.length&&this.children.forEach(e=>{e.remove()}))}destroy(){this.removeLine(),this.parent&&this.parent.removeLine(),this.group&&(this.emptyUser&&this.emptyUser(),this.resetWhenDelete(),this.group.remove(),this.removeGeneralization(),this.group=null,this.style.onRemove())}hide(){if(this.group&&this.group.hide(),this.hideGeneralization(),this.parent){let e=this.parent.children.indexOf(this);this.parent._lines[e]&&this.parent._lines[e].hide(),this._lines.forEach(t=>{t.hide()})}this.children&&this.children.length&&this.children.forEach(e=>{e.hide()})}show(){if(this.group){if(this.group.show(),this.showGeneralization(),this.parent){let e=this.parent.children.indexOf(this);this.parent._lines[e]&&this.parent._lines[e].show(),this._lines.forEach(t=>{t.show()})}this.children&&this.children.length&&this.children.forEach(e=>{e.show()})}}setOpacity(e){this.group&&this.group.opacity(e),this._lines.forEach(t=>{t.opacity(e)}),this.children.forEach(t=>{t.setOpacity(e)}),this.setGeneralizationOpacity(e)}hideChildren(){this._lines.forEach(e=>{e.hide()}),this.children&&this.children.length&&this.children.forEach(e=>{e.hide()})}showChildren(){this._lines.forEach(e=>{e.show()}),this.children&&this.children.length&&this.children.forEach(e=>{e.show()})}startDrag(){this.isDrag=!0,this.group&&this.group.addClass("smm-node-dragging")}endDrag(){this.isDrag=!1,this.group&&this.group.removeClass("smm-node-dragging")}renderLine(e=!1){if(this.getData("expand")===!1)return;let t=this.getChildrenLength();this.mindMap.renderer.layout.nodeIsRemoveAllLines&&this.mindMap.renderer.layout.nodeIsRemoveAllLines(this)&&(t=0),t>this._lines.length?new Array(t-this._lines.length).fill(0).forEach(()=>{this._lines.push(this.lineDraw.path())}):t{r.remove()}),this._lines=this._lines.slice(0,t)),this.renderer.layout.renderLine(this,this._lines,(...r)=>{this.styleLine(...r)},this.style.getStyle("lineStyle",!0)),e&&this.children&&this.children.length>0&&this.children.forEach(r=>{r.renderLine(e)})}getShape(){return this.mindMap.themeConfig.nodeUseLineStyle?k.SHAPE.RECTANGLE:this.style.getStyle("shape",!1,!1)}hasCustomPosition(){return this.customLeft!==void 0&&this.customTop!==void 0}ancestorHasCustomPosition(){let e=this;for(;e;){if(e.hasCustomPosition())return!0;e=e.parent}return!1}ancestorHasGeneralization(){let e=this.parent;for(;e;){if(e.checkHasGeneralization())return!0;e=e.parent}return!1}addChildren(e){this.children.push(e)}styleLine(e,t,r){let{enableInheritAncestorLineStyle:n}=this.mindMap.opt,s=n?"getSelfInhertStyle":"getSelfStyle",a=t[s]("lineWidth")||t.getStyle("lineWidth",!0),o=t[s]("lineColor")||this.getRainbowLineColor(t)||t.getStyle("lineColor",!0),l=t[s]("lineDasharray")||t.getStyle("lineDasharray",!0);this.style.line(e,{width:a,color:o,dasharray:l},r,t)}getRainbowLineColor(e){return this.mindMap.rainbowLines?this.mindMap.rainbowLines.getNodeColor(e):""}removeLine(){this._lines.forEach(e=>{e.remove()}),this._lines=[]}isAncestor(e){if(this.uid===e.uid)return!1;let t=e.parent;for(;t;){if(this.uid===t.uid)return!0;t=t.parent}return!1}isParent(e){if(this.uid===e.uid)return!1;let t=e.parent;return!!(t&&this.uid===t.uid)}isBrother(e){return!this.parent||this.uid===e.uid?!1:this.parent.children.find(t=>t.uid===e.uid)}getIndexInBrothers(){return this.parent&&this.parent.children?this.parent.children.findIndex(e=>e.uid===this.uid):-1}getPaddingVale(){return{paddingX:this.getStyle("paddingX"),paddingY:this.getStyle("paddingY")}}getStyle(e,t){let r=this.style.merge(e,t);return r===void 0?"":r}getSelfStyle(e){return this.style.getSelfStyle(e)}getParentSelfStyle(e){return this.parent?this.parent.getSelfStyle(e)||this.parent.getParentSelfStyle(e):null}getSelfInhertStyle(e){return this.getSelfStyle(e)||this.getParentSelfStyle(e)}getBorderWidth(){return this.style.merge("borderWidth",!1)||0}getData(e){return e?this.nodeData.data[e]:this.nodeData.data}getPureData(e=!0,t=!1){return ls({},this,e,t)}getAncestorNodes(){let e=[],t=this.parent;for(;t;)e.unshift(t),t=t.parent;return e}hasCustomStyle(){return this.style.hasCustomStyle()}getRect(){return this.group?this.group.rbox():null}getRectInSvg(){let{scaleX:e,scaleY:t,translateX:r,translateY:n}=this.mindMap.draw.transform(),{left:s,top:a,width:o,height:l}=this,h=(s+o)*e+r,d=(a+l)*t+n;return s=s*e+r,a=a*t+n,{left:s,right:h,top:a,bottom:d,width:o*e,height:l*t}}highlight(){this.group&&this.group.addClass("smm-node-highlight")}closeHighlight(){this.group&&this.group.removeClass("smm-node-highlight")}fakeClone(){let e=new i({...this.opt,uid:wt()});return Object.keys(this).forEach(t=>{e[t]=this[t]}),e}createSvgTextNode(e=""){return new Ce().text(e)}getSvgObjects(){return{SVG:Ae,G:_e,Rect:Ve}}checkEnableDragModifyNodeWidth(){let{enableDragModifyNodeWidth:e,isUseCustomNodeContent:t,customCreateNodeContent:r}=this.mindMap.opt;return e&&(this.mindMap.richText||t&&r)}hasCustomWidth(){return this.checkEnableDragModifyNodeWidth()&&this.customTextWidth!==void 0}getChildrenLength(){return this.nodeData.children?this.nodeData.children.length:0}},da=Ru});var jo,Z2=T(()=>{jo=class{constructor(e){this.max=e||1e3,this.size=0,this.pool=new Map}add(e,t){return!this.has(e)&&this.size>=this.max?!1:(this.delete(e),this.pool.set(e,t),this.size++,!0)}delete(e){this.pool.has(e)&&(this.pool.delete(e),this.size--)}has(e){return this.pool.has(e)}get(e){if(this.pool.has(e))return this.pool.get(e)}clear(){this.size=0,this.pool=new Map}}});var Du,Mt,Ar=T(()=>{X0();$e();Z2();pe();Du=class{constructor(e){this.renderer=e,this.mindMap=e.mindMap,this.draw=this.mindMap.draw,this.lineDraw=this.mindMap.lineDraw,this.root=null,this.lru=new jo(this.mindMap.opt.maxNodeCacheCount),this.rootNodeCenterOffset=null}doLayout(){throw new Error("\u3010computed\u3011\u65B9\u6CD5\u4E3A\u5FC5\u8981\u65B9\u6CD5\uFF0C\u9700\u8981\u5B50\u7C7B\u8FDB\u884C\u91CD\u5199\uFF01")}renderLine(){throw new Error("\u3010renderLine\u3011\u65B9\u6CD5\u4E3A\u5FC5\u8981\u65B9\u6CD5\uFF0C\u9700\u8981\u5B50\u7C7B\u8FDB\u884C\u91CD\u5199\uFF01")}renderExpandBtn(){throw new Error("\u3010renderExpandBtn\u3011\u65B9\u6CD5\u4E3A\u5FC5\u8981\u65B9\u6CD5\uFF0C\u9700\u8981\u5B50\u7C7B\u8FDB\u884C\u91CD\u5199\uFF01")}renderGeneralization(){}cacheNode(e,t){this.renderer.nodeCache[e]=t,this.lru.add(e,t)}checkIsNeedResizeSources(){return this.renderer.checkHasRenderSource(k.CHANGE_THEME)}checkIsLayerTypeChange(e,t){if(e>=2&&t>=2)return!1;if(e>=2&&t<2||e<2&&t>=2)return!0}checkIsLayoutChangeRerenderExpandBtnPlaceholderRect(e){this.renderer.checkHasRenderSource(k.CHANGE_LAYOUT)&&(e.needRerenderExpandBtnPlaceholderRect=!0)}checkIsNodeDataChange(e,t){if(e)e=typeof e=="string"?JSON.parse(e):e,e.isActive=t.isActive,e.expand=t.expand,e=JSON.stringify(e);else return!1;return e!==JSON.stringify(t)}checkNodeFixChange(e,t,r){let n=!1;this.mindMap.nodeInnerPrefixList.forEach(a=>{if(a.updateNodeData){let o=a.updateNodeData(e,t);o&&(n=o)}});let s=!1;return this.mindMap.nodeInnerPostfixList.forEach(a=>{if(a.updateNodeData){let o=a.updateNodeData(e,r);o&&(s=o)}}),n||s}createNode(e,t,r,n,s,a){let o={};this.mindMap.nodeInnerPrefixList.forEach(c=>{if(c.createNodeData){let[f,m]=c.createNodeData({data:e,parent:t,ancestors:a,layerIndex:n,index:s});o[f]=m}});let l={};this.mindMap.nodeInnerPostfixList.forEach(c=>{if(c.createNodeData){let[f,m]=c.createNodeData({data:e,parent:t,ancestors:a,layerIndex:n,index:s});l[f]=m}});let h=e.data.uid,d=null;if(e&&e._node&&!this.renderer.reRender){d=e._node;let c=this.checkIsLayerTypeChange(d.layerIndex,n);d.reset(),d.layerIndex=n,r?d.isRoot=!0:d.parent=t._node,this.cacheNode(e._node.uid,d),this.checkIsLayoutChangeRerenderExpandBtnPlaceholderRect(d);let f=this.checkNodeFixChange(d,o,l),m=this.checkIsNeedResizeSources(),g=this.checkIsNodeDataChange(e._node.nodeDataSnapshot,e.data);(m||g||c||d.getData("resetRichText")||d.getData("needUpdate")||f)&&(d.getSize(),d.needLayout=!0),this.checkGetGeneralizationChange(d,m)}else if((this.lru.has(h)||this.renderer.lastNodeCache[h])&&!this.renderer.reRender){d=this.lru.get(h)||this.renderer.lastNodeCache[h];let c=JSON.stringify(d.getData()),f=this.checkIsLayerTypeChange(d.layerIndex,n);d.reset(),d.nodeData=d.handleData(e||{}),d.layerIndex=n,r?d.isRoot=!0:d.parent=t._node,this.cacheNode(h,d),this.checkIsLayoutChangeRerenderExpandBtnPlaceholderRect(d),e._node=d;let m=this.checkIsNeedResizeSources(),g=this.checkIsNodeDataChange(c,e.data),x=this.checkNodeFixChange(d,o,l);(m||g||f||d.getData("resetRichText")||d.getData("needUpdate")||x)&&(d.getSize(),d.needLayout=!0),this.checkGetGeneralizationChange(d,m)}else{let c=h||wt();d=new da({data:e,uid:c,renderer:this.renderer,mindMap:this.mindMap,draw:this.draw,layerIndex:n,isRoot:r,parent:r?null:t._node,...o}),e.data.uid=c,this.cacheNode(c,d),e._node=d}return e.data.isActive&&this.renderer.addNodeToActiveList(d),this.mindMap.renderer.findActiveNodeIndex(d)!==-1&&d.setData({isActive:!0}),r?this.root=d:t._node.addChildren(d),d}checkGetGeneralizationChange(e,t){let r=e.getData("generalization");r&&e._generalizationList&&e._generalizationList.length>0&&e._generalizationList.forEach((n,s)=>{let a=n.generalizationNode,o=a.getData(),l=r[s];(t||l&&JSON.stringify(o)!==JSON.stringify(l))&&(l&&(a.nodeData.data=l),a.getSize(),a.needLayout=!0)})}formatPosition(e,t,r){return typeof e=="number"?e:Uc[e]!==void 0?t*Uc[e]:/^\d\d*%$/.test(e)?Number.parseFloat(e)/100*t:(t-r)/2}formatInitRootNodePosition(e){let{CENTER:t}=k.INIT_ROOT_NODE_POSITION;return(!e||!Array.isArray(e)||e.length<2)&&(e=[t,t]),e}setNodeCenter(e,t){let{initRootNodePosition:r}=this.mindMap.opt;r=this.formatInitRootNodePosition(t||r),e.left=this.formatPosition(r[0],this.mindMap.width,e.width),e.top=this.formatPosition(r[1],this.mindMap.height,e.height)}getRootCenterOffset(e,t){if(this.rootNodeCenterOffset)return this.rootNodeCenterOffset;let{initRootNodePosition:r}=this.mindMap.opt,{CENTER:n}=k.INIT_ROOT_NODE_POSITION;if(r=this.formatInitRootNodePosition(r),r[0]===n&&r[1]===n)this.rootNodeCenterOffset={x:0,y:0};else{let s={width:e,height:t},a={width:e,height:t};this.setNodeCenter(s,[n,n]),this.setNodeCenter(a),this.rootNodeCenterOffset={x:a.left-s.left,y:a.top-s.top}}return this.rootNodeCenterOffset}updateChildren(e,t,r){e.forEach(n=>{n[t]+=r,n.children&&n.children.length&&!n.hasCustomPosition()&&this.updateChildren(n.children,t,r)})}updateChildrenPro(e,t){e.forEach(r=>{Object.keys(t).forEach(n=>{r[n]+=t[n]}),r.children&&r.children.length&&!r.hasCustomPosition()&&this.updateChildrenPro(r.children,t)})}getNodeAreaWidth(e,t=!1){let r=[],n=0,s=(a,o)=>{t&&a.checkHasGeneralization()&&(n+=a._generalizationNodeWidth),a.children.length?(o+=a.width/2,a.children.forEach(l=>{s(l,o)})):(o+=a.width,r.push(o))};return s(e,0),Math.max(...r)+n}quadraticCurvePath(e,t,r,n,s=!1){let a,o;return s?(a=e+(r-e)*.8,o=t+(n-t)*.2):(a=e+(r-e)*.2,o=t+(n-t)*.8),`M ${e},${t} Q ${a},${o} ${r},${n}`}cubicBezierPath(e,t,r,n,s=!1){let a,o,l,h;return s?(a=e,o=t+(n-t)/2,l=r,h=o):(a=e+(r-e)/2,o=t,l=a,h=n),`M ${e},${t} C ${a},${o} ${l},${h} ${r},${n}`}computeNewPoint(e,t,r=0){if(e[0]===t[0])return t[1]>e[1]?[t[0],t[1]-r]:[t[0],t[1]+r];if(e[1]===t[1])return t[0]>e[0]?[t[0]-r,t[1]]:[t[0]+r,t[1]]}createFoldLine(e){let{lineRadius:t}=this.mindMap.themeConfig,r=e.length,n="",s="";if(r>=3&&t>0){let a=e[r-3],o=e[r-2],l=e[r-1];if(!(a[0].toFixed(0)===o[0].toFixed(0)&&o[0].toFixed(0)===l[0].toFixed(0)||a[1].toFixed(0)===o[1].toFixed(0)&&o[1].toFixed(0)===l[1].toFixed(0))){let d=this.computeNewPoint(a,o,t),c=this.computeNewPoint(l,o,t);s=`Q ${o[0]},${o[1]} ${c[0]},${c[1]}`,e.splice(r-2,1,d,s)}}return e.forEach((a,o)=>{if(typeof a=="string")n+=a;else{let[l,h]=a;o===0?n+=`M ${l},${h}`:n+=`L ${l},${h}`}}),n}getMarginX(e){let{themeConfig:t,opt:r}=this.mindMap,{second:n,node:s}=t,a=r.hoverRectPadding*2;return e===1?n.marginX+a:s.marginX+a}getMarginY(e){let{themeConfig:t,opt:r}=this.mindMap,{second:n,node:s}=t,a=r.hoverRectPadding*2;return e===1?n.marginY+a:s.marginY+a}getNodeWidthWithGeneralization(e){return Math.max(e.width,e.checkHasGeneralization()?e._generalizationNodeWidth:0)}getNodeHeightWithGeneralization(e){return Math.max(e.height,e.checkHasGeneralization()?e._generalizationNodeHeight:0)}getNodeBoundaries(e,t){let{generalizationLineMargin:r,generalizationNodeMargin:n}=this.mindMap.themeConfig,s=d=>{let c=1/0,f=-1/0,m=1/0,g=-1/0;d.children&&d.children.length>0&&d.children.forEach(y=>{let{left:b,right:S,top:A,bottom:C}=s(y),I=y.checkHasGeneralization()&&y.getData("expand")?y._generalizationNodeWidth+n:0,O=y.checkHasGeneralization()&&y.getData("expand")?y._generalizationNodeHeight+n:0;b-(t==="h"?I:0)f&&(f=S+(t==="h"?I:0)),Ag&&(g=C+(t==="v"?O:0))});let x={left:d.left,right:d.left+d.width,top:d.top,bottom:d.top+d.height};return{left:x.leftf?x.right:f,top:x.topg?x.bottom:g}},{left:a,right:o,top:l,bottom:h}=s(e);return{left:a,right:o,top:l,bottom:h,generalizationLineMargin:r,generalizationNodeMargin:n}}getChildrenBoundaries(e,t,r=0,n){let{generalizationLineMargin:s,generalizationNodeMargin:a}=this.mindMap.themeConfig,o=e.children.slice(r,n+1),l=1/0,h=-1/0,d=1/0,c=-1/0;return o.forEach(f=>{let m=this.getNodeBoundaries(f,t);l=m.lefth?m.right:h,d=m.topc?m.bottom:c}),{left:l,right:h,top:d,bottom:c,generalizationLineMargin:s,generalizationNodeMargin:a}}getNodeGeneralizationRenderBoundaries(e,t){let r=null;return e.range?r=this.getChildrenBoundaries(e.node,t,e.range[0],e.range[1]):r=this.getNodeBoundaries(e.node,t),r}getNodeActChildrenLength(e){return e.nodeData.children&&e.nodeData.children.length}setLineStyle(e,t,r,n){t.plot(this.transformPath(r)),e&&e(t,n,!0)}transformPath(e){let{customTransformNodeLinePath:t}=this.mindMap.opt;return t?t(e):e}},Mt=Du});var Ou,K0,Bu=T(()=>{Ou=class{constructor(e){this.mindMap=e,this.autoMoveTimer=null}onMove(e,t,r=()=>{},n=()=>{}){r();let s=this.mindMap.opt.selectTranslateStep,a=this.mindMap.opt.selectTranslateLimit,o=0;e<=this.mindMap.elRect.left+a&&(n("left",s),this.mindMap.view.translateX(s),o++),e>=this.mindMap.elRect.right-a&&(n("right",s),this.mindMap.view.translateX(-s),o++),t<=this.mindMap.elRect.top+a&&(n("top",s),this.mindMap.view.translateY(s),o++),t>=this.mindMap.elRect.bottom-a&&(n("bottom",s),this.mindMap.view.translateY(-s),o++),o>0&&this.startAutoMove(e,t,r,n)}startAutoMove(e,t,r,n){this.autoMoveTimer=setTimeout(()=>{this.onMove(e,t,r,n)},20)}clearAutoMoveTimer(){clearTimeout(this.autoMoveTimer)}},K0=Ou});var Q2={};tt(Q2,{default:()=>nE});var Z0,nE,J2=T(()=>{pe();Ar();$e();Bu();Z0=class extends Mt{constructor({mindMap:e}){super(e.renderer),this.mindMap=e,this.autoMove=new K0(e),this.reset(),this.bindEvent()}reset(){this.isDragging=!1,this.mousedownNode=null,this.beingDragNodeList=[],this.nodeList=[],this.overlapNode=null,this.prevNode=null,this.nextNode=null,this.drawTransform=null,this.clone=null,this.placeholder=null,this.placeholderWidth=50,this.placeholderHeight=10,this.placeHolderLine=null,this.placeHolderExtraLines=[],this.offsetX=0,this.offsetY=0,this.isMousedown=!1,this.mouseDownX=0,this.mouseDownY=0,this.mouseMoveX=0,this.mouseMoveY=0,this.checkDragOffset=10,this.minOffset=10}bindEvent(){this.onNodeMousedown=this.onNodeMousedown.bind(this),this.onMousemove=this.onMousemove.bind(this),this.onMouseup=this.onMouseup.bind(this),this.checkOverlapNode=Si(this.checkOverlapNode,300,this),this.mindMap.on("node_mousedown",this.onNodeMousedown),this.mindMap.on("mousemove",this.onMousemove),this.mindMap.on("node_mouseup",this.onMouseup),this.mindMap.on("mouseup",this.onMouseup)}unBindEvent(){this.mindMap.off("node_mousedown",this.onNodeMousedown),this.mindMap.off("mousemove",this.onMousemove),this.mindMap.off("node_mouseup",this.onMouseup),this.mindMap.off("mouseup",this.onMouseup)}onNodeMousedown(e,t){if(this.mindMap.opt.readonly||t.which!==1||e.isGeneralization||e.isRoot)return;this.isMousedown=!0,this.mousedownNode=e;let{x:r,y:n}=this.mindMap.toPos(t.clientX,t.clientY);this.mouseDownX=r,this.mouseDownY=n}onMousemove(e){if(this.mindMap.opt.readonly||!this.isMousedown)return;e.preventDefault();let{x:t,y:r}=this.mindMap.toPos(e.clientX,e.clientY);this.mouseMoveX=t,this.mouseMoveY=r,!(!this.isDragging&&Math.abs(t-this.mouseDownX)<=this.checkDragOffset&&Math.abs(r-this.mouseDownY)<=this.checkDragOffset)&&(this.mindMap.emit("node_dragging",this.mousedownNode),this.handleStartMove(),this.onMove(t,r,e))}async onMouseup(e){if(!this.isMousedown)return;let{autoMoveWhenMouseInEdgeOnDrag:t,enableFreeDrag:r,beforeDragEnd:n}=this.mindMap.opt;t&&this.mindMap.select&&this.autoMove.clearAutoMoveTimer(),this.isMousedown=!1,this.beingDragNodeList.forEach(l=>{l.setOpacity(1),l.showChildren(),l.endDrag()}),this.removeCloneNode();let s=this.overlapNode?this.overlapNode.getData("uid"):"",a=this.prevNode?this.prevNode.getData("uid"):"",o=this.nextNode?this.nextNode.getData("uid"):"";if(this.isDragging&&typeof n=="function"&&await n({overlapNodeUid:s,prevNodeUid:a,nextNodeUid:o,beingDragNodeList:[...this.beingDragNodeList]})){this.reset();return}if(this.overlapNode)this.removeNodeActive(this.overlapNode),this.mindMap.execCommand("MOVE_NODE_TO",this.beingDragNodeList,this.overlapNode);else if(this.prevNode)this.removeNodeActive(this.prevNode),this.mindMap.execCommand("INSERT_AFTER",this.beingDragNodeList,this.prevNode);else if(this.nextNode)this.removeNodeActive(this.nextNode),this.mindMap.execCommand("INSERT_BEFORE",this.beingDragNodeList,this.nextNode);else if(this.clone&&r&&this.beingDragNodeList.length===1){let{x:l,y:h}=this.mindMap.toPos(e.clientX-this.offsetX,e.clientY-this.offsetY),{scaleX:d,scaleY:c,translateX:f,translateY:m}=this.drawTransform;l=(l-f)/d,h=(h-m)/c,this.mousedownNode.left=l,this.mousedownNode.top=h,this.mousedownNode.customLeft=l,this.mousedownNode.customTop=h,this.mindMap.execCommand("SET_NODE_CUSTOM_POSITION",this.mousedownNode,l,h),this.mindMap.render()}this.isDragging&&this.mindMap.emit("node_dragend",{overlapNodeUid:s,prevNodeUid:a,nextNodeUid:o}),this.reset()}removeNodeActive(e){e.getData("isActive")&&this.mindMap.execCommand("SET_NODE_ACTIVE",e,!1)}onMove(e,t,r){if(!this.isMousedown||!this.isDragging)return;let{scaleX:n,scaleY:s,translateX:a,translateY:o}=this.drawTransform,l=e-this.offsetX,h=t-this.offsetY;e=(l-a)/n,t=(h-o)/s;let d=this.clone.transform();this.clone.translate(e-d.translateX,t-d.translateY),this.checkOverlapNode(),this.drawTransform=this.mindMap.draw.transform(),this.autoMove.clearAutoMoveTimer(),this.autoMove.onMove(r.clientX,r.clientY)}async handleStartMove(){if(!this.isDragging){let e=this.mousedownNode;this.drawTransform=this.mindMap.draw.transform();let{scaleX:t,scaleY:r,translateX:n,translateY:s}=this.drawTransform;this.offsetX=this.mouseDownX-(e.left*t+n),this.offsetY=this.mouseDownY-(e.top*r+s),e.getData("isActive")?this.beingDragNodeList=Fo(ds(this.mindMap.renderer.activeNodeList.filter(o=>!o.isRoot&&!o.isGeneralization))):this.beingDragNodeList=[e];let{beforeDragStart:a}=this.mindMap.opt;if(typeof a=="function"&&await a([...this.beingDragNodeList]))return;this.nodeTreeToList(),this.createCloneNode(),this.mindMap.execCommand("CLEAR_ACTIVE_NODE"),this.isDragging=!0}}nodeTreeToList(){let e=[];Xt(this.mindMap.renderer.root,t=>{this.checkIsInBeingDragNodeList(t)||(e[t.layerIndex]||(e[t.layerIndex]=[]),e[t.layerIndex].push(t))}),this.nodeList=e.reduceRight((t,r)=>[...t,...r],[])}createCloneNode(){if(!this.clone){let{dragMultiNodeRectConfig:e,dragPlaceholderRectFill:t,dragPlaceholderLineConfig:r,dragOpacityConfig:n,handleDragCloneNode:s}=this.mindMap.opt,{width:a,height:o,fill:l}=e,h=this.beingDragNodeList[0],d=h.style.merge("lineColor",!0);if(this.beingDragNodeList.length>1)this.clone=this.mindMap.otherDraw.rect().size(a,o).radius(o/2).fill({color:l||d}),this.offsetX=a/2,this.offsetY=o/2;else{this.clone=h.group.clone();let c=this.clone.findOne(".smm-expand-btn");c&&c.remove(),this.mindMap.otherDraw.add(this.clone),typeof s=="function"&&s(this.clone)}this.clone.opacity(n.cloneNodeOpacity),this.clone.css("z-index",99999),this.placeholder=this.mindMap.otherDraw.rect().fill({color:t||d}).radius(5),this.placeHolderLine=this.mindMap.otherDraw.path().stroke({color:r.color||d,width:r.width}).fill({color:"none"}),this.beingDragNodeList.forEach(c=>{c.setOpacity(n.beingDragNodeOpacity),c.hideChildren(),c.startDrag()})}}removeCloneNode(){this.clone&&(this.clone.remove(),this.placeholder.remove(),this.placeHolderLine.remove(),this.removeExtraLines())}removeExtraLines(){this.placeHolderExtraLines.forEach(e=>{e.remove()}),this.placeHolderExtraLines=[]}checkOverlapNode(){if(!this.drawTransform||!this.placeholder)return;let{LOGICAL_STRUCTURE:e,LOGICAL_STRUCTURE_LEFT:t,MIND_MAP:r,ORGANIZATION_STRUCTURE:n,CATALOG_ORGANIZATION:s,TIMELINE:a,TIMELINE2:o,VERTICAL_TIMELINE:l,VERTICAL_TIMELINE2:h,VERTICAL_TIMELINE3:d,FISHBONE:c,FISHBONE2:f,RIGHT_FISHBONE:m,RIGHT_FISHBONE2:g}=k.LAYOUT;this.overlapNode=null,this.prevNode=null,this.nextNode=null,this.placeholder.size(0,0),this.placeHolderLine.hide(),this.removeExtraLines(),this.nodeList.forEach(x=>{if(x.getData("isActive")&&this.mindMap.execCommand("SET_NODE_ACTIVE",x,!1),!(this.overlapNode||this.prevNode&&this.nextNode))switch(this.mindMap.opt.layout){case e:case t:this.handleLogicalStructure(x);break;case r:this.handleMindMap(x);break;case n:this.handleOrganizationStructure(x);break;case s:this.handleCatalogOrganization(x);break;case a:this.handleTimeLine(x);break;case o:this.handleTimeLine2(x);break;case l:case h:case d:this.handleLogicalStructure(x);break;case c:case f:case m:case g:this.handleFishbone(x);break;default:this.handleLogicalStructure(x)}}),this.overlapNode&&this.handleOverlapNode()}handleOverlapNode(){let{LOGICAL_STRUCTURE:e,LOGICAL_STRUCTURE_LEFT:t,MIND_MAP:r,ORGANIZATION_STRUCTURE:n,CATALOG_ORGANIZATION:s,TIMELINE:a,TIMELINE2:o,VERTICAL_TIMELINE:l,VERTICAL_TIMELINE2:h,VERTICAL_TIMELINE3:d,FISHBONE:c,FISHBONE2:f,RIGHT_FISHBONE:m,RIGHT_FISHBONE2:g}=k.LAYOUT,{LEFT:x,TOP:y,RIGHT:b,BOTTOM:S}=k.LAYOUT_GROW_DIR,A=this.overlapNode.layerIndex,C=this.overlapNode.children,I=this.mindMap.renderer.layout.getMarginX(A+1),O=this.mindMap.renderer.layout.getMarginY(A+1),q=this.placeholderWidth/2,P=this.placeholderHeight/2,W="",ne="",re="",oe=!1,ke=!1;if(C.length>0){let Q=C[C.length-1],Y=this.getNodeRect(Q);switch(W=this.getNewChildNodeDir(Q),this.mindMap.opt.layout){case e:case r:ne=W===x?Y.originRight-this.placeholderWidth:Y.originLeft,re=Y.originBottom+this.minOffset-P;break;case t:ne=Y.originRight-this.placeholderWidth,re=Y.originBottom+this.minOffset-P;break;case n:oe=!0,ne=Y.originRight+this.minOffset-P,re=Y.originTop;break;case s:A===0?(oe=!0,ne=Y.originRight+this.minOffset-P,re=Y.originTop):(ne=Y.originLeft,re=Y.originBottom+this.minOffset-P);break;case a:A===0?(oe=!0,ne=Y.originRight+this.minOffset-P,re=Y.originTop+Y.originHeight/2-q):(ne=Y.originLeft,re=Y.originBottom+this.minOffset-P);break;case o:A===0?(oe=!0,ne=Y.originRight+this.minOffset-P,re=Y.originTop+Y.originHeight/2-q):(ne=Y.originLeft,A===1?re=W===y?Y.originTop-this.placeholderHeight-this.minOffset+P:Y.originBottom+this.minOffset-P:re=Y.originBottom+this.minOffset-P);break;case l:case h:case d:A===0?(ne=Y.originLeft+Y.originWidth/2-q,re=Y.originBottom+this.minOffset-P):(ne=W===b?Y.originLeft:Y.originRight-this.placeholderWidth,re=Y.originBottom+this.minOffset-P);break;case c:case f:case m:case g:A<=1?(ke=!0,this.mindMap.execCommand("SET_NODE_ACTIVE",this.overlapNode,!0)):(ne=Y.originLeft,re=W===y?Y.originBottom+this.minOffset-P:Y.originTop-this.placeholderHeight-this.minOffset+P);break;default:}}else{let Q=this.getNodeRect(this.overlapNode);switch(W=this.getNewChildNodeDir(this.overlapNode),this.mindMap.opt.layout){case e:case r:ne=W===b?Q.originRight+I:Q.originLeft-this.placeholderWidth-I,re=Q.originTop+(Q.originHeight-this.placeholderHeight)/2;break;case t:ne=Q.originLeft-this.placeholderWidth-I,re=Q.originTop+(Q.originHeight-this.placeholderHeight)/2;break;case n:oe=!0,ne=Q.originLeft+(Q.originWidth-this.placeholderHeight)/2,re=Q.originBottom+I;break;case s:A===0&&(oe=!0),ne=Q.originLeft+Q.originWidth*.5,re=Q.originBottom+I;break;case a:A===0&&(oe=!0),ne=Q.originLeft+Q.originWidth*.5,re=Q.originBottom+O;break;case o:A===0&&(oe=!0),ne=Q.originLeft+Q.originWidth*.5,A===1?re=W===y?Q.originTop-this.placeholderHeight-I:Q.originBottom+I:re=Q.originBottom+I;break;case l:case h:case d:A===0&&(oe=!0),ne=W===b?Q.originRight+I:Q.originLeft-this.placeholderWidth-I,re=Q.originTop+Q.originHeight/2-P;break;case c:case f:case m:case g:A<=1?(ke=!0,this.mindMap.execCommand("SET_NODE_ACTIVE",this.overlapNode,!0)):(ne=Q.originLeft+Q.originWidth*.5,re=W===S?Q.originTop-this.placeholderHeight-this.minOffset+P:Q.originBottom+this.minOffset-P);break;default:}}ke||this.setPlaceholderRect({x:ne,y:re,dir:W,rotate:oe})}getNewChildNodeDir(e){let{LOGICAL_STRUCTURE:t,LOGICAL_STRUCTURE_LEFT:r,MIND_MAP:n,TIMELINE2:s,VERTICAL_TIMELINE:a,VERTICAL_TIMELINE2:o,VERTICAL_TIMELINE3:l,FISHBONE:h,FISHBONE2:d,RIGHT_FISHBONE:c,RIGHT_FISHBONE2:f}=k.LAYOUT;switch(this.mindMap.opt.layout){case t:return k.LAYOUT_GROW_DIR.RIGHT;case r:return k.LAYOUT_GROW_DIR.LEFT;case n:case s:case a:case o:case l:case h:case d:case c:case f:return e.dir;default:return""}}handleVerticalCheck(e,t,r=!1){let{layout:n}=this.mindMap.opt,{LAYOUT:s,LAYOUT_GROW_DIR:a}=k,{VERTICAL_TIMELINE:o,VERTICAL_TIMELINE2:l,VERTICAL_TIMELINE3:h,FISHBONE:d,FISHBONE2:c,RIGHT_FISHBONE:f,RIGHT_FISHBONE2:m}=s,{LEFT:g}=a,x=this.mouseMoveX,y=this.mouseMoveY,b=this.getNodeRect(e),S=this.getNewChildNodeDir(e),A=e.layerIndex;r&&(t=t.reverse());let C=b.originHeight/4,{prevBrotherOffset:I,nextBrotherOffset:O}=this.getNodeDistanceToSiblingNode(t,e,b,"v");if(b.left<=x&&b.right>=x){if(!this.overlapNode&&!this.prevNode&&!this.nextNode&&!e.isRoot){let q=O>0?y>b.bottom&&y<=b.bottom+O:y>=b.bottom-C&&y<=b.bottom,P=I>0?y=b.top-I:y>=b.top&&y<=b.top+C,{scaleY:W}=this.drawTransform,ne=S===g?b.originRight-this.placeholderWidth:b.originLeft,re=!1;switch(n){case o:case l:case h:A===1&&(ne=b.originLeft+b.originWidth/2-this.placeholderWidth/2);break;case f:case m:ne=b.originLeft+b.originWidth-this.placeholderWidth;break;default:}if(q){r?this.nextNode=e:this.prevNode=e;let oe=b.originBottom+O/W-this.placeholderHeight/2;switch(n){case d:case c:case f:case m:A===2&&(re=!0,oe=b.originBottom+this.minOffset-this.placeholderHeight/2);break;default:}this.setPlaceholderRect({x:ne,y:oe,dir:S,notRenderLine:re})}else if(P){r?this.prevNode=e:this.nextNode=e;let oe=b.originTop-this.placeholderHeight-I/W+this.placeholderHeight/2;switch(n){case d:case c:case f:case m:A===2&&(re=!0,oe=b.originTop-this.placeholderHeight-this.minOffset+this.placeholderHeight/2);break;default:}this.setPlaceholderRect({x:ne,y:oe,dir:S,notRenderLine:re})}}this.checkIsOverlap({node:e,dir:"v",prevBrotherOffset:I,nextBrotherOffset:O,size:C,pos:y,nodeRect:b})}}handleHorizontalCheck(e,t){let{layout:r}=this.mindMap.opt,{LAYOUT:n}=k,{FISHBONE:s,FISHBONE2:a,RIGHT_FISHBONE:o,RIGHT_FISHBONE2:l,TIMELINE:h,TIMELINE2:d}=n,c=this.mouseMoveX,f=this.mouseMoveY,m=this.getNodeRect(e),g=m.originWidth/4,{prevBrotherOffset:x,nextBrotherOffset:y}=this.getNodeDistanceToSiblingNode(t,e,m,"h");if(m.top<=f&&m.bottom>=f){if(!this.overlapNode&&!this.prevNode&&!this.nextNode&&!e.isRoot){let b=y>0?c=m.right:c<=m.right&&c>=m.right-g,S=x>0?c>m.left-x&&c<=m.left:c<=m.left+g&&c>=m.left,{scaleX:A}=this.drawTransform,C=e.layerIndex,I=m.originTop,O=!1;switch(r){case h:case d:I=m.originTop+m.originHeight/2-this.placeholderWidth/2;break;case s:case a:case o:case l:C===1&&(O=!0,I=m.originTop+m.originHeight/2-this.placeholderWidth/2);break;default:}b?([o,l].includes(r)?this.nextNode=e:this.prevNode=e,this.setPlaceholderRect({x:m.originRight+y/A-this.placeholderHeight/2,y:I,rotate:!0,notRenderLine:O})):S&&([o,l].includes(r)?this.prevNode=e:this.nextNode=e,this.setPlaceholderRect({x:m.originLeft-this.placeholderHeight-x/A+this.placeholderHeight/2,y:I,rotate:!0,notRenderLine:O}))}this.checkIsOverlap({node:e,dir:"h",prevBrotherOffset:x,nextBrotherOffset:y,size:g,pos:c,nodeRect:m})}}getNodeDistanceToSiblingNode(e,t,r,n){let{TOP:s,LEFT:a,BOTTOM:o,RIGHT:l}=k.LAYOUT_GROW_DIR,{scaleX:h,scaleY:d}=this.drawTransform,c=n==="v"?s:a,f=n==="v"?o:l,m=n==="v"?d:h,g=this.minOffset*m,x=Ie(t,e),y=null,b=null;x!==-1&&(x-1>=0&&(y=e[x-1]),x+1<=e.length-1&&(b=e[x+1]));let S=0;if(y){let C=this.getNodeRect(y);S=r[c]-C[f],S=S>=g?S/2:0}else S=g;let A=0;return b?(A=this.getNodeRect(b)[c]-r[f],A=A>=g?A/2:0):A=g,{prevBrother:y,prevBrotherOffset:S,nextBrother:b,nextBrotherOffset:A}}setPlaceholderRect({x:e,y:t,dir:r,rotate:n,notRenderLine:s}){let a=this.placeholderWidth,o=this.placeholderHeight;if(n){let f=a;a=o,o=f}if(this.placeholder.size(a,o).move(e,t),s)return;let{dragPlaceholderLineConfig:l}=this.mindMap.opt,h=null,d=null;this.overlapNode?(h=this.overlapNode,d=this.overlapNode):(h=this.prevNode||this.nextNode,d=h.parent),d=d.fakeClone(),h=h.fakeClone();let c=this.beingDragNodeList[0].fakeClone();c.dir=r,c.left=e,c.top=t,c.width=a,c.height=o,d.children=[c],d._lines=[],this.placeHolderLine.show(),this.mindMap.renderer.layout.renderLine(d,[this.placeHolderLine],(...f)=>{},h.style.getStyle("lineStyle",!0)),this.placeHolderExtraLines=[...d._lines],this.placeHolderExtraLines.forEach(f=>{this.mindMap.otherDraw.add(f),f.stroke({color:l.color,width:l.width}).fill({color:"none"})})}checkIsOverlap({node:e,dir:t,prevBrotherOffset:r,nextBrotherOffset:n,size:s,pos:a,nodeRect:o}){let{TOP:l,LEFT:h,BOTTOM:d,RIGHT:c}=k.LAYOUT_GROW_DIR,f=t==="v"?l:h,m=t==="v"?d:c;!this.overlapNode&&!this.prevNode&&!this.nextNode&&o[f]+(r>0?0:s)<=a&&o[m]-(n>0?0:s)>=a&&(this.overlapNode=e)}handleLogicalStructure(e){let t=this.commonGetNodeCheckList(e);this.handleVerticalCheck(e,t)}handleMindMap(e){let t=e.parent?e.parent.children.filter(r=>{let n=!0;return e.layerIndex===1&&(n=r.dir===e.dir),n&&!this.checkIsInBeingDragNodeList(r)}):[];this.handleVerticalCheck(e,t)}handleOrganizationStructure(e){let t=this.commonGetNodeCheckList(e);this.handleHorizontalCheck(e,t)}handleCatalogOrganization(e){let t=this.commonGetNodeCheckList(e);e.layerIndex===1?this.handleHorizontalCheck(e,t):this.handleVerticalCheck(e,t)}handleTimeLine(e){let t=this.commonGetNodeCheckList(e);e.layerIndex===1?this.handleHorizontalCheck(e,t):this.handleVerticalCheck(e,t)}handleTimeLine2(e){let t=this.commonGetNodeCheckList(e);e.layerIndex===1?this.handleHorizontalCheck(e,t):e.dir===k.LAYOUT_GROW_DIR.TOP&&e.layerIndex===2?this.handleVerticalCheck(e,t,!0):this.handleVerticalCheck(e,t)}handleFishbone(e){let t=e.parent?e.parent.children.filter(r=>r.layerIndex>1&&!this.checkIsInBeingDragNodeList(r)):[];if(e.layerIndex===1)this.handleHorizontalCheck(e,t);else{let r=e.dir===k.LAYOUT_GROW_DIR.TOP&&e.layerIndex===2,n=e.dir===k.LAYOUT_GROW_DIR.BOTTOM&&e.layerIndex>=3;r||n?this.handleVerticalCheck(e,t,!0):this.handleVerticalCheck(e,t)}}commonGetNodeCheckList(e){return e.parent?[...e.parent.children].filter(t=>!this.checkIsInBeingDragNodeList(t)):[]}getNodeRect(e){let{scaleX:t,scaleY:r,translateX:n,translateY:s}=this.drawTransform,{left:a,top:o,width:l,height:h}=e,d=l,c=h,f=a,m=o,g=o+h,x=a+l,y=(a+l)*t+n,b=(o+h)*r+s;return a=a*t+n,o=o*r+s,{left:a,top:o,right:y,bottom:b,originWidth:d,originHeight:c,originLeft:f,originTop:m,originBottom:g,originRight:x}}checkIsInBeingDragNodeList(e){return!!this.beingDragNodeList.find(t=>t.uid===e.uid||t.isAncestor(e))}beforePluginRemove(){this.unBindEvent()}beforePluginDestroy(){this.unBindEvent()}};Z0.instanceName="drag";nE=Z0});var e6={};tt(e6,{default:()=>sE});var Q0,sE,t6=T(()=>{pe();$e();Q0=class{constructor(e){this.opt=e,this.mindMap=e.mindMap,this.addShortcut()}addShortcut(){this.onLeftKeyUp=this.onLeftKeyUp.bind(this),this.onUpKeyUp=this.onUpKeyUp.bind(this),this.onRightKeyUp=this.onRightKeyUp.bind(this),this.onDownKeyUp=this.onDownKeyUp.bind(this),this.mindMap.keyCommand.addShortcut(k.KEY_DIR.LEFT,this.onLeftKeyUp),this.mindMap.keyCommand.addShortcut(k.KEY_DIR.UP,this.onUpKeyUp),this.mindMap.keyCommand.addShortcut(k.KEY_DIR.RIGHT,this.onRightKeyUp),this.mindMap.keyCommand.addShortcut(k.KEY_DIR.DOWN,this.onDownKeyUp)}removeShortcut(){this.mindMap.keyCommand.removeShortcut(k.KEY_DIR.LEFT,this.onLeftKeyUp),this.mindMap.keyCommand.removeShortcut(k.KEY_DIR.UP,this.onUpKeyUp),this.mindMap.keyCommand.removeShortcut(k.KEY_DIR.RIGHT,this.onRightKeyUp),this.mindMap.keyCommand.removeShortcut(k.KEY_DIR.DOWN,this.onDownKeyUp)}onLeftKeyUp(){this.onKeyup(k.KEY_DIR.LEFT)}onUpKeyUp(){this.onKeyup(k.KEY_DIR.UP)}onRightKeyUp(){this.onKeyup(k.KEY_DIR.RIGHT)}onDownKeyUp(){this.onKeyup(k.KEY_DIR.DOWN)}onKeyup(e){if(this.mindMap.renderer.activeNodeList.length>0)this.focus(e);else{let t=this.mindMap.renderer.root;this.mindMap.execCommand("GO_TARGET_NODE",t)}}focus(e){let t=this.mindMap.renderer.activeNodeList[0],r=this.getNodeRect(t),n=null,s=1/0,a=(o,l)=>{let h=this.getDistance(r,o);h{if(s.uid===e.uid)return;let a=this.getNodeRect(s),{left:o,top:l,right:h,bottom:d}=a,c=!1;r===k.KEY_DIR.LEFT?c=h<=t.left:r===k.KEY_DIR.RIGHT?c=o>=t.right:r===k.KEY_DIR.UP?c=d<=t.top:r===k.KEY_DIR.DOWN&&(c=l>=t.bottom),c&&n(a,s)})}getFocusNodeByShadowAlgorithm({currentActiveNode:e,currentActiveNodeRect:t,dir:r,checkNodeDis:n}){Xt(this.mindMap.renderer.root,s=>{if(s.uid===e.uid)return;let a=this.getNodeRect(s),{left:o,top:l,right:h,bottom:d}=a,c=!1;r===k.KEY_DIR.LEFT?c=ot.top:r===k.KEY_DIR.RIGHT?c=h>t.right&&lt.top:r===k.KEY_DIR.UP?c=lt.left:r===k.KEY_DIR.DOWN&&(c=d>t.bottom&&ot.left),c&&n(a,s)})}getFocusNodeByAreaAlgorithm({currentActiveNode:e,currentActiveNodeRect:t,dir:r,checkNodeDis:n}){let s=(t.right+t.left)/2,a=(t.bottom+t.top)/2;Xt(this.mindMap.renderer.root,o=>{if(o.uid===e.uid)return;let l=this.getNodeRect(o),{left:h,top:d,right:c,bottom:f}=l,m=(c+h)/2,g=(f+d)/2,x=m-s,y=g-a;if(x===0&&y===0)return;let b=!1;r===k.KEY_DIR.LEFT?b=x<=0&&x<=y&&x<=-y:r===k.KEY_DIR.RIGHT?b=x>0&&x>=-y&&x>=y:r===k.KEY_DIR.UP?b=y<=0&&y0&&-yx),b&&n(l,o)})}getNodeRect(e){let{scaleX:t,scaleY:r,translateX:n,translateY:s}=this.mindMap.draw.transform(),{left:a,top:o,width:l,height:h}=e;return{right:(a+l)*t+n,bottom:(o+h)*r+s,left:a*t+n,top:o*r+s}}getDistance(e,t){let r=this.getCenter(e),n=this.getCenter(t);return Math.sqrt(Math.pow(r.x-n.x,2)+Math.pow(r.y-n.y,2))}getCenter({left:e,right:t,top:r,bottom:n}){return{x:(e+t)/2,y:(r+n)/2}}beforePluginRemove(){this.removeShortcut()}beforePluginDestroy(){this.removeShortcut()}};Q0.instanceName="keyboardNavigation";sE=Q0});var Fu,J0,Pu,i6,aE,oE,lE,eh,hE,r6,n6=T(()=>{Fu=i=>String(i).split(/\s+/).map(t=>{if(/^[\d.]+/.test(t)){let r=/^([\d.]+)(.*)$/.exec(t);return[Number(r[1]),r[2]]}else return t}),J0=(i,e)=>i*e,Pu=(i,e)=>e/i,i6={left:0,top:0,center:50,bottom:100,right:100},aE=({backgroundSize:i,drawOpt:e,imageRatio:t,canvasWidth:r,canvasHeight:n,canvasRatio:s})=>{if(i){let a=Fu(i);if(a[0]==="auto"&&a[1]==="auto")return;if(a[0]==="cover"){t>s?(e.height=n,e.width=J0(t,n)):(e.width=r,e.height=Pu(t,r));return}if(a[0]==="contain"){t>s?(e.width=r,e.height=Pu(t,r)):(e.height=n,e.width=J0(t,n));return}let o=-1;a[0]&&(Array.isArray(a[0])?a[0][1]==="%"?(e.width=a[0][0]/100*r,o=e.width):(e.width=a[0][0],o=a[0][0]):a[0]==="auto"&&a[1]&&(a[1][1]==="%"?e.width=J0(t,a[1][0]/100*n):e.width=J0(t,a[1][0]))),a[1]&&Array.isArray(a[1])?a[1][1]==="%"?e.height=a[1][0]/100*n:e.height=a[1][0]:o!==-1&&(e.height=Pu(t,o))}},oE=({backgroundPosition:i,drawOpt:e,imgWidth:t,imgHeight:r,canvasWidth:n,canvasHeight:s})=>{if(i){let a=Fu(i);if(a=a.map(o=>typeof o=="string"&&i6[o]!==void 0?[i6[o],"%"]:o),Array.isArray(a[0])){if(a.length===1&&a.push([50,"%"]),a[0][1]==="%"){let o=a[0][0]/100*n,l=a[0][0]/100*t;e.x=o-l}else e.x=a[0][0];if(a[1][1]==="%"){let o=a[1][0]/100*s,l=a[1][0]/100*r;e.y=o-l}else e.y=a[1][0]}}},lE=({ctx:i,image:e,backgroundRepeat:t,drawOpt:r,imgWidth:n,imgHeight:s,canvasWidth:a,canvasHeight:o})=>{if(t){let l=r.x,h=r.y,d=Math.ceil(l/n),c=Math.ceil(h/s),f=l-d*n,m=h-c*s,g=Fu(t);if(g[0]==="no-repeat"||n>=a&&s>=o)return;if(g[0]==="repeat-x"&&a>n){let x=f;for(;xs){let x=m;for(;xs){let y=m;for(;y{i.drawImage(e,t.sx,t.sy,t.swidth,t.sheight,t.x,t.y,t.width,t.height)},hE=(i,e,t,r,{backgroundSize:n,backgroundPosition:s,backgroundRepeat:a},o=()=>{})=>{let l=e/t,h=new Image;h.src=r,h.onload=()=>{let d=h.width,c=h.height,f=d/c,m={sx:0,sy:0,swidth:d,sheight:c,x:0,y:0,width:d,height:c};aE({backgroundSize:n,drawOpt:m,imageRatio:f,canvasWidth:e,canvasHeight:t,canvasRatio:l}),oE({backgroundPosition:s,drawOpt:m,imgWidth:m.width,imgHeight:m.height,imageRatio:f,canvasWidth:e,canvasHeight:t,canvasRatio:l}),lE({ctx:i,image:h,backgroundRepeat:a,drawOpt:m,imgWidth:m.width,imgHeight:m.height,imageRatio:f,canvasWidth:e,canvasHeight:t,canvasRatio:l})||eh(i,h,m),o()},h.onerror=d=>{o(d)}},r6=hE});var qu,dE,cE,s6,a6=T(()=>{pe();qu=i=>i.richText?j0(i.text):i.text,dE=i=>new Array(i).fill("#").join(""),cE=i=>new Array(i-6).fill(" ").join("")+"*",s6=i=>{let e="";return de(i,null,(t,r,n,s)=>{let a=s+1;a<=6?e+=dE(a):e+=cE(a),e+=" "+qu(t.data);let o=t.data.generalization;if(Array.isArray(o))e+=o.map(l=>` [${qu(l)}]`);else if(o&&o.text){let l=qu(o);e+=` [${l}]`}e+=` `,t.data.note&&(e+=t.data.note+` -`)},()=>{},!0),e}});var qc,ZM,k3,C3=M(()=>{he();qc=i=>i.richText?t0(i.text):i.text,ZM=i=>new Array(i).fill(" ").join(""),k3=i=>{let e="";return se(i,null,(t,r,n,s)=>{e+=ZM(s),e+=" "+qc(t.data);let a=t.data.generalization;Array.isArray(a)?e+=a.map(o=>` [${qc(o)}]`):a&&a.text&&(e+=` [${qc(a)}]`),e+=` +`)},()=>{},!0),e}});var Hu,uE,o6,l6=T(()=>{pe();Hu=i=>i.richText?j0(i.text):i.text,uE=i=>new Array(i).fill(" ").join(""),o6=i=>{let e="";return de(i,null,(t,r,n,s)=>{e+=uE(s),e+=" "+Hu(t.data);let a=t.data.generalization;Array.isArray(a)?e+=a.map(o=>` [${Hu(o)}]`):a&&a.text&&(e+=` [${Hu(a)}]`),e+=` -`},()=>{},!0),e}});var _3={};ti(_3,{default:()=>QM});var u0,QM,L3=M(()=>{he();ht();E3();A3();Oe();C3();u0=class{constructor(e){this.mindMap=e.mindMap}async export(e,t=!0,r="\u601D\u7EF4\u5BFC\u56FE",...n){if(this[e]){let s=await this[e](r,...n);return t&&Dp(s,r+"."+e),s}else return null}createTransformImgTaskList(e,t,r,n){return e.find(t).map(async a=>{let o=n(a);if(/^data:/.test(o)||o==="none")return;let l=await uc(o);a.attr(r,l)})}async getSvgData(e){let{exportPaddingX:t,exportPaddingY:r,errorHandler:n,resetCss:s,addContentToHeader:a,addContentToFooter:o,handleBeingExportSvg:l}=this.mindMap.opt,{svg:h,svgHTML:d,clipData:c}=this.mindMap.getSvgData({paddingX:t,paddingY:r,addContentToHeader:a,addContentToFooter:o,node:e});c&&(c.paddingX=t,c.paddingY=r);let f=!1,m=this.createTransformImgTaskList(h,"image","href",v=>v.attr("href")||v.attr("xlink:href")),g=this.createTransformImgTaskList(h,"img","src",v=>v.attr("src")),x=[...m,...g];try{await Promise.all(x)}catch(v){n(di.EXPORT_LOAD_IMAGE_ERROR,v)}if(this.mindMap.richText){let v=h.find("foreignObject");if(v.length>0&&(v[0].add(Me(``)),f=!0),this.mindMap.formula&&h.find(".ql-formula").length>0){let E=this.mindMap.formula.getStyleText();if(E){let S=document.createElement("style");S.innerHTML=E,$i(S),v[0].add(S),f=!0}}}return typeof l=="function"&&(f=!0,h=l(h)),(x.length>0||f)&&(d=h.svg()),{node:h,str:d,clipData:c}}svgToPng(e,t,r=null,n=!1,s="image/png"){let{maxCanvasSize:a,minExportImgCanvasScale:o}=this.mindMap.opt;return new Promise((l,h)=>{let d=new Image;d.setAttribute("crossOrigin","anonymous"),d.onload=async()=>{try{let c=document.createElement("canvas"),f=Math.max(window.devicePixelRatio,o),m=d.width,g=d.height,x=0,v=0;r&&(x=r.paddingX,v=r.paddingY,m=r.width+x*2,g=r.height+v*2);let b=0,E=0,{backgroundImage:S}=this.mindMap.themeConfig;if(n&&S&&!t){let ye=await new Promise(G=>{let W=new Image;W.onload=()=>{G([W.width,W.height])},W.onerror=()=>{G(null)},W.src=S});if(ye){let G=m/g,W=ye[0]/ye[1];G>W?(b=m,E=m/W):(E=g,b=g*W)}}let C=1,_=1,I=(b||m)*f,O=(E||g)*f;if(I>a||O>a){let ye=null,G=null;I>a?ye=a:O>a&&(G=a);let W=Jl(I,O,ye,G);C=W[0]/I,_=W[1]/O,I=W[0],O=W[1]}c.width=I,c.height=O;let D=I/f,$=O/f;c.style.width=D+"px",c.style.height=$+"px";let F=c.getContext("2d");F.scale(f,f),t||await this.drawBackgroundToCanvas(F,D,$);let Z=(b>0?(b-m)/2:0)*C,re=(E>0?(E-g)/2:0)*_;r?F.drawImage(d,r.left,r.top,r.width,r.height,x*C+Z,v*_+re,r.width*C,r.height*_):F.drawImage(d,Z,re,m*C,g*_),l(c.toDataURL(s))}catch(c){h(c)}},d.onerror=c=>{h(c)},d.src=e})}drawBackgroundToCanvas(e,t,r){return new Promise((n,s)=>{let{backgroundColor:a="#fff",backgroundImage:o,backgroundRepeat:l="no-repeat",backgroundPosition:h="center center",backgroundSize:d="cover"}=this.mindMap.themeConfig;e.save(),e.rect(0,0,t,r),e.fillStyle=a,e.fill(),e.restore(),o&&o!=="none"?(e.save(),N3(e,t,r,o,{backgroundRepeat:l,backgroundPosition:h,backgroundSize:d},c=>{c?s(c):n(),e.restore()})):n()})}drawBackgroundToSvg(e){return new Promise(async t=>{let{backgroundColor:r="#fff",backgroundImage:n,backgroundRepeat:s="repeat"}=this.mindMap.themeConfig;if(e.css("background-color",r),n&&n!=="none"){let a=await uc(n);e.css("background-image",`url(${a})`),e.css("background-repeat",s),t()}else t()})}async _image(e,t,r=!1,n=null,s=!1){this.mindMap.renderer.textEdit.hideEditTextBox(),this.handleNodeExport(n);let{str:a,clipData:o}=await this.getSvgData(n),l=await this.fixSvgStrAndToBlob(a);return await this.svgToPng(l,r,o,s,e)}async png(...e){return await this._image("image/png",...e)}async jpg(...e){return await this._image("image/jpg",...e)}handleNodeExport(e){if(e&&e.getData("isActive")){e.deactivate();let{alwaysShowExpandBtn:t,notShowExpandBtn:r}=this.mindMap.opt;!t&&!r&&e.getData("expand")&&e.removeExpandBtn()}}async pdf(e,t=!1,r=!1){if(!this.mindMap.doExportPDF)throw new Error("\u8BF7\u6CE8\u518CExportPDF\u63D2\u4EF6");let n=await this.png(e,t,null,r);return await this.mindMap.doExportPDF.pdf(n)}async xmind(e){if(!this.mindMap.doExportXMind)throw new Error("\u8BF7\u6CE8\u518CExportXMind\u63D2\u4EF6");let t=this.mindMap.getData(),r=await this.mindMap.doExportXMind.xmind(t,e);return await Cs(r)}async svg(e){this.mindMap.renderer.textEdit.hideEditTextBox();let{node:t}=await this.getSvgData();t.first().before(Me(`${e}`)),await this.drawBackgroundToSvg(t);let r=t.svg();return await this.fixSvgStrAndToBlob(r)}async fixSvgStrAndToBlob(e){e=Hp(e),e=Zp(e);let t=new Blob([e],{type:"image/svg+xml"});return await Cs(t)}async json(e,t=!0){let r=this.mindMap.getData(t),n=JSON.stringify(r),s=new Blob([n]);return await Cs(s)}async smm(e,t){return await this.json(e,t)}async md(){let e=this.mindMap.getData(),t=S3(e),r=new Blob([t]);return await Cs(r)}async txt(){let e=this.mindMap.getData(),t=k3(e),r=new Blob([t]);return await Cs(r)}};u0.instanceName="doExport";QM=u0});var z3={};ti(z3,{default:()=>JM});var f0,JM,I3=M(()=>{he();Oc();f0=class{constructor({mindMap:e}){this.mindMap=e,this.rect=null,this.isMousedown=!1,this.mouseDownX=0,this.mouseDownY=0,this.mouseMoveX=0,this.mouseMoveY=0,this.isSelecting=!1,this.cacheActiveList=[],this.autoMove=new o0(e),this.bindEvent()}bindEvent(){this.onMousedown=this.onMousedown.bind(this),this.onMousemove=this.onMousemove.bind(this),this.onMouseup=this.onMouseup.bind(this),this.checkInNodes=mi(this.checkInNodes,300,this),this.mindMap.on("mousedown",this.onMousedown),this.mindMap.on("mousemove",this.onMousemove),this.mindMap.on("mouseup",this.onMouseup),this.mindMap.on("node_mouseup",this.onMouseup)}unBindEvent(){this.mindMap.off("mousedown",this.onMousedown),this.mindMap.off("mousemove",this.onMousemove),this.mindMap.off("mouseup",this.onMouseup),this.mindMap.off("node_mouseup",this.onMouseup)}onMousedown(e){let{readonly:t,mousedownEventPreventDefault:r}=this.mindMap.opt;if(t)return;let{useLeftKeySelectionRightKeyDrag:n}=this.mindMap.opt;if(!(e.ctrlKey||e.metaKey)&&(n?e.which!==1:e.which!==3))return;r&&e.preventDefault(),this.isMousedown=!0,this.cacheActiveList=[...this.mindMap.renderer.activeNodeList];let{x:s,y:a}=this.mindMap.toPos(e.clientX,e.clientY);this.mouseDownX=s,this.mouseDownY=a,this.createRect(s,a)}onMousemove(e){if(this.mindMap.opt.readonly||!this.isMousedown)return;let{x:t,y:r}=this.mindMap.toPos(e.clientX,e.clientY);this.mouseMoveX=t,this.mouseMoveY=r,!(Math.abs(t-this.mouseDownX)<=10&&Math.abs(r-this.mouseDownY)<=10)&&(this.autoMove.clearAutoMoveTimer(),this.autoMove.onMove(e.clientX,e.clientY,()=>{this.isSelecting=!0,this.rect&&this.rect.plot([[this.mouseDownX,this.mouseDownY],[this.mouseMoveX,this.mouseDownY],[this.mouseMoveX,this.mouseMoveY],[this.mouseDownX,this.mouseMoveY]]),this.checkInNodes()},(n,s)=>{switch(n){case"left":this.mouseDownX+=s;break;case"top":this.mouseDownY+=s;break;case"right":this.mouseDownX-=s;break;case"bottom":this.mouseDownY-=s;break;default:break}}))}onMouseup(){this.mindMap.opt.readonly||this.isMousedown&&(this.checkTriggerNodeActiveEvent(),this.autoMove.clearAutoMoveTimer(),this.isMousedown=!1,this.cacheActiveList=[],this.rect&&this.rect.remove(),this.rect=null,setTimeout(()=>{this.isSelecting=!1},0))}checkTriggerNodeActiveEvent(){let e=this.cacheActiveList.length!==this.mindMap.renderer.activeNodeList.length,t=!1;if(!e)for(let r=0;rs.getData("uid")===n.getData("uid"))){t=!0;break}}(e||t)&&this.mindMap.renderer.emitNodeActiveEvent()}createRect(e,t){this.rect&&this.rect.remove(),this.rect=this.mindMap.svg.polygon().stroke({color:"#0984e3"}).fill({color:"rgba(9,132,227,0.3)"}).plot([[e,t]])}checkInNodes(){let{scaleX:e,scaleY:t,translateX:r,translateY:n}=this.mindMap.draw.transform(),s=Math.min(this.mouseDownX,this.mouseMoveX),a=Math.min(this.mouseDownY,this.mouseMoveY),o=Math.max(this.mouseDownX,this.mouseMoveX),l=Math.max(this.mouseDownY,this.mouseMoveY),h=d=>{let{left:c,top:f,width:m,height:g}=d,x=(c+m)*e+r,v=(f+g)*t+n;if(c=c*e+r,f=f*t+n,Xp(s,o,a,l,c,x,f,v)){if(d.getData("isActive"))return;this.mindMap.renderer.addNodeToActiveList(d),this.mindMap.renderer.emitNodeActiveEvent()}else if(d.getData("isActive")){if(!d.getData("isActive"))return;this.mindMap.renderer.removeNodeFromActiveList(d),this.mindMap.renderer.emitNodeActiveEvent()}};Pt(this.mindMap.renderer.root,d=>{h(d),d._generalizationList&&d._generalizationList.length>0&&d._generalizationList.forEach(c=>{h(c.generalizationNode)})})}hasSelectRange(){return this.isSelecting}beforePluginRemove(){this.unBindEvent()}beforePluginDestroy(){this.unBindEvent()}};f0.instanceName="select";JM=f0});var mo,po,m0,R3,D3,eT,dr,Hc,O3,Uc,$c=M(()=>{he();mo=(i,e)=>i.getData("associativeLineTargets").findIndex(t=>t===e.getData("uid")),po=(i,e,t,r)=>{let s=i+(t-i)/2,a=e,o=s,l=r;return Math.abs(i-t)<=5&&(s=i+(r-e)/2,o=s),Math.abs(e-r)<=5&&(s=i,a=e-(t-i)/2,o=t,l=a),[{x:s,y:a},{x:o,y:l}]},m0=(i,e,t,r)=>`M ${i.x},${i.y} C ${t.x},${t.y} ${r.x},${r.y} ${e.x},${e.y}`,R3=i=>{let{left:e,top:t,width:r,height:n}=i;return{right:e+r,bottom:t+n,left:e,top:t,width:r,height:n}},D3=(i,e,t,r)=>{let n=po(i,e,t,r);return m0({x:i,y:e},{x:t,y:r},n[0],n[1])},eT=(i,e)=>{let{left:t,top:r,translateLeft:n,translateTop:s,width:a,height:o}=i,l=e.clientX,h=e.clientY,d=n+a/2,c=s+o/2,f=t+a/2,m=r+o/2,g=Math.atan(o/a),x=l-d,v=c-h,b=Math.atan2(v,x),E=t+a,S=r+o;if(b=-g){let I=b*(a/2);return(b=0||b>=-g&&b<0)&&(S=m-I),{x:E,y:S,dir:"right",range:I}}else if(b>=g&&b=g){let O=o/2/b;I=-O,E=f+O}else if(b>=Math.PI/2-g&&b=g-Math.PI){let I=0;if(b>=g-Math.PI/2&&b<-g){let O=o/2/b;I=O,E=f-O}else if(b=g-Math.PI){let O=(d-l)/(c-h),D=o/2*O;I=-D,E=f+D}return{x:E,y:S,dir:"bottom",range:I}}E=t;let _=(c-h)/(d-l)*(a/2);return(b>=-Math.PI&&b=Math.PI-g)&&(S=m-_),{x:E,y:S,dir:"left",range:_}},dr=(i,e="right",t=0,r=null)=>{let{left:n,top:s,width:a,height:o}=i;if(r)return eT(i,r);switch(e){case"left":return{x:n,y:s+o/2-t,dir:e};case"right":return{x:n+a,y:s+o/2-t,dir:e};case"top":return{x:n+a/2-t,y:s,dir:e};case"bottom":return{x:n+a/2-t,y:s+o,dir:e};default:break}},Hc=(i,e)=>{let t=R3(i),r=R3(e),n="",s="";switch(e3({x:t.left,y:t.top,width:t.width,height:t.height},{x:r.left,y:r.top,width:r.width,height:r.height})){case"left-top":n="right",s="top";break;case"right-top":n="left",s="top";break;case"right-bottom":n="left",s="bottom";break;case"left-bottom":n="right",s="bottom";break;case"left":n="right",s="left";break;case"right":n="left",s="right";break;case"top":n="right",s="right";break;case"bottom":n="left",s="left";break;case"overlap":n="right",s="right";break;default:break}return[dr(i,n),dr(e,s)]},O3=(i,e,t,r)=>{let n=mo(t,r),s=[],a=t.getData("associativeLineTargetControlOffsets");if(a&&a[n]){let o=a[n];s=[{x:i.x+o[0].x,y:i.y+o[0].y},{x:e.x+o[1].x,y:e.y+o[1].y}]}else s=po(i.x,i.y,e.x,e.y);return{path:m0(i,e,s[0],s[1]),controlPoints:s}},Uc=(i,e)=>{let t=po(i.x,i.y,e.x,e.y);return[{x:t[0].x-i.x,y:t[0].y-i.y},{x:t[1].x-e.x,y:t[1].y-e.y}]}});function tT(i,e){let{associativeLineActiveColor:t}=this.getStyleConfig(i,e);this.controlLine1=this.associativeLineDraw.line().stroke({color:t,width:2}),this.controlLine2=this.associativeLineDraw.line().stroke({color:t,width:2}),this.controlPoint1=this.createOneControlNode("controlPoint1",i,e),this.controlPoint2=this.createOneControlNode("controlPoint2",i,e)}function iT(i,e,t){let{associativeLineActiveColor:r}=this.getStyleConfig(e,t);return this.associativeLineDraw.circle(this.controlPointDiameter).stroke({color:r}).fill({color:"#fff"}).click(n=>{n.stopPropagation()}).mousedown(n=>{this.onControlPointMousedown(n,i)})}function rT(i,e){i.stopPropagation(),i.preventDefault(),this.isControlPointMousedown=!0,this.mousedownControlPointKey=e}function nT(i){if(!this.isControlPointMousedown||!this.mousedownControlPointKey||!this[this.mousedownControlPointKey])return;i.stopPropagation(),i.preventDefault();let e=this.controlPointDiameter/2,{x:t,y:r}=this.getTransformedEventPos(i);this.controlPointMousemoveState.pos={x:t,y:r},this[this.mousedownControlPointKey].x(t-e).y(r-e);let[,,,n,s]=this.activeLine,a=mo(n,s),{associativeLinePoint:o,associativeLineTargetControlOffsets:l}=n.getData();o=o||[];let h=this.getNodePos(n),d=this.getNodePos(s),[c,f]=this.updateAllLinesPos(n,s,o[a]);this.controlPointMousemoveState.startPoint=c,this.controlPointMousemoveState.endPoint=f,this.controlPointMousemoveState.targetIndex=a;let m=[];l?m=l[a]:m=Uc(c,f);let g=null,x=null,{x:v,y:b}=this.mindMap.toPos(i.clientX,i.clientY),E={clientX:v,clientY:b};this.mousedownControlPointKey==="controlPoint1"?(c=dr(h,"",0,E),g={x:t,y:r},x={x:f.x+m[1].x,y:f.y+m[1].y},c&&(this.controlPointMousemoveState.startPoint=c,this.controlLine1.plot(c.x,c.y,g.x,g.y))):(f=dr(d,"",0,E),g={x:c.x+m[0].x,y:c.y+m[0].y},x={x:t,y:r},f&&(this.controlPointMousemoveState.endPoint=f,this.controlLine2.plot(f.x,f.y,x.x,x.y))),this.updataAassociativeLine(c,f,g,x,this.activeLine)}function sT(i,e,t,r,n){let[s,a,o]=n,l=m0(i,e,t,r);s.plot(l),a.plot(l),this.updateTextPos(s,o),this.updateTextEditBoxPos(o)}function aT(i){if(!this.isControlPointMousedown)return;i.stopPropagation(),i.preventDefault();let{pos:e,startPoint:t,endPoint:r,targetIndex:n}=this.controlPointMousemoveState,[,,,s]=this.activeLine,a=[],{associativeLinePoint:o,associativeLineTargetControlOffsets:l}=s.getData();o||(o=[]),o[n]=o[n]||{startPoint:t,endPoint:r},l?a=l:a[n]=Uc(t,r);let h=null,d=null;this.mousedownControlPointKey==="controlPoint1"?(h={x:e.x-t.x,y:e.y-t.y},d=a[n][1],o[n].startPoint=t):(h=a[n][0],d={x:e.x-r.x,y:e.y-r.y},o[n].endPoint=r),a[n]=[h,d],this.mindMap.execCommand("SET_NODE_DATA",s,{associativeLineTargetControlOffsets:a,associativeLinePoint:o}),this.isNotRenderAllLines=!0,setTimeout(()=>{this.resetControlPoint()},0)}function oT(){this.isControlPointMousedown=!1,this.mousedownControlPointKey="",this.controlPointMousemoveState={pos:null,startPoint:null,endPoint:null,targetIndex:""}}function lT(i,e,t,r,n,s){if(!this.mindMap.opt.enableAdjustAssociativeLinePoints)return;this.controlLine1||this.createControlNodes(n,s);let a=this.controlPointDiameter/2;this.controlLine1.plot(i.x,i.y,t.x,t.y),this.controlLine2.plot(e.x,e.y,r.x,r.y),this.controlPoint1.x(t.x-a).y(t.y-a),this.controlPoint2.x(r.x-a).y(r.y-a)}function hT(){this.controlLine1&&([this.controlLine1,this.controlLine2,this.controlPoint1,this.controlPoint2].forEach(i=>{i.remove()}),this.controlLine1=null,this.controlLine2=null,this.controlPoint1=null,this.controlPoint2=null)}function dT(){this.controlLine1&&[this.controlLine1,this.controlLine2,this.controlPoint1,this.controlPoint2].forEach(i=>{i.hide()})}function cT(){this.controlLine1&&[this.controlLine1,this.controlLine2,this.controlPoint1,this.controlPoint2].forEach(i=>{i.show()})}var jc,B3=M(()=>{$c();jc={createControlNodes:tT,createOneControlNode:iT,onControlPointMousedown:rT,onControlPointMousemove:nT,onControlPointMouseup:aT,resetControlPoint:oT,renderControls:lT,removeControls:hT,hideControls:dT,showControls:cT,updataAassociativeLine:sT}});function fT(i){let e=this.associativeLineDraw.group(),t=()=>{(!this.activeLine||this.activeLine[3]!==i.node||this.activeLine[4]!==i.toNode)&&this.setActiveLine({...i,text:e})};return e.click(r=>{r.stopPropagation(),t()}),e.on("dblclick",r=>{r.stopPropagation(),t(),this.activeLine&&this.showEditTextBox(e)}),e}function mT(i){this.mindMap.emit("before_show_text_edit"),this.mindMap.keyCommand.addShortcut("Enter",()=>{this.hideEditTextBox()}),this.textEditNode||(this.textEditNode=document.createElement("div"),this.textEditNode.className=uT,this.textEditNode.style.cssText="position:fixed;box-sizing: border-box;background-color:#fff;box-shadow: 0 0 20px rgba(0,0,0,.5);padding: 3px 5px;margin-left: -5px;margin-top: -3px;outline: none; word-break: break-all;",this.textEditNode.setAttribute("contenteditable",!0),this.textEditNode.addEventListener("keyup",f=>{f.stopPropagation()}),this.textEditNode.addEventListener("click",f=>{f.stopPropagation()}),(this.mindMap.opt.customInnerElsAppendTo||document.body).appendChild(this.textEditNode));let[,,,e,t]=this.activeLine,{associativeLineTextFontSize:r,associativeLineTextFontFamily:n,associativeLineTextLineHeight:s}=this.getStyleConfig(e,t),{defaultAssociativeLineText:a,nodeTextEditZIndex:o}=this.mindMap.opt,l=this.mindMap.view.scale,h=this.getText(e,t),d=(h||a).split(/\n/gim);this.textEditNode.style.fontFamily=n,this.textEditNode.style.fontSize=r*l+"px",this.textEditNode.style.lineHeight=d.length>1?s:"normal",this.textEditNode.style.zIndex=o,this.textEditNode.innerHTML=d.join("
    "),this.textEditNode.style.display="block",this.updateTextEditBoxPos(i),this.setIsShowTextEdit(!0),h===""||h===a?Ls(this.textEditNode):_s(this.textEditNode)}function pT(i){this.showTextEdit=i,i?this.mindMap.keyCommand.stopCheckInSvg():this.mindMap.keyCommand.recoveryCheckInSvg()}function gT(){if(!this.textEditNode)return;(this.mindMap.opt.customInnerElsAppendTo||document.body).removeChild(this.textEditNode)}function xT(){this.hideEditTextBox()}function vT(i){let e=i.node.getBoundingClientRect();this.textEditNode&&(this.textEditNode.style.minWidth=`${e.width+10}px`,this.textEditNode.style.minHeight=`${e.height+6}px`,this.textEditNode.style.left=`${e.left}px`,this.textEditNode.style.top=`${e.top}px`)}function yT(){if(!this.showTextEdit)return;let[i,,e,t,r]=this.activeLine,n=As(this.textEditNode.innerHTML);n=n===this.mindMap.opt.defaultAssociativeLineText?"":n,this.mindMap.execCommand("SET_NODE_DATA",t,{associativeLineText:{...t.getData("associativeLineText")||{},[r.getData("uid")]:n}}),this.textEditNode.style.display="none",this.textEditNode.innerHTML="",this.setIsShowTextEdit(!1),this.renderText(n,i,e,t,r),this.mindMap.emit("hide_text_edit")}function bT(i,e){let t=i.getData("associativeLineText");return t&&t[e.getData("uid")]||""}function wT(i,e,t,r,n){if(!i)return;let{associativeLineTextFontSize:s,associativeLineTextLineHeight:a}=this.getStyleConfig(r,n);t.clear(),i.replace(/\n$/g,"").split(/\n/gim).forEach((l,h)=>{l===""&&(l="\uFEFF");let d=new Te().text(l);d.y(s*a*h),this.styleText(d,r,n),t.add(d)}),P3(e,t)}function MT(i,e,t){let{associativeLineTextColor:r,associativeLineTextFontSize:n,associativeLineTextFontFamily:s}=this.getStyleConfig(e,t);i.fill({color:r}).css({"font-family":s,"font-size":n+"px"})}function P3(i,e){let t=i.length(),r=i.pointAt(t/2),{width:n,height:s}=e.bbox();e.x(r.x-n/2),e.y(r.y-s/2)}var uT,Gc,F3=M(()=>{ht();he();uT="associative-line-text-edit-warp";Gc={getText:bT,createText:fT,styleText:MT,onScale:xT,showEditTextBox:mT,setIsShowTextEdit:pT,removeTextEditEl:gT,hideEditTextBox:yT,updateTextEditBoxPos:vT,renderText:wT,updateTextPos:P3}});var q3={};ti(q3,{default:()=>NT});var TT,Yc,p0,NT,H3=M(()=>{he();qd();$c();B3();F3();TT=["associativeLineWidth","associativeLineColor","associativeLineActiveWidth","associativeLineActiveColor","associativeLineDasharray","associativeLineTextColor","associativeLineTextFontSize","associativeLineTextLineHeight","associativeLineTextFontFamily"],Yc="associative-line-text-edit-warp",p0=class{constructor(e={}){this.mindMap=e.mindMap,this.associativeLineDraw=this.mindMap.associativeLineDraw,this.isNotRenderAllLines=!1,this.lineList=[],this.activeLine=null,this.isCreatingLine=!1,this.creatingStartNode=null,this.creatingLine=null,this.overlapNode=null,this.isNodeDragging=!1,this.controlLine1=null,this.controlLine2=null,this.controlPoint1=null,this.controlPoint2=null,this.controlPointDiameter=10,this.isControlPointMousedown=!1,this.mousedownControlPointKey="",this.controlPointMousemoveState={pos:null,startPoint:null,endPoint:null,targetIndex:""},this.checkOverlapNode=mi(this.checkOverlapNode,100,this),Object.keys(jc).forEach(t=>{this[t]=jc[t].bind(this)}),this.showTextEdit=!1,Object.keys(Gc).forEach(t=>{this[t]=Gc[t].bind(this)}),this.mindMap.addEditNodeClass(Yc),this.bindEvent()}bindEvent(){this.renderAllLines=this.renderAllLines.bind(this),this.onDrawClick=this.onDrawClick.bind(this),this.onNodeClick=this.onNodeClick.bind(this),this.removeLine=this.removeLine.bind(this),this.addLine=this.addLine.bind(this),this.onMousemove=this.onMousemove.bind(this),this.onNodeDragging=this.onNodeDragging.bind(this),this.onNodeDragend=this.onNodeDragend.bind(this),this.onControlPointMouseup=this.onControlPointMouseup.bind(this),this.onBeforeDestroy=this.onBeforeDestroy.bind(this),this.mindMap.on("node_tree_render_end",this.renderAllLines),this.mindMap.on("data_change",this.renderAllLines),this.mindMap.on("draw_click",this.onDrawClick),this.mindMap.on("node_click",this.onNodeClick),this.mindMap.on("contextmenu",this.onDrawClick),this.mindMap.keyCommand.addShortcut("Del|Backspace",this.removeLine),this.mindMap.command.add("ADD_ASSOCIATIVE_LINE",this.addLine),this.mindMap.on("mousemove",this.onMousemove),this.mindMap.on("node_dragging",this.onNodeDragging),this.mindMap.on("node_dragend",this.onNodeDragend),this.mindMap.on("mouseup",this.onControlPointMouseup),this.mindMap.on("scale",this.onScale),this.mindMap.on("beforeDestroy",this.onBeforeDestroy)}unBindEvent(){this.mindMap.off("node_tree_render_end",this.renderAllLines),this.mindMap.off("data_change",this.renderAllLines),this.mindMap.off("draw_click",this.onDrawClick),this.mindMap.off("node_click",this.onNodeClick),this.mindMap.off("contextmenu",this.onDrawClick),this.mindMap.keyCommand.removeShortcut("Del|Backspace",this.removeLine),this.mindMap.command.remove("ADD_ASSOCIATIVE_LINE",this.addLine),this.mindMap.off("mousemove",this.onMousemove),this.mindMap.off("node_dragging",this.onNodeDragging),this.mindMap.off("node_dragend",this.onNodeDragend),this.mindMap.off("mouseup",this.onControlPointMouseup),this.mindMap.off("scale",this.onScale),this.mindMap.off("beforeDestroy",this.onBeforeDestroy)}getStyleConfig(e,t){let r={};t&&(r=(e.getData("associativeLineStyle")||{})[t.getData("uid")]||{});let n={};return TT.forEach(s=>{typeof r[s]<"u"?n[s]=r[s]:n[s]=e.getStyle(s)}),n}onBeforeDestroy(){this.hideEditTextBox(),this.removeTextEditEl()}onDrawClick(){this.isCreatingLine&&this.cancelCreateLine(),this.isControlPointMousedown||(this.clearActiveLine(),this.renderAllLines())}onNodeClick(e){this.isCreatingLine?this.completeCreateLine(e):(this.clearActiveLine(),this.renderAllLines())}createMarker(e=()=>{}){return this.associativeLineDraw.marker(20,20,t=>{t.ref(12,5),t.size(10,10),t.attr("orient","auto-start-reverse"),e(t.path("M0,0 L2,5 L0,10 L10,5 Z"))})}updateAllLinesPos(e,t,r){r=r||{};let[n,s]=Hc(e,t),a=0,o="",l=0,h="";return r.startPoint&&(a=r.startPoint.range||0,o=r.startPoint.dir||"right",n=dr(e,o,a)),r.endPoint&&(l=r.endPoint.range||0,h=r.endPoint.dir||"right",s=dr(t,h,l)),[n,s]}renderAllLines(){if(this.isNotRenderAllLines){this.isNotRenderAllLines=!1;return}this.removeAllLines(),this.removeControls(),this.clearActiveLine();let e=this.mindMap.renderer.root;if(!e)return;let t=new Map,r=new Map;se(e,null,n=>{if(!n)return;let s=n.getData();s.associativeLineTargets&&s.associativeLineTargets.length>0&&r.set(n,s.associativeLineTargets),s.uid&&t.set(s.uid,n)},()=>{},!0,0),r.forEach((n,s)=>{n.forEach((a,o)=>{let l=t.get(a);if(!s||!l)return;let h=(s.getData("associativeLinePoint")||[])[o],[d,c]=this.updateAllLinesPos(s,l,h);this.drawLine(d,c,s,l)})})}drawLine(e,t,r,n){let{associativeLineWidth:s,associativeLineColor:a,associativeLineActiveWidth:o,associativeLineDasharray:l}=this.getStyleConfig(r,n),h=null,d=this.createMarker(v=>{h=v});h.stroke({color:a}).fill({color:a});let{path:c,controlPoints:f}=O3(e,t,r,n),m=this.associativeLineDraw.path();m.stroke({width:s,color:a,dasharray:l||"6,4"}).fill({color:"none"}),m.plot(c),m.marker("end",d);let g=this.associativeLineDraw.path();g.stroke({width:o,color:"transparent"}).fill({color:"none"}),g.plot(c);let x=this.createText({path:m,clickPath:g,markerPath:h,node:r,toNode:n,startPoint:e,endPoint:t,controlPoints:f});g.click(v=>{v.stopPropagation(),this.setActiveLine({path:m,clickPath:g,markerPath:h,text:x,node:r,toNode:n,startPoint:e,endPoint:t,controlPoints:f})}),g.dblclick(()=>{this.activeLine&&this.showEditTextBox(x)}),this.renderText(this.getText(r,n),m,x,r,n),this.lineList.push([m,g,x,r,n])}updateActiveLineStyle(){if(!this.activeLine)return;this.isNotRenderAllLines=!0;let[e,t,r,n,s,a]=this.activeLine,{associativeLineWidth:o,associativeLineColor:l,associativeLineDasharray:h,associativeLineActiveWidth:d,associativeLineActiveColor:c,associativeLineTextColor:f,associativeLineTextFontFamily:m,associativeLineTextFontSize:g}=this.getStyleConfig(n,s);e.stroke({width:o,color:l,dasharray:h||"6,4"}).fill({color:"none"}),t.stroke({width:d,color:c}).fill({color:"none"}),a.stroke({color:l}).fill({color:l}),r.find("text").forEach(x=>{x.fill({color:f}).css({"font-family":m,"font-size":g+"px"})}),this.controlLine1&&this.controlLine1.stroke({color:c}),this.controlLine2&&this.controlLine2.stroke({color:c}),this.controlPoint1&&this.controlPoint1.stroke({color:c}),this.controlPoint2&&this.controlPoint2.stroke({color:c}),this.updateTextPos(e,r)}setActiveLine({path:e,clickPath:t,markerPath:r,text:n,node:s,toNode:a,startPoint:o,endPoint:l,controlPoints:h}){let{associativeLineActiveColor:d}=this.getStyleConfig(s,a);this.mindMap.execCommand("CLEAR_ACTIVE_NODE"),this.clearActiveLine(),this.activeLine=[e,t,n,s,a,r],t.stroke({color:d}),this.getText(s,a)||this.renderText(this.mindMap.opt.defaultAssociativeLineText,e,n,s,a),this.renderControls(o,l,h[0],h[1],s,a),this.mindMap.emit("associative_line_click",e,t,s,a),this.front()}removeAllLines(){this.lineList.forEach(e=>{e[0].remove(),e[1].remove(),e[2].remove()}),this.lineList=[]}createLineFromActiveNode(){if(this.mindMap.renderer.activeNodeList.length<=0)return;let e=this.mindMap.renderer.activeNodeList[0];this.createLine(e)}createLine(e){let{associativeLineWidth:t,associativeLineColor:r,associativeLineDasharray:n}=this.getStyleConfig(e);if(this.isCreatingLine||!e)return;this.front(),this.isCreatingLine=!0,this.creatingStartNode=e,this.creatingLine=this.associativeLineDraw.path(),this.creatingLine.stroke({width:t,color:r,dasharray:n||"6,4"}).fill({color:"none"});let s=null,a=this.createMarker(o=>{s=o});s.stroke({color:r}).fill({color:r}),this.creatingLine.marker("end",a)}cancelCreateLine(){this.isCreatingLine=!1,this.creatingStartNode=null,this.creatingLine.remove(),this.creatingLine=null,this.overlapNode=null,this.back()}onMousemove(e){this.onControlPointMousemove(e),this.updateCreatingLine(e)}updateCreatingLine(e){if(!this.isCreatingLine)return;let{x:t,y:r}=this.getTransformedEventPos(e),n=dr(this.creatingStartNode),s=t>n.x?-10:10,a=D3(n.x,n.y,t+s,r);this.creatingLine.plot(a),this.checkOverlapNode(t,r)}getTransformedEventPos(e){let{x:t,y:r}=this.mindMap.toPos(e.clientX,e.clientY),{scaleX:n,scaleY:s,translateX:a,translateY:o}=this.mindMap.draw.transform();return{x:(t-a)/n,y:(r-o)/s}}getNodePos(e){let{scaleX:t,scaleY:r,translateX:n,translateY:s}=this.mindMap.draw.transform(),{left:a,top:o,width:l,height:h}=e,d=a*t+n,c=o*r+s;return{left:a,top:o,translateLeft:d,translateTop:c,width:l,height:h}}checkOverlapNode(e,t){this.overlapNode=null,Pt(this.mindMap.renderer.root,r=>{if(r.getData("isActive")&&this.mindMap.execCommand("SET_NODE_ACTIVE",r,!1),r.uid===this.creatingStartNode.uid||this.overlapNode)return;let{left:n,top:s,width:a,height:o}=r,l=n+a,h=s+o;e>=n&&e<=l&&t>=s&&t<=h&&(this.overlapNode=r)}),this.overlapNode&&!this.overlapNode.getData("isActive")&&this.mindMap.execCommand("SET_NODE_ACTIVE",this.overlapNode,!0)}completeCreateLine(e){if(this.creatingStartNode.uid===e.uid)return;let{beforeAssociativeLineConnection:t}=this.mindMap.opt,r=!1;typeof t=="function"&&(r=t(e)),!r&&(this.addLine(this.creatingStartNode,e),this.overlapNode&&this.overlapNode.getData("isActive")&&this.mindMap.execCommand("SET_NODE_ACTIVE",this.overlapNode,!1),this.cancelCreateLine())}addLine(e,t){if(!e||!t)return;let r=t.getData("uid");r||(r=Da(),this.mindMap.execCommand("SET_NODE_DATA",t,{uid:r}));let n=e.getData("associativeLineTargets")||[];if(n.some(f=>f===r))return;n.push(r);let[a,o]=Hc(e,t),l=po(a.x,a.y,o.x,o.y),{associativeLineInitPointsPosition:h}=this.mindMap.opt;if(h){let{from:f,to:m}=h;f&&(a.dir=f),m&&(o.dir=m)}let d=e.getData("associativeLineTargetControlOffsets")||[];d[n.length-1]=[{x:l[0].x-a.x,y:l[0].y-a.y},{x:l[1].x-o.x,y:l[1].y-o.y}];let c=e.getData("associativeLinePoint")||[];c[n.length-1]={startPoint:a,endPoint:o},this.mindMap.execCommand("SET_NODE_DATA",e,{associativeLineTargets:n,associativeLineTargetControlOffsets:d,associativeLinePoint:c})}removeLine(){if(!this.activeLine)return;let[,,,e,t]=this.activeLine;this.removeControls();let{associativeLineTargets:r,associativeLinePoint:n,associativeLineTargetControlOffsets:s,associativeLineText:a,associativeLineStyle:o}=e.getData();n=n||[];let l=mo(e,t),h={};a&&Object.keys(a).forEach(c=>{c!==t.getData("uid")&&(h[c]=a[c])});let d={};o&&Object.keys(o).forEach(c=>{c!==t.getData("uid")&&(d[c]=o[c])}),this.mindMap.execCommand("SET_NODE_DATA",e,{associativeLineTargets:r.filter((c,f)=>f!==l),associativeLinePoint:n.filter((c,f)=>f!==l),associativeLineTargetControlOffsets:s?s.filter((c,f)=>f!==l):[],associativeLineText:h,associativeLineStyle:d})}clearActiveLine(){if(this.activeLine){let[,e,t,r,n]=this.activeLine;e.stroke({color:"transparent"}),this.hideEditTextBox(),this.getText(r,n)||t.clear(),this.activeLine=null,this.removeControls(),this.back(),this.mindMap.emit("associative_line_deactivate")}}onNodeDragging(){this.isNodeDragging||(this.isNodeDragging=!0,this.lineList.forEach(e=>{e[0].hide(),e[1].hide(),e[2].hide()}),this.hideControls())}onNodeDragend(){this.isNodeDragging&&(this.lineList.forEach(e=>{e[0].show(),e[1].show(),e[2].show()}),this.showControls(),this.isNodeDragging=!1)}front(){this.mindMap.opt.associativeLineIsAlwaysAboveNode||this.associativeLineDraw.front()}back(){this.mindMap.opt.associativeLineIsAlwaysAboveNode||(this.associativeLineDraw.back(),this.associativeLineDraw.forward())}beforePluginRemove(){this.mindMap.deleteEditNodeClass(Yc),this.unBindEvent()}beforePluginDestroy(){this.mindMap.deleteEditNodeClass(Yc),this.unBindEvent()}};p0.instanceName="associativeLine";NT=p0});var U3={};ti(U3,{default:()=>ET});var g0,ET,$3=M(()=>{he();a0();Oe();g0=class{constructor({mindMap:e}){this.mindMap=e,this.isSearching=!1,this.searchText="",this.matchNodeList=[],this.currentIndex=-1,this.notResetSearchText=!1,this.isJumpNext=!1,this.bindEvent()}bindEvent(){this.onDataChange=this.onDataChange.bind(this),this.onModeChange=this.onModeChange.bind(this),this.mindMap.on("data_change",this.onDataChange),this.mindMap.on("mode_change",this.onModeChange)}unBindEvent(){this.mindMap.off("data_change",this.onDataChange),this.mindMap.off("mode_change",this.onModeChange)}onDataChange(){if(this.isJumpNext){this.isJumpNext=!1,this.search(this.searchText);return}if(this.notResetSearchText){this.notResetSearchText=!1;return}this.searchText=""}onModeChange(e){!(e===A.MODE.READONLY)&&this.isSearching&&this.matchNodeList[this.currentIndex]&&this.matchNodeList[this.currentIndex].closeHighlight()}search(e,t=()=>{}){if(Bt(e))return this.endSearch();e=String(e),this.isSearching=!0,this.searchText===e?this.searchNext(t):(this.searchText=e,this.doSearch(),this.searchNext(t)),this.emitEvent()}updateMatchNodeList(e){this.matchNodeList=e,this.mindMap.emit("search_match_node_list_change",e)}endSearch(){this.isSearching&&(this.mindMap.opt.readonly&&this.matchNodeList[this.currentIndex]&&this.matchNodeList[this.currentIndex].closeHighlight(),this.searchText="",this.updateMatchNodeList([]),this.currentIndex=-1,this.notResetSearchText=!1,this.isSearching=!1,this.emitEvent())}doSearch(){this.clearHighlightOnReadonly(),this.updateMatchNodeList([]),this.currentIndex=-1;let{isOnlySearchCurrentRenderNodes:e}=this.mindMap.opt,t=e?this.mindMap.renderer.root:this.mindMap.renderer.renderTree;if(!t)return;let r=[];Pt(t,n=>{let{richText:s,text:a,generalization:o}=e?n.getData():n.data;s&&(a=ks(a)),a.includes(this.searchText)&&r.push(n),Hn({generalization:o}).forEach(h=>{let{richText:d,text:c,uid:f}=h;e&&!this.mindMap.renderer.findNodeByUid(f)||(d&&(c=ks(c)),c.includes(this.searchText)&&r.push({data:h}))})}),this.updateMatchNodeList(r)}isNodeInstance(e){return e instanceof Is}searchNext(e,t){if(!this.isSearching||this.matchNodeList.length<=0)return;t!==void 0&&Number.isInteger(t)&&t>=0&&t{this.isNodeInstance(n)||(this.matchNodeList[this.currentIndex]=o,this.updateMatchNodeList(this.matchNodeList)),e(),r&&o.highlight(),a&&(this.notResetSearchText=!1)})}clearHighlightOnReadonly(){let{readonly:e}=this.mindMap.opt;e&&this.matchNodeList.forEach(t=>{this.isNodeInstance(t)&&t.closeHighlight()})}jump(e,t=()=>{}){this.searchNext(t,e)}replace(e,t=!1){if(e==null||!this.isSearching||this.matchNodeList.length<=0)return;this.isJumpNext=t,e=String(e);let r=this.matchNodeList[this.currentIndex];if(!r)return;let n=e.includes(this.searchText),s=this.getReplacedText(r,this.searchText,e);if(this.notResetSearchText=!0,r.setText(s,r.getData("richText")),n){this.updateMatchNodeList(this.matchNodeList);return}let a=this.matchNodeList.filter(o=>r!==o);this.updateMatchNodeList(a),this.currentIndex>this.matchNodeList.length-1?this.currentIndex=-1:this.currentIndex--,this.emitEvent()}replaceAll(e){if(e==null||!this.isSearching||this.matchNodeList.length<=0)return;e=String(e);let t=e.includes(this.searchText);this.notResetSearchText=!0,this.matchNodeList.forEach(r=>{let n=this.getReplacedText(r,this.searchText,e);if(this.isNodeInstance(r)){let s={text:n};this.mindMap.renderer.setNodeDataRender(r,s,!0)}else r.data.text=n}),this.mindMap.render(),this.mindMap.command.addHistory(),t?this.updateMatchNodeList(this.matchNodeList):this.endSearch()}getReplacedText(e,t,r){let{richText:n,text:s}=this.isNodeInstance(e)?e.getData():e.data;return n?$p(s,t,r):s.replace(new RegExp(t,"g"),r)}emitEvent(){this.mindMap.emit("search_info_change",{currentIndex:this.currentIndex,total:this.matchNodeList.length})}beforePluginRemove(){this.unBindEvent()}beforePluginDestroy(){this.unBindEvent()}};g0.instanceName="search";ET=g0});var j3,G3,Y3=M(()=>{he();j3=i=>{i=Fn(i);let e={},t={};i.forEach(n=>{let s=n.parent;if(s){let a=s.uid;t[a]=s;let o=n.getIndexInBrothers(),l={node:n,index:o};e[a]?e[a].find(h=>h.index===l.index)||e[a].push(l):e[a]=[l]}});let r=[];return Object.keys(e).forEach(n=>{let s=e[n],a=t[n];if(s.length>1){let o=s.map(f=>f.index).sort((f,m)=>f-m),l=o[0],h=o[o.length-1],d=-1,c=-1;for(let f=l;f<=h;f++)o.includes(f)?(d===-1&&(d=f),c=f):(d!==-1&&c!==-1&&r.push({node:a,range:[d,c]}),d=-1,c=-1);d!==-1&&c!==-1&&r.push({node:a,range:[d,c]})}else r.push({node:a,range:[s[0].index,s[0].index]})}),r},G3=i=>{let e=i.children;if(!e||e.length<=0)return;let t=[],r={};return e.forEach((n,s)=>{let a=n.getData("outerFrame");if(!a)return;let o=a.groupId;o?(r[o]||(r[o]=[]),r[o].push({node:n,index:s})):t.push({nodeList:[n],range:[s,s]})}),Object.keys(r).forEach(n=>{let s=r[n];t.push({nodeList:s.map(a=>a.node),range:[s[0].index,s[s.length-1].index]})}),t}});function AT(i,e,t){let r=this.draw.group(),n=()=>{(!this.activeOuterFrame||this.activeOuterFrame.el!==i)&&this.setActiveOuterFrame(i,e,t,r)};return r.click(s=>{s.stopPropagation(),n()}),r.on("dblclick",s=>{s.stopPropagation(),n(),this.showEditTextBox(r)}),r}function kT(i){this.mindMap.emit("before_show_text_edit"),this.mindMap.keyCommand.addShortcut("Enter",()=>{this.hideEditTextBox()}),this.textEditNode||(this.textEditNode=document.createElement("div"),this.textEditNode.className=ST,this.textEditNode.style.cssText=` +`},()=>{},!0),e}});var h6={};tt(h6,{default:()=>fE});var th,fE,d6=T(()=>{pe();yt();n6();a6();$e();l6();th=class{constructor(e){this.mindMap=e.mindMap}async export(e,t=!0,r="\u601D\u7EF4\u5BFC\u56FE",...n){if(this[e]){let s=await this[e](r,...n);return t&&m2(s,r+"."+e),s}else return null}createTransformImgTaskList(e,t,r,n){return e.find(t).map(async a=>{let o=n(a);if(/^data:/.test(o)||o==="none")return;let l=await fu(o);a.attr(r,l)})}async getSvgData(e){let{exportPaddingX:t,exportPaddingY:r,errorHandler:n,resetCss:s,addContentToHeader:a,addContentToFooter:o,handleBeingExportSvg:l}=this.mindMap.opt,{svg:h,svgHTML:d,clipData:c}=this.mindMap.getSvgData({paddingX:t,paddingY:r,addContentToHeader:a,addContentToFooter:o,node:e});c&&(c.paddingX=t,c.paddingY=r);let f=!1,m=this.createTransformImgTaskList(h,"image","href",y=>y.attr("href")||y.attr("xlink:href")),g=this.createTransformImgTaskList(h,"img","src",y=>y.attr("src")),x=[...m,...g];try{await Promise.all(x)}catch(y){n(Mi.EXPORT_LOAD_IMAGE_ERROR,y)}if(this.mindMap.richText){let y=h.find("foreignObject");if(y.length>0&&(y[0].add(Ae(``)),f=!0),this.mindMap.formula&&h.find(".ql-formula").length>0){let S=this.mindMap.formula.getStyleText();if(S){let A=document.createElement("style");A.innerHTML=S,or(A),y[0].add(A),f=!0}}}return typeof l=="function"&&(f=!0,h=l(h)),(x.length>0||f)&&(d=h.svg()),{node:h,str:d,clipData:c}}svgToPng(e,t,r=null,n=!1,s="image/png"){let{maxCanvasSize:a,minExportImgCanvasScale:o}=this.mindMap.opt;return new Promise((l,h)=>{let d=new Image;d.setAttribute("crossOrigin","anonymous"),d.onload=async()=>{try{let c=document.createElement("canvas"),f=Math.max(window.devicePixelRatio,o),m=d.width,g=d.height,x=0,y=0;r&&(x=r.paddingX,y=r.paddingY,m=r.width+x*2,g=r.height+y*2);let b=0,S=0,{backgroundImage:A}=this.mindMap.themeConfig;if(n&&A&&!t){let ke=await new Promise(Q=>{let Y=new Image;Y.onload=()=>{Q([Y.width,Y.height])},Y.onerror=()=>{Q(null)},Y.src=A});if(ke){let Q=m/g,Y=ke[0]/ke[1];Q>Y?(b=m,S=m/Y):(S=g,b=g*Y)}}let C=1,I=1,O=(b||m)*f,q=(S||g)*f;if(O>a||q>a){let ke=null,Q=null;O>a?ke=a:q>a&&(Q=a);let Y=U0(O,q,ke,Q);C=Y[0]/O,I=Y[1]/q,O=Y[0],q=Y[1]}c.width=O,c.height=q;let P=O/f,W=q/f;c.style.width=P+"px",c.style.height=W+"px";let ne=c.getContext("2d");ne.scale(f,f),t||await this.drawBackgroundToCanvas(ne,P,W);let re=(b>0?(b-m)/2:0)*C,oe=(S>0?(S-g)/2:0)*I;r?ne.drawImage(d,r.left,r.top,r.width,r.height,x*C+re,y*I+oe,r.width*C,r.height*I):ne.drawImage(d,re,oe,m*C,g*I),l(c.toDataURL(s))}catch(c){h(c)}},d.onerror=c=>{h(c)},d.src=e})}drawBackgroundToCanvas(e,t,r){return new Promise((n,s)=>{let{backgroundColor:a="#fff",backgroundImage:o,backgroundRepeat:l="no-repeat",backgroundPosition:h="center center",backgroundSize:d="cover"}=this.mindMap.themeConfig;e.save(),e.rect(0,0,t,r),e.fillStyle=a,e.fill(),e.restore(),o&&o!=="none"?(e.save(),r6(e,t,r,o,{backgroundRepeat:l,backgroundPosition:h,backgroundSize:d},c=>{c?s(c):n(),e.restore()})):n()})}drawBackgroundToSvg(e){return new Promise(async t=>{let{backgroundColor:r="#fff",backgroundImage:n,backgroundRepeat:s="repeat"}=this.mindMap.themeConfig;if(e.css("background-color",r),n&&n!=="none"){let a=await fu(n);e.css("background-image",`url(${a})`),e.css("background-repeat",s),t()}else t()})}async _image(e,t,r=!1,n=null,s=!1){this.mindMap.renderer.textEdit.hideEditTextBox(),this.handleNodeExport(n);let{str:a,clipData:o}=await this.getSvgData(n),l=await this.fixSvgStrAndToBlob(a);return await this.svgToPng(l,r,o,s,e)}async png(...e){return await this._image("image/png",...e)}async jpg(...e){return await this._image("image/jpg",...e)}handleNodeExport(e){if(e&&e.getData("isActive")){e.deactivate();let{alwaysShowExpandBtn:t,notShowExpandBtn:r}=this.mindMap.opt;!t&&!r&&e.getData("expand")&&e.removeExpandBtn()}}async pdf(e,t=!1,r=!1){if(!this.mindMap.doExportPDF)throw new Error("\u8BF7\u6CE8\u518CExportPDF\u63D2\u4EF6");let n=await this.png(e,t,null,r);return await this.mindMap.doExportPDF.pdf(n)}async xmind(e){if(!this.mindMap.doExportXMind)throw new Error("\u8BF7\u6CE8\u518CExportXMind\u63D2\u4EF6");let t=this.mindMap.getData(),r=await this.mindMap.doExportXMind.xmind(t,e);return await aa(r)}async svg(e){this.mindMap.renderer.textEdit.hideEditTextBox();let{node:t}=await this.getSvgData();t.first().before(Ae(`${e}`)),await this.drawBackgroundToSvg(t);let r=t.svg();return await this.fixSvgStrAndToBlob(r)}async fixSvgStrAndToBlob(e){e=b2(e),e=_2(e);let t=new Blob([e],{type:"image/svg+xml"});return await aa(t)}async json(e,t=!0){let r=this.mindMap.getData(t),n=JSON.stringify(r),s=new Blob([n]);return await aa(s)}async smm(e,t){return await this.json(e,t)}async md(){let e=this.mindMap.getData(),t=s6(e),r=new Blob([t]);return await aa(r)}async txt(){let e=this.mindMap.getData(),t=o6(e),r=new Blob([t]);return await aa(r)}};th.instanceName="doExport";fE=th});var c6={};tt(c6,{default:()=>mE});var ih,mE,u6=T(()=>{pe();Bu();ih=class{constructor({mindMap:e}){this.mindMap=e,this.rect=null,this.isMousedown=!1,this.mouseDownX=0,this.mouseDownY=0,this.mouseMoveX=0,this.mouseMoveY=0,this.isSelecting=!1,this.cacheActiveList=[],this.autoMove=new K0(e),this.bindEvent()}bindEvent(){this.onMousedown=this.onMousedown.bind(this),this.onMousemove=this.onMousemove.bind(this),this.onMouseup=this.onMouseup.bind(this),this.checkInNodes=Si(this.checkInNodes,300,this),this.mindMap.on("mousedown",this.onMousedown),this.mindMap.on("mousemove",this.onMousemove),this.mindMap.on("mouseup",this.onMouseup),this.mindMap.on("node_mouseup",this.onMouseup)}unBindEvent(){this.mindMap.off("mousedown",this.onMousedown),this.mindMap.off("mousemove",this.onMousemove),this.mindMap.off("mouseup",this.onMouseup),this.mindMap.off("node_mouseup",this.onMouseup)}onMousedown(e){let{readonly:t,mousedownEventPreventDefault:r}=this.mindMap.opt;if(t)return;let{useLeftKeySelectionRightKeyDrag:n}=this.mindMap.opt;if(!(e.ctrlKey||e.metaKey)&&(n?e.which!==1:e.which!==3))return;r&&e.preventDefault(),this.isMousedown=!0,this.cacheActiveList=[...this.mindMap.renderer.activeNodeList];let{x:s,y:a}=this.mindMap.toPos(e.clientX,e.clientY);this.mouseDownX=s,this.mouseDownY=a,this.createRect(s,a)}onMousemove(e){if(this.mindMap.opt.readonly||!this.isMousedown)return;let{x:t,y:r}=this.mindMap.toPos(e.clientX,e.clientY);this.mouseMoveX=t,this.mouseMoveY=r,!(Math.abs(t-this.mouseDownX)<=10&&Math.abs(r-this.mouseDownY)<=10)&&(this.autoMove.clearAutoMoveTimer(),this.autoMove.onMove(e.clientX,e.clientY,()=>{this.isSelecting=!0,this.rect&&this.rect.plot([[this.mouseDownX,this.mouseDownY],[this.mouseMoveX,this.mouseDownY],[this.mouseMoveX,this.mouseMoveY],[this.mouseDownX,this.mouseMoveY]]),this.checkInNodes()},(n,s)=>{switch(n){case"left":this.mouseDownX+=s;break;case"top":this.mouseDownY+=s;break;case"right":this.mouseDownX-=s;break;case"bottom":this.mouseDownY-=s;break;default:break}}))}onMouseup(){this.mindMap.opt.readonly||this.isMousedown&&(this.checkTriggerNodeActiveEvent(),this.autoMove.clearAutoMoveTimer(),this.isMousedown=!1,this.cacheActiveList=[],this.rect&&this.rect.remove(),this.rect=null,setTimeout(()=>{this.isSelecting=!1},0))}checkTriggerNodeActiveEvent(){let e=this.cacheActiveList.length!==this.mindMap.renderer.activeNodeList.length,t=!1;if(!e)for(let r=0;rs.getData("uid")===n.getData("uid"))){t=!0;break}}(e||t)&&this.mindMap.renderer.emitNodeActiveEvent()}createRect(e,t){this.rect&&this.rect.remove(),this.rect=this.mindMap.svg.polygon().stroke({color:"#0984e3"}).fill({color:"rgba(9,132,227,0.3)"}).plot([[e,t]])}checkInNodes(){let{scaleX:e,scaleY:t,translateX:r,translateY:n}=this.mindMap.draw.transform(),s=Math.min(this.mouseDownX,this.mouseMoveX),a=Math.min(this.mouseDownY,this.mouseMoveY),o=Math.max(this.mouseDownX,this.mouseMoveX),l=Math.max(this.mouseDownY,this.mouseMoveY),h=d=>{let{left:c,top:f,width:m,height:g}=d,x=(c+m)*e+r,y=(f+g)*t+n;if(c=c*e+r,f=f*t+n,k2(s,o,a,l,c,x,f,y)){if(d.getData("isActive"))return;this.mindMap.renderer.addNodeToActiveList(d),this.mindMap.renderer.emitNodeActiveEvent()}else if(d.getData("isActive")){if(!d.getData("isActive"))return;this.mindMap.renderer.removeNodeFromActiveList(d),this.mindMap.renderer.emitNodeActiveEvent()}};Xt(this.mindMap.renderer.root,d=>{h(d),d._generalizationList&&d._generalizationList.length>0&&d._generalizationList.forEach(c=>{h(c.generalizationNode)})})}hasSelectRange(){return this.isSelecting}beforePluginRemove(){this.unBindEvent()}beforePluginDestroy(){this.unBindEvent()}};ih.instanceName="select";mE=ih});var Go,Vo,rh,f6,m6,pE,kr,Uu,p6,$u,ju=T(()=>{pe();Go=(i,e)=>i.getData("associativeLineTargets").findIndex(t=>t===e.getData("uid")),Vo=(i,e,t,r)=>{let s=i+(t-i)/2,a=e,o=s,l=r;return Math.abs(i-t)<=5&&(s=i+(r-e)/2,o=s),Math.abs(e-r)<=5&&(s=i,a=e-(t-i)/2,o=t,l=a),[{x:s,y:a},{x:o,y:l}]},rh=(i,e,t,r)=>`M ${i.x},${i.y} C ${t.x},${t.y} ${r.x},${r.y} ${e.x},${e.y}`,f6=i=>{let{left:e,top:t,width:r,height:n}=i;return{right:e+r,bottom:t+n,left:e,top:t,width:r,height:n}},m6=(i,e,t,r)=>{let n=Vo(i,e,t,r);return rh({x:i,y:e},{x:t,y:r},n[0],n[1])},pE=(i,e)=>{let{left:t,top:r,translateLeft:n,translateTop:s,width:a,height:o}=i,l=e.clientX,h=e.clientY,d=n+a/2,c=s+o/2,f=t+a/2,m=r+o/2,g=Math.atan(o/a),x=l-d,y=c-h,b=Math.atan2(y,x),S=t+a,A=r+o;if(b=-g){let O=b*(a/2);return(b=0||b>=-g&&b<0)&&(A=m-O),{x:S,y:A,dir:"right",range:O}}else if(b>=g&&b=g){let q=o/2/b;O=-q,S=f+q}else if(b>=Math.PI/2-g&&b=g-Math.PI){let O=0;if(b>=g-Math.PI/2&&b<-g){let q=o/2/b;O=q,S=f-q}else if(b=g-Math.PI){let q=(d-l)/(c-h),P=o/2*q;O=-P,S=f+P}return{x:S,y:A,dir:"bottom",range:O}}S=t;let I=(c-h)/(d-l)*(a/2);return(b>=-Math.PI&&b=Math.PI-g)&&(A=m-I),{x:S,y:A,dir:"left",range:I}},kr=(i,e="right",t=0,r=null)=>{let{left:n,top:s,width:a,height:o}=i;if(r)return pE(i,r);switch(e){case"left":return{x:n,y:s+o/2-t,dir:e};case"right":return{x:n+a,y:s+o/2-t,dir:e};case"top":return{x:n+a/2-t,y:s,dir:e};case"bottom":return{x:n+a/2-t,y:s+o,dir:e};default:break}},Uu=(i,e)=>{let t=f6(i),r=f6(e),n="",s="";switch(z2({x:t.left,y:t.top,width:t.width,height:t.height},{x:r.left,y:r.top,width:r.width,height:r.height})){case"left-top":n="right",s="top";break;case"right-top":n="left",s="top";break;case"right-bottom":n="left",s="bottom";break;case"left-bottom":n="right",s="bottom";break;case"left":n="right",s="left";break;case"right":n="left",s="right";break;case"top":n="right",s="right";break;case"bottom":n="left",s="left";break;case"overlap":n="right",s="right";break;default:break}return[kr(i,n),kr(e,s)]},p6=(i,e,t,r)=>{let n=Go(t,r),s=[],a=t.getData("associativeLineTargetControlOffsets");if(a&&a[n]){let o=a[n];s=[{x:i.x+o[0].x,y:i.y+o[0].y},{x:e.x+o[1].x,y:e.y+o[1].y}]}else s=Vo(i.x,i.y,e.x,e.y);return{path:rh(i,e,s[0],s[1]),controlPoints:s}},$u=(i,e)=>{let t=Vo(i.x,i.y,e.x,e.y);return[{x:t[0].x-i.x,y:t[0].y-i.y},{x:t[1].x-e.x,y:t[1].y-e.y}]}});function gE(i,e){let{associativeLineActiveColor:t}=this.getStyleConfig(i,e);this.controlLine1=this.associativeLineDraw.line().stroke({color:t,width:2}),this.controlLine2=this.associativeLineDraw.line().stroke({color:t,width:2}),this.controlPoint1=this.createOneControlNode("controlPoint1",i,e),this.controlPoint2=this.createOneControlNode("controlPoint2",i,e)}function xE(i,e,t){let{associativeLineActiveColor:r}=this.getStyleConfig(e,t);return this.associativeLineDraw.circle(this.controlPointDiameter).stroke({color:r}).fill({color:"#fff"}).click(n=>{n.stopPropagation()}).mousedown(n=>{this.onControlPointMousedown(n,i)})}function yE(i,e){i.stopPropagation(),i.preventDefault(),this.isControlPointMousedown=!0,this.mousedownControlPointKey=e}function vE(i){if(!this.isControlPointMousedown||!this.mousedownControlPointKey||!this[this.mousedownControlPointKey])return;i.stopPropagation(),i.preventDefault();let e=this.controlPointDiameter/2,{x:t,y:r}=this.getTransformedEventPos(i);this.controlPointMousemoveState.pos={x:t,y:r},this[this.mousedownControlPointKey].x(t-e).y(r-e);let[,,,n,s]=this.activeLine,a=Go(n,s),{associativeLinePoint:o,associativeLineTargetControlOffsets:l}=n.getData();o=o||[];let h=this.getNodePos(n),d=this.getNodePos(s),[c,f]=this.updateAllLinesPos(n,s,o[a]);this.controlPointMousemoveState.startPoint=c,this.controlPointMousemoveState.endPoint=f,this.controlPointMousemoveState.targetIndex=a;let m=[];l?m=l[a]:m=$u(c,f);let g=null,x=null,{x:y,y:b}=this.mindMap.toPos(i.clientX,i.clientY),S={clientX:y,clientY:b};this.mousedownControlPointKey==="controlPoint1"?(c=kr(h,"",0,S),g={x:t,y:r},x={x:f.x+m[1].x,y:f.y+m[1].y},c&&(this.controlPointMousemoveState.startPoint=c,this.controlLine1.plot(c.x,c.y,g.x,g.y))):(f=kr(d,"",0,S),g={x:c.x+m[0].x,y:c.y+m[0].y},x={x:t,y:r},f&&(this.controlPointMousemoveState.endPoint=f,this.controlLine2.plot(f.x,f.y,x.x,x.y))),this.updataAassociativeLine(c,f,g,x,this.activeLine)}function bE(i,e,t,r,n){let[s,a,o]=n,l=rh(i,e,t,r);s.plot(l),a.plot(l),this.updateTextPos(s,o),this.updateTextEditBoxPos(o)}function wE(i){if(!this.isControlPointMousedown)return;i.stopPropagation(),i.preventDefault();let{pos:e,startPoint:t,endPoint:r,targetIndex:n}=this.controlPointMousemoveState,[,,,s]=this.activeLine,a=[],{associativeLinePoint:o,associativeLineTargetControlOffsets:l}=s.getData();o||(o=[]),o[n]=o[n]||{startPoint:t,endPoint:r},l?a=l:a[n]=$u(t,r);let h=null,d=null;this.mousedownControlPointKey==="controlPoint1"?(h={x:e.x-t.x,y:e.y-t.y},d=a[n][1],o[n].startPoint=t):(h=a[n][0],d={x:e.x-r.x,y:e.y-r.y},o[n].endPoint=r),a[n]=[h,d],this.mindMap.execCommand("SET_NODE_DATA",s,{associativeLineTargetControlOffsets:a,associativeLinePoint:o}),this.isNotRenderAllLines=!0,setTimeout(()=>{this.resetControlPoint()},0)}function ME(){this.isControlPointMousedown=!1,this.mousedownControlPointKey="",this.controlPointMousemoveState={pos:null,startPoint:null,endPoint:null,targetIndex:""}}function TE(i,e,t,r,n,s){if(!this.mindMap.opt.enableAdjustAssociativeLinePoints)return;this.controlLine1||this.createControlNodes(n,s);let a=this.controlPointDiameter/2;this.controlLine1.plot(i.x,i.y,t.x,t.y),this.controlLine2.plot(e.x,e.y,r.x,r.y),this.controlPoint1.x(t.x-a).y(t.y-a),this.controlPoint2.x(r.x-a).y(r.y-a)}function NE(){this.controlLine1&&([this.controlLine1,this.controlLine2,this.controlPoint1,this.controlPoint2].forEach(i=>{i.remove()}),this.controlLine1=null,this.controlLine2=null,this.controlPoint1=null,this.controlPoint2=null)}function EE(){this.controlLine1&&[this.controlLine1,this.controlLine2,this.controlPoint1,this.controlPoint2].forEach(i=>{i.hide()})}function SE(){this.controlLine1&&[this.controlLine1,this.controlLine2,this.controlPoint1,this.controlPoint2].forEach(i=>{i.show()})}var Gu,g6=T(()=>{ju();Gu={createControlNodes:gE,createOneControlNode:xE,onControlPointMousedown:yE,onControlPointMousemove:vE,onControlPointMouseup:wE,resetControlPoint:ME,renderControls:TE,removeControls:NE,hideControls:EE,showControls:SE,updataAassociativeLine:bE}});function kE(i){let e=this.associativeLineDraw.group(),t=()=>{(!this.activeLine||this.activeLine[3]!==i.node||this.activeLine[4]!==i.toNode)&&this.setActiveLine({...i,text:e})};return e.click(r=>{r.stopPropagation(),t()}),e.on("dblclick",r=>{r.stopPropagation(),t(),this.activeLine&&this.showEditTextBox(e)}),e}function CE(i){this.mindMap.emit("before_show_text_edit"),this.mindMap.keyCommand.addShortcut("Enter",()=>{this.hideEditTextBox()}),this.textEditNode||(this.textEditNode=document.createElement("div"),this.textEditNode.className=AE,this.textEditNode.style.cssText="position:fixed;box-sizing: border-box;background-color:#fff;box-shadow: 0 0 20px rgba(0,0,0,.5);padding: 3px 5px;margin-left: -5px;margin-top: -3px;outline: none; word-break: break-all;",this.textEditNode.setAttribute("contenteditable",!0),this.textEditNode.addEventListener("keyup",f=>{f.stopPropagation()}),this.textEditNode.addEventListener("click",f=>{f.stopPropagation()}),(this.mindMap.opt.customInnerElsAppendTo||document.body).appendChild(this.textEditNode));let[,,,e,t]=this.activeLine,{associativeLineTextFontSize:r,associativeLineTextFontFamily:n,associativeLineTextLineHeight:s}=this.getStyleConfig(e,t),{defaultAssociativeLineText:a,nodeTextEditZIndex:o}=this.mindMap.opt,l=this.mindMap.view.scale,h=this.getText(e,t),d=(h||a).split(/\n/gim);this.textEditNode.style.fontFamily=n,this.textEditNode.style.fontSize=r*l+"px",this.textEditNode.style.lineHeight=d.length>1?s:"normal",this.textEditNode.style.zIndex=o,this.textEditNode.innerHTML=d.join("
    "),this.textEditNode.style.display="block",this.updateTextEditBoxPos(i),this.setIsShowTextEdit(!0),h===""||h===a?la(this.textEditNode):oa(this.textEditNode)}function _E(i){this.showTextEdit=i,i?this.mindMap.keyCommand.stopCheckInSvg():this.mindMap.keyCommand.recoveryCheckInSvg()}function LE(){if(!this.textEditNode)return;(this.mindMap.opt.customInnerElsAppendTo||document.body).removeChild(this.textEditNode)}function IE(){this.hideEditTextBox()}function zE(i){let e=i.node.getBoundingClientRect();this.textEditNode&&(this.textEditNode.style.minWidth=`${e.width+10}px`,this.textEditNode.style.minHeight=`${e.height+6}px`,this.textEditNode.style.left=`${e.left}px`,this.textEditNode.style.top=`${e.top}px`)}function RE(){if(!this.showTextEdit)return;let[i,,e,t,r]=this.activeLine,n=na(this.textEditNode.innerHTML);n=n===this.mindMap.opt.defaultAssociativeLineText?"":n,this.mindMap.execCommand("SET_NODE_DATA",t,{associativeLineText:{...t.getData("associativeLineText")||{},[r.getData("uid")]:n}}),this.textEditNode.style.display="none",this.textEditNode.innerHTML="",this.setIsShowTextEdit(!1),this.renderText(n,i,e,t,r),this.mindMap.emit("hide_text_edit")}function DE(i,e){let t=i.getData("associativeLineText");return t&&t[e.getData("uid")]||""}function OE(i,e,t,r,n){if(!i)return;let{associativeLineTextFontSize:s,associativeLineTextLineHeight:a}=this.getStyleConfig(r,n);t.clear(),i.replace(/\n$/g,"").split(/\n/gim).forEach((l,h)=>{l===""&&(l="\uFEFF");let d=new Ce().text(l);d.y(s*a*h),this.styleText(d,r,n),t.add(d)}),x6(e,t)}function BE(i,e,t){let{associativeLineTextColor:r,associativeLineTextFontSize:n,associativeLineTextFontFamily:s}=this.getStyleConfig(e,t);i.fill({color:r}).css({"font-family":s,"font-size":n+"px"})}function x6(i,e){let t=i.length(),r=i.pointAt(t/2),{width:n,height:s}=e.bbox();e.x(r.x-n/2),e.y(r.y-s/2)}var AE,Vu,y6=T(()=>{yt();pe();AE="associative-line-text-edit-warp";Vu={getText:DE,createText:kE,styleText:BE,onScale:IE,showEditTextBox:CE,setIsShowTextEdit:_E,removeTextEditEl:LE,hideEditTextBox:RE,updateTextEditBoxPos:zE,renderText:OE,updateTextPos:x6}});var v6={};tt(v6,{default:()=>FE});var PE,Wu,nh,FE,b6=T(()=>{pe();Hc();ju();g6();y6();PE=["associativeLineWidth","associativeLineColor","associativeLineActiveWidth","associativeLineActiveColor","associativeLineDasharray","associativeLineTextColor","associativeLineTextFontSize","associativeLineTextLineHeight","associativeLineTextFontFamily"],Wu="associative-line-text-edit-warp",nh=class{constructor(e={}){this.mindMap=e.mindMap,this.associativeLineDraw=this.mindMap.associativeLineDraw,this.isNotRenderAllLines=!1,this.lineList=[],this.activeLine=null,this.isCreatingLine=!1,this.creatingStartNode=null,this.creatingLine=null,this.overlapNode=null,this.isNodeDragging=!1,this.controlLine1=null,this.controlLine2=null,this.controlPoint1=null,this.controlPoint2=null,this.controlPointDiameter=10,this.isControlPointMousedown=!1,this.mousedownControlPointKey="",this.controlPointMousemoveState={pos:null,startPoint:null,endPoint:null,targetIndex:""},this.checkOverlapNode=Si(this.checkOverlapNode,100,this),Object.keys(Gu).forEach(t=>{this[t]=Gu[t].bind(this)}),this.showTextEdit=!1,Object.keys(Vu).forEach(t=>{this[t]=Vu[t].bind(this)}),this.mindMap.addEditNodeClass(Wu),this.bindEvent()}bindEvent(){this.renderAllLines=this.renderAllLines.bind(this),this.onDrawClick=this.onDrawClick.bind(this),this.onNodeClick=this.onNodeClick.bind(this),this.removeLine=this.removeLine.bind(this),this.addLine=this.addLine.bind(this),this.onMousemove=this.onMousemove.bind(this),this.onNodeDragging=this.onNodeDragging.bind(this),this.onNodeDragend=this.onNodeDragend.bind(this),this.onControlPointMouseup=this.onControlPointMouseup.bind(this),this.onBeforeDestroy=this.onBeforeDestroy.bind(this),this.mindMap.on("node_tree_render_end",this.renderAllLines),this.mindMap.on("data_change",this.renderAllLines),this.mindMap.on("draw_click",this.onDrawClick),this.mindMap.on("node_click",this.onNodeClick),this.mindMap.on("contextmenu",this.onDrawClick),this.mindMap.keyCommand.addShortcut("Del|Backspace",this.removeLine),this.mindMap.command.add("ADD_ASSOCIATIVE_LINE",this.addLine),this.mindMap.on("mousemove",this.onMousemove),this.mindMap.on("node_dragging",this.onNodeDragging),this.mindMap.on("node_dragend",this.onNodeDragend),this.mindMap.on("mouseup",this.onControlPointMouseup),this.mindMap.on("scale",this.onScale),this.mindMap.on("beforeDestroy",this.onBeforeDestroy)}unBindEvent(){this.mindMap.off("node_tree_render_end",this.renderAllLines),this.mindMap.off("data_change",this.renderAllLines),this.mindMap.off("draw_click",this.onDrawClick),this.mindMap.off("node_click",this.onNodeClick),this.mindMap.off("contextmenu",this.onDrawClick),this.mindMap.keyCommand.removeShortcut("Del|Backspace",this.removeLine),this.mindMap.command.remove("ADD_ASSOCIATIVE_LINE",this.addLine),this.mindMap.off("mousemove",this.onMousemove),this.mindMap.off("node_dragging",this.onNodeDragging),this.mindMap.off("node_dragend",this.onNodeDragend),this.mindMap.off("mouseup",this.onControlPointMouseup),this.mindMap.off("scale",this.onScale),this.mindMap.off("beforeDestroy",this.onBeforeDestroy)}getStyleConfig(e,t){let r={};t&&(r=(e.getData("associativeLineStyle")||{})[t.getData("uid")]||{});let n={};return PE.forEach(s=>{typeof r[s]<"u"?n[s]=r[s]:n[s]=e.getStyle(s)}),n}onBeforeDestroy(){this.hideEditTextBox(),this.removeTextEditEl()}onDrawClick(){this.isCreatingLine&&this.cancelCreateLine(),this.isControlPointMousedown||(this.clearActiveLine(),this.renderAllLines())}onNodeClick(e){this.isCreatingLine?this.completeCreateLine(e):(this.clearActiveLine(),this.renderAllLines())}createMarker(e=()=>{}){return this.associativeLineDraw.marker(20,20,t=>{t.ref(12,5),t.size(10,10),t.attr("orient","auto-start-reverse"),e(t.path("M0,0 L2,5 L0,10 L10,5 Z"))})}updateAllLinesPos(e,t,r){r=r||{};let[n,s]=Uu(e,t),a=0,o="",l=0,h="";return r.startPoint&&(a=r.startPoint.range||0,o=r.startPoint.dir||"right",n=kr(e,o,a)),r.endPoint&&(l=r.endPoint.range||0,h=r.endPoint.dir||"right",s=kr(t,h,l)),[n,s]}renderAllLines(){if(this.isNotRenderAllLines){this.isNotRenderAllLines=!1;return}this.removeAllLines(),this.removeControls(),this.clearActiveLine();let e=this.mindMap.renderer.root;if(!e)return;let t=new Map,r=new Map;de(e,null,n=>{if(!n)return;let s=n.getData();s.associativeLineTargets&&s.associativeLineTargets.length>0&&r.set(n,s.associativeLineTargets),s.uid&&t.set(s.uid,n)},()=>{},!0,0),r.forEach((n,s)=>{n.forEach((a,o)=>{let l=t.get(a);if(!s||!l)return;let h=(s.getData("associativeLinePoint")||[])[o],[d,c]=this.updateAllLinesPos(s,l,h);this.drawLine(d,c,s,l)})})}drawLine(e,t,r,n){let{associativeLineWidth:s,associativeLineColor:a,associativeLineActiveWidth:o,associativeLineDasharray:l}=this.getStyleConfig(r,n),h=null,d=this.createMarker(y=>{h=y});h.stroke({color:a}).fill({color:a});let{path:c,controlPoints:f}=p6(e,t,r,n),m=this.associativeLineDraw.path();m.stroke({width:s,color:a,dasharray:l||"6,4"}).fill({color:"none"}),m.plot(c),m.marker("end",d);let g=this.associativeLineDraw.path();g.stroke({width:o,color:"transparent"}).fill({color:"none"}),g.plot(c);let x=this.createText({path:m,clickPath:g,markerPath:h,node:r,toNode:n,startPoint:e,endPoint:t,controlPoints:f});g.click(y=>{y.stopPropagation(),this.setActiveLine({path:m,clickPath:g,markerPath:h,text:x,node:r,toNode:n,startPoint:e,endPoint:t,controlPoints:f})}),g.dblclick(()=>{this.activeLine&&this.showEditTextBox(x)}),this.renderText(this.getText(r,n),m,x,r,n),this.lineList.push([m,g,x,r,n])}updateActiveLineStyle(){if(!this.activeLine)return;this.isNotRenderAllLines=!0;let[e,t,r,n,s,a]=this.activeLine,{associativeLineWidth:o,associativeLineColor:l,associativeLineDasharray:h,associativeLineActiveWidth:d,associativeLineActiveColor:c,associativeLineTextColor:f,associativeLineTextFontFamily:m,associativeLineTextFontSize:g}=this.getStyleConfig(n,s);e.stroke({width:o,color:l,dasharray:h||"6,4"}).fill({color:"none"}),t.stroke({width:d,color:c}).fill({color:"none"}),a.stroke({color:l}).fill({color:l}),r.find("text").forEach(x=>{x.fill({color:f}).css({"font-family":m,"font-size":g+"px"})}),this.controlLine1&&this.controlLine1.stroke({color:c}),this.controlLine2&&this.controlLine2.stroke({color:c}),this.controlPoint1&&this.controlPoint1.stroke({color:c}),this.controlPoint2&&this.controlPoint2.stroke({color:c}),this.updateTextPos(e,r)}setActiveLine({path:e,clickPath:t,markerPath:r,text:n,node:s,toNode:a,startPoint:o,endPoint:l,controlPoints:h}){let{associativeLineActiveColor:d}=this.getStyleConfig(s,a);this.mindMap.execCommand("CLEAR_ACTIVE_NODE"),this.clearActiveLine(),this.activeLine=[e,t,n,s,a,r],t.stroke({color:d}),this.getText(s,a)||this.renderText(this.mindMap.opt.defaultAssociativeLineText,e,n,s,a),this.renderControls(o,l,h[0],h[1],s,a),this.mindMap.emit("associative_line_click",e,t,s,a),this.front()}removeAllLines(){this.lineList.forEach(e=>{e[0].remove(),e[1].remove(),e[2].remove()}),this.lineList=[]}createLineFromActiveNode(){if(this.mindMap.renderer.activeNodeList.length<=0)return;let e=this.mindMap.renderer.activeNodeList[0];this.createLine(e)}createLine(e){let{associativeLineWidth:t,associativeLineColor:r,associativeLineDasharray:n}=this.getStyleConfig(e);if(this.isCreatingLine||!e)return;this.front(),this.isCreatingLine=!0,this.creatingStartNode=e,this.creatingLine=this.associativeLineDraw.path(),this.creatingLine.stroke({width:t,color:r,dasharray:n||"6,4"}).fill({color:"none"});let s=null,a=this.createMarker(o=>{s=o});s.stroke({color:r}).fill({color:r}),this.creatingLine.marker("end",a)}cancelCreateLine(){this.isCreatingLine=!1,this.creatingStartNode=null,this.creatingLine.remove(),this.creatingLine=null,this.overlapNode=null,this.back()}onMousemove(e){this.onControlPointMousemove(e),this.updateCreatingLine(e)}updateCreatingLine(e){if(!this.isCreatingLine)return;let{x:t,y:r}=this.getTransformedEventPos(e),n=kr(this.creatingStartNode),s=t>n.x?-10:10,a=m6(n.x,n.y,t+s,r);this.creatingLine.plot(a),this.checkOverlapNode(t,r)}getTransformedEventPos(e){let{x:t,y:r}=this.mindMap.toPos(e.clientX,e.clientY),{scaleX:n,scaleY:s,translateX:a,translateY:o}=this.mindMap.draw.transform();return{x:(t-a)/n,y:(r-o)/s}}getNodePos(e){let{scaleX:t,scaleY:r,translateX:n,translateY:s}=this.mindMap.draw.transform(),{left:a,top:o,width:l,height:h}=e,d=a*t+n,c=o*r+s;return{left:a,top:o,translateLeft:d,translateTop:c,width:l,height:h}}checkOverlapNode(e,t){this.overlapNode=null,Xt(this.mindMap.renderer.root,r=>{if(r.getData("isActive")&&this.mindMap.execCommand("SET_NODE_ACTIVE",r,!1),r.uid===this.creatingStartNode.uid||this.overlapNode)return;let{left:n,top:s,width:a,height:o}=r,l=n+a,h=s+o;e>=n&&e<=l&&t>=s&&t<=h&&(this.overlapNode=r)}),this.overlapNode&&!this.overlapNode.getData("isActive")&&this.mindMap.execCommand("SET_NODE_ACTIVE",this.overlapNode,!0)}completeCreateLine(e){if(this.creatingStartNode.uid===e.uid)return;let{beforeAssociativeLineConnection:t}=this.mindMap.opt,r=!1;typeof t=="function"&&(r=t(e)),!r&&(this.addLine(this.creatingStartNode,e),this.overlapNode&&this.overlapNode.getData("isActive")&&this.mindMap.execCommand("SET_NODE_ACTIVE",this.overlapNode,!1),this.cancelCreateLine())}addLine(e,t){if(!e||!t)return;let r=t.getData("uid");r||(r=fo(),this.mindMap.execCommand("SET_NODE_DATA",t,{uid:r}));let n=e.getData("associativeLineTargets")||[];if(n.some(f=>f===r))return;n.push(r);let[a,o]=Uu(e,t),l=Vo(a.x,a.y,o.x,o.y),{associativeLineInitPointsPosition:h}=this.mindMap.opt;if(h){let{from:f,to:m}=h;f&&(a.dir=f),m&&(o.dir=m)}let d=e.getData("associativeLineTargetControlOffsets")||[];d[n.length-1]=[{x:l[0].x-a.x,y:l[0].y-a.y},{x:l[1].x-o.x,y:l[1].y-o.y}];let c=e.getData("associativeLinePoint")||[];c[n.length-1]={startPoint:a,endPoint:o},this.mindMap.execCommand("SET_NODE_DATA",e,{associativeLineTargets:n,associativeLineTargetControlOffsets:d,associativeLinePoint:c})}removeLine(){if(!this.activeLine)return;let[,,,e,t]=this.activeLine;this.removeControls();let{associativeLineTargets:r,associativeLinePoint:n,associativeLineTargetControlOffsets:s,associativeLineText:a,associativeLineStyle:o}=e.getData();n=n||[];let l=Go(e,t),h={};a&&Object.keys(a).forEach(c=>{c!==t.getData("uid")&&(h[c]=a[c])});let d={};o&&Object.keys(o).forEach(c=>{c!==t.getData("uid")&&(d[c]=o[c])}),this.mindMap.execCommand("SET_NODE_DATA",e,{associativeLineTargets:r.filter((c,f)=>f!==l),associativeLinePoint:n.filter((c,f)=>f!==l),associativeLineTargetControlOffsets:s?s.filter((c,f)=>f!==l):[],associativeLineText:h,associativeLineStyle:d})}clearActiveLine(){if(this.activeLine){let[,e,t,r,n]=this.activeLine;e.stroke({color:"transparent"}),this.hideEditTextBox(),this.getText(r,n)||t.clear(),this.activeLine=null,this.removeControls(),this.back(),this.mindMap.emit("associative_line_deactivate")}}onNodeDragging(){this.isNodeDragging||(this.isNodeDragging=!0,this.lineList.forEach(e=>{e[0].hide(),e[1].hide(),e[2].hide()}),this.hideControls())}onNodeDragend(){this.isNodeDragging&&(this.lineList.forEach(e=>{e[0].show(),e[1].show(),e[2].show()}),this.showControls(),this.isNodeDragging=!1)}front(){this.mindMap.opt.associativeLineIsAlwaysAboveNode||this.associativeLineDraw.front()}back(){this.mindMap.opt.associativeLineIsAlwaysAboveNode||(this.associativeLineDraw.back(),this.associativeLineDraw.forward())}beforePluginRemove(){this.mindMap.deleteEditNodeClass(Wu),this.unBindEvent()}beforePluginDestroy(){this.mindMap.deleteEditNodeClass(Wu),this.unBindEvent()}};nh.instanceName="associativeLine";FE=nh});var w6={};tt(w6,{default:()=>qE});var sh,qE,M6=T(()=>{pe();X0();$e();sh=class{constructor({mindMap:e}){this.mindMap=e,this.isSearching=!1,this.searchText="",this.matchNodeList=[],this.currentIndex=-1,this.notResetSearchText=!1,this.isJumpNext=!1,this.bindEvent()}bindEvent(){this.onDataChange=this.onDataChange.bind(this),this.onModeChange=this.onModeChange.bind(this),this.mindMap.on("data_change",this.onDataChange),this.mindMap.on("mode_change",this.onModeChange)}unBindEvent(){this.mindMap.off("data_change",this.onDataChange),this.mindMap.off("mode_change",this.onModeChange)}onDataChange(){if(this.isJumpNext){this.isJumpNext=!1,this.search(this.searchText);return}if(this.notResetSearchText){this.notResetSearchText=!1;return}this.searchText=""}onModeChange(e){!(e===k.MODE.READONLY)&&this.isSearching&&this.matchNodeList[this.currentIndex]&&this.matchNodeList[this.currentIndex].closeHighlight()}search(e,t=()=>{}){if(Yt(e))return this.endSearch();e=String(e),this.isSearching=!0,this.searchText===e?this.searchNext(t):(this.searchText=e,this.doSearch(),this.searchNext(t)),this.emitEvent()}updateMatchNodeList(e){this.matchNodeList=e,this.mindMap.emit("search_match_node_list_change",e)}endSearch(){this.isSearching&&(this.mindMap.opt.readonly&&this.matchNodeList[this.currentIndex]&&this.matchNodeList[this.currentIndex].closeHighlight(),this.searchText="",this.updateMatchNodeList([]),this.currentIndex=-1,this.notResetSearchText=!1,this.isSearching=!1,this.emitEvent())}doSearch(){this.clearHighlightOnReadonly(),this.updateMatchNodeList([]),this.currentIndex=-1;let{isOnlySearchCurrentRenderNodes:e}=this.mindMap.opt,t=e?this.mindMap.renderer.root:this.mindMap.renderer.renderTree;if(!t)return;let r=[];Xt(t,n=>{let{richText:s,text:a,generalization:o}=e?n.getData():n.data;s&&(a=sa(a)),a.includes(this.searchText)&&r.push(n),us({generalization:o}).forEach(h=>{let{richText:d,text:c,uid:f}=h;e&&!this.mindMap.renderer.findNodeByUid(f)||(d&&(c=sa(c)),c.includes(this.searchText)&&r.push({data:h}))})}),this.updateMatchNodeList(r)}isNodeInstance(e){return e instanceof da}searchNext(e,t){if(!this.isSearching||this.matchNodeList.length<=0)return;t!==void 0&&Number.isInteger(t)&&t>=0&&t{this.isNodeInstance(n)||(this.matchNodeList[this.currentIndex]=o,this.updateMatchNodeList(this.matchNodeList)),e(),r&&o.highlight(),a&&(this.notResetSearchText=!1)})}clearHighlightOnReadonly(){let{readonly:e}=this.mindMap.opt;e&&this.matchNodeList.forEach(t=>{this.isNodeInstance(t)&&t.closeHighlight()})}jump(e,t=()=>{}){this.searchNext(t,e)}replace(e,t=!1){if(e==null||!this.isSearching||this.matchNodeList.length<=0)return;this.isJumpNext=t,e=String(e);let r=this.matchNodeList[this.currentIndex];if(!r)return;let n=e.includes(this.searchText),s=this.getReplacedText(r,this.searchText,e);if(this.notResetSearchText=!0,r.setText(s,r.getData("richText")),n){this.updateMatchNodeList(this.matchNodeList);return}let a=this.matchNodeList.filter(o=>r!==o);this.updateMatchNodeList(a),this.currentIndex>this.matchNodeList.length-1?this.currentIndex=-1:this.currentIndex--,this.emitEvent()}replaceAll(e){if(e==null||!this.isSearching||this.matchNodeList.length<=0)return;e=String(e);let t=e.includes(this.searchText);this.notResetSearchText=!0,this.matchNodeList.forEach(r=>{let n=this.getReplacedText(r,this.searchText,e);if(this.isNodeInstance(r)){let s={text:n};this.mindMap.renderer.setNodeDataRender(r,s,!0)}else r.data.text=n}),this.mindMap.render(),this.mindMap.command.addHistory(),t?this.updateMatchNodeList(this.matchNodeList):this.endSearch()}getReplacedText(e,t,r){let{richText:n,text:s}=this.isNodeInstance(e)?e.getData():e.data;return n?M2(s,t,r):s.replace(new RegExp(t,"g"),r)}emitEvent(){this.mindMap.emit("search_info_change",{currentIndex:this.currentIndex,total:this.matchNodeList.length})}beforePluginRemove(){this.unBindEvent()}beforePluginDestroy(){this.unBindEvent()}};sh.instanceName="search";qE=sh});var T6,N6,E6=T(()=>{pe();T6=i=>{i=ds(i);let e={},t={};i.forEach(n=>{let s=n.parent;if(s){let a=s.uid;t[a]=s;let o=n.getIndexInBrothers(),l={node:n,index:o};e[a]?e[a].find(h=>h.index===l.index)||e[a].push(l):e[a]=[l]}});let r=[];return Object.keys(e).forEach(n=>{let s=e[n],a=t[n];if(s.length>1){let o=s.map(f=>f.index).sort((f,m)=>f-m),l=o[0],h=o[o.length-1],d=-1,c=-1;for(let f=l;f<=h;f++)o.includes(f)?(d===-1&&(d=f),c=f):(d!==-1&&c!==-1&&r.push({node:a,range:[d,c]}),d=-1,c=-1);d!==-1&&c!==-1&&r.push({node:a,range:[d,c]})}else r.push({node:a,range:[s[0].index,s[0].index]})}),r},N6=i=>{let e=i.children;if(!e||e.length<=0)return;let t=[],r={};return e.forEach((n,s)=>{let a=n.getData("outerFrame");if(!a)return;let o=a.groupId;o?(r[o]||(r[o]=[]),r[o].push({node:n,index:s})):t.push({nodeList:[n],range:[s,s]})}),Object.keys(r).forEach(n=>{let s=r[n];t.push({nodeList:s.map(a=>a.node),range:[s[0].index,s[s.length-1].index]})}),t}});function UE(i,e,t){let r=this.draw.group(),n=()=>{(!this.activeOuterFrame||this.activeOuterFrame.el!==i)&&this.setActiveOuterFrame(i,e,t,r)};return r.click(s=>{s.stopPropagation(),n()}),r.on("dblclick",s=>{s.stopPropagation(),n(),this.showEditTextBox(r)}),r}function $E(i){this.mindMap.emit("before_show_text_edit"),this.mindMap.keyCommand.addShortcut("Enter",()=>{this.hideEditTextBox()}),this.textEditNode||(this.textEditNode=document.createElement("div"),this.textEditNode.className=HE,this.textEditNode.style.cssText=` position: fixed; box-sizing: border-box; background-color: #fff; box-shadow: 0 0 20px rgba(0,0,0,.5); - outline: none; + outline: none; word-break: break-all; - `,this.textEditNode.setAttribute("contenteditable",!0),this.textEditNode.addEventListener("keyup",g=>{g.stopPropagation()}),this.textEditNode.addEventListener("click",g=>{g.stopPropagation()}),(this.mindMap.opt.customInnerElsAppendTo||document.body).appendChild(this.textEditNode));let{node:e,range:t}=this.activeOuterFrame,r=this.getStyle(this.getNodeRangeFirstNode(e,t)),[n,s,a,o]=r.textFillPadding,{defaultOuterFrameText:l,nodeTextEditZIndex:h}=this.mindMap.opt,d=this.mindMap.view.scale,c=this.getText(this.getNodeRangeFirstNode(e,t)),f=(c||l).split(/\n/gim);this.textEditNode.style.padding=`${n}px ${s}px ${a}px ${o}px`,this.textEditNode.style.fontFamily=r.fontFamily,this.textEditNode.style.fontSize=r.fontSize*d+"px",this.textEditNode.style.fontWeight=r.fontWeight,this.textEditNode.style.fontStyle=r.fontStyle,this.textEditNode.style.lineHeight=f.length>1?r.lineHeight:"normal",this.textEditNode.style.zIndex=h,this.textEditNode.innerHTML=f.join("
    "),this.textEditNode.style.display="block",this.updateTextEditBoxPos(i),this.setIsShowTextEdit(!0),c===""||c===l?Ls(this.textEditNode):_s(this.textEditNode)}function CT(i){this.showTextEdit=i,i?this.mindMap.keyCommand.stopCheckInSvg():this.mindMap.keyCommand.recoveryCheckInSvg()}function _T(){if(!this.textEditNode)return;(this.mindMap.opt.customInnerElsAppendTo||document.body).removeChild(this.textEditNode)}function LT(){this.hideEditTextBox()}function zT(i){let e=i.node.getBoundingClientRect();this.textEditNode&&(this.textEditNode.style.minWidth=`${e.width}px`,this.textEditNode.style.minHeight=`${e.height}px`,this.textEditNode.style.left=`${e.left}px`,this.textEditNode.style.top=`${e.top}px`)}function IT(){if(!this.showTextEdit)return;let{el:i,textNode:e,node:t,range:r}=this.activeOuterFrame,n=As(this.textEditNode.innerHTML);n=n===this.mindMap.opt.defaultOuterFrameText?"":n,this.updateActiveOuterFrame({text:n}),this.textEditNode.style.display="none",this.textEditNode.innerHTML="",this.setIsShowTextEdit(!1),this.renderText(n,i,e,t,r),this.mindMap.emit("hide_text_edit")}function RT(i,e,t,r,n){if(!i)return;t.clear();let s=new Pe;t.add(s);let a=this.getStyle(this.getNodeRangeFirstNode(r,n)),[o,l,h,d]=a.textFillPadding,c=i.replace(/\n$/g,"").split(/\n/gim),f=new Ne;c.forEach((S,C)=>{S===""&&(S="\uFEFF");let _=new Te().text(S);_.y(a.fontSize*a.lineHeight*C),this.styleText(_,a),f.add(_)}),t.add(f);let{width:m,height:g}=t.bbox(),x=m+o+h,v=g+l+d;s.size(x,v).x(0).dy(0),this.styleTextShape(s,a);let b=0;switch(a.textAlign){case"left":b=e.x();break;case"center":b=e.x()+e.width()/2-x/2;break;case"right":b=e.x()+e.width()-x;break;default:break}let E=e.y()-v;s.x(b),s.y(E),f.x(b+o),f.y(E+l)}function DT(i,e){i.fill({color:e.textFill}).radius(e.textFillRadius)}function OT(i,e){i.fill({color:e.color}).css({"font-family":e.fontFamily,"font-size":e.fontSize+"px","font-weight":e.fontWeight,"font-style":e.fontStyle})}function BT(i){let e=i.getData("outerFrame");return e&&e.text?e.text:""}var ST,Wc,W3=M(()=>{ht();he();ST="outer-frame-text-edit-warp";Wc={getText:BT,createText:AT,styleTextShape:DT,styleText:OT,onScale:LT,showEditTextBox:kT,setIsShowTextEdit:CT,removeTextEditEl:_T,hideEditTextBox:IT,updateTextEditBoxPos:zT,renderText:RT}});var V3={};ti(V3,{default:()=>PT});var Xc,Vc,go,PT,X3=M(()=>{he();Y3();W3();Xc={radius:5,strokeWidth:2,strokeColor:"#0984e3",strokeDasharray:"5,5",fill:"rgba(9,132,227,0.05)",fontSize:14,fontFamily:"\u5FAE\u8F6F\u96C5\u9ED1, Microsoft YaHei",fontWeight:"normal",fontStyle:"normal",color:"#fff",lineHeight:1.2,textFill:"#0984e3",textFillRadius:5,textFillPadding:[5,5,5,5],textAlign:"left"},Vc="outer-frame-text-edit-warp",go=class{constructor(e={}){this.mindMap=e.mindMap,this.draw=null,this.createDrawContainer(),this.isNotRenderOuterFrames=!1,this.textNodeList=[],this.outerFrameElList=[],this.activeOuterFrame=null,this.textEditNode=null,this.showTextEdit=!1,Object.keys(Wc).forEach(t=>{this[t]=Wc[t].bind(this)}),this.mindMap.addEditNodeClass(Vc),this.bindEvent()}createDrawContainer(){this.draw=this.mindMap.draw.group(),this.draw.addClass("smm-outer-frame-container"),this.draw.back(),this.draw.forward()}bindEvent(){this.renderOuterFrames=this.renderOuterFrames.bind(this),this.mindMap.on("node_tree_render_end",this.renderOuterFrames),this.mindMap.on("data_change",this.renderOuterFrames),this.clearActiveOuterFrame=this.clearActiveOuterFrame.bind(this),this.mindMap.on("draw_click",this.clearActiveOuterFrame),this.mindMap.on("node_click",this.clearActiveOuterFrame),this.mindMap.on("scale",this.onScale),this.onBeforeDestroy=this.onBeforeDestroy.bind(this),this.mindMap.on("beforeDestroy",this.onBeforeDestroy),this.addOuterFrame=this.addOuterFrame.bind(this),this.mindMap.command.add("ADD_OUTER_FRAME",this.addOuterFrame),this.removeActiveOuterFrame=this.removeActiveOuterFrame.bind(this),this.mindMap.keyCommand.addShortcut("Del|Backspace",this.removeActiveOuterFrame)}unBindEvent(){this.mindMap.off("node_tree_render_end",this.renderOuterFrames),this.mindMap.off("data_change",this.renderOuterFrames),this.mindMap.off("draw_click",this.clearActiveOuterFrame),this.mindMap.off("node_click",this.clearActiveOuterFrame),this.mindMap.off("scale",this.onScale),this.mindMap.off("beforeDestroy",this.onBeforeDestroy),this.mindMap.command.remove("ADD_OUTER_FRAME",this.addOuterFrame),this.mindMap.keyCommand.removeShortcut("Del|Backspace",this.removeActiveOuterFrame)}onBeforeDestroy(){this.hideEditTextBox(),this.removeTextEditEl()}addOuterFrame(e,t={}){e=Nt(e);let r=this.mindMap.renderer.activeNodeList;if(r.length<=0&&e.length<=0)return;let n=e.length>0?e:r;n=n.filter(a=>!a.isRoot&&!a.isGeneralization),j3(n).forEach(({node:a,range:o})=>{let l=a.children.slice(o[0],o[1]+1),h=ct();l.forEach(d=>{let c=d.getData("outerFrame");c?c={...c,...t,groupId:h}:c={...t,groupId:h},this.mindMap.execCommand("SET_NODE_DATA",d,{outerFrame:c})})})}getActiveOuterFrame(){return this.activeOuterFrame?{...this.activeOuterFrame}:null}removeActiveOuterFrame(){if(!this.activeOuterFrame)return;let{node:e,range:t}=this.activeOuterFrame;this.getRangeNodeList(e,t).forEach(r=>{this.mindMap.execCommand("SET_NODE_DATA",r,{outerFrame:null})}),this.mindMap.emit("outer_frame_delete")}removeActiveOuterFrameText(){this.updateActiveOuterFrame({text:""})}updateActiveOuterFrame(e={}){if(!this.activeOuterFrame)return;this.isNotRenderOuterFrames=!0;let{el:t,node:r,range:n}=this.activeOuterFrame,s="";this.getRangeNodeList(r,n).forEach(a=>{let l={...a.getData("outerFrame"),...e};s=l.strokeDasharray,this.mindMap.execCommand("SET_NODE_DATA",a,{outerFrame:l})}),t.cacheStyle={dasharray:s},this.updateOuterFrameStyle()}updateOuterFrameStyle(){let{el:e,node:t,range:r,textNode:n}=this.activeOuterFrame,s=this.getNodeRangeFirstNode(t,r),a=this.getStyle(s);this.styleOuterFrame(e,{...a,strokeDasharray:"none"});let o=this.getText(s);this.renderText(o,e,n,t,r)}getRangeNodeList(e,t){return e.children.slice(t[0],t[1]+1).filter(r=>r.getData("outerFrame"))}getNodeRangeFirstNode(e,t){return e.children[t[0]]}renderOuterFrames(){if(this.isNotRenderOuterFrames){this.isNotRenderOuterFrames=!1;return}this.clearActiveOuterFrame(),this.clearTextNodes(),this.clearOuterFrameElList();let e=this.mindMap.renderer.root;if(!e)return;let t=this.mindMap.draw.transform(),{outerFramePaddingX:r,outerFramePaddingY:n}=this.mindMap.opt;se(e,null,s=>{if(!s)return;let a=G3(s);a&&a.length>0&&a.forEach(({nodeList:o,range:l})=>{if(l[0]===-1||l[1]===-1)return;let{left:h,top:d,width:c,height:f}=i3(o);if(!Number.isFinite(h)||!Number.isFinite(d)||!Number.isFinite(c)||!Number.isFinite(f))return;let m=this.createOuterFrameEl((h-r-this.mindMap.elRect.left-t.translateX)/t.scaleX,(d-n-this.mindMap.elRect.top-t.translateY)/t.scaleY,(c+r*2)/t.scaleX,(f+n*2)/t.scaleY,this.getStyle(o[0])),g=this.createText(m,s,l);this.textNodeList.push(g),this.renderText(this.getText(o[0]),m,g,s,l),m.on("click",x=>{x.stopPropagation(),this.setActiveOuterFrame(m,s,l,g)})})},()=>{},!0,0)}setActiveOuterFrame(e,t,r,n){this.mindMap.execCommand("CLEAR_ACTIVE_NODE"),this.clearActiveOuterFrame(),this.activeOuterFrame={el:e,node:t,range:r,textNode:n},e.stroke({dasharray:"none"}),this.getText(this.getNodeRangeFirstNode(t,r))||this.renderText(this.mindMap.opt.defaultOuterFrameText,e,n,t,r),this.mindMap.emit("outer_frame_active",e,t,r)}clearActiveOuterFrame(){if(!this.activeOuterFrame)return;let{el:e,textNode:t,node:r,range:n}=this.activeOuterFrame;e.stroke({dasharray:e.cacheStyle.dasharray||Xc.strokeDasharray}),this.hideEditTextBox(),this.getText(this.getNodeRangeFirstNode(r,n))||t.clear(),this.activeOuterFrame=null,this.mindMap.emit("outer_frame_deactivate")}getStyle(e){return{...Xc,...e.getData("outerFrame")||{}}}createOuterFrameEl(e,t,r,n,s={}){let a=this.draw.rect().size(r,n).x(e).y(t);return this.styleOuterFrame(a,s),a.cacheStyle={dasharray:s.strokeDasharray},this.outerFrameElList.push(a),a}styleOuterFrame(e,t){e.radius(t.radius).stroke({width:t.strokeWidth,color:t.strokeColor,dasharray:t.strokeDasharray}).fill({color:t.fill})}clearTextNodes(){this.textNodeList.forEach(e=>{e.remove()})}clearOuterFrameElList(){this.outerFrameElList.forEach(e=>{e.remove()}),this.outerFrameElList=[],this.activeOuterFrame=null}beforePluginRemove(){this.mindMap.deleteEditNodeClass(Vc),this.unBindEvent()}beforePluginDestroy(){this.mindMap.deleteEditNodeClass(Vc),this.unBindEvent()}};go.instanceName="outerFrame";go.defaultStyle=Xc;PT=go});var K3={};ti(K3,{default:()=>FT});var x0,FT,Z3=M(()=>{he();Oe();x0=class{constructor(e){this.mindMap=e.mindMap,this.scrollbarWrapSize={width:0,height:0},this.chartHeight=0,this.chartWidth=0,this.reset(),this.bindEvent()}reset(){this.currentScrollType="",this.isMousedown=!1,this.mousedownPos={x:0,y:0},this.mousedownScrollbarPos=0}bindEvent(){this.onMousemove=this.onMousemove.bind(this),this.onMouseup=this.onMouseup.bind(this),this.updateScrollbar=this.updateScrollbar.bind(this),this.updateScrollbar=mi(this.updateScrollbar,16,this),this.mindMap.on("mousemove",this.onMousemove),this.mindMap.on("mouseup",this.onMouseup),this.mindMap.on("node_tree_render_end",this.updateScrollbar),this.mindMap.on("view_data_change",this.updateScrollbar),this.mindMap.on("resize",this.updateScrollbar)}unBindEvent(){this.mindMap.off("mousemove",this.onMousemove),this.mindMap.off("mouseup",this.onMouseup),this.mindMap.off("node_tree_render_end",this.updateScrollbar),this.mindMap.off("view_data_change",this.updateScrollbar),this.mindMap.off("resize",this.updateScrollbar)}updateScrollbar(){if(this.isMousedown)return;let e=this.calculationScrollbar();this.emitEvent(e)}emitEvent(e){this.mindMap.emit("scrollbar_change",e)}setScrollBarWrapSize(e,t){this.scrollbarWrapSize.width=e,this.scrollbarWrapSize.height=t}calculationScrollbar(){let e=this.mindMap.draw.rbox(),t=this.mindMap.elRect;e.x-=t.left,e.y-=t.top;let r=this.mindMap.height,n=r/2,s=e.height+n*2;this.chartHeight=s;let a=e.y-n,o=Math.min(r/s*100,100),l=-a/s*100;l<0&&(l=0),l>100-o&&(l=100-o);let h=this.mindMap.width,d=h/2,c=e.width+d*2;this.chartWidth=c;let f=e.x-d,m=Math.min(h/c*100,100),g=-f/c*100;return g<0&&(g=0),g>100-m&&(g=100-m),{vertical:{top:l,height:o},horizontal:{left:g,width:m}}}onMousedown(e,t){e.preventDefault(),e.stopPropagation(),this.currentScrollType=t,this.isMousedown=!0,this.mousedownPos={x:e.clientX,y:e.clientY};let r=window.getComputedStyle(e.target);t===A.SCROLL_BAR_DIR.VERTICAL?this.mousedownScrollbarPos=Number.parseFloat(r.top):this.mousedownScrollbarPos=Number.parseFloat(r.left)}onMousemove(e){if(this.isMousedown)if(e.preventDefault(),e.stopPropagation(),this.currentScrollType===A.SCROLL_BAR_DIR.VERTICAL){let t=e.clientY-this.mousedownPos.y+this.mousedownScrollbarPos;this.updateMindMapView(A.SCROLL_BAR_DIR.VERTICAL,t)}else{let t=e.clientX-this.mousedownPos.x+this.mousedownScrollbarPos;this.updateMindMapView(A.SCROLL_BAR_DIR.HORIZONTAL,t)}}onMouseup(){this.isMousedown=!1,this.reset()}updateMindMapView(e,t){let r=this.calculationScrollbar(),n=this.mindMap.draw.transform(),s=this.mindMap.draw.rbox(),a=this.mindMap.renderer.root.group.rbox(),o=this.mindMap.renderer.layout.getRootCenterOffset(a.width,a.height);if(e===A.SCROLL_BAR_DIR.VERTICAL){let l=t;l<=0&&(l=0);let h=(100-r.vertical.height)/100*this.scrollbarWrapSize.height;l>=h&&(l=h);let d=l/this.scrollbarWrapSize.height*100,c=-d/100*this.chartHeight,f=a.y-s.y,m=this.mindMap.height/2,g=c+f-m*n.scaleY+m-o.y*n.scaleY+(this.mindMap.height-this.mindMap.initHeight)/2*n.scaleY;this.mindMap.view.translateYTo(g),this.emitEvent({horizontal:r.horizontal,vertical:{top:d,height:r.vertical.height}})}else{let l=t;l<=0&&(l=0);let h=(100-r.horizontal.width)/100*this.scrollbarWrapSize.width;l>=h&&(l=h);let d=l/this.scrollbarWrapSize.width*100,c=-d/100*this.chartWidth,f=a.x-s.x,m=this.mindMap.width/2,g=c+f-m*n.scaleX+m-o.x*n.scaleX+(this.mindMap.width-this.mindMap.initWidth)/2*n.scaleX;this.mindMap.view.translateXTo(g),this.emitEvent({vertical:r.vertical,horizontal:{left:d,width:r.horizontal.width}})}}onClick(e,t){let r=0;t===A.SCROLL_BAR_DIR.VERTICAL?r=e.clientY-e.currentTarget.getBoundingClientRect().top:r=e.clientX-e.currentTarget.getBoundingClientRect().left,this.updateMindMapView(t,r)}beforePluginRemove(){this.unBindEvent()}beforePluginDestroy(){this.unBindEvent()}};x0.instanceName="scrollbar";FT=x0});var Q3={};ti(Q3,{default:()=>qT});var v0,qT,J3=M(()=>{he();v0=class{constructor(e){this.mindMap=e.mindMap,this.isMousedown=!1,this.mousedownPos={x:0,y:0},this.startViewPos={x:0,y:0},this.currentState=null}calculationMiniMap(e,t){let{svg:r,rect:n,origWidth:s,origHeight:a,scaleX:o,scaleY:l}=this.mindMap.getSvgData({ignoreWatermark:!0}),h=this.mindMap.elRect;n.x-=h.left,n.x2-=h.left,n.y-=h.top,n.y2-=h.top;let d=e/t,c=0,f=0;d>n.ratio?(f=t,c=n.ratio*f):(c=e,f=c/n.ratio);let m=c/n.width,g=(e-c)/2,x=(t-f)/2,v=n.width*o,b=n.height*l,E=(v-n.width)/2,S=(b-n.height)/2,C=n.x-E,_=n.x2+E,I=n.y-S,O=n.y2+S,D={left:0,top:0,right:0,bottom:0};D.left=Math.max(0,-C/v*c)+g,D.right=Math.max(0,(_-s)/v*c)+g,D.top=Math.max(0,-I/b*f)+x,D.bottom=Math.max(0,(O-a)/b*f)+x,D.top>x+f&&(D.top=x+f),D.left>g+c&&(D.left=g+c),Object.keys(D).forEach(F=>{D[F]=D[F]+"px"}),this.removeNodeContent(r);let $=r.svg();return this.currentState={viewBoxStyle:{...D},miniMapBoxScale:m,miniMapBoxLeft:g,miniMapBoxTop:x},{getImgUrl:async F=>{let Z=await this.mindMap.doExport.fixSvgStrAndToBlob($);F(Z)},svgHTML:$,viewBoxStyle:D,miniMapBoxScale:m,miniMapBoxLeft:g,miniMapBoxTop:x}}removeNodeContent(e){if(e.hasClass("smm-node")){let r=e.findOne(".smm-node-shape"),n=r.attr("fill");(no(n)||fc(n))&&r.attr("fill",e0(this.mindMap.themeConfig)),e.clear(),e.add(r);return}let t=e.children();t&&t.length>0&&t.forEach(r=>{this.removeNodeContent(r)})}onMousedown(e){this.isMousedown=!0,this.mousedownPos={x:e.clientX,y:e.clientY};let t=this.mindMap.view.getTransformData();this.startViewPos={x:t.state.x,y:t.state.y}}onMousemove(e,t=5){if(!this.isMousedown||this.isViewBoxMousedown)return;let r=e.clientX-this.mousedownPos.x,n=e.clientY-this.mousedownPos.y;this.mindMap.view.translateXTo(r*t+this.startViewPos.x),this.mindMap.view.translateYTo(n*t+this.startViewPos.y)}onMouseup(){this.isMousedown=!1,this.isViewBoxMousedown=!1}onViewBoxMousedown(e){this.isViewBoxMousedown=!0,this.mousedownPos={x:e.clientX,y:e.clientY};let t=this.mindMap.view.getTransformData();this.startViewPos={x:t.state.x,y:t.state.y}}onViewBoxMousemove(e){if(!this.isViewBoxMousedown||!this.currentState||this.isMousedown)return;let t=e.clientX-this.mousedownPos.x,r=e.clientY-this.mousedownPos.y,{viewBoxStyle:n,miniMapBoxScale:s,miniMapBoxLeft:a,miniMapBoxTop:o}=this.currentState,l=Math.max(a,Number.parseFloat(n.left)+t),h=Math.max(a,Number.parseFloat(n.right)-t),d=Math.max(o,Number.parseFloat(n.top)+r),c=Math.max(o,Number.parseFloat(n.bottom)-r);this.mindMap.emit("mini_map_view_box_position_change",{left:l+"px",right:h+"px",top:d+"px",bottom:c+"px"}),this.mindMap.view.translateXTo(-t/s+this.startViewPos.x),this.mindMap.view.translateYTo(-r/s+this.startViewPos.y)}};v0.instanceName="miniMap";qT=v0});var e2={};ti(e2,{default:()=>HT});var y0,HT,t2=M(()=>{he();y0=class{constructor({mindMap:e}){this.mindMap=e,this.isInPainter=!1,this.painterNode=null,this.bindEvent()}bindEvent(){this.painterOneNode=this.painterOneNode.bind(this),this.onEndPainter=this.onEndPainter.bind(this),this.mindMap.on("node_click",this.painterOneNode),this.mindMap.on("draw_click",this.onEndPainter)}unBindEvent(){this.mindMap.off("node_click",this.painterOneNode),this.mindMap.off("draw_click",this.onEndPainter)}startPainter(){if(this.mindMap.opt.readonly)return;let e=this.mindMap.renderer.activeNodeList;e.length<=0||(this.painterNode=e[0],this.isInPainter=!0,this.mindMap.emit("painter_start"))}endPainter(){this.painterNode=null,this.isInPainter=!1}onEndPainter(){this.isInPainter&&(this.endPainter(),this.mindMap.emit("painter_end"))}painterOneNode(e){if(!e||!this.isInPainter||!this.painterNode||!e||e.uid===this.painterNode.uid)return;let t={};this.mindMap.opt.onlyPainterNodeCustomStyles||(t={...this.painterNode.effectiveStyles});let r=this.painterNode.getData();Object.keys(r).forEach(n=>{Pn(n)&&(t[n]=r[n])}),this.mindMap.renderer._handleRemoveCustomStyles(e.getData()),e.setStyles(t)}beforePluginRemove(){this.unBindEvent()}beforePluginDestroy(){this.unBindEvent()}};y0.instanceName="painter";HT=y0});function WT(i){return String(i).replace(YT,e=>GT[e])}function ZT(i){if(i.default)return i.default;var e=i.type,t=Array.isArray(e)?e[0]:e;if(typeof t!="string")return t.enum[0];switch(t){case"boolean":return!1;case"string":return"";case"number":return 0;case"object":return{}}}function nN(i){for(var e=0;e=n[0]&&i<=n[1])return t.name}return null}function R2(i){for(var e=0;e=z0[e]&&i<=z0[e+1])return!0;return!1}function pN(i,e){Yi[i]=e}function Mu(i,e,t){if(!Yi[e])throw new Error("Font metrics not found for font: "+e+".");var r=i.charCodeAt(0),n=Yi[e][r];if(!n&&i[0]in r2&&(r=r2[i[0]].charCodeAt(0),n=Yi[e][r]),!n&&t==="text"&&R2(r)&&(n=Yi[e][77]),n)return{depth:n[0],height:n[1],italic:n[2],skew:n[3],width:n[4]}}function gN(i){var e;if(i>=5?e=0:i>=3?e=1:e=2,!Kc[e]){var t=Kc[e]={cssEmPerMu:b0.quad[e]/18};for(var r in b0)b0.hasOwnProperty(r)&&(t[r]=b0[r][e])}return Kc[e]}function a2(i){if(i instanceof $t)return i;throw new Error("Expected symbolNode but got "+String(i)+".")}function wN(i){if(i instanceof jn)return i;throw new Error("Expected span but got "+String(i)+".")}function u(i,e,t,r,n,s){Ce[i][n]={font:e,group:t,replace:r},s&&r&&(Ce[i][r]=Ce[i][n])}function X(i){for(var{type:e,names:t,props:r,handler:n,htmlBuilder:s,mathmlBuilder:a}=i,o={type:e,numArgs:r.numArgs,argTypes:r.argTypes,allowedInArgument:!!r.allowedInArgument,allowedInText:!!r.allowedInText,allowedInMath:r.allowedInMath===void 0?!0:r.allowedInMath,numOptionalArgs:r.numOptionalArgs||0,infix:!!r.infix,primitive:!!r.primitive,handler:n},l=0;l0&&(s.push(A0(a,e)),a=[]),s.push(r[o]));a.length>0&&s.push(A0(a,e));var h;t?(h=A0(tt(t,e,!0)),h.classes=["tag"],s.push(h)):n&&s.push(n);var d=pr(["katex-html"],s);if(d.setAttribute("aria-hidden","true"),h){var c=h.children[0];c.style.height=j(d.height+d.depth),d.depth&&(c.style.verticalAlign=j(-d.depth))}return d}function Y2(i){return new $n(i)}function Jc(i){if(!i)return!1;if(i.type==="mi"&&i.children.length===1){var e=i.children[0];return e instanceof gi&&e.text==="."}else if(i.type==="mo"&&i.children.length===1&&i.getAttribute("separator")==="true"&&i.getAttribute("lspace")==="0em"&&i.getAttribute("rspace")==="0em"){var t=i.children[0];return t instanceof gi&&t.text===","}else return!1}function c2(i,e,t,r,n){var s=jt(i,t),a;s.length===1&&s[0]instanceof Et&&["mrow","mtable"].includes(s[0].type)?a=s[0]:a=new q.MathNode("mrow",s);var o=new q.MathNode("annotation",[new q.TextNode(e)]);o.setAttribute("encoding","application/x-tex");var l=new q.MathNode("semantics",[a,o]),h=new q.MathNode("math",[l]);h.setAttribute("xmlns","http://www.w3.org/1998/Math/MathML"),r&&h.setAttribute("display","block");var d=n?"katex":"katex-mathml";return L.makeSpan([d],[h])}function le(i,e){if(!i||i.type!==e)throw new Error("Expected node of type "+e+", but got "+(i?"node of type "+i.type:String(i)));return i}function Su(i){var e=$0(i);if(!e)throw new Error("Expected node of symbol group type, but got "+(i?"node of type "+i.type:String(i)));return e}function $0(i){return i&&(i.type==="atom"||TN.hasOwnProperty(i.type))?i:null}function K2(i,e){var t=tt(i.body,e,!0);return JN([i.mclass],t,e)}function Z2(i,e){var t,r=jt(i.body,e);return i.mclass==="minner"?t=new q.MathNode("mpadded",r):i.mclass==="mord"?i.isCharacterBox?(t=r[0],t.type="mi"):t=new q.MathNode("mi",r):(i.isCharacterBox?(t=r[0],t.type="mo"):t=new q.MathNode("mo",r),i.mclass==="mbin"?(t.attributes.lspace="0.22em",t.attributes.rspace="0.22em"):i.mclass==="mpunct"?(t.attributes.lspace="0em",t.attributes.rspace="0.17em"):i.mclass==="mopen"||i.mclass==="mclose"?(t.attributes.lspace="0em",t.attributes.rspace="0em"):i.mclass==="minner"&&(t.attributes.lspace="0.0556em",t.attributes.width="+0.1111em")),t}function iE(i,e,t){var r=eE[i];switch(r){case"\\\\cdrightarrow":case"\\\\cdleftarrow":return t.callFunction(r,[e[0]],[e[1]]);case"\\uparrow":case"\\downarrow":{var n=t.callFunction("\\\\cdleft",[e[0]],[]),s={type:"atom",text:r,mode:"math",family:"rel"},a=t.callFunction("\\Big",[s],[]),o=t.callFunction("\\\\cdright",[e[1]],[]),l={type:"ordgroup",mode:"math",body:[n,a,o]};return t.callFunction("\\\\cdparent",[l],[])}case"\\\\cdlongequal":return t.callFunction("\\\\cdlongequal",[],[]);case"\\Vert":{var h={type:"textord",text:"\\Vert",mode:"math"};return t.callFunction("\\Big",[h],[])}default:return{type:"textord",text:" ",mode:"math"}}}function rE(i){var e=[];for(i.gullet.beginGroup(),i.gullet.macros.set("\\cr","\\\\\\relax"),i.gullet.beginGroup();;){e.push(i.parseExpression(!1,"\\\\")),i.gullet.endGroup(),i.gullet.beginGroup();var t=i.fetch().text;if(t==="&"||t==="\\\\")i.consume();else if(t==="\\end"){e[e.length-1].length===0&&e.pop();break}else throw new U("Expected \\\\ or \\cr or \\end",i.nextToken)}for(var r=[],n=[r],s=0;s-1))if("<>AV".indexOf(h)>-1)for(var c=0;c<2;c++){for(var f=!0,m=l+1;mAV=|." after @',a[l]);var g=iE(h,d,i),x={type:"styling",body:[g],mode:"math",style:"display"};r.push(x),o=u2()}s%2===0?r.push(o):r.shift(),r=[],n.push(r)}i.gullet.endGroup(),i.gullet.endGroup();var v=new Array(n[0].length).fill({type:"align",align:"c",pregap:.25,postgap:.25});return{type:"array",mode:"math",body:n,arraystretch:1,addJot:!0,rowGaps:[null],cols:v,colSeparationType:"CD",hLinesBeforeRow:new Array(n.length+1).fill([])}}function G0(i,e){var t=$0(i);if(t&&gE.includes(t.text))return t;throw t?new U("Invalid delimiter '"+t.text+"' after '"+e.funcName+"'",i):new U("Invalid delimiter type '"+i.type+"'",i)}function p2(i){if(!i.body)throw new Error("Bug: The leftright ParseNode wasn't fully parsed.")}function Vi(i){for(var{type:e,names:t,props:r,handler:n,htmlBuilder:s,mathmlBuilder:a}=i,o={type:e,numArgs:r.numArgs||0,allowedInText:!1,numOptionalArgs:0,handler:n},l=0;l1||!d)&&x.pop(),b.length{Ut=class i{constructor(e,t,r){this.lexer=void 0,this.start=void 0,this.end=void 0,this.lexer=e,this.start=t,this.end=r}static range(e,t){return t?!e||!e.loc||!t.loc||e.loc.lexer!==t.loc.lexer?null:new i(e.loc.lexer,e.loc.start,t.loc.end):e&&e.loc}},ii=class i{constructor(e,t){this.text=void 0,this.loc=void 0,this.noexpand=void 0,this.treatAsRelax=void 0,this.text=e,this.loc=t}range(e,t){return new i(t,Ut.range(this,e))}},U=class i{constructor(e,t){this.name=void 0,this.position=void 0,this.length=void 0,this.rawMessage=void 0;var r="KaTeX parse error: "+e,n,s,a=t&&t.loc;if(a&&a.start<=a.end){var o=a.lexer.input;n=a.start,s=a.end,n===o.length?r+=" at end of input: ":r+=" at position "+(n+1)+": ";var l=o.slice(n,s).replace(/[^]/g,"$&\u0332"),h;n>15?h="\u2026"+o.slice(n-15,n):h=o.slice(0,n);var d;s+15":">","<":"<",'"':""","'":"'"},YT=/[&><"']/g;I2=function i(e){return e.type==="ordgroup"||e.type==="color"?e.body.length===1?i(e.body[0]):e:e.type==="font"?i(e.body):e},VT=function(e){var t=I2(e);return t.type==="mathord"||t.type==="textord"||t.type==="atom"},XT=function(e){if(!e)throw new Error("Expected non-null, but got "+String(e));return e},KT=function(e){var t=/^[\x00-\x20]*([^\\/#?]*?)(:|�*58|�*3a|&colon)/i.exec(e);return t?t[2]!==":"||!/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(t[1])?null:t[1].toLowerCase():"_relative"},ve={deflt:UT,escape:WT,hyphenate:jT,getBaseElem:I2,isCharacterBox:VT,protocolFromUrl:KT},L0={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:i=>"#"+i},macros:{type:"object",cli:"-m, --macro ",cliDescription:"Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:(i,e)=>(e.push(i),e)},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:i=>Math.max(0,i),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:i=>Math.max(0,i),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:i=>Math.max(0,i),cli:"-e, --max-expand ",cliProcessor:i=>i==="Infinity"?1/0:parseInt(i)},globalGroup:{type:"boolean",cli:!1}};wo=class{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 t in L0)if(L0.hasOwnProperty(t)){var r=L0[t];this[t]=e[t]!==void 0?r.processor?r.processor(e[t]):e[t]:ZT(r)}}reportNonstrict(e,t,r){var n=this.strict;if(typeof n=="function"&&(n=n(e,t,r)),!(!n||n==="ignore")){if(n===!0||n==="error")throw new U("LaTeX-incompatible input and strict mode is set to 'error': "+(t+" ["+e+"]"),r);n==="warn"?typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(t+" ["+e+"]")):typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+n+"': "+t+" ["+e+"]"))}}useStrictBehavior(e,t,r){var n=this.strict;if(typeof n=="function")try{n=n(e,t,r)}catch{n="error"}return!n||n==="ignore"?!1:n===!0||n==="error"?!0:n==="warn"?(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(t+" ["+e+"]")),!1):(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+n+"': "+t+" ["+e+"]")),!1)}isTrusted(e){if(e.url&&!e.protocol){var t=ve.protocolFromUrl(e.url);if(t==null)return!1;e.protocol=t}var r=typeof this.trust=="function"?this.trust(e):this.trust;return!!r}},ji=class{constructor(e,t,r){this.id=void 0,this.size=void 0,this.cramped=void 0,this.id=e,this.size=t,this.cramped=r}sup(){return Gi[QT[this.id]]}sub(){return Gi[JT[this.id]]}fracNum(){return Gi[eN[this.id]]}fracDen(){return Gi[tN[this.id]]}cramp(){return Gi[iN[this.id]]}text(){return Gi[rN[this.id]]}isTight(){return this.size>=2}},wu=0,I0=1,Ds=2,fr=3,Mo=4,pi=5,Os=6,St=7,Gi=[new ji(wu,0,!1),new ji(I0,0,!0),new ji(Ds,1,!1),new ji(fr,1,!0),new ji(Mo,2,!1),new ji(pi,2,!0),new ji(Os,3,!1),new ji(St,3,!0)],QT=[Mo,pi,Mo,pi,Os,St,Os,St],JT=[pi,pi,pi,pi,St,St,St,St],eN=[Ds,fr,Mo,pi,Os,St,Os,St],tN=[fr,fr,pi,pi,St,St,St,St],iN=[I0,I0,fr,fr,pi,pi,St,St],rN=[wu,I0,Ds,fr,Ds,fr,Ds,fr],ie={DISPLAY:Gi[wu],TEXT:Gi[Ds],SCRIPT:Gi[Mo],SCRIPTSCRIPT:Gi[Os]},hu=[{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]]}];z0=[];hu.forEach(i=>i.blocks.forEach(e=>z0.push(...e)));Rs=80,sN=function(e,t){return"M95,"+(622+e+t)+` + `,this.textEditNode.setAttribute("contenteditable",!0),this.textEditNode.addEventListener("keyup",g=>{g.stopPropagation()}),this.textEditNode.addEventListener("click",g=>{g.stopPropagation()}),(this.mindMap.opt.customInnerElsAppendTo||document.body).appendChild(this.textEditNode));let{node:e,range:t}=this.activeOuterFrame,r=this.getStyle(this.getNodeRangeFirstNode(e,t)),[n,s,a,o]=r.textFillPadding,{defaultOuterFrameText:l,nodeTextEditZIndex:h}=this.mindMap.opt,d=this.mindMap.view.scale,c=this.getText(this.getNodeRangeFirstNode(e,t)),f=(c||l).split(/\n/gim);this.textEditNode.style.padding=`${n}px ${s}px ${a}px ${o}px`,this.textEditNode.style.fontFamily=r.fontFamily,this.textEditNode.style.fontSize=r.fontSize*d+"px",this.textEditNode.style.fontWeight=r.fontWeight,this.textEditNode.style.fontStyle=r.fontStyle,this.textEditNode.style.lineHeight=f.length>1?r.lineHeight:"normal",this.textEditNode.style.zIndex=h,this.textEditNode.innerHTML=f.join("
    "),this.textEditNode.style.display="block",this.updateTextEditBoxPos(i),this.setIsShowTextEdit(!0),c===""||c===l?la(this.textEditNode):oa(this.textEditNode)}function jE(i){this.showTextEdit=i,i?this.mindMap.keyCommand.stopCheckInSvg():this.mindMap.keyCommand.recoveryCheckInSvg()}function GE(){if(!this.textEditNode)return;(this.mindMap.opt.customInnerElsAppendTo||document.body).removeChild(this.textEditNode)}function VE(){this.hideEditTextBox()}function WE(i){let e=i.node.getBoundingClientRect();this.textEditNode&&(this.textEditNode.style.minWidth=`${e.width}px`,this.textEditNode.style.minHeight=`${e.height}px`,this.textEditNode.style.left=`${e.left}px`,this.textEditNode.style.top=`${e.top}px`)}function YE(){if(!this.showTextEdit)return;let{el:i,textNode:e,node:t,range:r}=this.activeOuterFrame,n=na(this.textEditNode.innerHTML);n=n===this.mindMap.opt.defaultOuterFrameText?"":n,this.updateActiveOuterFrame({text:n}),this.textEditNode.style.display="none",this.textEditNode.innerHTML="",this.setIsShowTextEdit(!1),this.renderText(n,i,e,t,r),this.mindMap.emit("hide_text_edit")}function XE(i,e,t,r,n){if(!i)return;t.clear();let s=new Ve;t.add(s);let a=this.getStyle(this.getNodeRangeFirstNode(r,n)),[o,l,h,d]=a.textFillPadding,c=i.replace(/\n$/g,"").split(/\n/gim),f=new _e;c.forEach((A,C)=>{A===""&&(A="\uFEFF");let I=new Ce().text(A);I.y(a.fontSize*a.lineHeight*C),this.styleText(I,a),f.add(I)}),t.add(f);let{width:m,height:g}=t.bbox(),x=m+o+h,y=g+l+d;s.size(x,y).x(0).dy(0),this.styleTextShape(s,a);let b=0;switch(a.textAlign){case"left":b=e.x();break;case"center":b=e.x()+e.width()/2-x/2;break;case"right":b=e.x()+e.width()-x;break;default:break}let S=e.y()-y;s.x(b),s.y(S),f.x(b+o),f.y(S+l)}function KE(i,e){i.fill({color:e.textFill}).radius(e.textFillRadius)}function ZE(i,e){i.fill({color:e.color}).css({"font-family":e.fontFamily,"font-size":e.fontSize+"px","font-weight":e.fontWeight,"font-style":e.fontStyle})}function QE(i){let e=i.getData("outerFrame");return e&&e.text?e.text:""}var HE,Yu,S6=T(()=>{yt();pe();HE="outer-frame-text-edit-warp";Yu={getText:QE,createText:UE,styleTextShape:KE,styleText:ZE,onScale:VE,showEditTextBox:$E,setIsShowTextEdit:jE,removeTextEditEl:GE,hideEditTextBox:YE,updateTextEditBoxPos:WE,renderText:XE}});var A6={};tt(A6,{default:()=>JE});var Ku,Xu,Wo,JE,k6=T(()=>{pe();E6();S6();Ku={radius:5,strokeWidth:2,strokeColor:"#0984e3",strokeDasharray:"5,5",fill:"rgba(9,132,227,0.05)",fontSize:14,fontFamily:"\u5FAE\u8F6F\u96C5\u9ED1, Microsoft YaHei",fontWeight:"normal",fontStyle:"normal",color:"#fff",lineHeight:1.2,textFill:"#0984e3",textFillRadius:5,textFillPadding:[5,5,5,5],textAlign:"left"},Xu="outer-frame-text-edit-warp",Wo=class{constructor(e={}){this.mindMap=e.mindMap,this.draw=null,this.createDrawContainer(),this.isNotRenderOuterFrames=!1,this.textNodeList=[],this.outerFrameElList=[],this.activeOuterFrame=null,this.textEditNode=null,this.showTextEdit=!1,Object.keys(Yu).forEach(t=>{this[t]=Yu[t].bind(this)}),this.mindMap.addEditNodeClass(Xu),this.bindEvent()}createDrawContainer(){this.draw=this.mindMap.draw.group(),this.draw.addClass("smm-outer-frame-container"),this.draw.back(),this.draw.forward()}bindEvent(){this.renderOuterFrames=this.renderOuterFrames.bind(this),this.mindMap.on("node_tree_render_end",this.renderOuterFrames),this.mindMap.on("data_change",this.renderOuterFrames),this.clearActiveOuterFrame=this.clearActiveOuterFrame.bind(this),this.mindMap.on("draw_click",this.clearActiveOuterFrame),this.mindMap.on("node_click",this.clearActiveOuterFrame),this.mindMap.on("scale",this.onScale),this.onBeforeDestroy=this.onBeforeDestroy.bind(this),this.mindMap.on("beforeDestroy",this.onBeforeDestroy),this.addOuterFrame=this.addOuterFrame.bind(this),this.mindMap.command.add("ADD_OUTER_FRAME",this.addOuterFrame),this.removeActiveOuterFrame=this.removeActiveOuterFrame.bind(this),this.mindMap.keyCommand.addShortcut("Del|Backspace",this.removeActiveOuterFrame)}unBindEvent(){this.mindMap.off("node_tree_render_end",this.renderOuterFrames),this.mindMap.off("data_change",this.renderOuterFrames),this.mindMap.off("draw_click",this.clearActiveOuterFrame),this.mindMap.off("node_click",this.clearActiveOuterFrame),this.mindMap.off("scale",this.onScale),this.mindMap.off("beforeDestroy",this.onBeforeDestroy),this.mindMap.command.remove("ADD_OUTER_FRAME",this.addOuterFrame),this.mindMap.keyCommand.removeShortcut("Del|Backspace",this.removeActiveOuterFrame)}onBeforeDestroy(){this.hideEditTextBox(),this.removeTextEditEl()}addOuterFrame(e,t={}){e=Ot(e);let r=this.mindMap.renderer.activeNodeList;if(r.length<=0&&e.length<=0)return;let n=e.length>0?e:r;n=n.filter(a=>!a.isRoot&&!a.isGeneralization),T6(n).forEach(({node:a,range:o})=>{let l=a.children.slice(o[0],o[1]+1),h=wt();l.forEach(d=>{let c=d.getData("outerFrame");c?c={...c,...t,groupId:h}:c={...t,groupId:h},this.mindMap.execCommand("SET_NODE_DATA",d,{outerFrame:c})})})}getActiveOuterFrame(){return this.activeOuterFrame?{...this.activeOuterFrame}:null}removeActiveOuterFrame(){if(!this.activeOuterFrame)return;let{node:e,range:t}=this.activeOuterFrame;this.getRangeNodeList(e,t).forEach(r=>{this.mindMap.execCommand("SET_NODE_DATA",r,{outerFrame:null})}),this.mindMap.emit("outer_frame_delete")}removeActiveOuterFrameText(){this.updateActiveOuterFrame({text:""})}updateActiveOuterFrame(e={}){if(!this.activeOuterFrame)return;this.isNotRenderOuterFrames=!0;let{el:t,node:r,range:n}=this.activeOuterFrame,s="";this.getRangeNodeList(r,n).forEach(a=>{let l={...a.getData("outerFrame"),...e};s=l.strokeDasharray,this.mindMap.execCommand("SET_NODE_DATA",a,{outerFrame:l})}),t.cacheStyle={dasharray:s},this.updateOuterFrameStyle()}updateOuterFrameStyle(){let{el:e,node:t,range:r,textNode:n}=this.activeOuterFrame,s=this.getNodeRangeFirstNode(t,r),a=this.getStyle(s);this.styleOuterFrame(e,{...a,strokeDasharray:"none"});let o=this.getText(s);this.renderText(o,e,n,t,r)}getRangeNodeList(e,t){return e.children.slice(t[0],t[1]+1).filter(r=>r.getData("outerFrame"))}getNodeRangeFirstNode(e,t){return e.children[t[0]]}renderOuterFrames(){if(this.isNotRenderOuterFrames){this.isNotRenderOuterFrames=!1;return}this.clearActiveOuterFrame(),this.clearTextNodes(),this.clearOuterFrameElList();let e=this.mindMap.renderer.root;if(!e)return;let t=this.mindMap.draw.transform(),{outerFramePaddingX:r,outerFramePaddingY:n}=this.mindMap.opt;de(e,null,s=>{if(!s)return;let a=N6(s);a&&a.length>0&&a.forEach(({nodeList:o,range:l})=>{if(l[0]===-1||l[1]===-1)return;let{left:h,top:d,width:c,height:f}=D2(o);if(!Number.isFinite(h)||!Number.isFinite(d)||!Number.isFinite(c)||!Number.isFinite(f))return;let m=this.createOuterFrameEl((h-r-this.mindMap.elRect.left-t.translateX)/t.scaleX,(d-n-this.mindMap.elRect.top-t.translateY)/t.scaleY,(c+r*2)/t.scaleX,(f+n*2)/t.scaleY,this.getStyle(o[0])),g=this.createText(m,s,l);this.textNodeList.push(g),this.renderText(this.getText(o[0]),m,g,s,l),m.on("click",x=>{x.stopPropagation(),this.setActiveOuterFrame(m,s,l,g)})})},()=>{},!0,0)}setActiveOuterFrame(e,t,r,n){this.mindMap.execCommand("CLEAR_ACTIVE_NODE"),this.clearActiveOuterFrame(),this.activeOuterFrame={el:e,node:t,range:r,textNode:n},e.stroke({dasharray:"none"}),this.getText(this.getNodeRangeFirstNode(t,r))||this.renderText(this.mindMap.opt.defaultOuterFrameText,e,n,t,r),this.mindMap.emit("outer_frame_active",e,t,r)}clearActiveOuterFrame(){if(!this.activeOuterFrame)return;let{el:e,textNode:t,node:r,range:n}=this.activeOuterFrame;e.stroke({dasharray:e.cacheStyle.dasharray||Ku.strokeDasharray}),this.hideEditTextBox(),this.getText(this.getNodeRangeFirstNode(r,n))||t.clear(),this.activeOuterFrame=null,this.mindMap.emit("outer_frame_deactivate")}getStyle(e){return{...Ku,...e.getData("outerFrame")||{}}}createOuterFrameEl(e,t,r,n,s={}){let a=this.draw.rect().size(r,n).x(e).y(t);return this.styleOuterFrame(a,s),a.cacheStyle={dasharray:s.strokeDasharray},this.outerFrameElList.push(a),a}styleOuterFrame(e,t){e.radius(t.radius).stroke({width:t.strokeWidth,color:t.strokeColor,dasharray:t.strokeDasharray}).fill({color:t.fill})}clearTextNodes(){this.textNodeList.forEach(e=>{e.remove()})}clearOuterFrameElList(){this.outerFrameElList.forEach(e=>{e.remove()}),this.outerFrameElList=[],this.activeOuterFrame=null}beforePluginRemove(){this.mindMap.deleteEditNodeClass(Xu),this.unBindEvent()}beforePluginDestroy(){this.mindMap.deleteEditNodeClass(Xu),this.unBindEvent()}};Wo.instanceName="outerFrame";Wo.defaultStyle=Ku;JE=Wo});var C6={};tt(C6,{default:()=>eS});var ah,eS,_6=T(()=>{pe();$e();ah=class{constructor(e){this.mindMap=e.mindMap,this.scrollbarWrapSize={width:0,height:0},this.chartHeight=0,this.chartWidth=0,this.reset(),this.bindEvent()}reset(){this.currentScrollType="",this.isMousedown=!1,this.mousedownPos={x:0,y:0},this.mousedownScrollbarPos=0}bindEvent(){this.onMousemove=this.onMousemove.bind(this),this.onMouseup=this.onMouseup.bind(this),this.updateScrollbar=this.updateScrollbar.bind(this),this.updateScrollbar=Si(this.updateScrollbar,16,this),this.mindMap.on("mousemove",this.onMousemove),this.mindMap.on("mouseup",this.onMouseup),this.mindMap.on("node_tree_render_end",this.updateScrollbar),this.mindMap.on("view_data_change",this.updateScrollbar),this.mindMap.on("resize",this.updateScrollbar)}unBindEvent(){this.mindMap.off("mousemove",this.onMousemove),this.mindMap.off("mouseup",this.onMouseup),this.mindMap.off("node_tree_render_end",this.updateScrollbar),this.mindMap.off("view_data_change",this.updateScrollbar),this.mindMap.off("resize",this.updateScrollbar)}updateScrollbar(){if(this.isMousedown)return;let e=this.calculationScrollbar();this.emitEvent(e)}emitEvent(e){this.mindMap.emit("scrollbar_change",e)}setScrollBarWrapSize(e,t){this.scrollbarWrapSize.width=e,this.scrollbarWrapSize.height=t}calculationScrollbar(){let e=this.mindMap.draw.rbox(),t=this.mindMap.elRect;e.x-=t.left,e.y-=t.top;let r=this.mindMap.height,n=r/2,s=e.height+n*2;this.chartHeight=s;let a=e.y-n,o=Math.min(r/s*100,100),l=-a/s*100;l<0&&(l=0),l>100-o&&(l=100-o);let h=this.mindMap.width,d=h/2,c=e.width+d*2;this.chartWidth=c;let f=e.x-d,m=Math.min(h/c*100,100),g=-f/c*100;return g<0&&(g=0),g>100-m&&(g=100-m),{vertical:{top:l,height:o},horizontal:{left:g,width:m}}}onMousedown(e,t){e.preventDefault(),e.stopPropagation(),this.currentScrollType=t,this.isMousedown=!0,this.mousedownPos={x:e.clientX,y:e.clientY};let r=window.getComputedStyle(e.target);t===k.SCROLL_BAR_DIR.VERTICAL?this.mousedownScrollbarPos=Number.parseFloat(r.top):this.mousedownScrollbarPos=Number.parseFloat(r.left)}onMousemove(e){if(this.isMousedown)if(e.preventDefault(),e.stopPropagation(),this.currentScrollType===k.SCROLL_BAR_DIR.VERTICAL){let t=e.clientY-this.mousedownPos.y+this.mousedownScrollbarPos;this.updateMindMapView(k.SCROLL_BAR_DIR.VERTICAL,t)}else{let t=e.clientX-this.mousedownPos.x+this.mousedownScrollbarPos;this.updateMindMapView(k.SCROLL_BAR_DIR.HORIZONTAL,t)}}onMouseup(){this.isMousedown=!1,this.reset()}updateMindMapView(e,t){let r=this.calculationScrollbar(),n=this.mindMap.draw.transform(),s=this.mindMap.draw.rbox(),a=this.mindMap.renderer.root.group.rbox(),o=this.mindMap.renderer.layout.getRootCenterOffset(a.width,a.height);if(e===k.SCROLL_BAR_DIR.VERTICAL){let l=t;l<=0&&(l=0);let h=(100-r.vertical.height)/100*this.scrollbarWrapSize.height;l>=h&&(l=h);let d=l/this.scrollbarWrapSize.height*100,c=-d/100*this.chartHeight,f=a.y-s.y,m=this.mindMap.height/2,g=c+f-m*n.scaleY+m-o.y*n.scaleY+(this.mindMap.height-this.mindMap.initHeight)/2*n.scaleY;this.mindMap.view.translateYTo(g),this.emitEvent({horizontal:r.horizontal,vertical:{top:d,height:r.vertical.height}})}else{let l=t;l<=0&&(l=0);let h=(100-r.horizontal.width)/100*this.scrollbarWrapSize.width;l>=h&&(l=h);let d=l/this.scrollbarWrapSize.width*100,c=-d/100*this.chartWidth,f=a.x-s.x,m=this.mindMap.width/2,g=c+f-m*n.scaleX+m-o.x*n.scaleX+(this.mindMap.width-this.mindMap.initWidth)/2*n.scaleX;this.mindMap.view.translateXTo(g),this.emitEvent({vertical:r.vertical,horizontal:{left:d,width:r.horizontal.width}})}}onClick(e,t){let r=0;t===k.SCROLL_BAR_DIR.VERTICAL?r=e.clientY-e.currentTarget.getBoundingClientRect().top:r=e.clientX-e.currentTarget.getBoundingClientRect().left,this.updateMindMapView(t,r)}beforePluginRemove(){this.unBindEvent()}beforePluginDestroy(){this.unBindEvent()}};ah.instanceName="scrollbar";eS=ah});var L6={};tt(L6,{default:()=>tS});var oh,tS,I6=T(()=>{pe();oh=class{constructor(e){this.mindMap=e.mindMap,this.isMousedown=!1,this.mousedownPos={x:0,y:0},this.startViewPos={x:0,y:0},this.currentState=null}calculationMiniMap(e,t){let{svg:r,rect:n,origWidth:s,origHeight:a,scaleX:o,scaleY:l}=this.mindMap.getSvgData({ignoreWatermark:!0}),h=this.mindMap.elRect;n.x-=h.left,n.x2-=h.left,n.y-=h.top,n.y2-=h.top;let d=e/t,c=0,f=0;d>n.ratio?(f=t,c=n.ratio*f):(c=e,f=c/n.ratio);let m=c/n.width,g=(e-c)/2,x=(t-f)/2,y=n.width*o,b=n.height*l,S=(y-n.width)/2,A=(b-n.height)/2,C=n.x-S,I=n.x2+S,O=n.y-A,q=n.y2+A,P={left:0,top:0,right:0,bottom:0};P.left=Math.max(0,-C/y*c)+g,P.right=Math.max(0,(I-s)/y*c)+g,P.top=Math.max(0,-O/b*f)+x,P.bottom=Math.max(0,(q-a)/b*f)+x,P.top>x+f&&(P.top=x+f),P.left>g+c&&(P.left=g+c),Object.keys(P).forEach(ne=>{P[ne]=P[ne]+"px"}),this.removeNodeContent(r);let W=r.svg();return this.currentState={viewBoxStyle:{...P},miniMapBoxScale:m,miniMapBoxLeft:g,miniMapBoxTop:x},{getImgUrl:async ne=>{let re=await this.mindMap.doExport.fixSvgStrAndToBlob(W);ne(re)},svgHTML:W,viewBoxStyle:P,miniMapBoxScale:m,miniMapBoxLeft:g,miniMapBoxTop:x}}removeNodeContent(e){if(e.hasClass("smm-node")){let r=e.findOne(".smm-node-shape"),n=r.attr("fill");(Oo(n)||mu(n))&&r.attr("fill",$0(this.mindMap.themeConfig)),e.clear(),e.add(r);return}let t=e.children();t&&t.length>0&&t.forEach(r=>{this.removeNodeContent(r)})}onMousedown(e){this.isMousedown=!0,this.mousedownPos={x:e.clientX,y:e.clientY};let t=this.mindMap.view.getTransformData();this.startViewPos={x:t.state.x,y:t.state.y}}onMousemove(e,t=5){if(!this.isMousedown||this.isViewBoxMousedown)return;let r=e.clientX-this.mousedownPos.x,n=e.clientY-this.mousedownPos.y;this.mindMap.view.translateXTo(r*t+this.startViewPos.x),this.mindMap.view.translateYTo(n*t+this.startViewPos.y)}onMouseup(){this.isMousedown=!1,this.isViewBoxMousedown=!1}onViewBoxMousedown(e){this.isViewBoxMousedown=!0,this.mousedownPos={x:e.clientX,y:e.clientY};let t=this.mindMap.view.getTransformData();this.startViewPos={x:t.state.x,y:t.state.y}}onViewBoxMousemove(e){if(!this.isViewBoxMousedown||!this.currentState||this.isMousedown)return;let t=e.clientX-this.mousedownPos.x,r=e.clientY-this.mousedownPos.y,{viewBoxStyle:n,miniMapBoxScale:s,miniMapBoxLeft:a,miniMapBoxTop:o}=this.currentState,l=Math.max(a,Number.parseFloat(n.left)+t),h=Math.max(a,Number.parseFloat(n.right)-t),d=Math.max(o,Number.parseFloat(n.top)+r),c=Math.max(o,Number.parseFloat(n.bottom)-r);this.mindMap.emit("mini_map_view_box_position_change",{left:l+"px",right:h+"px",top:d+"px",bottom:c+"px"}),this.mindMap.view.translateXTo(-t/s+this.startViewPos.x),this.mindMap.view.translateYTo(-r/s+this.startViewPos.y)}};oh.instanceName="miniMap";tS=oh});var z6={};tt(z6,{default:()=>iS});var lh,iS,R6=T(()=>{pe();lh=class{constructor({mindMap:e}){this.mindMap=e,this.isInPainter=!1,this.painterNode=null,this.bindEvent()}bindEvent(){this.painterOneNode=this.painterOneNode.bind(this),this.onEndPainter=this.onEndPainter.bind(this),this.mindMap.on("node_click",this.painterOneNode),this.mindMap.on("draw_click",this.onEndPainter)}unBindEvent(){this.mindMap.off("node_click",this.painterOneNode),this.mindMap.off("draw_click",this.onEndPainter)}startPainter(){if(this.mindMap.opt.readonly)return;let e=this.mindMap.renderer.activeNodeList;e.length<=0||(this.painterNode=e[0],this.isInPainter=!0,this.mindMap.emit("painter_start"))}endPainter(){this.painterNode=null,this.isInPainter=!1}onEndPainter(){this.isInPainter&&(this.endPainter(),this.mindMap.emit("painter_end"))}painterOneNode(e){if(!e||!this.isInPainter||!this.painterNode||!e||e.uid===this.painterNode.uid)return;let t={};this.mindMap.opt.onlyPainterNodeCustomStyles||(t={...this.painterNode.effectiveStyles});let r=this.painterNode.getData();Object.keys(r).forEach(n=>{hs(n)&&(t[n]=r[n])}),this.mindMap.renderer._handleRemoveCustomStyles(e.getData()),e.setStyles(t)}beforePluginRemove(){this.unBindEvent()}beforePluginDestroy(){this.unBindEvent()}};lh.instanceName="painter";iS=lh});function lS(i){return String(i).replace(oS,e=>aS[e])}function uS(i){if(i.default)return i.default;var e=i.type,t=Array.isArray(e)?e[0]:e;if(typeof t!="string")return t.enum[0];switch(t){case"boolean":return!1;case"string":return"";case"number":return 0;case"object":return{}}}function vS(i){for(var e=0;e=n[0]&&i<=n[1])return t.name}return null}function f4(i){for(var e=0;e=wh[e]&&i<=wh[e+1])return!0;return!1}function _S(i,e){dr[i]=e}function T1(i,e,t){if(!dr[e])throw new Error("Font metrics not found for font: "+e+".");var r=i.charCodeAt(0),n=dr[e][r];if(!n&&i[0]in O6&&(r=O6[i[0]].charCodeAt(0),n=dr[e][r]),!n&&t==="text"&&f4(r)&&(n=dr[e][77]),n)return{depth:n[0],height:n[1],italic:n[2],skew:n[3],width:n[4]}}function LS(i){var e;if(i>=5?e=0:i>=3?e=1:e=2,!Zu[e]){var t=Zu[e]={cssEmPerMu:hh.quad[e]/18};for(var r in hh)hh.hasOwnProperty(r)&&(t[r]=hh[r][e])}return Zu[e]}function F6(i){if(i instanceof ei)return i;throw new Error("Expected symbolNode but got "+String(i)+".")}function OS(i){if(i instanceof ps)return i;throw new Error("Expected span but got "+String(i)+".")}function u(i,e,t,r,n,s){Oe[i][n]={font:e,group:t,replace:r},s&&r&&(Oe[i][r]=Oe[i][n])}function Z(i){for(var{type:e,names:t,props:r,handler:n,htmlBuilder:s,mathmlBuilder:a}=i,o={type:e,numArgs:r.numArgs,argTypes:r.argTypes,allowedInArgument:!!r.allowedInArgument,allowedInText:!!r.allowedInText,allowedInMath:r.allowedInMath===void 0?!0:r.allowedInMath,numOptionalArgs:r.numOptionalArgs||0,infix:!!r.infix,primitive:!!r.primitive,handler:n},l=0;l0&&(s.push(gh(a,e)),a=[]),s.push(r[o]));a.length>0&&s.push(gh(a,e));var h;t?(h=gh(ct(t,e,!0)),h.classes=["tag"],s.push(h)):n&&s.push(n);var d=zr(["katex-html"],s);if(d.setAttribute("aria-hidden","true"),h){var c=h.children[0];c.style.height=V(d.height+d.depth),d.depth&&(c.style.verticalAlign=V(-d.depth))}return d}function E4(i){return new ms(i)}function e1(i){if(!i)return!1;if(i.type==="mi"&&i.children.length===1){var e=i.children[0];return e instanceof ki&&e.text==="."}else if(i.type==="mo"&&i.children.length===1&&i.getAttribute("separator")==="true"&&i.getAttribute("lspace")==="0em"&&i.getAttribute("rspace")==="0em"){var t=i.children[0];return t instanceof ki&&t.text===","}else return!1}function j6(i,e,t,r,n){var s=ti(i,t),a;s.length===1&&s[0]instanceof Bt&&["mrow","mtable"].includes(s[0].type)?a=s[0]:a=new $.MathNode("mrow",s);var o=new $.MathNode("annotation",[new $.TextNode(e)]);o.setAttribute("encoding","application/x-tex");var l=new $.MathNode("semantics",[a,o]),h=new $.MathNode("math",[l]);h.setAttribute("xmlns","http://www.w3.org/1998/Math/MathML"),r&&h.setAttribute("display","block");var d=n?"katex":"katex-mathml";return z.makeSpan([d],[h])}function me(i,e){if(!i||i.type!==e)throw new Error("Expected node of type "+e+", but got "+(i?"node of type "+i.type:String(i)));return i}function A1(i){var e=Ih(i);if(!e)throw new Error("Expected node of symbol group type, but got "+(i?"node of type "+i.type:String(i)));return e}function Ih(i){return i&&(i.type==="atom"||PS.hasOwnProperty(i.type))?i:null}function C4(i,e){var t=ct(i.body,e,!0);return mA([i.mclass],t,e)}function _4(i,e){var t,r=ti(i.body,e);return i.mclass==="minner"?t=new $.MathNode("mpadded",r):i.mclass==="mord"?i.isCharacterBox?(t=r[0],t.type="mi"):t=new $.MathNode("mi",r):(i.isCharacterBox?(t=r[0],t.type="mo"):t=new $.MathNode("mo",r),i.mclass==="mbin"?(t.attributes.lspace="0.22em",t.attributes.rspace="0.22em"):i.mclass==="mpunct"?(t.attributes.lspace="0em",t.attributes.rspace="0.17em"):i.mclass==="mopen"||i.mclass==="mclose"?(t.attributes.lspace="0em",t.attributes.rspace="0em"):i.mclass==="minner"&&(t.attributes.lspace="0.0556em",t.attributes.width="+0.1111em")),t}function xA(i,e,t){var r=pA[i];switch(r){case"\\\\cdrightarrow":case"\\\\cdleftarrow":return t.callFunction(r,[e[0]],[e[1]]);case"\\uparrow":case"\\downarrow":{var n=t.callFunction("\\\\cdleft",[e[0]],[]),s={type:"atom",text:r,mode:"math",family:"rel"},a=t.callFunction("\\Big",[s],[]),o=t.callFunction("\\\\cdright",[e[1]],[]),l={type:"ordgroup",mode:"math",body:[n,a,o]};return t.callFunction("\\\\cdparent",[l],[])}case"\\\\cdlongequal":return t.callFunction("\\\\cdlongequal",[],[]);case"\\Vert":{var h={type:"textord",text:"\\Vert",mode:"math"};return t.callFunction("\\Big",[h],[])}default:return{type:"textord",text:" ",mode:"math"}}}function yA(i){var e=[];for(i.gullet.beginGroup(),i.gullet.macros.set("\\cr","\\\\\\relax"),i.gullet.beginGroup();;){e.push(i.parseExpression(!1,"\\\\")),i.gullet.endGroup(),i.gullet.beginGroup();var t=i.fetch().text;if(t==="&"||t==="\\\\")i.consume();else if(t==="\\end"){e[e.length-1].length===0&&e.pop();break}else throw new G("Expected \\\\ or \\cr or \\end",i.nextToken)}for(var r=[],n=[r],s=0;s-1))if("<>AV".indexOf(h)>-1)for(var c=0;c<2;c++){for(var f=!0,m=l+1;mAV=|." after @',a[l]);var g=xA(h,d,i),x={type:"styling",body:[g],mode:"math",style:"display"};r.push(x),o=G6()}s%2===0?r.push(o):r.shift(),r=[],n.push(r)}i.gullet.endGroup(),i.gullet.endGroup();var y=new Array(n[0].length).fill({type:"align",align:"c",pregap:.25,postgap:.25});return{type:"array",mode:"math",body:n,arraystretch:1,addJot:!0,rowGaps:[null],cols:y,colSeparationType:"CD",hLinesBeforeRow:new Array(n.length+1).fill([])}}function Rh(i,e){var t=Ih(i);if(t&&LA.includes(t.text))return t;throw t?new G("Invalid delimiter '"+t.text+"' after '"+e.funcName+"'",i):new G("Invalid delimiter type '"+i.type+"'",i)}function Y6(i){if(!i.body)throw new Error("Bug: The leftright ParseNode wasn't fully parsed.")}function ur(i){for(var{type:e,names:t,props:r,handler:n,htmlBuilder:s,mathmlBuilder:a}=i,o={type:e,numArgs:r.numArgs||0,allowedInText:!1,numOptionalArgs:0,handler:n},l=0;l1||!d)&&x.pop(),b.length{Jt=class i{constructor(e,t,r){this.lexer=void 0,this.start=void 0,this.end=void 0,this.lexer=e,this.start=t,this.end=r}static range(e,t){return t?!e||!e.loc||!t.loc||e.loc.lexer!==t.loc.lexer?null:new i(e.loc.lexer,e.loc.start,t.loc.end):e&&e.loc}},ui=class i{constructor(e,t){this.text=void 0,this.loc=void 0,this.noexpand=void 0,this.treatAsRelax=void 0,this.text=e,this.loc=t}range(e,t){return new i(t,Jt.range(this,e))}},G=class i{constructor(e,t){this.name=void 0,this.position=void 0,this.length=void 0,this.rawMessage=void 0;var r="KaTeX parse error: "+e,n,s,a=t&&t.loc;if(a&&a.start<=a.end){var o=a.lexer.input;n=a.start,s=a.end,n===o.length?r+=" at end of input: ":r+=" at position "+(n+1)+": ";var l=o.slice(n,s).replace(/[^]/g,"$&\u0332"),h;n>15?h="\u2026"+o.slice(n-15,n):h=o.slice(0,n);var d;s+15":">","<":"<",'"':""","'":"'"},oS=/[&><"']/g;u4=function i(e){return e.type==="ordgroup"||e.type==="color"?e.body.length===1?i(e.body[0]):e:e.type==="font"?i(e.body):e},hS=function(e){var t=u4(e);return t.type==="mathord"||t.type==="textord"||t.type==="atom"},dS=function(e){if(!e)throw new Error("Expected non-null, but got "+String(e));return e},cS=function(e){var t=/^[\x00-\x20]*([^\\/#?]*?)(:|�*58|�*3a|&colon)/i.exec(e);return t?t[2]!==":"||!/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(t[1])?null:t[1].toLowerCase():"_relative"},Ne={deflt:rS,escape:lS,hyphenate:sS,getBaseElem:u4,isCharacterBox:hS,protocolFromUrl:cS},bh={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:i=>"#"+i},macros:{type:"object",cli:"-m, --macro ",cliDescription:"Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:(i,e)=>(e.push(i),e)},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:i=>Math.max(0,i),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:i=>Math.max(0,i),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:i=>Math.max(0,i),cli:"-e, --max-expand ",cliProcessor:i=>i==="Infinity"?1/0:parseInt(i)},globalGroup:{type:"boolean",cli:!1}};Qo=class{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 t in bh)if(bh.hasOwnProperty(t)){var r=bh[t];this[t]=e[t]!==void 0?r.processor?r.processor(e[t]):e[t]:uS(r)}}reportNonstrict(e,t,r){var n=this.strict;if(typeof n=="function"&&(n=n(e,t,r)),!(!n||n==="ignore")){if(n===!0||n==="error")throw new G("LaTeX-incompatible input and strict mode is set to 'error': "+(t+" ["+e+"]"),r);n==="warn"?typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(t+" ["+e+"]")):typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+n+"': "+t+" ["+e+"]"))}}useStrictBehavior(e,t,r){var n=this.strict;if(typeof n=="function")try{n=n(e,t,r)}catch{n="error"}return!n||n==="ignore"?!1:n===!0||n==="error"?!0:n==="warn"?(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(t+" ["+e+"]")),!1):(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+n+"': "+t+" ["+e+"]")),!1)}isTrusted(e){if(e.url&&!e.protocol){var t=Ne.protocolFromUrl(e.url);if(t==null)return!1;e.protocol=t}var r=typeof this.trust=="function"?this.trust(e):this.trust;return!!r}},lr=class{constructor(e,t,r){this.id=void 0,this.size=void 0,this.cramped=void 0,this.id=e,this.size=t,this.cramped=r}sup(){return hr[fS[this.id]]}sub(){return hr[mS[this.id]]}fracNum(){return hr[pS[this.id]]}fracDen(){return hr[gS[this.id]]}cramp(){return hr[xS[this.id]]}text(){return hr[yS[this.id]]}isTight(){return this.size>=2}},M1=0,Mh=1,ua=2,Lr=3,Jo=4,Ai=5,fa=6,Pt=7,hr=[new lr(M1,0,!1),new lr(Mh,0,!0),new lr(ua,1,!1),new lr(Lr,1,!0),new lr(Jo,2,!1),new lr(Ai,2,!0),new lr(fa,3,!1),new lr(Pt,3,!0)],fS=[Jo,Ai,Jo,Ai,fa,Pt,fa,Pt],mS=[Ai,Ai,Ai,Ai,Pt,Pt,Pt,Pt],pS=[ua,Lr,Jo,Ai,fa,Pt,fa,Pt],gS=[Lr,Lr,Ai,Ai,Pt,Pt,Pt,Pt],xS=[Mh,Mh,Lr,Lr,Ai,Ai,Pt,Pt],yS=[M1,Mh,ua,Lr,ua,Lr,ua,Lr],ae={DISPLAY:hr[M1],TEXT:hr[ua],SCRIPT:hr[Jo],SCRIPTSCRIPT:hr[fa]},d1=[{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]]}];wh=[];d1.forEach(i=>i.blocks.forEach(e=>wh.push(...e)));ca=80,bS=function(e,t){return"M95,"+(622+e+t)+` 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 @@ -90,7 +90,7 @@ 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)+" "+t+"h400000v"+(40+e)+"h-400000z"},aN=function(e,t){return"M263,"+(601+e+t)+`c0.7,0,18,39.7,52,119 +M`+(834+e)+" "+t+"h400000v"+(40+e)+"h-400000z"},wS=function(e,t){return"M263,"+(601+e+t)+`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+` @@ -100,7 +100,7 @@ s-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5, 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)+" "+t+"h400000v"+(40+e)+"h-400000z"},oN=function(e,t){return"M983 "+(10+e+t)+` +M`+(1001+e)+" "+t+"h400000v"+(40+e)+"h-400000z"},MS=function(e,t){return"M983 "+(10+e+t)+` 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 @@ -109,7 +109,7 @@ 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)+" "+t+"h400000v"+(40+e)+"h-400000z"},lN=function(e,t){return"M424,"+(2398+e+t)+` +M`+(1001+e)+" "+t+"h400000v"+(40+e)+"h-400000z"},TS=function(e,t){return"M424,"+(2398+e+t)+` 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 @@ -119,18 +119,18 @@ 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)+" "+t+` -h400000v`+(40+e)+"h-400000z"},hN=function(e,t){return"M473,"+(2713+e+t)+` +h400000v`+(40+e)+"h-400000z"},NS=function(e,t){return"M473,"+(2713+e+t)+` 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)+" "+t+"h400000v"+(40+e)+"H1017.7z"},dN=function(e){var t=e/2;return"M400000 "+e+" H0 L"+t+" 0 l65 45 L145 "+(e-80)+" H400000z"},cN=function(e,t,r){var n=r-54-t-e;return"M702 "+(e+t)+"H400000"+(40+e)+` +606zM`+(1001+e)+" "+t+"h400000v"+(40+e)+"H1017.7z"},ES=function(e){var t=e/2;return"M400000 "+e+" H0 L"+t+" 0 l65 45 L145 "+(e-80)+" H400000z"},SS=function(e,t,r){var n=r-54-t-e;return"M702 "+(e+t)+"H400000"+(40+e)+` H742v`+n+`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 `+t+"H400000v"+(40+e)+"H742z"},uN=function(e,t,r){t=1e3*t;var n="";switch(e){case"sqrtMain":n=sN(t,Rs);break;case"sqrtSize1":n=aN(t,Rs);break;case"sqrtSize2":n=oN(t,Rs);break;case"sqrtSize3":n=lN(t,Rs);break;case"sqrtSize4":n=hN(t,Rs);break;case"sqrtTall":n=cN(t,Rs,r)}return n},fN=function(e,t){switch(e){case"\u239C":return"M291 0 H417 V"+t+" H291z M291 0 H417 V"+t+" H291z";case"\u2223":return"M145 0 H188 V"+t+" H145z M145 0 H188 V"+t+" H145z";case"\u2225":return"M145 0 H188 V"+t+" H145z M145 0 H188 V"+t+" H145z"+("M367 0 H410 V"+t+" H367z M367 0 H410 V"+t+" H367z");case"\u239F":return"M457 0 H583 V"+t+" H457z M457 0 H583 V"+t+" H457z";case"\u23A2":return"M319 0 H403 V"+t+" H319z M319 0 H403 V"+t+" H319z";case"\u23A5":return"M263 0 H347 V"+t+" H263z M263 0 H347 V"+t+" H263z";case"\u23AA":return"M384 0 H504 V"+t+" H384z M384 0 H504 V"+t+" H384z";case"\u23D0":return"M312 0 H355 V"+t+" H312z M312 0 H355 V"+t+" H312z";case"\u2016":return"M257 0 H300 V"+t+" H257z M257 0 H300 V"+t+" H257z"+("M478 0 H521 V"+t+" H478z M478 0 H521 V"+t+" H478z");default:return""}},i2={doubleleftarrow:`M262 157 +219 661 l218 661zM702 `+t+"H400000v"+(40+e)+"H742z"},AS=function(e,t,r){t=1e3*t;var n="";switch(e){case"sqrtMain":n=bS(t,ca);break;case"sqrtSize1":n=wS(t,ca);break;case"sqrtSize2":n=MS(t,ca);break;case"sqrtSize3":n=TS(t,ca);break;case"sqrtSize4":n=NS(t,ca);break;case"sqrtTall":n=SS(t,ca,r)}return n},kS=function(e,t){switch(e){case"\u239C":return"M291 0 H417 V"+t+" H291z M291 0 H417 V"+t+" H291z";case"\u2223":return"M145 0 H188 V"+t+" H145z M145 0 H188 V"+t+" H145z";case"\u2225":return"M145 0 H188 V"+t+" H145z M145 0 H188 V"+t+" H145z"+("M367 0 H410 V"+t+" H367z M367 0 H410 V"+t+" H367z");case"\u239F":return"M457 0 H583 V"+t+" H457z M457 0 H583 V"+t+" H457z";case"\u23A2":return"M319 0 H403 V"+t+" H319z M319 0 H403 V"+t+" H319z";case"\u23A5":return"M263 0 H347 V"+t+" H263z M263 0 H347 V"+t+" H263z";case"\u23AA":return"M384 0 H504 V"+t+" H384z M384 0 H504 V"+t+" H384z";case"\u23D0":return"M312 0 H355 V"+t+" H312z M312 0 H355 V"+t+" H312z";case"\u2016":return"M257 0 H300 V"+t+" H257z M257 0 H300 V"+t+" H257z"+("M478 0 H521 V"+t+" H478z M478 0 H521 V"+t+" H478z");default:return""}},D6={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 @@ -305,7 +305,7 @@ M93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z` 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`},mN=function(e,t){switch(e){case"lbrack":return"M403 1759 V84 H666 V0 H319 V1759 v"+t+` v1759 h347 v-84 +M500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z`},CS=function(e,t){switch(e){case"lbrack":return"M403 1759 V84 H666 V0 H319 V1759 v"+t+` v1759 h347 v-84 H403z M403 1759 V0 H319 V1759 v`+t+" v1759 h84z";case"rbrack":return"M347 1759 V0 H0 V84 H263 V1759 v"+t+` v1759 H0 v84 H347z M347 1759 V0 H263 V1759 v`+t+" v1759 h84z";case"vert":return"M145 15 v585 v"+t+` v585 c2.667,10,9.667,15,21,15 c10,0,16.667,-5,20,-15 v-585 v`+-t+` v-585 c-2.667,-10,-9.667,-15,-21,-15 @@ -333,61 +333,61 @@ 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 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,-`+(t+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.")}},$n=class{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(),t=0;tt.toText();return this.children.map(e).join("")}},Yi={"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]}},b0={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]},r2={\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"};Kc={};xN=[[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]],n2=[.5,.6,.7,.8,.9,1,1.2,1.44,1.728,2.074,2.488],s2=function(e,t){return t.size<2?e:xN[e-1][t.size-1]},R0=class i{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||i.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=n2[this.size-1],this.maxSize=e.maxSize,this.minRuleThickness=e.minRuleThickness,this._fontMetrics=void 0}extend(e){var t={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 r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);return new i(t)}havingStyle(e){return this.style===e?this:this.extend({style:e,size:s2(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:n2[e-1]})}havingBaseStyle(e){e=e||this.style.text();var t=s2(i.BASESIZE,e);return this.size===t&&this.textSize===i.BASESIZE&&this.style===e?this:this.extend({style:e,size:t})}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!==i.BASESIZE?["sizing","reset-size"+this.size,"size"+i.BASESIZE]:[]}fontMetrics(){return this._fontMetrics||(this._fontMetrics=gN(this.size)),this._fontMetrics}getColor(){return this.phantom?"transparent":this.color}};R0.BASESIZE=6;du={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},vN={ex:!0,em:!0,mu:!0},D2=function(e){return typeof e!="string"&&(e=e.unit),e in du||e in vN||e==="ex"},He=function(e,t){var r;if(e.unit in du)r=du[e.unit]/t.fontMetrics().ptPerEm/t.sizeMultiplier;else if(e.unit==="mu")r=t.fontMetrics().cssEmPerMu;else{var n;if(t.style.isTight()?n=t.havingStyle(t.style.text()):n=t,e.unit==="ex")r=n.fontMetrics().xHeight;else if(e.unit==="em")r=n.fontMetrics().quad;else throw new U("Invalid unit: '"+e.unit+"'");n!==t&&(r*=n.sizeMultiplier/t.sizeMultiplier)}return Math.min(e.number*r,t.maxSize)},j=function(e){return+e.toFixed(4)+"em"},Zr=function(e){return e.filter(t=>t).join(" ")},O2=function(e,t,r){if(this.classes=e||[],this.attributes={},this.height=0,this.depth=0,this.maxFontSize=0,this.style=r||{},t){t.style.isTight()&&this.classes.push("mtight");var n=t.getColor();n&&(this.style.color=n)}},B2=function(e){var t=document.createElement(e);t.className=Zr(this.classes);for(var r in this.style)this.style.hasOwnProperty(r)&&(t.style[r]=this.style[r]);for(var n in this.attributes)this.attributes.hasOwnProperty(n)&&t.setAttribute(n,this.attributes[n]);for(var s=0;s/=\x00-\x1f]/,P2=function(e){var t="<"+e;this.classes.length&&(t+=' class="'+ve.escape(Zr(this.classes))+'"');var r="";for(var n in this.style)this.style.hasOwnProperty(n)&&(r+=ve.hyphenate(n)+":"+this.style[n]+";");r&&(t+=' style="'+ve.escape(r)+'"');for(var s in this.attributes)if(this.attributes.hasOwnProperty(s)){if(yN.test(s))throw new U("Invalid attribute name '"+s+"'");t+=" "+s+'="'+ve.escape(this.attributes[s])+'"'}t+=">";for(var a=0;a",t},jn=class{constructor(e,t,r,n){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,O2.call(this,e,r,n),this.children=t||[]}setAttribute(e,t){this.attributes[e]=t}hasClass(e){return this.classes.includes(e)}toNode(){return B2.call(this,"span")}toMarkup(){return P2.call(this,"span")}},To=class{constructor(e,t,r,n){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,O2.call(this,t,n),this.children=r||[],this.setAttribute("href",e)}setAttribute(e,t){this.attributes[e]=t}hasClass(e){return this.classes.includes(e)}toNode(){return B2.call(this,"a")}toMarkup(){return P2.call(this,"a")}},cu=class{constructor(e,t,r){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=t,this.src=e,this.classes=["mord"],this.style=r}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 t in this.style)this.style.hasOwnProperty(t)&&(e.style[t]=this.style[t]);return e}toMarkup(){var e=''+ve.escape(this.alt)+'0&&(t=document.createElement("span"),t.style.marginRight=j(this.italic)),this.classes.length>0&&(t=t||document.createElement("span"),t.className=Zr(this.classes));for(var r in this.style)this.style.hasOwnProperty(r)&&(t=t||document.createElement("span"),t.style[r]=this.style[r]);return t?(t.appendChild(e),t):e}toMarkup(){var e=!1,t="0&&(r+="margin-right:"+this.italic+"em;");for(var n in this.style)this.style.hasOwnProperty(n)&&(r+=ve.hyphenate(n)+":"+this.style[n]+";");r&&(e=!0,t+=' style="'+ve.escape(r)+'"');var s=ve.escape(this.text);return e?(t+=">",t+=s,t+="",t):s}},Ri=class{constructor(e,t){this.children=void 0,this.attributes=void 0,this.children=e||[],this.attributes=t||{}}toNode(){var e="http://www.w3.org/2000/svg",t=document.createElementNS(e,"svg");for(var r in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,r)&&t.setAttribute(r,this.attributes[r]);for(var n=0;n':''}},No=class{constructor(e){this.attributes=void 0,this.attributes=e||{}}toNode(){var e="http://www.w3.org/2000/svg",t=document.createElementNS(e,"line");for(var r in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,r)&&t.setAttribute(r,this.attributes[r]);return t}toMarkup(){var e="","\\gt",!0);u(p,y,N,"\u2208","\\in",!0);u(p,y,N,"\uE020","\\@not");u(p,y,N,"\u2282","\\subset",!0);u(p,y,N,"\u2283","\\supset",!0);u(p,y,N,"\u2286","\\subseteq",!0);u(p,y,N,"\u2287","\\supseteq",!0);u(p,T,N,"\u2288","\\nsubseteq",!0);u(p,T,N,"\u2289","\\nsupseteq",!0);u(p,y,N,"\u22A8","\\models");u(p,y,N,"\u2190","\\leftarrow",!0);u(p,y,N,"\u2264","\\le");u(p,y,N,"\u2264","\\leq",!0);u(p,y,N,"<","\\lt",!0);u(p,y,N,"\u2192","\\rightarrow",!0);u(p,y,N,"\u2192","\\to");u(p,T,N,"\u2271","\\ngeq",!0);u(p,T,N,"\u2270","\\nleq",!0);u(p,y,xr,"\xA0","\\ ");u(p,y,xr,"\xA0","\\space");u(p,y,xr,"\xA0","\\nobreakspace");u(B,y,xr,"\xA0","\\ ");u(B,y,xr,"\xA0"," ");u(B,y,xr,"\xA0","\\space");u(B,y,xr,"\xA0","\\nobreakspace");u(p,y,xr,null,"\\nobreak");u(p,y,xr,null,"\\allowbreak");u(p,y,H0,",",",");u(p,y,H0,";",";");u(p,T,Q,"\u22BC","\\barwedge",!0);u(p,T,Q,"\u22BB","\\veebar",!0);u(p,y,Q,"\u2299","\\odot",!0);u(p,y,Q,"\u2295","\\oplus",!0);u(p,y,Q,"\u2297","\\otimes",!0);u(p,y,k,"\u2202","\\partial",!0);u(p,y,Q,"\u2298","\\oslash",!0);u(p,T,Q,"\u229A","\\circledcirc",!0);u(p,T,Q,"\u22A1","\\boxdot",!0);u(p,y,Q,"\u25B3","\\bigtriangleup");u(p,y,Q,"\u25BD","\\bigtriangledown");u(p,y,Q,"\u2020","\\dagger");u(p,y,Q,"\u22C4","\\diamond");u(p,y,Q,"\u22C6","\\star");u(p,y,Q,"\u25C3","\\triangleleft");u(p,y,Q,"\u25B9","\\triangleright");u(p,y,ri,"{","\\{");u(B,y,k,"{","\\{");u(B,y,k,"{","\\textbraceleft");u(p,y,At,"}","\\}");u(B,y,k,"}","\\}");u(B,y,k,"}","\\textbraceright");u(p,y,ri,"{","\\lbrace");u(p,y,At,"}","\\rbrace");u(p,y,ri,"[","\\lbrack",!0);u(B,y,k,"[","\\lbrack",!0);u(p,y,At,"]","\\rbrack",!0);u(B,y,k,"]","\\rbrack",!0);u(p,y,ri,"(","\\lparen",!0);u(p,y,At,")","\\rparen",!0);u(B,y,k,"<","\\textless",!0);u(B,y,k,">","\\textgreater",!0);u(p,y,ri,"\u230A","\\lfloor",!0);u(p,y,At,"\u230B","\\rfloor",!0);u(p,y,ri,"\u2308","\\lceil",!0);u(p,y,At,"\u2309","\\rceil",!0);u(p,y,k,"\\","\\backslash");u(p,y,k,"\u2223","|");u(p,y,k,"\u2223","\\vert");u(B,y,k,"|","\\textbar",!0);u(p,y,k,"\u2225","\\|");u(p,y,k,"\u2225","\\Vert");u(B,y,k,"\u2225","\\textbardbl");u(B,y,k,"~","\\textasciitilde");u(B,y,k,"\\","\\textbackslash");u(B,y,k,"^","\\textasciicircum");u(p,y,N,"\u2191","\\uparrow",!0);u(p,y,N,"\u21D1","\\Uparrow",!0);u(p,y,N,"\u2193","\\downarrow",!0);u(p,y,N,"\u21D3","\\Downarrow",!0);u(p,y,N,"\u2195","\\updownarrow",!0);u(p,y,N,"\u21D5","\\Updownarrow",!0);u(p,y,Ke,"\u2210","\\coprod");u(p,y,Ke,"\u22C1","\\bigvee");u(p,y,Ke,"\u22C0","\\bigwedge");u(p,y,Ke,"\u2A04","\\biguplus");u(p,y,Ke,"\u22C2","\\bigcap");u(p,y,Ke,"\u22C3","\\bigcup");u(p,y,Ke,"\u222B","\\int");u(p,y,Ke,"\u222B","\\intop");u(p,y,Ke,"\u222C","\\iint");u(p,y,Ke,"\u222D","\\iiint");u(p,y,Ke,"\u220F","\\prod");u(p,y,Ke,"\u2211","\\sum");u(p,y,Ke,"\u2A02","\\bigotimes");u(p,y,Ke,"\u2A01","\\bigoplus");u(p,y,Ke,"\u2A00","\\bigodot");u(p,y,Ke,"\u222E","\\oint");u(p,y,Ke,"\u222F","\\oiint");u(p,y,Ke,"\u2230","\\oiiint");u(p,y,Ke,"\u2A06","\\bigsqcup");u(p,y,Ke,"\u222B","\\smallint");u(B,y,Bs,"\u2026","\\textellipsis");u(p,y,Bs,"\u2026","\\mathellipsis");u(B,y,Bs,"\u2026","\\ldots",!0);u(p,y,Bs,"\u2026","\\ldots",!0);u(p,y,Bs,"\u22EF","\\@cdots",!0);u(p,y,Bs,"\u22F1","\\ddots",!0);u(p,y,k,"\u22EE","\\varvdots");u(B,y,k,"\u22EE","\\varvdots");u(p,y,Be,"\u02CA","\\acute");u(p,y,Be,"\u02CB","\\grave");u(p,y,Be,"\xA8","\\ddot");u(p,y,Be,"~","\\tilde");u(p,y,Be,"\u02C9","\\bar");u(p,y,Be,"\u02D8","\\breve");u(p,y,Be,"\u02C7","\\check");u(p,y,Be,"^","\\hat");u(p,y,Be,"\u20D7","\\vec");u(p,y,Be,"\u02D9","\\dot");u(p,y,Be,"\u02DA","\\mathring");u(p,y,te,"\uE131","\\@imath");u(p,y,te,"\uE237","\\@jmath");u(p,y,k,"\u0131","\u0131");u(p,y,k,"\u0237","\u0237");u(B,y,k,"\u0131","\\i",!0);u(B,y,k,"\u0237","\\j",!0);u(B,y,k,"\xDF","\\ss",!0);u(B,y,k,"\xE6","\\ae",!0);u(B,y,k,"\u0153","\\oe",!0);u(B,y,k,"\xF8","\\o",!0);u(B,y,k,"\xC6","\\AE",!0);u(B,y,k,"\u0152","\\OE",!0);u(B,y,k,"\xD8","\\O",!0);u(B,y,Be,"\u02CA","\\'");u(B,y,Be,"\u02CB","\\`");u(B,y,Be,"\u02C6","\\^");u(B,y,Be,"\u02DC","\\~");u(B,y,Be,"\u02C9","\\=");u(B,y,Be,"\u02D8","\\u");u(B,y,Be,"\u02D9","\\.");u(B,y,Be,"\xB8","\\c");u(B,y,Be,"\u02DA","\\r");u(B,y,Be,"\u02C7","\\v");u(B,y,Be,"\xA8",'\\"');u(B,y,Be,"\u02DD","\\H");u(B,y,Be,"\u25EF","\\textcircled");F2={"--":!0,"---":!0,"``":!0,"''":!0};u(B,y,k,"\u2013","--",!0);u(B,y,k,"\u2013","\\textendash");u(B,y,k,"\u2014","---",!0);u(B,y,k,"\u2014","\\textemdash");u(B,y,k,"\u2018","`",!0);u(B,y,k,"\u2018","\\textquoteleft");u(B,y,k,"\u2019","'",!0);u(B,y,k,"\u2019","\\textquoteright");u(B,y,k,"\u201C","``",!0);u(B,y,k,"\u201C","\\textquotedblleft");u(B,y,k,"\u201D","''",!0);u(B,y,k,"\u201D","\\textquotedblright");u(p,y,k,"\xB0","\\degree",!0);u(B,y,k,"\xB0","\\degree");u(B,y,k,"\xB0","\\textdegree",!0);u(p,y,k,"\xA3","\\pounds");u(p,y,k,"\xA3","\\mathsterling",!0);u(B,y,k,"\xA3","\\pounds");u(B,y,k,"\xA3","\\textsterling",!0);u(p,T,k,"\u2720","\\maltese");u(B,T,k,"\u2720","\\maltese");o2='0123456789/@."';for(w0=0;w00)return Ii(s,h,n,t,a.concat(d));if(l){var c,f;if(l==="boldsymbol"){var m=SN(s,n,t,a,r);c=m.fontName,f=[m.fontClass]}else o?(c=U2[l].fontName,f=[l]):(c=S0(l,t.fontWeight,t.fontShape),f=[l,t.fontWeight,t.fontShape]);if(U0(s,c,n).metrics)return Ii(s,c,n,t,a.concat(f));if(F2.hasOwnProperty(s)&&c.slice(0,10)==="Typewriter"){for(var g=[],x=0;x{if(Zr(i.classes)!==Zr(e.classes)||i.skew!==e.skew||i.maxFontSize!==e.maxFontSize)return!1;if(i.classes.length===1){var t=i.classes[0];if(t==="mbin"||t==="mord")return!1}for(var r in i.style)if(i.style.hasOwnProperty(r)&&i.style[r]!==e.style[r])return!1;for(var n in e.style)if(e.style.hasOwnProperty(n)&&i.style[n]!==e.style[n])return!1;return!0},CN=i=>{for(var e=0;et&&(t=a.height),a.depth>r&&(r=a.depth),a.maxFontSize>n&&(n=a.maxFontSize)}e.height=t,e.depth=r,e.maxFontSize=n},Ht=function(e,t,r,n){var s=new jn(e,t,r,n);return Tu(s),s},q2=(i,e,t,r)=>new jn(i,e,t,r),_N=function(e,t,r){var n=Ht([e],[],t);return n.height=Math.max(r||t.fontMetrics().defaultRuleThickness,t.minRuleThickness),n.style.borderBottomWidth=j(n.height),n.maxFontSize=1,n},LN=function(e,t,r,n){var s=new To(e,t,r,n);return Tu(s),s},H2=function(e){var t=new $n(e);return Tu(t),t},zN=function(e,t){return e instanceof $n?Ht([],[e],t):e},IN=function(e){if(e.positionType==="individualShift"){for(var t=e.children,r=[t[0]],n=-t[0].shift-t[0].elem.depth,s=n,a=1;a{var t=Ht(["mspace"],[],e),r=He(i,e);return t.style.marginRight=j(r),t},S0=function(e,t,r){var n="";switch(e){case"amsrm":n="AMS";break;case"textrm":n="Main";break;case"textsf":n="SansSerif";break;case"texttt":n="Typewriter";break;default:n=e}var s;return t==="textbf"&&r==="textit"?s="BoldItalic":t==="textbf"?s="Bold":t==="textit"?s="Italic":s="Regular",n+"-"+s},U2={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"}},$2={vec:["vec",.471,.714],oiintSize1:["oiintSize1",.957,.499],oiintSize2:["oiintSize2",1.472,.659],oiiintSize1:["oiiintSize1",1.304,.499],oiiintSize2:["oiiintSize2",1.98,.659]},ON=function(e,t){var[r,n,s]=$2[e],a=new Wi(r),o=new Ri([a],{width:j(n),height:j(s),style:"width:"+j(n),viewBox:"0 0 "+1e3*n+" "+1e3*s,preserveAspectRatio:"xMinYMin"}),l=q2(["overlay"],[o],t);return l.height=s,l.style.height=j(s),l.style.width=j(n),l},L={fontMap:U2,makeSymbol:Ii,mathsym:EN,makeSpan:Ht,makeSvgSpan:q2,makeLineSpan:_N,makeAnchor:LN,makeFragment:H2,wrapFragment:zN,makeVList:RN,makeOrd:AN,makeGlue:DN,staticSvg:ON,svgData:$2,tryCombineChars:CN},qe={number:3,unit:"mu"},Un={number:4,unit:"mu"},ur={number:5,unit:"mu"},BN={mord:{mop:qe,mbin:Un,mrel:ur,minner:qe},mop:{mord:qe,mop:qe,mrel:ur,minner:qe},mbin:{mord:Un,mop:Un,mopen:Un,minner:Un},mrel:{mord:ur,mop:ur,mopen:ur,minner:ur},mopen:{},mclose:{mop:qe,mbin:Un,mrel:ur,minner:qe},mpunct:{mord:qe,mop:qe,mrel:ur,mopen:qe,mclose:qe,mpunct:qe,minner:qe},minner:{mord:qe,mop:qe,mbin:Un,mrel:ur,mopen:qe,mpunct:qe,minner:qe}},PN={mord:{mop:qe},mop:{mord:qe,mop:qe},mbin:{},mrel:{},mopen:{},mclose:{mop:qe},mpunct:{},minner:{mop:qe}},j2={},O0={},B0={};P0=function(e){return e.type==="ordgroup"&&e.body.length===1?e.body[0]:e},We=function(e){return e.type==="ordgroup"?e.body:[e]},pr=L.makeSpan,FN=["leftmost","mbin","mopen","mrel","mop","mpunct"],qN=["rightmost","mrel","mclose","mpunct"],HN={display:ie.DISPLAY,text:ie.TEXT,script:ie.SCRIPT,scriptscript:ie.SCRIPTSCRIPT},UN={mord:"mord",mop:"mop",mbin:"mbin",mrel:"mrel",mopen:"mopen",mclose:"mclose",mpunct:"mpunct",minner:"minner"},tt=function(e,t,r,n){n===void 0&&(n=[null,null]);for(var s=[],a=0;a{var v=x.classes[0],b=g.classes[0];v==="mbin"&&qN.includes(b)?x.classes[0]="mord":b==="mbin"&&FN.includes(v)&&(g.classes[0]="mord")},{node:c},f,m),d2(s,(g,x)=>{var v=fu(x),b=fu(g),E=v&&b?g.hasClass("mtight")?PN[v][b]:BN[v][b]:null;if(E)return L.makeGlue(E,h)},{node:c},f,m),s},d2=function i(e,t,r,n,s){n&&e.push(n);for(var a=0;af=>{e.splice(c+1,0,f),a++})(a)}n&&e.pop()},G2=function(e){return e instanceof $n||e instanceof To||e instanceof jn&&e.hasClass("enclosing")?e:null},$N=function i(e,t){var r=G2(e);if(r){var n=r.children;if(n.length){if(t==="right")return i(n[n.length-1],"right");if(t==="left")return i(n[0],"left")}}return e},fu=function(e,t){return e?(t&&(e=$N(e,t)),UN[e.classes[0]]||null):null},Eo=function(e,t){var r=["nulldelimiter"].concat(e.baseSizingClasses());return pr(t.concat(r))},pe=function(e,t,r){if(!e)return pr();if(O0[e.type]){var n=O0[e.type](e,t);if(r&&t.size!==r.size){n=pr(t.sizingClasses(r),[n],t);var s=t.sizeMultiplier/r.sizeMultiplier;n.height*=s,n.depth*=s}return n}else throw new U("Got group of unknown type: '"+e.type+"'")};Et=class{constructor(e,t,r){this.type=void 0,this.attributes=void 0,this.children=void 0,this.classes=void 0,this.type=e,this.attributes={},this.children=t||[],this.classes=r||[]}setAttribute(e,t){this.attributes[e]=t}getAttribute(e){return this.attributes[e]}toNode(){var e=document.createElementNS("http://www.w3.org/1998/Math/MathML",this.type);for(var t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);this.classes.length>0&&(e.className=Zr(this.classes));for(var r=0;r0&&(e+=' class ="'+ve.escape(Zr(this.classes))+'"'),e+=">";for(var r=0;r",e}toText(){return this.children.map(e=>e.toText()).join("")}},gi=class{constructor(e){this.text=void 0,this.text=e}toNode(){return document.createTextNode(this.text)}toMarkup(){return ve.escape(this.toText())}toText(){return this.text}},pu=class{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",j(this.width)),e}toMarkup(){return this.character?""+this.character+"":''}toText(){return this.character?this.character:" "}},q={MathNode:Et,TextNode:gi,SpaceNode:pu,newDocumentFragment:Y2},xi=function(e,t,r){return Ce[t][e]&&Ce[t][e].replace&&e.charCodeAt(0)!==55349&&!(F2.hasOwnProperty(e)&&r&&(r.fontFamily&&r.fontFamily.slice(4,6)==="tt"||r.font&&r.font.slice(4,6)==="tt"))&&(e=Ce[t][e].replace),new q.TextNode(e)},Nu=function(e){return e.length===1?e[0]:new q.MathNode("mrow",e)},Eu=function(e,t){if(t.fontFamily==="texttt")return"monospace";if(t.fontFamily==="textsf")return t.fontShape==="textit"&&t.fontWeight==="textbf"?"sans-serif-bold-italic":t.fontShape==="textit"?"sans-serif-italic":t.fontWeight==="textbf"?"bold-sans-serif":"sans-serif";if(t.fontShape==="textit"&&t.fontWeight==="textbf")return"bold-italic";if(t.fontShape==="textit")return"italic";if(t.fontWeight==="textbf")return"bold";var r=t.font;if(!r||r==="mathnormal")return null;var n=e.mode;if(r==="mathit")return"italic";if(r==="boldsymbol")return e.type==="textord"?"bold":"bold-italic";if(r==="mathbf")return"bold";if(r==="mathbb")return"double-struck";if(r==="mathsfit")return"sans-serif-italic";if(r==="mathfrak")return"fraktur";if(r==="mathscr"||r==="mathcal")return"script";if(r==="mathsf")return"sans-serif";if(r==="mathtt")return"monospace";var s=e.text;if(["\\imath","\\jmath"].includes(s))return null;Ce[n][s]&&Ce[n][s].replace&&(s=Ce[n][s].replace);var a=L.fontMap[r].fontName;return Mu(s,a,n)?L.fontMap[r].variant:null};jt=function(e,t,r){if(e.length===1){var n=Se(e[0],t);return r&&n instanceof Et&&n.type==="mo"&&(n.setAttribute("lspace","0em"),n.setAttribute("rspace","0em")),[n]}for(var s=[],a,o=0;o=1&&(a.type==="mn"||Jc(a))){var h=l.children[0];h instanceof Et&&h.type==="mn"&&(h.children=[...a.children,...h.children],s.pop())}else if(a.type==="mi"&&a.children.length===1){var d=a.children[0];if(d instanceof gi&&d.text==="\u0338"&&(l.type==="mo"||l.type==="mi"||l.type==="mn")){var c=l.children[0];c instanceof gi&&c.text.length>0&&(c.text=c.text.slice(0,1)+"\u0338"+c.text.slice(1),s.pop())}}}s.push(l),a=l}return s},Qr=function(e,t,r){return Nu(jt(e,t,r))},Se=function(e,t){if(!e)return new q.MathNode("mrow");if(B0[e.type]){var r=B0[e.type](e,t);return r}else throw new U("Got group of unknown type: '"+e.type+"'")};W2=function(e){return new R0({style:e.displayMode?ie.DISPLAY:ie.TEXT,maxSize:e.maxSize,minRuleThickness:e.minRuleThickness})},V2=function(e,t){if(t.displayMode){var r=["katex-display"];t.leqno&&r.push("leqno"),t.fleqn&&r.push("fleqn"),e=L.makeSpan(r,[e])}return e},jN=function(e,t,r){var n=W2(r),s;if(r.output==="mathml")return c2(e,t,n,r.displayMode,!0);if(r.output==="html"){var a=mu(e,n);s=L.makeSpan(["katex"],[a])}else{var o=c2(e,t,n,r.displayMode,!1),l=mu(e,n);s=L.makeSpan(["katex"],[o,l])}return V2(s,r)},GN=function(e,t,r){var n=W2(r),s=mu(e,n),a=L.makeSpan(["katex"],[s]);return V2(a,r)},YN={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":"="},WN=function(e){var t=new q.MathNode("mo",[new q.TextNode(YN[e.replace(/^\\/,"")])]);return t.setAttribute("stretchy","true"),t},VN={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]},XN=function(e){return e.type==="ordgroup"?e.body.length:1},KN=function(e,t){function r(){var o=4e5,l=e.label.slice(1);if(["widehat","widecheck","widetilde","utilde"].includes(l)){var h=e,d=XN(h.base),c,f,m;if(d>5)l==="widehat"||l==="widecheck"?(c=420,o=2364,m=.42,f=l+"4"):(c=312,o=2340,m=.34,f="tilde4");else{var g=[1,1,2,2,3,3][d];l==="widehat"||l==="widecheck"?(o=[0,1062,2364,2364,2364][g],c=[0,239,300,360,420][g],m=[0,.24,.3,.3,.36,.42][g],f=l+g):(o=[0,600,1033,2339,2340][g],c=[0,260,286,306,312][g],m=[0,.26,.286,.3,.306,.34][g],f="tilde"+g)}var x=new Wi(f),v=new Ri([x],{width:"100%",height:j(m),viewBox:"0 0 "+o+" "+c,preserveAspectRatio:"none"});return{span:L.makeSvgSpan([],[v],t),minWidth:0,height:m}}else{var b=[],E=VN[l],[S,C,_]=E,I=_/1e3,O=S.length,D,$;if(O===1){var F=E[3];D=["hide-tail"],$=[F]}else if(O===2)D=["halfarrow-left","halfarrow-right"],$=["xMinYMin","xMaxYMin"];else if(O===3)D=["brace-left","brace-center","brace-right"],$=["xMinYMin","xMidYMin","xMaxYMin"];else throw new Error(`Correct katexImagesData or update code here to support - `+O+" children.");for(var Z=0;Z0&&(n.style.minWidth=j(s)),n},ZN=function(e,t,r,n,s){var a,o=e.height+e.depth+r+n;if(/fbox|color|angl/.test(t)){if(a=L.makeSpan(["stretchy",t],[],s),t==="fbox"){var l=s.color&&s.getColor();l&&(a.style.borderColor=l)}}else{var h=[];/^[bx]cancel$/.test(t)&&h.push(new No({x1:"0",y1:"0",x2:"100%",y2:"100%","stroke-width":"0.046em"})),/^x?cancel$/.test(t)&&h.push(new No({x1:"0",y1:"100%",x2:"100%",y2:"0","stroke-width":"0.046em"}));var d=new Ri(h,{width:"100%",height:j(o)});a=L.makeSvgSpan([],[d],s)}return a.height=o,a.style.height=j(o),a},gr={encloseSpan:ZN,mathMLnode:WN,svgSpan:KN};Au=(i,e)=>{var t,r,n;i&&i.type==="supsub"?(r=le(i.base,"accent"),t=r.base,i.base=t,n=wN(pe(i,e)),i.base=r):(r=le(i,"accent"),t=r.base);var s=pe(t,e.havingCrampedStyle()),a=r.isShifty&&ve.isCharacterBox(t),o=0;if(a){var l=ve.getBaseElem(t),h=pe(l,e.havingCrampedStyle());o=a2(h).skew}var d=r.label==="\\c",c=d?s.height+s.depth:Math.min(s.height,e.fontMetrics().xHeight),f;if(r.isStretchy)f=gr.svgSpan(r,e),f=L.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:s},{type:"elem",elem:f,wrapperClasses:["svg-align"],wrapperStyle:o>0?{width:"calc(100% - "+j(2*o)+")",marginLeft:j(2*o)}:void 0}]},e);else{var m,g;r.label==="\\vec"?(m=L.staticSvg("vec",e),g=L.svgData.vec[1]):(m=L.makeOrd({mode:r.mode,text:r.label},e,"textord"),m=a2(m),m.italic=0,g=m.width,d&&(c+=m.depth)),f=L.makeSpan(["accent-body"],[m]);var x=r.label==="\\textcircled";x&&(f.classes.push("accent-full"),c=s.height);var v=o;x||(v-=g/2),f.style.left=j(v),r.label==="\\textcircled"&&(f.style.top=".2em"),f=L.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:s},{type:"kern",size:-c},{type:"elem",elem:f}]},e)}var b=L.makeSpan(["mord","accent"],[f],e);return n?(n.children[0]=b,n.height=Math.max(b.height,n.height),n.classes[0]="mord",n):b},X2=(i,e)=>{var t=i.isStretchy?gr.mathMLnode(i.label):new q.MathNode("mo",[xi(i.label,i.mode)]),r=new q.MathNode("mover",[Se(i.base,e),t]);return r.setAttribute("accent","true"),r},QN=new RegExp(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring"].map(i=>"\\"+i).join("|"));X({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:(i,e)=>{var t=P0(e[0]),r=!QN.test(i.funcName),n=!r||i.funcName==="\\widehat"||i.funcName==="\\widetilde"||i.funcName==="\\widecheck";return{type:"accent",mode:i.parser.mode,label:i.funcName,isStretchy:r,isShifty:n,base:t}},htmlBuilder:Au,mathmlBuilder:X2});X({type:"accent",names:["\\'","\\`","\\^","\\~","\\=","\\u","\\.",'\\"',"\\c","\\r","\\H","\\v","\\textcircled"],props:{numArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["primitive"]},handler:(i,e)=>{var t=e[0],r=i.parser.mode;return r==="math"&&(i.parser.settings.reportNonstrict("mathVsTextAccents","LaTeX's accent "+i.funcName+" works only in text mode"),r="text"),{type:"accent",mode:r,label:i.funcName,isStretchy:!1,isShifty:!0,base:t}},htmlBuilder:Au,mathmlBuilder:X2});X({type:"accentUnder",names:["\\underleftarrow","\\underrightarrow","\\underleftrightarrow","\\undergroup","\\underlinesegment","\\utilde"],props:{numArgs:1},handler:(i,e)=>{var{parser:t,funcName:r}=i,n=e[0];return{type:"accentUnder",mode:t.mode,label:r,base:n}},htmlBuilder:(i,e)=>{var t=pe(i.base,e),r=gr.svgSpan(i,e),n=i.label==="\\utilde"?.12:0,s=L.makeVList({positionType:"top",positionData:t.height,children:[{type:"elem",elem:r,wrapperClasses:["svg-align"]},{type:"kern",size:n},{type:"elem",elem:t}]},e);return L.makeSpan(["mord","accentunder"],[s],e)},mathmlBuilder:(i,e)=>{var t=gr.mathMLnode(i.label),r=new q.MathNode("munder",[Se(i.base,e),t]);return r.setAttribute("accentunder","true"),r}});k0=i=>{var e=new q.MathNode("mpadded",i?[i]:[]);return e.setAttribute("width","+0.6em"),e.setAttribute("lspace","0.3em"),e};X({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(i,e,t){var{parser:r,funcName:n}=i;return{type:"xArrow",mode:r.mode,label:n,body:e[0],below:t[0]}},htmlBuilder(i,e){var t=e.style,r=e.havingStyle(t.sup()),n=L.wrapFragment(pe(i.body,r,e),e),s=i.label.slice(0,2)==="\\x"?"x":"cd";n.classes.push(s+"-arrow-pad");var a;i.below&&(r=e.havingStyle(t.sub()),a=L.wrapFragment(pe(i.below,r,e),e),a.classes.push(s+"-arrow-pad"));var o=gr.svgSpan(i,e),l=-e.fontMetrics().axisHeight+.5*o.height,h=-e.fontMetrics().axisHeight-.5*o.height-.111;(n.depth>.25||i.label==="\\xleftequilibrium")&&(h-=n.depth);var d;if(a){var c=-e.fontMetrics().axisHeight+a.height+.5*o.height+.111;d=L.makeVList({positionType:"individualShift",children:[{type:"elem",elem:n,shift:h},{type:"elem",elem:o,shift:l},{type:"elem",elem:a,shift:c}]},e)}else d=L.makeVList({positionType:"individualShift",children:[{type:"elem",elem:n,shift:h},{type:"elem",elem:o,shift:l}]},e);return d.children[0].children[0].children[1].classes.push("svg-align"),L.makeSpan(["mrel","x-arrow"],[d],e)},mathmlBuilder(i,e){var t=gr.mathMLnode(i.label);t.setAttribute("minsize",i.label.charAt(0)==="x"?"1.75em":"3.0em");var r;if(i.body){var n=k0(Se(i.body,e));if(i.below){var s=k0(Se(i.below,e));r=new q.MathNode("munderover",[t,s,n])}else r=new q.MathNode("mover",[t,n])}else if(i.below){var a=k0(Se(i.below,e));r=new q.MathNode("munder",[t,a])}else r=k0(),r=new q.MathNode("mover",[t,r]);return r}});JN=L.makeSpan;X({type:"mclass",names:["\\mathord","\\mathbin","\\mathrel","\\mathopen","\\mathclose","\\mathpunct","\\mathinner"],props:{numArgs:1,primitive:!0},handler(i,e){var{parser:t,funcName:r}=i,n=e[0];return{type:"mclass",mode:t.mode,mclass:"m"+r.slice(5),body:We(n),isCharacterBox:ve.isCharacterBox(n)}},htmlBuilder:K2,mathmlBuilder:Z2});j0=i=>{var e=i.type==="ordgroup"&&i.body.length?i.body[0]:i;return e.type==="atom"&&(e.family==="bin"||e.family==="rel")?"m"+e.family:"mord"};X({type:"mclass",names:["\\@binrel"],props:{numArgs:2},handler(i,e){var{parser:t}=i;return{type:"mclass",mode:t.mode,mclass:j0(e[0]),body:We(e[1]),isCharacterBox:ve.isCharacterBox(e[1])}}});X({type:"mclass",names:["\\stackrel","\\overset","\\underset"],props:{numArgs:2},handler(i,e){var{parser:t,funcName:r}=i,n=e[1],s=e[0],a;r!=="\\stackrel"?a=j0(n):a="mrel";var o={type:"op",mode:n.mode,limits:!0,alwaysHandleSupSub:!0,parentIsSupSub:!1,symbol:!1,suppressBaseShift:r!=="\\stackrel",body:We(n)},l={type:"supsub",mode:s.mode,base:o,sup:r==="\\underset"?null:s,sub:r==="\\underset"?s:null};return{type:"mclass",mode:t.mode,mclass:a,body:[l],isCharacterBox:ve.isCharacterBox(l)}},htmlBuilder:K2,mathmlBuilder:Z2});X({type:"pmb",names:["\\pmb"],props:{numArgs:1,allowedInText:!0},handler(i,e){var{parser:t}=i;return{type:"pmb",mode:t.mode,mclass:j0(e[0]),body:We(e[0])}},htmlBuilder(i,e){var t=tt(i.body,e,!0),r=L.makeSpan([i.mclass],t,e);return r.style.textShadow="0.02em 0.01em 0.04px",r},mathmlBuilder(i,e){var t=jt(i.body,e),r=new q.MathNode("mstyle",t);return r.setAttribute("style","text-shadow: 0.02em 0.01em 0.04px"),r}});eE={">":"\\\\cdrightarrow","<":"\\\\cdleftarrow","=":"\\\\cdlongequal",A:"\\uparrow",V:"\\downarrow","|":"\\Vert",".":"no arrow"},u2=()=>({type:"styling",body:[],mode:"math",style:"display"}),f2=i=>i.type==="textord"&&i.text==="@",tE=(i,e)=>(i.type==="mathord"||i.type==="atom")&&i.text===e;X({type:"cdlabel",names:["\\\\cdleft","\\\\cdright"],props:{numArgs:1},handler(i,e){var{parser:t,funcName:r}=i;return{type:"cdlabel",mode:t.mode,side:r.slice(4),label:e[0]}},htmlBuilder(i,e){var t=e.havingStyle(e.style.sup()),r=L.wrapFragment(pe(i.label,t,e),e);return r.classes.push("cd-label-"+i.side),r.style.bottom=j(.8-r.depth),r.height=0,r.depth=0,r},mathmlBuilder(i,e){var t=new q.MathNode("mrow",[Se(i.label,e)]);return t=new q.MathNode("mpadded",[t]),t.setAttribute("width","0"),i.side==="left"&&t.setAttribute("lspace","-1width"),t.setAttribute("voffset","0.7em"),t=new q.MathNode("mstyle",[t]),t.setAttribute("displaystyle","false"),t.setAttribute("scriptlevel","1"),t}});X({type:"cdlabelparent",names:["\\\\cdparent"],props:{numArgs:1},handler(i,e){var{parser:t}=i;return{type:"cdlabelparent",mode:t.mode,fragment:e[0]}},htmlBuilder(i,e){var t=L.wrapFragment(pe(i.fragment,e),e);return t.classes.push("cd-vert-arrow"),t},mathmlBuilder(i,e){return new q.MathNode("mrow",[Se(i.fragment,e)])}});X({type:"textord",names:["\\@char"],props:{numArgs:1,allowedInText:!0},handler(i,e){for(var{parser:t}=i,r=le(e[0],"ordgroup"),n=r.body,s="",a=0;a=1114111)throw new U("\\@char with invalid code point "+s);return l<=65535?h=String.fromCharCode(l):(l-=65536,h=String.fromCharCode((l>>10)+55296,(l&1023)+56320)),{type:"textord",mode:t.mode,text:h}}});Q2=(i,e)=>{var t=tt(i.body,e.withColor(i.color),!1);return L.makeFragment(t)},J2=(i,e)=>{var t=jt(i.body,e.withColor(i.color)),r=new q.MathNode("mstyle",t);return r.setAttribute("mathcolor",i.color),r};X({type:"color",names:["\\textcolor"],props:{numArgs:2,allowedInText:!0,argTypes:["color","original"]},handler(i,e){var{parser:t}=i,r=le(e[0],"color-token").color,n=e[1];return{type:"color",mode:t.mode,color:r,body:We(n)}},htmlBuilder:Q2,mathmlBuilder:J2});X({type:"color",names:["\\color"],props:{numArgs:1,allowedInText:!0,argTypes:["color"]},handler(i,e){var{parser:t,breakOnTokenText:r}=i,n=le(e[0],"color-token").color;t.gullet.macros.set("\\current@color",n);var s=t.parseExpression(!0,r);return{type:"color",mode:t.mode,color:n,body:s}},htmlBuilder:Q2,mathmlBuilder:J2});X({type:"cr",names:["\\\\"],props:{numArgs:0,numOptionalArgs:0,allowedInText:!0},handler(i,e,t){var{parser:r}=i,n=r.gullet.future().text==="["?r.parseSizeGroup(!0):null,s=!r.settings.displayMode||!r.settings.useStrictBehavior("newLineInDisplayMode","In LaTeX, \\\\ or \\newline does nothing in display mode");return{type:"cr",mode:r.mode,newLine:s,size:n&&le(n,"size").value}},htmlBuilder(i,e){var t=L.makeSpan(["mspace"],[],e);return i.newLine&&(t.classes.push("newline"),i.size&&(t.style.marginTop=j(He(i.size,e)))),t},mathmlBuilder(i,e){var t=new q.MathNode("mspace");return i.newLine&&(t.setAttribute("linebreak","newline"),i.size&&t.setAttribute("height",j(He(i.size,e)))),t}});gu={"\\global":"\\global","\\long":"\\\\globallong","\\\\globallong":"\\\\globallong","\\def":"\\gdef","\\gdef":"\\gdef","\\edef":"\\xdef","\\xdef":"\\xdef","\\let":"\\\\globallet","\\futurelet":"\\\\globalfuture"},e6=i=>{var e=i.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(e))throw new U("Expected a control sequence",i);return e},nE=i=>{var e=i.gullet.popToken();return e.text==="="&&(e=i.gullet.popToken(),e.text===" "&&(e=i.gullet.popToken())),e},t6=(i,e,t,r)=>{var n=i.gullet.macros.get(t.text);n==null&&(t.noexpand=!0,n={tokens:[t],numArgs:0,unexpandable:!i.gullet.isExpandable(t.text)}),i.gullet.macros.set(e,n,r)};X({type:"internal",names:["\\global","\\long","\\\\globallong"],props:{numArgs:0,allowedInText:!0},handler(i){var{parser:e,funcName:t}=i;e.consumeSpaces();var r=e.fetch();if(gu[r.text])return(t==="\\global"||t==="\\\\globallong")&&(r.text=gu[r.text]),le(e.parseFunction(),"internal");throw new U("Invalid token after macro prefix",r)}});X({type:"internal",names:["\\def","\\gdef","\\edef","\\xdef"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(i){var{parser:e,funcName:t}=i,r=e.gullet.popToken(),n=r.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(n))throw new U("Expected a control sequence",r);for(var s=0,a,o=[[]];e.gullet.future().text!=="{";)if(r=e.gullet.popToken(),r.text==="#"){if(e.gullet.future().text==="{"){a=e.gullet.future(),o[s].push("{");break}if(r=e.gullet.popToken(),!/^[1-9]$/.test(r.text))throw new U('Invalid argument number "'+r.text+'"');if(parseInt(r.text)!==s+1)throw new U('Argument number "'+r.text+'" out of order');s++,o.push([])}else{if(r.text==="EOF")throw new U("Expected a macro definition");o[s].push(r.text)}var{tokens:l}=e.gullet.consumeArg();return a&&l.unshift(a),(t==="\\edef"||t==="\\xdef")&&(l=e.gullet.expandTokens(l),l.reverse()),e.gullet.macros.set(n,{tokens:l,numArgs:s,delimiters:o},t===gu[t]),{type:"internal",mode:e.mode}}});X({type:"internal",names:["\\let","\\\\globallet"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(i){var{parser:e,funcName:t}=i,r=e6(e.gullet.popToken());e.gullet.consumeSpaces();var n=nE(e);return t6(e,r,n,t==="\\\\globallet"),{type:"internal",mode:e.mode}}});X({type:"internal",names:["\\futurelet","\\\\globalfuture"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(i){var{parser:e,funcName:t}=i,r=e6(e.gullet.popToken()),n=e.gullet.popToken(),s=e.gullet.popToken();return t6(e,r,s,t==="\\\\globalfuture"),e.gullet.pushToken(s),e.gullet.pushToken(n),{type:"internal",mode:e.mode}}});yo=function(e,t,r){var n=Ce.math[e]&&Ce.math[e].replace,s=Mu(n||e,t,r);if(!s)throw new Error("Unsupported symbol "+e+" and font size "+t+".");return s},ku=function(e,t,r,n){var s=r.havingBaseStyle(t),a=L.makeSpan(n.concat(s.sizingClasses(r)),[e],r),o=s.sizeMultiplier/r.sizeMultiplier;return a.height*=o,a.depth*=o,a.maxFontSize=s.sizeMultiplier,a},i6=function(e,t,r){var n=t.havingBaseStyle(r),s=(1-t.sizeMultiplier/n.sizeMultiplier)*t.fontMetrics().axisHeight;e.classes.push("delimcenter"),e.style.top=j(s),e.height-=s,e.depth+=s},sE=function(e,t,r,n,s,a){var o=L.makeSymbol(e,"Main-Regular",s,n),l=ku(o,t,n,a);return r&&i6(l,n,t),l},aE=function(e,t,r,n){return L.makeSymbol(e,"Size"+t+"-Regular",r,n)},r6=function(e,t,r,n,s,a){var o=aE(e,t,s,n),l=ku(L.makeSpan(["delimsizing","size"+t],[o],n),ie.TEXT,n,a);return r&&i6(l,n,ie.TEXT),l},eu=function(e,t,r){var n;t==="Size1-Regular"?n="delim-size1":n="delim-size4";var s=L.makeSpan(["delimsizinginner",n],[L.makeSpan([],[L.makeSymbol(e,t,r)])]);return{type:"elem",elem:s}},tu=function(e,t,r){var n=Yi["Size4-Regular"][e.charCodeAt(0)]?Yi["Size4-Regular"][e.charCodeAt(0)][4]:Yi["Size1-Regular"][e.charCodeAt(0)][4],s=new Wi("inner",fN(e,Math.round(1e3*t))),a=new Ri([s],{width:j(n),height:j(t),style:"width:"+j(n),viewBox:"0 0 "+1e3*n+" "+Math.round(1e3*t),preserveAspectRatio:"xMinYMin"}),o=L.makeSvgSpan([],[a],r);return o.height=t,o.style.height=j(t),o.style.width=j(n),{type:"elem",elem:o}},xu=.008,C0={type:"kern",size:-1*xu},oE=["|","\\lvert","\\rvert","\\vert"],lE=["\\|","\\lVert","\\rVert","\\Vert"],n6=function(e,t,r,n,s,a){var o,l,h,d,c="",f=0;o=h=d=e,l=null;var m="Size1-Regular";e==="\\uparrow"?h=d="\u23D0":e==="\\Uparrow"?h=d="\u2016":e==="\\downarrow"?o=h="\u23D0":e==="\\Downarrow"?o=h="\u2016":e==="\\updownarrow"?(o="\\uparrow",h="\u23D0",d="\\downarrow"):e==="\\Updownarrow"?(o="\\Uparrow",h="\u2016",d="\\Downarrow"):oE.includes(e)?(h="\u2223",c="vert",f=333):lE.includes(e)?(h="\u2225",c="doublevert",f=556):e==="["||e==="\\lbrack"?(o="\u23A1",h="\u23A2",d="\u23A3",m="Size4-Regular",c="lbrack",f=667):e==="]"||e==="\\rbrack"?(o="\u23A4",h="\u23A5",d="\u23A6",m="Size4-Regular",c="rbrack",f=667):e==="\\lfloor"||e==="\u230A"?(h=o="\u23A2",d="\u23A3",m="Size4-Regular",c="lfloor",f=667):e==="\\lceil"||e==="\u2308"?(o="\u23A1",h=d="\u23A2",m="Size4-Regular",c="lceil",f=667):e==="\\rfloor"||e==="\u230B"?(h=o="\u23A5",d="\u23A6",m="Size4-Regular",c="rfloor",f=667):e==="\\rceil"||e==="\u2309"?(o="\u23A4",h=d="\u23A5",m="Size4-Regular",c="rceil",f=667):e==="("||e==="\\lparen"?(o="\u239B",h="\u239C",d="\u239D",m="Size4-Regular",c="lparen",f=875):e===")"||e==="\\rparen"?(o="\u239E",h="\u239F",d="\u23A0",m="Size4-Regular",c="rparen",f=875):e==="\\{"||e==="\\lbrace"?(o="\u23A7",l="\u23A8",d="\u23A9",h="\u23AA",m="Size4-Regular"):e==="\\}"||e==="\\rbrace"?(o="\u23AB",l="\u23AC",d="\u23AD",h="\u23AA",m="Size4-Regular"):e==="\\lgroup"||e==="\u27EE"?(o="\u23A7",d="\u23A9",h="\u23AA",m="Size4-Regular"):e==="\\rgroup"||e==="\u27EF"?(o="\u23AB",d="\u23AD",h="\u23AA",m="Size4-Regular"):e==="\\lmoustache"||e==="\u23B0"?(o="\u23A7",d="\u23AD",h="\u23AA",m="Size4-Regular"):(e==="\\rmoustache"||e==="\u23B1")&&(o="\u23AB",d="\u23A9",h="\u23AA",m="Size4-Regular");var g=yo(o,m,s),x=g.height+g.depth,v=yo(h,m,s),b=v.height+v.depth,E=yo(d,m,s),S=E.height+E.depth,C=0,_=1;if(l!==null){var I=yo(l,m,s);C=I.height+I.depth,_=2}var O=x+S+C,D=Math.max(0,Math.ceil((t-O)/(_*b))),$=O+D*_*b,F=n.fontMetrics().axisHeight;r&&(F*=n.sizeMultiplier);var Z=$/2-F,re=[];if(c.length>0){var ye=$-x-S,G=Math.round($*1e3),W=mN(c,Math.round(ye*1e3)),ee=new Wi(c,W),ae=(f/1e3).toFixed(3)+"em",at=(G/1e3).toFixed(3)+"em",nt=new Ri([ee],{width:ae,height:at,viewBox:"0 0 "+f+" "+G}),hi=L.makeSvgSpan([],[nt],n);hi.height=G/1e3,hi.style.width=ae,hi.style.height=at,re.push({type:"elem",elem:hi})}else{if(re.push(eu(d,m,s)),re.push(C0),l===null){var Jt=$-x-S+2*xu;re.push(tu(h,Jt,n))}else{var It=($-x-S-C)/2+2*xu;re.push(tu(h,It,n)),re.push(C0),re.push(eu(l,m,s)),re.push(C0),re.push(tu(h,It,n))}re.push(C0),re.push(eu(o,m,s))}var Sn=n.havingBaseStyle(ie.TEXT),Ca=L.makeVList({positionType:"bottom",positionData:Z,children:re},Sn);return ku(L.makeSpan(["delimsizing","mult"],[Ca],Sn),ie.TEXT,n,a)},iu=80,ru=.08,nu=function(e,t,r,n,s){var a=uN(e,n,r),o=new Wi(e,a),l=new Ri([o],{width:"400em",height:j(t),viewBox:"0 0 400000 "+r,preserveAspectRatio:"xMinYMin slice"});return L.makeSvgSpan(["hide-tail"],[l],s)},hE=function(e,t){var r=t.havingBaseSizing(),n=l6("\\surd",e*r.sizeMultiplier,o6,r),s=r.sizeMultiplier,a=Math.max(0,t.minRuleThickness-t.fontMetrics().sqrtRuleThickness),o,l=0,h=0,d=0,c;return n.type==="small"?(d=1e3+1e3*a+iu,e<1?s=1:e<1.4&&(s=.7),l=(1+a+ru)/s,h=(1+a)/s,o=nu("sqrtMain",l,d,a,t),o.style.minWidth="0.853em",c=.833/s):n.type==="large"?(d=(1e3+iu)*bo[n.size],h=(bo[n.size]+a)/s,l=(bo[n.size]+a+ru)/s,o=nu("sqrtSize"+n.size,l,d,a,t),o.style.minWidth="1.02em",c=1/s):(l=e+a+ru,h=e+a,d=Math.floor(1e3*e+a)+iu,o=nu("sqrtTall",l,d,a,t),o.style.minWidth="0.742em",c=1.056),o.height=h,o.style.height=j(l),{span:o,advanceWidth:c,ruleWidth:(t.fontMetrics().sqrtRuleThickness+a)*s}},s6=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\u230A","\u230B","\\lceil","\\rceil","\u2308","\u2309","\\surd"],dE=["\\uparrow","\\downarrow","\\updownarrow","\\Uparrow","\\Downarrow","\\Updownarrow","|","\\|","\\vert","\\Vert","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\u27EE","\u27EF","\\lmoustache","\\rmoustache","\u23B0","\u23B1"],a6=["<",">","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"],bo=[0,1.2,1.8,2.4,3],cE=function(e,t,r,n,s){if(e==="<"||e==="\\lt"||e==="\u27E8"?e="\\langle":(e===">"||e==="\\gt"||e==="\u27E9")&&(e="\\rangle"),s6.includes(e)||a6.includes(e))return r6(e,t,!1,r,n,s);if(dE.includes(e))return n6(e,bo[t],!1,r,n,s);throw new U("Illegal delimiter: '"+e+"'")},uE=[{type:"small",style:ie.SCRIPTSCRIPT},{type:"small",style:ie.SCRIPT},{type:"small",style:ie.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}],fE=[{type:"small",style:ie.SCRIPTSCRIPT},{type:"small",style:ie.SCRIPT},{type:"small",style:ie.TEXT},{type:"stack"}],o6=[{type:"small",style:ie.SCRIPTSCRIPT},{type:"small",style:ie.SCRIPT},{type:"small",style:ie.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}],mE=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.")},l6=function(e,t,r,n){for(var s=Math.min(2,3-n.style.size),a=s;at)return r[a]}return r[r.length-1]},h6=function(e,t,r,n,s,a){e==="<"||e==="\\lt"||e==="\u27E8"?e="\\langle":(e===">"||e==="\\gt"||e==="\u27E9")&&(e="\\rangle");var o;a6.includes(e)?o=uE:s6.includes(e)?o=o6:o=fE;var l=l6(e,t,o,n);return l.type==="small"?sE(e,l.style,r,n,s,a):l.type==="large"?r6(e,l.size,r,n,s,a):n6(e,t,r,n,s,a)},pE=function(e,t,r,n,s,a){var o=n.fontMetrics().axisHeight*n.sizeMultiplier,l=901,h=5/n.fontMetrics().ptPerEm,d=Math.max(t-o,r+o),c=Math.max(d/500*l,2*d-h);return h6(e,c,!0,n,s,a)},mr={sqrtImage:hE,sizedDelim:cE,sizeToMaxHeight:bo,customSizedDelim:h6,leftRightDelim:pE},m2={"\\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}},gE=["(","\\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","."];X({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:(i,e)=>{var t=G0(e[0],i);return{type:"delimsizing",mode:i.parser.mode,size:m2[i.funcName].size,mclass:m2[i.funcName].mclass,delim:t.text}},htmlBuilder:(i,e)=>i.delim==="."?L.makeSpan([i.mclass]):mr.sizedDelim(i.delim,i.size,e,i.mode,[i.mclass]),mathmlBuilder:i=>{var e=[];i.delim!=="."&&e.push(xi(i.delim,i.mode));var t=new q.MathNode("mo",e);i.mclass==="mopen"||i.mclass==="mclose"?t.setAttribute("fence","true"):t.setAttribute("fence","false"),t.setAttribute("stretchy","true");var r=j(mr.sizeToMaxHeight[i.size]);return t.setAttribute("minsize",r),t.setAttribute("maxsize",r),t}});X({type:"leftright-right",names:["\\right"],props:{numArgs:1,primitive:!0},handler:(i,e)=>{var t=i.parser.gullet.macros.get("\\current@color");if(t&&typeof t!="string")throw new U("\\current@color set to non-string in \\right");return{type:"leftright-right",mode:i.parser.mode,delim:G0(e[0],i).text,color:t}}});X({type:"leftright",names:["\\left"],props:{numArgs:1,primitive:!0},handler:(i,e)=>{var t=G0(e[0],i),r=i.parser;++r.leftrightDepth;var n=r.parseExpression(!1);--r.leftrightDepth,r.expect("\\right",!1);var s=le(r.parseFunction(),"leftright-right");return{type:"leftright",mode:r.mode,body:n,left:t.text,right:s.delim,rightColor:s.color}},htmlBuilder:(i,e)=>{p2(i);for(var t=tt(i.body,e,!0,["mopen","mclose"]),r=0,n=0,s=!1,a=0;a{p2(i);var t=jt(i.body,e);if(i.left!=="."){var r=new q.MathNode("mo",[xi(i.left,i.mode)]);r.setAttribute("fence","true"),t.unshift(r)}if(i.right!=="."){var n=new q.MathNode("mo",[xi(i.right,i.mode)]);n.setAttribute("fence","true"),i.rightColor&&n.setAttribute("mathcolor",i.rightColor),t.push(n)}return Nu(t)}});X({type:"middle",names:["\\middle"],props:{numArgs:1,primitive:!0},handler:(i,e)=>{var t=G0(e[0],i);if(!i.parser.leftrightDepth)throw new U("\\middle without preceding \\left",t);return{type:"middle",mode:i.parser.mode,delim:t.text}},htmlBuilder:(i,e)=>{var t;if(i.delim===".")t=Eo(e,[]);else{t=mr.sizedDelim(i.delim,1,e,i.mode,[]);var r={delim:i.delim,options:e};t.isMiddle=r}return t},mathmlBuilder:(i,e)=>{var t=i.delim==="\\vert"||i.delim==="|"?xi("|","text"):xi(i.delim,i.mode),r=new q.MathNode("mo",[t]);return r.setAttribute("fence","true"),r.setAttribute("lspace","0.05em"),r.setAttribute("rspace","0.05em"),r}});Cu=(i,e)=>{var t=L.wrapFragment(pe(i.body,e),e),r=i.label.slice(1),n=e.sizeMultiplier,s,a=0,o=ve.isCharacterBox(i.body);if(r==="sout")s=L.makeSpan(["stretchy","sout"]),s.height=e.fontMetrics().defaultRuleThickness/n,a=-.5*e.fontMetrics().xHeight;else if(r==="phase"){var l=He({number:.6,unit:"pt"},e),h=He({number:.35,unit:"ex"},e),d=e.havingBaseSizing();n=n/d.sizeMultiplier;var c=t.height+t.depth+l+h;t.style.paddingLeft=j(c/2+l);var f=Math.floor(1e3*c*n),m=dN(f),g=new Ri([new Wi("phase",m)],{width:"400em",height:j(f/1e3),viewBox:"0 0 400000 "+f,preserveAspectRatio:"xMinYMin slice"});s=L.makeSvgSpan(["hide-tail"],[g],e),s.style.height=j(c),a=t.depth+l+h}else{/cancel/.test(r)?o||t.classes.push("cancel-pad"):r==="angl"?t.classes.push("anglpad"):t.classes.push("boxpad");var x=0,v=0,b=0;/box/.test(r)?(b=Math.max(e.fontMetrics().fboxrule,e.minRuleThickness),x=e.fontMetrics().fboxsep+(r==="colorbox"?0:b),v=x):r==="angl"?(b=Math.max(e.fontMetrics().defaultRuleThickness,e.minRuleThickness),x=4*b,v=Math.max(0,.25-t.depth)):(x=o?.2:0,v=x),s=gr.encloseSpan(t,r,x,v,e),/fbox|boxed|fcolorbox/.test(r)?(s.style.borderStyle="solid",s.style.borderWidth=j(b)):r==="angl"&&b!==.049&&(s.style.borderTopWidth=j(b),s.style.borderRightWidth=j(b)),a=t.depth+v,i.backgroundColor&&(s.style.backgroundColor=i.backgroundColor,i.borderColor&&(s.style.borderColor=i.borderColor))}var E;if(i.backgroundColor)E=L.makeVList({positionType:"individualShift",children:[{type:"elem",elem:s,shift:a},{type:"elem",elem:t,shift:0}]},e);else{var S=/cancel|phase/.test(r)?["svg-align"]:[];E=L.makeVList({positionType:"individualShift",children:[{type:"elem",elem:t,shift:0},{type:"elem",elem:s,shift:a,wrapperClasses:S}]},e)}return/cancel/.test(r)&&(E.height=t.height,E.depth=t.depth),/cancel/.test(r)&&!o?L.makeSpan(["mord","cancel-lap"],[E],e):L.makeSpan(["mord"],[E],e)},_u=(i,e)=>{var t=0,r=new q.MathNode(i.label.indexOf("colorbox")>-1?"mpadded":"menclose",[Se(i.body,e)]);switch(i.label){case"\\cancel":r.setAttribute("notation","updiagonalstrike");break;case"\\bcancel":r.setAttribute("notation","downdiagonalstrike");break;case"\\phase":r.setAttribute("notation","phasorangle");break;case"\\sout":r.setAttribute("notation","horizontalstrike");break;case"\\fbox":r.setAttribute("notation","box");break;case"\\angl":r.setAttribute("notation","actuarial");break;case"\\fcolorbox":case"\\colorbox":if(t=e.fontMetrics().fboxsep*e.fontMetrics().ptPerEm,r.setAttribute("width","+"+2*t+"pt"),r.setAttribute("height","+"+2*t+"pt"),r.setAttribute("lspace",t+"pt"),r.setAttribute("voffset",t+"pt"),i.label==="\\fcolorbox"){var n=Math.max(e.fontMetrics().fboxrule,e.minRuleThickness);r.setAttribute("style","border: "+n+"em solid "+String(i.borderColor))}break;case"\\xcancel":r.setAttribute("notation","updiagonalstrike downdiagonalstrike");break}return i.backgroundColor&&r.setAttribute("mathbackground",i.backgroundColor),r};X({type:"enclose",names:["\\colorbox"],props:{numArgs:2,allowedInText:!0,argTypes:["color","text"]},handler(i,e,t){var{parser:r,funcName:n}=i,s=le(e[0],"color-token").color,a=e[1];return{type:"enclose",mode:r.mode,label:n,backgroundColor:s,body:a}},htmlBuilder:Cu,mathmlBuilder:_u});X({type:"enclose",names:["\\fcolorbox"],props:{numArgs:3,allowedInText:!0,argTypes:["color","color","text"]},handler(i,e,t){var{parser:r,funcName:n}=i,s=le(e[0],"color-token").color,a=le(e[1],"color-token").color,o=e[2];return{type:"enclose",mode:r.mode,label:n,backgroundColor:a,borderColor:s,body:o}},htmlBuilder:Cu,mathmlBuilder:_u});X({type:"enclose",names:["\\fbox"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!0},handler(i,e){var{parser:t}=i;return{type:"enclose",mode:t.mode,label:"\\fbox",body:e[0]}}});X({type:"enclose",names:["\\cancel","\\bcancel","\\xcancel","\\sout","\\phase"],props:{numArgs:1},handler(i,e){var{parser:t,funcName:r}=i,n=e[0];return{type:"enclose",mode:t.mode,label:r,body:n}},htmlBuilder:Cu,mathmlBuilder:_u});X({type:"enclose",names:["\\angl"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!1},handler(i,e){var{parser:t}=i;return{type:"enclose",mode:t.mode,label:"\\angl",body:e[0]}}});d6={};c6={};Y0=i=>{var e=i.parser.settings;if(!e.displayMode)throw new U("{"+i.envName+"} can be used only in display mode.")};Xi=function(e,t){var r,n,s=e.body.length,a=e.hLinesBeforeRow,o=0,l=new Array(s),h=[],d=Math.max(t.fontMetrics().arrayRuleWidth,t.minRuleThickness),c=1/t.fontMetrics().ptPerEm,f=5*c;if(e.colSeparationType&&e.colSeparationType==="small"){var m=t.havingStyle(ie.SCRIPT).sizeMultiplier;f=.2778*(m/t.sizeMultiplier)}var g=e.colSeparationType==="CD"?He({number:3,unit:"ex"},t):12*c,x=3*c,v=e.arraystretch*g,b=.7*v,E=.3*v,S=0;function C(V){for(var J=0;J0&&(S+=.25),h.push({pos:S,isDashed:V[J]})}for(C(a[0]),r=0;r0&&(Z+=E,OV))for(r=0;r=o)){var qr=void 0;(n>0||e.hskipBeforeAndAfter)&&(qr=ve.deflt(It.pregap,f),qr!==0&&(W=L.makeSpan(["arraycolsep"],[]),W.style.width=j(qr),G.push(W)));var ei=[];for(r=0;r0){for(var Dd=L.makeLineSpan("hline",t,d),_a=L.makeLineSpan("hdashline",t,d),La=[{type:"elem",elem:l,shift:0}];h.length>0;){var za=h.pop(),Ia=za.pos-re;za.isDashed?La.push({type:"elem",elem:_a,shift:Ia}):La.push({type:"elem",elem:Dd,shift:Ia})}l=L.makeVList({positionType:"individualShift",children:La},t)}if(ae.length===0)return L.makeSpan(["mord"],[l],t);var z=L.makeVList({positionType:"individualShift",children:ae},t);return z=L.makeSpan(["tag"],[z],t),L.makeFragment([l,z])},xE={c:"center ",l:"left ",r:"right "},Ki=function(e,t){for(var r=[],n=new q.MathNode("mtd",[],["mtr-glue"]),s=new q.MathNode("mtd",[],["mml-eqn-num"]),a=0;a0){var g=e.cols,x="",v=!1,b=0,E=g.length;g[0].type==="separator"&&(f+="top ",b=1),g[g.length-1].type==="separator"&&(f+="bottom ",E-=1);for(var S=b;S0?"left ":"",f+=D[D.length-1].length>0?"right ":"";for(var $=1;$-1?"alignat":"align",s=e.envName==="split",a=Jr(e.parser,{cols:r,addJot:!0,autoTag:s?void 0:Lu(e.envName),emptySingleRow:!0,colSeparationType:n,maxNumCols:s?2:void 0,leqno:e.parser.settings.leqno},"display"),o,l=0,h={type:"ordgroup",mode:e.mode,body:[]};if(t[0]&&t[0].type==="ordgroup"){for(var d="",c=0;c0&&m&&(v=1),r[g]={type:"align",align:x,pregap:v,postgap:0}}return a.colSeparationType=m?"align":"alignat",a};Vi({type:"array",names:["array","darray"],props:{numArgs:1},handler(i,e){var t=$0(e[0]),r=t?[e[0]]:le(e[0],"ordgroup").body,n=r.map(function(a){var o=Su(a),l=o.text;if("lcr".indexOf(l)!==-1)return{type:"align",align:l};if(l==="|")return{type:"separator",separator:"|"};if(l===":")return{type:"separator",separator:":"};throw new U("Unknown column alignment: "+l,a)}),s={cols:n,hskipBeforeAndAfter:!0,maxNumCols:n.length};return Jr(i.parser,s,zu(i.envName))},htmlBuilder:Xi,mathmlBuilder:Ki});Vi({type:"array",names:["matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix","matrix*","pmatrix*","bmatrix*","Bmatrix*","vmatrix*","Vmatrix*"],props:{numArgs:0},handler(i){var e={matrix:null,pmatrix:["(",")"],bmatrix:["[","]"],Bmatrix:["\\{","\\}"],vmatrix:["|","|"],Vmatrix:["\\Vert","\\Vert"]}[i.envName.replace("*","")],t="c",r={hskipBeforeAndAfter:!1,cols:[{type:"align",align:t}]};if(i.envName.charAt(i.envName.length-1)==="*"){var n=i.parser;if(n.consumeSpaces(),n.fetch().text==="["){if(n.consume(),n.consumeSpaces(),t=n.fetch().text,"lcr".indexOf(t)===-1)throw new U("Expected l or c or r",n.nextToken);n.consume(),n.consumeSpaces(),n.expect("]"),n.consume(),r.cols=[{type:"align",align:t}]}}var s=Jr(i.parser,r,zu(i.envName)),a=Math.max(0,...s.body.map(o=>o.length));return s.cols=new Array(a).fill({type:"align",align:t}),e?{type:"leftright",mode:i.mode,body:[s],left:e[0],right:e[1],rightColor:void 0}:s},htmlBuilder:Xi,mathmlBuilder:Ki});Vi({type:"array",names:["smallmatrix"],props:{numArgs:0},handler(i){var e={arraystretch:.5},t=Jr(i.parser,e,"script");return t.colSeparationType="small",t},htmlBuilder:Xi,mathmlBuilder:Ki});Vi({type:"array",names:["subarray"],props:{numArgs:1},handler(i,e){var t=$0(e[0]),r=t?[e[0]]:le(e[0],"ordgroup").body,n=r.map(function(a){var o=Su(a),l=o.text;if("lc".indexOf(l)!==-1)return{type:"align",align:l};throw new U("Unknown column alignment: "+l,a)});if(n.length>1)throw new U("{subarray} can contain only one column");var s={cols:n,hskipBeforeAndAfter:!1,arraystretch:.5};if(s=Jr(i.parser,s,"script"),s.body.length>0&&s.body[0].length>1)throw new U("{subarray} can contain only one column");return s},htmlBuilder:Xi,mathmlBuilder:Ki});Vi({type:"array",names:["cases","dcases","rcases","drcases"],props:{numArgs:0},handler(i){var e={arraystretch:1.2,cols:[{type:"align",align:"l",pregap:0,postgap:1},{type:"align",align:"l",pregap:0,postgap:0}]},t=Jr(i.parser,e,zu(i.envName));return{type:"leftright",mode:i.mode,body:[t],left:i.envName.indexOf("r")>-1?".":"\\{",right:i.envName.indexOf("r")>-1?"\\}":".",rightColor:void 0}},htmlBuilder:Xi,mathmlBuilder:Ki});Vi({type:"array",names:["align","align*","aligned","split"],props:{numArgs:0},handler:u6,htmlBuilder:Xi,mathmlBuilder:Ki});Vi({type:"array",names:["gathered","gather","gather*"],props:{numArgs:0},handler(i){["gather","gather*"].includes(i.envName)&&Y0(i);var e={cols:[{type:"align",align:"c"}],addJot:!0,colSeparationType:"gather",autoTag:Lu(i.envName),emptySingleRow:!0,leqno:i.parser.settings.leqno};return Jr(i.parser,e,"display")},htmlBuilder:Xi,mathmlBuilder:Ki});Vi({type:"array",names:["alignat","alignat*","alignedat"],props:{numArgs:1},handler:u6,htmlBuilder:Xi,mathmlBuilder:Ki});Vi({type:"array",names:["equation","equation*"],props:{numArgs:0},handler(i){Y0(i);var e={autoTag:Lu(i.envName),emptySingleRow:!0,singleRow:!0,maxNumCols:1,leqno:i.parser.settings.leqno};return Jr(i.parser,e,"display")},htmlBuilder:Xi,mathmlBuilder:Ki});Vi({type:"array",names:["CD"],props:{numArgs:0},handler(i){return Y0(i),rE(i.parser)},htmlBuilder:Xi,mathmlBuilder:Ki});w("\\nonumber","\\gdef\\@eqnsw{0}");w("\\notag","\\nonumber");X({type:"text",names:["\\hline","\\hdashline"],props:{numArgs:0,allowedInText:!0,allowedInMath:!0},handler(i,e){throw new U(i.funcName+" valid only within array environment")}});x2=d6;X({type:"environment",names:["\\begin","\\end"],props:{numArgs:1,argTypes:["text"]},handler(i,e){var{parser:t,funcName:r}=i,n=e[0];if(n.type!=="ordgroup")throw new U("Invalid environment name",n);for(var s="",a=0;a{var t=i.font,r=e.withFont(t);return pe(i.body,r)},m6=(i,e)=>{var t=i.font,r=e.withFont(t);return Se(i.body,r)},v2={"\\Bbb":"\\mathbb","\\bold":"\\mathbf","\\frak":"\\mathfrak","\\bm":"\\boldsymbol"};X({type:"font",names:["\\mathrm","\\mathit","\\mathbf","\\mathnormal","\\mathsfit","\\mathbb","\\mathcal","\\mathfrak","\\mathscr","\\mathsf","\\mathtt","\\Bbb","\\bold","\\frak"],props:{numArgs:1,allowedInArgument:!0},handler:(i,e)=>{var{parser:t,funcName:r}=i,n=P0(e[0]),s=r;return s in v2&&(s=v2[s]),{type:"font",mode:t.mode,font:s.slice(1),body:n}},htmlBuilder:f6,mathmlBuilder:m6});X({type:"mclass",names:["\\boldsymbol","\\bm"],props:{numArgs:1},handler:(i,e)=>{var{parser:t}=i,r=e[0],n=ve.isCharacterBox(r);return{type:"mclass",mode:t.mode,mclass:j0(r),body:[{type:"font",mode:t.mode,font:"boldsymbol",body:r}],isCharacterBox:n}}});X({type:"font",names:["\\rm","\\sf","\\tt","\\bf","\\it","\\cal"],props:{numArgs:0,allowedInText:!0},handler:(i,e)=>{var{parser:t,funcName:r,breakOnTokenText:n}=i,{mode:s}=t,a=t.parseExpression(!0,n),o="math"+r.slice(1);return{type:"font",mode:s,font:o,body:{type:"ordgroup",mode:t.mode,body:a}}},htmlBuilder:f6,mathmlBuilder:m6});p6=(i,e)=>{var t=e;return i==="display"?t=t.id>=ie.SCRIPT.id?t.text():ie.DISPLAY:i==="text"&&t.size===ie.DISPLAY.size?t=ie.TEXT:i==="script"?t=ie.SCRIPT:i==="scriptscript"&&(t=ie.SCRIPTSCRIPT),t},Iu=(i,e)=>{var t=p6(i.size,e.style),r=t.fracNum(),n=t.fracDen(),s;s=e.havingStyle(r);var a=pe(i.numer,s,e);if(i.continued){var o=8.5/e.fontMetrics().ptPerEm,l=3.5/e.fontMetrics().ptPerEm;a.height=a.height0?g=3*f:g=7*f,x=e.fontMetrics().denom1):(c>0?(m=e.fontMetrics().num2,g=f):(m=e.fontMetrics().num3,g=3*f),x=e.fontMetrics().denom2);var v;if(d){var E=e.fontMetrics().axisHeight;m-a.depth-(E+.5*c){var t=new q.MathNode("mfrac",[Se(i.numer,e),Se(i.denom,e)]);if(!i.hasBarLine)t.setAttribute("linethickness","0px");else if(i.barSize){var r=He(i.barSize,e);t.setAttribute("linethickness",j(r))}var n=p6(i.size,e.style);if(n.size!==e.style.size){t=new q.MathNode("mstyle",[t]);var s=n.size===ie.DISPLAY.size?"true":"false";t.setAttribute("displaystyle",s),t.setAttribute("scriptlevel","0")}if(i.leftDelim!=null||i.rightDelim!=null){var a=[];if(i.leftDelim!=null){var o=new q.MathNode("mo",[new q.TextNode(i.leftDelim.replace("\\",""))]);o.setAttribute("fence","true"),a.push(o)}if(a.push(t),i.rightDelim!=null){var l=new q.MathNode("mo",[new q.TextNode(i.rightDelim.replace("\\",""))]);l.setAttribute("fence","true"),a.push(l)}return Nu(a)}return t};X({type:"genfrac",names:["\\dfrac","\\frac","\\tfrac","\\dbinom","\\binom","\\tbinom","\\\\atopfrac","\\\\bracefrac","\\\\brackfrac"],props:{numArgs:2,allowedInArgument:!0},handler:(i,e)=>{var{parser:t,funcName:r}=i,n=e[0],s=e[1],a,o=null,l=null,h="auto";switch(r){case"\\dfrac":case"\\frac":case"\\tfrac":a=!0;break;case"\\\\atopfrac":a=!1;break;case"\\dbinom":case"\\binom":case"\\tbinom":a=!1,o="(",l=")";break;case"\\\\bracefrac":a=!1,o="\\{",l="\\}";break;case"\\\\brackfrac":a=!1,o="[",l="]";break;default:throw new Error("Unrecognized genfrac command")}switch(r){case"\\dfrac":case"\\dbinom":h="display";break;case"\\tfrac":case"\\tbinom":h="text";break}return{type:"genfrac",mode:t.mode,continued:!1,numer:n,denom:s,hasBarLine:a,leftDelim:o,rightDelim:l,size:h,barSize:null}},htmlBuilder:Iu,mathmlBuilder:Ru});X({type:"genfrac",names:["\\cfrac"],props:{numArgs:2},handler:(i,e)=>{var{parser:t,funcName:r}=i,n=e[0],s=e[1];return{type:"genfrac",mode:t.mode,continued:!0,numer:n,denom:s,hasBarLine:!0,leftDelim:null,rightDelim:null,size:"display",barSize:null}}});X({type:"infix",names:["\\over","\\choose","\\atop","\\brace","\\brack"],props:{numArgs:0,infix:!0},handler(i){var{parser:e,funcName:t,token:r}=i,n;switch(t){case"\\over":n="\\frac";break;case"\\choose":n="\\binom";break;case"\\atop":n="\\\\atopfrac";break;case"\\brace":n="\\\\bracefrac";break;case"\\brack":n="\\\\brackfrac";break;default:throw new Error("Unrecognized infix genfrac command")}return{type:"infix",mode:e.mode,replaceWith:n,token:r}}});y2=["display","text","script","scriptscript"],b2=function(e){var t=null;return e.length>0&&(t=e,t=t==="."?null:t),t};X({type:"genfrac",names:["\\genfrac"],props:{numArgs:6,allowedInArgument:!0,argTypes:["math","math","size","text","math","math"]},handler(i,e){var{parser:t}=i,r=e[4],n=e[5],s=P0(e[0]),a=s.type==="atom"&&s.family==="open"?b2(s.text):null,o=P0(e[1]),l=o.type==="atom"&&o.family==="close"?b2(o.text):null,h=le(e[2],"size"),d,c=null;h.isBlank?d=!0:(c=h.value,d=c.number>0);var f="auto",m=e[3];if(m.type==="ordgroup"){if(m.body.length>0){var g=le(m.body[0],"textord");f=y2[Number(g.text)]}}else m=le(m,"textord"),f=y2[Number(m.text)];return{type:"genfrac",mode:t.mode,numer:r,denom:n,continued:!1,hasBarLine:d,barSize:c,leftDelim:a,rightDelim:l,size:f}},htmlBuilder:Iu,mathmlBuilder:Ru});X({type:"infix",names:["\\above"],props:{numArgs:1,argTypes:["size"],infix:!0},handler(i,e){var{parser:t,funcName:r,token:n}=i;return{type:"infix",mode:t.mode,replaceWith:"\\\\abovefrac",size:le(e[0],"size").value,token:n}}});X({type:"genfrac",names:["\\\\abovefrac"],props:{numArgs:3,argTypes:["math","size","math"]},handler:(i,e)=>{var{parser:t,funcName:r}=i,n=e[0],s=XT(le(e[1],"infix").size),a=e[2],o=s.number>0;return{type:"genfrac",mode:t.mode,numer:n,denom:a,continued:!1,hasBarLine:o,barSize:s,leftDelim:null,rightDelim:null,size:"auto"}},htmlBuilder:Iu,mathmlBuilder:Ru});g6=(i,e)=>{var t=e.style,r,n;i.type==="supsub"?(r=i.sup?pe(i.sup,e.havingStyle(t.sup()),e):pe(i.sub,e.havingStyle(t.sub()),e),n=le(i.base,"horizBrace")):n=le(i,"horizBrace");var s=pe(n.base,e.havingBaseStyle(ie.DISPLAY)),a=gr.svgSpan(n,e),o;if(n.isOver?(o=L.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:s},{type:"kern",size:.1},{type:"elem",elem:a}]},e),o.children[0].children[0].children[1].classes.push("svg-align")):(o=L.makeVList({positionType:"bottom",positionData:s.depth+.1+a.height,children:[{type:"elem",elem:a},{type:"kern",size:.1},{type:"elem",elem:s}]},e),o.children[0].children[0].children[0].classes.push("svg-align")),r){var l=L.makeSpan(["mord",n.isOver?"mover":"munder"],[o],e);n.isOver?o=L.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:l},{type:"kern",size:.2},{type:"elem",elem:r}]},e):o=L.makeVList({positionType:"bottom",positionData:l.depth+.2+r.height+r.depth,children:[{type:"elem",elem:r},{type:"kern",size:.2},{type:"elem",elem:l}]},e)}return L.makeSpan(["mord",n.isOver?"mover":"munder"],[o],e)},vE=(i,e)=>{var t=gr.mathMLnode(i.label);return new q.MathNode(i.isOver?"mover":"munder",[Se(i.base,e),t])};X({type:"horizBrace",names:["\\overbrace","\\underbrace"],props:{numArgs:1},handler(i,e){var{parser:t,funcName:r}=i;return{type:"horizBrace",mode:t.mode,label:r,isOver:/^\\over/.test(r),base:e[0]}},htmlBuilder:g6,mathmlBuilder:vE});X({type:"href",names:["\\href"],props:{numArgs:2,argTypes:["url","original"],allowedInText:!0},handler:(i,e)=>{var{parser:t}=i,r=e[1],n=le(e[0],"url").url;return t.settings.isTrusted({command:"\\href",url:n})?{type:"href",mode:t.mode,href:n,body:We(r)}:t.formatUnsupportedCmd("\\href")},htmlBuilder:(i,e)=>{var t=tt(i.body,e,!1);return L.makeAnchor(i.href,[],t,e)},mathmlBuilder:(i,e)=>{var t=Qr(i.body,e);return t instanceof Et||(t=new Et("mrow",[t])),t.setAttribute("href",i.href),t}});X({type:"href",names:["\\url"],props:{numArgs:1,argTypes:["url"],allowedInText:!0},handler:(i,e)=>{var{parser:t}=i,r=le(e[0],"url").url;if(!t.settings.isTrusted({command:"\\url",url:r}))return t.formatUnsupportedCmd("\\url");for(var n=[],s=0;s{var{parser:t,funcName:r,token:n}=i,s=le(e[0],"raw").string,a=e[1];t.settings.strict&&t.settings.reportNonstrict("htmlExtension","HTML extension is disabled on strict mode");var o,l={};switch(r){case"\\htmlClass":l.class=s,o={command:"\\htmlClass",class:s};break;case"\\htmlId":l.id=s,o={command:"\\htmlId",id:s};break;case"\\htmlStyle":l.style=s,o={command:"\\htmlStyle",style:s};break;case"\\htmlData":{for(var h=s.split(","),d=0;d{var t=tt(i.body,e,!1),r=["enclosing"];i.attributes.class&&r.push(...i.attributes.class.trim().split(/\s+/));var n=L.makeSpan(r,t,e);for(var s in i.attributes)s!=="class"&&i.attributes.hasOwnProperty(s)&&n.setAttribute(s,i.attributes[s]);return n},mathmlBuilder:(i,e)=>Qr(i.body,e)});X({type:"htmlmathml",names:["\\html@mathml"],props:{numArgs:2,allowedInText:!0},handler:(i,e)=>{var{parser:t}=i;return{type:"htmlmathml",mode:t.mode,html:We(e[0]),mathml:We(e[1])}},htmlBuilder:(i,e)=>{var t=tt(i.html,e,!1);return L.makeFragment(t)},mathmlBuilder:(i,e)=>Qr(i.mathml,e)});su=function(e){if(/^[-+]? *(\d+(\.\d*)?|\.\d+)$/.test(e))return{number:+e,unit:"bp"};var t=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(e);if(!t)throw new U("Invalid size: '"+e+"' in \\includegraphics");var r={number:+(t[1]+t[2]),unit:t[3]};if(!D2(r))throw new U("Invalid unit: '"+r.unit+"' in \\includegraphics.");return r};X({type:"includegraphics",names:["\\includegraphics"],props:{numArgs:1,numOptionalArgs:1,argTypes:["raw","url"],allowedInText:!1},handler:(i,e,t)=>{var{parser:r}=i,n={number:0,unit:"em"},s={number:.9,unit:"em"},a={number:0,unit:"em"},o="";if(t[0])for(var l=le(t[0],"raw").string,h=l.split(","),d=0;d{var t=He(i.height,e),r=0;i.totalheight.number>0&&(r=He(i.totalheight,e)-t);var n=0;i.width.number>0&&(n=He(i.width,e));var s={height:j(t+r)};n>0&&(s.width=j(n)),r>0&&(s.verticalAlign=j(-r));var a=new cu(i.src,i.alt,s);return a.height=t,a.depth=r,a},mathmlBuilder:(i,e)=>{var t=new q.MathNode("mglyph",[]);t.setAttribute("alt",i.alt);var r=He(i.height,e),n=0;if(i.totalheight.number>0&&(n=He(i.totalheight,e)-r,t.setAttribute("valign",j(-n))),t.setAttribute("height",j(r+n)),i.width.number>0){var s=He(i.width,e);t.setAttribute("width",j(s))}return t.setAttribute("src",i.src),t}});X({type:"kern",names:["\\kern","\\mkern","\\hskip","\\mskip"],props:{numArgs:1,argTypes:["size"],primitive:!0,allowedInText:!0},handler(i,e){var{parser:t,funcName:r}=i,n=le(e[0],"size");if(t.settings.strict){var s=r[1]==="m",a=n.value.unit==="mu";s?(a||t.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+r+" supports only mu units, "+("not "+n.value.unit+" units")),t.mode!=="math"&&t.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+r+" works only in math mode")):a&&t.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+r+" doesn't support mu units")}return{type:"kern",mode:t.mode,dimension:n.value}},htmlBuilder(i,e){return L.makeGlue(i.dimension,e)},mathmlBuilder(i,e){var t=He(i.dimension,e);return new q.SpaceNode(t)}});X({type:"lap",names:["\\mathllap","\\mathrlap","\\mathclap"],props:{numArgs:1,allowedInText:!0},handler:(i,e)=>{var{parser:t,funcName:r}=i,n=e[0];return{type:"lap",mode:t.mode,alignment:r.slice(5),body:n}},htmlBuilder:(i,e)=>{var t;i.alignment==="clap"?(t=L.makeSpan([],[pe(i.body,e)]),t=L.makeSpan(["inner"],[t],e)):t=L.makeSpan(["inner"],[pe(i.body,e)]);var r=L.makeSpan(["fix"],[]),n=L.makeSpan([i.alignment],[t,r],e),s=L.makeSpan(["strut"]);return s.style.height=j(n.height+n.depth),n.depth&&(s.style.verticalAlign=j(-n.depth)),n.children.unshift(s),n=L.makeSpan(["thinbox"],[n],e),L.makeSpan(["mord","vbox"],[n],e)},mathmlBuilder:(i,e)=>{var t=new q.MathNode("mpadded",[Se(i.body,e)]);if(i.alignment!=="rlap"){var r=i.alignment==="llap"?"-1":"-0.5";t.setAttribute("lspace",r+"width")}return t.setAttribute("width","0px"),t}});X({type:"styling",names:["\\(","$"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(i,e){var{funcName:t,parser:r}=i,n=r.mode;r.switchMode("math");var s=t==="\\("?"\\)":"$",a=r.parseExpression(!1,s);return r.expect(s),r.switchMode(n),{type:"styling",mode:r.mode,style:"text",body:a}}});X({type:"text",names:["\\)","\\]"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(i,e){throw new U("Mismatched "+i.funcName)}});w2=(i,e)=>{switch(e.style.size){case ie.DISPLAY.size:return i.display;case ie.TEXT.size:return i.text;case ie.SCRIPT.size:return i.script;case ie.SCRIPTSCRIPT.size:return i.scriptscript;default:return i.text}};X({type:"mathchoice",names:["\\mathchoice"],props:{numArgs:4,primitive:!0},handler:(i,e)=>{var{parser:t}=i;return{type:"mathchoice",mode:t.mode,display:We(e[0]),text:We(e[1]),script:We(e[2]),scriptscript:We(e[3])}},htmlBuilder:(i,e)=>{var t=w2(i,e),r=tt(t,e,!1);return L.makeFragment(r)},mathmlBuilder:(i,e)=>{var t=w2(i,e);return Qr(t,e)}});x6=(i,e,t,r,n,s,a)=>{i=L.makeSpan([],[i]);var o=t&&ve.isCharacterBox(t),l,h;if(e){var d=pe(e,r.havingStyle(n.sup()),r);h={elem:d,kern:Math.max(r.fontMetrics().bigOpSpacing1,r.fontMetrics().bigOpSpacing3-d.depth)}}if(t){var c=pe(t,r.havingStyle(n.sub()),r);l={elem:c,kern:Math.max(r.fontMetrics().bigOpSpacing2,r.fontMetrics().bigOpSpacing4-c.height)}}var f;if(h&&l){var m=r.fontMetrics().bigOpSpacing5+l.elem.height+l.elem.depth+l.kern+i.depth+a;f=L.makeVList({positionType:"bottom",positionData:m,children:[{type:"kern",size:r.fontMetrics().bigOpSpacing5},{type:"elem",elem:l.elem,marginLeft:j(-s)},{type:"kern",size:l.kern},{type:"elem",elem:i},{type:"kern",size:h.kern},{type:"elem",elem:h.elem,marginLeft:j(s)},{type:"kern",size:r.fontMetrics().bigOpSpacing5}]},r)}else if(l){var g=i.height-a;f=L.makeVList({positionType:"top",positionData:g,children:[{type:"kern",size:r.fontMetrics().bigOpSpacing5},{type:"elem",elem:l.elem,marginLeft:j(-s)},{type:"kern",size:l.kern},{type:"elem",elem:i}]},r)}else if(h){var x=i.depth+a;f=L.makeVList({positionType:"bottom",positionData:x,children:[{type:"elem",elem:i},{type:"kern",size:h.kern},{type:"elem",elem:h.elem,marginLeft:j(s)},{type:"kern",size:r.fontMetrics().bigOpSpacing5}]},r)}else return i;var v=[f];if(l&&s!==0&&!o){var b=L.makeSpan(["mspace"],[],r);b.style.marginRight=j(s),v.unshift(b)}return L.makeSpan(["mop","op-limits"],v,r)},v6=["\\smallint"],Ps=(i,e)=>{var t,r,n=!1,s;i.type==="supsub"?(t=i.sup,r=i.sub,s=le(i.base,"op"),n=!0):s=le(i,"op");var a=e.style,o=!1;a.size===ie.DISPLAY.size&&s.symbol&&!v6.includes(s.name)&&(o=!0);var l;if(s.symbol){var h=o?"Size2-Regular":"Size1-Regular",d="";if((s.name==="\\oiint"||s.name==="\\oiiint")&&(d=s.name.slice(1),s.name=d==="oiint"?"\\iint":"\\iiint"),l=L.makeSymbol(s.name,h,"math",e,["mop","op-symbol",o?"large-op":"small-op"]),d.length>0){var c=l.italic,f=L.staticSvg(d+"Size"+(o?"2":"1"),e);l=L.makeVList({positionType:"individualShift",children:[{type:"elem",elem:l,shift:0},{type:"elem",elem:f,shift:o?.08:0}]},e),s.name="\\"+d,l.classes.unshift("mop"),l.italic=c}}else if(s.body){var m=tt(s.body,e,!0);m.length===1&&m[0]instanceof $t?(l=m[0],l.classes[0]="mop"):l=L.makeSpan(["mop"],m,e)}else{for(var g=[],x=1;x{var t;if(i.symbol)t=new Et("mo",[xi(i.name,i.mode)]),v6.includes(i.name)&&t.setAttribute("largeop","false");else if(i.body)t=new Et("mo",jt(i.body,e));else{t=new Et("mi",[new gi(i.name.slice(1))]);var r=new Et("mo",[xi("\u2061","text")]);i.parentIsSupSub?t=new Et("mrow",[t,r]):t=Y2([t,r])}return t},yE={"\u220F":"\\prod","\u2210":"\\coprod","\u2211":"\\sum","\u22C0":"\\bigwedge","\u22C1":"\\bigvee","\u22C2":"\\bigcap","\u22C3":"\\bigcup","\u2A00":"\\bigodot","\u2A01":"\\bigoplus","\u2A02":"\\bigotimes","\u2A04":"\\biguplus","\u2A06":"\\bigsqcup"};X({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:(i,e)=>{var{parser:t,funcName:r}=i,n=r;return n.length===1&&(n=yE[n]),{type:"op",mode:t.mode,limits:!0,parentIsSupSub:!1,symbol:!0,name:n}},htmlBuilder:Ps,mathmlBuilder:So});X({type:"op",names:["\\mathop"],props:{numArgs:1,primitive:!0},handler:(i,e)=>{var{parser:t}=i,r=e[0];return{type:"op",mode:t.mode,limits:!1,parentIsSupSub:!1,symbol:!1,body:We(r)}},htmlBuilder:Ps,mathmlBuilder:So});bE={"\u222B":"\\int","\u222C":"\\iint","\u222D":"\\iiint","\u222E":"\\oint","\u222F":"\\oiint","\u2230":"\\oiiint"};X({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(i){var{parser:e,funcName:t}=i;return{type:"op",mode:e.mode,limits:!1,parentIsSupSub:!1,symbol:!1,name:t}},htmlBuilder:Ps,mathmlBuilder:So});X({type:"op",names:["\\det","\\gcd","\\inf","\\lim","\\max","\\min","\\Pr","\\sup"],props:{numArgs:0},handler(i){var{parser:e,funcName:t}=i;return{type:"op",mode:e.mode,limits:!0,parentIsSupSub:!1,symbol:!1,name:t}},htmlBuilder:Ps,mathmlBuilder:So});X({type:"op",names:["\\int","\\iint","\\iiint","\\oint","\\oiint","\\oiiint","\u222B","\u222C","\u222D","\u222E","\u222F","\u2230"],props:{numArgs:0,allowedInArgument:!0},handler(i){var{parser:e,funcName:t}=i,r=t;return r.length===1&&(r=bE[r]),{type:"op",mode:e.mode,limits:!1,parentIsSupSub:!1,symbol:!0,name:r}},htmlBuilder:Ps,mathmlBuilder:So});y6=(i,e)=>{var t,r,n=!1,s;i.type==="supsub"?(t=i.sup,r=i.sub,s=le(i.base,"operatorname"),n=!0):s=le(i,"operatorname");var a;if(s.body.length>0){for(var o=s.body.map(c=>{var f=c.text;return typeof f=="string"?{type:"textord",mode:c.mode,text:f}:c}),l=tt(o,e.withFont("mathrm"),!0),h=0;h{for(var t=jt(i.body,e.withFont("mathrm")),r=!0,n=0;nd.toText()).join("");t=[new q.TextNode(o)]}var l=new q.MathNode("mi",t);l.setAttribute("mathvariant","normal");var h=new q.MathNode("mo",[xi("\u2061","text")]);return i.parentIsSupSub?new q.MathNode("mrow",[l,h]):q.newDocumentFragment([l,h])};X({type:"operatorname",names:["\\operatorname@","\\operatornamewithlimits"],props:{numArgs:1},handler:(i,e)=>{var{parser:t,funcName:r}=i,n=e[0];return{type:"operatorname",mode:t.mode,body:We(n),alwaysHandleSupSub:r==="\\operatornamewithlimits",limits:!1,parentIsSupSub:!1}},htmlBuilder:y6,mathmlBuilder:wE});w("\\operatorname","\\@ifstar\\operatornamewithlimits\\operatorname@");Gn({type:"ordgroup",htmlBuilder(i,e){return i.semisimple?L.makeFragment(tt(i.body,e,!1)):L.makeSpan(["mord"],tt(i.body,e,!0),e)},mathmlBuilder(i,e){return Qr(i.body,e,!0)}});X({type:"overline",names:["\\overline"],props:{numArgs:1},handler(i,e){var{parser:t}=i,r=e[0];return{type:"overline",mode:t.mode,body:r}},htmlBuilder(i,e){var t=pe(i.body,e.havingCrampedStyle()),r=L.makeLineSpan("overline-line",e),n=e.fontMetrics().defaultRuleThickness,s=L.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:t},{type:"kern",size:3*n},{type:"elem",elem:r},{type:"kern",size:n}]},e);return L.makeSpan(["mord","overline"],[s],e)},mathmlBuilder(i,e){var t=new q.MathNode("mo",[new q.TextNode("\u203E")]);t.setAttribute("stretchy","true");var r=new q.MathNode("mover",[Se(i.body,e),t]);return r.setAttribute("accent","true"),r}});X({type:"phantom",names:["\\phantom"],props:{numArgs:1,allowedInText:!0},handler:(i,e)=>{var{parser:t}=i,r=e[0];return{type:"phantom",mode:t.mode,body:We(r)}},htmlBuilder:(i,e)=>{var t=tt(i.body,e.withPhantom(),!1);return L.makeFragment(t)},mathmlBuilder:(i,e)=>{var t=jt(i.body,e);return new q.MathNode("mphantom",t)}});X({type:"hphantom",names:["\\hphantom"],props:{numArgs:1,allowedInText:!0},handler:(i,e)=>{var{parser:t}=i,r=e[0];return{type:"hphantom",mode:t.mode,body:r}},htmlBuilder:(i,e)=>{var t=L.makeSpan([],[pe(i.body,e.withPhantom())]);if(t.height=0,t.depth=0,t.children)for(var r=0;r{var t=jt(We(i.body),e),r=new q.MathNode("mphantom",t),n=new q.MathNode("mpadded",[r]);return n.setAttribute("height","0px"),n.setAttribute("depth","0px"),n}});X({type:"vphantom",names:["\\vphantom"],props:{numArgs:1,allowedInText:!0},handler:(i,e)=>{var{parser:t}=i,r=e[0];return{type:"vphantom",mode:t.mode,body:r}},htmlBuilder:(i,e)=>{var t=L.makeSpan(["inner"],[pe(i.body,e.withPhantom())]),r=L.makeSpan(["fix"],[]);return L.makeSpan(["mord","rlap"],[t,r],e)},mathmlBuilder:(i,e)=>{var t=jt(We(i.body),e),r=new q.MathNode("mphantom",t),n=new q.MathNode("mpadded",[r]);return n.setAttribute("width","0px"),n}});X({type:"raisebox",names:["\\raisebox"],props:{numArgs:2,argTypes:["size","hbox"],allowedInText:!0},handler(i,e){var{parser:t}=i,r=le(e[0],"size").value,n=e[1];return{type:"raisebox",mode:t.mode,dy:r,body:n}},htmlBuilder(i,e){var t=pe(i.body,e),r=He(i.dy,e);return L.makeVList({positionType:"shift",positionData:-r,children:[{type:"elem",elem:t}]},e)},mathmlBuilder(i,e){var t=new q.MathNode("mpadded",[Se(i.body,e)]),r=i.dy.number+i.dy.unit;return t.setAttribute("voffset",r),t}});X({type:"internal",names:["\\relax"],props:{numArgs:0,allowedInText:!0,allowedInArgument:!0},handler(i){var{parser:e}=i;return{type:"internal",mode:e.mode}}});X({type:"rule",names:["\\rule"],props:{numArgs:2,numOptionalArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["size","size","size"]},handler(i,e,t){var{parser:r}=i,n=t[0],s=le(e[0],"size"),a=le(e[1],"size");return{type:"rule",mode:r.mode,shift:n&&le(n,"size").value,width:s.value,height:a.value}},htmlBuilder(i,e){var t=L.makeSpan(["mord","rule"],[],e),r=He(i.width,e),n=He(i.height,e),s=i.shift?He(i.shift,e):0;return t.style.borderRightWidth=j(r),t.style.borderTopWidth=j(n),t.style.bottom=j(s),t.width=r,t.height=n+s,t.depth=-s,t.maxFontSize=n*1.125*e.sizeMultiplier,t},mathmlBuilder(i,e){var t=He(i.width,e),r=He(i.height,e),n=i.shift?He(i.shift,e):0,s=e.color&&e.getColor()||"black",a=new q.MathNode("mspace");a.setAttribute("mathbackground",s),a.setAttribute("width",j(t)),a.setAttribute("height",j(r));var o=new q.MathNode("mpadded",[a]);return n>=0?o.setAttribute("height",j(n)):(o.setAttribute("height",j(n)),o.setAttribute("depth",j(-n))),o.setAttribute("voffset",j(n)),o}});M2=["\\tiny","\\sixptsize","\\scriptsize","\\footnotesize","\\small","\\normalsize","\\large","\\Large","\\LARGE","\\huge","\\Huge"],ME=(i,e)=>{var t=e.havingSize(i.size);return b6(i.body,t,e)};X({type:"sizing",names:M2,props:{numArgs:0,allowedInText:!0},handler:(i,e)=>{var{breakOnTokenText:t,funcName:r,parser:n}=i,s=n.parseExpression(!1,t);return{type:"sizing",mode:n.mode,size:M2.indexOf(r)+1,body:s}},htmlBuilder:ME,mathmlBuilder:(i,e)=>{var t=e.havingSize(i.size),r=jt(i.body,t),n=new q.MathNode("mstyle",r);return n.setAttribute("mathsize",j(t.sizeMultiplier)),n}});X({type:"smash",names:["\\smash"],props:{numArgs:1,numOptionalArgs:1,allowedInText:!0},handler:(i,e,t)=>{var{parser:r}=i,n=!1,s=!1,a=t[0]&&le(t[0],"ordgroup");if(a)for(var o="",l=0;l{var t=L.makeSpan([],[pe(i.body,e)]);if(!i.smashHeight&&!i.smashDepth)return t;if(i.smashHeight&&(t.height=0,t.children))for(var r=0;r{var t=new q.MathNode("mpadded",[Se(i.body,e)]);return i.smashHeight&&t.setAttribute("height","0px"),i.smashDepth&&t.setAttribute("depth","0px"),t}});X({type:"sqrt",names:["\\sqrt"],props:{numArgs:1,numOptionalArgs:1},handler(i,e,t){var{parser:r}=i,n=t[0],s=e[0];return{type:"sqrt",mode:r.mode,body:s,index:n}},htmlBuilder(i,e){var t=pe(i.body,e.havingCrampedStyle());t.height===0&&(t.height=e.fontMetrics().xHeight),t=L.wrapFragment(t,e);var r=e.fontMetrics(),n=r.defaultRuleThickness,s=n;e.style.idt.height+t.depth+a&&(a=(a+c-t.height-t.depth)/2);var f=l.height-t.height-a-h;t.style.paddingLeft=j(d);var m=L.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:t,wrapperClasses:["svg-align"]},{type:"kern",size:-(t.height+f)},{type:"elem",elem:l},{type:"kern",size:h}]},e);if(i.index){var g=e.havingStyle(ie.SCRIPTSCRIPT),x=pe(i.index,g,e),v=.6*(m.height-m.depth),b=L.makeVList({positionType:"shift",positionData:-v,children:[{type:"elem",elem:x}]},e),E=L.makeSpan(["root"],[b]);return L.makeSpan(["mord","sqrt"],[E,m],e)}else return L.makeSpan(["mord","sqrt"],[m],e)},mathmlBuilder(i,e){var{body:t,index:r}=i;return r?new q.MathNode("mroot",[Se(t,e),Se(r,e)]):new q.MathNode("msqrt",[Se(t,e)])}});T2={display:ie.DISPLAY,text:ie.TEXT,script:ie.SCRIPT,scriptscript:ie.SCRIPTSCRIPT};X({type:"styling",names:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(i,e){var{breakOnTokenText:t,funcName:r,parser:n}=i,s=n.parseExpression(!0,t),a=r.slice(1,r.length-5);return{type:"styling",mode:n.mode,style:a,body:s}},htmlBuilder(i,e){var t=T2[i.style],r=e.havingStyle(t).withFont("");return b6(i.body,r,e)},mathmlBuilder(i,e){var t=T2[i.style],r=e.havingStyle(t),n=jt(i.body,r),s=new q.MathNode("mstyle",n),a={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]},o=a[i.style];return s.setAttribute("scriptlevel",o[0]),s.setAttribute("displaystyle",o[1]),s}});TE=function(e,t){var r=e.base;if(r)if(r.type==="op"){var n=r.limits&&(t.style.size===ie.DISPLAY.size||r.alwaysHandleSupSub);return n?Ps:null}else if(r.type==="operatorname"){var s=r.alwaysHandleSupSub&&(t.style.size===ie.DISPLAY.size||r.limits);return s?y6:null}else{if(r.type==="accent")return ve.isCharacterBox(r.base)?Au:null;if(r.type==="horizBrace"){var a=!e.sub;return a===r.isOver?g6:null}else return null}else return null};Gn({type:"supsub",htmlBuilder(i,e){var t=TE(i,e);if(t)return t(i,e);var{base:r,sup:n,sub:s}=i,a=pe(r,e),o,l,h=e.fontMetrics(),d=0,c=0,f=r&&ve.isCharacterBox(r);if(n){var m=e.havingStyle(e.style.sup());o=pe(n,m,e),f||(d=a.height-m.fontMetrics().supDrop*m.sizeMultiplier/e.sizeMultiplier)}if(s){var g=e.havingStyle(e.style.sub());l=pe(s,g,e),f||(c=a.depth+g.fontMetrics().subDrop*g.sizeMultiplier/e.sizeMultiplier)}var x;e.style===ie.DISPLAY?x=h.sup1:e.style.cramped?x=h.sup3:x=h.sup2;var v=e.sizeMultiplier,b=j(.5/h.ptPerEm/v),E=null;if(l){var S=i.base&&i.base.type==="op"&&i.base.name&&(i.base.name==="\\oiint"||i.base.name==="\\oiiint");(a instanceof $t||S)&&(E=j(-a.italic))}var C;if(o&&l){d=Math.max(d,x,o.depth+.25*h.xHeight),c=Math.max(c,h.sub2);var _=h.defaultRuleThickness,I=4*_;if(d-o.depth-(l.height-c)0&&(d+=O,c-=O)}var D=[{type:"elem",elem:l,shift:c,marginRight:b,marginLeft:E},{type:"elem",elem:o,shift:-d,marginRight:b}];C=L.makeVList({positionType:"individualShift",children:D},e)}else if(l){c=Math.max(c,h.sub1,l.height-.8*h.xHeight);var $=[{type:"elem",elem:l,marginLeft:E,marginRight:b}];C=L.makeVList({positionType:"shift",positionData:c,children:$},e)}else if(o)d=Math.max(d,x,o.depth+.25*h.xHeight),C=L.makeVList({positionType:"shift",positionData:-d,children:[{type:"elem",elem:o,marginRight:b}]},e);else throw new Error("supsub must have either sup or sub.");var F=fu(a,"right")||"mord";return L.makeSpan([F],[a,L.makeSpan(["msupsub"],[C])],e)},mathmlBuilder(i,e){var t=!1,r,n;i.base&&i.base.type==="horizBrace"&&(n=!!i.sup,n===i.base.isOver&&(t=!0,r=i.base.isOver)),i.base&&(i.base.type==="op"||i.base.type==="operatorname")&&(i.base.parentIsSupSub=!0);var s=[Se(i.base,e)];i.sub&&s.push(Se(i.sub,e)),i.sup&&s.push(Se(i.sup,e));var a;if(t)a=r?"mover":"munder";else if(i.sub)if(i.sup){var h=i.base;h&&h.type==="op"&&h.limits&&e.style===ie.DISPLAY||h&&h.type==="operatorname"&&h.alwaysHandleSupSub&&(e.style===ie.DISPLAY||h.limits)?a="munderover":a="msubsup"}else{var l=i.base;l&&l.type==="op"&&l.limits&&(e.style===ie.DISPLAY||l.alwaysHandleSupSub)||l&&l.type==="operatorname"&&l.alwaysHandleSupSub&&(l.limits||e.style===ie.DISPLAY)?a="munder":a="msub"}else{var o=i.base;o&&o.type==="op"&&o.limits&&(e.style===ie.DISPLAY||o.alwaysHandleSupSub)||o&&o.type==="operatorname"&&o.alwaysHandleSupSub&&(o.limits||e.style===ie.DISPLAY)?a="mover":a="msup"}return new q.MathNode(a,s)}});Gn({type:"atom",htmlBuilder(i,e){return L.mathsym(i.text,i.mode,e,["m"+i.family])},mathmlBuilder(i,e){var t=new q.MathNode("mo",[xi(i.text,i.mode)]);if(i.family==="bin"){var r=Eu(i,e);r==="bold-italic"&&t.setAttribute("mathvariant",r)}else i.family==="punct"?t.setAttribute("separator","true"):(i.family==="open"||i.family==="close")&&t.setAttribute("stretchy","false");return t}});w6={mi:"italic",mn:"normal",mtext:"normal"};Gn({type:"mathord",htmlBuilder(i,e){return L.makeOrd(i,e,"mathord")},mathmlBuilder(i,e){var t=new q.MathNode("mi",[xi(i.text,i.mode,e)]),r=Eu(i,e)||"italic";return r!==w6[t.type]&&t.setAttribute("mathvariant",r),t}});Gn({type:"textord",htmlBuilder(i,e){return L.makeOrd(i,e,"textord")},mathmlBuilder(i,e){var t=xi(i.text,i.mode,e),r=Eu(i,e)||"normal",n;return i.mode==="text"?n=new q.MathNode("mtext",[t]):/[0-9]/.test(i.text)?n=new q.MathNode("mn",[t]):i.text==="\\prime"?n=new q.MathNode("mo",[t]):n=new q.MathNode("mi",[t]),r!==w6[n.type]&&n.setAttribute("mathvariant",r),n}});au={"\\nobreak":"nobreak","\\allowbreak":"allowbreak"},ou={" ":{},"\\ ":{},"~":{className:"nobreak"},"\\space":{},"\\nobreakspace":{className:"nobreak"}};Gn({type:"spacing",htmlBuilder(i,e){if(ou.hasOwnProperty(i.text)){var t=ou[i.text].className||"";if(i.mode==="text"){var r=L.makeOrd(i,e,"textord");return r.classes.push(t),r}else return L.makeSpan(["mspace",t],[L.mathsym(i.text,i.mode,e)],e)}else{if(au.hasOwnProperty(i.text))return L.makeSpan(["mspace",au[i.text]],[],e);throw new U('Unknown type of space "'+i.text+'"')}},mathmlBuilder(i,e){var t;if(ou.hasOwnProperty(i.text))t=new q.MathNode("mtext",[new q.TextNode("\xA0")]);else{if(au.hasOwnProperty(i.text))return new q.MathNode("mspace");throw new U('Unknown type of space "'+i.text+'"')}return t}});N2=()=>{var i=new q.MathNode("mtd",[]);return i.setAttribute("width","50%"),i};Gn({type:"tag",mathmlBuilder(i,e){var t=new q.MathNode("mtable",[new q.MathNode("mtr",[N2(),new q.MathNode("mtd",[Qr(i.body,e)]),N2(),new q.MathNode("mtd",[Qr(i.tag,e)])])]);return t.setAttribute("width","100%"),t}});E2={"\\text":void 0,"\\textrm":"textrm","\\textsf":"textsf","\\texttt":"texttt","\\textnormal":"textrm"},S2={"\\textbf":"textbf","\\textmd":"textmd"},NE={"\\textit":"textit","\\textup":"textup"},A2=(i,e)=>{var t=i.font;if(t){if(E2[t])return e.withTextFontFamily(E2[t]);if(S2[t])return e.withTextFontWeight(S2[t]);if(t==="\\emph")return e.fontShape==="textit"?e.withTextFontShape("textup"):e.withTextFontShape("textit")}else return e;return e.withTextFontShape(NE[t])};X({type:"text",names:["\\text","\\textrm","\\textsf","\\texttt","\\textnormal","\\textbf","\\textmd","\\textit","\\textup","\\emph"],props:{numArgs:1,argTypes:["text"],allowedInArgument:!0,allowedInText:!0},handler(i,e){var{parser:t,funcName:r}=i,n=e[0];return{type:"text",mode:t.mode,body:We(n),font:r}},htmlBuilder(i,e){var t=A2(i,e),r=tt(i.body,t,!0);return L.makeSpan(["mord","text"],r,t)},mathmlBuilder(i,e){var t=A2(i,e);return Qr(i.body,t)}});X({type:"underline",names:["\\underline"],props:{numArgs:1,allowedInText:!0},handler(i,e){var{parser:t}=i;return{type:"underline",mode:t.mode,body:e[0]}},htmlBuilder(i,e){var t=pe(i.body,e),r=L.makeLineSpan("underline-line",e),n=e.fontMetrics().defaultRuleThickness,s=L.makeVList({positionType:"top",positionData:t.height,children:[{type:"kern",size:n},{type:"elem",elem:r},{type:"kern",size:3*n},{type:"elem",elem:t}]},e);return L.makeSpan(["mord","underline"],[s],e)},mathmlBuilder(i,e){var t=new q.MathNode("mo",[new q.TextNode("\u203E")]);t.setAttribute("stretchy","true");var r=new q.MathNode("munder",[Se(i.body,e),t]);return r.setAttribute("accentunder","true"),r}});X({type:"vcenter",names:["\\vcenter"],props:{numArgs:1,argTypes:["original"],allowedInText:!1},handler(i,e){var{parser:t}=i;return{type:"vcenter",mode:t.mode,body:e[0]}},htmlBuilder(i,e){var t=pe(i.body,e),r=e.fontMetrics().axisHeight,n=.5*(t.height-r-(t.depth+r));return L.makeVList({positionType:"shift",positionData:n,children:[{type:"elem",elem:t}]},e)},mathmlBuilder(i,e){return new q.MathNode("mpadded",[Se(i.body,e)],["vcenter"])}});X({type:"verb",names:["\\verb"],props:{numArgs:0,allowedInText:!0},handler(i,e,t){throw new U("\\verb ended by end of line instead of matching delimiter")},htmlBuilder(i,e){for(var t=k2(i),r=[],n=e.havingStyle(e.style.text()),s=0;si.body.replace(/ /g,i.star?"\u2423":"\xA0"),Kr=j2,M6=`[ \r - ]`,EE="\\\\[a-zA-Z@]+",SE="\\\\[^\uD800-\uDFFF]",AE="("+EE+")"+M6+"*",kE=`\\\\( +-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.")}},ms=class{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(),t=0;tt.toText();return this.children.map(e).join("")}},dr={"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]}},hh={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]},O6={\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"};Zu={};IS=[[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]],B6=[.5,.6,.7,.8,.9,1,1.2,1.44,1.728,2.074,2.488],P6=function(e,t){return t.size<2?e:IS[e-1][t.size-1]},Th=class i{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||i.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=B6[this.size-1],this.maxSize=e.maxSize,this.minRuleThickness=e.minRuleThickness,this._fontMetrics=void 0}extend(e){var t={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 r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);return new i(t)}havingStyle(e){return this.style===e?this:this.extend({style:e,size:P6(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:B6[e-1]})}havingBaseStyle(e){e=e||this.style.text();var t=P6(i.BASESIZE,e);return this.size===t&&this.textSize===i.BASESIZE&&this.style===e?this:this.extend({style:e,size:t})}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!==i.BASESIZE?["sizing","reset-size"+this.size,"size"+i.BASESIZE]:[]}fontMetrics(){return this._fontMetrics||(this._fontMetrics=LS(this.size)),this._fontMetrics}getColor(){return this.phantom?"transparent":this.color}};Th.BASESIZE=6;c1={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},zS={ex:!0,em:!0,mu:!0},m4=function(e){return typeof e!="string"&&(e=e.unit),e in c1||e in zS||e==="ex"},Xe=function(e,t){var r;if(e.unit in c1)r=c1[e.unit]/t.fontMetrics().ptPerEm/t.sizeMultiplier;else if(e.unit==="mu")r=t.fontMetrics().cssEmPerMu;else{var n;if(t.style.isTight()?n=t.havingStyle(t.style.text()):n=t,e.unit==="ex")r=n.fontMetrics().xHeight;else if(e.unit==="em")r=n.fontMetrics().quad;else throw new G("Invalid unit: '"+e.unit+"'");n!==t&&(r*=n.sizeMultiplier/t.sizeMultiplier)}return Math.min(e.number*r,t.maxSize)},V=function(e){return+e.toFixed(4)+"em"},yn=function(e){return e.filter(t=>t).join(" ")},p4=function(e,t,r){if(this.classes=e||[],this.attributes={},this.height=0,this.depth=0,this.maxFontSize=0,this.style=r||{},t){t.style.isTight()&&this.classes.push("mtight");var n=t.getColor();n&&(this.style.color=n)}},g4=function(e){var t=document.createElement(e);t.className=yn(this.classes);for(var r in this.style)this.style.hasOwnProperty(r)&&(t.style[r]=this.style[r]);for(var n in this.attributes)this.attributes.hasOwnProperty(n)&&t.setAttribute(n,this.attributes[n]);for(var s=0;s/=\x00-\x1f]/,x4=function(e){var t="<"+e;this.classes.length&&(t+=' class="'+Ne.escape(yn(this.classes))+'"');var r="";for(var n in this.style)this.style.hasOwnProperty(n)&&(r+=Ne.hyphenate(n)+":"+this.style[n]+";");r&&(t+=' style="'+Ne.escape(r)+'"');for(var s in this.attributes)if(this.attributes.hasOwnProperty(s)){if(RS.test(s))throw new G("Invalid attribute name '"+s+"'");t+=" "+s+'="'+Ne.escape(this.attributes[s])+'"'}t+=">";for(var a=0;a",t},ps=class{constructor(e,t,r,n){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,p4.call(this,e,r,n),this.children=t||[]}setAttribute(e,t){this.attributes[e]=t}hasClass(e){return this.classes.includes(e)}toNode(){return g4.call(this,"span")}toMarkup(){return x4.call(this,"span")}},el=class{constructor(e,t,r,n){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,p4.call(this,t,n),this.children=r||[],this.setAttribute("href",e)}setAttribute(e,t){this.attributes[e]=t}hasClass(e){return this.classes.includes(e)}toNode(){return g4.call(this,"a")}toMarkup(){return x4.call(this,"a")}},u1=class{constructor(e,t,r){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=t,this.src=e,this.classes=["mord"],this.style=r}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 t in this.style)this.style.hasOwnProperty(t)&&(e.style[t]=this.style[t]);return e}toMarkup(){var e=''+Ne.escape(this.alt)+'0&&(t=document.createElement("span"),t.style.marginRight=V(this.italic)),this.classes.length>0&&(t=t||document.createElement("span"),t.className=yn(this.classes));for(var r in this.style)this.style.hasOwnProperty(r)&&(t=t||document.createElement("span"),t.style[r]=this.style[r]);return t?(t.appendChild(e),t):e}toMarkup(){var e=!1,t="0&&(r+="margin-right:"+this.italic+"em;");for(var n in this.style)this.style.hasOwnProperty(n)&&(r+=Ne.hyphenate(n)+":"+this.style[n]+";");r&&(e=!0,t+=' style="'+Ne.escape(r)+'"');var s=Ne.escape(this.text);return e?(t+=">",t+=s,t+="",t):s}},Xi=class{constructor(e,t){this.children=void 0,this.attributes=void 0,this.children=e||[],this.attributes=t||{}}toNode(){var e="http://www.w3.org/2000/svg",t=document.createElementNS(e,"svg");for(var r in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,r)&&t.setAttribute(r,this.attributes[r]);for(var n=0;n':''}},tl=class{constructor(e){this.attributes=void 0,this.attributes=e||{}}toNode(){var e="http://www.w3.org/2000/svg",t=document.createElementNS(e,"line");for(var r in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,r)&&t.setAttribute(r,this.attributes[r]);return t}toMarkup(){var e="","\\gt",!0);u(p,v,E,"\u2208","\\in",!0);u(p,v,E,"\uE020","\\@not");u(p,v,E,"\u2282","\\subset",!0);u(p,v,E,"\u2283","\\supset",!0);u(p,v,E,"\u2286","\\subseteq",!0);u(p,v,E,"\u2287","\\supseteq",!0);u(p,N,E,"\u2288","\\nsubseteq",!0);u(p,N,E,"\u2289","\\nsupseteq",!0);u(p,v,E,"\u22A8","\\models");u(p,v,E,"\u2190","\\leftarrow",!0);u(p,v,E,"\u2264","\\le");u(p,v,E,"\u2264","\\leq",!0);u(p,v,E,"<","\\lt",!0);u(p,v,E,"\u2192","\\rightarrow",!0);u(p,v,E,"\u2192","\\to");u(p,N,E,"\u2271","\\ngeq",!0);u(p,N,E,"\u2270","\\nleq",!0);u(p,v,Dr,"\xA0","\\ ");u(p,v,Dr,"\xA0","\\space");u(p,v,Dr,"\xA0","\\nobreakspace");u(H,v,Dr,"\xA0","\\ ");u(H,v,Dr,"\xA0"," ");u(H,v,Dr,"\xA0","\\space");u(H,v,Dr,"\xA0","\\nobreakspace");u(p,v,Dr,null,"\\nobreak");u(p,v,Dr,null,"\\allowbreak");u(p,v,_h,",",",");u(p,v,_h,";",";");u(p,N,ie,"\u22BC","\\barwedge",!0);u(p,N,ie,"\u22BB","\\veebar",!0);u(p,v,ie,"\u2299","\\odot",!0);u(p,v,ie,"\u2295","\\oplus",!0);u(p,v,ie,"\u2297","\\otimes",!0);u(p,v,_,"\u2202","\\partial",!0);u(p,v,ie,"\u2298","\\oslash",!0);u(p,N,ie,"\u229A","\\circledcirc",!0);u(p,N,ie,"\u22A1","\\boxdot",!0);u(p,v,ie,"\u25B3","\\bigtriangleup");u(p,v,ie,"\u25BD","\\bigtriangledown");u(p,v,ie,"\u2020","\\dagger");u(p,v,ie,"\u22C4","\\diamond");u(p,v,ie,"\u22C6","\\star");u(p,v,ie,"\u25C3","\\triangleleft");u(p,v,ie,"\u25B9","\\triangleright");u(p,v,fi,"{","\\{");u(H,v,_,"{","\\{");u(H,v,_,"{","\\textbraceleft");u(p,v,Ft,"}","\\}");u(H,v,_,"}","\\}");u(H,v,_,"}","\\textbraceright");u(p,v,fi,"{","\\lbrace");u(p,v,Ft,"}","\\rbrace");u(p,v,fi,"[","\\lbrack",!0);u(H,v,_,"[","\\lbrack",!0);u(p,v,Ft,"]","\\rbrack",!0);u(H,v,_,"]","\\rbrack",!0);u(p,v,fi,"(","\\lparen",!0);u(p,v,Ft,")","\\rparen",!0);u(H,v,_,"<","\\textless",!0);u(H,v,_,">","\\textgreater",!0);u(p,v,fi,"\u230A","\\lfloor",!0);u(p,v,Ft,"\u230B","\\rfloor",!0);u(p,v,fi,"\u2308","\\lceil",!0);u(p,v,Ft,"\u2309","\\rceil",!0);u(p,v,_,"\\","\\backslash");u(p,v,_,"\u2223","|");u(p,v,_,"\u2223","\\vert");u(H,v,_,"|","\\textbar",!0);u(p,v,_,"\u2225","\\|");u(p,v,_,"\u2225","\\Vert");u(H,v,_,"\u2225","\\textbardbl");u(H,v,_,"~","\\textasciitilde");u(H,v,_,"\\","\\textbackslash");u(H,v,_,"^","\\textasciicircum");u(p,v,E,"\u2191","\\uparrow",!0);u(p,v,E,"\u21D1","\\Uparrow",!0);u(p,v,E,"\u2193","\\downarrow",!0);u(p,v,E,"\u21D3","\\Downarrow",!0);u(p,v,E,"\u2195","\\updownarrow",!0);u(p,v,E,"\u21D5","\\Updownarrow",!0);u(p,v,ot,"\u2210","\\coprod");u(p,v,ot,"\u22C1","\\bigvee");u(p,v,ot,"\u22C0","\\bigwedge");u(p,v,ot,"\u2A04","\\biguplus");u(p,v,ot,"\u22C2","\\bigcap");u(p,v,ot,"\u22C3","\\bigcup");u(p,v,ot,"\u222B","\\int");u(p,v,ot,"\u222B","\\intop");u(p,v,ot,"\u222C","\\iint");u(p,v,ot,"\u222D","\\iiint");u(p,v,ot,"\u220F","\\prod");u(p,v,ot,"\u2211","\\sum");u(p,v,ot,"\u2A02","\\bigotimes");u(p,v,ot,"\u2A01","\\bigoplus");u(p,v,ot,"\u2A00","\\bigodot");u(p,v,ot,"\u222E","\\oint");u(p,v,ot,"\u222F","\\oiint");u(p,v,ot,"\u2230","\\oiiint");u(p,v,ot,"\u2A06","\\bigsqcup");u(p,v,ot,"\u222B","\\smallint");u(H,v,ma,"\u2026","\\textellipsis");u(p,v,ma,"\u2026","\\mathellipsis");u(H,v,ma,"\u2026","\\ldots",!0);u(p,v,ma,"\u2026","\\ldots",!0);u(p,v,ma,"\u22EF","\\@cdots",!0);u(p,v,ma,"\u22F1","\\ddots",!0);u(p,v,_,"\u22EE","\\varvdots");u(H,v,_,"\u22EE","\\varvdots");u(p,v,je,"\u02CA","\\acute");u(p,v,je,"\u02CB","\\grave");u(p,v,je,"\xA8","\\ddot");u(p,v,je,"~","\\tilde");u(p,v,je,"\u02C9","\\bar");u(p,v,je,"\u02D8","\\breve");u(p,v,je,"\u02C7","\\check");u(p,v,je,"^","\\hat");u(p,v,je,"\u20D7","\\vec");u(p,v,je,"\u02D9","\\dot");u(p,v,je,"\u02DA","\\mathring");u(p,v,se,"\uE131","\\@imath");u(p,v,se,"\uE237","\\@jmath");u(p,v,_,"\u0131","\u0131");u(p,v,_,"\u0237","\u0237");u(H,v,_,"\u0131","\\i",!0);u(H,v,_,"\u0237","\\j",!0);u(H,v,_,"\xDF","\\ss",!0);u(H,v,_,"\xE6","\\ae",!0);u(H,v,_,"\u0153","\\oe",!0);u(H,v,_,"\xF8","\\o",!0);u(H,v,_,"\xC6","\\AE",!0);u(H,v,_,"\u0152","\\OE",!0);u(H,v,_,"\xD8","\\O",!0);u(H,v,je,"\u02CA","\\'");u(H,v,je,"\u02CB","\\`");u(H,v,je,"\u02C6","\\^");u(H,v,je,"\u02DC","\\~");u(H,v,je,"\u02C9","\\=");u(H,v,je,"\u02D8","\\u");u(H,v,je,"\u02D9","\\.");u(H,v,je,"\xB8","\\c");u(H,v,je,"\u02DA","\\r");u(H,v,je,"\u02C7","\\v");u(H,v,je,"\xA8",'\\"');u(H,v,je,"\u02DD","\\H");u(H,v,je,"\u25EF","\\textcircled");y4={"--":!0,"---":!0,"``":!0,"''":!0};u(H,v,_,"\u2013","--",!0);u(H,v,_,"\u2013","\\textendash");u(H,v,_,"\u2014","---",!0);u(H,v,_,"\u2014","\\textemdash");u(H,v,_,"\u2018","`",!0);u(H,v,_,"\u2018","\\textquoteleft");u(H,v,_,"\u2019","'",!0);u(H,v,_,"\u2019","\\textquoteright");u(H,v,_,"\u201C","``",!0);u(H,v,_,"\u201C","\\textquotedblleft");u(H,v,_,"\u201D","''",!0);u(H,v,_,"\u201D","\\textquotedblright");u(p,v,_,"\xB0","\\degree",!0);u(H,v,_,"\xB0","\\degree");u(H,v,_,"\xB0","\\textdegree",!0);u(p,v,_,"\xA3","\\pounds");u(p,v,_,"\xA3","\\mathsterling",!0);u(H,v,_,"\xA3","\\pounds");u(H,v,_,"\xA3","\\textsterling",!0);u(p,N,_,"\u2720","\\maltese");u(H,N,_,"\u2720","\\maltese");q6='0123456789/@."';for(dh=0;dh0)return Yi(s,h,n,t,a.concat(d));if(l){var c,f;if(l==="boldsymbol"){var m=HS(s,n,t,a,r);c=m.fontName,f=[m.fontClass]}else o?(c=w4[l].fontName,f=[l]):(c=ph(l,t.fontWeight,t.fontShape),f=[l,t.fontWeight,t.fontShape]);if(Lh(s,c,n).metrics)return Yi(s,c,n,t,a.concat(f));if(y4.hasOwnProperty(s)&&c.slice(0,10)==="Typewriter"){for(var g=[],x=0;x{if(yn(i.classes)!==yn(e.classes)||i.skew!==e.skew||i.maxFontSize!==e.maxFontSize)return!1;if(i.classes.length===1){var t=i.classes[0];if(t==="mbin"||t==="mord")return!1}for(var r in i.style)if(i.style.hasOwnProperty(r)&&i.style[r]!==e.style[r])return!1;for(var n in e.style)if(e.style.hasOwnProperty(n)&&i.style[n]!==e.style[n])return!1;return!0},jS=i=>{for(var e=0;et&&(t=a.height),a.depth>r&&(r=a.depth),a.maxFontSize>n&&(n=a.maxFontSize)}e.height=t,e.depth=r,e.maxFontSize=n},Qt=function(e,t,r,n){var s=new ps(e,t,r,n);return N1(s),s},v4=(i,e,t,r)=>new ps(i,e,t,r),GS=function(e,t,r){var n=Qt([e],[],t);return n.height=Math.max(r||t.fontMetrics().defaultRuleThickness,t.minRuleThickness),n.style.borderBottomWidth=V(n.height),n.maxFontSize=1,n},VS=function(e,t,r,n){var s=new el(e,t,r,n);return N1(s),s},b4=function(e){var t=new ms(e);return N1(t),t},WS=function(e,t){return e instanceof ms?Qt([],[e],t):e},YS=function(e){if(e.positionType==="individualShift"){for(var t=e.children,r=[t[0]],n=-t[0].shift-t[0].elem.depth,s=n,a=1;a{var t=Qt(["mspace"],[],e),r=Xe(i,e);return t.style.marginRight=V(r),t},ph=function(e,t,r){var n="";switch(e){case"amsrm":n="AMS";break;case"textrm":n="Main";break;case"textsf":n="SansSerif";break;case"texttt":n="Typewriter";break;default:n=e}var s;return t==="textbf"&&r==="textit"?s="BoldItalic":t==="textbf"?s="Bold":t==="textit"?s="Italic":s="Regular",n+"-"+s},w4={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"}},M4={vec:["vec",.471,.714],oiintSize1:["oiintSize1",.957,.499],oiintSize2:["oiintSize2",1.472,.659],oiiintSize1:["oiiintSize1",1.304,.499],oiiintSize2:["oiiintSize2",1.98,.659]},ZS=function(e,t){var[r,n,s]=M4[e],a=new cr(r),o=new Xi([a],{width:V(n),height:V(s),style:"width:"+V(n),viewBox:"0 0 "+1e3*n+" "+1e3*s,preserveAspectRatio:"xMinYMin"}),l=v4(["overlay"],[o],t);return l.height=s,l.style.height=V(s),l.style.width=V(n),l},z={fontMap:w4,makeSymbol:Yi,mathsym:qS,makeSpan:Qt,makeSvgSpan:v4,makeLineSpan:GS,makeAnchor:VS,makeFragment:b4,wrapFragment:WS,makeVList:XS,makeOrd:US,makeGlue:KS,staticSvg:ZS,svgData:M4,tryCombineChars:jS},Ye={number:3,unit:"mu"},fs={number:4,unit:"mu"},_r={number:5,unit:"mu"},QS={mord:{mop:Ye,mbin:fs,mrel:_r,minner:Ye},mop:{mord:Ye,mop:Ye,mrel:_r,minner:Ye},mbin:{mord:fs,mop:fs,mopen:fs,minner:fs},mrel:{mord:_r,mop:_r,mopen:_r,minner:_r},mopen:{},mclose:{mop:Ye,mbin:fs,mrel:_r,minner:Ye},mpunct:{mord:Ye,mop:Ye,mrel:_r,mopen:Ye,mclose:Ye,mpunct:Ye,minner:Ye},minner:{mord:Ye,mop:Ye,mbin:fs,mrel:_r,mopen:Ye,mpunct:Ye,minner:Ye}},JS={mord:{mop:Ye},mop:{mord:Ye,mop:Ye},mbin:{},mrel:{},mopen:{},mclose:{mop:Ye},mpunct:{},minner:{mop:Ye}},T4={},Eh={},Sh={};Ah=function(e){return e.type==="ordgroup"&&e.body.length===1?e.body[0]:e},rt=function(e){return e.type==="ordgroup"?e.body:[e]},zr=z.makeSpan,eA=["leftmost","mbin","mopen","mrel","mop","mpunct"],tA=["rightmost","mrel","mclose","mpunct"],iA={display:ae.DISPLAY,text:ae.TEXT,script:ae.SCRIPT,scriptscript:ae.SCRIPTSCRIPT},rA={mord:"mord",mop:"mop",mbin:"mbin",mrel:"mrel",mopen:"mopen",mclose:"mclose",mpunct:"mpunct",minner:"minner"},ct=function(e,t,r,n){n===void 0&&(n=[null,null]);for(var s=[],a=0;a{var y=x.classes[0],b=g.classes[0];y==="mbin"&&tA.includes(b)?x.classes[0]="mord":b==="mbin"&&eA.includes(y)&&(g.classes[0]="mord")},{node:c},f,m),$6(s,(g,x)=>{var y=m1(x),b=m1(g),S=y&&b?g.hasClass("mtight")?JS[y][b]:QS[y][b]:null;if(S)return z.makeGlue(S,h)},{node:c},f,m),s},$6=function i(e,t,r,n,s){n&&e.push(n);for(var a=0;af=>{e.splice(c+1,0,f),a++})(a)}n&&e.pop()},N4=function(e){return e instanceof ms||e instanceof el||e instanceof ps&&e.hasClass("enclosing")?e:null},nA=function i(e,t){var r=N4(e);if(r){var n=r.children;if(n.length){if(t==="right")return i(n[n.length-1],"right");if(t==="left")return i(n[0],"left")}}return e},m1=function(e,t){return e?(t&&(e=nA(e,t)),rA[e.classes[0]]||null):null},il=function(e,t){var r=["nulldelimiter"].concat(e.baseSizingClasses());return zr(t.concat(r))},Me=function(e,t,r){if(!e)return zr();if(Eh[e.type]){var n=Eh[e.type](e,t);if(r&&t.size!==r.size){n=zr(t.sizingClasses(r),[n],t);var s=t.sizeMultiplier/r.sizeMultiplier;n.height*=s,n.depth*=s}return n}else throw new G("Got group of unknown type: '"+e.type+"'")};Bt=class{constructor(e,t,r){this.type=void 0,this.attributes=void 0,this.children=void 0,this.classes=void 0,this.type=e,this.attributes={},this.children=t||[],this.classes=r||[]}setAttribute(e,t){this.attributes[e]=t}getAttribute(e){return this.attributes[e]}toNode(){var e=document.createElementNS("http://www.w3.org/1998/Math/MathML",this.type);for(var t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);this.classes.length>0&&(e.className=yn(this.classes));for(var r=0;r0&&(e+=' class ="'+Ne.escape(yn(this.classes))+'"'),e+=">";for(var r=0;r",e}toText(){return this.children.map(e=>e.toText()).join("")}},ki=class{constructor(e){this.text=void 0,this.text=e}toNode(){return document.createTextNode(this.text)}toMarkup(){return Ne.escape(this.toText())}toText(){return this.text}},g1=class{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",V(this.width)),e}toMarkup(){return this.character?""+this.character+"":''}toText(){return this.character?this.character:" "}},$={MathNode:Bt,TextNode:ki,SpaceNode:g1,newDocumentFragment:E4},Ci=function(e,t,r){return Oe[t][e]&&Oe[t][e].replace&&e.charCodeAt(0)!==55349&&!(y4.hasOwnProperty(e)&&r&&(r.fontFamily&&r.fontFamily.slice(4,6)==="tt"||r.font&&r.font.slice(4,6)==="tt"))&&(e=Oe[t][e].replace),new $.TextNode(e)},E1=function(e){return e.length===1?e[0]:new $.MathNode("mrow",e)},S1=function(e,t){if(t.fontFamily==="texttt")return"monospace";if(t.fontFamily==="textsf")return t.fontShape==="textit"&&t.fontWeight==="textbf"?"sans-serif-bold-italic":t.fontShape==="textit"?"sans-serif-italic":t.fontWeight==="textbf"?"bold-sans-serif":"sans-serif";if(t.fontShape==="textit"&&t.fontWeight==="textbf")return"bold-italic";if(t.fontShape==="textit")return"italic";if(t.fontWeight==="textbf")return"bold";var r=t.font;if(!r||r==="mathnormal")return null;var n=e.mode;if(r==="mathit")return"italic";if(r==="boldsymbol")return e.type==="textord"?"bold":"bold-italic";if(r==="mathbf")return"bold";if(r==="mathbb")return"double-struck";if(r==="mathsfit")return"sans-serif-italic";if(r==="mathfrak")return"fraktur";if(r==="mathscr"||r==="mathcal")return"script";if(r==="mathsf")return"sans-serif";if(r==="mathtt")return"monospace";var s=e.text;if(["\\imath","\\jmath"].includes(s))return null;Oe[n][s]&&Oe[n][s].replace&&(s=Oe[n][s].replace);var a=z.fontMap[r].fontName;return T1(s,a,n)?z.fontMap[r].variant:null};ti=function(e,t,r){if(e.length===1){var n=ze(e[0],t);return r&&n instanceof Bt&&n.type==="mo"&&(n.setAttribute("lspace","0em"),n.setAttribute("rspace","0em")),[n]}for(var s=[],a,o=0;o=1&&(a.type==="mn"||e1(a))){var h=l.children[0];h instanceof Bt&&h.type==="mn"&&(h.children=[...a.children,...h.children],s.pop())}else if(a.type==="mi"&&a.children.length===1){var d=a.children[0];if(d instanceof ki&&d.text==="\u0338"&&(l.type==="mo"||l.type==="mi"||l.type==="mn")){var c=l.children[0];c instanceof ki&&c.text.length>0&&(c.text=c.text.slice(0,1)+"\u0338"+c.text.slice(1),s.pop())}}}s.push(l),a=l}return s},vn=function(e,t,r){return E1(ti(e,t,r))},ze=function(e,t){if(!e)return new $.MathNode("mrow");if(Sh[e.type]){var r=Sh[e.type](e,t);return r}else throw new G("Got group of unknown type: '"+e.type+"'")};S4=function(e){return new Th({style:e.displayMode?ae.DISPLAY:ae.TEXT,maxSize:e.maxSize,minRuleThickness:e.minRuleThickness})},A4=function(e,t){if(t.displayMode){var r=["katex-display"];t.leqno&&r.push("leqno"),t.fleqn&&r.push("fleqn"),e=z.makeSpan(r,[e])}return e},sA=function(e,t,r){var n=S4(r),s;if(r.output==="mathml")return j6(e,t,n,r.displayMode,!0);if(r.output==="html"){var a=p1(e,n);s=z.makeSpan(["katex"],[a])}else{var o=j6(e,t,n,r.displayMode,!1),l=p1(e,n);s=z.makeSpan(["katex"],[o,l])}return A4(s,r)},aA=function(e,t,r){var n=S4(r),s=p1(e,n),a=z.makeSpan(["katex"],[s]);return A4(a,r)},oA={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":"="},lA=function(e){var t=new $.MathNode("mo",[new $.TextNode(oA[e.replace(/^\\/,"")])]);return t.setAttribute("stretchy","true"),t},hA={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]},dA=function(e){return e.type==="ordgroup"?e.body.length:1},cA=function(e,t){function r(){var o=4e5,l=e.label.slice(1);if(["widehat","widecheck","widetilde","utilde"].includes(l)){var h=e,d=dA(h.base),c,f,m;if(d>5)l==="widehat"||l==="widecheck"?(c=420,o=2364,m=.42,f=l+"4"):(c=312,o=2340,m=.34,f="tilde4");else{var g=[1,1,2,2,3,3][d];l==="widehat"||l==="widecheck"?(o=[0,1062,2364,2364,2364][g],c=[0,239,300,360,420][g],m=[0,.24,.3,.3,.36,.42][g],f=l+g):(o=[0,600,1033,2339,2340][g],c=[0,260,286,306,312][g],m=[0,.26,.286,.3,.306,.34][g],f="tilde"+g)}var x=new cr(f),y=new Xi([x],{width:"100%",height:V(m),viewBox:"0 0 "+o+" "+c,preserveAspectRatio:"none"});return{span:z.makeSvgSpan([],[y],t),minWidth:0,height:m}}else{var b=[],S=hA[l],[A,C,I]=S,O=I/1e3,q=A.length,P,W;if(q===1){var ne=S[3];P=["hide-tail"],W=[ne]}else if(q===2)P=["halfarrow-left","halfarrow-right"],W=["xMinYMin","xMaxYMin"];else if(q===3)P=["brace-left","brace-center","brace-right"],W=["xMinYMin","xMidYMin","xMaxYMin"];else throw new Error(`Correct katexImagesData or update code here to support + `+q+" children.");for(var re=0;re0&&(n.style.minWidth=V(s)),n},uA=function(e,t,r,n,s){var a,o=e.height+e.depth+r+n;if(/fbox|color|angl/.test(t)){if(a=z.makeSpan(["stretchy",t],[],s),t==="fbox"){var l=s.color&&s.getColor();l&&(a.style.borderColor=l)}}else{var h=[];/^[bx]cancel$/.test(t)&&h.push(new tl({x1:"0",y1:"0",x2:"100%",y2:"100%","stroke-width":"0.046em"})),/^x?cancel$/.test(t)&&h.push(new tl({x1:"0",y1:"100%",x2:"100%",y2:"0","stroke-width":"0.046em"}));var d=new Xi(h,{width:"100%",height:V(o)});a=z.makeSvgSpan([],[d],s)}return a.height=o,a.style.height=V(o),a},Rr={encloseSpan:uA,mathMLnode:lA,svgSpan:cA};k1=(i,e)=>{var t,r,n;i&&i.type==="supsub"?(r=me(i.base,"accent"),t=r.base,i.base=t,n=OS(Me(i,e)),i.base=r):(r=me(i,"accent"),t=r.base);var s=Me(t,e.havingCrampedStyle()),a=r.isShifty&&Ne.isCharacterBox(t),o=0;if(a){var l=Ne.getBaseElem(t),h=Me(l,e.havingCrampedStyle());o=F6(h).skew}var d=r.label==="\\c",c=d?s.height+s.depth:Math.min(s.height,e.fontMetrics().xHeight),f;if(r.isStretchy)f=Rr.svgSpan(r,e),f=z.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:s},{type:"elem",elem:f,wrapperClasses:["svg-align"],wrapperStyle:o>0?{width:"calc(100% - "+V(2*o)+")",marginLeft:V(2*o)}:void 0}]},e);else{var m,g;r.label==="\\vec"?(m=z.staticSvg("vec",e),g=z.svgData.vec[1]):(m=z.makeOrd({mode:r.mode,text:r.label},e,"textord"),m=F6(m),m.italic=0,g=m.width,d&&(c+=m.depth)),f=z.makeSpan(["accent-body"],[m]);var x=r.label==="\\textcircled";x&&(f.classes.push("accent-full"),c=s.height);var y=o;x||(y-=g/2),f.style.left=V(y),r.label==="\\textcircled"&&(f.style.top=".2em"),f=z.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:s},{type:"kern",size:-c},{type:"elem",elem:f}]},e)}var b=z.makeSpan(["mord","accent"],[f],e);return n?(n.children[0]=b,n.height=Math.max(b.height,n.height),n.classes[0]="mord",n):b},k4=(i,e)=>{var t=i.isStretchy?Rr.mathMLnode(i.label):new $.MathNode("mo",[Ci(i.label,i.mode)]),r=new $.MathNode("mover",[ze(i.base,e),t]);return r.setAttribute("accent","true"),r},fA=new RegExp(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring"].map(i=>"\\"+i).join("|"));Z({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:(i,e)=>{var t=Ah(e[0]),r=!fA.test(i.funcName),n=!r||i.funcName==="\\widehat"||i.funcName==="\\widetilde"||i.funcName==="\\widecheck";return{type:"accent",mode:i.parser.mode,label:i.funcName,isStretchy:r,isShifty:n,base:t}},htmlBuilder:k1,mathmlBuilder:k4});Z({type:"accent",names:["\\'","\\`","\\^","\\~","\\=","\\u","\\.",'\\"',"\\c","\\r","\\H","\\v","\\textcircled"],props:{numArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["primitive"]},handler:(i,e)=>{var t=e[0],r=i.parser.mode;return r==="math"&&(i.parser.settings.reportNonstrict("mathVsTextAccents","LaTeX's accent "+i.funcName+" works only in text mode"),r="text"),{type:"accent",mode:r,label:i.funcName,isStretchy:!1,isShifty:!0,base:t}},htmlBuilder:k1,mathmlBuilder:k4});Z({type:"accentUnder",names:["\\underleftarrow","\\underrightarrow","\\underleftrightarrow","\\undergroup","\\underlinesegment","\\utilde"],props:{numArgs:1},handler:(i,e)=>{var{parser:t,funcName:r}=i,n=e[0];return{type:"accentUnder",mode:t.mode,label:r,base:n}},htmlBuilder:(i,e)=>{var t=Me(i.base,e),r=Rr.svgSpan(i,e),n=i.label==="\\utilde"?.12:0,s=z.makeVList({positionType:"top",positionData:t.height,children:[{type:"elem",elem:r,wrapperClasses:["svg-align"]},{type:"kern",size:n},{type:"elem",elem:t}]},e);return z.makeSpan(["mord","accentunder"],[s],e)},mathmlBuilder:(i,e)=>{var t=Rr.mathMLnode(i.label),r=new $.MathNode("munder",[ze(i.base,e),t]);return r.setAttribute("accentunder","true"),r}});xh=i=>{var e=new $.MathNode("mpadded",i?[i]:[]);return e.setAttribute("width","+0.6em"),e.setAttribute("lspace","0.3em"),e};Z({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(i,e,t){var{parser:r,funcName:n}=i;return{type:"xArrow",mode:r.mode,label:n,body:e[0],below:t[0]}},htmlBuilder(i,e){var t=e.style,r=e.havingStyle(t.sup()),n=z.wrapFragment(Me(i.body,r,e),e),s=i.label.slice(0,2)==="\\x"?"x":"cd";n.classes.push(s+"-arrow-pad");var a;i.below&&(r=e.havingStyle(t.sub()),a=z.wrapFragment(Me(i.below,r,e),e),a.classes.push(s+"-arrow-pad"));var o=Rr.svgSpan(i,e),l=-e.fontMetrics().axisHeight+.5*o.height,h=-e.fontMetrics().axisHeight-.5*o.height-.111;(n.depth>.25||i.label==="\\xleftequilibrium")&&(h-=n.depth);var d;if(a){var c=-e.fontMetrics().axisHeight+a.height+.5*o.height+.111;d=z.makeVList({positionType:"individualShift",children:[{type:"elem",elem:n,shift:h},{type:"elem",elem:o,shift:l},{type:"elem",elem:a,shift:c}]},e)}else d=z.makeVList({positionType:"individualShift",children:[{type:"elem",elem:n,shift:h},{type:"elem",elem:o,shift:l}]},e);return d.children[0].children[0].children[1].classes.push("svg-align"),z.makeSpan(["mrel","x-arrow"],[d],e)},mathmlBuilder(i,e){var t=Rr.mathMLnode(i.label);t.setAttribute("minsize",i.label.charAt(0)==="x"?"1.75em":"3.0em");var r;if(i.body){var n=xh(ze(i.body,e));if(i.below){var s=xh(ze(i.below,e));r=new $.MathNode("munderover",[t,s,n])}else r=new $.MathNode("mover",[t,n])}else if(i.below){var a=xh(ze(i.below,e));r=new $.MathNode("munder",[t,a])}else r=xh(),r=new $.MathNode("mover",[t,r]);return r}});mA=z.makeSpan;Z({type:"mclass",names:["\\mathord","\\mathbin","\\mathrel","\\mathopen","\\mathclose","\\mathpunct","\\mathinner"],props:{numArgs:1,primitive:!0},handler(i,e){var{parser:t,funcName:r}=i,n=e[0];return{type:"mclass",mode:t.mode,mclass:"m"+r.slice(5),body:rt(n),isCharacterBox:Ne.isCharacterBox(n)}},htmlBuilder:C4,mathmlBuilder:_4});zh=i=>{var e=i.type==="ordgroup"&&i.body.length?i.body[0]:i;return e.type==="atom"&&(e.family==="bin"||e.family==="rel")?"m"+e.family:"mord"};Z({type:"mclass",names:["\\@binrel"],props:{numArgs:2},handler(i,e){var{parser:t}=i;return{type:"mclass",mode:t.mode,mclass:zh(e[0]),body:rt(e[1]),isCharacterBox:Ne.isCharacterBox(e[1])}}});Z({type:"mclass",names:["\\stackrel","\\overset","\\underset"],props:{numArgs:2},handler(i,e){var{parser:t,funcName:r}=i,n=e[1],s=e[0],a;r!=="\\stackrel"?a=zh(n):a="mrel";var o={type:"op",mode:n.mode,limits:!0,alwaysHandleSupSub:!0,parentIsSupSub:!1,symbol:!1,suppressBaseShift:r!=="\\stackrel",body:rt(n)},l={type:"supsub",mode:s.mode,base:o,sup:r==="\\underset"?null:s,sub:r==="\\underset"?s:null};return{type:"mclass",mode:t.mode,mclass:a,body:[l],isCharacterBox:Ne.isCharacterBox(l)}},htmlBuilder:C4,mathmlBuilder:_4});Z({type:"pmb",names:["\\pmb"],props:{numArgs:1,allowedInText:!0},handler(i,e){var{parser:t}=i;return{type:"pmb",mode:t.mode,mclass:zh(e[0]),body:rt(e[0])}},htmlBuilder(i,e){var t=ct(i.body,e,!0),r=z.makeSpan([i.mclass],t,e);return r.style.textShadow="0.02em 0.01em 0.04px",r},mathmlBuilder(i,e){var t=ti(i.body,e),r=new $.MathNode("mstyle",t);return r.setAttribute("style","text-shadow: 0.02em 0.01em 0.04px"),r}});pA={">":"\\\\cdrightarrow","<":"\\\\cdleftarrow","=":"\\\\cdlongequal",A:"\\uparrow",V:"\\downarrow","|":"\\Vert",".":"no arrow"},G6=()=>({type:"styling",body:[],mode:"math",style:"display"}),V6=i=>i.type==="textord"&&i.text==="@",gA=(i,e)=>(i.type==="mathord"||i.type==="atom")&&i.text===e;Z({type:"cdlabel",names:["\\\\cdleft","\\\\cdright"],props:{numArgs:1},handler(i,e){var{parser:t,funcName:r}=i;return{type:"cdlabel",mode:t.mode,side:r.slice(4),label:e[0]}},htmlBuilder(i,e){var t=e.havingStyle(e.style.sup()),r=z.wrapFragment(Me(i.label,t,e),e);return r.classes.push("cd-label-"+i.side),r.style.bottom=V(.8-r.depth),r.height=0,r.depth=0,r},mathmlBuilder(i,e){var t=new $.MathNode("mrow",[ze(i.label,e)]);return t=new $.MathNode("mpadded",[t]),t.setAttribute("width","0"),i.side==="left"&&t.setAttribute("lspace","-1width"),t.setAttribute("voffset","0.7em"),t=new $.MathNode("mstyle",[t]),t.setAttribute("displaystyle","false"),t.setAttribute("scriptlevel","1"),t}});Z({type:"cdlabelparent",names:["\\\\cdparent"],props:{numArgs:1},handler(i,e){var{parser:t}=i;return{type:"cdlabelparent",mode:t.mode,fragment:e[0]}},htmlBuilder(i,e){var t=z.wrapFragment(Me(i.fragment,e),e);return t.classes.push("cd-vert-arrow"),t},mathmlBuilder(i,e){return new $.MathNode("mrow",[ze(i.fragment,e)])}});Z({type:"textord",names:["\\@char"],props:{numArgs:1,allowedInText:!0},handler(i,e){for(var{parser:t}=i,r=me(e[0],"ordgroup"),n=r.body,s="",a=0;a=1114111)throw new G("\\@char with invalid code point "+s);return l<=65535?h=String.fromCharCode(l):(l-=65536,h=String.fromCharCode((l>>10)+55296,(l&1023)+56320)),{type:"textord",mode:t.mode,text:h}}});L4=(i,e)=>{var t=ct(i.body,e.withColor(i.color),!1);return z.makeFragment(t)},I4=(i,e)=>{var t=ti(i.body,e.withColor(i.color)),r=new $.MathNode("mstyle",t);return r.setAttribute("mathcolor",i.color),r};Z({type:"color",names:["\\textcolor"],props:{numArgs:2,allowedInText:!0,argTypes:["color","original"]},handler(i,e){var{parser:t}=i,r=me(e[0],"color-token").color,n=e[1];return{type:"color",mode:t.mode,color:r,body:rt(n)}},htmlBuilder:L4,mathmlBuilder:I4});Z({type:"color",names:["\\color"],props:{numArgs:1,allowedInText:!0,argTypes:["color"]},handler(i,e){var{parser:t,breakOnTokenText:r}=i,n=me(e[0],"color-token").color;t.gullet.macros.set("\\current@color",n);var s=t.parseExpression(!0,r);return{type:"color",mode:t.mode,color:n,body:s}},htmlBuilder:L4,mathmlBuilder:I4});Z({type:"cr",names:["\\\\"],props:{numArgs:0,numOptionalArgs:0,allowedInText:!0},handler(i,e,t){var{parser:r}=i,n=r.gullet.future().text==="["?r.parseSizeGroup(!0):null,s=!r.settings.displayMode||!r.settings.useStrictBehavior("newLineInDisplayMode","In LaTeX, \\\\ or \\newline does nothing in display mode");return{type:"cr",mode:r.mode,newLine:s,size:n&&me(n,"size").value}},htmlBuilder(i,e){var t=z.makeSpan(["mspace"],[],e);return i.newLine&&(t.classes.push("newline"),i.size&&(t.style.marginTop=V(Xe(i.size,e)))),t},mathmlBuilder(i,e){var t=new $.MathNode("mspace");return i.newLine&&(t.setAttribute("linebreak","newline"),i.size&&t.setAttribute("height",V(Xe(i.size,e)))),t}});x1={"\\global":"\\global","\\long":"\\\\globallong","\\\\globallong":"\\\\globallong","\\def":"\\gdef","\\gdef":"\\gdef","\\edef":"\\xdef","\\xdef":"\\xdef","\\let":"\\\\globallet","\\futurelet":"\\\\globalfuture"},z4=i=>{var e=i.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(e))throw new G("Expected a control sequence",i);return e},vA=i=>{var e=i.gullet.popToken();return e.text==="="&&(e=i.gullet.popToken(),e.text===" "&&(e=i.gullet.popToken())),e},R4=(i,e,t,r)=>{var n=i.gullet.macros.get(t.text);n==null&&(t.noexpand=!0,n={tokens:[t],numArgs:0,unexpandable:!i.gullet.isExpandable(t.text)}),i.gullet.macros.set(e,n,r)};Z({type:"internal",names:["\\global","\\long","\\\\globallong"],props:{numArgs:0,allowedInText:!0},handler(i){var{parser:e,funcName:t}=i;e.consumeSpaces();var r=e.fetch();if(x1[r.text])return(t==="\\global"||t==="\\\\globallong")&&(r.text=x1[r.text]),me(e.parseFunction(),"internal");throw new G("Invalid token after macro prefix",r)}});Z({type:"internal",names:["\\def","\\gdef","\\edef","\\xdef"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(i){var{parser:e,funcName:t}=i,r=e.gullet.popToken(),n=r.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(n))throw new G("Expected a control sequence",r);for(var s=0,a,o=[[]];e.gullet.future().text!=="{";)if(r=e.gullet.popToken(),r.text==="#"){if(e.gullet.future().text==="{"){a=e.gullet.future(),o[s].push("{");break}if(r=e.gullet.popToken(),!/^[1-9]$/.test(r.text))throw new G('Invalid argument number "'+r.text+'"');if(parseInt(r.text)!==s+1)throw new G('Argument number "'+r.text+'" out of order');s++,o.push([])}else{if(r.text==="EOF")throw new G("Expected a macro definition");o[s].push(r.text)}var{tokens:l}=e.gullet.consumeArg();return a&&l.unshift(a),(t==="\\edef"||t==="\\xdef")&&(l=e.gullet.expandTokens(l),l.reverse()),e.gullet.macros.set(n,{tokens:l,numArgs:s,delimiters:o},t===x1[t]),{type:"internal",mode:e.mode}}});Z({type:"internal",names:["\\let","\\\\globallet"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(i){var{parser:e,funcName:t}=i,r=z4(e.gullet.popToken());e.gullet.consumeSpaces();var n=vA(e);return R4(e,r,n,t==="\\\\globallet"),{type:"internal",mode:e.mode}}});Z({type:"internal",names:["\\futurelet","\\\\globalfuture"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(i){var{parser:e,funcName:t}=i,r=z4(e.gullet.popToken()),n=e.gullet.popToken(),s=e.gullet.popToken();return R4(e,r,s,t==="\\\\globalfuture"),e.gullet.pushToken(s),e.gullet.pushToken(n),{type:"internal",mode:e.mode}}});Ko=function(e,t,r){var n=Oe.math[e]&&Oe.math[e].replace,s=T1(n||e,t,r);if(!s)throw new Error("Unsupported symbol "+e+" and font size "+t+".");return s},C1=function(e,t,r,n){var s=r.havingBaseStyle(t),a=z.makeSpan(n.concat(s.sizingClasses(r)),[e],r),o=s.sizeMultiplier/r.sizeMultiplier;return a.height*=o,a.depth*=o,a.maxFontSize=s.sizeMultiplier,a},D4=function(e,t,r){var n=t.havingBaseStyle(r),s=(1-t.sizeMultiplier/n.sizeMultiplier)*t.fontMetrics().axisHeight;e.classes.push("delimcenter"),e.style.top=V(s),e.height-=s,e.depth+=s},bA=function(e,t,r,n,s,a){var o=z.makeSymbol(e,"Main-Regular",s,n),l=C1(o,t,n,a);return r&&D4(l,n,t),l},wA=function(e,t,r,n){return z.makeSymbol(e,"Size"+t+"-Regular",r,n)},O4=function(e,t,r,n,s,a){var o=wA(e,t,s,n),l=C1(z.makeSpan(["delimsizing","size"+t],[o],n),ae.TEXT,n,a);return r&&D4(l,n,ae.TEXT),l},t1=function(e,t,r){var n;t==="Size1-Regular"?n="delim-size1":n="delim-size4";var s=z.makeSpan(["delimsizinginner",n],[z.makeSpan([],[z.makeSymbol(e,t,r)])]);return{type:"elem",elem:s}},i1=function(e,t,r){var n=dr["Size4-Regular"][e.charCodeAt(0)]?dr["Size4-Regular"][e.charCodeAt(0)][4]:dr["Size1-Regular"][e.charCodeAt(0)][4],s=new cr("inner",kS(e,Math.round(1e3*t))),a=new Xi([s],{width:V(n),height:V(t),style:"width:"+V(n),viewBox:"0 0 "+1e3*n+" "+Math.round(1e3*t),preserveAspectRatio:"xMinYMin"}),o=z.makeSvgSpan([],[a],r);return o.height=t,o.style.height=V(t),o.style.width=V(n),{type:"elem",elem:o}},y1=.008,yh={type:"kern",size:-1*y1},MA=["|","\\lvert","\\rvert","\\vert"],TA=["\\|","\\lVert","\\rVert","\\Vert"],B4=function(e,t,r,n,s,a){var o,l,h,d,c="",f=0;o=h=d=e,l=null;var m="Size1-Regular";e==="\\uparrow"?h=d="\u23D0":e==="\\Uparrow"?h=d="\u2016":e==="\\downarrow"?o=h="\u23D0":e==="\\Downarrow"?o=h="\u2016":e==="\\updownarrow"?(o="\\uparrow",h="\u23D0",d="\\downarrow"):e==="\\Updownarrow"?(o="\\Uparrow",h="\u2016",d="\\Downarrow"):MA.includes(e)?(h="\u2223",c="vert",f=333):TA.includes(e)?(h="\u2225",c="doublevert",f=556):e==="["||e==="\\lbrack"?(o="\u23A1",h="\u23A2",d="\u23A3",m="Size4-Regular",c="lbrack",f=667):e==="]"||e==="\\rbrack"?(o="\u23A4",h="\u23A5",d="\u23A6",m="Size4-Regular",c="rbrack",f=667):e==="\\lfloor"||e==="\u230A"?(h=o="\u23A2",d="\u23A3",m="Size4-Regular",c="lfloor",f=667):e==="\\lceil"||e==="\u2308"?(o="\u23A1",h=d="\u23A2",m="Size4-Regular",c="lceil",f=667):e==="\\rfloor"||e==="\u230B"?(h=o="\u23A5",d="\u23A6",m="Size4-Regular",c="rfloor",f=667):e==="\\rceil"||e==="\u2309"?(o="\u23A4",h=d="\u23A5",m="Size4-Regular",c="rceil",f=667):e==="("||e==="\\lparen"?(o="\u239B",h="\u239C",d="\u239D",m="Size4-Regular",c="lparen",f=875):e===")"||e==="\\rparen"?(o="\u239E",h="\u239F",d="\u23A0",m="Size4-Regular",c="rparen",f=875):e==="\\{"||e==="\\lbrace"?(o="\u23A7",l="\u23A8",d="\u23A9",h="\u23AA",m="Size4-Regular"):e==="\\}"||e==="\\rbrace"?(o="\u23AB",l="\u23AC",d="\u23AD",h="\u23AA",m="Size4-Regular"):e==="\\lgroup"||e==="\u27EE"?(o="\u23A7",d="\u23A9",h="\u23AA",m="Size4-Regular"):e==="\\rgroup"||e==="\u27EF"?(o="\u23AB",d="\u23AD",h="\u23AA",m="Size4-Regular"):e==="\\lmoustache"||e==="\u23B0"?(o="\u23A7",d="\u23AD",h="\u23AA",m="Size4-Regular"):(e==="\\rmoustache"||e==="\u23B1")&&(o="\u23AB",d="\u23A9",h="\u23AA",m="Size4-Regular");var g=Ko(o,m,s),x=g.height+g.depth,y=Ko(h,m,s),b=y.height+y.depth,S=Ko(d,m,s),A=S.height+S.depth,C=0,I=1;if(l!==null){var O=Ko(l,m,s);C=O.height+O.depth,I=2}var q=x+A+C,P=Math.max(0,Math.ceil((t-q)/(I*b))),W=q+P*I*b,ne=n.fontMetrics().axisHeight;r&&(ne*=n.sizeMultiplier);var re=W/2-ne,oe=[];if(c.length>0){var ke=W-x-A,Q=Math.round(W*1e3),Y=CS(c,Math.round(ke*1e3)),le=new cr(c,Y),ce=(f/1e3).toFixed(3)+"em",at=(Q/1e3).toFixed(3)+"em",It=new Xi([le],{width:ce,height:at,viewBox:"0 0 "+f+" "+Q}),bt=z.makeSvgSpan([],[It],n);bt.height=Q/1e3,bt.style.width=ce,bt.style.height=at,oe.push({type:"elem",elem:bt})}else{if(oe.push(t1(d,m,s)),oe.push(yh),l===null){var qi=W-x-A+2*y1;oe.push(i1(h,qi,n))}else{var zt=(W-x-A-C)/2+2*y1;oe.push(i1(h,zt,n)),oe.push(yh),oe.push(t1(l,m,s)),oe.push(yh),oe.push(i1(h,zt,n))}oe.push(yh),oe.push(t1(o,m,s))}var di=n.havingBaseStyle(ae.TEXT),nn=z.makeVList({positionType:"bottom",positionData:re,children:oe},di);return C1(z.makeSpan(["delimsizing","mult"],[nn],di),ae.TEXT,n,a)},r1=80,n1=.08,s1=function(e,t,r,n,s){var a=AS(e,n,r),o=new cr(e,a),l=new Xi([o],{width:"400em",height:V(t),viewBox:"0 0 400000 "+r,preserveAspectRatio:"xMinYMin slice"});return z.makeSvgSpan(["hide-tail"],[l],s)},NA=function(e,t){var r=t.havingBaseSizing(),n=H4("\\surd",e*r.sizeMultiplier,q4,r),s=r.sizeMultiplier,a=Math.max(0,t.minRuleThickness-t.fontMetrics().sqrtRuleThickness),o,l=0,h=0,d=0,c;return n.type==="small"?(d=1e3+1e3*a+r1,e<1?s=1:e<1.4&&(s=.7),l=(1+a+n1)/s,h=(1+a)/s,o=s1("sqrtMain",l,d,a,t),o.style.minWidth="0.853em",c=.833/s):n.type==="large"?(d=(1e3+r1)*Zo[n.size],h=(Zo[n.size]+a)/s,l=(Zo[n.size]+a+n1)/s,o=s1("sqrtSize"+n.size,l,d,a,t),o.style.minWidth="1.02em",c=1/s):(l=e+a+n1,h=e+a,d=Math.floor(1e3*e+a)+r1,o=s1("sqrtTall",l,d,a,t),o.style.minWidth="0.742em",c=1.056),o.height=h,o.style.height=V(l),{span:o,advanceWidth:c,ruleWidth:(t.fontMetrics().sqrtRuleThickness+a)*s}},P4=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\u230A","\u230B","\\lceil","\\rceil","\u2308","\u2309","\\surd"],EA=["\\uparrow","\\downarrow","\\updownarrow","\\Uparrow","\\Downarrow","\\Updownarrow","|","\\|","\\vert","\\Vert","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\u27EE","\u27EF","\\lmoustache","\\rmoustache","\u23B0","\u23B1"],F4=["<",">","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"],Zo=[0,1.2,1.8,2.4,3],SA=function(e,t,r,n,s){if(e==="<"||e==="\\lt"||e==="\u27E8"?e="\\langle":(e===">"||e==="\\gt"||e==="\u27E9")&&(e="\\rangle"),P4.includes(e)||F4.includes(e))return O4(e,t,!1,r,n,s);if(EA.includes(e))return B4(e,Zo[t],!1,r,n,s);throw new G("Illegal delimiter: '"+e+"'")},AA=[{type:"small",style:ae.SCRIPTSCRIPT},{type:"small",style:ae.SCRIPT},{type:"small",style:ae.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}],kA=[{type:"small",style:ae.SCRIPTSCRIPT},{type:"small",style:ae.SCRIPT},{type:"small",style:ae.TEXT},{type:"stack"}],q4=[{type:"small",style:ae.SCRIPTSCRIPT},{type:"small",style:ae.SCRIPT},{type:"small",style:ae.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}],CA=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.")},H4=function(e,t,r,n){for(var s=Math.min(2,3-n.style.size),a=s;at)return r[a]}return r[r.length-1]},U4=function(e,t,r,n,s,a){e==="<"||e==="\\lt"||e==="\u27E8"?e="\\langle":(e===">"||e==="\\gt"||e==="\u27E9")&&(e="\\rangle");var o;F4.includes(e)?o=AA:P4.includes(e)?o=q4:o=kA;var l=H4(e,t,o,n);return l.type==="small"?bA(e,l.style,r,n,s,a):l.type==="large"?O4(e,l.size,r,n,s,a):B4(e,t,r,n,s,a)},_A=function(e,t,r,n,s,a){var o=n.fontMetrics().axisHeight*n.sizeMultiplier,l=901,h=5/n.fontMetrics().ptPerEm,d=Math.max(t-o,r+o),c=Math.max(d/500*l,2*d-h);return U4(e,c,!0,n,s,a)},Ir={sqrtImage:NA,sizedDelim:SA,sizeToMaxHeight:Zo,customSizedDelim:U4,leftRightDelim:_A},W6={"\\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}},LA=["(","\\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","."];Z({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:(i,e)=>{var t=Rh(e[0],i);return{type:"delimsizing",mode:i.parser.mode,size:W6[i.funcName].size,mclass:W6[i.funcName].mclass,delim:t.text}},htmlBuilder:(i,e)=>i.delim==="."?z.makeSpan([i.mclass]):Ir.sizedDelim(i.delim,i.size,e,i.mode,[i.mclass]),mathmlBuilder:i=>{var e=[];i.delim!=="."&&e.push(Ci(i.delim,i.mode));var t=new $.MathNode("mo",e);i.mclass==="mopen"||i.mclass==="mclose"?t.setAttribute("fence","true"):t.setAttribute("fence","false"),t.setAttribute("stretchy","true");var r=V(Ir.sizeToMaxHeight[i.size]);return t.setAttribute("minsize",r),t.setAttribute("maxsize",r),t}});Z({type:"leftright-right",names:["\\right"],props:{numArgs:1,primitive:!0},handler:(i,e)=>{var t=i.parser.gullet.macros.get("\\current@color");if(t&&typeof t!="string")throw new G("\\current@color set to non-string in \\right");return{type:"leftright-right",mode:i.parser.mode,delim:Rh(e[0],i).text,color:t}}});Z({type:"leftright",names:["\\left"],props:{numArgs:1,primitive:!0},handler:(i,e)=>{var t=Rh(e[0],i),r=i.parser;++r.leftrightDepth;var n=r.parseExpression(!1);--r.leftrightDepth,r.expect("\\right",!1);var s=me(r.parseFunction(),"leftright-right");return{type:"leftright",mode:r.mode,body:n,left:t.text,right:s.delim,rightColor:s.color}},htmlBuilder:(i,e)=>{Y6(i);for(var t=ct(i.body,e,!0,["mopen","mclose"]),r=0,n=0,s=!1,a=0;a{Y6(i);var t=ti(i.body,e);if(i.left!=="."){var r=new $.MathNode("mo",[Ci(i.left,i.mode)]);r.setAttribute("fence","true"),t.unshift(r)}if(i.right!=="."){var n=new $.MathNode("mo",[Ci(i.right,i.mode)]);n.setAttribute("fence","true"),i.rightColor&&n.setAttribute("mathcolor",i.rightColor),t.push(n)}return E1(t)}});Z({type:"middle",names:["\\middle"],props:{numArgs:1,primitive:!0},handler:(i,e)=>{var t=Rh(e[0],i);if(!i.parser.leftrightDepth)throw new G("\\middle without preceding \\left",t);return{type:"middle",mode:i.parser.mode,delim:t.text}},htmlBuilder:(i,e)=>{var t;if(i.delim===".")t=il(e,[]);else{t=Ir.sizedDelim(i.delim,1,e,i.mode,[]);var r={delim:i.delim,options:e};t.isMiddle=r}return t},mathmlBuilder:(i,e)=>{var t=i.delim==="\\vert"||i.delim==="|"?Ci("|","text"):Ci(i.delim,i.mode),r=new $.MathNode("mo",[t]);return r.setAttribute("fence","true"),r.setAttribute("lspace","0.05em"),r.setAttribute("rspace","0.05em"),r}});_1=(i,e)=>{var t=z.wrapFragment(Me(i.body,e),e),r=i.label.slice(1),n=e.sizeMultiplier,s,a=0,o=Ne.isCharacterBox(i.body);if(r==="sout")s=z.makeSpan(["stretchy","sout"]),s.height=e.fontMetrics().defaultRuleThickness/n,a=-.5*e.fontMetrics().xHeight;else if(r==="phase"){var l=Xe({number:.6,unit:"pt"},e),h=Xe({number:.35,unit:"ex"},e),d=e.havingBaseSizing();n=n/d.sizeMultiplier;var c=t.height+t.depth+l+h;t.style.paddingLeft=V(c/2+l);var f=Math.floor(1e3*c*n),m=ES(f),g=new Xi([new cr("phase",m)],{width:"400em",height:V(f/1e3),viewBox:"0 0 400000 "+f,preserveAspectRatio:"xMinYMin slice"});s=z.makeSvgSpan(["hide-tail"],[g],e),s.style.height=V(c),a=t.depth+l+h}else{/cancel/.test(r)?o||t.classes.push("cancel-pad"):r==="angl"?t.classes.push("anglpad"):t.classes.push("boxpad");var x=0,y=0,b=0;/box/.test(r)?(b=Math.max(e.fontMetrics().fboxrule,e.minRuleThickness),x=e.fontMetrics().fboxsep+(r==="colorbox"?0:b),y=x):r==="angl"?(b=Math.max(e.fontMetrics().defaultRuleThickness,e.minRuleThickness),x=4*b,y=Math.max(0,.25-t.depth)):(x=o?.2:0,y=x),s=Rr.encloseSpan(t,r,x,y,e),/fbox|boxed|fcolorbox/.test(r)?(s.style.borderStyle="solid",s.style.borderWidth=V(b)):r==="angl"&&b!==.049&&(s.style.borderTopWidth=V(b),s.style.borderRightWidth=V(b)),a=t.depth+y,i.backgroundColor&&(s.style.backgroundColor=i.backgroundColor,i.borderColor&&(s.style.borderColor=i.borderColor))}var S;if(i.backgroundColor)S=z.makeVList({positionType:"individualShift",children:[{type:"elem",elem:s,shift:a},{type:"elem",elem:t,shift:0}]},e);else{var A=/cancel|phase/.test(r)?["svg-align"]:[];S=z.makeVList({positionType:"individualShift",children:[{type:"elem",elem:t,shift:0},{type:"elem",elem:s,shift:a,wrapperClasses:A}]},e)}return/cancel/.test(r)&&(S.height=t.height,S.depth=t.depth),/cancel/.test(r)&&!o?z.makeSpan(["mord","cancel-lap"],[S],e):z.makeSpan(["mord"],[S],e)},L1=(i,e)=>{var t=0,r=new $.MathNode(i.label.indexOf("colorbox")>-1?"mpadded":"menclose",[ze(i.body,e)]);switch(i.label){case"\\cancel":r.setAttribute("notation","updiagonalstrike");break;case"\\bcancel":r.setAttribute("notation","downdiagonalstrike");break;case"\\phase":r.setAttribute("notation","phasorangle");break;case"\\sout":r.setAttribute("notation","horizontalstrike");break;case"\\fbox":r.setAttribute("notation","box");break;case"\\angl":r.setAttribute("notation","actuarial");break;case"\\fcolorbox":case"\\colorbox":if(t=e.fontMetrics().fboxsep*e.fontMetrics().ptPerEm,r.setAttribute("width","+"+2*t+"pt"),r.setAttribute("height","+"+2*t+"pt"),r.setAttribute("lspace",t+"pt"),r.setAttribute("voffset",t+"pt"),i.label==="\\fcolorbox"){var n=Math.max(e.fontMetrics().fboxrule,e.minRuleThickness);r.setAttribute("style","border: "+n+"em solid "+String(i.borderColor))}break;case"\\xcancel":r.setAttribute("notation","updiagonalstrike downdiagonalstrike");break}return i.backgroundColor&&r.setAttribute("mathbackground",i.backgroundColor),r};Z({type:"enclose",names:["\\colorbox"],props:{numArgs:2,allowedInText:!0,argTypes:["color","text"]},handler(i,e,t){var{parser:r,funcName:n}=i,s=me(e[0],"color-token").color,a=e[1];return{type:"enclose",mode:r.mode,label:n,backgroundColor:s,body:a}},htmlBuilder:_1,mathmlBuilder:L1});Z({type:"enclose",names:["\\fcolorbox"],props:{numArgs:3,allowedInText:!0,argTypes:["color","color","text"]},handler(i,e,t){var{parser:r,funcName:n}=i,s=me(e[0],"color-token").color,a=me(e[1],"color-token").color,o=e[2];return{type:"enclose",mode:r.mode,label:n,backgroundColor:a,borderColor:s,body:o}},htmlBuilder:_1,mathmlBuilder:L1});Z({type:"enclose",names:["\\fbox"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!0},handler(i,e){var{parser:t}=i;return{type:"enclose",mode:t.mode,label:"\\fbox",body:e[0]}}});Z({type:"enclose",names:["\\cancel","\\bcancel","\\xcancel","\\sout","\\phase"],props:{numArgs:1},handler(i,e){var{parser:t,funcName:r}=i,n=e[0];return{type:"enclose",mode:t.mode,label:r,body:n}},htmlBuilder:_1,mathmlBuilder:L1});Z({type:"enclose",names:["\\angl"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!1},handler(i,e){var{parser:t}=i;return{type:"enclose",mode:t.mode,label:"\\angl",body:e[0]}}});$4={};j4={};Dh=i=>{var e=i.parser.settings;if(!e.displayMode)throw new G("{"+i.envName+"} can be used only in display mode.")};fr=function(e,t){var r,n,s=e.body.length,a=e.hLinesBeforeRow,o=0,l=new Array(s),h=[],d=Math.max(t.fontMetrics().arrayRuleWidth,t.minRuleThickness),c=1/t.fontMetrics().ptPerEm,f=5*c;if(e.colSeparationType&&e.colSeparationType==="small"){var m=t.havingStyle(ae.SCRIPT).sizeMultiplier;f=.2778*(m/t.sizeMultiplier)}var g=e.colSeparationType==="CD"?Xe({number:3,unit:"ex"},t):12*c,x=3*c,y=e.arraystretch*g,b=.7*y,S=.3*y,A=0;function C(Bs){for(var $i=0;$i0&&(A+=.25),h.push({pos:A,isDashed:Bs[$i]})}for(C(a[0]),r=0;r0&&(re+=S,qBs))for(r=0;r=o)){var Mr=void 0;(n>0||e.hskipBeforeAndAfter)&&(Mr=Ne.deflt(zt.pregap,f),Mr!==0&&(Y=z.makeSpan(["arraycolsep"],[]),Y.style.width=V(Mr),Q.push(Y)));var tr=[];for(r=0;r0){for(var wi=z.makeLineSpan("hline",t,d),Je=z.makeLineSpan("hdashline",t,d),ve=[{type:"elem",elem:l,shift:0}];h.length>0;){var an=h.pop(),R=an.pos-oe;an.isDashed?ve.push({type:"elem",elem:Je,shift:R}):ve.push({type:"elem",elem:wi,shift:R})}l=z.makeVList({positionType:"individualShift",children:ve},t)}if(ce.length===0)return z.makeSpan(["mord"],[l],t);var Wn=z.makeVList({positionType:"individualShift",children:ce},t);return Wn=z.makeSpan(["tag"],[Wn],t),z.makeFragment([l,Wn])},IA={c:"center ",l:"left ",r:"right "},mr=function(e,t){for(var r=[],n=new $.MathNode("mtd",[],["mtr-glue"]),s=new $.MathNode("mtd",[],["mml-eqn-num"]),a=0;a0){var g=e.cols,x="",y=!1,b=0,S=g.length;g[0].type==="separator"&&(f+="top ",b=1),g[g.length-1].type==="separator"&&(f+="bottom ",S-=1);for(var A=b;A0?"left ":"",f+=P[P.length-1].length>0?"right ":"";for(var W=1;W-1?"alignat":"align",s=e.envName==="split",a=bn(e.parser,{cols:r,addJot:!0,autoTag:s?void 0:I1(e.envName),emptySingleRow:!0,colSeparationType:n,maxNumCols:s?2:void 0,leqno:e.parser.settings.leqno},"display"),o,l=0,h={type:"ordgroup",mode:e.mode,body:[]};if(t[0]&&t[0].type==="ordgroup"){for(var d="",c=0;c0&&m&&(y=1),r[g]={type:"align",align:x,pregap:y,postgap:0}}return a.colSeparationType=m?"align":"alignat",a};ur({type:"array",names:["array","darray"],props:{numArgs:1},handler(i,e){var t=Ih(e[0]),r=t?[e[0]]:me(e[0],"ordgroup").body,n=r.map(function(a){var o=A1(a),l=o.text;if("lcr".indexOf(l)!==-1)return{type:"align",align:l};if(l==="|")return{type:"separator",separator:"|"};if(l===":")return{type:"separator",separator:":"};throw new G("Unknown column alignment: "+l,a)}),s={cols:n,hskipBeforeAndAfter:!0,maxNumCols:n.length};return bn(i.parser,s,z1(i.envName))},htmlBuilder:fr,mathmlBuilder:mr});ur({type:"array",names:["matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix","matrix*","pmatrix*","bmatrix*","Bmatrix*","vmatrix*","Vmatrix*"],props:{numArgs:0},handler(i){var e={matrix:null,pmatrix:["(",")"],bmatrix:["[","]"],Bmatrix:["\\{","\\}"],vmatrix:["|","|"],Vmatrix:["\\Vert","\\Vert"]}[i.envName.replace("*","")],t="c",r={hskipBeforeAndAfter:!1,cols:[{type:"align",align:t}]};if(i.envName.charAt(i.envName.length-1)==="*"){var n=i.parser;if(n.consumeSpaces(),n.fetch().text==="["){if(n.consume(),n.consumeSpaces(),t=n.fetch().text,"lcr".indexOf(t)===-1)throw new G("Expected l or c or r",n.nextToken);n.consume(),n.consumeSpaces(),n.expect("]"),n.consume(),r.cols=[{type:"align",align:t}]}}var s=bn(i.parser,r,z1(i.envName)),a=Math.max(0,...s.body.map(o=>o.length));return s.cols=new Array(a).fill({type:"align",align:t}),e?{type:"leftright",mode:i.mode,body:[s],left:e[0],right:e[1],rightColor:void 0}:s},htmlBuilder:fr,mathmlBuilder:mr});ur({type:"array",names:["smallmatrix"],props:{numArgs:0},handler(i){var e={arraystretch:.5},t=bn(i.parser,e,"script");return t.colSeparationType="small",t},htmlBuilder:fr,mathmlBuilder:mr});ur({type:"array",names:["subarray"],props:{numArgs:1},handler(i,e){var t=Ih(e[0]),r=t?[e[0]]:me(e[0],"ordgroup").body,n=r.map(function(a){var o=A1(a),l=o.text;if("lc".indexOf(l)!==-1)return{type:"align",align:l};throw new G("Unknown column alignment: "+l,a)});if(n.length>1)throw new G("{subarray} can contain only one column");var s={cols:n,hskipBeforeAndAfter:!1,arraystretch:.5};if(s=bn(i.parser,s,"script"),s.body.length>0&&s.body[0].length>1)throw new G("{subarray} can contain only one column");return s},htmlBuilder:fr,mathmlBuilder:mr});ur({type:"array",names:["cases","dcases","rcases","drcases"],props:{numArgs:0},handler(i){var e={arraystretch:1.2,cols:[{type:"align",align:"l",pregap:0,postgap:1},{type:"align",align:"l",pregap:0,postgap:0}]},t=bn(i.parser,e,z1(i.envName));return{type:"leftright",mode:i.mode,body:[t],left:i.envName.indexOf("r")>-1?".":"\\{",right:i.envName.indexOf("r")>-1?"\\}":".",rightColor:void 0}},htmlBuilder:fr,mathmlBuilder:mr});ur({type:"array",names:["align","align*","aligned","split"],props:{numArgs:0},handler:G4,htmlBuilder:fr,mathmlBuilder:mr});ur({type:"array",names:["gathered","gather","gather*"],props:{numArgs:0},handler(i){["gather","gather*"].includes(i.envName)&&Dh(i);var e={cols:[{type:"align",align:"c"}],addJot:!0,colSeparationType:"gather",autoTag:I1(i.envName),emptySingleRow:!0,leqno:i.parser.settings.leqno};return bn(i.parser,e,"display")},htmlBuilder:fr,mathmlBuilder:mr});ur({type:"array",names:["alignat","alignat*","alignedat"],props:{numArgs:1},handler:G4,htmlBuilder:fr,mathmlBuilder:mr});ur({type:"array",names:["equation","equation*"],props:{numArgs:0},handler(i){Dh(i);var e={autoTag:I1(i.envName),emptySingleRow:!0,singleRow:!0,maxNumCols:1,leqno:i.parser.settings.leqno};return bn(i.parser,e,"display")},htmlBuilder:fr,mathmlBuilder:mr});ur({type:"array",names:["CD"],props:{numArgs:0},handler(i){return Dh(i),yA(i.parser)},htmlBuilder:fr,mathmlBuilder:mr});w("\\nonumber","\\gdef\\@eqnsw{0}");w("\\notag","\\nonumber");Z({type:"text",names:["\\hline","\\hdashline"],props:{numArgs:0,allowedInText:!0,allowedInMath:!0},handler(i,e){throw new G(i.funcName+" valid only within array environment")}});K6=$4;Z({type:"environment",names:["\\begin","\\end"],props:{numArgs:1,argTypes:["text"]},handler(i,e){var{parser:t,funcName:r}=i,n=e[0];if(n.type!=="ordgroup")throw new G("Invalid environment name",n);for(var s="",a=0;a{var t=i.font,r=e.withFont(t);return Me(i.body,r)},W4=(i,e)=>{var t=i.font,r=e.withFont(t);return ze(i.body,r)},Z6={"\\Bbb":"\\mathbb","\\bold":"\\mathbf","\\frak":"\\mathfrak","\\bm":"\\boldsymbol"};Z({type:"font",names:["\\mathrm","\\mathit","\\mathbf","\\mathnormal","\\mathsfit","\\mathbb","\\mathcal","\\mathfrak","\\mathscr","\\mathsf","\\mathtt","\\Bbb","\\bold","\\frak"],props:{numArgs:1,allowedInArgument:!0},handler:(i,e)=>{var{parser:t,funcName:r}=i,n=Ah(e[0]),s=r;return s in Z6&&(s=Z6[s]),{type:"font",mode:t.mode,font:s.slice(1),body:n}},htmlBuilder:V4,mathmlBuilder:W4});Z({type:"mclass",names:["\\boldsymbol","\\bm"],props:{numArgs:1},handler:(i,e)=>{var{parser:t}=i,r=e[0],n=Ne.isCharacterBox(r);return{type:"mclass",mode:t.mode,mclass:zh(r),body:[{type:"font",mode:t.mode,font:"boldsymbol",body:r}],isCharacterBox:n}}});Z({type:"font",names:["\\rm","\\sf","\\tt","\\bf","\\it","\\cal"],props:{numArgs:0,allowedInText:!0},handler:(i,e)=>{var{parser:t,funcName:r,breakOnTokenText:n}=i,{mode:s}=t,a=t.parseExpression(!0,n),o="math"+r.slice(1);return{type:"font",mode:s,font:o,body:{type:"ordgroup",mode:t.mode,body:a}}},htmlBuilder:V4,mathmlBuilder:W4});Y4=(i,e)=>{var t=e;return i==="display"?t=t.id>=ae.SCRIPT.id?t.text():ae.DISPLAY:i==="text"&&t.size===ae.DISPLAY.size?t=ae.TEXT:i==="script"?t=ae.SCRIPT:i==="scriptscript"&&(t=ae.SCRIPTSCRIPT),t},R1=(i,e)=>{var t=Y4(i.size,e.style),r=t.fracNum(),n=t.fracDen(),s;s=e.havingStyle(r);var a=Me(i.numer,s,e);if(i.continued){var o=8.5/e.fontMetrics().ptPerEm,l=3.5/e.fontMetrics().ptPerEm;a.height=a.height0?g=3*f:g=7*f,x=e.fontMetrics().denom1):(c>0?(m=e.fontMetrics().num2,g=f):(m=e.fontMetrics().num3,g=3*f),x=e.fontMetrics().denom2);var y;if(d){var S=e.fontMetrics().axisHeight;m-a.depth-(S+.5*c){var t=new $.MathNode("mfrac",[ze(i.numer,e),ze(i.denom,e)]);if(!i.hasBarLine)t.setAttribute("linethickness","0px");else if(i.barSize){var r=Xe(i.barSize,e);t.setAttribute("linethickness",V(r))}var n=Y4(i.size,e.style);if(n.size!==e.style.size){t=new $.MathNode("mstyle",[t]);var s=n.size===ae.DISPLAY.size?"true":"false";t.setAttribute("displaystyle",s),t.setAttribute("scriptlevel","0")}if(i.leftDelim!=null||i.rightDelim!=null){var a=[];if(i.leftDelim!=null){var o=new $.MathNode("mo",[new $.TextNode(i.leftDelim.replace("\\",""))]);o.setAttribute("fence","true"),a.push(o)}if(a.push(t),i.rightDelim!=null){var l=new $.MathNode("mo",[new $.TextNode(i.rightDelim.replace("\\",""))]);l.setAttribute("fence","true"),a.push(l)}return E1(a)}return t};Z({type:"genfrac",names:["\\dfrac","\\frac","\\tfrac","\\dbinom","\\binom","\\tbinom","\\\\atopfrac","\\\\bracefrac","\\\\brackfrac"],props:{numArgs:2,allowedInArgument:!0},handler:(i,e)=>{var{parser:t,funcName:r}=i,n=e[0],s=e[1],a,o=null,l=null,h="auto";switch(r){case"\\dfrac":case"\\frac":case"\\tfrac":a=!0;break;case"\\\\atopfrac":a=!1;break;case"\\dbinom":case"\\binom":case"\\tbinom":a=!1,o="(",l=")";break;case"\\\\bracefrac":a=!1,o="\\{",l="\\}";break;case"\\\\brackfrac":a=!1,o="[",l="]";break;default:throw new Error("Unrecognized genfrac command")}switch(r){case"\\dfrac":case"\\dbinom":h="display";break;case"\\tfrac":case"\\tbinom":h="text";break}return{type:"genfrac",mode:t.mode,continued:!1,numer:n,denom:s,hasBarLine:a,leftDelim:o,rightDelim:l,size:h,barSize:null}},htmlBuilder:R1,mathmlBuilder:D1});Z({type:"genfrac",names:["\\cfrac"],props:{numArgs:2},handler:(i,e)=>{var{parser:t,funcName:r}=i,n=e[0],s=e[1];return{type:"genfrac",mode:t.mode,continued:!0,numer:n,denom:s,hasBarLine:!0,leftDelim:null,rightDelim:null,size:"display",barSize:null}}});Z({type:"infix",names:["\\over","\\choose","\\atop","\\brace","\\brack"],props:{numArgs:0,infix:!0},handler(i){var{parser:e,funcName:t,token:r}=i,n;switch(t){case"\\over":n="\\frac";break;case"\\choose":n="\\binom";break;case"\\atop":n="\\\\atopfrac";break;case"\\brace":n="\\\\bracefrac";break;case"\\brack":n="\\\\brackfrac";break;default:throw new Error("Unrecognized infix genfrac command")}return{type:"infix",mode:e.mode,replaceWith:n,token:r}}});Q6=["display","text","script","scriptscript"],J6=function(e){var t=null;return e.length>0&&(t=e,t=t==="."?null:t),t};Z({type:"genfrac",names:["\\genfrac"],props:{numArgs:6,allowedInArgument:!0,argTypes:["math","math","size","text","math","math"]},handler(i,e){var{parser:t}=i,r=e[4],n=e[5],s=Ah(e[0]),a=s.type==="atom"&&s.family==="open"?J6(s.text):null,o=Ah(e[1]),l=o.type==="atom"&&o.family==="close"?J6(o.text):null,h=me(e[2],"size"),d,c=null;h.isBlank?d=!0:(c=h.value,d=c.number>0);var f="auto",m=e[3];if(m.type==="ordgroup"){if(m.body.length>0){var g=me(m.body[0],"textord");f=Q6[Number(g.text)]}}else m=me(m,"textord"),f=Q6[Number(m.text)];return{type:"genfrac",mode:t.mode,numer:r,denom:n,continued:!1,hasBarLine:d,barSize:c,leftDelim:a,rightDelim:l,size:f}},htmlBuilder:R1,mathmlBuilder:D1});Z({type:"infix",names:["\\above"],props:{numArgs:1,argTypes:["size"],infix:!0},handler(i,e){var{parser:t,funcName:r,token:n}=i;return{type:"infix",mode:t.mode,replaceWith:"\\\\abovefrac",size:me(e[0],"size").value,token:n}}});Z({type:"genfrac",names:["\\\\abovefrac"],props:{numArgs:3,argTypes:["math","size","math"]},handler:(i,e)=>{var{parser:t,funcName:r}=i,n=e[0],s=dS(me(e[1],"infix").size),a=e[2],o=s.number>0;return{type:"genfrac",mode:t.mode,numer:n,denom:a,continued:!1,hasBarLine:o,barSize:s,leftDelim:null,rightDelim:null,size:"auto"}},htmlBuilder:R1,mathmlBuilder:D1});X4=(i,e)=>{var t=e.style,r,n;i.type==="supsub"?(r=i.sup?Me(i.sup,e.havingStyle(t.sup()),e):Me(i.sub,e.havingStyle(t.sub()),e),n=me(i.base,"horizBrace")):n=me(i,"horizBrace");var s=Me(n.base,e.havingBaseStyle(ae.DISPLAY)),a=Rr.svgSpan(n,e),o;if(n.isOver?(o=z.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:s},{type:"kern",size:.1},{type:"elem",elem:a}]},e),o.children[0].children[0].children[1].classes.push("svg-align")):(o=z.makeVList({positionType:"bottom",positionData:s.depth+.1+a.height,children:[{type:"elem",elem:a},{type:"kern",size:.1},{type:"elem",elem:s}]},e),o.children[0].children[0].children[0].classes.push("svg-align")),r){var l=z.makeSpan(["mord",n.isOver?"mover":"munder"],[o],e);n.isOver?o=z.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:l},{type:"kern",size:.2},{type:"elem",elem:r}]},e):o=z.makeVList({positionType:"bottom",positionData:l.depth+.2+r.height+r.depth,children:[{type:"elem",elem:r},{type:"kern",size:.2},{type:"elem",elem:l}]},e)}return z.makeSpan(["mord",n.isOver?"mover":"munder"],[o],e)},zA=(i,e)=>{var t=Rr.mathMLnode(i.label);return new $.MathNode(i.isOver?"mover":"munder",[ze(i.base,e),t])};Z({type:"horizBrace",names:["\\overbrace","\\underbrace"],props:{numArgs:1},handler(i,e){var{parser:t,funcName:r}=i;return{type:"horizBrace",mode:t.mode,label:r,isOver:/^\\over/.test(r),base:e[0]}},htmlBuilder:X4,mathmlBuilder:zA});Z({type:"href",names:["\\href"],props:{numArgs:2,argTypes:["url","original"],allowedInText:!0},handler:(i,e)=>{var{parser:t}=i,r=e[1],n=me(e[0],"url").url;return t.settings.isTrusted({command:"\\href",url:n})?{type:"href",mode:t.mode,href:n,body:rt(r)}:t.formatUnsupportedCmd("\\href")},htmlBuilder:(i,e)=>{var t=ct(i.body,e,!1);return z.makeAnchor(i.href,[],t,e)},mathmlBuilder:(i,e)=>{var t=vn(i.body,e);return t instanceof Bt||(t=new Bt("mrow",[t])),t.setAttribute("href",i.href),t}});Z({type:"href",names:["\\url"],props:{numArgs:1,argTypes:["url"],allowedInText:!0},handler:(i,e)=>{var{parser:t}=i,r=me(e[0],"url").url;if(!t.settings.isTrusted({command:"\\url",url:r}))return t.formatUnsupportedCmd("\\url");for(var n=[],s=0;s{var{parser:t,funcName:r,token:n}=i,s=me(e[0],"raw").string,a=e[1];t.settings.strict&&t.settings.reportNonstrict("htmlExtension","HTML extension is disabled on strict mode");var o,l={};switch(r){case"\\htmlClass":l.class=s,o={command:"\\htmlClass",class:s};break;case"\\htmlId":l.id=s,o={command:"\\htmlId",id:s};break;case"\\htmlStyle":l.style=s,o={command:"\\htmlStyle",style:s};break;case"\\htmlData":{for(var h=s.split(","),d=0;d{var t=ct(i.body,e,!1),r=["enclosing"];i.attributes.class&&r.push(...i.attributes.class.trim().split(/\s+/));var n=z.makeSpan(r,t,e);for(var s in i.attributes)s!=="class"&&i.attributes.hasOwnProperty(s)&&n.setAttribute(s,i.attributes[s]);return n},mathmlBuilder:(i,e)=>vn(i.body,e)});Z({type:"htmlmathml",names:["\\html@mathml"],props:{numArgs:2,allowedInText:!0},handler:(i,e)=>{var{parser:t}=i;return{type:"htmlmathml",mode:t.mode,html:rt(e[0]),mathml:rt(e[1])}},htmlBuilder:(i,e)=>{var t=ct(i.html,e,!1);return z.makeFragment(t)},mathmlBuilder:(i,e)=>vn(i.mathml,e)});a1=function(e){if(/^[-+]? *(\d+(\.\d*)?|\.\d+)$/.test(e))return{number:+e,unit:"bp"};var t=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(e);if(!t)throw new G("Invalid size: '"+e+"' in \\includegraphics");var r={number:+(t[1]+t[2]),unit:t[3]};if(!m4(r))throw new G("Invalid unit: '"+r.unit+"' in \\includegraphics.");return r};Z({type:"includegraphics",names:["\\includegraphics"],props:{numArgs:1,numOptionalArgs:1,argTypes:["raw","url"],allowedInText:!1},handler:(i,e,t)=>{var{parser:r}=i,n={number:0,unit:"em"},s={number:.9,unit:"em"},a={number:0,unit:"em"},o="";if(t[0])for(var l=me(t[0],"raw").string,h=l.split(","),d=0;d{var t=Xe(i.height,e),r=0;i.totalheight.number>0&&(r=Xe(i.totalheight,e)-t);var n=0;i.width.number>0&&(n=Xe(i.width,e));var s={height:V(t+r)};n>0&&(s.width=V(n)),r>0&&(s.verticalAlign=V(-r));var a=new u1(i.src,i.alt,s);return a.height=t,a.depth=r,a},mathmlBuilder:(i,e)=>{var t=new $.MathNode("mglyph",[]);t.setAttribute("alt",i.alt);var r=Xe(i.height,e),n=0;if(i.totalheight.number>0&&(n=Xe(i.totalheight,e)-r,t.setAttribute("valign",V(-n))),t.setAttribute("height",V(r+n)),i.width.number>0){var s=Xe(i.width,e);t.setAttribute("width",V(s))}return t.setAttribute("src",i.src),t}});Z({type:"kern",names:["\\kern","\\mkern","\\hskip","\\mskip"],props:{numArgs:1,argTypes:["size"],primitive:!0,allowedInText:!0},handler(i,e){var{parser:t,funcName:r}=i,n=me(e[0],"size");if(t.settings.strict){var s=r[1]==="m",a=n.value.unit==="mu";s?(a||t.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+r+" supports only mu units, "+("not "+n.value.unit+" units")),t.mode!=="math"&&t.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+r+" works only in math mode")):a&&t.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+r+" doesn't support mu units")}return{type:"kern",mode:t.mode,dimension:n.value}},htmlBuilder(i,e){return z.makeGlue(i.dimension,e)},mathmlBuilder(i,e){var t=Xe(i.dimension,e);return new $.SpaceNode(t)}});Z({type:"lap",names:["\\mathllap","\\mathrlap","\\mathclap"],props:{numArgs:1,allowedInText:!0},handler:(i,e)=>{var{parser:t,funcName:r}=i,n=e[0];return{type:"lap",mode:t.mode,alignment:r.slice(5),body:n}},htmlBuilder:(i,e)=>{var t;i.alignment==="clap"?(t=z.makeSpan([],[Me(i.body,e)]),t=z.makeSpan(["inner"],[t],e)):t=z.makeSpan(["inner"],[Me(i.body,e)]);var r=z.makeSpan(["fix"],[]),n=z.makeSpan([i.alignment],[t,r],e),s=z.makeSpan(["strut"]);return s.style.height=V(n.height+n.depth),n.depth&&(s.style.verticalAlign=V(-n.depth)),n.children.unshift(s),n=z.makeSpan(["thinbox"],[n],e),z.makeSpan(["mord","vbox"],[n],e)},mathmlBuilder:(i,e)=>{var t=new $.MathNode("mpadded",[ze(i.body,e)]);if(i.alignment!=="rlap"){var r=i.alignment==="llap"?"-1":"-0.5";t.setAttribute("lspace",r+"width")}return t.setAttribute("width","0px"),t}});Z({type:"styling",names:["\\(","$"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(i,e){var{funcName:t,parser:r}=i,n=r.mode;r.switchMode("math");var s=t==="\\("?"\\)":"$",a=r.parseExpression(!1,s);return r.expect(s),r.switchMode(n),{type:"styling",mode:r.mode,style:"text",body:a}}});Z({type:"text",names:["\\)","\\]"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(i,e){throw new G("Mismatched "+i.funcName)}});e4=(i,e)=>{switch(e.style.size){case ae.DISPLAY.size:return i.display;case ae.TEXT.size:return i.text;case ae.SCRIPT.size:return i.script;case ae.SCRIPTSCRIPT.size:return i.scriptscript;default:return i.text}};Z({type:"mathchoice",names:["\\mathchoice"],props:{numArgs:4,primitive:!0},handler:(i,e)=>{var{parser:t}=i;return{type:"mathchoice",mode:t.mode,display:rt(e[0]),text:rt(e[1]),script:rt(e[2]),scriptscript:rt(e[3])}},htmlBuilder:(i,e)=>{var t=e4(i,e),r=ct(t,e,!1);return z.makeFragment(r)},mathmlBuilder:(i,e)=>{var t=e4(i,e);return vn(t,e)}});K4=(i,e,t,r,n,s,a)=>{i=z.makeSpan([],[i]);var o=t&&Ne.isCharacterBox(t),l,h;if(e){var d=Me(e,r.havingStyle(n.sup()),r);h={elem:d,kern:Math.max(r.fontMetrics().bigOpSpacing1,r.fontMetrics().bigOpSpacing3-d.depth)}}if(t){var c=Me(t,r.havingStyle(n.sub()),r);l={elem:c,kern:Math.max(r.fontMetrics().bigOpSpacing2,r.fontMetrics().bigOpSpacing4-c.height)}}var f;if(h&&l){var m=r.fontMetrics().bigOpSpacing5+l.elem.height+l.elem.depth+l.kern+i.depth+a;f=z.makeVList({positionType:"bottom",positionData:m,children:[{type:"kern",size:r.fontMetrics().bigOpSpacing5},{type:"elem",elem:l.elem,marginLeft:V(-s)},{type:"kern",size:l.kern},{type:"elem",elem:i},{type:"kern",size:h.kern},{type:"elem",elem:h.elem,marginLeft:V(s)},{type:"kern",size:r.fontMetrics().bigOpSpacing5}]},r)}else if(l){var g=i.height-a;f=z.makeVList({positionType:"top",positionData:g,children:[{type:"kern",size:r.fontMetrics().bigOpSpacing5},{type:"elem",elem:l.elem,marginLeft:V(-s)},{type:"kern",size:l.kern},{type:"elem",elem:i}]},r)}else if(h){var x=i.depth+a;f=z.makeVList({positionType:"bottom",positionData:x,children:[{type:"elem",elem:i},{type:"kern",size:h.kern},{type:"elem",elem:h.elem,marginLeft:V(s)},{type:"kern",size:r.fontMetrics().bigOpSpacing5}]},r)}else return i;var y=[f];if(l&&s!==0&&!o){var b=z.makeSpan(["mspace"],[],r);b.style.marginRight=V(s),y.unshift(b)}return z.makeSpan(["mop","op-limits"],y,r)},Z4=["\\smallint"],pa=(i,e)=>{var t,r,n=!1,s;i.type==="supsub"?(t=i.sup,r=i.sub,s=me(i.base,"op"),n=!0):s=me(i,"op");var a=e.style,o=!1;a.size===ae.DISPLAY.size&&s.symbol&&!Z4.includes(s.name)&&(o=!0);var l;if(s.symbol){var h=o?"Size2-Regular":"Size1-Regular",d="";if((s.name==="\\oiint"||s.name==="\\oiiint")&&(d=s.name.slice(1),s.name=d==="oiint"?"\\iint":"\\iiint"),l=z.makeSymbol(s.name,h,"math",e,["mop","op-symbol",o?"large-op":"small-op"]),d.length>0){var c=l.italic,f=z.staticSvg(d+"Size"+(o?"2":"1"),e);l=z.makeVList({positionType:"individualShift",children:[{type:"elem",elem:l,shift:0},{type:"elem",elem:f,shift:o?.08:0}]},e),s.name="\\"+d,l.classes.unshift("mop"),l.italic=c}}else if(s.body){var m=ct(s.body,e,!0);m.length===1&&m[0]instanceof ei?(l=m[0],l.classes[0]="mop"):l=z.makeSpan(["mop"],m,e)}else{for(var g=[],x=1;x{var t;if(i.symbol)t=new Bt("mo",[Ci(i.name,i.mode)]),Z4.includes(i.name)&&t.setAttribute("largeop","false");else if(i.body)t=new Bt("mo",ti(i.body,e));else{t=new Bt("mi",[new ki(i.name.slice(1))]);var r=new Bt("mo",[Ci("\u2061","text")]);i.parentIsSupSub?t=new Bt("mrow",[t,r]):t=E4([t,r])}return t},RA={"\u220F":"\\prod","\u2210":"\\coprod","\u2211":"\\sum","\u22C0":"\\bigwedge","\u22C1":"\\bigvee","\u22C2":"\\bigcap","\u22C3":"\\bigcup","\u2A00":"\\bigodot","\u2A01":"\\bigoplus","\u2A02":"\\bigotimes","\u2A04":"\\biguplus","\u2A06":"\\bigsqcup"};Z({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:(i,e)=>{var{parser:t,funcName:r}=i,n=r;return n.length===1&&(n=RA[n]),{type:"op",mode:t.mode,limits:!0,parentIsSupSub:!1,symbol:!0,name:n}},htmlBuilder:pa,mathmlBuilder:rl});Z({type:"op",names:["\\mathop"],props:{numArgs:1,primitive:!0},handler:(i,e)=>{var{parser:t}=i,r=e[0];return{type:"op",mode:t.mode,limits:!1,parentIsSupSub:!1,symbol:!1,body:rt(r)}},htmlBuilder:pa,mathmlBuilder:rl});DA={"\u222B":"\\int","\u222C":"\\iint","\u222D":"\\iiint","\u222E":"\\oint","\u222F":"\\oiint","\u2230":"\\oiiint"};Z({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(i){var{parser:e,funcName:t}=i;return{type:"op",mode:e.mode,limits:!1,parentIsSupSub:!1,symbol:!1,name:t}},htmlBuilder:pa,mathmlBuilder:rl});Z({type:"op",names:["\\det","\\gcd","\\inf","\\lim","\\max","\\min","\\Pr","\\sup"],props:{numArgs:0},handler(i){var{parser:e,funcName:t}=i;return{type:"op",mode:e.mode,limits:!0,parentIsSupSub:!1,symbol:!1,name:t}},htmlBuilder:pa,mathmlBuilder:rl});Z({type:"op",names:["\\int","\\iint","\\iiint","\\oint","\\oiint","\\oiiint","\u222B","\u222C","\u222D","\u222E","\u222F","\u2230"],props:{numArgs:0,allowedInArgument:!0},handler(i){var{parser:e,funcName:t}=i,r=t;return r.length===1&&(r=DA[r]),{type:"op",mode:e.mode,limits:!1,parentIsSupSub:!1,symbol:!0,name:r}},htmlBuilder:pa,mathmlBuilder:rl});Q4=(i,e)=>{var t,r,n=!1,s;i.type==="supsub"?(t=i.sup,r=i.sub,s=me(i.base,"operatorname"),n=!0):s=me(i,"operatorname");var a;if(s.body.length>0){for(var o=s.body.map(c=>{var f=c.text;return typeof f=="string"?{type:"textord",mode:c.mode,text:f}:c}),l=ct(o,e.withFont("mathrm"),!0),h=0;h{for(var t=ti(i.body,e.withFont("mathrm")),r=!0,n=0;nd.toText()).join("");t=[new $.TextNode(o)]}var l=new $.MathNode("mi",t);l.setAttribute("mathvariant","normal");var h=new $.MathNode("mo",[Ci("\u2061","text")]);return i.parentIsSupSub?new $.MathNode("mrow",[l,h]):$.newDocumentFragment([l,h])};Z({type:"operatorname",names:["\\operatorname@","\\operatornamewithlimits"],props:{numArgs:1},handler:(i,e)=>{var{parser:t,funcName:r}=i,n=e[0];return{type:"operatorname",mode:t.mode,body:rt(n),alwaysHandleSupSub:r==="\\operatornamewithlimits",limits:!1,parentIsSupSub:!1}},htmlBuilder:Q4,mathmlBuilder:OA});w("\\operatorname","\\@ifstar\\operatornamewithlimits\\operatorname@");gs({type:"ordgroup",htmlBuilder(i,e){return i.semisimple?z.makeFragment(ct(i.body,e,!1)):z.makeSpan(["mord"],ct(i.body,e,!0),e)},mathmlBuilder(i,e){return vn(i.body,e,!0)}});Z({type:"overline",names:["\\overline"],props:{numArgs:1},handler(i,e){var{parser:t}=i,r=e[0];return{type:"overline",mode:t.mode,body:r}},htmlBuilder(i,e){var t=Me(i.body,e.havingCrampedStyle()),r=z.makeLineSpan("overline-line",e),n=e.fontMetrics().defaultRuleThickness,s=z.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:t},{type:"kern",size:3*n},{type:"elem",elem:r},{type:"kern",size:n}]},e);return z.makeSpan(["mord","overline"],[s],e)},mathmlBuilder(i,e){var t=new $.MathNode("mo",[new $.TextNode("\u203E")]);t.setAttribute("stretchy","true");var r=new $.MathNode("mover",[ze(i.body,e),t]);return r.setAttribute("accent","true"),r}});Z({type:"phantom",names:["\\phantom"],props:{numArgs:1,allowedInText:!0},handler:(i,e)=>{var{parser:t}=i,r=e[0];return{type:"phantom",mode:t.mode,body:rt(r)}},htmlBuilder:(i,e)=>{var t=ct(i.body,e.withPhantom(),!1);return z.makeFragment(t)},mathmlBuilder:(i,e)=>{var t=ti(i.body,e);return new $.MathNode("mphantom",t)}});Z({type:"hphantom",names:["\\hphantom"],props:{numArgs:1,allowedInText:!0},handler:(i,e)=>{var{parser:t}=i,r=e[0];return{type:"hphantom",mode:t.mode,body:r}},htmlBuilder:(i,e)=>{var t=z.makeSpan([],[Me(i.body,e.withPhantom())]);if(t.height=0,t.depth=0,t.children)for(var r=0;r{var t=ti(rt(i.body),e),r=new $.MathNode("mphantom",t),n=new $.MathNode("mpadded",[r]);return n.setAttribute("height","0px"),n.setAttribute("depth","0px"),n}});Z({type:"vphantom",names:["\\vphantom"],props:{numArgs:1,allowedInText:!0},handler:(i,e)=>{var{parser:t}=i,r=e[0];return{type:"vphantom",mode:t.mode,body:r}},htmlBuilder:(i,e)=>{var t=z.makeSpan(["inner"],[Me(i.body,e.withPhantom())]),r=z.makeSpan(["fix"],[]);return z.makeSpan(["mord","rlap"],[t,r],e)},mathmlBuilder:(i,e)=>{var t=ti(rt(i.body),e),r=new $.MathNode("mphantom",t),n=new $.MathNode("mpadded",[r]);return n.setAttribute("width","0px"),n}});Z({type:"raisebox",names:["\\raisebox"],props:{numArgs:2,argTypes:["size","hbox"],allowedInText:!0},handler(i,e){var{parser:t}=i,r=me(e[0],"size").value,n=e[1];return{type:"raisebox",mode:t.mode,dy:r,body:n}},htmlBuilder(i,e){var t=Me(i.body,e),r=Xe(i.dy,e);return z.makeVList({positionType:"shift",positionData:-r,children:[{type:"elem",elem:t}]},e)},mathmlBuilder(i,e){var t=new $.MathNode("mpadded",[ze(i.body,e)]),r=i.dy.number+i.dy.unit;return t.setAttribute("voffset",r),t}});Z({type:"internal",names:["\\relax"],props:{numArgs:0,allowedInText:!0,allowedInArgument:!0},handler(i){var{parser:e}=i;return{type:"internal",mode:e.mode}}});Z({type:"rule",names:["\\rule"],props:{numArgs:2,numOptionalArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["size","size","size"]},handler(i,e,t){var{parser:r}=i,n=t[0],s=me(e[0],"size"),a=me(e[1],"size");return{type:"rule",mode:r.mode,shift:n&&me(n,"size").value,width:s.value,height:a.value}},htmlBuilder(i,e){var t=z.makeSpan(["mord","rule"],[],e),r=Xe(i.width,e),n=Xe(i.height,e),s=i.shift?Xe(i.shift,e):0;return t.style.borderRightWidth=V(r),t.style.borderTopWidth=V(n),t.style.bottom=V(s),t.width=r,t.height=n+s,t.depth=-s,t.maxFontSize=n*1.125*e.sizeMultiplier,t},mathmlBuilder(i,e){var t=Xe(i.width,e),r=Xe(i.height,e),n=i.shift?Xe(i.shift,e):0,s=e.color&&e.getColor()||"black",a=new $.MathNode("mspace");a.setAttribute("mathbackground",s),a.setAttribute("width",V(t)),a.setAttribute("height",V(r));var o=new $.MathNode("mpadded",[a]);return n>=0?o.setAttribute("height",V(n)):(o.setAttribute("height",V(n)),o.setAttribute("depth",V(-n))),o.setAttribute("voffset",V(n)),o}});t4=["\\tiny","\\sixptsize","\\scriptsize","\\footnotesize","\\small","\\normalsize","\\large","\\Large","\\LARGE","\\huge","\\Huge"],BA=(i,e)=>{var t=e.havingSize(i.size);return J4(i.body,t,e)};Z({type:"sizing",names:t4,props:{numArgs:0,allowedInText:!0},handler:(i,e)=>{var{breakOnTokenText:t,funcName:r,parser:n}=i,s=n.parseExpression(!1,t);return{type:"sizing",mode:n.mode,size:t4.indexOf(r)+1,body:s}},htmlBuilder:BA,mathmlBuilder:(i,e)=>{var t=e.havingSize(i.size),r=ti(i.body,t),n=new $.MathNode("mstyle",r);return n.setAttribute("mathsize",V(t.sizeMultiplier)),n}});Z({type:"smash",names:["\\smash"],props:{numArgs:1,numOptionalArgs:1,allowedInText:!0},handler:(i,e,t)=>{var{parser:r}=i,n=!1,s=!1,a=t[0]&&me(t[0],"ordgroup");if(a)for(var o="",l=0;l{var t=z.makeSpan([],[Me(i.body,e)]);if(!i.smashHeight&&!i.smashDepth)return t;if(i.smashHeight&&(t.height=0,t.children))for(var r=0;r{var t=new $.MathNode("mpadded",[ze(i.body,e)]);return i.smashHeight&&t.setAttribute("height","0px"),i.smashDepth&&t.setAttribute("depth","0px"),t}});Z({type:"sqrt",names:["\\sqrt"],props:{numArgs:1,numOptionalArgs:1},handler(i,e,t){var{parser:r}=i,n=t[0],s=e[0];return{type:"sqrt",mode:r.mode,body:s,index:n}},htmlBuilder(i,e){var t=Me(i.body,e.havingCrampedStyle());t.height===0&&(t.height=e.fontMetrics().xHeight),t=z.wrapFragment(t,e);var r=e.fontMetrics(),n=r.defaultRuleThickness,s=n;e.style.idt.height+t.depth+a&&(a=(a+c-t.height-t.depth)/2);var f=l.height-t.height-a-h;t.style.paddingLeft=V(d);var m=z.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:t,wrapperClasses:["svg-align"]},{type:"kern",size:-(t.height+f)},{type:"elem",elem:l},{type:"kern",size:h}]},e);if(i.index){var g=e.havingStyle(ae.SCRIPTSCRIPT),x=Me(i.index,g,e),y=.6*(m.height-m.depth),b=z.makeVList({positionType:"shift",positionData:-y,children:[{type:"elem",elem:x}]},e),S=z.makeSpan(["root"],[b]);return z.makeSpan(["mord","sqrt"],[S,m],e)}else return z.makeSpan(["mord","sqrt"],[m],e)},mathmlBuilder(i,e){var{body:t,index:r}=i;return r?new $.MathNode("mroot",[ze(t,e),ze(r,e)]):new $.MathNode("msqrt",[ze(t,e)])}});i4={display:ae.DISPLAY,text:ae.TEXT,script:ae.SCRIPT,scriptscript:ae.SCRIPTSCRIPT};Z({type:"styling",names:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(i,e){var{breakOnTokenText:t,funcName:r,parser:n}=i,s=n.parseExpression(!0,t),a=r.slice(1,r.length-5);return{type:"styling",mode:n.mode,style:a,body:s}},htmlBuilder(i,e){var t=i4[i.style],r=e.havingStyle(t).withFont("");return J4(i.body,r,e)},mathmlBuilder(i,e){var t=i4[i.style],r=e.havingStyle(t),n=ti(i.body,r),s=new $.MathNode("mstyle",n),a={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]},o=a[i.style];return s.setAttribute("scriptlevel",o[0]),s.setAttribute("displaystyle",o[1]),s}});PA=function(e,t){var r=e.base;if(r)if(r.type==="op"){var n=r.limits&&(t.style.size===ae.DISPLAY.size||r.alwaysHandleSupSub);return n?pa:null}else if(r.type==="operatorname"){var s=r.alwaysHandleSupSub&&(t.style.size===ae.DISPLAY.size||r.limits);return s?Q4:null}else{if(r.type==="accent")return Ne.isCharacterBox(r.base)?k1:null;if(r.type==="horizBrace"){var a=!e.sub;return a===r.isOver?X4:null}else return null}else return null};gs({type:"supsub",htmlBuilder(i,e){var t=PA(i,e);if(t)return t(i,e);var{base:r,sup:n,sub:s}=i,a=Me(r,e),o,l,h=e.fontMetrics(),d=0,c=0,f=r&&Ne.isCharacterBox(r);if(n){var m=e.havingStyle(e.style.sup());o=Me(n,m,e),f||(d=a.height-m.fontMetrics().supDrop*m.sizeMultiplier/e.sizeMultiplier)}if(s){var g=e.havingStyle(e.style.sub());l=Me(s,g,e),f||(c=a.depth+g.fontMetrics().subDrop*g.sizeMultiplier/e.sizeMultiplier)}var x;e.style===ae.DISPLAY?x=h.sup1:e.style.cramped?x=h.sup3:x=h.sup2;var y=e.sizeMultiplier,b=V(.5/h.ptPerEm/y),S=null;if(l){var A=i.base&&i.base.type==="op"&&i.base.name&&(i.base.name==="\\oiint"||i.base.name==="\\oiiint");(a instanceof ei||A)&&(S=V(-a.italic))}var C;if(o&&l){d=Math.max(d,x,o.depth+.25*h.xHeight),c=Math.max(c,h.sub2);var I=h.defaultRuleThickness,O=4*I;if(d-o.depth-(l.height-c)0&&(d+=q,c-=q)}var P=[{type:"elem",elem:l,shift:c,marginRight:b,marginLeft:S},{type:"elem",elem:o,shift:-d,marginRight:b}];C=z.makeVList({positionType:"individualShift",children:P},e)}else if(l){c=Math.max(c,h.sub1,l.height-.8*h.xHeight);var W=[{type:"elem",elem:l,marginLeft:S,marginRight:b}];C=z.makeVList({positionType:"shift",positionData:c,children:W},e)}else if(o)d=Math.max(d,x,o.depth+.25*h.xHeight),C=z.makeVList({positionType:"shift",positionData:-d,children:[{type:"elem",elem:o,marginRight:b}]},e);else throw new Error("supsub must have either sup or sub.");var ne=m1(a,"right")||"mord";return z.makeSpan([ne],[a,z.makeSpan(["msupsub"],[C])],e)},mathmlBuilder(i,e){var t=!1,r,n;i.base&&i.base.type==="horizBrace"&&(n=!!i.sup,n===i.base.isOver&&(t=!0,r=i.base.isOver)),i.base&&(i.base.type==="op"||i.base.type==="operatorname")&&(i.base.parentIsSupSub=!0);var s=[ze(i.base,e)];i.sub&&s.push(ze(i.sub,e)),i.sup&&s.push(ze(i.sup,e));var a;if(t)a=r?"mover":"munder";else if(i.sub)if(i.sup){var h=i.base;h&&h.type==="op"&&h.limits&&e.style===ae.DISPLAY||h&&h.type==="operatorname"&&h.alwaysHandleSupSub&&(e.style===ae.DISPLAY||h.limits)?a="munderover":a="msubsup"}else{var l=i.base;l&&l.type==="op"&&l.limits&&(e.style===ae.DISPLAY||l.alwaysHandleSupSub)||l&&l.type==="operatorname"&&l.alwaysHandleSupSub&&(l.limits||e.style===ae.DISPLAY)?a="munder":a="msub"}else{var o=i.base;o&&o.type==="op"&&o.limits&&(e.style===ae.DISPLAY||o.alwaysHandleSupSub)||o&&o.type==="operatorname"&&o.alwaysHandleSupSub&&(o.limits||e.style===ae.DISPLAY)?a="mover":a="msup"}return new $.MathNode(a,s)}});gs({type:"atom",htmlBuilder(i,e){return z.mathsym(i.text,i.mode,e,["m"+i.family])},mathmlBuilder(i,e){var t=new $.MathNode("mo",[Ci(i.text,i.mode)]);if(i.family==="bin"){var r=S1(i,e);r==="bold-italic"&&t.setAttribute("mathvariant",r)}else i.family==="punct"?t.setAttribute("separator","true"):(i.family==="open"||i.family==="close")&&t.setAttribute("stretchy","false");return t}});eg={mi:"italic",mn:"normal",mtext:"normal"};gs({type:"mathord",htmlBuilder(i,e){return z.makeOrd(i,e,"mathord")},mathmlBuilder(i,e){var t=new $.MathNode("mi",[Ci(i.text,i.mode,e)]),r=S1(i,e)||"italic";return r!==eg[t.type]&&t.setAttribute("mathvariant",r),t}});gs({type:"textord",htmlBuilder(i,e){return z.makeOrd(i,e,"textord")},mathmlBuilder(i,e){var t=Ci(i.text,i.mode,e),r=S1(i,e)||"normal",n;return i.mode==="text"?n=new $.MathNode("mtext",[t]):/[0-9]/.test(i.text)?n=new $.MathNode("mn",[t]):i.text==="\\prime"?n=new $.MathNode("mo",[t]):n=new $.MathNode("mi",[t]),r!==eg[n.type]&&n.setAttribute("mathvariant",r),n}});o1={"\\nobreak":"nobreak","\\allowbreak":"allowbreak"},l1={" ":{},"\\ ":{},"~":{className:"nobreak"},"\\space":{},"\\nobreakspace":{className:"nobreak"}};gs({type:"spacing",htmlBuilder(i,e){if(l1.hasOwnProperty(i.text)){var t=l1[i.text].className||"";if(i.mode==="text"){var r=z.makeOrd(i,e,"textord");return r.classes.push(t),r}else return z.makeSpan(["mspace",t],[z.mathsym(i.text,i.mode,e)],e)}else{if(o1.hasOwnProperty(i.text))return z.makeSpan(["mspace",o1[i.text]],[],e);throw new G('Unknown type of space "'+i.text+'"')}},mathmlBuilder(i,e){var t;if(l1.hasOwnProperty(i.text))t=new $.MathNode("mtext",[new $.TextNode("\xA0")]);else{if(o1.hasOwnProperty(i.text))return new $.MathNode("mspace");throw new G('Unknown type of space "'+i.text+'"')}return t}});r4=()=>{var i=new $.MathNode("mtd",[]);return i.setAttribute("width","50%"),i};gs({type:"tag",mathmlBuilder(i,e){var t=new $.MathNode("mtable",[new $.MathNode("mtr",[r4(),new $.MathNode("mtd",[vn(i.body,e)]),r4(),new $.MathNode("mtd",[vn(i.tag,e)])])]);return t.setAttribute("width","100%"),t}});n4={"\\text":void 0,"\\textrm":"textrm","\\textsf":"textsf","\\texttt":"texttt","\\textnormal":"textrm"},s4={"\\textbf":"textbf","\\textmd":"textmd"},FA={"\\textit":"textit","\\textup":"textup"},a4=(i,e)=>{var t=i.font;if(t){if(n4[t])return e.withTextFontFamily(n4[t]);if(s4[t])return e.withTextFontWeight(s4[t]);if(t==="\\emph")return e.fontShape==="textit"?e.withTextFontShape("textup"):e.withTextFontShape("textit")}else return e;return e.withTextFontShape(FA[t])};Z({type:"text",names:["\\text","\\textrm","\\textsf","\\texttt","\\textnormal","\\textbf","\\textmd","\\textit","\\textup","\\emph"],props:{numArgs:1,argTypes:["text"],allowedInArgument:!0,allowedInText:!0},handler(i,e){var{parser:t,funcName:r}=i,n=e[0];return{type:"text",mode:t.mode,body:rt(n),font:r}},htmlBuilder(i,e){var t=a4(i,e),r=ct(i.body,t,!0);return z.makeSpan(["mord","text"],r,t)},mathmlBuilder(i,e){var t=a4(i,e);return vn(i.body,t)}});Z({type:"underline",names:["\\underline"],props:{numArgs:1,allowedInText:!0},handler(i,e){var{parser:t}=i;return{type:"underline",mode:t.mode,body:e[0]}},htmlBuilder(i,e){var t=Me(i.body,e),r=z.makeLineSpan("underline-line",e),n=e.fontMetrics().defaultRuleThickness,s=z.makeVList({positionType:"top",positionData:t.height,children:[{type:"kern",size:n},{type:"elem",elem:r},{type:"kern",size:3*n},{type:"elem",elem:t}]},e);return z.makeSpan(["mord","underline"],[s],e)},mathmlBuilder(i,e){var t=new $.MathNode("mo",[new $.TextNode("\u203E")]);t.setAttribute("stretchy","true");var r=new $.MathNode("munder",[ze(i.body,e),t]);return r.setAttribute("accentunder","true"),r}});Z({type:"vcenter",names:["\\vcenter"],props:{numArgs:1,argTypes:["original"],allowedInText:!1},handler(i,e){var{parser:t}=i;return{type:"vcenter",mode:t.mode,body:e[0]}},htmlBuilder(i,e){var t=Me(i.body,e),r=e.fontMetrics().axisHeight,n=.5*(t.height-r-(t.depth+r));return z.makeVList({positionType:"shift",positionData:n,children:[{type:"elem",elem:t}]},e)},mathmlBuilder(i,e){return new $.MathNode("mpadded",[ze(i.body,e)],["vcenter"])}});Z({type:"verb",names:["\\verb"],props:{numArgs:0,allowedInText:!0},handler(i,e,t){throw new G("\\verb ended by end of line instead of matching delimiter")},htmlBuilder(i,e){for(var t=o4(i),r=[],n=e.havingStyle(e.style.text()),s=0;si.body.replace(/ /g,i.star?"\u2423":"\xA0"),xn=T4,tg=`[ \r + ]`,qA="\\\\[a-zA-Z@]+",HA="\\\\[^\uD800-\uDFFF]",UA="("+qA+")"+tg+"*",$A=`\\\\( |[ \r ]+ -?)[ \r ]*`,vu="[\u0300-\u036F]",CE=new RegExp(vu+"+$"),_E="("+M6+"+)|"+(kE+"|")+"([!-\\[\\]-\u2027\u202A-\uD7FF\uF900-\uFFFF]"+(vu+"*")+"|[\uD800-\uDBFF][\uDC00-\uDFFF]"+(vu+"*")+"|\\\\verb\\*([^]).*?\\4|\\\\verb([^*a-zA-Z]).*?\\5"+("|"+AE)+("|"+SE+")"),F0=class{constructor(e,t){this.input=void 0,this.settings=void 0,this.tokenRegex=void 0,this.catcodes=void 0,this.input=e,this.settings=t,this.tokenRegex=new RegExp(_E,"g"),this.catcodes={"%":14,"~":13}}setCatcode(e,t){this.catcodes[e]=t}lex(){var e=this.input,t=this.tokenRegex.lastIndex;if(t===e.length)return new ii("EOF",new Ut(this,t,t));var r=this.tokenRegex.exec(e);if(r===null||r.index!==t)throw new U("Unexpected character: '"+e[t]+"'",new ii(e[t],new Ut(this,t,t+1)));var n=r[6]||r[3]||(r[2]?"\\ ":" ");if(this.catcodes[n]===14){var s=e.indexOf(` -`,this.tokenRegex.lastIndex);return s===-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=s+1,this.lex()}return new ii(n,new Ut(this,t,this.tokenRegex.lastIndex))}},yu=class{constructor(e,t){e===void 0&&(e={}),t===void 0&&(t={}),this.current=void 0,this.builtins=void 0,this.undefStack=void 0,this.current=t,this.builtins=e,this.undefStack=[]}beginGroup(){this.undefStack.push({})}endGroup(){if(this.undefStack.length===0)throw new U("Unbalanced namespace destruction: attempt to pop global namespace; please report this as a bug");var e=this.undefStack.pop();for(var t in e)e.hasOwnProperty(t)&&(e[t]==null?delete this.current[t]:this.current[t]=e[t])}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,t,r){if(r===void 0&&(r=!1),r){for(var n=0;n0&&(this.undefStack[this.undefStack.length-1][e]=t)}else{var s=this.undefStack[this.undefStack.length-1];s&&!s.hasOwnProperty(e)&&(s[e]=this.current[e])}t==null?delete this.current[e]:this.current[e]=t}},LE=c6;w("\\noexpand",function(i){var e=i.popToken();return i.isExpandable(e.text)&&(e.noexpand=!0,e.treatAsRelax=!0),{tokens:[e],numArgs:0}});w("\\expandafter",function(i){var e=i.popToken();return i.expandOnce(!0),{tokens:[e],numArgs:0}});w("\\@firstoftwo",function(i){var e=i.consumeArgs(2);return{tokens:e[0],numArgs:0}});w("\\@secondoftwo",function(i){var e=i.consumeArgs(2);return{tokens:e[1],numArgs:0}});w("\\@ifnextchar",function(i){var e=i.consumeArgs(3);i.consumeSpaces();var t=i.future();return e[0].length===1&&e[0][0].text===t.text?{tokens:e[1],numArgs:0}:{tokens:e[2],numArgs:0}});w("\\@ifstar","\\@ifnextchar *{\\@firstoftwo{#1}}");w("\\TextOrMath",function(i){var e=i.consumeArgs(2);return i.mode==="text"?{tokens:e[0],numArgs:0}:{tokens:e[1],numArgs:0}});C2={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};w("\\char",function(i){var e=i.popToken(),t,r="";if(e.text==="'")t=8,e=i.popToken();else if(e.text==='"')t=16,e=i.popToken();else if(e.text==="`")if(e=i.popToken(),e.text[0]==="\\")r=e.text.charCodeAt(1);else{if(e.text==="EOF")throw new U("\\char` missing argument");r=e.text.charCodeAt(0)}else t=10;if(t){if(r=C2[e.text],r==null||r>=t)throw new U("Invalid base-"+t+" digit "+e.text);for(var n;(n=C2[i.future().text])!=null&&n{var n=i.consumeArg().tokens;if(n.length!==1)throw new U("\\newcommand's first argument must be a macro name");var s=n[0].text,a=i.isDefined(s);if(a&&!e)throw new U("\\newcommand{"+s+"} attempting to redefine "+(s+"; use \\renewcommand"));if(!a&&!t)throw new U("\\renewcommand{"+s+"} when command "+s+" does not yet exist; use \\newcommand");var o=0;if(n=i.consumeArg().tokens,n.length===1&&n[0].text==="["){for(var l="",h=i.expandNextToken();h.text!=="]"&&h.text!=="EOF";)l+=h.text,h=i.expandNextToken();if(!l.match(/^\s*[0-9]+\s*$/))throw new U("Invalid number of arguments: "+l);o=parseInt(l),n=i.consumeArg().tokens}return a&&r||i.macros.set(s,{tokens:n,numArgs:o}),""};w("\\newcommand",i=>Du(i,!1,!0,!1));w("\\renewcommand",i=>Du(i,!0,!1,!1));w("\\providecommand",i=>Du(i,!0,!0,!0));w("\\message",i=>{var e=i.consumeArgs(1)[0];return console.log(e.reverse().map(t=>t.text).join("")),""});w("\\errmessage",i=>{var e=i.consumeArgs(1)[0];return console.error(e.reverse().map(t=>t.text).join("")),""});w("\\show",i=>{var e=i.popToken(),t=e.text;return console.log(e,i.macros.get(t),Kr[t],Ce.math[t],Ce.text[t]),""});w("\\bgroup","{");w("\\egroup","}");w("~","\\nobreakspace");w("\\lq","`");w("\\rq","'");w("\\aa","\\r a");w("\\AA","\\r A");w("\\textcopyright","\\html@mathml{\\textcircled{c}}{\\char`\xA9}");w("\\copyright","\\TextOrMath{\\textcopyright}{\\text{\\textcopyright}}");w("\\textregistered","\\html@mathml{\\textcircled{\\scriptsize R}}{\\char`\xAE}");w("\u212C","\\mathscr{B}");w("\u2130","\\mathscr{E}");w("\u2131","\\mathscr{F}");w("\u210B","\\mathscr{H}");w("\u2110","\\mathscr{I}");w("\u2112","\\mathscr{L}");w("\u2133","\\mathscr{M}");w("\u211B","\\mathscr{R}");w("\u212D","\\mathfrak{C}");w("\u210C","\\mathfrak{H}");w("\u2128","\\mathfrak{Z}");w("\\Bbbk","\\Bbb{k}");w("\xB7","\\cdotp");w("\\llap","\\mathllap{\\textrm{#1}}");w("\\rlap","\\mathrlap{\\textrm{#1}}");w("\\clap","\\mathclap{\\textrm{#1}}");w("\\mathstrut","\\vphantom{(}");w("\\underbar","\\underline{\\text{#1}}");w("\\not",'\\html@mathml{\\mathrel{\\mathrlap\\@not}}{\\char"338}');w("\\neq","\\html@mathml{\\mathrel{\\not=}}{\\mathrel{\\char`\u2260}}");w("\\ne","\\neq");w("\u2260","\\neq");w("\\notin","\\html@mathml{\\mathrel{{\\in}\\mathllap{/\\mskip1mu}}}{\\mathrel{\\char`\u2209}}");w("\u2209","\\notin");w("\u2258","\\html@mathml{\\mathrel{=\\kern{-1em}\\raisebox{0.4em}{$\\scriptsize\\frown$}}}{\\mathrel{\\char`\u2258}}");w("\u2259","\\html@mathml{\\stackrel{\\tiny\\wedge}{=}}{\\mathrel{\\char`\u2258}}");w("\u225A","\\html@mathml{\\stackrel{\\tiny\\vee}{=}}{\\mathrel{\\char`\u225A}}");w("\u225B","\\html@mathml{\\stackrel{\\scriptsize\\star}{=}}{\\mathrel{\\char`\u225B}}");w("\u225D","\\html@mathml{\\stackrel{\\tiny\\mathrm{def}}{=}}{\\mathrel{\\char`\u225D}}");w("\u225E","\\html@mathml{\\stackrel{\\tiny\\mathrm{m}}{=}}{\\mathrel{\\char`\u225E}}");w("\u225F","\\html@mathml{\\stackrel{\\tiny?}{=}}{\\mathrel{\\char`\u225F}}");w("\u27C2","\\perp");w("\u203C","\\mathclose{!\\mkern-0.8mu!}");w("\u220C","\\notni");w("\u231C","\\ulcorner");w("\u231D","\\urcorner");w("\u231E","\\llcorner");w("\u231F","\\lrcorner");w("\xA9","\\copyright");w("\xAE","\\textregistered");w("\uFE0F","\\textregistered");w("\\ulcorner",'\\html@mathml{\\@ulcorner}{\\mathop{\\char"231c}}');w("\\urcorner",'\\html@mathml{\\@urcorner}{\\mathop{\\char"231d}}');w("\\llcorner",'\\html@mathml{\\@llcorner}{\\mathop{\\char"231e}}');w("\\lrcorner",'\\html@mathml{\\@lrcorner}{\\mathop{\\char"231f}}');w("\\vdots","{\\varvdots\\rule{0pt}{15pt}}");w("\u22EE","\\vdots");w("\\varGamma","\\mathit{\\Gamma}");w("\\varDelta","\\mathit{\\Delta}");w("\\varTheta","\\mathit{\\Theta}");w("\\varLambda","\\mathit{\\Lambda}");w("\\varXi","\\mathit{\\Xi}");w("\\varPi","\\mathit{\\Pi}");w("\\varSigma","\\mathit{\\Sigma}");w("\\varUpsilon","\\mathit{\\Upsilon}");w("\\varPhi","\\mathit{\\Phi}");w("\\varPsi","\\mathit{\\Psi}");w("\\varOmega","\\mathit{\\Omega}");w("\\substack","\\begin{subarray}{c}#1\\end{subarray}");w("\\colon","\\nobreak\\mskip2mu\\mathpunct{}\\mathchoice{\\mkern-3mu}{\\mkern-3mu}{}{}{:}\\mskip6mu\\relax");w("\\boxed","\\fbox{$\\displaystyle{#1}$}");w("\\iff","\\DOTSB\\;\\Longleftrightarrow\\;");w("\\implies","\\DOTSB\\;\\Longrightarrow\\;");w("\\impliedby","\\DOTSB\\;\\Longleftarrow\\;");w("\\dddot","{\\overset{\\raisebox{-0.1ex}{\\normalsize ...}}{#1}}");w("\\ddddot","{\\overset{\\raisebox{-0.1ex}{\\normalsize ....}}{#1}}");_2={",":"\\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"};w("\\dots",function(i){var e="\\dotso",t=i.expandAfterFuture().text;return t in _2?e=_2[t]:(t.slice(0,4)==="\\not"||t in Ce.math&&["bin","rel"].includes(Ce.math[t].group))&&(e="\\dotsb"),e});Ou={")":!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};w("\\dotso",function(i){var e=i.future().text;return e in Ou?"\\ldots\\,":"\\ldots"});w("\\dotsc",function(i){var e=i.future().text;return e in Ou&&e!==","?"\\ldots\\,":"\\ldots"});w("\\cdots",function(i){var e=i.future().text;return e in Ou?"\\@cdots\\,":"\\@cdots"});w("\\dotsb","\\cdots");w("\\dotsm","\\cdots");w("\\dotsi","\\!\\cdots");w("\\dotsx","\\ldots\\,");w("\\DOTSI","\\relax");w("\\DOTSB","\\relax");w("\\DOTSX","\\relax");w("\\tmspace","\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax");w("\\,","\\tmspace+{3mu}{.1667em}");w("\\thinspace","\\,");w("\\>","\\mskip{4mu}");w("\\:","\\tmspace+{4mu}{.2222em}");w("\\medspace","\\:");w("\\;","\\tmspace+{5mu}{.2777em}");w("\\thickspace","\\;");w("\\!","\\tmspace-{3mu}{.1667em}");w("\\negthinspace","\\!");w("\\negmedspace","\\tmspace-{4mu}{.2222em}");w("\\negthickspace","\\tmspace-{5mu}{.277em}");w("\\enspace","\\kern.5em ");w("\\enskip","\\hskip.5em\\relax");w("\\quad","\\hskip1em\\relax");w("\\qquad","\\hskip2em\\relax");w("\\tag","\\@ifstar\\tag@literal\\tag@paren");w("\\tag@paren","\\tag@literal{({#1})}");w("\\tag@literal",i=>{if(i.macros.get("\\df@tag"))throw new U("Multiple \\tag");return"\\gdef\\df@tag{\\text{#1}}"});w("\\bmod","\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}");w("\\pod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)");w("\\pmod","\\pod{{\\rm mod}\\mkern6mu#1}");w("\\mod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1");w("\\newline","\\\\\\relax");w("\\TeX","\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}");T6=j(Yi["Main-Regular"][84][1]-.7*Yi["Main-Regular"][65][1]);w("\\LaTeX","\\textrm{\\html@mathml{"+("L\\kern-.36em\\raisebox{"+T6+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{LaTeX}}");w("\\KaTeX","\\textrm{\\html@mathml{"+("K\\kern-.17em\\raisebox{"+T6+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{KaTeX}}");w("\\hspace","\\@ifstar\\@hspacer\\@hspace");w("\\@hspace","\\hskip #1\\relax");w("\\@hspacer","\\rule{0pt}{0pt}\\hskip #1\\relax");w("\\ordinarycolon",":");w("\\vcentcolon","\\mathrel{\\mathop\\ordinarycolon}");w("\\dblcolon",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}');w("\\coloneqq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}');w("\\Coloneqq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}');w("\\coloneq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}');w("\\Coloneq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}');w("\\eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}');w("\\Eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}');w("\\eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}');w("\\Eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}');w("\\colonapprox",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}');w("\\Colonapprox",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}');w("\\colonsim",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}');w("\\Colonsim",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}');w("\u2237","\\dblcolon");w("\u2239","\\eqcolon");w("\u2254","\\coloneqq");w("\u2255","\\eqqcolon");w("\u2A74","\\Coloneqq");w("\\ratio","\\vcentcolon");w("\\coloncolon","\\dblcolon");w("\\colonequals","\\coloneqq");w("\\coloncolonequals","\\Coloneqq");w("\\equalscolon","\\eqqcolon");w("\\equalscoloncolon","\\Eqqcolon");w("\\colonminus","\\coloneq");w("\\coloncolonminus","\\Coloneq");w("\\minuscolon","\\eqcolon");w("\\minuscoloncolon","\\Eqcolon");w("\\coloncolonapprox","\\Colonapprox");w("\\coloncolonsim","\\Colonsim");w("\\simcolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}");w("\\simcoloncolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}");w("\\approxcolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}");w("\\approxcoloncolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}");w("\\notni","\\html@mathml{\\not\\ni}{\\mathrel{\\char`\u220C}}");w("\\limsup","\\DOTSB\\operatorname*{lim\\,sup}");w("\\liminf","\\DOTSB\\operatorname*{lim\\,inf}");w("\\injlim","\\DOTSB\\operatorname*{inj\\,lim}");w("\\projlim","\\DOTSB\\operatorname*{proj\\,lim}");w("\\varlimsup","\\DOTSB\\operatorname*{\\overline{lim}}");w("\\varliminf","\\DOTSB\\operatorname*{\\underline{lim}}");w("\\varinjlim","\\DOTSB\\operatorname*{\\underrightarrow{lim}}");w("\\varprojlim","\\DOTSB\\operatorname*{\\underleftarrow{lim}}");w("\\gvertneqq","\\html@mathml{\\@gvertneqq}{\u2269}");w("\\lvertneqq","\\html@mathml{\\@lvertneqq}{\u2268}");w("\\ngeqq","\\html@mathml{\\@ngeqq}{\u2271}");w("\\ngeqslant","\\html@mathml{\\@ngeqslant}{\u2271}");w("\\nleqq","\\html@mathml{\\@nleqq}{\u2270}");w("\\nleqslant","\\html@mathml{\\@nleqslant}{\u2270}");w("\\nshortmid","\\html@mathml{\\@nshortmid}{\u2224}");w("\\nshortparallel","\\html@mathml{\\@nshortparallel}{\u2226}");w("\\nsubseteqq","\\html@mathml{\\@nsubseteqq}{\u2288}");w("\\nsupseteqq","\\html@mathml{\\@nsupseteqq}{\u2289}");w("\\varsubsetneq","\\html@mathml{\\@varsubsetneq}{\u228A}");w("\\varsubsetneqq","\\html@mathml{\\@varsubsetneqq}{\u2ACB}");w("\\varsupsetneq","\\html@mathml{\\@varsupsetneq}{\u228B}");w("\\varsupsetneqq","\\html@mathml{\\@varsupsetneqq}{\u2ACC}");w("\\imath","\\html@mathml{\\@imath}{\u0131}");w("\\jmath","\\html@mathml{\\@jmath}{\u0237}");w("\\llbracket","\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`\u27E6}}");w("\\rrbracket","\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`\u27E7}}");w("\u27E6","\\llbracket");w("\u27E7","\\rrbracket");w("\\lBrace","\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`\u2983}}");w("\\rBrace","\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`\u2984}}");w("\u2983","\\lBrace");w("\u2984","\\rBrace");w("\\minuso","\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`\u29B5}}");w("\u29B5","\\minuso");w("\\darr","\\downarrow");w("\\dArr","\\Downarrow");w("\\Darr","\\Downarrow");w("\\lang","\\langle");w("\\rang","\\rangle");w("\\uarr","\\uparrow");w("\\uArr","\\Uparrow");w("\\Uarr","\\Uparrow");w("\\N","\\mathbb{N}");w("\\R","\\mathbb{R}");w("\\Z","\\mathbb{Z}");w("\\alef","\\aleph");w("\\alefsym","\\aleph");w("\\Alpha","\\mathrm{A}");w("\\Beta","\\mathrm{B}");w("\\bull","\\bullet");w("\\Chi","\\mathrm{X}");w("\\clubs","\\clubsuit");w("\\cnums","\\mathbb{C}");w("\\Complex","\\mathbb{C}");w("\\Dagger","\\ddagger");w("\\diamonds","\\diamondsuit");w("\\empty","\\emptyset");w("\\Epsilon","\\mathrm{E}");w("\\Eta","\\mathrm{H}");w("\\exist","\\exists");w("\\harr","\\leftrightarrow");w("\\hArr","\\Leftrightarrow");w("\\Harr","\\Leftrightarrow");w("\\hearts","\\heartsuit");w("\\image","\\Im");w("\\infin","\\infty");w("\\Iota","\\mathrm{I}");w("\\isin","\\in");w("\\Kappa","\\mathrm{K}");w("\\larr","\\leftarrow");w("\\lArr","\\Leftarrow");w("\\Larr","\\Leftarrow");w("\\lrarr","\\leftrightarrow");w("\\lrArr","\\Leftrightarrow");w("\\Lrarr","\\Leftrightarrow");w("\\Mu","\\mathrm{M}");w("\\natnums","\\mathbb{N}");w("\\Nu","\\mathrm{N}");w("\\Omicron","\\mathrm{O}");w("\\plusmn","\\pm");w("\\rarr","\\rightarrow");w("\\rArr","\\Rightarrow");w("\\Rarr","\\Rightarrow");w("\\real","\\Re");w("\\reals","\\mathbb{R}");w("\\Reals","\\mathbb{R}");w("\\Rho","\\mathrm{P}");w("\\sdot","\\cdot");w("\\sect","\\S");w("\\spades","\\spadesuit");w("\\sub","\\subset");w("\\sube","\\subseteq");w("\\supe","\\supseteq");w("\\Tau","\\mathrm{T}");w("\\thetasym","\\vartheta");w("\\weierp","\\wp");w("\\Zeta","\\mathrm{Z}");w("\\argmin","\\DOTSB\\operatorname*{arg\\,min}");w("\\argmax","\\DOTSB\\operatorname*{arg\\,max}");w("\\plim","\\DOTSB\\mathop{\\operatorname{plim}}\\limits");w("\\bra","\\mathinner{\\langle{#1}|}");w("\\ket","\\mathinner{|{#1}\\rangle}");w("\\braket","\\mathinner{\\langle{#1}\\rangle}");w("\\Bra","\\left\\langle#1\\right|");w("\\Ket","\\left|#1\\right\\rangle");N6=i=>e=>{var t=e.consumeArg().tokens,r=e.consumeArg().tokens,n=e.consumeArg().tokens,s=e.consumeArg().tokens,a=e.macros.get("|"),o=e.macros.get("\\|");e.macros.beginGroup();var l=c=>f=>{i&&(f.macros.set("|",a),n.length&&f.macros.set("\\|",o));var m=c;if(!c&&n.length){var g=f.future();g.text==="|"&&(f.popToken(),m=!0)}return{tokens:m?n:r,numArgs:0}};e.macros.set("|",l(!1)),n.length&&e.macros.set("\\|",l(!0));var h=e.consumeArg().tokens,d=e.expandTokens([...s,...h,...t]);return e.macros.endGroup(),{tokens:d.reverse(),numArgs:0}};w("\\bra@ket",N6(!1));w("\\bra@set",N6(!0));w("\\Braket","\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}");w("\\Set","\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}");w("\\set","\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}");w("\\angln","{\\angl n}");w("\\blue","\\textcolor{##6495ed}{#1}");w("\\orange","\\textcolor{##ffa500}{#1}");w("\\pink","\\textcolor{##ff00af}{#1}");w("\\red","\\textcolor{##df0030}{#1}");w("\\green","\\textcolor{##28ae7b}{#1}");w("\\gray","\\textcolor{gray}{#1}");w("\\purple","\\textcolor{##9d38bd}{#1}");w("\\blueA","\\textcolor{##ccfaff}{#1}");w("\\blueB","\\textcolor{##80f6ff}{#1}");w("\\blueC","\\textcolor{##63d9ea}{#1}");w("\\blueD","\\textcolor{##11accd}{#1}");w("\\blueE","\\textcolor{##0c7f99}{#1}");w("\\tealA","\\textcolor{##94fff5}{#1}");w("\\tealB","\\textcolor{##26edd5}{#1}");w("\\tealC","\\textcolor{##01d1c1}{#1}");w("\\tealD","\\textcolor{##01a995}{#1}");w("\\tealE","\\textcolor{##208170}{#1}");w("\\greenA","\\textcolor{##b6ffb0}{#1}");w("\\greenB","\\textcolor{##8af281}{#1}");w("\\greenC","\\textcolor{##74cf70}{#1}");w("\\greenD","\\textcolor{##1fab54}{#1}");w("\\greenE","\\textcolor{##0d923f}{#1}");w("\\goldA","\\textcolor{##ffd0a9}{#1}");w("\\goldB","\\textcolor{##ffbb71}{#1}");w("\\goldC","\\textcolor{##ff9c39}{#1}");w("\\goldD","\\textcolor{##e07d10}{#1}");w("\\goldE","\\textcolor{##a75a05}{#1}");w("\\redA","\\textcolor{##fca9a9}{#1}");w("\\redB","\\textcolor{##ff8482}{#1}");w("\\redC","\\textcolor{##f9685d}{#1}");w("\\redD","\\textcolor{##e84d39}{#1}");w("\\redE","\\textcolor{##bc2612}{#1}");w("\\maroonA","\\textcolor{##ffbde0}{#1}");w("\\maroonB","\\textcolor{##ff92c6}{#1}");w("\\maroonC","\\textcolor{##ed5fa6}{#1}");w("\\maroonD","\\textcolor{##ca337c}{#1}");w("\\maroonE","\\textcolor{##9e034e}{#1}");w("\\purpleA","\\textcolor{##ddd7ff}{#1}");w("\\purpleB","\\textcolor{##c6b9fc}{#1}");w("\\purpleC","\\textcolor{##aa87ff}{#1}");w("\\purpleD","\\textcolor{##7854ab}{#1}");w("\\purpleE","\\textcolor{##543b78}{#1}");w("\\mintA","\\textcolor{##f5f9e8}{#1}");w("\\mintB","\\textcolor{##edf2df}{#1}");w("\\mintC","\\textcolor{##e0e5cc}{#1}");w("\\grayA","\\textcolor{##f6f7f7}{#1}");w("\\grayB","\\textcolor{##f0f1f2}{#1}");w("\\grayC","\\textcolor{##e3e5e6}{#1}");w("\\grayD","\\textcolor{##d6d8da}{#1}");w("\\grayE","\\textcolor{##babec2}{#1}");w("\\grayF","\\textcolor{##888d93}{#1}");w("\\grayG","\\textcolor{##626569}{#1}");w("\\grayH","\\textcolor{##3b3e40}{#1}");w("\\grayI","\\textcolor{##21242c}{#1}");w("\\kaBlue","\\textcolor{##314453}{#1}");w("\\kaGreen","\\textcolor{##71B307}{#1}");E6={"^":!0,_:!0,"\\limits":!0,"\\nolimits":!0},bu=class{constructor(e,t,r){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=t,this.expansionCount=0,this.feed(e),this.macros=new yu(LE,t.macros),this.mode=r,this.stack=[]}feed(e){this.lexer=new F0(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 t,r,n;if(e){if(this.consumeSpaces(),this.future().text!=="[")return null;t=this.popToken(),{tokens:n,end:r}=this.consumeArg(["]"])}else({tokens:n,start:t,end:r}=this.consumeArg());return this.pushToken(new ii("EOF",r.loc)),this.pushTokens(n),new ii("",Ut.range(t,r))}consumeSpaces(){for(;;){var e=this.future();if(e.text===" ")this.stack.pop();else break}}consumeArg(e){var t=[],r=e&&e.length>0;r||this.consumeSpaces();var n=this.future(),s,a=0,o=0;do{if(s=this.popToken(),t.push(s),s.text==="{")++a;else if(s.text==="}"){if(--a,a===-1)throw new U("Extra }",s)}else if(s.text==="EOF")throw new U("Unexpected end of input in a macro argument, expected '"+(e&&r?e[o]:"}")+"'",s);if(e&&r)if((a===0||a===1&&e[o]==="{")&&s.text===e[o]){if(++o,o===e.length){t.splice(-o,o);break}}else o=0}while(a!==0||r);return n.text==="{"&&t[t.length-1].text==="}"&&(t.pop(),t.shift()),t.reverse(),{tokens:t,start:n,end:s}}consumeArgs(e,t){if(t){if(t.length!==e+1)throw new U("The length of delimiters doesn't match the number of args!");for(var r=t[0],n=0;nthis.settings.maxExpand)throw new U("Too many expansions: infinite loop or need to increase maxExpand setting")}expandOnce(e){var t=this.popToken(),r=t.text,n=t.noexpand?null:this._getExpansion(r);if(n==null||e&&n.unexpandable){if(e&&n==null&&r[0]==="\\"&&!this.isDefined(r))throw new U("Undefined control sequence: "+r);return this.pushToken(t),!1}this.countExpansion(1);var s=n.tokens,a=this.consumeArgs(n.numArgs,n.delimiters);if(n.numArgs){s=s.slice();for(var o=s.length-1;o>=0;--o){var l=s[o];if(l.text==="#"){if(o===0)throw new U("Incomplete placeholder at end of macro body",l);if(l=s[--o],l.text==="#")s.splice(o+1,1);else if(/^[1-9]$/.test(l.text))s.splice(o,2,...a[+l.text-1]);else throw new U("Not a valid argument number",l)}}}return this.pushTokens(s),s.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 ii(e)]):void 0}expandTokens(e){var t=[],r=this.stack.length;for(this.pushTokens(e);this.stack.length>r;)if(this.expandOnce(!0)===!1){var n=this.stack.pop();n.treatAsRelax&&(n.noexpand=!1,n.treatAsRelax=!1),t.push(n)}return this.countExpansion(t.length),t}expandMacroAsText(e){var t=this.expandMacro(e);return t&&t.map(r=>r.text).join("")}_getExpansion(e){var t=this.macros.get(e);if(t==null)return t;if(e.length===1){var r=this.lexer.catcodes[e];if(r!=null&&r!==13)return}var n=typeof t=="function"?t(this):t;if(typeof n=="string"){var s=0;if(n.indexOf("#")!==-1)for(var a=n.replace(/##/g,"");a.indexOf("#"+(s+1))!==-1;)++s;for(var o=new F0(n,this.settings),l=[],h=o.lex();h.text!=="EOF";)l.push(h),h=o.lex();l.reverse();var d={tokens:l,numArgs:s};return d}return n}isDefined(e){return this.macros.has(e)||Kr.hasOwnProperty(e)||Ce.math.hasOwnProperty(e)||Ce.text.hasOwnProperty(e)||E6.hasOwnProperty(e)}isExpandable(e){var t=this.macros.get(e);return t!=null?typeof t=="string"||typeof t=="function"||!t.unexpandable:Kr.hasOwnProperty(e)&&!Kr[e].primitive}},L2=/^[₊₋₌₍₎₀₁₂₃₄₅₆₇₈₉ₐₑₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ]/,_0=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"}),lu={"\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"}},z2={\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"},q0=class i{constructor(e,t){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 bu(e,t,this.mode),this.settings=t,this.leftrightDepth=0}expect(e,t){if(t===void 0&&(t=!0),this.fetch().text!==e)throw new U("Expected '"+e+"', got '"+this.fetch().text+"'",this.fetch());t&&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 t=this.nextToken;this.consume(),this.gullet.pushToken(new ii("}")),this.gullet.pushTokens(e);var r=this.parseExpression(!1);return this.expect("}"),this.nextToken=t,r}parseExpression(e,t){for(var r=[];;){this.mode==="math"&&this.consumeSpaces();var n=this.fetch();if(i.endOfExpression.indexOf(n.text)!==-1||t&&n.text===t||e&&Kr[n.text]&&Kr[n.text].infix)break;var s=this.parseAtom(t);if(s){if(s.type==="internal")continue}else break;r.push(s)}return this.mode==="text"&&this.formLigatures(r),this.handleInfixNodes(r)}handleInfixNodes(e){for(var t=-1,r,n=0;n=0&&this.settings.reportNonstrict("unicodeTextInMathMode",'Latin-1/Unicode text character "'+t[0]+'" used in math mode',e);var o=Ce[this.mode][t].group,l=Ut.range(e),h;if(MN.hasOwnProperty(o)){var d=o;h={type:"atom",mode:this.mode,family:d,loc:l,text:t}}else h={type:o,mode:this.mode,loc:l,text:t};a=h}else if(t.charCodeAt(0)>=128)this.settings.strict&&(R2(t.charCodeAt(0))?this.mode==="math"&&this.settings.reportNonstrict("unicodeTextInMathMode",'Unicode text character "'+t[0]+'" used in math mode',e):this.settings.reportNonstrict("unknownSymbol",'Unrecognized Unicode character "'+t[0]+'"'+(" ("+t.charCodeAt(0)+")"),e)),a={type:"textord",mode:"text",loc:Ut.range(e),text:t};else return null;if(this.consume(),s)for(var c=0;c{BE=typeof global=="object"&&global&&global.Object===Object&&global,V0=BE});var PE,FE,Ze,Di=M(()=>{Fu();PE=typeof self=="object"&&self&&self.Object===Object&&self,FE=V0||PE||Function("return this")(),Ze=FE});var qE,vi,Ao=M(()=>{Di();qE=Ze.Symbol,vi=qE});function $E(i){var e=HE.call(i,ko),t=i[ko];try{i[ko]=void 0;var r=!0}catch{}var n=UE.call(i);return r&&(e?i[ko]=t:delete i[ko]),n}var C6,HE,UE,ko,_6,L6=M(()=>{Ao();C6=Object.prototype,HE=C6.hasOwnProperty,UE=C6.toString,ko=vi?vi.toStringTag:void 0;_6=$E});function YE(i){return GE.call(i)}var jE,GE,z6,I6=M(()=>{jE=Object.prototype,GE=jE.toString;z6=YE});function XE(i){return i==null?i===void 0?VE:WE:R6&&R6 in Object(i)?_6(i):z6(i)}var WE,VE,R6,Oi,Fs=M(()=>{Ao();L6();I6();WE="[object Null]",VE="[object Undefined]",R6=vi?vi.toStringTag:void 0;Oi=XE});function KE(i){return i!=null&&typeof i=="object"}var dt,vr=M(()=>{dt=KE});var ZE,yi,qs=M(()=>{ZE=Array.isArray,yi=ZE});function QE(i){var e=typeof i;return i!=null&&(e=="object"||e=="function")}var mt,yr=M(()=>{mt=QE});function JE(i){return i}var X0,qu=M(()=>{X0=JE});function nS(i){if(!mt(i))return!1;var e=Oi(i);return e==tS||e==iS||e==eS||e==rS}var eS,tS,iS,rS,Hs,K0=M(()=>{Fs();yr();eS="[object AsyncFunction]",tS="[object Function]",iS="[object GeneratorFunction]",rS="[object Proxy]";Hs=nS});var sS,Z0,D6=M(()=>{Di();sS=Ze["__core-js_shared__"],Z0=sS});function aS(i){return!!O6&&O6 in i}var O6,B6,P6=M(()=>{D6();O6=(function(){var i=/[^.]+$/.exec(Z0&&Z0.keys&&Z0.keys.IE_PROTO||"");return i?"Symbol(src)_1."+i:""})();B6=aS});function hS(i){if(i!=null){try{return lS.call(i)}catch{}try{return i+""}catch{}}return""}var oS,lS,br,Hu=M(()=>{oS=Function.prototype,lS=oS.toString;br=hS});function xS(i){if(!mt(i)||B6(i))return!1;var e=Hs(i)?gS:cS;return e.test(br(i))}var dS,cS,uS,fS,mS,pS,gS,F6,q6=M(()=>{K0();P6();yr();Hu();dS=/[\\^$.*+?()[\]{}|]/g,cS=/^\[object .+?Constructor\]$/,uS=Function.prototype,fS=Object.prototype,mS=uS.toString,pS=fS.hasOwnProperty,gS=RegExp("^"+mS.call(pS).replace(dS,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");F6=xS});function vS(i,e){return i?.[e]}var H6,U6=M(()=>{H6=vS});function yS(i,e){var t=H6(i,e);return F6(t)?t:void 0}var Gt,en=M(()=>{q6();U6();Gt=yS});var bS,Q0,$6=M(()=>{en();Di();bS=Gt(Ze,"WeakMap"),Q0=bS});var j6,wS,G6,Y6=M(()=>{yr();j6=Object.create,wS=(function(){function i(){}return function(e){if(!mt(e))return{};if(j6)return j6(e);i.prototype=e;var t=new i;return i.prototype=void 0,t}})(),G6=wS});function MS(i,e,t){switch(t.length){case 0:return i.call(e);case 1:return i.call(e,t[0]);case 2:return i.call(e,t[0],t[1]);case 3:return i.call(e,t[0],t[1],t[2])}return i.apply(e,t)}var W6,V6=M(()=>{W6=MS});function TS(i,e){var t=-1,r=i.length;for(e||(e=Array(r));++t{J0=TS});function AS(i){var e=0,t=0;return function(){var r=SS(),n=ES-(r-t);if(t=r,n>0){if(++e>=NS)return arguments[0]}else e=0;return i.apply(void 0,arguments)}}var NS,ES,SS,X6,K6=M(()=>{NS=800,ES=16,SS=Date.now;X6=AS});function kS(i){return function(){return i}}var Z6,Q6=M(()=>{Z6=kS});var CS,Us,$u=M(()=>{en();CS=(function(){try{var i=Gt(Object,"defineProperty");return i({},"",{}),i}catch{}})(),Us=CS});var _S,J6,e4=M(()=>{Q6();$u();qu();_S=Us?function(i,e){return Us(i,"toString",{configurable:!0,enumerable:!1,value:Z6(e),writable:!0})}:X0,J6=_S});var LS,t4,i4=M(()=>{e4();K6();LS=X6(J6),t4=LS});function zS(i,e){for(var t=-1,r=i==null?0:i.length;++t{r4=zS});function DS(i,e){var t=typeof i;return e=e??IS,!!e&&(t=="number"||t!="symbol"&&RS.test(i))&&i>-1&&i%1==0&&i{IS=9007199254740991,RS=/^(?:0|[1-9]\d*)$/;eh=DS});function OS(i,e,t){e=="__proto__"&&Us?Us(i,e,{configurable:!0,enumerable:!0,value:t,writable:!0}):i[e]=t}var $s,th=M(()=>{$u();$s=OS});function BS(i,e){return i===e||i!==i&&e!==e}var Zi,js=M(()=>{Zi=BS});function qS(i,e,t){var r=i[e];(!(FS.call(i,e)&&Zi(r,t))||t===void 0&&!(e in i))&&$s(i,e,t)}var PS,FS,ih,Gu=M(()=>{th();js();PS=Object.prototype,FS=PS.hasOwnProperty;ih=qS});function HS(i,e,t,r){var n=!t;t||(t={});for(var s=-1,a=e.length;++s{Gu();th();Qi=HS});function US(i,e,t){return e=s4(e===void 0?i.length-1:e,0),function(){for(var r=arguments,n=-1,s=s4(r.length-e,0),a=Array(s);++n{V6();s4=Math.max;a4=US});function $S(i,e){return t4(a4(i,e,X0),i+"")}var l4,h4=M(()=>{qu();o4();i4();l4=$S});function GS(i){return typeof i=="number"&&i>-1&&i%1==0&&i<=jS}var jS,rh,Yu=M(()=>{jS=9007199254740991;rh=GS});function YS(i){return i!=null&&rh(i.length)&&!Hs(i)}var tn,Co=M(()=>{K0();Yu();tn=YS});function WS(i,e,t){if(!mt(t))return!1;var r=typeof e;return(r=="number"?tn(t)&&eh(e,t.length):r=="string"&&e in t)?Zi(t[e],i):!1}var d4,c4=M(()=>{js();Co();ju();yr();d4=WS});function VS(i){return l4(function(e,t){var r=-1,n=t.length,s=n>1?t[n-1]:void 0,a=n>2?t[2]:void 0;for(s=i.length>3&&typeof s=="function"?(n--,s):void 0,a&&d4(t[0],t[1],a)&&(s=n<3?void 0:s,n=1),e=Object(e);++r{h4();c4();u4=VS});function KS(i){var e=i&&i.constructor,t=typeof e=="function"&&e.prototype||XS;return i===t}var XS,Ys,nh=M(()=>{XS=Object.prototype;Ys=KS});function ZS(i,e){for(var t=-1,r=Array(i);++t{m4=ZS});function JS(i){return dt(i)&&Oi(i)==QS}var QS,Wu,g4=M(()=>{Fs();vr();QS="[object Arguments]";Wu=JS});var x4,eA,tA,iA,_o,Vu=M(()=>{g4();vr();x4=Object.prototype,eA=x4.hasOwnProperty,tA=x4.propertyIsEnumerable,iA=Wu((function(){return arguments})())?Wu:function(i){return dt(i)&&eA.call(i,"callee")&&!tA.call(i,"callee")},_o=iA});function rA(){return!1}var v4,y4=M(()=>{v4=rA});var M4,b4,nA,w4,sA,aA,wr,Lo=M(()=>{Di();y4();M4=typeof exports=="object"&&exports&&!exports.nodeType&&exports,b4=M4&&typeof module=="object"&&module&&!module.nodeType&&module,nA=b4&&b4.exports===M4,w4=nA?Ze.Buffer:void 0,sA=w4?w4.isBuffer:void 0,aA=sA||v4,wr=aA});function LA(i){return dt(i)&&rh(i.length)&&!!Re[Oi(i)]}var oA,lA,hA,dA,cA,uA,fA,mA,pA,gA,xA,vA,yA,bA,wA,MA,TA,NA,EA,SA,AA,kA,CA,_A,Re,T4,N4=M(()=>{Fs();Yu();vr();oA="[object Arguments]",lA="[object Array]",hA="[object Boolean]",dA="[object Date]",cA="[object Error]",uA="[object Function]",fA="[object Map]",mA="[object Number]",pA="[object Object]",gA="[object RegExp]",xA="[object Set]",vA="[object String]",yA="[object WeakMap]",bA="[object ArrayBuffer]",wA="[object DataView]",MA="[object Float32Array]",TA="[object Float64Array]",NA="[object Int8Array]",EA="[object Int16Array]",SA="[object Int32Array]",AA="[object Uint8Array]",kA="[object Uint8ClampedArray]",CA="[object Uint16Array]",_A="[object Uint32Array]",Re={};Re[MA]=Re[TA]=Re[NA]=Re[EA]=Re[SA]=Re[AA]=Re[kA]=Re[CA]=Re[_A]=!0;Re[oA]=Re[lA]=Re[bA]=Re[hA]=Re[wA]=Re[dA]=Re[cA]=Re[uA]=Re[fA]=Re[mA]=Re[pA]=Re[gA]=Re[xA]=Re[vA]=Re[yA]=!1;T4=LA});function zA(i){return function(e){return i(e)}}var Ws,sh=M(()=>{Ws=zA});var E4,zo,IA,Xu,RA,Mr,ah=M(()=>{Fu();E4=typeof exports=="object"&&exports&&!exports.nodeType&&exports,zo=E4&&typeof module=="object"&&module&&!module.nodeType&&module,IA=zo&&zo.exports===E4,Xu=IA&&V0.process,RA=(function(){try{var i=zo&&zo.require&&zo.require("util").types;return i||Xu&&Xu.binding&&Xu.binding("util")}catch{}})(),Mr=RA});var S4,DA,Vs,oh=M(()=>{N4();sh();ah();S4=Mr&&Mr.isTypedArray,DA=S4?Ws(S4):T4,Vs=DA});function PA(i,e){var t=yi(i),r=!t&&_o(i),n=!t&&!r&&wr(i),s=!t&&!r&&!n&&Vs(i),a=t||r||n||s,o=a?m4(i.length,String):[],l=o.length;for(var h in i)(e||BA.call(i,h))&&!(a&&(h=="length"||n&&(h=="offset"||h=="parent")||s&&(h=="buffer"||h=="byteLength"||h=="byteOffset")||eh(h,l)))&&o.push(h);return o}var OA,BA,lh,Ku=M(()=>{p4();Vu();qs();Lo();ju();oh();OA=Object.prototype,BA=OA.hasOwnProperty;lh=PA});function FA(i,e){return function(t){return i(e(t))}}var hh,Zu=M(()=>{hh=FA});var qA,A4,k4=M(()=>{Zu();qA=hh(Object.keys,Object),A4=qA});function $A(i){if(!Ys(i))return A4(i);var e=[];for(var t in Object(i))UA.call(i,t)&&t!="constructor"&&e.push(t);return e}var HA,UA,C4,_4=M(()=>{nh();k4();HA=Object.prototype,UA=HA.hasOwnProperty;C4=$A});function jA(i){return tn(i)?lh(i):C4(i)}var Xs,dh=M(()=>{Ku();_4();Co();Xs=jA});function GA(i){var e=[];if(i!=null)for(var t in Object(i))e.push(t);return e}var L4,z4=M(()=>{L4=GA});function VA(i){if(!mt(i))return L4(i);var e=Ys(i),t=[];for(var r in i)r=="constructor"&&(e||!WA.call(i,r))||t.push(r);return t}var YA,WA,I4,R4=M(()=>{yr();nh();z4();YA=Object.prototype,WA=YA.hasOwnProperty;I4=VA});function XA(i){return tn(i)?lh(i,!0):I4(i)}var Ji,Ks=M(()=>{Ku();R4();Co();Ji=XA});var KA,Tr,Io=M(()=>{en();KA=Gt(Object,"create"),Tr=KA});function ZA(){this.__data__=Tr?Tr(null):{},this.size=0}var D4,O4=M(()=>{Io();D4=ZA});function QA(i){var e=this.has(i)&&delete this.__data__[i];return this.size-=e?1:0,e}var B4,P4=M(()=>{B4=QA});function ik(i){var e=this.__data__;if(Tr){var t=e[i];return t===JA?void 0:t}return tk.call(e,i)?e[i]:void 0}var JA,ek,tk,F4,q4=M(()=>{Io();JA="__lodash_hash_undefined__",ek=Object.prototype,tk=ek.hasOwnProperty;F4=ik});function sk(i){var e=this.__data__;return Tr?e[i]!==void 0:nk.call(e,i)}var rk,nk,H4,U4=M(()=>{Io();rk=Object.prototype,nk=rk.hasOwnProperty;H4=sk});function ok(i,e){var t=this.__data__;return this.size+=this.has(i)?0:1,t[i]=Tr&&e===void 0?ak:e,this}var ak,$4,j4=M(()=>{Io();ak="__lodash_hash_undefined__";$4=ok});function Zs(i){var e=-1,t=i==null?0:i.length;for(this.clear();++e{O4();P4();q4();U4();j4();Zs.prototype.clear=D4;Zs.prototype.delete=B4;Zs.prototype.get=F4;Zs.prototype.has=H4;Zs.prototype.set=$4;Qu=Zs});function lk(){this.__data__=[],this.size=0}var Y4,W4=M(()=>{Y4=lk});function hk(i,e){for(var t=i.length;t--;)if(Zi(i[t][0],e))return t;return-1}var rn,Ro=M(()=>{js();rn=hk});function uk(i){var e=this.__data__,t=rn(e,i);if(t<0)return!1;var r=e.length-1;return t==r?e.pop():ck.call(e,t,1),--this.size,!0}var dk,ck,V4,X4=M(()=>{Ro();dk=Array.prototype,ck=dk.splice;V4=uk});function fk(i){var e=this.__data__,t=rn(e,i);return t<0?void 0:e[t][1]}var K4,Z4=M(()=>{Ro();K4=fk});function mk(i){return rn(this.__data__,i)>-1}var Q4,J4=M(()=>{Ro();Q4=mk});function pk(i,e){var t=this.__data__,r=rn(t,i);return r<0?(++this.size,t.push([i,e])):t[r][1]=e,this}var eg,tg=M(()=>{Ro();eg=pk});function Qs(i){var e=-1,t=i==null?0:i.length;for(this.clear();++e{W4();X4();Z4();J4();tg();Qs.prototype.clear=Y4;Qs.prototype.delete=V4;Qs.prototype.get=K4;Qs.prototype.has=Q4;Qs.prototype.set=eg;nn=Qs});var gk,sn,ch=M(()=>{en();Di();gk=Gt(Ze,"Map"),sn=gk});function xk(){this.size=0,this.__data__={hash:new Qu,map:new(sn||nn),string:new Qu}}var ig,rg=M(()=>{G4();Do();ch();ig=xk});function vk(i){var e=typeof i;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?i!=="__proto__":i===null}var ng,sg=M(()=>{ng=vk});function yk(i,e){var t=i.__data__;return ng(e)?t[typeof e=="string"?"string":"hash"]:t.map}var an,Oo=M(()=>{sg();an=yk});function bk(i){var e=an(this,i).delete(i);return this.size-=e?1:0,e}var ag,og=M(()=>{Oo();ag=bk});function wk(i){return an(this,i).get(i)}var lg,hg=M(()=>{Oo();lg=wk});function Mk(i){return an(this,i).has(i)}var dg,cg=M(()=>{Oo();dg=Mk});function Tk(i,e){var t=an(this,i),r=t.size;return t.set(i,e),this.size+=t.size==r?0:1,this}var ug,fg=M(()=>{Oo();ug=Tk});function Js(i){var e=-1,t=i==null?0:i.length;for(this.clear();++e{rg();og();hg();cg();fg();Js.prototype.clear=ig;Js.prototype.delete=ag;Js.prototype.get=lg;Js.prototype.has=dg;Js.prototype.set=ug;uh=Js});function Nk(i,e){for(var t=-1,r=e.length,n=i.length;++t{fh=Nk});var Ek,ea,mh=M(()=>{Zu();Ek=hh(Object.getPrototypeOf,Object),ea=Ek});function Lk(i){if(!dt(i)||Oi(i)!=Sk)return!1;var e=ea(i);if(e===null)return!0;var t=Ck.call(e,"constructor")&&e.constructor;return typeof t=="function"&&t instanceof t&&mg.call(t)==_k}var Sk,Ak,kk,mg,Ck,_k,pg,gg=M(()=>{Fs();mh();vr();Sk="[object Object]",Ak=Function.prototype,kk=Object.prototype,mg=Ak.toString,Ck=kk.hasOwnProperty,_k=mg.call(Object);pg=Lk});function zk(){this.__data__=new nn,this.size=0}var xg,vg=M(()=>{Do();xg=zk});function Ik(i){var e=this.__data__,t=e.delete(i);return this.size=e.size,t}var yg,bg=M(()=>{yg=Ik});function Rk(i){return this.__data__.get(i)}var wg,Mg=M(()=>{wg=Rk});function Dk(i){return this.__data__.has(i)}var Tg,Ng=M(()=>{Tg=Dk});function Bk(i,e){var t=this.__data__;if(t instanceof nn){var r=t.__data__;if(!sn||r.length{Do();ch();Ju();Ok=200;Eg=Bk});function ta(i){var e=this.__data__=new nn(i);this.size=e.size}var on,ph=M(()=>{Do();vg();bg();Mg();Ng();Sg();ta.prototype.clear=xg;ta.prototype.delete=yg;ta.prototype.get=wg;ta.prototype.has=Tg;ta.prototype.set=Eg;on=ta});function Pk(i,e){return i&&Qi(e,Xs(e),i)}var Ag,kg=M(()=>{Gs();dh();Ag=Pk});function Fk(i,e){return i&&Qi(e,Ji(e),i)}var Cg,_g=M(()=>{Gs();Ks();Cg=Fk});function Hk(i,e){if(e)return i.slice();var t=i.length,r=Ig?Ig(t):new i.constructor(t);return i.copy(r),r}var Rg,Lg,qk,zg,Ig,gh,t1=M(()=>{Di();Rg=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Lg=Rg&&typeof module=="object"&&module&&!module.nodeType&&module,qk=Lg&&Lg.exports===Rg,zg=qk?Ze.Buffer:void 0,Ig=zg?zg.allocUnsafe:void 0;gh=Hk});function Uk(i,e){for(var t=-1,r=i==null?0:i.length,n=0,s=[];++t{Dg=Uk});function $k(){return[]}var xh,i1=M(()=>{xh=$k});var jk,Gk,Bg,Yk,ia,vh=M(()=>{Og();i1();jk=Object.prototype,Gk=jk.propertyIsEnumerable,Bg=Object.getOwnPropertySymbols,Yk=Bg?function(i){return i==null?[]:(i=Object(i),Dg(Bg(i),function(e){return Gk.call(i,e)}))}:xh,ia=Yk});function Wk(i,e){return Qi(i,ia(i),e)}var Pg,Fg=M(()=>{Gs();vh();Pg=Wk});var Vk,Xk,yh,r1=M(()=>{e1();mh();vh();i1();Vk=Object.getOwnPropertySymbols,Xk=Vk?function(i){for(var e=[];i;)fh(e,ia(i)),i=ea(i);return e}:xh,yh=Xk});function Kk(i,e){return Qi(i,yh(i),e)}var qg,Hg=M(()=>{Gs();r1();qg=Kk});function Zk(i,e,t){var r=e(i);return yi(i)?r:fh(r,t(i))}var bh,n1=M(()=>{e1();qs();bh=Zk});function Qk(i){return bh(i,Xs,ia)}var Bo,s1=M(()=>{n1();vh();dh();Bo=Qk});function Jk(i){return bh(i,Ji,yh)}var Ug,$g=M(()=>{n1();r1();Ks();Ug=Jk});var eC,wh,jg=M(()=>{en();Di();eC=Gt(Ze,"DataView"),wh=eC});var tC,Mh,Gg=M(()=>{en();Di();tC=Gt(Ze,"Promise"),Mh=tC});var iC,Th,Yg=M(()=>{en();Di();iC=Gt(Ze,"Set"),Th=iC});var Wg,rC,Vg,Xg,Kg,Zg,nC,sC,aC,oC,lC,Yn,Nr,Po=M(()=>{jg();ch();Gg();Yg();$6();Fs();Hu();Wg="[object Map]",rC="[object Object]",Vg="[object Promise]",Xg="[object Set]",Kg="[object WeakMap]",Zg="[object DataView]",nC=br(wh),sC=br(sn),aC=br(Mh),oC=br(Th),lC=br(Q0),Yn=Oi;(wh&&Yn(new wh(new ArrayBuffer(1)))!=Zg||sn&&Yn(new sn)!=Wg||Mh&&Yn(Mh.resolve())!=Vg||Th&&Yn(new Th)!=Xg||Q0&&Yn(new Q0)!=Kg)&&(Yn=function(i){var e=Oi(i),t=e==rC?i.constructor:void 0,r=t?br(t):"";if(r)switch(r){case nC:return Zg;case sC:return Wg;case aC:return Vg;case oC:return Xg;case lC:return Kg}return e});Nr=Yn});function cC(i){var e=i.length,t=new i.constructor(e);return e&&typeof i[0]=="string"&&dC.call(i,"index")&&(t.index=i.index,t.input=i.input),t}var hC,dC,Qg,Jg=M(()=>{hC=Object.prototype,dC=hC.hasOwnProperty;Qg=cC});var uC,ra,a1=M(()=>{Di();uC=Ze.Uint8Array,ra=uC});function fC(i){var e=new i.constructor(i.byteLength);return new ra(e).set(new ra(i)),e}var na,Nh=M(()=>{a1();na=fC});function mC(i,e){var t=e?na(i.buffer):i.buffer;return new i.constructor(t,i.byteOffset,i.byteLength)}var e5,t5=M(()=>{Nh();e5=mC});function gC(i){var e=new i.constructor(i.source,pC.exec(i));return e.lastIndex=i.lastIndex,e}var pC,i5,r5=M(()=>{pC=/\w*$/;i5=gC});function xC(i){return s5?Object(s5.call(i)):{}}var n5,s5,a5,o5=M(()=>{Ao();n5=vi?vi.prototype:void 0,s5=n5?n5.valueOf:void 0;a5=xC});function vC(i,e){var t=e?na(i.buffer):i.buffer;return new i.constructor(t,i.byteOffset,i.length)}var Eh,o1=M(()=>{Nh();Eh=vC});function PC(i,e,t){var r=i.constructor;switch(e){case AC:return na(i);case yC:case bC:return new r(+i);case kC:return e5(i,t);case CC:case _C:case LC:case zC:case IC:case RC:case DC:case OC:case BC:return Eh(i,t);case wC:return new r;case MC:case EC:return new r(i);case TC:return i5(i);case NC:return new r;case SC:return a5(i)}}var yC,bC,wC,MC,TC,NC,EC,SC,AC,kC,CC,_C,LC,zC,IC,RC,DC,OC,BC,l5,h5=M(()=>{Nh();t5();r5();o5();o1();yC="[object Boolean]",bC="[object Date]",wC="[object Map]",MC="[object Number]",TC="[object RegExp]",NC="[object Set]",EC="[object String]",SC="[object Symbol]",AC="[object ArrayBuffer]",kC="[object DataView]",CC="[object Float32Array]",_C="[object Float64Array]",LC="[object Int8Array]",zC="[object Int16Array]",IC="[object Int32Array]",RC="[object Uint8Array]",DC="[object Uint8ClampedArray]",OC="[object Uint16Array]",BC="[object Uint32Array]";l5=PC});function FC(i){return typeof i.constructor=="function"&&!Ys(i)?G6(ea(i)):{}}var Sh,l1=M(()=>{Y6();mh();nh();Sh=FC});function HC(i){return dt(i)&&Nr(i)==qC}var qC,d5,c5=M(()=>{Po();vr();qC="[object Map]";d5=HC});var u5,UC,f5,m5=M(()=>{c5();sh();ah();u5=Mr&&Mr.isMap,UC=u5?Ws(u5):d5,f5=UC});function jC(i){return dt(i)&&Nr(i)==$C}var $C,p5,g5=M(()=>{Po();vr();$C="[object Set]";p5=jC});var x5,GC,v5,y5=M(()=>{g5();sh();ah();x5=Mr&&Mr.isSet,GC=x5?Ws(x5):p5,v5=GC});function Ah(i,e,t,r,n,s){var a,o=e&YC,l=e&WC,h=e&VC;if(t&&(a=n?t(i,r,n,s):t(i)),a!==void 0)return a;if(!mt(i))return i;var d=yi(i);if(d){if(a=Qg(i),!o)return J0(i,a)}else{var c=Nr(i),f=c==w5||c==JC;if(wr(i))return gh(i,o);if(c==M5||c==b5||f&&!n){if(a=l||f?{}:Sh(i),!o)return l?qg(i,Cg(a,i)):Pg(i,Ag(a,i))}else{if(!_e[c])return n?i:{};a=l5(i,c,o)}}s||(s=new on);var m=s.get(i);if(m)return m;s.set(i,a),v5(i)?i.forEach(function(v){a.add(Ah(v,e,t,v,i,s))}):f5(i)&&i.forEach(function(v,b){a.set(b,Ah(v,e,t,b,i,s))});var g=h?l?Ug:Bo:l?Ji:Xs,x=d?void 0:g(i);return r4(x||i,function(v,b){x&&(b=v,v=i[b]),ih(a,b,Ah(v,e,t,b,i,s))}),a}var YC,WC,VC,b5,XC,KC,ZC,QC,w5,JC,e_,t_,M5,i_,r_,n_,s_,a_,o_,l_,h_,d_,c_,u_,f_,m_,p_,g_,x_,_e,T5,N5=M(()=>{ph();n4();Gu();kg();_g();t1();Uu();Fg();Hg();s1();$g();Po();Jg();h5();l1();qs();Lo();m5();yr();y5();dh();Ks();YC=1,WC=2,VC=4,b5="[object Arguments]",XC="[object Array]",KC="[object Boolean]",ZC="[object Date]",QC="[object Error]",w5="[object Function]",JC="[object GeneratorFunction]",e_="[object Map]",t_="[object Number]",M5="[object Object]",i_="[object RegExp]",r_="[object Set]",n_="[object String]",s_="[object Symbol]",a_="[object WeakMap]",o_="[object ArrayBuffer]",l_="[object DataView]",h_="[object Float32Array]",d_="[object Float64Array]",c_="[object Int8Array]",u_="[object Int16Array]",f_="[object Int32Array]",m_="[object Uint8Array]",p_="[object Uint8ClampedArray]",g_="[object Uint16Array]",x_="[object Uint32Array]",_e={};_e[b5]=_e[XC]=_e[o_]=_e[l_]=_e[KC]=_e[ZC]=_e[h_]=_e[d_]=_e[c_]=_e[u_]=_e[f_]=_e[e_]=_e[t_]=_e[M5]=_e[i_]=_e[r_]=_e[n_]=_e[s_]=_e[m_]=_e[p_]=_e[g_]=_e[x_]=!0;_e[QC]=_e[w5]=_e[a_]=!1;T5=Ah});function b_(i){return T5(i,v_|y_)}var v_,y_,er,E5=M(()=>{N5();v_=1,y_=4;er=b_});function M_(i){return this.__data__.set(i,w_),this}var w_,S5,A5=M(()=>{w_="__lodash_hash_undefined__";S5=M_});function T_(i){return this.__data__.has(i)}var k5,C5=M(()=>{k5=T_});function kh(i){var e=-1,t=i==null?0:i.length;for(this.__data__=new uh;++e{Ju();A5();C5();kh.prototype.add=kh.prototype.push=S5;kh.prototype.has=k5;_5=kh});function N_(i,e){for(var t=-1,r=i==null?0:i.length;++t{z5=N_});function E_(i,e){return i.has(e)}var R5,D5=M(()=>{R5=E_});function k_(i,e,t,r,n,s){var a=t&S_,o=i.length,l=e.length;if(o!=l&&!(a&&l>o))return!1;var h=s.get(i),d=s.get(e);if(h&&d)return h==e&&d==i;var c=-1,f=!0,m=t&A_?new _5:void 0;for(s.set(i,e),s.set(e,i);++c{L5();I5();D5();S_=1,A_=2;Ch=k_});function C_(i){var e=-1,t=Array(i.size);return i.forEach(function(r,n){t[++e]=[n,r]}),t}var O5,B5=M(()=>{O5=C_});function __(i){var e=-1,t=Array(i.size);return i.forEach(function(r){t[++e]=r}),t}var P5,F5=M(()=>{P5=__});function j_(i,e,t,r,n,s,a){switch(t){case $_:if(i.byteLength!=e.byteLength||i.byteOffset!=e.byteOffset)return!1;i=i.buffer,e=e.buffer;case U_:return!(i.byteLength!=e.byteLength||!s(new ra(i),new ra(e)));case I_:case R_:case B_:return Zi(+i,+e);case D_:return i.name==e.name&&i.message==e.message;case P_:case q_:return i==e+"";case O_:var o=O5;case F_:var l=r&L_;if(o||(o=P5),i.size!=e.size&&!l)return!1;var h=a.get(i);if(h)return h==e;r|=z_,a.set(i,e);var d=Ch(o(i),o(e),r,n,s,a);return a.delete(i),d;case H_:if(d1)return d1.call(i)==d1.call(e)}return!1}var L_,z_,I_,R_,D_,O_,B_,P_,F_,q_,H_,U_,$_,q5,d1,H5,U5=M(()=>{Ao();a1();js();h1();B5();F5();L_=1,z_=2,I_="[object Boolean]",R_="[object Date]",D_="[object Error]",O_="[object Map]",B_="[object Number]",P_="[object RegExp]",F_="[object Set]",q_="[object String]",H_="[object Symbol]",U_="[object ArrayBuffer]",$_="[object DataView]",q5=vi?vi.prototype:void 0,d1=q5?q5.valueOf:void 0;H5=j_});function V_(i,e,t,r,n,s){var a=t&G_,o=Bo(i),l=o.length,h=Bo(e),d=h.length;if(l!=d&&!a)return!1;for(var c=l;c--;){var f=o[c];if(!(a?f in e:W_.call(e,f)))return!1}var m=s.get(i),g=s.get(e);if(m&&g)return m==e&&g==i;var x=!0;s.set(i,e),s.set(e,i);for(var v=a;++c{s1();G_=1,Y_=Object.prototype,W_=Y_.hasOwnProperty;$5=V_});function Z_(i,e,t,r,n,s){var a=yi(i),o=yi(e),l=a?Y5:Nr(i),h=o?Y5:Nr(e);l=l==G5?_h:l,h=h==G5?_h:h;var d=l==_h,c=h==_h,f=l==h;if(f&&wr(i)){if(!wr(e))return!1;a=!0,d=!1}if(f&&!d)return s||(s=new on),a||Vs(i)?Ch(i,e,t,r,n,s):H5(i,e,l,t,r,n,s);if(!(t&X_)){var m=d&&W5.call(i,"__wrapped__"),g=c&&W5.call(e,"__wrapped__");if(m||g){var x=m?i.value():i,v=g?e.value():e;return s||(s=new on),n(x,v,t,r,s)}}return f?(s||(s=new on),$5(i,e,t,r,n,s)):!1}var X_,G5,Y5,_h,K_,W5,V5,X5=M(()=>{ph();h1();U5();j5();Po();qs();Lo();oh();X_=1,G5="[object Arguments]",Y5="[object Array]",_h="[object Object]",K_=Object.prototype,W5=K_.hasOwnProperty;V5=Z_});function K5(i,e,t,r,n){return i===e?!0:i==null||e==null||!dt(i)&&!dt(e)?i!==i&&e!==e:V5(i,e,t,r,K5,n)}var Z5,Q5=M(()=>{X5();vr();Z5=K5});function Q_(i){return function(e,t,r){for(var n=-1,s=Object(e),a=r(e),o=a.length;o--;){var l=a[i?o:++n];if(t(s[l],l,s)===!1)break}return e}}var J5,e7=M(()=>{J5=Q_});var J_,t7,i7=M(()=>{e7();J_=J5(),t7=J_});function eL(i,e,t){(t!==void 0&&!Zi(i[e],t)||t===void 0&&!(e in i))&&$s(i,e,t)}var Fo,c1=M(()=>{th();js();Fo=eL});function tL(i){return dt(i)&&tn(i)}var r7,n7=M(()=>{Co();vr();r7=tL});function iL(i,e){if(!(e==="constructor"&&typeof i[e]=="function")&&e!="__proto__")return i[e]}var qo,u1=M(()=>{qo=iL});function rL(i){return Qi(i,Ji(i))}var s7,a7=M(()=>{Gs();Ks();s7=rL});function nL(i,e,t,r,n,s,a){var o=qo(i,t),l=qo(e,t),h=a.get(l);if(h){Fo(i,t,h);return}var d=s?s(o,l,t+"",i,e,a):void 0,c=d===void 0;if(c){var f=yi(l),m=!f&&wr(l),g=!f&&!m&&Vs(l);d=l,f||m||g?yi(o)?d=o:r7(o)?d=J0(o):m?(c=!1,d=gh(l,!0)):g?(c=!1,d=Eh(l,!0)):d=[]:pg(l)||_o(l)?(d=o,_o(o)?d=s7(o):(!mt(o)||Hs(o))&&(d=Sh(l))):c=!1}c&&(a.set(l,d),n(d,l,r,s,a),a.delete(l)),Fo(i,t,d)}var o7,l7=M(()=>{c1();t1();o1();Uu();l1();Vu();qs();n7();Lo();K0();yr();gg();oh();u1();a7();o7=nL});function h7(i,e,t,r,n){i!==e&&t7(e,function(s,a){if(n||(n=new on),mt(s))o7(i,e,a,t,h7,r,n);else{var o=r?r(qo(i,a),s,a+"",i,e,n):void 0;o===void 0&&(o=s),Fo(i,a,o)}},Ji)}var d7,c7=M(()=>{ph();c1();i7();l7();yr();Ks();u1();d7=h7});function sL(i,e){return Z5(i,e)}var Wn,u7=M(()=>{Q5();Wn=sL});var aL,Yt,f7=M(()=>{c7();f4();aL=u4(function(i,e,t){d7(i,e,t)}),Yt=aL});var ln=M(()=>{E5();u7();f7();});var $o={};ti($o,{Attributor:()=>kt,AttributorStore:()=>Ho,BlockBlot:()=>Vn,ClassAttributor:()=>Qe,ContainerBlot:()=>ha,EmbedBlot:()=>Ue,InlineBlot:()=>Lh,LeafBlot:()=>Je,ParentBlot:()=>Wt,Registry:()=>cn,Scope:()=>Y,ScrollBlot:()=>Uo,StyleAttributor:()=>Vt,TextBlot:()=>da});function m7(i,e){return(i.getAttribute("class")||"").split(/\s+/).filter(t=>t.indexOf(`${e}-`)===0)}function f1(i){let e=i.split("-"),t=e.slice(1).map(r=>r[0].toUpperCase()+r.slice(1)).join("");return e[0]+t}function p7(i,e){let t=e.find(i);if(t)return t;try{return e.create(i)}catch{let r=e.create(Y.INLINE);return Array.from(i.childNodes).forEach(n=>{r.domNode.appendChild(n)}),i.parentNode&&i.parentNode.replaceChild(r.domNode,i),r.attach(),r}}function hL(i,e){if(Object.keys(i).length!==Object.keys(e).length)return!1;for(let t in i)if(i[t]!==e[t])return!1;return!0}var Y,kt,dn,g7,cn,p1,Qe,g1,Vt,x1,Ho,x7,v7,y7,oL,Je,v1,b7,lL,Wt,sa,dL,Lh,oa,cL,Vn,b1,uL,ha,w1,Ue,fL,mL,la,pL,Uo,M1,gL,da,Ae=M(()=>{Y=(i=>(i[i.TYPE=3]="TYPE",i[i.LEVEL=12]="LEVEL",i[i.ATTRIBUTE=13]="ATTRIBUTE",i[i.BLOT=14]="BLOT",i[i.INLINE=7]="INLINE",i[i.BLOCK=11]="BLOCK",i[i.BLOCK_BLOT=10]="BLOCK_BLOT",i[i.INLINE_BLOT=6]="INLINE_BLOT",i[i.BLOCK_ATTRIBUTE=9]="BLOCK_ATTRIBUTE",i[i.INLINE_ATTRIBUTE=5]="INLINE_ATTRIBUTE",i[i.ANY=15]="ANY",i))(Y||{}),kt=class{constructor(e,t,r={}){this.attrName=e,this.keyName=t;let n=Y.TYPE&Y.ATTRIBUTE;this.scope=r.scope!=null?r.scope&Y.LEVEL|n:Y.ATTRIBUTE,r.whitelist!=null&&(this.whitelist=r.whitelist)}static keys(e){return Array.from(e.attributes).map(t=>t.name)}add(e,t){return this.canAdd(e,t)?(e.setAttribute(this.keyName,t),!0):!1}canAdd(e,t){return this.whitelist==null?!0:typeof t=="string"?this.whitelist.indexOf(t.replace(/["']/g,""))>-1:this.whitelist.indexOf(t)>-1}remove(e){e.removeAttribute(this.keyName)}value(e){let t=e.getAttribute(this.keyName);return this.canAdd(e,t)&&t?t:""}},dn=class extends Error{constructor(e){e="[Parchment] "+e,super(e),this.message=e,this.name=this.constructor.name}},g7=class m1{constructor(){this.attributes={},this.classes={},this.tags={},this.types={}}static find(e,t=!1){if(e==null)return null;if(this.blots.has(e))return this.blots.get(e)||null;if(t){let r=null;try{r=e.parentNode}catch{return null}return this.find(r,t)}return null}create(e,t,r){let n=this.query(t);if(n==null)throw new dn(`Unable to create ${t} blot`);let s=n,a=t instanceof Node||t.nodeType===Node.TEXT_NODE?t:s.create(r),o=new s(e,a,r);return m1.blots.set(o.domNode,o),o}find(e,t=!1){return m1.find(e,t)}query(e,t=Y.ANY){let r;return typeof e=="string"?r=this.types[e]||this.attributes[e]:e instanceof Text||e.nodeType===Node.TEXT_NODE?r=this.types.text:typeof e=="number"?e&Y.LEVEL&Y.BLOCK?r=this.types.block:e&Y.LEVEL&Y.INLINE&&(r=this.types.inline):e instanceof Element&&((e.getAttribute("class")||"").split(/\s+/).some(n=>(r=this.classes[n],!!r)),r=r||this.tags[e.tagName]),r==null?null:"scope"in r&&t&Y.LEVEL&r.scope&&t&Y.TYPE&r.scope?r:null}register(...e){return e.map(t=>{let r="blotName"in t,n="attrName"in t;if(!r&&!n)throw new dn("Invalid definition");if(r&&t.blotName==="abstract")throw new dn("Cannot register abstract class");let s=r?t.blotName:n?t.attrName:void 0;return this.types[s]=t,n?typeof t.keyName=="string"&&(this.attributes[t.keyName]=t):r&&(t.className&&(this.classes[t.className]=t),t.tagName&&(Array.isArray(t.tagName)?t.tagName=t.tagName.map(a=>a.toUpperCase()):t.tagName=t.tagName.toUpperCase(),(Array.isArray(t.tagName)?t.tagName:[t.tagName]).forEach(a=>{(this.tags[a]==null||t.className==null)&&(this.tags[a]=t)}))),t})}};g7.blots=new WeakMap;cn=g7;p1=class extends kt{static keys(e){return(e.getAttribute("class")||"").split(/\s+/).map(t=>t.split("-").slice(0,-1).join("-"))}add(e,t){return this.canAdd(e,t)?(this.remove(e),e.classList.add(`${this.keyName}-${t}`),!0):!1}remove(e){m7(e,this.keyName).forEach(t=>{e.classList.remove(t)}),e.classList.length===0&&e.removeAttribute("class")}value(e){let t=(m7(e,this.keyName)[0]||"").slice(this.keyName.length+1);return this.canAdd(e,t)?t:""}},Qe=p1;g1=class extends kt{static keys(e){return(e.getAttribute("style")||"").split(";").map(t=>t.split(":")[0].trim())}add(e,t){return this.canAdd(e,t)?(e.style[f1(this.keyName)]=t,!0):!1}remove(e){e.style[f1(this.keyName)]="",e.getAttribute("style")||e.removeAttribute("style")}value(e){let t=e.style[f1(this.keyName)];return this.canAdd(e,t)?t:""}},Vt=g1,x1=class{constructor(e){this.attributes={},this.domNode=e,this.build()}attribute(e,t){t?e.add(this.domNode,t)&&(e.value(this.domNode)!=null?this.attributes[e.attrName]=e:delete this.attributes[e.attrName]):(e.remove(this.domNode),delete this.attributes[e.attrName])}build(){this.attributes={};let e=cn.find(this.domNode);if(e==null)return;let t=kt.keys(this.domNode),r=Qe.keys(this.domNode),n=Vt.keys(this.domNode);t.concat(r).concat(n).forEach(s=>{let a=e.scroll.query(s,Y.ATTRIBUTE);a instanceof kt&&(this.attributes[a.attrName]=a)})}copy(e){Object.keys(this.attributes).forEach(t=>{let r=this.attributes[t].value(this.domNode);e.format(t,r)})}move(e){this.copy(e),Object.keys(this.attributes).forEach(t=>{this.attributes[t].remove(this.domNode)}),this.attributes={}}values(){return Object.keys(this.attributes).reduce((e,t)=>(e[t]=this.attributes[t].value(this.domNode),e),{})}},Ho=x1,x7=class{constructor(e,t){this.scroll=e,this.domNode=t,cn.blots.set(t,this),this.prev=null,this.next=null}static create(e){if(this.tagName==null)throw new dn("Blot definition missing tagName");let t,r;return Array.isArray(this.tagName)?(typeof e=="string"?(r=e.toUpperCase(),parseInt(r,10).toString()===r&&(r=parseInt(r,10))):typeof e=="number"&&(r=e),typeof r=="number"?t=document.createElement(this.tagName[r-1]):r&&this.tagName.indexOf(r)>-1?t=document.createElement(r):t=document.createElement(this.tagName[0])):t=document.createElement(this.tagName),this.className&&t.classList.add(this.className),t}get statics(){return this.constructor}attach(){}clone(){let e=this.domNode.cloneNode(!1);return this.scroll.create(e)}detach(){this.parent!=null&&this.parent.removeChild(this),cn.blots.delete(this.domNode)}deleteAt(e,t){this.isolate(e,t).remove()}formatAt(e,t,r,n){let s=this.isolate(e,t);if(this.scroll.query(r,Y.BLOT)!=null&&n)s.wrap(r,n);else if(this.scroll.query(r,Y.ATTRIBUTE)!=null){let a=this.scroll.create(this.statics.scope);s.wrap(a),a.format(r,n)}}insertAt(e,t,r){let n=r==null?this.scroll.create("text",t):this.scroll.create(t,r),s=this.split(e);this.parent.insertBefore(n,s||void 0)}isolate(e,t){let r=this.split(e);if(r==null)throw new Error("Attempt to isolate at end");return r.split(t),r}length(){return 1}offset(e=this.parent){return this.parent==null||this===e?0:this.parent.children.offset(this)+this.parent.offset(e)}optimize(e){this.statics.requiredContainer&&!(this.parent instanceof this.statics.requiredContainer)&&this.wrap(this.statics.requiredContainer.blotName)}remove(){this.domNode.parentNode!=null&&this.domNode.parentNode.removeChild(this.domNode),this.detach()}replaceWith(e,t){let r=typeof e=="string"?this.scroll.create(e,t):e;return this.parent!=null&&(this.parent.insertBefore(r,this.next||void 0),this.remove()),r}split(e,t){return e===0?this:this.next}update(e,t){}wrap(e,t){let r=typeof e=="string"?this.scroll.create(e,t):e;if(this.parent!=null&&this.parent.insertBefore(r,this.next||void 0),typeof r.appendChild!="function")throw new dn(`Cannot wrap ${e}`);return r.appendChild(this),r}};x7.blotName="abstract";v7=x7,y7=class extends v7{static value(e){return!0}index(e,t){return this.domNode===e||this.domNode.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_CONTAINED_BY?Math.min(t,1):-1}position(e,t){let r=Array.from(this.parent.domNode.childNodes).indexOf(this.domNode);return e>0&&(r+=1),[this.parent.domNode,r]}value(){return{[this.statics.blotName]:this.statics.value(this.domNode)||!0}}};y7.scope=Y.INLINE_BLOT;oL=y7,Je=oL,v1=class{constructor(){this.head=null,this.tail=null,this.length=0}append(...e){if(this.insertBefore(e[0],null),e.length>1){let t=e.slice(1);this.append(...t)}}at(e){let t=this.iterator(),r=t();for(;r&&e>0;)e-=1,r=t();return r}contains(e){let t=this.iterator(),r=t();for(;r;){if(r===e)return!0;r=t()}return!1}indexOf(e){let t=this.iterator(),r=t(),n=0;for(;r;){if(r===e)return n;n+=1,r=t()}return-1}insertBefore(e,t){e!=null&&(this.remove(e),e.next=t,t!=null?(e.prev=t.prev,t.prev!=null&&(t.prev.next=e),t.prev=e,t===this.head&&(this.head=e)):this.tail!=null?(this.tail.next=e,e.prev=this.tail,this.tail=e):(e.prev=null,this.head=this.tail=e),this.length+=1)}offset(e){let t=0,r=this.head;for(;r!=null;){if(r===e)return t;t+=r.length(),r=r.next}return-1}remove(e){this.contains(e)&&(e.prev!=null&&(e.prev.next=e.next),e.next!=null&&(e.next.prev=e.prev),e===this.head&&(this.head=e.next),e===this.tail&&(this.tail=e.prev),this.length-=1)}iterator(e=this.head){return()=>{let t=e;return e!=null&&(e=e.next),t}}find(e,t=!1){let r=this.iterator(),n=r();for(;n;){let s=n.length();if(ea?r(l,e-a,Math.min(t,a+h-e)):r(l,0,Math.min(h,e+t-a)),a+=h,l=o()}}map(e){return this.reduce((t,r)=>(t.push(e(r)),t),[])}reduce(e,t){let r=this.iterator(),n=r();for(;n;)t=e(t,n),n=r();return t}};b7=class hn extends v7{constructor(e,t){super(e,t),this.uiNode=null,this.build()}appendChild(e){this.insertBefore(e)}attach(){super.attach(),this.children.forEach(e=>{e.attach()})}attachUI(e){this.uiNode!=null&&this.uiNode.remove(),this.uiNode=e,hn.uiClass&&this.uiNode.classList.add(hn.uiClass),this.uiNode.setAttribute("contenteditable","false"),this.domNode.insertBefore(this.uiNode,this.domNode.firstChild)}build(){this.children=new v1,Array.from(this.domNode.childNodes).filter(e=>e!==this.uiNode).reverse().forEach(e=>{try{let t=p7(e,this.scroll);this.insertBefore(t,this.children.head||void 0)}catch(t){if(t instanceof dn)return;throw t}})}deleteAt(e,t){if(e===0&&t===this.length())return this.remove();this.children.forEachAt(e,t,(r,n,s)=>{r.deleteAt(n,s)})}descendant(e,t=0){let[r,n]=this.children.find(t);return e.blotName==null&&e(r)||e.blotName!=null&&r instanceof e?[r,n]:r instanceof hn?r.descendant(e,n):[null,-1]}descendants(e,t=0,r=Number.MAX_VALUE){let n=[],s=r;return this.children.forEachAt(t,r,(a,o,l)=>{(e.blotName==null&&e(a)||e.blotName!=null&&a instanceof e)&&n.push(a),a instanceof hn&&(n=n.concat(a.descendants(e,o,s))),s-=l}),n}detach(){this.children.forEach(e=>{e.detach()}),super.detach()}enforceAllowedChildren(){let e=!1;this.children.forEach(t=>{e||this.statics.allowedChildren.some(r=>t instanceof r)||(t.statics.scope===Y.BLOCK_BLOT?(t.next!=null&&this.splitAfter(t),t.prev!=null&&this.splitAfter(t.prev),t.parent.unwrap(),e=!0):t instanceof hn?t.unwrap():t.remove())})}formatAt(e,t,r,n){this.children.forEachAt(e,t,(s,a,o)=>{s.formatAt(a,o,r,n)})}insertAt(e,t,r){let[n,s]=this.children.find(e);if(n)n.insertAt(s,t,r);else{let a=r==null?this.scroll.create("text",t):this.scroll.create(t,r);this.appendChild(a)}}insertBefore(e,t){e.parent!=null&&e.parent.children.remove(e);let r=null;this.children.insertBefore(e,t||null),e.parent=this,t!=null&&(r=t.domNode),(this.domNode.parentNode!==e.domNode||this.domNode.nextSibling!==r)&&this.domNode.insertBefore(e.domNode,r),e.attach()}length(){return this.children.reduce((e,t)=>e+t.length(),0)}moveChildren(e,t){this.children.forEach(r=>{e.insertBefore(r,t)})}optimize(e){if(super.optimize(e),this.enforceAllowedChildren(),this.uiNode!=null&&this.uiNode!==this.domNode.firstChild&&this.domNode.insertBefore(this.uiNode,this.domNode.firstChild),this.children.length===0)if(this.statics.defaultChild!=null){let t=this.scroll.create(this.statics.defaultChild.blotName);this.appendChild(t)}else this.remove()}path(e,t=!1){let[r,n]=this.children.find(e,t),s=[[this,e]];return r instanceof hn?s.concat(r.path(n,t)):(r!=null&&s.push([r,n]),s)}removeChild(e){this.children.remove(e)}replaceWith(e,t){let r=typeof e=="string"?this.scroll.create(e,t):e;return r instanceof hn&&this.moveChildren(r),super.replaceWith(r)}split(e,t=!1){if(!t){if(e===0)return this;if(e===this.length())return this.next}let r=this.clone();return this.parent&&this.parent.insertBefore(r,this.next||void 0),this.children.forEachAt(e,this.length(),(n,s,a)=>{let o=n.split(s,t);o!=null&&r.appendChild(o)}),r}splitAfter(e){let t=this.clone();for(;e.next!=null;)t.appendChild(e.next);return this.parent&&this.parent.insertBefore(t,this.next||void 0),t}unwrap(){this.parent&&this.moveChildren(this.parent,this.next||void 0),this.remove()}update(e,t){let r=[],n=[];e.forEach(s=>{s.target===this.domNode&&s.type==="childList"&&(r.push(...s.addedNodes),n.push(...s.removedNodes))}),n.forEach(s=>{if(s.parentNode!=null&&s.tagName!=="IFRAME"&&document.body.compareDocumentPosition(s)&Node.DOCUMENT_POSITION_CONTAINED_BY)return;let a=this.scroll.find(s);a!=null&&(a.domNode.parentNode==null||a.domNode.parentNode===this.domNode)&&a.detach()}),r.filter(s=>s.parentNode===this.domNode&&s!==this.uiNode).sort((s,a)=>s===a?0:s.compareDocumentPosition(a)&Node.DOCUMENT_POSITION_FOLLOWING?1:-1).forEach(s=>{let a=null;s.nextSibling!=null&&(a=this.scroll.find(s.nextSibling));let o=p7(s,this.scroll);(o.next!==a||o.next==null)&&(o.parent!=null&&o.parent.removeChild(this),this.insertBefore(o,a||void 0))}),this.enforceAllowedChildren()}};b7.uiClass="";lL=b7,Wt=lL;sa=class aa extends Wt{static create(e){return super.create(e)}static formats(e,t){let r=t.query(aa.blotName);if(!(r!=null&&e.tagName===r.tagName)){if(typeof this.tagName=="string")return!0;if(Array.isArray(this.tagName))return e.tagName.toLowerCase()}}constructor(e,t){super(e,t),this.attributes=new Ho(this.domNode)}format(e,t){if(e===this.statics.blotName&&!t)this.children.forEach(r=>{r instanceof aa||(r=r.wrap(aa.blotName,!0)),this.attributes.copy(r)}),this.unwrap();else{let r=this.scroll.query(e,Y.INLINE);if(r==null)return;r instanceof kt?this.attributes.attribute(r,t):t&&(e!==this.statics.blotName||this.formats()[e]!==t)&&this.replaceWith(e,t)}}formats(){let e=this.attributes.values(),t=this.statics.formats(this.domNode,this.scroll);return t!=null&&(e[this.statics.blotName]=t),e}formatAt(e,t,r,n){this.formats()[r]!=null||this.scroll.query(r,Y.ATTRIBUTE)?this.isolate(e,t).format(r,n):super.formatAt(e,t,r,n)}optimize(e){super.optimize(e);let t=this.formats();if(Object.keys(t).length===0)return this.unwrap();let r=this.next;r instanceof aa&&r.prev===this&&hL(t,r.formats())&&(r.moveChildren(this),r.remove())}replaceWith(e,t){let r=super.replaceWith(e,t);return this.attributes.copy(r),r}update(e,t){super.update(e,t),e.some(r=>r.target===this.domNode&&r.type==="attributes")&&this.attributes.build()}wrap(e,t){let r=super.wrap(e,t);return r instanceof aa&&this.attributes.move(r),r}};sa.allowedChildren=[sa,Je],sa.blotName="inline",sa.scope=Y.INLINE_BLOT,sa.tagName="SPAN";dL=sa,Lh=dL,oa=class y1 extends Wt{static create(e){return super.create(e)}static formats(e,t){let r=t.query(y1.blotName);if(!(r!=null&&e.tagName===r.tagName)){if(typeof this.tagName=="string")return!0;if(Array.isArray(this.tagName))return e.tagName.toLowerCase()}}constructor(e,t){super(e,t),this.attributes=new Ho(this.domNode)}format(e,t){let r=this.scroll.query(e,Y.BLOCK);r!=null&&(r instanceof kt?this.attributes.attribute(r,t):e===this.statics.blotName&&!t?this.replaceWith(y1.blotName):t&&(e!==this.statics.blotName||this.formats()[e]!==t)&&this.replaceWith(e,t))}formats(){let e=this.attributes.values(),t=this.statics.formats(this.domNode,this.scroll);return t!=null&&(e[this.statics.blotName]=t),e}formatAt(e,t,r,n){this.scroll.query(r,Y.BLOCK)!=null?this.format(r,n):super.formatAt(e,t,r,n)}insertAt(e,t,r){if(r==null||this.scroll.query(t,Y.INLINE)!=null)super.insertAt(e,t,r);else{let n=this.split(e);if(n!=null){let s=this.scroll.create(t,r);n.parent.insertBefore(s,n)}else throw new Error("Attempt to insertAt after block boundaries")}}replaceWith(e,t){let r=super.replaceWith(e,t);return this.attributes.copy(r),r}update(e,t){super.update(e,t),e.some(r=>r.target===this.domNode&&r.type==="attributes")&&this.attributes.build()}};oa.blotName="block",oa.scope=Y.BLOCK_BLOT,oa.tagName="P",oa.allowedChildren=[Lh,oa,Je];cL=oa,Vn=cL,b1=class extends Wt{checkMerge(){return this.next!==null&&this.next.statics.blotName===this.statics.blotName}deleteAt(e,t){super.deleteAt(e,t),this.enforceAllowedChildren()}formatAt(e,t,r,n){super.formatAt(e,t,r,n),this.enforceAllowedChildren()}insertAt(e,t,r){super.insertAt(e,t,r),this.enforceAllowedChildren()}optimize(e){super.optimize(e),this.children.length>0&&this.next!=null&&this.checkMerge()&&(this.next.moveChildren(this),this.next.remove())}};b1.blotName="container",b1.scope=Y.BLOCK_BLOT;uL=b1,ha=uL,w1=class extends Je{static formats(e,t){}format(e,t){super.formatAt(0,this.length(),e,t)}formatAt(e,t,r,n){e===0&&t===this.length()?this.format(r,n):super.formatAt(e,t,r,n)}formats(){return this.statics.formats(this.domNode,this.scroll)}},Ue=w1,fL={attributes:!0,characterData:!0,characterDataOldValue:!0,childList:!0,subtree:!0},mL=100,la=class extends Wt{constructor(e,t){super(null,t),this.registry=e,this.scroll=this,this.build(),this.observer=new MutationObserver(r=>{this.update(r)}),this.observer.observe(this.domNode,fL),this.attach()}create(e,t){return this.registry.create(this,e,t)}find(e,t=!1){let r=this.registry.find(e,t);return r?r.scroll===this?r:t?this.find(r.scroll.domNode.parentNode,!0):null:null}query(e,t=Y.ANY){return this.registry.query(e,t)}register(...e){return this.registry.register(...e)}build(){this.scroll!=null&&super.build()}detach(){super.detach(),this.observer.disconnect()}deleteAt(e,t){this.update(),e===0&&t===this.length()?this.children.forEach(r=>{r.remove()}):super.deleteAt(e,t)}formatAt(e,t,r,n){this.update(),super.formatAt(e,t,r,n)}insertAt(e,t,r){this.update(),super.insertAt(e,t,r)}optimize(e=[],t={}){super.optimize(t);let r=t.mutationsMap||new WeakMap,n=Array.from(this.observer.takeRecords());for(;n.length>0;)e.push(n.pop());let s=(l,h=!0)=>{l==null||l===this||l.domNode.parentNode!=null&&(r.has(l.domNode)||r.set(l.domNode,[]),h&&s(l.parent))},a=l=>{r.has(l.domNode)&&(l instanceof Wt&&l.children.forEach(a),r.delete(l.domNode),l.optimize(t))},o=e;for(let l=0;o.length>0;l+=1){if(l>=mL)throw new Error("[Parchment] Maximum optimize iterations reached");for(o.forEach(h=>{let d=this.find(h.target,!0);d!=null&&(d.domNode===h.target&&(h.type==="childList"?(s(this.find(h.previousSibling,!1)),Array.from(h.addedNodes).forEach(c=>{let f=this.find(c,!1);s(f,!1),f instanceof Wt&&f.children.forEach(m=>{s(m,!1)})})):h.type==="attributes"&&s(d.prev)),s(d))}),this.children.forEach(a),o=Array.from(this.observer.takeRecords()),n=o.slice();n.length>0;)e.push(n.pop())}}update(e,t={}){e=e||this.observer.takeRecords();let r=new WeakMap;e.map(n=>{let s=this.find(n.target,!0);return s==null?null:r.has(s.domNode)?(r.get(s.domNode).push(n),null):(r.set(s.domNode,[n]),s)}).forEach(n=>{n!=null&&n!==this&&r.has(n.domNode)&&n.update(r.get(n.domNode)||[],t)}),t.mutationsMap=r,r.has(this.domNode)&&super.update(r.get(this.domNode),t),this.optimize(e,t)}};la.blotName="scroll",la.defaultChild=Vn,la.allowedChildren=[Vn,ha],la.scope=Y.BLOCK_BLOT,la.tagName="DIV";pL=la,Uo=pL,M1=class w7 extends Je{static create(e){return document.createTextNode(e)}static value(e){return e.data}constructor(e,t){super(e,t),this.text=this.statics.value(this.domNode)}deleteAt(e,t){this.domNode.data=this.text=this.text.slice(0,e)+this.text.slice(e+t)}index(e,t){return this.domNode===e?t:-1}insertAt(e,t,r){r==null?(this.text=this.text.slice(0,e)+t+this.text.slice(e),this.domNode.data=this.text):super.insertAt(e,t,r)}length(){return this.text.length}optimize(e){super.optimize(e),this.text=this.statics.value(this.domNode),this.text.length===0?this.remove():this.next instanceof w7&&this.next.prev===this&&(this.insertAt(this.length(),this.next.value()),this.next.remove())}position(e,t=!1){return[this.domNode,e]}split(e,t=!1){if(!t){if(e===0)return this;if(e===this.length())return this.next}let r=this.scroll.create(this.domNode.splitText(e));return this.parent.insertBefore(r,this.next||void 0),this.text=this.statics.value(this.domNode),r}update(e,t){e.some(r=>r.type==="characterData"&&r.target===this.domNode)&&(this.text=this.statics.value(this.domNode))}value(){return this.text}};M1.blotName="text",M1.scope=Y.INLINE_BLOT;gL=M1,da=gL});var z7=qi((KV,L7)=>{var ni=-1,Ct=1,it=0;function jo(i,e,t,r,n){if(i===e)return i?[[it,i]]:[];if(t!=null){var s=EL(i,e,t);if(s)return s}var a=N1(i,e),o=i.substring(0,a);i=i.substring(a),e=e.substring(a),a=zh(i,e);var l=i.substring(i.length-a);i=i.substring(0,i.length-a),e=e.substring(0,e.length-a);var h=xL(i,e);return o&&h.unshift([it,o]),l&&h.push([it,l]),E1(h,n),r&&bL(h),h}function xL(i,e){var t;if(!i)return[[Ct,e]];if(!e)return[[ni,i]];var r=i.length>e.length?i:e,n=i.length>e.length?e:i,s=r.indexOf(n);if(s!==-1)return t=[[Ct,r.substring(0,s)],[it,n],[Ct,r.substring(s+n.length)]],i.length>e.length&&(t[0][0]=t[2][0]=ni),t;if(n.length===1)return[[ni,i],[Ct,e]];var a=yL(i,e);if(a){var o=a[0],l=a[1],h=a[2],d=a[3],c=a[4],f=jo(o,h),m=jo(l,d);return f.concat([[it,c]],m)}return vL(i,e)}function vL(i,e){for(var t=i.length,r=e.length,n=Math.ceil((t+r)/2),s=n,a=2*n,o=new Array(a),l=new Array(a),h=0;ht)m+=2;else if(C>r)f+=2;else if(c){var _=s+d-b;if(_>=0&&_=I)return M7(i,e,S,C)}}}for(var O=-v+g;O<=v-x;O+=2){var _=s+O,I;O===-v||O!==v&&l[_-1]t)x+=2;else if(D>r)g+=2;else if(!c){var E=s+d-O;if(E>=0&&E=I)return M7(i,e,S,C)}}}}return[[ni,i],[Ct,e]]}function M7(i,e,t,r){var n=i.substring(0,t),s=e.substring(0,r),a=i.substring(t),o=e.substring(r),l=jo(n,s),h=jo(a,o);return l.concat(h)}function N1(i,e){if(!i||!e||i.charAt(0)!==e.charAt(0))return 0;for(var t=0,r=Math.min(i.length,e.length),n=r,s=0;tr?i=i.substring(t-r):te.length?i:e,r=i.length>e.length?e:i;if(t.length<4||r.length*2=m.length?[S,C,_,I,E]:null}var s=n(t,r,Math.ceil(t.length/4)),a=n(t,r,Math.ceil(t.length/2)),o;if(!s&&!a)return null;a?s?o=s[4].length>a[4].length?s:a:o=a:o=s;var l,h,d,c;i.length>e.length?(l=o[0],h=o[1],d=o[2],c=o[3]):(d=o[0],c=o[1],l=o[2],h=o[3]);var f=o[4];return[l,h,d,c,f]}function bL(i){for(var e=!1,t=[],r=0,n=null,s=0,a=0,o=0,l=0,h=0;s0?t[r-1]:-1,a=0,o=0,l=0,h=0,n=null,e=!0)),s++;for(e&&E1(i),TL(i),s=1;s=m?(f>=d.length/2||f>=c.length/2)&&(i.splice(s,0,[it,c.substring(0,f)]),i[s-1][1]=d.substring(0,d.length-f),i[s+1][1]=c.substring(f),s++):(m>=d.length/2||m>=c.length/2)&&(i.splice(s,0,[it,d.substring(0,m)]),i[s-1][0]=Ct,i[s-1][1]=c.substring(0,c.length-m),i[s+1][0]=ni,i[s+1][1]=d.substring(m),s++),s++}s++}}var N7=/[^a-zA-Z0-9]/,E7=/\s/,S7=/[\r\n]/,wL=/\n\r?\n$/,ML=/^\r?\n\r?\n/;function TL(i){function e(m,g){if(!m||!g)return 6;var x=m.charAt(m.length-1),v=g.charAt(0),b=x.match(N7),E=v.match(N7),S=b&&x.match(E7),C=E&&v.match(E7),_=S&&x.match(S7),I=C&&v.match(S7),O=_&&m.match(wL),D=I&&g.match(ML);return O||D?5:_||I?4:b&&!S&&C?3:S||C?2:b||E?1:0}for(var t=1;t=c&&(c=f,l=r,h=n,d=s)}i[t-1][1]!=l&&(l?i[t-1][1]=l:(i.splice(t-1,1),t--),i[t][1]=h,d?i[t+1][1]=d:(i.splice(t+1,1),t--))}t++}}function E1(i,e){i.push([it,""]);for(var t=0,r=0,n=0,s="",a="",o;t=0&&_7(i[l][1])){var h=i[l][1].slice(-1);if(i[l][1]=i[l][1].slice(0,-1),s=h+s,a=h+a,!i[l][1]){i.splice(l,1),t--;var d=l-1;i[d]&&i[d][0]===Ct&&(n++,a=i[d][1]+a,d--),i[d]&&i[d][0]===ni&&(r++,s=i[d][1]+s,d--),l=d}}if(C7(i[t][1])){var h=i[t][1].charAt(0);i[t][1]=i[t][1].slice(1),s+=h,a+=h}}if(t0||a.length>0){s.length>0&&a.length>0&&(o=N1(a,s),o!==0&&(l>=0?i[l][1]+=a.substring(0,o):(i.splice(0,0,[it,a.substring(0,o)]),t++),a=a.substring(o),s=s.substring(o)),o=zh(a,s),o!==0&&(i[t][1]=a.substring(a.length-o)+i[t][1],a=a.substring(0,a.length-o),s=s.substring(0,s.length-o)));var c=n+r;s.length===0&&a.length===0?(i.splice(t-c,c),t=t-c):s.length===0?(i.splice(t-c,c,[Ct,a]),t=t-c+1):a.length===0?(i.splice(t-c,c,[ni,s]),t=t-c+1):(i.splice(t-c,c,[ni,s],[Ct,a]),t=t-c+2)}t!==0&&i[t-1][0]===it?(i[t-1][1]+=i[t][1],i.splice(t,1)):t++,n=0,r=0,s="",a="";break}}i[i.length-1][1]===""&&i.pop();var f=!1;for(t=1;t=55296&&i<=56319}function k7(i){return i>=56320&&i<=57343}function C7(i){return k7(i.charCodeAt(0))}function _7(i){return A7(i.charCodeAt(i.length-1))}function NL(i){for(var e=[],t=0;t0&&e.push(i[t]);return e}function T1(i,e,t,r){return _7(i)||C7(r)?null:NL([[it,i],[ni,e],[Ct,t],[it,r]])}function EL(i,e,t){var r=typeof t=="number"?{index:t,length:0}:t.oldRange,n=typeof t=="number"?null:t.newRange,s=i.length,a=e.length;if(r.length===0&&(n===null||n.length===0)){var o=r.index,l=i.slice(0,o),h=i.slice(o),d=n?n.index:null;e:{var c=o+a-s;if(d!==null&&d!==c||c<0||c>a)break e;var f=e.slice(0,c),m=e.slice(c);if(m!==h)break e;var g=Math.min(o,c),x=l.slice(0,g),v=f.slice(0,g);if(x!==v)break e;var b=l.slice(g),E=f.slice(g);return T1(x,b,E,h)}e:{if(d!==null&&d!==o)break e;var S=o,f=e.slice(0,S),m=e.slice(S);if(f!==l)break e;var C=Math.min(s-S,a-S),_=h.slice(h.length-C),I=m.slice(m.length-C);if(_!==I)break e;var b=h.slice(0,h.length-C),E=m.slice(0,m.length-C);return T1(l,b,E,_)}}if(r.length>0&&n&&n.length===0)e:{var x=i.slice(0,r.index),_=i.slice(r.index+r.length),g=x.length,C=_.length;if(a{var SL=200,j7="__lodash_hash_undefined__",G7=9007199254740991,I1="[object Arguments]",AL="[object Array]",Y7="[object Boolean]",W7="[object Date]",kL="[object Error]",R1="[object Function]",V7="[object GeneratorFunction]",Rh="[object Map]",X7="[object Number]",D1="[object Object]",I7="[object Promise]",K7="[object RegExp]",Dh="[object Set]",Z7="[object String]",Q7="[object Symbol]",A1="[object WeakMap]",J7="[object ArrayBuffer]",Oh="[object DataView]",e8="[object Float32Array]",t8="[object Float64Array]",i8="[object Int8Array]",r8="[object Int16Array]",n8="[object Int32Array]",s8="[object Uint8Array]",a8="[object Uint8ClampedArray]",o8="[object Uint16Array]",l8="[object Uint32Array]",CL=/[\\^$.*+?()[\]{}|]/g,_L=/\w*$/,LL=/^\[object .+?Constructor\]$/,zL=/^(?:0|[1-9]\d*)$/,Le={};Le[I1]=Le[AL]=Le[J7]=Le[Oh]=Le[Y7]=Le[W7]=Le[e8]=Le[t8]=Le[i8]=Le[r8]=Le[n8]=Le[Rh]=Le[X7]=Le[D1]=Le[K7]=Le[Dh]=Le[Z7]=Le[Q7]=Le[s8]=Le[a8]=Le[o8]=Le[l8]=!0;Le[kL]=Le[R1]=Le[A1]=!1;var IL=typeof global=="object"&&global&&global.Object===Object&&global,RL=typeof self=="object"&&self&&self.Object===Object&&self,Er=IL||RL||Function("return this")(),h8=typeof Go=="object"&&Go&&!Go.nodeType&&Go,R7=h8&&typeof ca=="object"&&ca&&!ca.nodeType&&ca,DL=R7&&R7.exports===h8;function OL(i,e){return i.set(e[0],e[1]),i}function BL(i,e){return i.add(e),i}function PL(i,e){for(var t=-1,r=i?i.length:0;++t-1}function cz(i,e){var t=this.__data__,r=Fh(t,i);return r<0?t.push([i,e]):t[r][1]=e,this}Sr.prototype.clear=oz;Sr.prototype.delete=lz;Sr.prototype.get=hz;Sr.prototype.has=dz;Sr.prototype.set=cz;function ua(i){var e=-1,t=i?i.length:0;for(this.clear();++e-1&&i%1==0&&i-1&&i%1==0&&i<=G7}function Hh(i){var e=typeof i;return!!i&&(e=="object"||e=="function")}function Kz(i){return!!i&&typeof i=="object"}function F1(i){return v8(i)?Mz(i):kz(i)}function Zz(){return[]}function Qz(){return!1}ca.exports=Gz});var Q1=qi((Vo,ga)=>{var Jz=200,Z1="__lodash_hash_undefined__",Xh=1,L8=2,z8=9007199254740991,Uh="[object Arguments]",j1="[object Array]",eI="[object AsyncFunction]",I8="[object Boolean]",R8="[object Date]",D8="[object Error]",O8="[object Function]",tI="[object GeneratorFunction]",$h="[object Map]",B8="[object Number]",iI="[object Null]",pa="[object Object]",b8="[object Promise]",rI="[object Proxy]",P8="[object RegExp]",jh="[object Set]",F8="[object String]",nI="[object Symbol]",sI="[object Undefined]",G1="[object WeakMap]",q8="[object ArrayBuffer]",Gh="[object DataView]",aI="[object Float32Array]",oI="[object Float64Array]",lI="[object Int8Array]",hI="[object Int16Array]",dI="[object Int32Array]",cI="[object Uint8Array]",uI="[object Uint8ClampedArray]",fI="[object Uint16Array]",mI="[object Uint32Array]",pI=/[\\^$.*+?()[\]{}|]/g,gI=/^\[object .+?Constructor\]$/,xI=/^(?:0|[1-9]\d*)$/,De={};De[aI]=De[oI]=De[lI]=De[hI]=De[dI]=De[cI]=De[uI]=De[fI]=De[mI]=!0;De[Uh]=De[j1]=De[q8]=De[I8]=De[Gh]=De[R8]=De[D8]=De[O8]=De[$h]=De[B8]=De[pa]=De[P8]=De[jh]=De[F8]=De[G1]=!1;var H8=typeof global=="object"&&global&&global.Object===Object&&global,vI=typeof self=="object"&&self&&self.Object===Object&&self,Ar=H8||vI||Function("return this")(),U8=typeof Vo=="object"&&Vo&&!Vo.nodeType&&Vo,w8=U8&&typeof ga=="object"&&ga&&!ga.nodeType&&ga,$8=w8&&w8.exports===U8,H1=$8&&H8.process,M8=(function(){try{return H1&&H1.binding&&H1.binding("util")}catch{}})(),T8=M8&&M8.isTypedArray;function yI(i,e){for(var t=-1,r=i==null?0:i.length,n=0,s=[];++t-1}function XI(i,e){var t=this.__data__,r=Zh(t,i);return r<0?(++this.size,t.push([i,e])):t[r][1]=e,this}kr.prototype.clear=GI;kr.prototype.delete=YI;kr.prototype.get=WI;kr.prototype.has=VI;kr.prototype.set=XI;function es(i){var e=-1,t=i==null?0:i.length;for(this.clear();++eo))return!1;var h=s.get(i);if(h&&s.get(e))return h==e;var d=-1,c=!0,f=t&L8?new Wh:void 0;for(s.set(i,e),s.set(e,i);++d-1&&i%1==0&&i-1&&i%1==0&&i<=z8}function Q8(i){var e=typeof i;return i!=null&&(e=="object"||e=="function")}function Zo(i){return i!=null&&typeof i=="object"}var J8=T8?TI(T8):uR;function SR(i){return NR(i)?lR(i):fR(i)}function AR(){return[]}function kR(){return!1}ga.exports=ER});var e9=qi(ef=>{"use strict";Object.defineProperty(ef,"__esModule",{value:!0});var CR=q1(),_R=Q1(),J1;(function(i){function e(s={},a={},o=!1){typeof s!="object"&&(s={}),typeof a!="object"&&(a={});let l=CR(a);o||(l=Object.keys(l).reduce((h,d)=>(l[d]!=null&&(h[d]=l[d]),h),{}));for(let h in s)s[h]!==void 0&&a[h]===void 0&&(l[h]=s[h]);return Object.keys(l).length>0?l:void 0}i.compose=e;function t(s={},a={}){typeof s!="object"&&(s={}),typeof a!="object"&&(a={});let o=Object.keys(s).concat(Object.keys(a)).reduce((l,h)=>(_R(s[h],a[h])||(l[h]=a[h]===void 0?null:a[h]),l),{});return Object.keys(o).length>0?o:void 0}i.diff=t;function r(s={},a={}){s=s||{};let o=Object.keys(a).reduce((l,h)=>(a[h]!==s[h]&&s[h]!==void 0&&(l[h]=a[h]),l),{});return Object.keys(s).reduce((l,h)=>(s[h]!==a[h]&&a[h]===void 0&&(l[h]=null),l),o)}i.invert=r;function n(s,a,o=!1){if(typeof s!="object")return a;if(typeof a!="object")return;if(!o)return a;let l=Object.keys(a).reduce((h,d)=>(s[d]===void 0&&(h[d]=a[d]),h),{});return Object.keys(l).length>0?l:void 0}i.transform=n})(J1||(J1={}));ef.default=J1});var nf=qi(rf=>{"use strict";Object.defineProperty(rf,"__esModule",{value:!0});var tf;(function(i){function e(t){return typeof t.delete=="number"?t.delete:typeof t.retain=="number"?t.retain:typeof t.retain=="object"&&t.retain!==null?1:typeof t.insert=="string"?t.insert.length:1}i.length=e})(tf||(tf={}));rf.default=tf});var i9=qi(af=>{"use strict";Object.defineProperty(af,"__esModule",{value:!0});var t9=nf(),sf=class{constructor(e){this.ops=e,this.index=0,this.offset=0}hasNext(){return this.peekLength()<1/0}next(e){e||(e=1/0);let t=this.ops[this.index];if(t){let r=this.offset,n=t9.default.length(t);if(e>=n-r?(e=n-r,this.index+=1,this.offset=0):this.offset+=e,typeof t.delete=="number")return{delete:e};{let s={};return t.attributes&&(s.attributes=t.attributes),typeof t.retain=="number"?s.retain=e:typeof t.retain=="object"&&t.retain!==null?s.retain=t.retain:typeof t.insert=="string"?s.insert=t.insert.substr(r,e):s.insert=t.insert,s}}else return{retain:1/0}}peek(){return this.ops[this.index]}peekLength(){return this.ops[this.index]?t9.default.length(this.ops[this.index])-this.offset:1/0}peekType(){let e=this.ops[this.index];return e?typeof e.delete=="number"?"delete":typeof e.retain=="number"||typeof e.retain=="object"&&e.retain!==null?"retain":"insert":"retain"}rest(){if(this.hasNext()){if(this.offset===0)return this.ops.slice(this.index);{let e=this.offset,t=this.index,r=this.next(),n=this.ops.slice(this.index);return this.offset=e,this.index=t,[r].concat(n)}}else return[]}};af.default=sf});var si=qi((_r,ed)=>{"use strict";Object.defineProperty(_r,"__esModule",{value:!0});_r.AttributeMap=_r.OpIterator=_r.Op=void 0;var Jh=z7(),LR=q1(),of=Q1(),is=e9();_r.AttributeMap=is.default;var Cr=nf();_r.Op=Cr.default;var bi=i9();_r.OpIterator=bi.default;var zR="\0",r9=(i,e)=>{if(typeof i!="object"||i===null)throw new Error(`cannot retain a ${typeof i}`);if(typeof e!="object"||e===null)throw new Error(`cannot retain a ${typeof e}`);let t=Object.keys(i)[0];if(!t||t!==Object.keys(e)[0])throw new Error(`embed types not matched: ${t} != ${Object.keys(e)[0]}`);return[t,i[t],e[t]]},Lr=class i{constructor(e){Array.isArray(e)?this.ops=e:e!=null&&Array.isArray(e.ops)?this.ops=e.ops:this.ops=[]}static registerEmbed(e,t){this.handlers[e]=t}static unregisterEmbed(e){delete this.handlers[e]}static getHandler(e){let t=this.handlers[e];if(!t)throw new Error(`no handlers for embed type "${e}"`);return t}insert(e,t){let r={};return typeof e=="string"&&e.length===0?this:(r.insert=e,t!=null&&typeof t=="object"&&Object.keys(t).length>0&&(r.attributes=t),this.push(r))}delete(e){return e<=0?this:this.push({delete:e})}retain(e,t){if(typeof e=="number"&&e<=0)return this;let r={retain:e};return t!=null&&typeof t=="object"&&Object.keys(t).length>0&&(r.attributes=t),this.push(r)}push(e){let t=this.ops.length,r=this.ops[t-1];if(e=LR(e),typeof r=="object"){if(typeof e.delete=="number"&&typeof r.delete=="number")return this.ops[t-1]={delete:r.delete+e.delete},this;if(typeof r.delete=="number"&&e.insert!=null&&(t-=1,r=this.ops[t-1],typeof r!="object"))return this.ops.unshift(e),this;if(of(e.attributes,r.attributes)){if(typeof e.insert=="string"&&typeof r.insert=="string")return this.ops[t-1]={insert:r.insert+e.insert},typeof e.attributes=="object"&&(this.ops[t-1].attributes=e.attributes),this;if(typeof e.retain=="number"&&typeof r.retain=="number")return this.ops[t-1]={retain:r.retain+e.retain},typeof e.attributes=="object"&&(this.ops[t-1].attributes=e.attributes),this}}return t===this.ops.length?this.ops.push(e):this.ops.splice(t,0,e),this}chop(){let e=this.ops[this.ops.length-1];return e&&typeof e.retain=="number"&&!e.attributes&&this.ops.pop(),this}filter(e){return this.ops.filter(e)}forEach(e){this.ops.forEach(e)}map(e){return this.ops.map(e)}partition(e){let t=[],r=[];return this.forEach(n=>{(e(n)?t:r).push(n)}),[t,r]}reduce(e,t){return this.ops.reduce(e,t)}changeLength(){return this.reduce((e,t)=>t.insert?e+Cr.default.length(t):t.delete?e-t.delete:e,0)}length(){return this.reduce((e,t)=>e+Cr.default.length(t),0)}slice(e=0,t=1/0){let r=[],n=new bi.default(this.ops),s=0;for(;s0&&r.next(s.retain-o)}let a=new i(n);for(;t.hasNext()||r.hasNext();)if(r.peekType()==="insert")a.push(r.next());else if(t.peekType()==="delete")a.push(t.next());else{let o=Math.min(t.peekLength(),r.peekLength()),l=t.next(o),h=r.next(o);if(h.retain){let d={};if(typeof l.retain=="number")d.retain=typeof h.retain=="number"?o:h.retain;else if(typeof h.retain=="number")l.retain==null?d.insert=l.insert:d.retain=l.retain;else{let f=l.retain==null?"insert":"retain",[m,g,x]=r9(l[f],h.retain),v=i.getHandler(m);d[f]={[m]:v.compose(g,x,f==="retain")}}let c=is.default.compose(l.attributes,h.attributes,typeof l.retain=="number");if(c&&(d.attributes=c),a.push(d),!r.hasNext()&&of(a.ops[a.ops.length-1],d)){let f=new i(t.rest());return a.concat(f).chop()}}else typeof h.delete=="number"&&(typeof l.retain=="number"||typeof l.retain=="object"&&l.retain!==null)&&a.push(h)}return a.chop()}concat(e){let t=new i(this.ops.slice());return e.ops.length>0&&(t.push(e.ops[0]),t.ops=t.ops.concat(e.ops.slice(1))),t}diff(e,t){if(this.ops===e.ops)return new i;let r=[this,e].map(l=>l.map(h=>{if(h.insert!=null)return typeof h.insert=="string"?h.insert:zR;let d=l===e?"on":"with";throw new Error("diff() called "+d+" non-document")}).join("")),n=new i,s=Jh(r[0],r[1],t,!0),a=new bi.default(this.ops),o=new bi.default(e.ops);return s.forEach(l=>{let h=l[1].length;for(;h>0;){let d=0;switch(l[0]){case Jh.INSERT:d=Math.min(o.peekLength(),h),n.push(o.next(d));break;case Jh.DELETE:d=Math.min(h,a.peekLength()),a.next(d),n.delete(d);break;case Jh.EQUAL:d=Math.min(a.peekLength(),o.peekLength(),h);let c=a.next(d),f=o.next(d);of(c.insert,f.insert)?n.retain(d,is.default.diff(c.attributes,f.attributes)):n.push(f).delete(d);break}h-=d}}),n.chop()}eachLine(e,t=` -`){let r=new bi.default(this.ops),n=new i,s=0;for(;r.hasNext();){if(r.peekType()!=="insert")return;let a=r.peek(),o=Cr.default.length(a)-r.peekLength(),l=typeof a.insert=="string"?a.insert.indexOf(t,o)-o:-1;if(l<0)n.push(r.next());else if(l>0)n.push(r.next(l));else{if(e(n,r.next(1).attributes||{},s)===!1)return;s+=1,n=new i}}n.length()>0&&e(n,{},s)}invert(e){let t=new i;return this.reduce((r,n)=>{if(n.insert)t.delete(Cr.default.length(n));else{if(typeof n.retain=="number"&&n.attributes==null)return t.retain(n.retain),r+n.retain;if(n.delete||typeof n.retain=="number"){let s=n.delete||n.retain;return e.slice(r,r+s).forEach(o=>{n.delete?t.push(o):n.retain&&n.attributes&&t.retain(Cr.default.length(o),is.default.invert(n.attributes,o.attributes))}),r+s}else if(typeof n.retain=="object"&&n.retain!==null){let s=e.slice(r,r+1),a=new bi.default(s.ops).next(),[o,l,h]=r9(n.retain,a.insert),d=i.getHandler(o);return t.retain({[o]:d.invert(l,h)},is.default.invert(n.attributes,a.attributes)),r+1}}return r},0),t.chop()}transform(e,t=!1){if(t=!!t,typeof e=="number")return this.transformPosition(e,t);let r=e,n=new bi.default(this.ops),s=new bi.default(r.ops),a=new i;for(;n.hasNext()||s.hasNext();)if(n.peekType()==="insert"&&(t||s.peekType()!=="insert"))a.retain(Cr.default.length(n.next()));else if(s.peekType()==="insert")a.push(s.next());else{let o=Math.min(n.peekLength(),s.peekLength()),l=n.next(o),h=s.next(o);if(l.delete)continue;if(h.delete)a.push(h);else{let d=l.retain,c=h.retain,f=typeof c=="object"&&c!==null?c:o;if(typeof d=="object"&&d!==null&&typeof c=="object"&&c!==null){let m=Object.keys(d)[0];if(m===Object.keys(c)[0]){let g=i.getHandler(m);g&&(f={[m]:g.transform(d[m],c[m],t)})}}a.retain(f,is.default.transform(l.attributes,h.attributes,t))}}return a.chop()}transformPosition(e,t=!1){t=!!t;let r=new bi.default(this.ops),n=0;for(;r.hasNext()&&n<=e;){let s=r.peekLength(),a=r.peekType();if(r.next(),a==="delete"){e-=Math.min(s,e-n);continue}else a==="insert"&&(n{Ae();Jo=class extends Ue{static value(){}optimize(){(this.prev||this.next)&&this.remove()}length(){return 0}value(){return""}};Jo.blotName="break";Jo.tagName="BR";pt=Jo});function rs(i){return i.replace(/[&<>"']/g,e=>IR[e])}var Ve,IR,zr=M(()=>{Ae();Ve=class extends da{},IR={"&":"&","<":"<",">":">",'"':""","'":"'"}});var ir,lf,gt,Ir=M(()=>{Ae();pn();zr();ir=class ir extends Lh{static compare(e,t){let r=ir.order.indexOf(e),n=ir.order.indexOf(t);return r>=0||n>=0?r-n:e===t?0:e0){let t=this.parent.isolate(this.offset(),this.length());this.moveChildren(t),t.wrap(this)}}};P(ir,"allowedChildren",[ir,pt,Ue,Ve]),P(ir,"order",["cursor","inline","link","underline","strike","italic","bold","script","code"]);lf=ir,gt=lf});function df(i){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return i.descendants(Je).reduce((t,r)=>r.length()===0?t:t.insert(r.value(),Xt(r,{},e)),new hf.default).insert(` -`,Xt(i))}function Xt(i){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;return i==null||("formats"in i&&typeof i.formats=="function"&&(e={...e,...i.formats()},t&&delete e["code-token"]),i.parent==null||i.parent.statics.blotName==="scroll"||i.parent.statics.scope!==i.statics.scope)?e:Xt(i.parent,e,t)}var hf,n9,ke,rt,wi=M(()=>{Ae();hf=ot(si(),1);pn();Ir();zr();n9=1,ke=class extends Vn{constructor(){super(...arguments);P(this,"cache",{})}delta(){return this.cache.delta==null&&(this.cache.delta=df(this)),this.cache.delta}deleteAt(t,r){super.deleteAt(t,r),this.cache={}}formatAt(t,r,n,s){r<=0||(this.scroll.query(n,Y.BLOCK)?t+r===this.length()&&this.format(n,s):super.formatAt(t,Math.min(r,this.length()-t-1),n,s),this.cache={})}insertAt(t,r,n){if(n!=null){super.insertAt(t,r,n),this.cache={};return}if(r.length===0)return;let s=r.split(` -`),a=s.shift();a.length>0&&(t(o=o.split(l,!0),o.insertAt(0,h),h.length),t+a.length)}insertBefore(t,r){let{head:n}=this.children;super.insertBefore(t,r),n instanceof pt&&n.remove(),this.cache={}}length(){return this.cache.length==null&&(this.cache.length=super.length()+n9),this.cache.length}moveChildren(t,r){super.moveChildren(t,r),this.cache={}}optimize(t){super.optimize(t),this.cache={}}path(t){return super.path(t,!0)}removeChild(t){super.removeChild(t),this.cache={}}split(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(r&&(t===0||t>=this.length()-n9)){let s=this.clone();return t===0?(this.parent.insertBefore(s,this),this):(this.parent.insertBefore(s,this.next),s)}let n=super.split(t,r);return this.cache={},n}};ke.blotName="block";ke.tagName="P";ke.defaultChild=pt;ke.allowedChildren=[pt,gt,Ue,Ve];rt=class extends Ue{attach(){super.attach(),this.attributes=new Ho(this.domNode)}delta(){return new hf.default().insert(this.value(),{...this.formats(),...this.attributes.values()})}format(e,t){let r=this.scroll.query(e,Y.BLOCK_ATTRIBUTE);r!=null&&this.attributes.attribute(r,t)}formatAt(e,t,r,n){this.format(r,n)}insertAt(e,t,r){if(r!=null){super.insertAt(e,t,r);return}let n=t.split(` -`),s=n.pop(),a=n.map(l=>{let h=this.scroll.create(ke.blotName);return h.insertAt(0,l),h}),o=this.split(e);a.forEach(l=>{this.parent.insertBefore(l,o)}),s&&this.parent.insertBefore(this.scroll.create("text",s),o)}};rt.scope=Y.BLOCK_BLOT});var Mi,cf,gn,el=M(()=>{Ae();zr();Mi=class Mi extends Ue{static value(){}constructor(e,t,r){super(e,t),this.selection=r,this.textNode=document.createTextNode(Mi.CONTENTS),this.domNode.appendChild(this.textNode),this.savedLength=0}detach(){this.parent!=null&&this.parent.removeChild(this)}format(e,t){if(this.savedLength!==0){super.format(e,t);return}let r=this,n=0;for(;r!=null&&r.statics.scope!==Y.BLOCK_BLOT;)n+=r.offset(r.parent),r=r.parent;r!=null&&(this.savedLength=Mi.CONTENTS.length,r.optimize(),r.formatAt(n,Mi.CONTENTS.length,e,t),this.savedLength=0)}index(e,t){return e===this.textNode?0:super.index(e,t)}length(){return this.savedLength}position(){return[this.textNode,this.textNode.data.length]}remove(){super.remove(),this.parent=null}restore(){if(this.selection.composing||this.parent==null)return null;let e=this.selection.getNativeRange();for(;this.domNode.lastChild!=null&&this.domNode.lastChild!==this.textNode;)this.domNode.parentNode.insertBefore(this.domNode.lastChild,this.domNode);let t=this.prev instanceof Ve?this.prev:null,r=t?t.length():0,n=this.next instanceof Ve?this.next:null,s=n?n.text:"",{textNode:a}=this,o=a.data.split(Mi.CONTENTS).join("");a.data=Mi.CONTENTS;let l;if(t)l=t,(o||n)&&(t.insertAt(t.length(),o+s),n&&n.remove());else if(n)l=n,n.insertAt(0,o);else{let h=document.createTextNode(o);l=this.scroll.create(h),this.parent.insertBefore(l,this)}if(this.remove(),e){let h=(f,m)=>t&&f===t.domNode?m:f===a?r+m-1:n&&f===n.domNode?r+o.length+m:null,d=h(e.start.node,e.start.offset),c=h(e.end.node,e.end.offset);if(d!==null&&c!==null)return{startNode:l.domNode,startOffset:d,endNode:l.domNode,endOffset:c}}return null}update(e,t){if(e.some(r=>r.type==="characterData"&&r.target===this.textNode)){let r=this.restore();r&&(t.range=r)}}optimize(e){super.optimize(e);let{parent:t}=this;for(;t;){if(t.domNode.tagName==="A"){this.savedLength=Mi.CONTENTS.length,t.isolate(this.offset(t),this.length()).unwrap(),this.savedLength=0;break}t=t.parent}}value(){return""}};P(Mi,"blotName","cursor"),P(Mi,"className","ql-cursor"),P(Mi,"tagName","span"),P(Mi,"CONTENTS","\uFEFF");cf=Mi,gn=cf});var a9=qi((yX,uf)=>{"use strict";var RR=Object.prototype.hasOwnProperty,_t="~";function tl(){}Object.create&&(tl.prototype=Object.create(null),new tl().__proto__||(_t=!1));function DR(i,e,t){this.fn=i,this.context=e,this.once=t||!1}function s9(i,e,t,r,n){if(typeof t!="function")throw new TypeError("The listener must be a function");var s=new DR(t,r||i,n),a=_t?_t+e:e;return i._events[a]?i._events[a].fn?i._events[a]=[i._events[a],s]:i._events[a].push(s):(i._events[a]=s,i._eventsCount++),i}function td(i,e){--i._eventsCount===0?i._events=new tl:delete i._events[e]}function xt(){this._events=new tl,this._eventsCount=0}xt.prototype.eventNames=function(){var e=[],t,r;if(this._eventsCount===0)return e;for(r in t=this._events)RR.call(t,r)&&e.push(_t?r.slice(1):r);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e};xt.prototype.listeners=function(e){var t=_t?_t+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var n=0,s=r.length,a=new Array(s);n{ff=ot(a9(),1)});var il,mf=M(()=>{il=new WeakMap});function l9(i){if(gf&&pf.indexOf(i)<=pf.indexOf(gf)){for(var e=arguments.length,t=new Array(e>1?e-1:0),r=1;r(e[t]=l9.bind(console,t,i),e),{})}var pf,gf,ai,ns=M(()=>{pf=["error","warn","log","info"],gf="warn";xf.level=i=>{gf=i};l9.level=xf.level;ai=xf});var vf,OR,rl,K,Rr=M(()=>{o9();mf();ns();vf=ai("quill:events"),OR=["selectionchange","mousedown","mouseup","click"];OR.forEach(i=>{document.addEventListener(i,function(){for(var e=arguments.length,t=new Array(e),r=0;r{let s=il.get(n);s&&s.emitter&&s.emitter.handleDOM(...t)})})});rl=class extends ff.default{constructor(){super(),this.domListeners={},this.on("error",vf.error)}emit(){for(var e=arguments.length,t=new Array(e),r=0;r1?t-1:0),n=1;n{let{node:a,handler:o}=s;(e.target===a||a.contains(e.target))&&o(e,...r)})}listenDOM(e,t,r){this.domListeners[e]||(this.domListeners[e]=[]),this.domListeners[e].push({node:t,handler:r})}};P(rl,"events",{EDITOR_CHANGE:"editor-change",SCROLL_BEFORE_UPDATE:"scroll-before-update",SCROLL_BLOT_MOUNT:"scroll-blot-mount",SCROLL_BLOT_UNMOUNT:"scroll-blot-unmount",SCROLL_OPTIMIZE:"scroll-optimize",SCROLL_UPDATE:"scroll-update",SCROLL_EMBED_UPDATE:"scroll-embed-update",SELECTION_CHANGE:"selection-change",TEXT_CHANGE:"text-change",COMPOSITION_BEFORE_START:"composition-before-start",COMPOSITION_START:"composition-start",COMPOSITION_BEFORE_END:"composition-before-end",COMPOSITION_END:"composition-end"}),P(rl,"sources",{API:"api",SILENT:"silent",USER:"user"});K=rl});function bf(i,e){try{e.parentNode}catch{return!1}return i.contains(e)}var yf,Lt,wf,h9,nl=M(()=>{Ae();ln();Rr();ns();yf=ai("quill:selection"),Lt=class{constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;this.index=e,this.length=t}},wf=class{constructor(e,t){this.emitter=t,this.scroll=e,this.composing=!1,this.mouseDown=!1,this.root=this.scroll.domNode,this.cursor=this.scroll.create("cursor",this),this.savedRange=new Lt(0,0),this.lastRange=this.savedRange,this.lastNative=null,this.handleComposition(),this.handleDragging(),this.emitter.listenDOM("selectionchange",document,()=>{!this.mouseDown&&!this.composing&&setTimeout(this.update.bind(this,K.sources.USER),1)}),this.emitter.on(K.events.SCROLL_BEFORE_UPDATE,()=>{if(!this.hasFocus())return;let r=this.getNativeRange();r!=null&&r.start.node!==this.cursor.textNode&&this.emitter.once(K.events.SCROLL_UPDATE,(n,s)=>{try{this.root.contains(r.start.node)&&this.root.contains(r.end.node)&&this.setNativeRange(r.start.node,r.start.offset,r.end.node,r.end.offset);let a=s.some(o=>o.type==="characterData"||o.type==="childList"||o.type==="attributes"&&o.target===this.root);this.update(a?K.sources.SILENT:n)}catch{}})}),this.emitter.on(K.events.SCROLL_OPTIMIZE,(r,n)=>{if(n.range){let{startNode:s,startOffset:a,endNode:o,endOffset:l}=n.range;this.setNativeRange(s,a,o,l),this.update(K.sources.SILENT)}}),this.update(K.sources.SILENT)}handleComposition(){this.emitter.on(K.events.COMPOSITION_BEFORE_START,()=>{this.composing=!0}),this.emitter.on(K.events.COMPOSITION_END,()=>{if(this.composing=!1,this.cursor.parent){let e=this.cursor.restore();if(!e)return;setTimeout(()=>{this.setNativeRange(e.startNode,e.startOffset,e.endNode,e.endOffset)},1)}})}handleDragging(){this.emitter.listenDOM("mousedown",document.body,()=>{this.mouseDown=!0}),this.emitter.listenDOM("mouseup",document.body,()=>{this.mouseDown=!1,this.update(K.sources.USER)})}focus(){this.hasFocus()||(this.root.focus({preventScroll:!0}),this.setRange(this.savedRange))}format(e,t){this.scroll.update();let r=this.getNativeRange();if(!(r==null||!r.native.collapsed||this.scroll.query(e,Y.BLOCK))){if(r.start.node!==this.cursor.textNode){let n=this.scroll.find(r.start.node,!1);if(n==null)return;if(n instanceof Je){let s=n.split(r.start.offset);n.parent.insertBefore(this.cursor,s)}else n.insertBefore(this.cursor,r.start.node);this.cursor.attach()}this.cursor.format(e,t),this.scroll.optimize(),this.setNativeRange(this.cursor.textNode,this.cursor.textNode.data.length),this.update()}}getBounds(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=this.scroll.length();e=Math.min(e,r-1),t=Math.min(e+t,r-1)-e;let n,[s,a]=this.scroll.leaf(e);if(s==null)return null;if(t>0&&a===s.length()){let[d]=this.scroll.leaf(e+1);if(d){let[c]=this.scroll.line(e),[f]=this.scroll.line(e+1);c===f&&(s=d,a=0)}}[n,a]=s.position(a,!0);let o=document.createRange();if(t>0)return o.setStart(n,a),[s,a]=this.scroll.leaf(e+t),s==null?null:([n,a]=s.position(a,!0),o.setEnd(n,a),o.getBoundingClientRect());let l="left",h;if(n instanceof Text){if(!n.data.length)return null;a0&&(l="right")}return{bottom:h.top+h.height,height:h.height,left:h[l],right:h[l],top:h.top,width:0}}getNativeRange(){let e=document.getSelection();if(e==null||e.rangeCount<=0)return null;let t=e.getRangeAt(0);if(t==null)return null;let r=this.normalizeNative(t);return yf.info("getNativeRange",r),r}getRange(){let e=this.scroll.domNode;if("isConnected"in e&&!e.isConnected)return[null,null];let t=this.getNativeRange();return t==null?[null,null]:[this.normalizedToRange(t),t]}hasFocus(){return document.activeElement===this.root||document.activeElement!=null&&bf(this.root,document.activeElement)}normalizedToRange(e){let t=[[e.start.node,e.start.offset]];e.native.collapsed||t.push([e.end.node,e.end.offset]);let r=t.map(a=>{let[o,l]=a,h=this.scroll.find(o,!0),d=h.offset(this.scroll);return l===0?d:h instanceof Je?d+h.index(o,l):d+h.length()}),n=Math.min(Math.max(...r),this.scroll.length()-1),s=Math.min(n,...r);return new Lt(s,n-s)}normalizeNative(e){if(!bf(this.root,e.startContainer)||!e.collapsed&&!bf(this.root,e.endContainer))return null;let t={start:{node:e.startContainer,offset:e.startOffset},end:{node:e.endContainer,offset:e.endOffset},native:e};return[t.start,t.end].forEach(r=>{let{node:n,offset:s}=r;for(;!(n instanceof Text)&&n.childNodes.length>0;)if(n.childNodes.length>s)n=n.childNodes[s],s=0;else if(n.childNodes.length===s)n=n.lastChild,n instanceof Text?s=n.data.length:n.childNodes.length>0?s=n.childNodes.length:s=n.childNodes.length+1;else break;r.node=n,r.offset=s}),t}rangeToNative(e){let t=this.scroll.length(),r=(n,s)=>{n=Math.min(t-1,n);let[a,o]=this.scroll.leaf(n);return a?a.position(o,s):[null,-1]};return[...r(e.index,!1),...r(e.index+e.length,!0)]}setNativeRange(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:t,s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!1;if(yf.info("setNativeRange",e,t,r,n),e!=null&&(this.root.parentNode==null||e.parentNode==null||r.parentNode==null))return;let a=document.getSelection();if(a!=null)if(e!=null){this.hasFocus()||this.root.focus({preventScroll:!0});let{native:o}=this.getNativeRange()||{};if(o==null||s||e!==o.startContainer||t!==o.startOffset||r!==o.endContainer||n!==o.endOffset){e instanceof Element&&e.tagName==="BR"&&(t=Array.from(e.parentNode.childNodes).indexOf(e),e=e.parentNode),r instanceof Element&&r.tagName==="BR"&&(n=Array.from(r.parentNode.childNodes).indexOf(r),r=r.parentNode);let l=document.createRange();l.setStart(e,t),l.setEnd(r,n),a.removeAllRanges(),a.addRange(l)}}else a.removeAllRanges(),this.root.blur()}setRange(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:K.sources.API;if(typeof t=="string"&&(r=t,t=!1),yf.info("setRange",e),e!=null){let n=this.rangeToNative(e);this.setNativeRange(...n,t)}else this.setNativeRange(null);this.update(r)}update(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:K.sources.USER,t=this.lastRange,[r,n]=this.getRange();if(this.lastRange=r,this.lastNative=n,this.lastRange!=null&&(this.savedRange=this.lastRange),!Wn(t,this.lastRange)){if(!this.composing&&n!=null&&n.native.collapsed&&n.start.node!==this.cursor.textNode){let a=this.cursor.restore();a&&this.setNativeRange(a.startNode,a.startOffset,a.endNode,a.endOffset)}let s=[K.events.SELECTION_CHANGE,er(this.lastRange),er(t),e];this.emitter.emit(K.events.EDITOR_CHANGE,...s),e!==K.sources.SILENT&&this.emitter.emit(...s)}}};h9=wf});function va(i,e,t){if(i.length===0){let[m]=Mf(t.pop());return e<=0?`

    3Nt5nfyS=96nAm`8D+N)Lrh1lOn%|9Nc8Lp@ZyL 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%0AgXJdkz0&jSprU)Jg2?A4Yix2FJ@Q`qEqP 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

  • `:`${va([],e-1,t)}`}let[{child:r,offset:n,length:s,indent:a,type:o},...l]=i,[h,d]=Mf(o);if(a>e)return t.push(o),a===e+1?`<${h}>${sl(r,n,s)}${va(l,a,t)}`:`<${h}>
  • ${va(i,e+1,t)}`;let c=t[t.length-1];if(a===e&&o===c)return`
  • ${sl(r,n,s)}${va(l,a,t)}`;let[f]=Mf(t.pop());return`${va(i,e-1,t)}`}function sl(i,e,t){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if("html"in i&&typeof i.html=="function")return i.html(e,t);if(i instanceof Ve)return rs(i.value().slice(e,e+t)).replaceAll(" "," ");if(i instanceof Wt){if(i.statics.blotName==="list-container"){let h=[];return i.children.forEachAt(e,t,(d,c,f)=>{let m="formats"in d&&typeof d.formats=="function"?d.formats():{};h.push({child:d,offset:c,length:f,indent:m.indent||0,type:m.list})}),va(h,-1,[])}let n=[];if(i.children.forEachAt(e,t,(h,d,c)=>{n.push(sl(h,d,c))}),r||i.statics.blotName==="list")return n.join("");let{outerHTML:s,innerHTML:a}=i.domNode,[o,l]=s.split(`>${a}<`);return o==="${n.join("")}<${l}`:`${o}>${n.join("")}<${l}`}return i.domNode instanceof Element?i.domNode.outerHTML:""}function PR(i,e){return Object.keys(e).reduce((t,r)=>{if(i[r]==null)return t;let n=e[r];return n===i[r]?t[r]=n:Array.isArray(n)?n.indexOf(i[r])<0?t[r]=n.concat([i[r]]):t[r]=n:t[r]=[n,i[r]],t},{})}function Mf(i){let e=i==="ordered"?"ol":"ul";switch(i){case"checked":return[e,' data-list="checked"'];case"unchecked":return[e,' data-list="unchecked"'];default:return[e,""]}}function d9(i){return i.reduce((e,t)=>{if(typeof t.insert=="string"){let r=t.insert.replace(/\r\n/g,` +?)[ \r ]*`,v1="[\u0300-\u036F]",jA=new RegExp(v1+"+$"),GA="("+tg+"+)|"+($A+"|")+"([!-\\[\\]-\u2027\u202A-\uD7FF\uF900-\uFFFF]"+(v1+"*")+"|[\uD800-\uDBFF][\uDC00-\uDFFF]"+(v1+"*")+"|\\\\verb\\*([^]).*?\\4|\\\\verb([^*a-zA-Z]).*?\\5"+("|"+UA)+("|"+HA+")"),kh=class{constructor(e,t){this.input=void 0,this.settings=void 0,this.tokenRegex=void 0,this.catcodes=void 0,this.input=e,this.settings=t,this.tokenRegex=new RegExp(GA,"g"),this.catcodes={"%":14,"~":13}}setCatcode(e,t){this.catcodes[e]=t}lex(){var e=this.input,t=this.tokenRegex.lastIndex;if(t===e.length)return new ui("EOF",new Jt(this,t,t));var r=this.tokenRegex.exec(e);if(r===null||r.index!==t)throw new G("Unexpected character: '"+e[t]+"'",new ui(e[t],new Jt(this,t,t+1)));var n=r[6]||r[3]||(r[2]?"\\ ":" ");if(this.catcodes[n]===14){var s=e.indexOf(` +`,this.tokenRegex.lastIndex);return s===-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=s+1,this.lex()}return new ui(n,new Jt(this,t,this.tokenRegex.lastIndex))}},b1=class{constructor(e,t){e===void 0&&(e={}),t===void 0&&(t={}),this.current=void 0,this.builtins=void 0,this.undefStack=void 0,this.current=t,this.builtins=e,this.undefStack=[]}beginGroup(){this.undefStack.push({})}endGroup(){if(this.undefStack.length===0)throw new G("Unbalanced namespace destruction: attempt to pop global namespace; please report this as a bug");var e=this.undefStack.pop();for(var t in e)e.hasOwnProperty(t)&&(e[t]==null?delete this.current[t]:this.current[t]=e[t])}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,t,r){if(r===void 0&&(r=!1),r){for(var n=0;n0&&(this.undefStack[this.undefStack.length-1][e]=t)}else{var s=this.undefStack[this.undefStack.length-1];s&&!s.hasOwnProperty(e)&&(s[e]=this.current[e])}t==null?delete this.current[e]:this.current[e]=t}},VA=j4;w("\\noexpand",function(i){var e=i.popToken();return i.isExpandable(e.text)&&(e.noexpand=!0,e.treatAsRelax=!0),{tokens:[e],numArgs:0}});w("\\expandafter",function(i){var e=i.popToken();return i.expandOnce(!0),{tokens:[e],numArgs:0}});w("\\@firstoftwo",function(i){var e=i.consumeArgs(2);return{tokens:e[0],numArgs:0}});w("\\@secondoftwo",function(i){var e=i.consumeArgs(2);return{tokens:e[1],numArgs:0}});w("\\@ifnextchar",function(i){var e=i.consumeArgs(3);i.consumeSpaces();var t=i.future();return e[0].length===1&&e[0][0].text===t.text?{tokens:e[1],numArgs:0}:{tokens:e[2],numArgs:0}});w("\\@ifstar","\\@ifnextchar *{\\@firstoftwo{#1}}");w("\\TextOrMath",function(i){var e=i.consumeArgs(2);return i.mode==="text"?{tokens:e[0],numArgs:0}:{tokens:e[1],numArgs:0}});l4={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};w("\\char",function(i){var e=i.popToken(),t,r="";if(e.text==="'")t=8,e=i.popToken();else if(e.text==='"')t=16,e=i.popToken();else if(e.text==="`")if(e=i.popToken(),e.text[0]==="\\")r=e.text.charCodeAt(1);else{if(e.text==="EOF")throw new G("\\char` missing argument");r=e.text.charCodeAt(0)}else t=10;if(t){if(r=l4[e.text],r==null||r>=t)throw new G("Invalid base-"+t+" digit "+e.text);for(var n;(n=l4[i.future().text])!=null&&n{var n=i.consumeArg().tokens;if(n.length!==1)throw new G("\\newcommand's first argument must be a macro name");var s=n[0].text,a=i.isDefined(s);if(a&&!e)throw new G("\\newcommand{"+s+"} attempting to redefine "+(s+"; use \\renewcommand"));if(!a&&!t)throw new G("\\renewcommand{"+s+"} when command "+s+" does not yet exist; use \\newcommand");var o=0;if(n=i.consumeArg().tokens,n.length===1&&n[0].text==="["){for(var l="",h=i.expandNextToken();h.text!=="]"&&h.text!=="EOF";)l+=h.text,h=i.expandNextToken();if(!l.match(/^\s*[0-9]+\s*$/))throw new G("Invalid number of arguments: "+l);o=parseInt(l),n=i.consumeArg().tokens}return a&&r||i.macros.set(s,{tokens:n,numArgs:o}),""};w("\\newcommand",i=>O1(i,!1,!0,!1));w("\\renewcommand",i=>O1(i,!0,!1,!1));w("\\providecommand",i=>O1(i,!0,!0,!0));w("\\message",i=>{var e=i.consumeArgs(1)[0];return console.log(e.reverse().map(t=>t.text).join("")),""});w("\\errmessage",i=>{var e=i.consumeArgs(1)[0];return console.error(e.reverse().map(t=>t.text).join("")),""});w("\\show",i=>{var e=i.popToken(),t=e.text;return console.log(e,i.macros.get(t),xn[t],Oe.math[t],Oe.text[t]),""});w("\\bgroup","{");w("\\egroup","}");w("~","\\nobreakspace");w("\\lq","`");w("\\rq","'");w("\\aa","\\r a");w("\\AA","\\r A");w("\\textcopyright","\\html@mathml{\\textcircled{c}}{\\char`\xA9}");w("\\copyright","\\TextOrMath{\\textcopyright}{\\text{\\textcopyright}}");w("\\textregistered","\\html@mathml{\\textcircled{\\scriptsize R}}{\\char`\xAE}");w("\u212C","\\mathscr{B}");w("\u2130","\\mathscr{E}");w("\u2131","\\mathscr{F}");w("\u210B","\\mathscr{H}");w("\u2110","\\mathscr{I}");w("\u2112","\\mathscr{L}");w("\u2133","\\mathscr{M}");w("\u211B","\\mathscr{R}");w("\u212D","\\mathfrak{C}");w("\u210C","\\mathfrak{H}");w("\u2128","\\mathfrak{Z}");w("\\Bbbk","\\Bbb{k}");w("\xB7","\\cdotp");w("\\llap","\\mathllap{\\textrm{#1}}");w("\\rlap","\\mathrlap{\\textrm{#1}}");w("\\clap","\\mathclap{\\textrm{#1}}");w("\\mathstrut","\\vphantom{(}");w("\\underbar","\\underline{\\text{#1}}");w("\\not",'\\html@mathml{\\mathrel{\\mathrlap\\@not}}{\\char"338}');w("\\neq","\\html@mathml{\\mathrel{\\not=}}{\\mathrel{\\char`\u2260}}");w("\\ne","\\neq");w("\u2260","\\neq");w("\\notin","\\html@mathml{\\mathrel{{\\in}\\mathllap{/\\mskip1mu}}}{\\mathrel{\\char`\u2209}}");w("\u2209","\\notin");w("\u2258","\\html@mathml{\\mathrel{=\\kern{-1em}\\raisebox{0.4em}{$\\scriptsize\\frown$}}}{\\mathrel{\\char`\u2258}}");w("\u2259","\\html@mathml{\\stackrel{\\tiny\\wedge}{=}}{\\mathrel{\\char`\u2258}}");w("\u225A","\\html@mathml{\\stackrel{\\tiny\\vee}{=}}{\\mathrel{\\char`\u225A}}");w("\u225B","\\html@mathml{\\stackrel{\\scriptsize\\star}{=}}{\\mathrel{\\char`\u225B}}");w("\u225D","\\html@mathml{\\stackrel{\\tiny\\mathrm{def}}{=}}{\\mathrel{\\char`\u225D}}");w("\u225E","\\html@mathml{\\stackrel{\\tiny\\mathrm{m}}{=}}{\\mathrel{\\char`\u225E}}");w("\u225F","\\html@mathml{\\stackrel{\\tiny?}{=}}{\\mathrel{\\char`\u225F}}");w("\u27C2","\\perp");w("\u203C","\\mathclose{!\\mkern-0.8mu!}");w("\u220C","\\notni");w("\u231C","\\ulcorner");w("\u231D","\\urcorner");w("\u231E","\\llcorner");w("\u231F","\\lrcorner");w("\xA9","\\copyright");w("\xAE","\\textregistered");w("\uFE0F","\\textregistered");w("\\ulcorner",'\\html@mathml{\\@ulcorner}{\\mathop{\\char"231c}}');w("\\urcorner",'\\html@mathml{\\@urcorner}{\\mathop{\\char"231d}}');w("\\llcorner",'\\html@mathml{\\@llcorner}{\\mathop{\\char"231e}}');w("\\lrcorner",'\\html@mathml{\\@lrcorner}{\\mathop{\\char"231f}}');w("\\vdots","{\\varvdots\\rule{0pt}{15pt}}");w("\u22EE","\\vdots");w("\\varGamma","\\mathit{\\Gamma}");w("\\varDelta","\\mathit{\\Delta}");w("\\varTheta","\\mathit{\\Theta}");w("\\varLambda","\\mathit{\\Lambda}");w("\\varXi","\\mathit{\\Xi}");w("\\varPi","\\mathit{\\Pi}");w("\\varSigma","\\mathit{\\Sigma}");w("\\varUpsilon","\\mathit{\\Upsilon}");w("\\varPhi","\\mathit{\\Phi}");w("\\varPsi","\\mathit{\\Psi}");w("\\varOmega","\\mathit{\\Omega}");w("\\substack","\\begin{subarray}{c}#1\\end{subarray}");w("\\colon","\\nobreak\\mskip2mu\\mathpunct{}\\mathchoice{\\mkern-3mu}{\\mkern-3mu}{}{}{:}\\mskip6mu\\relax");w("\\boxed","\\fbox{$\\displaystyle{#1}$}");w("\\iff","\\DOTSB\\;\\Longleftrightarrow\\;");w("\\implies","\\DOTSB\\;\\Longrightarrow\\;");w("\\impliedby","\\DOTSB\\;\\Longleftarrow\\;");w("\\dddot","{\\overset{\\raisebox{-0.1ex}{\\normalsize ...}}{#1}}");w("\\ddddot","{\\overset{\\raisebox{-0.1ex}{\\normalsize ....}}{#1}}");h4={",":"\\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"};w("\\dots",function(i){var e="\\dotso",t=i.expandAfterFuture().text;return t in h4?e=h4[t]:(t.slice(0,4)==="\\not"||t in Oe.math&&["bin","rel"].includes(Oe.math[t].group))&&(e="\\dotsb"),e});B1={")":!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};w("\\dotso",function(i){var e=i.future().text;return e in B1?"\\ldots\\,":"\\ldots"});w("\\dotsc",function(i){var e=i.future().text;return e in B1&&e!==","?"\\ldots\\,":"\\ldots"});w("\\cdots",function(i){var e=i.future().text;return e in B1?"\\@cdots\\,":"\\@cdots"});w("\\dotsb","\\cdots");w("\\dotsm","\\cdots");w("\\dotsi","\\!\\cdots");w("\\dotsx","\\ldots\\,");w("\\DOTSI","\\relax");w("\\DOTSB","\\relax");w("\\DOTSX","\\relax");w("\\tmspace","\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax");w("\\,","\\tmspace+{3mu}{.1667em}");w("\\thinspace","\\,");w("\\>","\\mskip{4mu}");w("\\:","\\tmspace+{4mu}{.2222em}");w("\\medspace","\\:");w("\\;","\\tmspace+{5mu}{.2777em}");w("\\thickspace","\\;");w("\\!","\\tmspace-{3mu}{.1667em}");w("\\negthinspace","\\!");w("\\negmedspace","\\tmspace-{4mu}{.2222em}");w("\\negthickspace","\\tmspace-{5mu}{.277em}");w("\\enspace","\\kern.5em ");w("\\enskip","\\hskip.5em\\relax");w("\\quad","\\hskip1em\\relax");w("\\qquad","\\hskip2em\\relax");w("\\tag","\\@ifstar\\tag@literal\\tag@paren");w("\\tag@paren","\\tag@literal{({#1})}");w("\\tag@literal",i=>{if(i.macros.get("\\df@tag"))throw new G("Multiple \\tag");return"\\gdef\\df@tag{\\text{#1}}"});w("\\bmod","\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}");w("\\pod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)");w("\\pmod","\\pod{{\\rm mod}\\mkern6mu#1}");w("\\mod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1");w("\\newline","\\\\\\relax");w("\\TeX","\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}");ig=V(dr["Main-Regular"][84][1]-.7*dr["Main-Regular"][65][1]);w("\\LaTeX","\\textrm{\\html@mathml{"+("L\\kern-.36em\\raisebox{"+ig+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{LaTeX}}");w("\\KaTeX","\\textrm{\\html@mathml{"+("K\\kern-.17em\\raisebox{"+ig+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{KaTeX}}");w("\\hspace","\\@ifstar\\@hspacer\\@hspace");w("\\@hspace","\\hskip #1\\relax");w("\\@hspacer","\\rule{0pt}{0pt}\\hskip #1\\relax");w("\\ordinarycolon",":");w("\\vcentcolon","\\mathrel{\\mathop\\ordinarycolon}");w("\\dblcolon",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}');w("\\coloneqq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}');w("\\Coloneqq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}');w("\\coloneq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}');w("\\Coloneq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}');w("\\eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}');w("\\Eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}');w("\\eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}');w("\\Eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}');w("\\colonapprox",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}');w("\\Colonapprox",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}');w("\\colonsim",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}');w("\\Colonsim",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}');w("\u2237","\\dblcolon");w("\u2239","\\eqcolon");w("\u2254","\\coloneqq");w("\u2255","\\eqqcolon");w("\u2A74","\\Coloneqq");w("\\ratio","\\vcentcolon");w("\\coloncolon","\\dblcolon");w("\\colonequals","\\coloneqq");w("\\coloncolonequals","\\Coloneqq");w("\\equalscolon","\\eqqcolon");w("\\equalscoloncolon","\\Eqqcolon");w("\\colonminus","\\coloneq");w("\\coloncolonminus","\\Coloneq");w("\\minuscolon","\\eqcolon");w("\\minuscoloncolon","\\Eqcolon");w("\\coloncolonapprox","\\Colonapprox");w("\\coloncolonsim","\\Colonsim");w("\\simcolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}");w("\\simcoloncolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}");w("\\approxcolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}");w("\\approxcoloncolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}");w("\\notni","\\html@mathml{\\not\\ni}{\\mathrel{\\char`\u220C}}");w("\\limsup","\\DOTSB\\operatorname*{lim\\,sup}");w("\\liminf","\\DOTSB\\operatorname*{lim\\,inf}");w("\\injlim","\\DOTSB\\operatorname*{inj\\,lim}");w("\\projlim","\\DOTSB\\operatorname*{proj\\,lim}");w("\\varlimsup","\\DOTSB\\operatorname*{\\overline{lim}}");w("\\varliminf","\\DOTSB\\operatorname*{\\underline{lim}}");w("\\varinjlim","\\DOTSB\\operatorname*{\\underrightarrow{lim}}");w("\\varprojlim","\\DOTSB\\operatorname*{\\underleftarrow{lim}}");w("\\gvertneqq","\\html@mathml{\\@gvertneqq}{\u2269}");w("\\lvertneqq","\\html@mathml{\\@lvertneqq}{\u2268}");w("\\ngeqq","\\html@mathml{\\@ngeqq}{\u2271}");w("\\ngeqslant","\\html@mathml{\\@ngeqslant}{\u2271}");w("\\nleqq","\\html@mathml{\\@nleqq}{\u2270}");w("\\nleqslant","\\html@mathml{\\@nleqslant}{\u2270}");w("\\nshortmid","\\html@mathml{\\@nshortmid}{\u2224}");w("\\nshortparallel","\\html@mathml{\\@nshortparallel}{\u2226}");w("\\nsubseteqq","\\html@mathml{\\@nsubseteqq}{\u2288}");w("\\nsupseteqq","\\html@mathml{\\@nsupseteqq}{\u2289}");w("\\varsubsetneq","\\html@mathml{\\@varsubsetneq}{\u228A}");w("\\varsubsetneqq","\\html@mathml{\\@varsubsetneqq}{\u2ACB}");w("\\varsupsetneq","\\html@mathml{\\@varsupsetneq}{\u228B}");w("\\varsupsetneqq","\\html@mathml{\\@varsupsetneqq}{\u2ACC}");w("\\imath","\\html@mathml{\\@imath}{\u0131}");w("\\jmath","\\html@mathml{\\@jmath}{\u0237}");w("\\llbracket","\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`\u27E6}}");w("\\rrbracket","\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`\u27E7}}");w("\u27E6","\\llbracket");w("\u27E7","\\rrbracket");w("\\lBrace","\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`\u2983}}");w("\\rBrace","\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`\u2984}}");w("\u2983","\\lBrace");w("\u2984","\\rBrace");w("\\minuso","\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`\u29B5}}");w("\u29B5","\\minuso");w("\\darr","\\downarrow");w("\\dArr","\\Downarrow");w("\\Darr","\\Downarrow");w("\\lang","\\langle");w("\\rang","\\rangle");w("\\uarr","\\uparrow");w("\\uArr","\\Uparrow");w("\\Uarr","\\Uparrow");w("\\N","\\mathbb{N}");w("\\R","\\mathbb{R}");w("\\Z","\\mathbb{Z}");w("\\alef","\\aleph");w("\\alefsym","\\aleph");w("\\Alpha","\\mathrm{A}");w("\\Beta","\\mathrm{B}");w("\\bull","\\bullet");w("\\Chi","\\mathrm{X}");w("\\clubs","\\clubsuit");w("\\cnums","\\mathbb{C}");w("\\Complex","\\mathbb{C}");w("\\Dagger","\\ddagger");w("\\diamonds","\\diamondsuit");w("\\empty","\\emptyset");w("\\Epsilon","\\mathrm{E}");w("\\Eta","\\mathrm{H}");w("\\exist","\\exists");w("\\harr","\\leftrightarrow");w("\\hArr","\\Leftrightarrow");w("\\Harr","\\Leftrightarrow");w("\\hearts","\\heartsuit");w("\\image","\\Im");w("\\infin","\\infty");w("\\Iota","\\mathrm{I}");w("\\isin","\\in");w("\\Kappa","\\mathrm{K}");w("\\larr","\\leftarrow");w("\\lArr","\\Leftarrow");w("\\Larr","\\Leftarrow");w("\\lrarr","\\leftrightarrow");w("\\lrArr","\\Leftrightarrow");w("\\Lrarr","\\Leftrightarrow");w("\\Mu","\\mathrm{M}");w("\\natnums","\\mathbb{N}");w("\\Nu","\\mathrm{N}");w("\\Omicron","\\mathrm{O}");w("\\plusmn","\\pm");w("\\rarr","\\rightarrow");w("\\rArr","\\Rightarrow");w("\\Rarr","\\Rightarrow");w("\\real","\\Re");w("\\reals","\\mathbb{R}");w("\\Reals","\\mathbb{R}");w("\\Rho","\\mathrm{P}");w("\\sdot","\\cdot");w("\\sect","\\S");w("\\spades","\\spadesuit");w("\\sub","\\subset");w("\\sube","\\subseteq");w("\\supe","\\supseteq");w("\\Tau","\\mathrm{T}");w("\\thetasym","\\vartheta");w("\\weierp","\\wp");w("\\Zeta","\\mathrm{Z}");w("\\argmin","\\DOTSB\\operatorname*{arg\\,min}");w("\\argmax","\\DOTSB\\operatorname*{arg\\,max}");w("\\plim","\\DOTSB\\mathop{\\operatorname{plim}}\\limits");w("\\bra","\\mathinner{\\langle{#1}|}");w("\\ket","\\mathinner{|{#1}\\rangle}");w("\\braket","\\mathinner{\\langle{#1}\\rangle}");w("\\Bra","\\left\\langle#1\\right|");w("\\Ket","\\left|#1\\right\\rangle");rg=i=>e=>{var t=e.consumeArg().tokens,r=e.consumeArg().tokens,n=e.consumeArg().tokens,s=e.consumeArg().tokens,a=e.macros.get("|"),o=e.macros.get("\\|");e.macros.beginGroup();var l=c=>f=>{i&&(f.macros.set("|",a),n.length&&f.macros.set("\\|",o));var m=c;if(!c&&n.length){var g=f.future();g.text==="|"&&(f.popToken(),m=!0)}return{tokens:m?n:r,numArgs:0}};e.macros.set("|",l(!1)),n.length&&e.macros.set("\\|",l(!0));var h=e.consumeArg().tokens,d=e.expandTokens([...s,...h,...t]);return e.macros.endGroup(),{tokens:d.reverse(),numArgs:0}};w("\\bra@ket",rg(!1));w("\\bra@set",rg(!0));w("\\Braket","\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}");w("\\Set","\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}");w("\\set","\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}");w("\\angln","{\\angl n}");w("\\blue","\\textcolor{##6495ed}{#1}");w("\\orange","\\textcolor{##ffa500}{#1}");w("\\pink","\\textcolor{##ff00af}{#1}");w("\\red","\\textcolor{##df0030}{#1}");w("\\green","\\textcolor{##28ae7b}{#1}");w("\\gray","\\textcolor{gray}{#1}");w("\\purple","\\textcolor{##9d38bd}{#1}");w("\\blueA","\\textcolor{##ccfaff}{#1}");w("\\blueB","\\textcolor{##80f6ff}{#1}");w("\\blueC","\\textcolor{##63d9ea}{#1}");w("\\blueD","\\textcolor{##11accd}{#1}");w("\\blueE","\\textcolor{##0c7f99}{#1}");w("\\tealA","\\textcolor{##94fff5}{#1}");w("\\tealB","\\textcolor{##26edd5}{#1}");w("\\tealC","\\textcolor{##01d1c1}{#1}");w("\\tealD","\\textcolor{##01a995}{#1}");w("\\tealE","\\textcolor{##208170}{#1}");w("\\greenA","\\textcolor{##b6ffb0}{#1}");w("\\greenB","\\textcolor{##8af281}{#1}");w("\\greenC","\\textcolor{##74cf70}{#1}");w("\\greenD","\\textcolor{##1fab54}{#1}");w("\\greenE","\\textcolor{##0d923f}{#1}");w("\\goldA","\\textcolor{##ffd0a9}{#1}");w("\\goldB","\\textcolor{##ffbb71}{#1}");w("\\goldC","\\textcolor{##ff9c39}{#1}");w("\\goldD","\\textcolor{##e07d10}{#1}");w("\\goldE","\\textcolor{##a75a05}{#1}");w("\\redA","\\textcolor{##fca9a9}{#1}");w("\\redB","\\textcolor{##ff8482}{#1}");w("\\redC","\\textcolor{##f9685d}{#1}");w("\\redD","\\textcolor{##e84d39}{#1}");w("\\redE","\\textcolor{##bc2612}{#1}");w("\\maroonA","\\textcolor{##ffbde0}{#1}");w("\\maroonB","\\textcolor{##ff92c6}{#1}");w("\\maroonC","\\textcolor{##ed5fa6}{#1}");w("\\maroonD","\\textcolor{##ca337c}{#1}");w("\\maroonE","\\textcolor{##9e034e}{#1}");w("\\purpleA","\\textcolor{##ddd7ff}{#1}");w("\\purpleB","\\textcolor{##c6b9fc}{#1}");w("\\purpleC","\\textcolor{##aa87ff}{#1}");w("\\purpleD","\\textcolor{##7854ab}{#1}");w("\\purpleE","\\textcolor{##543b78}{#1}");w("\\mintA","\\textcolor{##f5f9e8}{#1}");w("\\mintB","\\textcolor{##edf2df}{#1}");w("\\mintC","\\textcolor{##e0e5cc}{#1}");w("\\grayA","\\textcolor{##f6f7f7}{#1}");w("\\grayB","\\textcolor{##f0f1f2}{#1}");w("\\grayC","\\textcolor{##e3e5e6}{#1}");w("\\grayD","\\textcolor{##d6d8da}{#1}");w("\\grayE","\\textcolor{##babec2}{#1}");w("\\grayF","\\textcolor{##888d93}{#1}");w("\\grayG","\\textcolor{##626569}{#1}");w("\\grayH","\\textcolor{##3b3e40}{#1}");w("\\grayI","\\textcolor{##21242c}{#1}");w("\\kaBlue","\\textcolor{##314453}{#1}");w("\\kaGreen","\\textcolor{##71B307}{#1}");ng={"^":!0,_:!0,"\\limits":!0,"\\nolimits":!0},w1=class{constructor(e,t,r){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=t,this.expansionCount=0,this.feed(e),this.macros=new b1(VA,t.macros),this.mode=r,this.stack=[]}feed(e){this.lexer=new kh(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 t,r,n;if(e){if(this.consumeSpaces(),this.future().text!=="[")return null;t=this.popToken(),{tokens:n,end:r}=this.consumeArg(["]"])}else({tokens:n,start:t,end:r}=this.consumeArg());return this.pushToken(new ui("EOF",r.loc)),this.pushTokens(n),new ui("",Jt.range(t,r))}consumeSpaces(){for(;;){var e=this.future();if(e.text===" ")this.stack.pop();else break}}consumeArg(e){var t=[],r=e&&e.length>0;r||this.consumeSpaces();var n=this.future(),s,a=0,o=0;do{if(s=this.popToken(),t.push(s),s.text==="{")++a;else if(s.text==="}"){if(--a,a===-1)throw new G("Extra }",s)}else if(s.text==="EOF")throw new G("Unexpected end of input in a macro argument, expected '"+(e&&r?e[o]:"}")+"'",s);if(e&&r)if((a===0||a===1&&e[o]==="{")&&s.text===e[o]){if(++o,o===e.length){t.splice(-o,o);break}}else o=0}while(a!==0||r);return n.text==="{"&&t[t.length-1].text==="}"&&(t.pop(),t.shift()),t.reverse(),{tokens:t,start:n,end:s}}consumeArgs(e,t){if(t){if(t.length!==e+1)throw new G("The length of delimiters doesn't match the number of args!");for(var r=t[0],n=0;nthis.settings.maxExpand)throw new G("Too many expansions: infinite loop or need to increase maxExpand setting")}expandOnce(e){var t=this.popToken(),r=t.text,n=t.noexpand?null:this._getExpansion(r);if(n==null||e&&n.unexpandable){if(e&&n==null&&r[0]==="\\"&&!this.isDefined(r))throw new G("Undefined control sequence: "+r);return this.pushToken(t),!1}this.countExpansion(1);var s=n.tokens,a=this.consumeArgs(n.numArgs,n.delimiters);if(n.numArgs){s=s.slice();for(var o=s.length-1;o>=0;--o){var l=s[o];if(l.text==="#"){if(o===0)throw new G("Incomplete placeholder at end of macro body",l);if(l=s[--o],l.text==="#")s.splice(o+1,1);else if(/^[1-9]$/.test(l.text))s.splice(o,2,...a[+l.text-1]);else throw new G("Not a valid argument number",l)}}}return this.pushTokens(s),s.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 ui(e)]):void 0}expandTokens(e){var t=[],r=this.stack.length;for(this.pushTokens(e);this.stack.length>r;)if(this.expandOnce(!0)===!1){var n=this.stack.pop();n.treatAsRelax&&(n.noexpand=!1,n.treatAsRelax=!1),t.push(n)}return this.countExpansion(t.length),t}expandMacroAsText(e){var t=this.expandMacro(e);return t&&t.map(r=>r.text).join("")}_getExpansion(e){var t=this.macros.get(e);if(t==null)return t;if(e.length===1){var r=this.lexer.catcodes[e];if(r!=null&&r!==13)return}var n=typeof t=="function"?t(this):t;if(typeof n=="string"){var s=0;if(n.indexOf("#")!==-1)for(var a=n.replace(/##/g,"");a.indexOf("#"+(s+1))!==-1;)++s;for(var o=new kh(n,this.settings),l=[],h=o.lex();h.text!=="EOF";)l.push(h),h=o.lex();l.reverse();var d={tokens:l,numArgs:s};return d}return n}isDefined(e){return this.macros.has(e)||xn.hasOwnProperty(e)||Oe.math.hasOwnProperty(e)||Oe.text.hasOwnProperty(e)||ng.hasOwnProperty(e)}isExpandable(e){var t=this.macros.get(e);return t!=null?typeof t=="string"||typeof t=="function"||!t.unexpandable:xn.hasOwnProperty(e)&&!xn[e].primitive}},d4=/^[₊₋₌₍₎₀₁₂₃₄₅₆₇₈₉ₐₑₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ]/,vh=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"}),h1={"\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"}},c4={\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"},Ch=class i{constructor(e,t){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 w1(e,t,this.mode),this.settings=t,this.leftrightDepth=0}expect(e,t){if(t===void 0&&(t=!0),this.fetch().text!==e)throw new G("Expected '"+e+"', got '"+this.fetch().text+"'",this.fetch());t&&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 t=this.nextToken;this.consume(),this.gullet.pushToken(new ui("}")),this.gullet.pushTokens(e);var r=this.parseExpression(!1);return this.expect("}"),this.nextToken=t,r}parseExpression(e,t){for(var r=[];;){this.mode==="math"&&this.consumeSpaces();var n=this.fetch();if(i.endOfExpression.indexOf(n.text)!==-1||t&&n.text===t||e&&xn[n.text]&&xn[n.text].infix)break;var s=this.parseAtom(t);if(s){if(s.type==="internal")continue}else break;r.push(s)}return this.mode==="text"&&this.formLigatures(r),this.handleInfixNodes(r)}handleInfixNodes(e){for(var t=-1,r,n=0;n=0&&this.settings.reportNonstrict("unicodeTextInMathMode",'Latin-1/Unicode text character "'+t[0]+'" used in math mode',e);var o=Oe[this.mode][t].group,l=Jt.range(e),h;if(BS.hasOwnProperty(o)){var d=o;h={type:"atom",mode:this.mode,family:d,loc:l,text:t}}else h={type:o,mode:this.mode,loc:l,text:t};a=h}else if(t.charCodeAt(0)>=128)this.settings.strict&&(f4(t.charCodeAt(0))?this.mode==="math"&&this.settings.reportNonstrict("unicodeTextInMathMode",'Unicode text character "'+t[0]+'" used in math mode',e):this.settings.reportNonstrict("unknownSymbol",'Unrecognized Unicode character "'+t[0]+'"'+(" ("+t.charCodeAt(0)+")"),e)),a={type:"textord",mode:"text",loc:Jt.range(e),text:t};else return null;if(this.consume(),s)for(var c=0;c{QA=typeof global=="object"&&global&&global.Object===Object&&global,Bh=QA});var JA,ek,lt,Ki=T(()=>{q1();JA=typeof self=="object"&&self&&self.Object===Object&&self,ek=Bh||JA||Function("return this")(),lt=ek});var tk,_i,nl=T(()=>{Ki();tk=lt.Symbol,_i=tk});function nk(i){var e=ik.call(i,sl),t=i[sl];try{i[sl]=void 0;var r=!0}catch{}var n=rk.call(i);return r&&(e?i[sl]=t:delete i[sl]),n}var lg,ik,rk,sl,hg,dg=T(()=>{nl();lg=Object.prototype,ik=lg.hasOwnProperty,rk=lg.toString,sl=_i?_i.toStringTag:void 0;hg=nk});function ok(i){return ak.call(i)}var sk,ak,cg,ug=T(()=>{sk=Object.prototype,ak=sk.toString;cg=ok});function dk(i){return i==null?i===void 0?hk:lk:fg&&fg in Object(i)?hg(i):cg(i)}var lk,hk,fg,Zi,ga=T(()=>{nl();dg();ug();lk="[object Null]",hk="[object Undefined]",fg=_i?_i.toStringTag:void 0;Zi=dk});function ck(i){return i!=null&&typeof i=="object"}var vt,Or=T(()=>{vt=ck});var uk,Li,xa=T(()=>{uk=Array.isArray,Li=uk});function fk(i){var e=typeof i;return i!=null&&(e=="object"||e=="function")}var Nt,Br=T(()=>{Nt=fk});function mk(i){return i}var Ph,H1=T(()=>{Ph=mk});function vk(i){if(!Nt(i))return!1;var e=Zi(i);return e==gk||e==xk||e==pk||e==yk}var pk,gk,xk,yk,ya,Fh=T(()=>{ga();Br();pk="[object AsyncFunction]",gk="[object Function]",xk="[object GeneratorFunction]",yk="[object Proxy]";ya=vk});var bk,qh,mg=T(()=>{Ki();bk=lt["__core-js_shared__"],qh=bk});function wk(i){return!!pg&&pg in i}var pg,gg,xg=T(()=>{mg();pg=(function(){var i=/[^.]+$/.exec(qh&&qh.keys&&qh.keys.IE_PROTO||"");return i?"Symbol(src)_1."+i:""})();gg=wk});function Nk(i){if(i!=null){try{return Tk.call(i)}catch{}try{return i+""}catch{}}return""}var Mk,Tk,Pr,U1=T(()=>{Mk=Function.prototype,Tk=Mk.toString;Pr=Nk});function Ik(i){if(!Nt(i)||gg(i))return!1;var e=ya(i)?Lk:Sk;return e.test(Pr(i))}var Ek,Sk,Ak,kk,Ck,_k,Lk,yg,vg=T(()=>{Fh();xg();Br();U1();Ek=/[\\^$.*+?()[\]{}|]/g,Sk=/^\[object .+?Constructor\]$/,Ak=Function.prototype,kk=Object.prototype,Ck=Ak.toString,_k=kk.hasOwnProperty,Lk=RegExp("^"+Ck.call(_k).replace(Ek,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");yg=Ik});function zk(i,e){return i?.[e]}var bg,wg=T(()=>{bg=zk});function Rk(i,e){var t=bg(i,e);return yg(t)?t:void 0}var ii,wn=T(()=>{vg();wg();ii=Rk});var Dk,Hh,Mg=T(()=>{wn();Ki();Dk=ii(lt,"WeakMap"),Hh=Dk});var Tg,Ok,Ng,Eg=T(()=>{Br();Tg=Object.create,Ok=(function(){function i(){}return function(e){if(!Nt(e))return{};if(Tg)return Tg(e);i.prototype=e;var t=new i;return i.prototype=void 0,t}})(),Ng=Ok});function Bk(i,e,t){switch(t.length){case 0:return i.call(e);case 1:return i.call(e,t[0]);case 2:return i.call(e,t[0],t[1]);case 3:return i.call(e,t[0],t[1],t[2])}return i.apply(e,t)}var Sg,Ag=T(()=>{Sg=Bk});function Pk(i,e){var t=-1,r=i.length;for(e||(e=Array(r));++t{Uh=Pk});function Uk(i){var e=0,t=0;return function(){var r=Hk(),n=qk-(r-t);if(t=r,n>0){if(++e>=Fk)return arguments[0]}else e=0;return i.apply(void 0,arguments)}}var Fk,qk,Hk,kg,Cg=T(()=>{Fk=800,qk=16,Hk=Date.now;kg=Uk});function $k(i){return function(){return i}}var _g,Lg=T(()=>{_g=$k});var jk,va,j1=T(()=>{wn();jk=(function(){try{var i=ii(Object,"defineProperty");return i({},"",{}),i}catch{}})(),va=jk});var Gk,Ig,zg=T(()=>{Lg();j1();H1();Gk=va?function(i,e){return va(i,"toString",{configurable:!0,enumerable:!1,value:_g(e),writable:!0})}:Ph,Ig=Gk});var Vk,Rg,Dg=T(()=>{zg();Cg();Vk=kg(Ig),Rg=Vk});function Wk(i,e){for(var t=-1,r=i==null?0:i.length;++t{Og=Wk});function Kk(i,e){var t=typeof i;return e=e??Yk,!!e&&(t=="number"||t!="symbol"&&Xk.test(i))&&i>-1&&i%1==0&&i{Yk=9007199254740991,Xk=/^(?:0|[1-9]\d*)$/;$h=Kk});function Zk(i,e,t){e=="__proto__"&&va?va(i,e,{configurable:!0,enumerable:!0,value:t,writable:!0}):i[e]=t}var ba,jh=T(()=>{j1();ba=Zk});function Qk(i,e){return i===e||i!==i&&e!==e}var pr,wa=T(()=>{pr=Qk});function tC(i,e,t){var r=i[e];(!(eC.call(i,e)&&pr(r,t))||t===void 0&&!(e in i))&&ba(i,e,t)}var Jk,eC,Gh,V1=T(()=>{jh();wa();Jk=Object.prototype,eC=Jk.hasOwnProperty;Gh=tC});function iC(i,e,t,r){var n=!t;t||(t={});for(var s=-1,a=e.length;++s{V1();jh();gr=iC});function rC(i,e,t){return e=Pg(e===void 0?i.length-1:e,0),function(){for(var r=arguments,n=-1,s=Pg(r.length-e,0),a=Array(s);++n{Ag();Pg=Math.max;Fg=rC});function nC(i,e){return Rg(Fg(i,e,Ph),i+"")}var Hg,Ug=T(()=>{H1();qg();Dg();Hg=nC});function aC(i){return typeof i=="number"&&i>-1&&i%1==0&&i<=sC}var sC,Vh,W1=T(()=>{sC=9007199254740991;Vh=aC});function oC(i){return i!=null&&Vh(i.length)&&!ya(i)}var Mn,al=T(()=>{Fh();W1();Mn=oC});function lC(i,e,t){if(!Nt(t))return!1;var r=typeof e;return(r=="number"?Mn(t)&&$h(e,t.length):r=="string"&&e in t)?pr(t[e],i):!1}var $g,jg=T(()=>{wa();al();G1();Br();$g=lC});function hC(i){return Hg(function(e,t){var r=-1,n=t.length,s=n>1?t[n-1]:void 0,a=n>2?t[2]:void 0;for(s=i.length>3&&typeof s=="function"?(n--,s):void 0,a&&$g(t[0],t[1],a)&&(s=n<3?void 0:s,n=1),e=Object(e);++r{Ug();jg();Gg=hC});function cC(i){var e=i&&i.constructor,t=typeof e=="function"&&e.prototype||dC;return i===t}var dC,Ta,Wh=T(()=>{dC=Object.prototype;Ta=cC});function uC(i,e){for(var t=-1,r=Array(i);++t{Wg=uC});function mC(i){return vt(i)&&Zi(i)==fC}var fC,Y1,Xg=T(()=>{ga();Or();fC="[object Arguments]";Y1=mC});var Kg,pC,gC,xC,ol,X1=T(()=>{Xg();Or();Kg=Object.prototype,pC=Kg.hasOwnProperty,gC=Kg.propertyIsEnumerable,xC=Y1((function(){return arguments})())?Y1:function(i){return vt(i)&&pC.call(i,"callee")&&!gC.call(i,"callee")},ol=xC});function yC(){return!1}var Zg,Qg=T(()=>{Zg=yC});var t5,Jg,vC,e5,bC,wC,Fr,ll=T(()=>{Ki();Qg();t5=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Jg=t5&&typeof module=="object"&&module&&!module.nodeType&&module,vC=Jg&&Jg.exports===t5,e5=vC?lt.Buffer:void 0,bC=e5?e5.isBuffer:void 0,wC=bC||Zg,Fr=wC});function VC(i){return vt(i)&&Vh(i.length)&&!!He[Zi(i)]}var MC,TC,NC,EC,SC,AC,kC,CC,_C,LC,IC,zC,RC,DC,OC,BC,PC,FC,qC,HC,UC,$C,jC,GC,He,i5,r5=T(()=>{ga();W1();Or();MC="[object Arguments]",TC="[object Array]",NC="[object Boolean]",EC="[object Date]",SC="[object Error]",AC="[object Function]",kC="[object Map]",CC="[object Number]",_C="[object Object]",LC="[object RegExp]",IC="[object Set]",zC="[object String]",RC="[object WeakMap]",DC="[object ArrayBuffer]",OC="[object DataView]",BC="[object Float32Array]",PC="[object Float64Array]",FC="[object Int8Array]",qC="[object Int16Array]",HC="[object Int32Array]",UC="[object Uint8Array]",$C="[object Uint8ClampedArray]",jC="[object Uint16Array]",GC="[object Uint32Array]",He={};He[BC]=He[PC]=He[FC]=He[qC]=He[HC]=He[UC]=He[$C]=He[jC]=He[GC]=!0;He[MC]=He[TC]=He[DC]=He[NC]=He[OC]=He[EC]=He[SC]=He[AC]=He[kC]=He[CC]=He[_C]=He[LC]=He[IC]=He[zC]=He[RC]=!1;i5=VC});function WC(i){return function(e){return i(e)}}var Na,Yh=T(()=>{Na=WC});var n5,hl,YC,K1,XC,qr,Xh=T(()=>{q1();n5=typeof exports=="object"&&exports&&!exports.nodeType&&exports,hl=n5&&typeof module=="object"&&module&&!module.nodeType&&module,YC=hl&&hl.exports===n5,K1=YC&&Bh.process,XC=(function(){try{var i=hl&&hl.require&&hl.require("util").types;return i||K1&&K1.binding&&K1.binding("util")}catch{}})(),qr=XC});var s5,KC,Ea,Kh=T(()=>{r5();Yh();Xh();s5=qr&&qr.isTypedArray,KC=s5?Na(s5):i5,Ea=KC});function JC(i,e){var t=Li(i),r=!t&&ol(i),n=!t&&!r&&Fr(i),s=!t&&!r&&!n&&Ea(i),a=t||r||n||s,o=a?Wg(i.length,String):[],l=o.length;for(var h in i)(e||QC.call(i,h))&&!(a&&(h=="length"||n&&(h=="offset"||h=="parent")||s&&(h=="buffer"||h=="byteLength"||h=="byteOffset")||$h(h,l)))&&o.push(h);return o}var ZC,QC,Zh,Z1=T(()=>{Yg();X1();xa();ll();G1();Kh();ZC=Object.prototype,QC=ZC.hasOwnProperty;Zh=JC});function e_(i,e){return function(t){return i(e(t))}}var Qh,Q1=T(()=>{Qh=e_});var t_,a5,o5=T(()=>{Q1();t_=Qh(Object.keys,Object),a5=t_});function n_(i){if(!Ta(i))return a5(i);var e=[];for(var t in Object(i))r_.call(i,t)&&t!="constructor"&&e.push(t);return e}var i_,r_,l5,h5=T(()=>{Wh();o5();i_=Object.prototype,r_=i_.hasOwnProperty;l5=n_});function s_(i){return Mn(i)?Zh(i):l5(i)}var Sa,Jh=T(()=>{Z1();h5();al();Sa=s_});function a_(i){var e=[];if(i!=null)for(var t in Object(i))e.push(t);return e}var d5,c5=T(()=>{d5=a_});function h_(i){if(!Nt(i))return d5(i);var e=Ta(i),t=[];for(var r in i)r=="constructor"&&(e||!l_.call(i,r))||t.push(r);return t}var o_,l_,u5,f5=T(()=>{Br();Wh();c5();o_=Object.prototype,l_=o_.hasOwnProperty;u5=h_});function d_(i){return Mn(i)?Zh(i,!0):u5(i)}var xr,Aa=T(()=>{Z1();f5();al();xr=d_});var c_,Hr,dl=T(()=>{wn();c_=ii(Object,"create"),Hr=c_});function u_(){this.__data__=Hr?Hr(null):{},this.size=0}var m5,p5=T(()=>{dl();m5=u_});function f_(i){var e=this.has(i)&&delete this.__data__[i];return this.size-=e?1:0,e}var g5,x5=T(()=>{g5=f_});function x_(i){var e=this.__data__;if(Hr){var t=e[i];return t===m_?void 0:t}return g_.call(e,i)?e[i]:void 0}var m_,p_,g_,y5,v5=T(()=>{dl();m_="__lodash_hash_undefined__",p_=Object.prototype,g_=p_.hasOwnProperty;y5=x_});function b_(i){var e=this.__data__;return Hr?e[i]!==void 0:v_.call(e,i)}var y_,v_,b5,w5=T(()=>{dl();y_=Object.prototype,v_=y_.hasOwnProperty;b5=b_});function M_(i,e){var t=this.__data__;return this.size+=this.has(i)?0:1,t[i]=Hr&&e===void 0?w_:e,this}var w_,M5,T5=T(()=>{dl();w_="__lodash_hash_undefined__";M5=M_});function ka(i){var e=-1,t=i==null?0:i.length;for(this.clear();++e{p5();x5();v5();w5();T5();ka.prototype.clear=m5;ka.prototype.delete=g5;ka.prototype.get=y5;ka.prototype.has=b5;ka.prototype.set=M5;J1=ka});function T_(){this.__data__=[],this.size=0}var E5,S5=T(()=>{E5=T_});function N_(i,e){for(var t=i.length;t--;)if(pr(i[t][0],e))return t;return-1}var Tn,cl=T(()=>{wa();Tn=N_});function A_(i){var e=this.__data__,t=Tn(e,i);if(t<0)return!1;var r=e.length-1;return t==r?e.pop():S_.call(e,t,1),--this.size,!0}var E_,S_,A5,k5=T(()=>{cl();E_=Array.prototype,S_=E_.splice;A5=A_});function k_(i){var e=this.__data__,t=Tn(e,i);return t<0?void 0:e[t][1]}var C5,_5=T(()=>{cl();C5=k_});function C_(i){return Tn(this.__data__,i)>-1}var L5,I5=T(()=>{cl();L5=C_});function __(i,e){var t=this.__data__,r=Tn(t,i);return r<0?(++this.size,t.push([i,e])):t[r][1]=e,this}var z5,R5=T(()=>{cl();z5=__});function Ca(i){var e=-1,t=i==null?0:i.length;for(this.clear();++e{S5();k5();_5();I5();R5();Ca.prototype.clear=E5;Ca.prototype.delete=A5;Ca.prototype.get=C5;Ca.prototype.has=L5;Ca.prototype.set=z5;Nn=Ca});var L_,En,ed=T(()=>{wn();Ki();L_=ii(lt,"Map"),En=L_});function I_(){this.size=0,this.__data__={hash:new J1,map:new(En||Nn),string:new J1}}var D5,O5=T(()=>{N5();ul();ed();D5=I_});function z_(i){var e=typeof i;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?i!=="__proto__":i===null}var B5,P5=T(()=>{B5=z_});function R_(i,e){var t=i.__data__;return B5(e)?t[typeof e=="string"?"string":"hash"]:t.map}var Sn,fl=T(()=>{P5();Sn=R_});function D_(i){var e=Sn(this,i).delete(i);return this.size-=e?1:0,e}var F5,q5=T(()=>{fl();F5=D_});function O_(i){return Sn(this,i).get(i)}var H5,U5=T(()=>{fl();H5=O_});function B_(i){return Sn(this,i).has(i)}var $5,j5=T(()=>{fl();$5=B_});function P_(i,e){var t=Sn(this,i),r=t.size;return t.set(i,e),this.size+=t.size==r?0:1,this}var G5,V5=T(()=>{fl();G5=P_});function _a(i){var e=-1,t=i==null?0:i.length;for(this.clear();++e{O5();q5();U5();j5();V5();_a.prototype.clear=D5;_a.prototype.delete=F5;_a.prototype.get=H5;_a.prototype.has=$5;_a.prototype.set=G5;td=_a});function F_(i,e){for(var t=-1,r=e.length,n=i.length;++t{id=F_});var q_,La,rd=T(()=>{Q1();q_=Qh(Object.getPrototypeOf,Object),La=q_});function V_(i){if(!vt(i)||Zi(i)!=H_)return!1;var e=La(i);if(e===null)return!0;var t=j_.call(e,"constructor")&&e.constructor;return typeof t=="function"&&t instanceof t&&W5.call(t)==G_}var H_,U_,$_,W5,j_,G_,Y5,X5=T(()=>{ga();rd();Or();H_="[object Object]",U_=Function.prototype,$_=Object.prototype,W5=U_.toString,j_=$_.hasOwnProperty,G_=W5.call(Object);Y5=V_});function W_(){this.__data__=new Nn,this.size=0}var K5,Z5=T(()=>{ul();K5=W_});function Y_(i){var e=this.__data__,t=e.delete(i);return this.size=e.size,t}var Q5,J5=T(()=>{Q5=Y_});function X_(i){return this.__data__.get(i)}var e7,t7=T(()=>{e7=X_});function K_(i){return this.__data__.has(i)}var i7,r7=T(()=>{i7=K_});function Q_(i,e){var t=this.__data__;if(t instanceof Nn){var r=t.__data__;if(!En||r.length{ul();ed();ef();Z_=200;n7=Q_});function Ia(i){var e=this.__data__=new Nn(i);this.size=e.size}var An,nd=T(()=>{ul();Z5();J5();t7();r7();s7();Ia.prototype.clear=K5;Ia.prototype.delete=Q5;Ia.prototype.get=e7;Ia.prototype.has=i7;Ia.prototype.set=n7;An=Ia});function J_(i,e){return i&&gr(e,Sa(e),i)}var a7,o7=T(()=>{Ma();Jh();a7=J_});function eL(i,e){return i&&gr(e,xr(e),i)}var l7,h7=T(()=>{Ma();Aa();l7=eL});function iL(i,e){if(e)return i.slice();var t=i.length,r=u7?u7(t):new i.constructor(t);return i.copy(r),r}var f7,d7,tL,c7,u7,sd,rf=T(()=>{Ki();f7=typeof exports=="object"&&exports&&!exports.nodeType&&exports,d7=f7&&typeof module=="object"&&module&&!module.nodeType&&module,tL=d7&&d7.exports===f7,c7=tL?lt.Buffer:void 0,u7=c7?c7.allocUnsafe:void 0;sd=iL});function rL(i,e){for(var t=-1,r=i==null?0:i.length,n=0,s=[];++t{m7=rL});function nL(){return[]}var ad,nf=T(()=>{ad=nL});var sL,aL,g7,oL,za,od=T(()=>{p7();nf();sL=Object.prototype,aL=sL.propertyIsEnumerable,g7=Object.getOwnPropertySymbols,oL=g7?function(i){return i==null?[]:(i=Object(i),m7(g7(i),function(e){return aL.call(i,e)}))}:ad,za=oL});function lL(i,e){return gr(i,za(i),e)}var x7,y7=T(()=>{Ma();od();x7=lL});var hL,dL,ld,sf=T(()=>{tf();rd();od();nf();hL=Object.getOwnPropertySymbols,dL=hL?function(i){for(var e=[];i;)id(e,za(i)),i=La(i);return e}:ad,ld=dL});function cL(i,e){return gr(i,ld(i),e)}var v7,b7=T(()=>{Ma();sf();v7=cL});function uL(i,e,t){var r=e(i);return Li(i)?r:id(r,t(i))}var hd,af=T(()=>{tf();xa();hd=uL});function fL(i){return hd(i,Sa,za)}var ml,of=T(()=>{af();od();Jh();ml=fL});function mL(i){return hd(i,xr,ld)}var w7,M7=T(()=>{af();sf();Aa();w7=mL});var pL,dd,T7=T(()=>{wn();Ki();pL=ii(lt,"DataView"),dd=pL});var gL,cd,N7=T(()=>{wn();Ki();gL=ii(lt,"Promise"),cd=gL});var xL,ud,E7=T(()=>{wn();Ki();xL=ii(lt,"Set"),ud=xL});var S7,yL,A7,k7,C7,_7,vL,bL,wL,ML,TL,xs,Ur,pl=T(()=>{T7();ed();N7();E7();Mg();ga();U1();S7="[object Map]",yL="[object Object]",A7="[object Promise]",k7="[object Set]",C7="[object WeakMap]",_7="[object DataView]",vL=Pr(dd),bL=Pr(En),wL=Pr(cd),ML=Pr(ud),TL=Pr(Hh),xs=Zi;(dd&&xs(new dd(new ArrayBuffer(1)))!=_7||En&&xs(new En)!=S7||cd&&xs(cd.resolve())!=A7||ud&&xs(new ud)!=k7||Hh&&xs(new Hh)!=C7)&&(xs=function(i){var e=Zi(i),t=e==yL?i.constructor:void 0,r=t?Pr(t):"";if(r)switch(r){case vL:return _7;case bL:return S7;case wL:return A7;case ML:return k7;case TL:return C7}return e});Ur=xs});function SL(i){var e=i.length,t=new i.constructor(e);return e&&typeof i[0]=="string"&&EL.call(i,"index")&&(t.index=i.index,t.input=i.input),t}var NL,EL,L7,I7=T(()=>{NL=Object.prototype,EL=NL.hasOwnProperty;L7=SL});var AL,Ra,lf=T(()=>{Ki();AL=lt.Uint8Array,Ra=AL});function kL(i){var e=new i.constructor(i.byteLength);return new Ra(e).set(new Ra(i)),e}var Da,fd=T(()=>{lf();Da=kL});function CL(i,e){var t=e?Da(i.buffer):i.buffer;return new i.constructor(t,i.byteOffset,i.byteLength)}var z7,R7=T(()=>{fd();z7=CL});function LL(i){var e=new i.constructor(i.source,_L.exec(i));return e.lastIndex=i.lastIndex,e}var _L,D7,O7=T(()=>{_L=/\w*$/;D7=LL});function IL(i){return P7?Object(P7.call(i)):{}}var B7,P7,F7,q7=T(()=>{nl();B7=_i?_i.prototype:void 0,P7=B7?B7.valueOf:void 0;F7=IL});function zL(i,e){var t=e?Da(i.buffer):i.buffer;return new i.constructor(t,i.byteOffset,i.length)}var md,hf=T(()=>{fd();md=zL});function JL(i,e,t){var r=i.constructor;switch(e){case UL:return Da(i);case RL:case DL:return new r(+i);case $L:return z7(i,t);case jL:case GL:case VL:case WL:case YL:case XL:case KL:case ZL:case QL:return md(i,t);case OL:return new r;case BL:case qL:return new r(i);case PL:return D7(i);case FL:return new r;case HL:return F7(i)}}var RL,DL,OL,BL,PL,FL,qL,HL,UL,$L,jL,GL,VL,WL,YL,XL,KL,ZL,QL,H7,U7=T(()=>{fd();R7();O7();q7();hf();RL="[object Boolean]",DL="[object Date]",OL="[object Map]",BL="[object Number]",PL="[object RegExp]",FL="[object Set]",qL="[object String]",HL="[object Symbol]",UL="[object ArrayBuffer]",$L="[object DataView]",jL="[object Float32Array]",GL="[object Float64Array]",VL="[object Int8Array]",WL="[object Int16Array]",YL="[object Int32Array]",XL="[object Uint8Array]",KL="[object Uint8ClampedArray]",ZL="[object Uint16Array]",QL="[object Uint32Array]";H7=JL});function eI(i){return typeof i.constructor=="function"&&!Ta(i)?Ng(La(i)):{}}var pd,df=T(()=>{Eg();rd();Wh();pd=eI});function iI(i){return vt(i)&&Ur(i)==tI}var tI,$7,j7=T(()=>{pl();Or();tI="[object Map]";$7=iI});var G7,rI,V7,W7=T(()=>{j7();Yh();Xh();G7=qr&&qr.isMap,rI=G7?Na(G7):$7,V7=rI});function sI(i){return vt(i)&&Ur(i)==nI}var nI,Y7,X7=T(()=>{pl();Or();nI="[object Set]";Y7=sI});var K7,aI,Z7,Q7=T(()=>{X7();Yh();Xh();K7=qr&&qr.isSet,aI=K7?Na(K7):Y7,Z7=aI});function gd(i,e,t,r,n,s){var a,o=e&oI,l=e&lI,h=e&hI;if(t&&(a=n?t(i,r,n,s):t(i)),a!==void 0)return a;if(!Nt(i))return i;var d=Li(i);if(d){if(a=L7(i),!o)return Uh(i,a)}else{var c=Ur(i),f=c==e8||c==mI;if(Fr(i))return sd(i,o);if(c==t8||c==J7||f&&!n){if(a=l||f?{}:pd(i),!o)return l?v7(i,l7(a,i)):x7(i,a7(a,i))}else{if(!Be[c])return n?i:{};a=H7(i,c,o)}}s||(s=new An);var m=s.get(i);if(m)return m;s.set(i,a),Z7(i)?i.forEach(function(y){a.add(gd(y,e,t,y,i,s))}):V7(i)&&i.forEach(function(y,b){a.set(b,gd(y,e,t,b,i,s))});var g=h?l?w7:ml:l?xr:Sa,x=d?void 0:g(i);return Og(x||i,function(y,b){x&&(b=y,y=i[b]),Gh(a,b,gd(y,e,t,b,i,s))}),a}var oI,lI,hI,J7,dI,cI,uI,fI,e8,mI,pI,gI,t8,xI,yI,vI,bI,wI,MI,TI,NI,EI,SI,AI,kI,CI,_I,LI,II,Be,i8,r8=T(()=>{nd();Bg();V1();o7();h7();rf();$1();y7();b7();of();M7();pl();I7();U7();df();xa();ll();W7();Br();Q7();Jh();Aa();oI=1,lI=2,hI=4,J7="[object Arguments]",dI="[object Array]",cI="[object Boolean]",uI="[object Date]",fI="[object Error]",e8="[object Function]",mI="[object GeneratorFunction]",pI="[object Map]",gI="[object Number]",t8="[object Object]",xI="[object RegExp]",yI="[object Set]",vI="[object String]",bI="[object Symbol]",wI="[object WeakMap]",MI="[object ArrayBuffer]",TI="[object DataView]",NI="[object Float32Array]",EI="[object Float64Array]",SI="[object Int8Array]",AI="[object Int16Array]",kI="[object Int32Array]",CI="[object Uint8Array]",_I="[object Uint8ClampedArray]",LI="[object Uint16Array]",II="[object Uint32Array]",Be={};Be[J7]=Be[dI]=Be[MI]=Be[TI]=Be[cI]=Be[uI]=Be[NI]=Be[EI]=Be[SI]=Be[AI]=Be[kI]=Be[pI]=Be[gI]=Be[t8]=Be[xI]=Be[yI]=Be[vI]=Be[bI]=Be[CI]=Be[_I]=Be[LI]=Be[II]=!0;Be[fI]=Be[e8]=Be[wI]=!1;i8=gd});function DI(i){return i8(i,zI|RI)}var zI,RI,yr,n8=T(()=>{r8();zI=1,RI=4;yr=DI});function BI(i){return this.__data__.set(i,OI),this}var OI,s8,a8=T(()=>{OI="__lodash_hash_undefined__";s8=BI});function PI(i){return this.__data__.has(i)}var o8,l8=T(()=>{o8=PI});function xd(i){var e=-1,t=i==null?0:i.length;for(this.__data__=new td;++e{ef();a8();l8();xd.prototype.add=xd.prototype.push=s8;xd.prototype.has=o8;h8=xd});function FI(i,e){for(var t=-1,r=i==null?0:i.length;++t{c8=FI});function qI(i,e){return i.has(e)}var f8,m8=T(()=>{f8=qI});function $I(i,e,t,r,n,s){var a=t&HI,o=i.length,l=e.length;if(o!=l&&!(a&&l>o))return!1;var h=s.get(i),d=s.get(e);if(h&&d)return h==e&&d==i;var c=-1,f=!0,m=t&UI?new h8:void 0;for(s.set(i,e),s.set(e,i);++c{d8();u8();m8();HI=1,UI=2;yd=$I});function jI(i){var e=-1,t=Array(i.size);return i.forEach(function(r,n){t[++e]=[n,r]}),t}var p8,g8=T(()=>{p8=jI});function GI(i){var e=-1,t=Array(i.size);return i.forEach(function(r){t[++e]=r}),t}var x8,y8=T(()=>{x8=GI});function sz(i,e,t,r,n,s,a){switch(t){case nz:if(i.byteLength!=e.byteLength||i.byteOffset!=e.byteOffset)return!1;i=i.buffer,e=e.buffer;case rz:return!(i.byteLength!=e.byteLength||!s(new Ra(i),new Ra(e)));case YI:case XI:case QI:return pr(+i,+e);case KI:return i.name==e.name&&i.message==e.message;case JI:case tz:return i==e+"";case ZI:var o=p8;case ez:var l=r&VI;if(o||(o=x8),i.size!=e.size&&!l)return!1;var h=a.get(i);if(h)return h==e;r|=WI,a.set(i,e);var d=yd(o(i),o(e),r,n,s,a);return a.delete(i),d;case iz:if(uf)return uf.call(i)==uf.call(e)}return!1}var VI,WI,YI,XI,KI,ZI,QI,JI,ez,tz,iz,rz,nz,v8,uf,b8,w8=T(()=>{nl();lf();wa();cf();g8();y8();VI=1,WI=2,YI="[object Boolean]",XI="[object Date]",KI="[object Error]",ZI="[object Map]",QI="[object Number]",JI="[object RegExp]",ez="[object Set]",tz="[object String]",iz="[object Symbol]",rz="[object ArrayBuffer]",nz="[object DataView]",v8=_i?_i.prototype:void 0,uf=v8?v8.valueOf:void 0;b8=sz});function hz(i,e,t,r,n,s){var a=t&az,o=ml(i),l=o.length,h=ml(e),d=h.length;if(l!=d&&!a)return!1;for(var c=l;c--;){var f=o[c];if(!(a?f in e:lz.call(e,f)))return!1}var m=s.get(i),g=s.get(e);if(m&&g)return m==e&&g==i;var x=!0;s.set(i,e),s.set(e,i);for(var y=a;++c{of();az=1,oz=Object.prototype,lz=oz.hasOwnProperty;M8=hz});function uz(i,e,t,r,n,s){var a=Li(i),o=Li(e),l=a?E8:Ur(i),h=o?E8:Ur(e);l=l==N8?vd:l,h=h==N8?vd:h;var d=l==vd,c=h==vd,f=l==h;if(f&&Fr(i)){if(!Fr(e))return!1;a=!0,d=!1}if(f&&!d)return s||(s=new An),a||Ea(i)?yd(i,e,t,r,n,s):b8(i,e,l,t,r,n,s);if(!(t&dz)){var m=d&&S8.call(i,"__wrapped__"),g=c&&S8.call(e,"__wrapped__");if(m||g){var x=m?i.value():i,y=g?e.value():e;return s||(s=new An),n(x,y,t,r,s)}}return f?(s||(s=new An),M8(i,e,t,r,n,s)):!1}var dz,N8,E8,vd,cz,S8,A8,k8=T(()=>{nd();cf();w8();T8();pl();xa();ll();Kh();dz=1,N8="[object Arguments]",E8="[object Array]",vd="[object Object]",cz=Object.prototype,S8=cz.hasOwnProperty;A8=uz});function C8(i,e,t,r,n){return i===e?!0:i==null||e==null||!vt(i)&&!vt(e)?i!==i&&e!==e:A8(i,e,t,r,C8,n)}var _8,L8=T(()=>{k8();Or();_8=C8});function fz(i){return function(e,t,r){for(var n=-1,s=Object(e),a=r(e),o=a.length;o--;){var l=a[i?o:++n];if(t(s[l],l,s)===!1)break}return e}}var I8,z8=T(()=>{I8=fz});var mz,R8,D8=T(()=>{z8();mz=I8(),R8=mz});function pz(i,e,t){(t!==void 0&&!pr(i[e],t)||t===void 0&&!(e in i))&&ba(i,e,t)}var gl,ff=T(()=>{jh();wa();gl=pz});function gz(i){return vt(i)&&Mn(i)}var O8,B8=T(()=>{al();Or();O8=gz});function xz(i,e){if(!(e==="constructor"&&typeof i[e]=="function")&&e!="__proto__")return i[e]}var xl,mf=T(()=>{xl=xz});function yz(i){return gr(i,xr(i))}var P8,F8=T(()=>{Ma();Aa();P8=yz});function vz(i,e,t,r,n,s,a){var o=xl(i,t),l=xl(e,t),h=a.get(l);if(h){gl(i,t,h);return}var d=s?s(o,l,t+"",i,e,a):void 0,c=d===void 0;if(c){var f=Li(l),m=!f&&Fr(l),g=!f&&!m&&Ea(l);d=l,f||m||g?Li(o)?d=o:O8(o)?d=Uh(o):m?(c=!1,d=sd(l,!0)):g?(c=!1,d=md(l,!0)):d=[]:Y5(l)||ol(l)?(d=o,ol(o)?d=P8(o):(!Nt(o)||ya(o))&&(d=pd(l))):c=!1}c&&(a.set(l,d),n(d,l,r,s,a),a.delete(l)),gl(i,t,d)}var q8,H8=T(()=>{ff();rf();hf();$1();df();X1();xa();B8();ll();Fh();Br();X5();Kh();mf();F8();q8=vz});function U8(i,e,t,r,n){i!==e&&R8(e,function(s,a){if(n||(n=new An),Nt(s))q8(i,e,a,t,U8,r,n);else{var o=r?r(xl(i,a),s,a+"",i,e,n):void 0;o===void 0&&(o=s),gl(i,a,o)}},xr)}var $8,j8=T(()=>{nd();ff();D8();H8();Br();Aa();mf();$8=U8});function bz(i,e){return _8(i,e)}var ys,G8=T(()=>{L8();ys=bz});var wz,ri,V8=T(()=>{j8();Vg();wz=Gg(function(i,e,t){$8(i,e,t)}),ri=wz});var kn=T(()=>{n8();G8();V8();});var bl={};tt(bl,{Attributor:()=>qt,AttributorStore:()=>yl,BlockBlot:()=>vs,ClassAttributor:()=>ht,ContainerBlot:()=>qa,EmbedBlot:()=>Ke,InlineBlot:()=>bd,LeafBlot:()=>dt,ParentBlot:()=>ni,Registry:()=>Ln,Scope:()=>X,ScrollBlot:()=>vl,StyleAttributor:()=>si,TextBlot:()=>Ha});function W8(i,e){return(i.getAttribute("class")||"").split(/\s+/).filter(t=>t.indexOf(`${e}-`)===0)}function pf(i){let e=i.split("-"),t=e.slice(1).map(r=>r[0].toUpperCase()+r.slice(1)).join("");return e[0]+t}function Y8(i,e){let t=e.find(i);if(t)return t;try{return e.create(i)}catch{let r=e.create(X.INLINE);return Array.from(i.childNodes).forEach(n=>{r.domNode.appendChild(n)}),i.parentNode&&i.parentNode.replaceChild(r.domNode,i),r.attach(),r}}function Nz(i,e){if(Object.keys(i).length!==Object.keys(e).length)return!1;for(let t in i)if(i[t]!==e[t])return!1;return!0}var X,qt,_n,X8,Ln,xf,ht,yf,si,vf,yl,K8,Z8,Q8,Mz,dt,bf,J8,Tz,ni,Oa,Ez,bd,Pa,Sz,vs,Mf,Az,qa,Tf,Ke,kz,Cz,Fa,_z,vl,Nf,Lz,Ha,Re=T(()=>{X=(i=>(i[i.TYPE=3]="TYPE",i[i.LEVEL=12]="LEVEL",i[i.ATTRIBUTE=13]="ATTRIBUTE",i[i.BLOT=14]="BLOT",i[i.INLINE=7]="INLINE",i[i.BLOCK=11]="BLOCK",i[i.BLOCK_BLOT=10]="BLOCK_BLOT",i[i.INLINE_BLOT=6]="INLINE_BLOT",i[i.BLOCK_ATTRIBUTE=9]="BLOCK_ATTRIBUTE",i[i.INLINE_ATTRIBUTE=5]="INLINE_ATTRIBUTE",i[i.ANY=15]="ANY",i))(X||{}),qt=class{constructor(e,t,r={}){this.attrName=e,this.keyName=t;let n=X.TYPE&X.ATTRIBUTE;this.scope=r.scope!=null?r.scope&X.LEVEL|n:X.ATTRIBUTE,r.whitelist!=null&&(this.whitelist=r.whitelist)}static keys(e){return Array.from(e.attributes).map(t=>t.name)}add(e,t){return this.canAdd(e,t)?(e.setAttribute(this.keyName,t),!0):!1}canAdd(e,t){return this.whitelist==null?!0:typeof t=="string"?this.whitelist.indexOf(t.replace(/["']/g,""))>-1:this.whitelist.indexOf(t)>-1}remove(e){e.removeAttribute(this.keyName)}value(e){let t=e.getAttribute(this.keyName);return this.canAdd(e,t)&&t?t:""}},_n=class extends Error{constructor(e){e="[Parchment] "+e,super(e),this.message=e,this.name=this.constructor.name}},X8=class gf{constructor(){this.attributes={},this.classes={},this.tags={},this.types={}}static find(e,t=!1){if(e==null)return null;if(this.blots.has(e))return this.blots.get(e)||null;if(t){let r=null;try{r=e.parentNode}catch{return null}return this.find(r,t)}return null}create(e,t,r){let n=this.query(t);if(n==null)throw new _n(`Unable to create ${t} blot`);let s=n,a=t instanceof Node||t.nodeType===Node.TEXT_NODE?t:s.create(r),o=new s(e,a,r);return gf.blots.set(o.domNode,o),o}find(e,t=!1){return gf.find(e,t)}query(e,t=X.ANY){let r;return typeof e=="string"?r=this.types[e]||this.attributes[e]:e instanceof Text||e.nodeType===Node.TEXT_NODE?r=this.types.text:typeof e=="number"?e&X.LEVEL&X.BLOCK?r=this.types.block:e&X.LEVEL&X.INLINE&&(r=this.types.inline):e instanceof Element&&((e.getAttribute("class")||"").split(/\s+/).some(n=>(r=this.classes[n],!!r)),r=r||this.tags[e.tagName]),r==null?null:"scope"in r&&t&X.LEVEL&r.scope&&t&X.TYPE&r.scope?r:null}register(...e){return e.map(t=>{let r="blotName"in t,n="attrName"in t;if(!r&&!n)throw new _n("Invalid definition");if(r&&t.blotName==="abstract")throw new _n("Cannot register abstract class");let s=r?t.blotName:n?t.attrName:void 0;return this.types[s]=t,n?typeof t.keyName=="string"&&(this.attributes[t.keyName]=t):r&&(t.className&&(this.classes[t.className]=t),t.tagName&&(Array.isArray(t.tagName)?t.tagName=t.tagName.map(a=>a.toUpperCase()):t.tagName=t.tagName.toUpperCase(),(Array.isArray(t.tagName)?t.tagName:[t.tagName]).forEach(a=>{(this.tags[a]==null||t.className==null)&&(this.tags[a]=t)}))),t})}};X8.blots=new WeakMap;Ln=X8;xf=class extends qt{static keys(e){return(e.getAttribute("class")||"").split(/\s+/).map(t=>t.split("-").slice(0,-1).join("-"))}add(e,t){return this.canAdd(e,t)?(this.remove(e),e.classList.add(`${this.keyName}-${t}`),!0):!1}remove(e){W8(e,this.keyName).forEach(t=>{e.classList.remove(t)}),e.classList.length===0&&e.removeAttribute("class")}value(e){let t=(W8(e,this.keyName)[0]||"").slice(this.keyName.length+1);return this.canAdd(e,t)?t:""}},ht=xf;yf=class extends qt{static keys(e){return(e.getAttribute("style")||"").split(";").map(t=>t.split(":")[0].trim())}add(e,t){return this.canAdd(e,t)?(e.style[pf(this.keyName)]=t,!0):!1}remove(e){e.style[pf(this.keyName)]="",e.getAttribute("style")||e.removeAttribute("style")}value(e){let t=e.style[pf(this.keyName)];return this.canAdd(e,t)?t:""}},si=yf,vf=class{constructor(e){this.attributes={},this.domNode=e,this.build()}attribute(e,t){t?e.add(this.domNode,t)&&(e.value(this.domNode)!=null?this.attributes[e.attrName]=e:delete this.attributes[e.attrName]):(e.remove(this.domNode),delete this.attributes[e.attrName])}build(){this.attributes={};let e=Ln.find(this.domNode);if(e==null)return;let t=qt.keys(this.domNode),r=ht.keys(this.domNode),n=si.keys(this.domNode);t.concat(r).concat(n).forEach(s=>{let a=e.scroll.query(s,X.ATTRIBUTE);a instanceof qt&&(this.attributes[a.attrName]=a)})}copy(e){Object.keys(this.attributes).forEach(t=>{let r=this.attributes[t].value(this.domNode);e.format(t,r)})}move(e){this.copy(e),Object.keys(this.attributes).forEach(t=>{this.attributes[t].remove(this.domNode)}),this.attributes={}}values(){return Object.keys(this.attributes).reduce((e,t)=>(e[t]=this.attributes[t].value(this.domNode),e),{})}},yl=vf,K8=class{constructor(e,t){this.scroll=e,this.domNode=t,Ln.blots.set(t,this),this.prev=null,this.next=null}static create(e){if(this.tagName==null)throw new _n("Blot definition missing tagName");let t,r;return Array.isArray(this.tagName)?(typeof e=="string"?(r=e.toUpperCase(),parseInt(r,10).toString()===r&&(r=parseInt(r,10))):typeof e=="number"&&(r=e),typeof r=="number"?t=document.createElement(this.tagName[r-1]):r&&this.tagName.indexOf(r)>-1?t=document.createElement(r):t=document.createElement(this.tagName[0])):t=document.createElement(this.tagName),this.className&&t.classList.add(this.className),t}get statics(){return this.constructor}attach(){}clone(){let e=this.domNode.cloneNode(!1);return this.scroll.create(e)}detach(){this.parent!=null&&this.parent.removeChild(this),Ln.blots.delete(this.domNode)}deleteAt(e,t){this.isolate(e,t).remove()}formatAt(e,t,r,n){let s=this.isolate(e,t);if(this.scroll.query(r,X.BLOT)!=null&&n)s.wrap(r,n);else if(this.scroll.query(r,X.ATTRIBUTE)!=null){let a=this.scroll.create(this.statics.scope);s.wrap(a),a.format(r,n)}}insertAt(e,t,r){let n=r==null?this.scroll.create("text",t):this.scroll.create(t,r),s=this.split(e);this.parent.insertBefore(n,s||void 0)}isolate(e,t){let r=this.split(e);if(r==null)throw new Error("Attempt to isolate at end");return r.split(t),r}length(){return 1}offset(e=this.parent){return this.parent==null||this===e?0:this.parent.children.offset(this)+this.parent.offset(e)}optimize(e){this.statics.requiredContainer&&!(this.parent instanceof this.statics.requiredContainer)&&this.wrap(this.statics.requiredContainer.blotName)}remove(){this.domNode.parentNode!=null&&this.domNode.parentNode.removeChild(this.domNode),this.detach()}replaceWith(e,t){let r=typeof e=="string"?this.scroll.create(e,t):e;return this.parent!=null&&(this.parent.insertBefore(r,this.next||void 0),this.remove()),r}split(e,t){return e===0?this:this.next}update(e,t){}wrap(e,t){let r=typeof e=="string"?this.scroll.create(e,t):e;if(this.parent!=null&&this.parent.insertBefore(r,this.next||void 0),typeof r.appendChild!="function")throw new _n(`Cannot wrap ${e}`);return r.appendChild(this),r}};K8.blotName="abstract";Z8=K8,Q8=class extends Z8{static value(e){return!0}index(e,t){return this.domNode===e||this.domNode.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_CONTAINED_BY?Math.min(t,1):-1}position(e,t){let r=Array.from(this.parent.domNode.childNodes).indexOf(this.domNode);return e>0&&(r+=1),[this.parent.domNode,r]}value(){return{[this.statics.blotName]:this.statics.value(this.domNode)||!0}}};Q8.scope=X.INLINE_BLOT;Mz=Q8,dt=Mz,bf=class{constructor(){this.head=null,this.tail=null,this.length=0}append(...e){if(this.insertBefore(e[0],null),e.length>1){let t=e.slice(1);this.append(...t)}}at(e){let t=this.iterator(),r=t();for(;r&&e>0;)e-=1,r=t();return r}contains(e){let t=this.iterator(),r=t();for(;r;){if(r===e)return!0;r=t()}return!1}indexOf(e){let t=this.iterator(),r=t(),n=0;for(;r;){if(r===e)return n;n+=1,r=t()}return-1}insertBefore(e,t){e!=null&&(this.remove(e),e.next=t,t!=null?(e.prev=t.prev,t.prev!=null&&(t.prev.next=e),t.prev=e,t===this.head&&(this.head=e)):this.tail!=null?(this.tail.next=e,e.prev=this.tail,this.tail=e):(e.prev=null,this.head=this.tail=e),this.length+=1)}offset(e){let t=0,r=this.head;for(;r!=null;){if(r===e)return t;t+=r.length(),r=r.next}return-1}remove(e){this.contains(e)&&(e.prev!=null&&(e.prev.next=e.next),e.next!=null&&(e.next.prev=e.prev),e===this.head&&(this.head=e.next),e===this.tail&&(this.tail=e.prev),this.length-=1)}iterator(e=this.head){return()=>{let t=e;return e!=null&&(e=e.next),t}}find(e,t=!1){let r=this.iterator(),n=r();for(;n;){let s=n.length();if(ea?r(l,e-a,Math.min(t,a+h-e)):r(l,0,Math.min(h,e+t-a)),a+=h,l=o()}}map(e){return this.reduce((t,r)=>(t.push(e(r)),t),[])}reduce(e,t){let r=this.iterator(),n=r();for(;n;)t=e(t,n),n=r();return t}};J8=class Cn extends Z8{constructor(e,t){super(e,t),this.uiNode=null,this.build()}appendChild(e){this.insertBefore(e)}attach(){super.attach(),this.children.forEach(e=>{e.attach()})}attachUI(e){this.uiNode!=null&&this.uiNode.remove(),this.uiNode=e,Cn.uiClass&&this.uiNode.classList.add(Cn.uiClass),this.uiNode.setAttribute("contenteditable","false"),this.domNode.insertBefore(this.uiNode,this.domNode.firstChild)}build(){this.children=new bf,Array.from(this.domNode.childNodes).filter(e=>e!==this.uiNode).reverse().forEach(e=>{try{let t=Y8(e,this.scroll);this.insertBefore(t,this.children.head||void 0)}catch(t){if(t instanceof _n)return;throw t}})}deleteAt(e,t){if(e===0&&t===this.length())return this.remove();this.children.forEachAt(e,t,(r,n,s)=>{r.deleteAt(n,s)})}descendant(e,t=0){let[r,n]=this.children.find(t);return e.blotName==null&&e(r)||e.blotName!=null&&r instanceof e?[r,n]:r instanceof Cn?r.descendant(e,n):[null,-1]}descendants(e,t=0,r=Number.MAX_VALUE){let n=[],s=r;return this.children.forEachAt(t,r,(a,o,l)=>{(e.blotName==null&&e(a)||e.blotName!=null&&a instanceof e)&&n.push(a),a instanceof Cn&&(n=n.concat(a.descendants(e,o,s))),s-=l}),n}detach(){this.children.forEach(e=>{e.detach()}),super.detach()}enforceAllowedChildren(){let e=!1;this.children.forEach(t=>{e||this.statics.allowedChildren.some(r=>t instanceof r)||(t.statics.scope===X.BLOCK_BLOT?(t.next!=null&&this.splitAfter(t),t.prev!=null&&this.splitAfter(t.prev),t.parent.unwrap(),e=!0):t instanceof Cn?t.unwrap():t.remove())})}formatAt(e,t,r,n){this.children.forEachAt(e,t,(s,a,o)=>{s.formatAt(a,o,r,n)})}insertAt(e,t,r){let[n,s]=this.children.find(e);if(n)n.insertAt(s,t,r);else{let a=r==null?this.scroll.create("text",t):this.scroll.create(t,r);this.appendChild(a)}}insertBefore(e,t){e.parent!=null&&e.parent.children.remove(e);let r=null;this.children.insertBefore(e,t||null),e.parent=this,t!=null&&(r=t.domNode),(this.domNode.parentNode!==e.domNode||this.domNode.nextSibling!==r)&&this.domNode.insertBefore(e.domNode,r),e.attach()}length(){return this.children.reduce((e,t)=>e+t.length(),0)}moveChildren(e,t){this.children.forEach(r=>{e.insertBefore(r,t)})}optimize(e){if(super.optimize(e),this.enforceAllowedChildren(),this.uiNode!=null&&this.uiNode!==this.domNode.firstChild&&this.domNode.insertBefore(this.uiNode,this.domNode.firstChild),this.children.length===0)if(this.statics.defaultChild!=null){let t=this.scroll.create(this.statics.defaultChild.blotName);this.appendChild(t)}else this.remove()}path(e,t=!1){let[r,n]=this.children.find(e,t),s=[[this,e]];return r instanceof Cn?s.concat(r.path(n,t)):(r!=null&&s.push([r,n]),s)}removeChild(e){this.children.remove(e)}replaceWith(e,t){let r=typeof e=="string"?this.scroll.create(e,t):e;return r instanceof Cn&&this.moveChildren(r),super.replaceWith(r)}split(e,t=!1){if(!t){if(e===0)return this;if(e===this.length())return this.next}let r=this.clone();return this.parent&&this.parent.insertBefore(r,this.next||void 0),this.children.forEachAt(e,this.length(),(n,s,a)=>{let o=n.split(s,t);o!=null&&r.appendChild(o)}),r}splitAfter(e){let t=this.clone();for(;e.next!=null;)t.appendChild(e.next);return this.parent&&this.parent.insertBefore(t,this.next||void 0),t}unwrap(){this.parent&&this.moveChildren(this.parent,this.next||void 0),this.remove()}update(e,t){let r=[],n=[];e.forEach(s=>{s.target===this.domNode&&s.type==="childList"&&(r.push(...s.addedNodes),n.push(...s.removedNodes))}),n.forEach(s=>{if(s.parentNode!=null&&s.tagName!=="IFRAME"&&document.body.compareDocumentPosition(s)&Node.DOCUMENT_POSITION_CONTAINED_BY)return;let a=this.scroll.find(s);a!=null&&(a.domNode.parentNode==null||a.domNode.parentNode===this.domNode)&&a.detach()}),r.filter(s=>s.parentNode===this.domNode&&s!==this.uiNode).sort((s,a)=>s===a?0:s.compareDocumentPosition(a)&Node.DOCUMENT_POSITION_FOLLOWING?1:-1).forEach(s=>{let a=null;s.nextSibling!=null&&(a=this.scroll.find(s.nextSibling));let o=Y8(s,this.scroll);(o.next!==a||o.next==null)&&(o.parent!=null&&o.parent.removeChild(this),this.insertBefore(o,a||void 0))}),this.enforceAllowedChildren()}};J8.uiClass="";Tz=J8,ni=Tz;Oa=class Ba extends ni{static create(e){return super.create(e)}static formats(e,t){let r=t.query(Ba.blotName);if(!(r!=null&&e.tagName===r.tagName)){if(typeof this.tagName=="string")return!0;if(Array.isArray(this.tagName))return e.tagName.toLowerCase()}}constructor(e,t){super(e,t),this.attributes=new yl(this.domNode)}format(e,t){if(e===this.statics.blotName&&!t)this.children.forEach(r=>{r instanceof Ba||(r=r.wrap(Ba.blotName,!0)),this.attributes.copy(r)}),this.unwrap();else{let r=this.scroll.query(e,X.INLINE);if(r==null)return;r instanceof qt?this.attributes.attribute(r,t):t&&(e!==this.statics.blotName||this.formats()[e]!==t)&&this.replaceWith(e,t)}}formats(){let e=this.attributes.values(),t=this.statics.formats(this.domNode,this.scroll);return t!=null&&(e[this.statics.blotName]=t),e}formatAt(e,t,r,n){this.formats()[r]!=null||this.scroll.query(r,X.ATTRIBUTE)?this.isolate(e,t).format(r,n):super.formatAt(e,t,r,n)}optimize(e){super.optimize(e);let t=this.formats();if(Object.keys(t).length===0)return this.unwrap();let r=this.next;r instanceof Ba&&r.prev===this&&Nz(t,r.formats())&&(r.moveChildren(this),r.remove())}replaceWith(e,t){let r=super.replaceWith(e,t);return this.attributes.copy(r),r}update(e,t){super.update(e,t),e.some(r=>r.target===this.domNode&&r.type==="attributes")&&this.attributes.build()}wrap(e,t){let r=super.wrap(e,t);return r instanceof Ba&&this.attributes.move(r),r}};Oa.allowedChildren=[Oa,dt],Oa.blotName="inline",Oa.scope=X.INLINE_BLOT,Oa.tagName="SPAN";Ez=Oa,bd=Ez,Pa=class wf extends ni{static create(e){return super.create(e)}static formats(e,t){let r=t.query(wf.blotName);if(!(r!=null&&e.tagName===r.tagName)){if(typeof this.tagName=="string")return!0;if(Array.isArray(this.tagName))return e.tagName.toLowerCase()}}constructor(e,t){super(e,t),this.attributes=new yl(this.domNode)}format(e,t){let r=this.scroll.query(e,X.BLOCK);r!=null&&(r instanceof qt?this.attributes.attribute(r,t):e===this.statics.blotName&&!t?this.replaceWith(wf.blotName):t&&(e!==this.statics.blotName||this.formats()[e]!==t)&&this.replaceWith(e,t))}formats(){let e=this.attributes.values(),t=this.statics.formats(this.domNode,this.scroll);return t!=null&&(e[this.statics.blotName]=t),e}formatAt(e,t,r,n){this.scroll.query(r,X.BLOCK)!=null?this.format(r,n):super.formatAt(e,t,r,n)}insertAt(e,t,r){if(r==null||this.scroll.query(t,X.INLINE)!=null)super.insertAt(e,t,r);else{let n=this.split(e);if(n!=null){let s=this.scroll.create(t,r);n.parent.insertBefore(s,n)}else throw new Error("Attempt to insertAt after block boundaries")}}replaceWith(e,t){let r=super.replaceWith(e,t);return this.attributes.copy(r),r}update(e,t){super.update(e,t),e.some(r=>r.target===this.domNode&&r.type==="attributes")&&this.attributes.build()}};Pa.blotName="block",Pa.scope=X.BLOCK_BLOT,Pa.tagName="P",Pa.allowedChildren=[bd,Pa,dt];Sz=Pa,vs=Sz,Mf=class extends ni{checkMerge(){return this.next!==null&&this.next.statics.blotName===this.statics.blotName}deleteAt(e,t){super.deleteAt(e,t),this.enforceAllowedChildren()}formatAt(e,t,r,n){super.formatAt(e,t,r,n),this.enforceAllowedChildren()}insertAt(e,t,r){super.insertAt(e,t,r),this.enforceAllowedChildren()}optimize(e){super.optimize(e),this.children.length>0&&this.next!=null&&this.checkMerge()&&(this.next.moveChildren(this),this.next.remove())}};Mf.blotName="container",Mf.scope=X.BLOCK_BLOT;Az=Mf,qa=Az,Tf=class extends dt{static formats(e,t){}format(e,t){super.formatAt(0,this.length(),e,t)}formatAt(e,t,r,n){e===0&&t===this.length()?this.format(r,n):super.formatAt(e,t,r,n)}formats(){return this.statics.formats(this.domNode,this.scroll)}},Ke=Tf,kz={attributes:!0,characterData:!0,characterDataOldValue:!0,childList:!0,subtree:!0},Cz=100,Fa=class extends ni{constructor(e,t){super(null,t),this.registry=e,this.scroll=this,this.build(),this.observer=new MutationObserver(r=>{this.update(r)}),this.observer.observe(this.domNode,kz),this.attach()}create(e,t){return this.registry.create(this,e,t)}find(e,t=!1){let r=this.registry.find(e,t);return r?r.scroll===this?r:t?this.find(r.scroll.domNode.parentNode,!0):null:null}query(e,t=X.ANY){return this.registry.query(e,t)}register(...e){return this.registry.register(...e)}build(){this.scroll!=null&&super.build()}detach(){super.detach(),this.observer.disconnect()}deleteAt(e,t){this.update(),e===0&&t===this.length()?this.children.forEach(r=>{r.remove()}):super.deleteAt(e,t)}formatAt(e,t,r,n){this.update(),super.formatAt(e,t,r,n)}insertAt(e,t,r){this.update(),super.insertAt(e,t,r)}optimize(e=[],t={}){super.optimize(t);let r=t.mutationsMap||new WeakMap,n=Array.from(this.observer.takeRecords());for(;n.length>0;)e.push(n.pop());let s=(l,h=!0)=>{l==null||l===this||l.domNode.parentNode!=null&&(r.has(l.domNode)||r.set(l.domNode,[]),h&&s(l.parent))},a=l=>{r.has(l.domNode)&&(l instanceof ni&&l.children.forEach(a),r.delete(l.domNode),l.optimize(t))},o=e;for(let l=0;o.length>0;l+=1){if(l>=Cz)throw new Error("[Parchment] Maximum optimize iterations reached");for(o.forEach(h=>{let d=this.find(h.target,!0);d!=null&&(d.domNode===h.target&&(h.type==="childList"?(s(this.find(h.previousSibling,!1)),Array.from(h.addedNodes).forEach(c=>{let f=this.find(c,!1);s(f,!1),f instanceof ni&&f.children.forEach(m=>{s(m,!1)})})):h.type==="attributes"&&s(d.prev)),s(d))}),this.children.forEach(a),o=Array.from(this.observer.takeRecords()),n=o.slice();n.length>0;)e.push(n.pop())}}update(e,t={}){e=e||this.observer.takeRecords();let r=new WeakMap;e.map(n=>{let s=this.find(n.target,!0);return s==null?null:r.has(s.domNode)?(r.get(s.domNode).push(n),null):(r.set(s.domNode,[n]),s)}).forEach(n=>{n!=null&&n!==this&&r.has(n.domNode)&&n.update(r.get(n.domNode)||[],t)}),t.mutationsMap=r,r.has(this.domNode)&&super.update(r.get(this.domNode),t),this.optimize(e,t)}};Fa.blotName="scroll",Fa.defaultChild=vs,Fa.allowedChildren=[vs,qa],Fa.scope=X.BLOCK_BLOT,Fa.tagName="DIV";_z=Fa,vl=_z,Nf=class ex extends dt{static create(e){return document.createTextNode(e)}static value(e){return e.data}constructor(e,t){super(e,t),this.text=this.statics.value(this.domNode)}deleteAt(e,t){this.domNode.data=this.text=this.text.slice(0,e)+this.text.slice(e+t)}index(e,t){return this.domNode===e?t:-1}insertAt(e,t,r){r==null?(this.text=this.text.slice(0,e)+t+this.text.slice(e),this.domNode.data=this.text):super.insertAt(e,t,r)}length(){return this.text.length}optimize(e){super.optimize(e),this.text=this.statics.value(this.domNode),this.text.length===0?this.remove():this.next instanceof ex&&this.next.prev===this&&(this.insertAt(this.length(),this.next.value()),this.next.remove())}position(e,t=!1){return[this.domNode,e]}split(e,t=!1){if(!t){if(e===0)return this;if(e===this.length())return this.next}let r=this.scroll.create(this.domNode.splitText(e));return this.parent.insertBefore(r,this.next||void 0),this.text=this.statics.value(this.domNode),r}update(e,t){e.some(r=>r.type==="characterData"&&r.target===this.domNode)&&(this.text=this.statics.value(this.domNode))}value(){return this.text}};Nf.blotName="text",Nf.scope=X.INLINE_BLOT;Lz=Nf,Ha=Lz});var cx=rr((FZ,dx)=>{var mi=-1,Ht=1,ut=0;function wl(i,e,t,r,n){if(i===e)return i?[[ut,i]]:[];if(t!=null){var s=qz(i,e,t);if(s)return s}var a=Sf(i,e),o=i.substring(0,a);i=i.substring(a),e=e.substring(a),a=wd(i,e);var l=i.substring(i.length-a);i=i.substring(0,i.length-a),e=e.substring(0,e.length-a);var h=Iz(i,e);return o&&h.unshift([ut,o]),l&&h.push([ut,l]),Af(h,n),r&&Dz(h),h}function Iz(i,e){var t;if(!i)return[[Ht,e]];if(!e)return[[mi,i]];var r=i.length>e.length?i:e,n=i.length>e.length?e:i,s=r.indexOf(n);if(s!==-1)return t=[[Ht,r.substring(0,s)],[ut,n],[Ht,r.substring(s+n.length)]],i.length>e.length&&(t[0][0]=t[2][0]=mi),t;if(n.length===1)return[[mi,i],[Ht,e]];var a=Rz(i,e);if(a){var o=a[0],l=a[1],h=a[2],d=a[3],c=a[4],f=wl(o,h),m=wl(l,d);return f.concat([[ut,c]],m)}return zz(i,e)}function zz(i,e){for(var t=i.length,r=e.length,n=Math.ceil((t+r)/2),s=n,a=2*n,o=new Array(a),l=new Array(a),h=0;ht)m+=2;else if(C>r)f+=2;else if(c){var I=s+d-b;if(I>=0&&I=O)return tx(i,e,A,C)}}}for(var q=-y+g;q<=y-x;q+=2){var I=s+q,O;q===-y||q!==y&&l[I-1]t)x+=2;else if(P>r)g+=2;else if(!c){var S=s+d-q;if(S>=0&&S=O)return tx(i,e,A,C)}}}}return[[mi,i],[Ht,e]]}function tx(i,e,t,r){var n=i.substring(0,t),s=e.substring(0,r),a=i.substring(t),o=e.substring(r),l=wl(n,s),h=wl(a,o);return l.concat(h)}function Sf(i,e){if(!i||!e||i.charAt(0)!==e.charAt(0))return 0;for(var t=0,r=Math.min(i.length,e.length),n=r,s=0;tr?i=i.substring(t-r):te.length?i:e,r=i.length>e.length?e:i;if(t.length<4||r.length*2=m.length?[A,C,I,O,S]:null}var s=n(t,r,Math.ceil(t.length/4)),a=n(t,r,Math.ceil(t.length/2)),o;if(!s&&!a)return null;a?s?o=s[4].length>a[4].length?s:a:o=a:o=s;var l,h,d,c;i.length>e.length?(l=o[0],h=o[1],d=o[2],c=o[3]):(d=o[0],c=o[1],l=o[2],h=o[3]);var f=o[4];return[l,h,d,c,f]}function Dz(i){for(var e=!1,t=[],r=0,n=null,s=0,a=0,o=0,l=0,h=0;s0?t[r-1]:-1,a=0,o=0,l=0,h=0,n=null,e=!0)),s++;for(e&&Af(i),Pz(i),s=1;s=m?(f>=d.length/2||f>=c.length/2)&&(i.splice(s,0,[ut,c.substring(0,f)]),i[s-1][1]=d.substring(0,d.length-f),i[s+1][1]=c.substring(f),s++):(m>=d.length/2||m>=c.length/2)&&(i.splice(s,0,[ut,d.substring(0,m)]),i[s-1][0]=Ht,i[s-1][1]=c.substring(0,c.length-m),i[s+1][0]=mi,i[s+1][1]=d.substring(m),s++),s++}s++}}var rx=/[^a-zA-Z0-9]/,nx=/\s/,sx=/[\r\n]/,Oz=/\n\r?\n$/,Bz=/^\r?\n\r?\n/;function Pz(i){function e(m,g){if(!m||!g)return 6;var x=m.charAt(m.length-1),y=g.charAt(0),b=x.match(rx),S=y.match(rx),A=b&&x.match(nx),C=S&&y.match(nx),I=A&&x.match(sx),O=C&&y.match(sx),q=I&&m.match(Oz),P=O&&g.match(Bz);return q||P?5:I||O?4:b&&!A&&C?3:A||C?2:b||S?1:0}for(var t=1;t=c&&(c=f,l=r,h=n,d=s)}i[t-1][1]!=l&&(l?i[t-1][1]=l:(i.splice(t-1,1),t--),i[t][1]=h,d?i[t+1][1]=d:(i.splice(t+1,1),t--))}t++}}function Af(i,e){i.push([ut,""]);for(var t=0,r=0,n=0,s="",a="",o;t=0&&hx(i[l][1])){var h=i[l][1].slice(-1);if(i[l][1]=i[l][1].slice(0,-1),s=h+s,a=h+a,!i[l][1]){i.splice(l,1),t--;var d=l-1;i[d]&&i[d][0]===Ht&&(n++,a=i[d][1]+a,d--),i[d]&&i[d][0]===mi&&(r++,s=i[d][1]+s,d--),l=d}}if(lx(i[t][1])){var h=i[t][1].charAt(0);i[t][1]=i[t][1].slice(1),s+=h,a+=h}}if(t0||a.length>0){s.length>0&&a.length>0&&(o=Sf(a,s),o!==0&&(l>=0?i[l][1]+=a.substring(0,o):(i.splice(0,0,[ut,a.substring(0,o)]),t++),a=a.substring(o),s=s.substring(o)),o=wd(a,s),o!==0&&(i[t][1]=a.substring(a.length-o)+i[t][1],a=a.substring(0,a.length-o),s=s.substring(0,s.length-o)));var c=n+r;s.length===0&&a.length===0?(i.splice(t-c,c),t=t-c):s.length===0?(i.splice(t-c,c,[Ht,a]),t=t-c+1):a.length===0?(i.splice(t-c,c,[mi,s]),t=t-c+1):(i.splice(t-c,c,[mi,s],[Ht,a]),t=t-c+2)}t!==0&&i[t-1][0]===ut?(i[t-1][1]+=i[t][1],i.splice(t,1)):t++,n=0,r=0,s="",a="";break}}i[i.length-1][1]===""&&i.pop();var f=!1;for(t=1;t=55296&&i<=56319}function ox(i){return i>=56320&&i<=57343}function lx(i){return ox(i.charCodeAt(0))}function hx(i){return ax(i.charCodeAt(i.length-1))}function Fz(i){for(var e=[],t=0;t0&&e.push(i[t]);return e}function Ef(i,e,t,r){return hx(i)||lx(r)?null:Fz([[ut,i],[mi,e],[Ht,t],[ut,r]])}function qz(i,e,t){var r=typeof t=="number"?{index:t,length:0}:t.oldRange,n=typeof t=="number"?null:t.newRange,s=i.length,a=e.length;if(r.length===0&&(n===null||n.length===0)){var o=r.index,l=i.slice(0,o),h=i.slice(o),d=n?n.index:null;e:{var c=o+a-s;if(d!==null&&d!==c||c<0||c>a)break e;var f=e.slice(0,c),m=e.slice(c);if(m!==h)break e;var g=Math.min(o,c),x=l.slice(0,g),y=f.slice(0,g);if(x!==y)break e;var b=l.slice(g),S=f.slice(g);return Ef(x,b,S,h)}e:{if(d!==null&&d!==o)break e;var A=o,f=e.slice(0,A),m=e.slice(A);if(f!==l)break e;var C=Math.min(s-A,a-A),I=h.slice(h.length-C),O=m.slice(m.length-C);if(I!==O)break e;var b=h.slice(0,h.length-C),S=m.slice(0,m.length-C);return Ef(l,b,S,I)}}if(r.length>0&&n&&n.length===0)e:{var x=i.slice(0,r.index),I=i.slice(r.index+r.length),g=x.length,C=I.length;if(a{var Hz=200,Tx="__lodash_hash_undefined__",Nx=9007199254740991,Df="[object Arguments]",Uz="[object Array]",Ex="[object Boolean]",Sx="[object Date]",$z="[object Error]",Of="[object Function]",Ax="[object GeneratorFunction]",Td="[object Map]",kx="[object Number]",Bf="[object Object]",ux="[object Promise]",Cx="[object RegExp]",Nd="[object Set]",_x="[object String]",Lx="[object Symbol]",Cf="[object WeakMap]",Ix="[object ArrayBuffer]",Ed="[object DataView]",zx="[object Float32Array]",Rx="[object Float64Array]",Dx="[object Int8Array]",Ox="[object Int16Array]",Bx="[object Int32Array]",Px="[object Uint8Array]",Fx="[object Uint8ClampedArray]",qx="[object Uint16Array]",Hx="[object Uint32Array]",jz=/[\\^$.*+?()[\]{}|]/g,Gz=/\w*$/,Vz=/^\[object .+?Constructor\]$/,Wz=/^(?:0|[1-9]\d*)$/,Pe={};Pe[Df]=Pe[Uz]=Pe[Ix]=Pe[Ed]=Pe[Ex]=Pe[Sx]=Pe[zx]=Pe[Rx]=Pe[Dx]=Pe[Ox]=Pe[Bx]=Pe[Td]=Pe[kx]=Pe[Bf]=Pe[Cx]=Pe[Nd]=Pe[_x]=Pe[Lx]=Pe[Px]=Pe[Fx]=Pe[qx]=Pe[Hx]=!0;Pe[$z]=Pe[Of]=Pe[Cf]=!1;var Yz=typeof global=="object"&&global&&global.Object===Object&&global,Xz=typeof self=="object"&&self&&self.Object===Object&&self,$r=Yz||Xz||Function("return this")(),Ux=typeof Ml=="object"&&Ml&&!Ml.nodeType&&Ml,fx=Ux&&typeof Ua=="object"&&Ua&&!Ua.nodeType&&Ua,Kz=fx&&fx.exports===Ux;function Zz(i,e){return i.set(e[0],e[1]),i}function Qz(i,e){return i.add(e),i}function Jz(i,e){for(var t=-1,r=i?i.length:0;++t-1}function SR(i,e){var t=this.__data__,r=kd(t,i);return r<0?t.push([i,e]):t[r][1]=e,this}jr.prototype.clear=MR;jr.prototype.delete=TR;jr.prototype.get=NR;jr.prototype.has=ER;jr.prototype.set=SR;function $a(i){var e=-1,t=i?i.length:0;for(this.clear();++e-1&&i%1==0&&i-1&&i%1==0&&i<=Nx}function _d(i){var e=typeof i;return!!i&&(e=="object"||e=="function")}function cD(i){return!!i&&typeof i=="object"}function Hf(i){return Zx(i)?BR(i):$R(i)}function uD(){return[]}function fD(){return!1}Ua.exports=aD});var em=rr((El,Wa)=>{var mD=200,Jf="__lodash_hash_undefined__",Pd=1,d9=2,c9=9007199254740991,Ld="[object Arguments]",Vf="[object Array]",pD="[object AsyncFunction]",u9="[object Boolean]",f9="[object Date]",m9="[object Error]",p9="[object Function]",gD="[object GeneratorFunction]",Id="[object Map]",g9="[object Number]",xD="[object Null]",Va="[object Object]",Jx="[object Promise]",yD="[object Proxy]",x9="[object RegExp]",zd="[object Set]",y9="[object String]",vD="[object Symbol]",bD="[object Undefined]",Wf="[object WeakMap]",v9="[object ArrayBuffer]",Rd="[object DataView]",wD="[object Float32Array]",MD="[object Float64Array]",TD="[object Int8Array]",ND="[object Int16Array]",ED="[object Int32Array]",SD="[object Uint8Array]",AD="[object Uint8ClampedArray]",kD="[object Uint16Array]",CD="[object Uint32Array]",_D=/[\\^$.*+?()[\]{}|]/g,LD=/^\[object .+?Constructor\]$/,ID=/^(?:0|[1-9]\d*)$/,Ue={};Ue[wD]=Ue[MD]=Ue[TD]=Ue[ND]=Ue[ED]=Ue[SD]=Ue[AD]=Ue[kD]=Ue[CD]=!0;Ue[Ld]=Ue[Vf]=Ue[v9]=Ue[u9]=Ue[Rd]=Ue[f9]=Ue[m9]=Ue[p9]=Ue[Id]=Ue[g9]=Ue[Va]=Ue[x9]=Ue[zd]=Ue[y9]=Ue[Wf]=!1;var b9=typeof global=="object"&&global&&global.Object===Object&&global,zD=typeof self=="object"&&self&&self.Object===Object&&self,Gr=b9||zD||Function("return this")(),w9=typeof El=="object"&&El&&!El.nodeType&&El,e9=w9&&typeof Wa=="object"&&Wa&&!Wa.nodeType&&Wa,M9=e9&&e9.exports===w9,$f=M9&&b9.process,t9=(function(){try{return $f&&$f.binding&&$f.binding("util")}catch{}})(),i9=t9&&t9.isTypedArray;function RD(i,e){for(var t=-1,r=i==null?0:i.length,n=0,s=[];++t-1}function dO(i,e){var t=this.__data__,r=qd(t,i);return r<0?(++this.size,t.push([i,e])):t[r][1]=e,this}Vr.prototype.clear=aO;Vr.prototype.delete=oO;Vr.prototype.get=lO;Vr.prototype.has=hO;Vr.prototype.set=dO;function Es(i){var e=-1,t=i==null?0:i.length;for(this.clear();++eo))return!1;var h=s.get(i);if(h&&s.get(e))return h==e;var d=-1,c=!0,f=t&d9?new Od:void 0;for(s.set(i,e),s.set(e,i);++d-1&&i%1==0&&i-1&&i%1==0&&i<=c9}function L9(i){var e=typeof i;return i!=null&&(e=="object"||e=="function")}function kl(i){return i!=null&&typeof i=="object"}var I9=i9?PD(i9):AO;function HO(i){return FO(i)?TO(i):kO(i)}function UO(){return[]}function $O(){return!1}Wa.exports=qO});var z9=rr(im=>{"use strict";Object.defineProperty(im,"__esModule",{value:!0});var jO=Uf(),GO=em(),tm;(function(i){function e(s={},a={},o=!1){typeof s!="object"&&(s={}),typeof a!="object"&&(a={});let l=jO(a);o||(l=Object.keys(l).reduce((h,d)=>(l[d]!=null&&(h[d]=l[d]),h),{}));for(let h in s)s[h]!==void 0&&a[h]===void 0&&(l[h]=s[h]);return Object.keys(l).length>0?l:void 0}i.compose=e;function t(s={},a={}){typeof s!="object"&&(s={}),typeof a!="object"&&(a={});let o=Object.keys(s).concat(Object.keys(a)).reduce((l,h)=>(GO(s[h],a[h])||(l[h]=a[h]===void 0?null:a[h]),l),{});return Object.keys(o).length>0?o:void 0}i.diff=t;function r(s={},a={}){s=s||{};let o=Object.keys(a).reduce((l,h)=>(a[h]!==s[h]&&s[h]!==void 0&&(l[h]=a[h]),l),{});return Object.keys(s).reduce((l,h)=>(s[h]!==a[h]&&a[h]===void 0&&(l[h]=null),l),o)}i.invert=r;function n(s,a,o=!1){if(typeof s!="object")return a;if(typeof a!="object")return;if(!o)return a;let l=Object.keys(a).reduce((h,d)=>(s[d]===void 0&&(h[d]=a[d]),h),{});return Object.keys(l).length>0?l:void 0}i.transform=n})(tm||(tm={}));im.default=tm});var sm=rr(nm=>{"use strict";Object.defineProperty(nm,"__esModule",{value:!0});var rm;(function(i){function e(t){return typeof t.delete=="number"?t.delete:typeof t.retain=="number"?t.retain:typeof t.retain=="object"&&t.retain!==null?1:typeof t.insert=="string"?t.insert.length:1}i.length=e})(rm||(rm={}));nm.default=rm});var D9=rr(om=>{"use strict";Object.defineProperty(om,"__esModule",{value:!0});var R9=sm(),am=class{constructor(e){this.ops=e,this.index=0,this.offset=0}hasNext(){return this.peekLength()<1/0}next(e){e||(e=1/0);let t=this.ops[this.index];if(t){let r=this.offset,n=R9.default.length(t);if(e>=n-r?(e=n-r,this.index+=1,this.offset=0):this.offset+=e,typeof t.delete=="number")return{delete:e};{let s={};return t.attributes&&(s.attributes=t.attributes),typeof t.retain=="number"?s.retain=e:typeof t.retain=="object"&&t.retain!==null?s.retain=t.retain:typeof t.insert=="string"?s.insert=t.insert.substr(r,e):s.insert=t.insert,s}}else return{retain:1/0}}peek(){return this.ops[this.index]}peekLength(){return this.ops[this.index]?R9.default.length(this.ops[this.index])-this.offset:1/0}peekType(){let e=this.ops[this.index];return e?typeof e.delete=="number"?"delete":typeof e.retain=="number"||typeof e.retain=="object"&&e.retain!==null?"retain":"insert":"retain"}rest(){if(this.hasNext()){if(this.offset===0)return this.ops.slice(this.index);{let e=this.offset,t=this.index,r=this.next(),n=this.ops.slice(this.index);return this.offset=e,this.index=t,[r].concat(n)}}else return[]}};om.default=am});var pi=rr((Yr,$d)=>{"use strict";Object.defineProperty(Yr,"__esModule",{value:!0});Yr.AttributeMap=Yr.OpIterator=Yr.Op=void 0;var Ud=cx(),VO=Uf(),lm=em(),As=z9();Yr.AttributeMap=As.default;var Wr=sm();Yr.Op=Wr.default;var Ii=D9();Yr.OpIterator=Ii.default;var WO="\0",O9=(i,e)=>{if(typeof i!="object"||i===null)throw new Error(`cannot retain a ${typeof i}`);if(typeof e!="object"||e===null)throw new Error(`cannot retain a ${typeof e}`);let t=Object.keys(i)[0];if(!t||t!==Object.keys(e)[0])throw new Error(`embed types not matched: ${t} != ${Object.keys(e)[0]}`);return[t,i[t],e[t]]},Xr=class i{constructor(e){Array.isArray(e)?this.ops=e:e!=null&&Array.isArray(e.ops)?this.ops=e.ops:this.ops=[]}static registerEmbed(e,t){this.handlers[e]=t}static unregisterEmbed(e){delete this.handlers[e]}static getHandler(e){let t=this.handlers[e];if(!t)throw new Error(`no handlers for embed type "${e}"`);return t}insert(e,t){let r={};return typeof e=="string"&&e.length===0?this:(r.insert=e,t!=null&&typeof t=="object"&&Object.keys(t).length>0&&(r.attributes=t),this.push(r))}delete(e){return e<=0?this:this.push({delete:e})}retain(e,t){if(typeof e=="number"&&e<=0)return this;let r={retain:e};return t!=null&&typeof t=="object"&&Object.keys(t).length>0&&(r.attributes=t),this.push(r)}push(e){let t=this.ops.length,r=this.ops[t-1];if(e=VO(e),typeof r=="object"){if(typeof e.delete=="number"&&typeof r.delete=="number")return this.ops[t-1]={delete:r.delete+e.delete},this;if(typeof r.delete=="number"&&e.insert!=null&&(t-=1,r=this.ops[t-1],typeof r!="object"))return this.ops.unshift(e),this;if(lm(e.attributes,r.attributes)){if(typeof e.insert=="string"&&typeof r.insert=="string")return this.ops[t-1]={insert:r.insert+e.insert},typeof e.attributes=="object"&&(this.ops[t-1].attributes=e.attributes),this;if(typeof e.retain=="number"&&typeof r.retain=="number")return this.ops[t-1]={retain:r.retain+e.retain},typeof e.attributes=="object"&&(this.ops[t-1].attributes=e.attributes),this}}return t===this.ops.length?this.ops.push(e):this.ops.splice(t,0,e),this}chop(){let e=this.ops[this.ops.length-1];return e&&typeof e.retain=="number"&&!e.attributes&&this.ops.pop(),this}filter(e){return this.ops.filter(e)}forEach(e){this.ops.forEach(e)}map(e){return this.ops.map(e)}partition(e){let t=[],r=[];return this.forEach(n=>{(e(n)?t:r).push(n)}),[t,r]}reduce(e,t){return this.ops.reduce(e,t)}changeLength(){return this.reduce((e,t)=>t.insert?e+Wr.default.length(t):t.delete?e-t.delete:e,0)}length(){return this.reduce((e,t)=>e+Wr.default.length(t),0)}slice(e=0,t=1/0){let r=[],n=new Ii.default(this.ops),s=0;for(;s0&&r.next(s.retain-o)}let a=new i(n);for(;t.hasNext()||r.hasNext();)if(r.peekType()==="insert")a.push(r.next());else if(t.peekType()==="delete")a.push(t.next());else{let o=Math.min(t.peekLength(),r.peekLength()),l=t.next(o),h=r.next(o);if(h.retain){let d={};if(typeof l.retain=="number")d.retain=typeof h.retain=="number"?o:h.retain;else if(typeof h.retain=="number")l.retain==null?d.insert=l.insert:d.retain=l.retain;else{let f=l.retain==null?"insert":"retain",[m,g,x]=O9(l[f],h.retain),y=i.getHandler(m);d[f]={[m]:y.compose(g,x,f==="retain")}}let c=As.default.compose(l.attributes,h.attributes,typeof l.retain=="number");if(c&&(d.attributes=c),a.push(d),!r.hasNext()&&lm(a.ops[a.ops.length-1],d)){let f=new i(t.rest());return a.concat(f).chop()}}else typeof h.delete=="number"&&(typeof l.retain=="number"||typeof l.retain=="object"&&l.retain!==null)&&a.push(h)}return a.chop()}concat(e){let t=new i(this.ops.slice());return e.ops.length>0&&(t.push(e.ops[0]),t.ops=t.ops.concat(e.ops.slice(1))),t}diff(e,t){if(this.ops===e.ops)return new i;let r=[this,e].map(l=>l.map(h=>{if(h.insert!=null)return typeof h.insert=="string"?h.insert:WO;let d=l===e?"on":"with";throw new Error("diff() called "+d+" non-document")}).join("")),n=new i,s=Ud(r[0],r[1],t,!0),a=new Ii.default(this.ops),o=new Ii.default(e.ops);return s.forEach(l=>{let h=l[1].length;for(;h>0;){let d=0;switch(l[0]){case Ud.INSERT:d=Math.min(o.peekLength(),h),n.push(o.next(d));break;case Ud.DELETE:d=Math.min(h,a.peekLength()),a.next(d),n.delete(d);break;case Ud.EQUAL:d=Math.min(a.peekLength(),o.peekLength(),h);let c=a.next(d),f=o.next(d);lm(c.insert,f.insert)?n.retain(d,As.default.diff(c.attributes,f.attributes)):n.push(f).delete(d);break}h-=d}}),n.chop()}eachLine(e,t=` +`){let r=new Ii.default(this.ops),n=new i,s=0;for(;r.hasNext();){if(r.peekType()!=="insert")return;let a=r.peek(),o=Wr.default.length(a)-r.peekLength(),l=typeof a.insert=="string"?a.insert.indexOf(t,o)-o:-1;if(l<0)n.push(r.next());else if(l>0)n.push(r.next(l));else{if(e(n,r.next(1).attributes||{},s)===!1)return;s+=1,n=new i}}n.length()>0&&e(n,{},s)}invert(e){let t=new i;return this.reduce((r,n)=>{if(n.insert)t.delete(Wr.default.length(n));else{if(typeof n.retain=="number"&&n.attributes==null)return t.retain(n.retain),r+n.retain;if(n.delete||typeof n.retain=="number"){let s=n.delete||n.retain;return e.slice(r,r+s).forEach(o=>{n.delete?t.push(o):n.retain&&n.attributes&&t.retain(Wr.default.length(o),As.default.invert(n.attributes,o.attributes))}),r+s}else if(typeof n.retain=="object"&&n.retain!==null){let s=e.slice(r,r+1),a=new Ii.default(s.ops).next(),[o,l,h]=O9(n.retain,a.insert),d=i.getHandler(o);return t.retain({[o]:d.invert(l,h)},As.default.invert(n.attributes,a.attributes)),r+1}}return r},0),t.chop()}transform(e,t=!1){if(t=!!t,typeof e=="number")return this.transformPosition(e,t);let r=e,n=new Ii.default(this.ops),s=new Ii.default(r.ops),a=new i;for(;n.hasNext()||s.hasNext();)if(n.peekType()==="insert"&&(t||s.peekType()!=="insert"))a.retain(Wr.default.length(n.next()));else if(s.peekType()==="insert")a.push(s.next());else{let o=Math.min(n.peekLength(),s.peekLength()),l=n.next(o),h=s.next(o);if(l.delete)continue;if(h.delete)a.push(h);else{let d=l.retain,c=h.retain,f=typeof c=="object"&&c!==null?c:o;if(typeof d=="object"&&d!==null&&typeof c=="object"&&c!==null){let m=Object.keys(d)[0];if(m===Object.keys(c)[0]){let g=i.getHandler(m);g&&(f={[m]:g.transform(d[m],c[m],t)})}}a.retain(f,As.default.transform(l.attributes,h.attributes,t))}}return a.chop()}transformPosition(e,t=!1){t=!!t;let r=new Ii.default(this.ops),n=0;for(;r.hasNext()&&n<=e;){let s=r.peekLength(),a=r.peekType();if(r.next(),a==="delete"){e-=Math.min(s,e-n);continue}else a==="insert"&&(n{Re();_l=class extends Ke{static value(){}optimize(){(this.prev||this.next)&&this.remove()}length(){return 0}value(){return""}};_l.blotName="break";_l.tagName="BR";Et=_l});function ks(i){return i.replace(/[&<>"']/g,e=>YO[e])}var nt,YO,Kr=T(()=>{Re();nt=class extends Ha{},YO={"&":"&","<":"<",">":">",'"':""","'":"'"}});var br,hm,St,Zr=T(()=>{Re();Dn();Kr();br=class br extends bd{static compare(e,t){let r=br.order.indexOf(e),n=br.order.indexOf(t);return r>=0||n>=0?r-n:e===t?0:e0){let t=this.parent.isolate(this.offset(),this.length());this.moveChildren(t),t.wrap(this)}}};U(br,"allowedChildren",[br,Et,Ke,nt]),U(br,"order",["cursor","inline","link","underline","strike","italic","bold","script","code"]);hm=br,St=hm});function cm(i){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return i.descendants(dt).reduce((t,r)=>r.length()===0?t:t.insert(r.value(),ai(r,{},e)),new dm.default).insert(` +`,ai(i))}function ai(i){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;return i==null||("formats"in i&&typeof i.formats=="function"&&(e={...e,...i.formats()},t&&delete e["code-token"]),i.parent==null||i.parent.statics.blotName==="scroll"||i.parent.statics.scope!==i.statics.scope)?e:ai(i.parent,e,t)}var dm,B9,De,ft,zi=T(()=>{Re();dm=pt(pi(),1);Dn();Zr();Kr();B9=1,De=class extends vs{constructor(){super(...arguments);U(this,"cache",{})}delta(){return this.cache.delta==null&&(this.cache.delta=cm(this)),this.cache.delta}deleteAt(t,r){super.deleteAt(t,r),this.cache={}}formatAt(t,r,n,s){r<=0||(this.scroll.query(n,X.BLOCK)?t+r===this.length()&&this.format(n,s):super.formatAt(t,Math.min(r,this.length()-t-1),n,s),this.cache={})}insertAt(t,r,n){if(n!=null){super.insertAt(t,r,n),this.cache={};return}if(r.length===0)return;let s=r.split(` +`),a=s.shift();a.length>0&&(t(o=o.split(l,!0),o.insertAt(0,h),h.length),t+a.length)}insertBefore(t,r){let{head:n}=this.children;super.insertBefore(t,r),n instanceof Et&&n.remove(),this.cache={}}length(){return this.cache.length==null&&(this.cache.length=super.length()+B9),this.cache.length}moveChildren(t,r){super.moveChildren(t,r),this.cache={}}optimize(t){super.optimize(t),this.cache={}}path(t){return super.path(t,!0)}removeChild(t){super.removeChild(t),this.cache={}}split(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(r&&(t===0||t>=this.length()-B9)){let s=this.clone();return t===0?(this.parent.insertBefore(s,this),this):(this.parent.insertBefore(s,this.next),s)}let n=super.split(t,r);return this.cache={},n}};De.blotName="block";De.tagName="P";De.defaultChild=Et;De.allowedChildren=[Et,St,Ke,nt];ft=class extends Ke{attach(){super.attach(),this.attributes=new yl(this.domNode)}delta(){return new dm.default().insert(this.value(),{...this.formats(),...this.attributes.values()})}format(e,t){let r=this.scroll.query(e,X.BLOCK_ATTRIBUTE);r!=null&&this.attributes.attribute(r,t)}formatAt(e,t,r,n){this.format(r,n)}insertAt(e,t,r){if(r!=null){super.insertAt(e,t,r);return}let n=t.split(` +`),s=n.pop(),a=n.map(l=>{let h=this.scroll.create(De.blotName);return h.insertAt(0,l),h}),o=this.split(e);a.forEach(l=>{this.parent.insertBefore(l,o)}),s&&this.parent.insertBefore(this.scroll.create("text",s),o)}};ft.scope=X.BLOCK_BLOT});var Ri,um,On,Ll=T(()=>{Re();Kr();Ri=class Ri extends Ke{static value(){}constructor(e,t,r){super(e,t),this.selection=r,this.textNode=document.createTextNode(Ri.CONTENTS),this.domNode.appendChild(this.textNode),this.savedLength=0}detach(){this.parent!=null&&this.parent.removeChild(this)}format(e,t){if(this.savedLength!==0){super.format(e,t);return}let r=this,n=0;for(;r!=null&&r.statics.scope!==X.BLOCK_BLOT;)n+=r.offset(r.parent),r=r.parent;r!=null&&(this.savedLength=Ri.CONTENTS.length,r.optimize(),r.formatAt(n,Ri.CONTENTS.length,e,t),this.savedLength=0)}index(e,t){return e===this.textNode?0:super.index(e,t)}length(){return this.savedLength}position(){return[this.textNode,this.textNode.data.length]}remove(){super.remove(),this.parent=null}restore(){if(this.selection.composing||this.parent==null)return null;let e=this.selection.getNativeRange();for(;this.domNode.lastChild!=null&&this.domNode.lastChild!==this.textNode;)this.domNode.parentNode.insertBefore(this.domNode.lastChild,this.domNode);let t=this.prev instanceof nt?this.prev:null,r=t?t.length():0,n=this.next instanceof nt?this.next:null,s=n?n.text:"",{textNode:a}=this,o=a.data.split(Ri.CONTENTS).join("");a.data=Ri.CONTENTS;let l;if(t)l=t,(o||n)&&(t.insertAt(t.length(),o+s),n&&n.remove());else if(n)l=n,n.insertAt(0,o);else{let h=document.createTextNode(o);l=this.scroll.create(h),this.parent.insertBefore(l,this)}if(this.remove(),e){let h=(f,m)=>t&&f===t.domNode?m:f===a?r+m-1:n&&f===n.domNode?r+o.length+m:null,d=h(e.start.node,e.start.offset),c=h(e.end.node,e.end.offset);if(d!==null&&c!==null)return{startNode:l.domNode,startOffset:d,endNode:l.domNode,endOffset:c}}return null}update(e,t){if(e.some(r=>r.type==="characterData"&&r.target===this.textNode)){let r=this.restore();r&&(t.range=r)}}optimize(e){super.optimize(e);let{parent:t}=this;for(;t;){if(t.domNode.tagName==="A"){this.savedLength=Ri.CONTENTS.length,t.isolate(this.offset(t),this.length()).unwrap(),this.savedLength=0;break}t=t.parent}}value(){return""}};U(Ri,"blotName","cursor"),U(Ri,"className","ql-cursor"),U(Ri,"tagName","span"),U(Ri,"CONTENTS","\uFEFF");um=Ri,On=um});var F9=rr((lQ,fm)=>{"use strict";var XO=Object.prototype.hasOwnProperty,Ut="~";function Il(){}Object.create&&(Il.prototype=Object.create(null),new Il().__proto__||(Ut=!1));function KO(i,e,t){this.fn=i,this.context=e,this.once=t||!1}function P9(i,e,t,r,n){if(typeof t!="function")throw new TypeError("The listener must be a function");var s=new KO(t,r||i,n),a=Ut?Ut+e:e;return i._events[a]?i._events[a].fn?i._events[a]=[i._events[a],s]:i._events[a].push(s):(i._events[a]=s,i._eventsCount++),i}function jd(i,e){--i._eventsCount===0?i._events=new Il:delete i._events[e]}function At(){this._events=new Il,this._eventsCount=0}At.prototype.eventNames=function(){var e=[],t,r;if(this._eventsCount===0)return e;for(r in t=this._events)XO.call(t,r)&&e.push(Ut?r.slice(1):r);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e};At.prototype.listeners=function(e){var t=Ut?Ut+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var n=0,s=r.length,a=new Array(s);n{mm=pt(F9(),1)});var zl,pm=T(()=>{zl=new WeakMap});function H9(i){if(xm&&gm.indexOf(i)<=gm.indexOf(xm)){for(var e=arguments.length,t=new Array(e>1?e-1:0),r=1;r(e[t]=H9.bind(console,t,i),e),{})}var gm,xm,gi,Cs=T(()=>{gm=["error","warn","log","info"],xm="warn";ym.level=i=>{xm=i};H9.level=ym.level;gi=ym});var vm,ZO,Rl,J,Qr=T(()=>{q9();pm();Cs();vm=gi("quill:events"),ZO=["selectionchange","mousedown","mouseup","click"];ZO.forEach(i=>{document.addEventListener(i,function(){for(var e=arguments.length,t=new Array(e),r=0;r{let s=zl.get(n);s&&s.emitter&&s.emitter.handleDOM(...t)})})});Rl=class extends mm.default{constructor(){super(),this.domListeners={},this.on("error",vm.error)}emit(){for(var e=arguments.length,t=new Array(e),r=0;r1?t-1:0),n=1;n{let{node:a,handler:o}=s;(e.target===a||a.contains(e.target))&&o(e,...r)})}listenDOM(e,t,r){this.domListeners[e]||(this.domListeners[e]=[]),this.domListeners[e].push({node:t,handler:r})}};U(Rl,"events",{EDITOR_CHANGE:"editor-change",SCROLL_BEFORE_UPDATE:"scroll-before-update",SCROLL_BLOT_MOUNT:"scroll-blot-mount",SCROLL_BLOT_UNMOUNT:"scroll-blot-unmount",SCROLL_OPTIMIZE:"scroll-optimize",SCROLL_UPDATE:"scroll-update",SCROLL_EMBED_UPDATE:"scroll-embed-update",SELECTION_CHANGE:"selection-change",TEXT_CHANGE:"text-change",COMPOSITION_BEFORE_START:"composition-before-start",COMPOSITION_START:"composition-start",COMPOSITION_BEFORE_END:"composition-before-end",COMPOSITION_END:"composition-end"}),U(Rl,"sources",{API:"api",SILENT:"silent",USER:"user"});J=Rl});function wm(i,e){try{e.parentNode}catch{return!1}return i.contains(e)}var bm,$t,Mm,U9,Dl=T(()=>{Re();kn();Qr();Cs();bm=gi("quill:selection"),$t=class{constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;this.index=e,this.length=t}},Mm=class{constructor(e,t){this.emitter=t,this.scroll=e,this.composing=!1,this.mouseDown=!1,this.root=this.scroll.domNode,this.cursor=this.scroll.create("cursor",this),this.savedRange=new $t(0,0),this.lastRange=this.savedRange,this.lastNative=null,this.handleComposition(),this.handleDragging(),this.emitter.listenDOM("selectionchange",document,()=>{!this.mouseDown&&!this.composing&&setTimeout(this.update.bind(this,J.sources.USER),1)}),this.emitter.on(J.events.SCROLL_BEFORE_UPDATE,()=>{if(!this.hasFocus())return;let r=this.getNativeRange();r!=null&&r.start.node!==this.cursor.textNode&&this.emitter.once(J.events.SCROLL_UPDATE,(n,s)=>{try{this.root.contains(r.start.node)&&this.root.contains(r.end.node)&&this.setNativeRange(r.start.node,r.start.offset,r.end.node,r.end.offset);let a=s.some(o=>o.type==="characterData"||o.type==="childList"||o.type==="attributes"&&o.target===this.root);this.update(a?J.sources.SILENT:n)}catch{}})}),this.emitter.on(J.events.SCROLL_OPTIMIZE,(r,n)=>{if(n.range){let{startNode:s,startOffset:a,endNode:o,endOffset:l}=n.range;this.setNativeRange(s,a,o,l),this.update(J.sources.SILENT)}}),this.update(J.sources.SILENT)}handleComposition(){this.emitter.on(J.events.COMPOSITION_BEFORE_START,()=>{this.composing=!0}),this.emitter.on(J.events.COMPOSITION_END,()=>{if(this.composing=!1,this.cursor.parent){let e=this.cursor.restore();if(!e)return;setTimeout(()=>{this.setNativeRange(e.startNode,e.startOffset,e.endNode,e.endOffset)},1)}})}handleDragging(){this.emitter.listenDOM("mousedown",document.body,()=>{this.mouseDown=!0}),this.emitter.listenDOM("mouseup",document.body,()=>{this.mouseDown=!1,this.update(J.sources.USER)})}focus(){this.hasFocus()||(this.root.focus({preventScroll:!0}),this.setRange(this.savedRange))}format(e,t){this.scroll.update();let r=this.getNativeRange();if(!(r==null||!r.native.collapsed||this.scroll.query(e,X.BLOCK))){if(r.start.node!==this.cursor.textNode){let n=this.scroll.find(r.start.node,!1);if(n==null)return;if(n instanceof dt){let s=n.split(r.start.offset);n.parent.insertBefore(this.cursor,s)}else n.insertBefore(this.cursor,r.start.node);this.cursor.attach()}this.cursor.format(e,t),this.scroll.optimize(),this.setNativeRange(this.cursor.textNode,this.cursor.textNode.data.length),this.update()}}getBounds(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=this.scroll.length();e=Math.min(e,r-1),t=Math.min(e+t,r-1)-e;let n,[s,a]=this.scroll.leaf(e);if(s==null)return null;if(t>0&&a===s.length()){let[d]=this.scroll.leaf(e+1);if(d){let[c]=this.scroll.line(e),[f]=this.scroll.line(e+1);c===f&&(s=d,a=0)}}[n,a]=s.position(a,!0);let o=document.createRange();if(t>0)return o.setStart(n,a),[s,a]=this.scroll.leaf(e+t),s==null?null:([n,a]=s.position(a,!0),o.setEnd(n,a),o.getBoundingClientRect());let l="left",h;if(n instanceof Text){if(!n.data.length)return null;a0&&(l="right")}return{bottom:h.top+h.height,height:h.height,left:h[l],right:h[l],top:h.top,width:0}}getNativeRange(){let e=document.getSelection();if(e==null||e.rangeCount<=0)return null;let t=e.getRangeAt(0);if(t==null)return null;let r=this.normalizeNative(t);return bm.info("getNativeRange",r),r}getRange(){let e=this.scroll.domNode;if("isConnected"in e&&!e.isConnected)return[null,null];let t=this.getNativeRange();return t==null?[null,null]:[this.normalizedToRange(t),t]}hasFocus(){return document.activeElement===this.root||document.activeElement!=null&&wm(this.root,document.activeElement)}normalizedToRange(e){let t=[[e.start.node,e.start.offset]];e.native.collapsed||t.push([e.end.node,e.end.offset]);let r=t.map(a=>{let[o,l]=a,h=this.scroll.find(o,!0),d=h.offset(this.scroll);return l===0?d:h instanceof dt?d+h.index(o,l):d+h.length()}),n=Math.min(Math.max(...r),this.scroll.length()-1),s=Math.min(n,...r);return new $t(s,n-s)}normalizeNative(e){if(!wm(this.root,e.startContainer)||!e.collapsed&&!wm(this.root,e.endContainer))return null;let t={start:{node:e.startContainer,offset:e.startOffset},end:{node:e.endContainer,offset:e.endOffset},native:e};return[t.start,t.end].forEach(r=>{let{node:n,offset:s}=r;for(;!(n instanceof Text)&&n.childNodes.length>0;)if(n.childNodes.length>s)n=n.childNodes[s],s=0;else if(n.childNodes.length===s)n=n.lastChild,n instanceof Text?s=n.data.length:n.childNodes.length>0?s=n.childNodes.length:s=n.childNodes.length+1;else break;r.node=n,r.offset=s}),t}rangeToNative(e){let t=this.scroll.length(),r=(n,s)=>{n=Math.min(t-1,n);let[a,o]=this.scroll.leaf(n);return a?a.position(o,s):[null,-1]};return[...r(e.index,!1),...r(e.index+e.length,!0)]}setNativeRange(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:t,s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!1;if(bm.info("setNativeRange",e,t,r,n),e!=null&&(this.root.parentNode==null||e.parentNode==null||r.parentNode==null))return;let a=document.getSelection();if(a!=null)if(e!=null){this.hasFocus()||this.root.focus({preventScroll:!0});let{native:o}=this.getNativeRange()||{};if(o==null||s||e!==o.startContainer||t!==o.startOffset||r!==o.endContainer||n!==o.endOffset){e instanceof Element&&e.tagName==="BR"&&(t=Array.from(e.parentNode.childNodes).indexOf(e),e=e.parentNode),r instanceof Element&&r.tagName==="BR"&&(n=Array.from(r.parentNode.childNodes).indexOf(r),r=r.parentNode);let l=document.createRange();l.setStart(e,t),l.setEnd(r,n),a.removeAllRanges(),a.addRange(l)}}else a.removeAllRanges(),this.root.blur()}setRange(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:J.sources.API;if(typeof t=="string"&&(r=t,t=!1),bm.info("setRange",e),e!=null){let n=this.rangeToNative(e);this.setNativeRange(...n,t)}else this.setNativeRange(null);this.update(r)}update(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:J.sources.USER,t=this.lastRange,[r,n]=this.getRange();if(this.lastRange=r,this.lastNative=n,this.lastRange!=null&&(this.savedRange=this.lastRange),!ys(t,this.lastRange)){if(!this.composing&&n!=null&&n.native.collapsed&&n.start.node!==this.cursor.textNode){let a=this.cursor.restore();a&&this.setNativeRange(a.startNode,a.startOffset,a.endNode,a.endOffset)}let s=[J.events.SELECTION_CHANGE,yr(this.lastRange),yr(t),e];this.emitter.emit(J.events.EDITOR_CHANGE,...s),e!==J.sources.SILENT&&this.emitter.emit(...s)}}};U9=Mm});function Xa(i,e,t){if(i.length===0){let[m]=Tm(t.pop());return e<=0?``:`${Xa([],e-1,t)}`}let[{child:r,offset:n,length:s,indent:a,type:o},...l]=i,[h,d]=Tm(o);if(a>e)return t.push(o),a===e+1?`<${h}>${Ol(r,n,s)}${Xa(l,a,t)}`:`<${h}>
  • ${Xa(i,e+1,t)}`;let c=t[t.length-1];if(a===e&&o===c)return`
  • ${Ol(r,n,s)}${Xa(l,a,t)}`;let[f]=Tm(t.pop());return`${Xa(i,e-1,t)}`}function Ol(i,e,t){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if("html"in i&&typeof i.html=="function")return i.html(e,t);if(i instanceof nt)return ks(i.value().slice(e,e+t)).replaceAll(" "," ");if(i instanceof ni){if(i.statics.blotName==="list-container"){let h=[];return i.children.forEachAt(e,t,(d,c,f)=>{let m="formats"in d&&typeof d.formats=="function"?d.formats():{};h.push({child:d,offset:c,length:f,indent:m.indent||0,type:m.list})}),Xa(h,-1,[])}let n=[];if(i.children.forEachAt(e,t,(h,d,c)=>{n.push(Ol(h,d,c))}),r||i.statics.blotName==="list")return n.join("");let{outerHTML:s,innerHTML:a}=i.domNode,[o,l]=s.split(`>${a}<`);return o==="${n.join("")}<${l}`:`${o}>${n.join("")}<${l}`}return i.domNode instanceof Element?i.domNode.outerHTML:""}function JO(i,e){return Object.keys(e).reduce((t,r)=>{if(i[r]==null)return t;let n=e[r];return n===i[r]?t[r]=n:Array.isArray(n)?n.indexOf(i[r])<0?t[r]=n.concat([i[r]]):t[r]=n:t[r]=[n,i[r]],t},{})}function Tm(i){let e=i==="ordered"?"ol":"ul";switch(i){case"checked":return[e,' data-list="checked"'];case"unchecked":return[e,' data-list="unchecked"'];default:return[e,""]}}function $9(i){return i.reduce((e,t)=>{if(typeof t.insert=="string"){let r=t.insert.replace(/\r\n/g,` `).replace(/\r/g,` -`);return e.insert(r,t.attributes)}return e.push(t)},new $e.default)}function c9(i,e){let{index:t,length:r}=i;return new Lt(t+e,r)}function FR(i){let e=[];return i.forEach(t=>{typeof t.insert=="string"?t.insert.split(` +`);return e.insert(r,t.attributes)}return e.push(t)},new Ze.default)}function j9(i,e){let{index:t,length:r}=i;return new $t(t+e,r)}function eB(i){let e=[];return i.forEach(t=>{typeof t.insert=="string"?t.insert.split(` `).forEach((n,s)=>{s&&e.push({insert:` -`,attributes:t.attributes}),n&&e.push({insert:n,attributes:t.attributes})}):e.push(t)}),e}var $e,BR,Tf,u9,f9=M(()=>{ln();Ae();$e=ot(si(),1);wi();pn();el();zr();nl();BR=/^[ -~]*$/,Tf=class{constructor(e){this.scroll=e,this.delta=this.getDelta()}applyDelta(e){this.scroll.update();let t=this.scroll.length();this.scroll.batchStart();let r=d9(e),n=new $e.default;return FR(r.ops.slice()).reduce((a,o)=>{let l=$e.Op.length(o),h=o.attributes||{},d=!1,c=!1;if(o.insert!=null){if(n.retain(l),typeof o.insert=="string"){let g=o.insert;c=!g.endsWith(` -`)&&(t<=a||!!this.scroll.descendant(rt,a)[0]),this.scroll.insertAt(a,g);let[x,v]=this.scroll.line(a),b=Yt({},Xt(x));if(x instanceof ke){let[E]=x.descendant(Je,v);E&&(b=Yt(b,Xt(E)))}h=$e.AttributeMap.diff(b,h)||{}}else if(typeof o.insert=="object"){let g=Object.keys(o.insert)[0];if(g==null)return a;let x=this.scroll.query(g,Y.INLINE)!=null;if(x)(t<=a||this.scroll.descendant(rt,a)[0])&&(c=!0);else if(a>0){let[v,b]=this.scroll.descendant(Je,a-1);v instanceof Ve?v.value()[b]!==` -`&&(d=!0):v instanceof Ue&&v.statics.scope===Y.INLINE_BLOT&&(d=!0)}if(this.scroll.insertAt(a,g,o.insert[g]),x){let[v]=this.scroll.descendant(Je,a);if(v){let b=Yt({},Xt(v));h=$e.AttributeMap.diff(b,h)||{}}}}t+=l}else if(n.push(o),o.retain!==null&&typeof o.retain=="object"){let g=Object.keys(o.retain)[0];if(g==null)return a;this.scroll.updateEmbedAt(a,g,o.retain[g])}Object.keys(h).forEach(g=>{this.scroll.formatAt(a,l,g,h[g])});let f=d?1:0,m=c?1:0;return t+=f+m,n.retain(f),n.delete(m),a+l+f+m},0),n.reduce((a,o)=>typeof o.delete=="number"?(this.scroll.deleteAt(a,o.delete),a):a+$e.Op.length(o),0),this.scroll.batchEnd(),this.scroll.optimize(),this.update(r)}deleteText(e,t){return this.scroll.deleteAt(e,t),this.update(new $e.default().retain(e).delete(t))}formatLine(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};this.scroll.update(),Object.keys(r).forEach(s=>{this.scroll.lines(e,Math.max(t,1)).forEach(a=>{a.format(s,r[s])})}),this.scroll.optimize();let n=new $e.default().retain(e).retain(t,er(r));return this.update(n)}formatText(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.keys(r).forEach(s=>{this.scroll.formatAt(e,t,s,r[s])});let n=new $e.default().retain(e).retain(t,er(r));return this.update(n)}getContents(e,t){return this.delta.slice(e,e+t)}getDelta(){return this.scroll.lines().reduce((e,t)=>e.concat(t.delta()),new $e.default)}getFormat(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=[],n=[];t===0?this.scroll.path(e).forEach(o=>{let[l]=o;l instanceof ke?r.push(l):l instanceof Je&&n.push(l)}):(r=this.scroll.lines(e,t),n=this.scroll.descendants(Je,e,t));let[s,a]=[r,n].map(o=>{let l=o.shift();if(l==null)return{};let h=Xt(l);for(;Object.keys(h).length>0;){let d=o.shift();if(d==null)return h;h=PR(Xt(d),h)}return h});return{...s,...a}}getHTML(e,t){let[r,n]=this.scroll.line(e);if(r){let s=r.length();return r.length()>=n+t&&!(n===0&&t===s)?sl(r,n,t,!0):sl(this.scroll,e,t,!0)}return""}getText(e,t){return this.getContents(e,t).filter(r=>typeof r.insert=="string").map(r=>r.insert).join("")}insertContents(e,t){let r=d9(t),n=new $e.default().retain(e).concat(r);return this.scroll.insertContents(e,r),this.update(n)}insertEmbed(e,t,r){return this.scroll.insertAt(e,t,r),this.update(new $e.default().retain(e).insert({[t]:r}))}insertText(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return t=t.replace(/\r\n/g,` +`,attributes:t.attributes}),n&&e.push({insert:n,attributes:t.attributes})}):e.push(t)}),e}var Ze,QO,Nm,G9,V9=T(()=>{kn();Re();Ze=pt(pi(),1);zi();Dn();Ll();Kr();Dl();QO=/^[ -~]*$/,Nm=class{constructor(e){this.scroll=e,this.delta=this.getDelta()}applyDelta(e){this.scroll.update();let t=this.scroll.length();this.scroll.batchStart();let r=$9(e),n=new Ze.default;return eB(r.ops.slice()).reduce((a,o)=>{let l=Ze.Op.length(o),h=o.attributes||{},d=!1,c=!1;if(o.insert!=null){if(n.retain(l),typeof o.insert=="string"){let g=o.insert;c=!g.endsWith(` +`)&&(t<=a||!!this.scroll.descendant(ft,a)[0]),this.scroll.insertAt(a,g);let[x,y]=this.scroll.line(a),b=ri({},ai(x));if(x instanceof De){let[S]=x.descendant(dt,y);S&&(b=ri(b,ai(S)))}h=Ze.AttributeMap.diff(b,h)||{}}else if(typeof o.insert=="object"){let g=Object.keys(o.insert)[0];if(g==null)return a;let x=this.scroll.query(g,X.INLINE)!=null;if(x)(t<=a||this.scroll.descendant(ft,a)[0])&&(c=!0);else if(a>0){let[y,b]=this.scroll.descendant(dt,a-1);y instanceof nt?y.value()[b]!==` +`&&(d=!0):y instanceof Ke&&y.statics.scope===X.INLINE_BLOT&&(d=!0)}if(this.scroll.insertAt(a,g,o.insert[g]),x){let[y]=this.scroll.descendant(dt,a);if(y){let b=ri({},ai(y));h=Ze.AttributeMap.diff(b,h)||{}}}}t+=l}else if(n.push(o),o.retain!==null&&typeof o.retain=="object"){let g=Object.keys(o.retain)[0];if(g==null)return a;this.scroll.updateEmbedAt(a,g,o.retain[g])}Object.keys(h).forEach(g=>{this.scroll.formatAt(a,l,g,h[g])});let f=d?1:0,m=c?1:0;return t+=f+m,n.retain(f),n.delete(m),a+l+f+m},0),n.reduce((a,o)=>typeof o.delete=="number"?(this.scroll.deleteAt(a,o.delete),a):a+Ze.Op.length(o),0),this.scroll.batchEnd(),this.scroll.optimize(),this.update(r)}deleteText(e,t){return this.scroll.deleteAt(e,t),this.update(new Ze.default().retain(e).delete(t))}formatLine(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};this.scroll.update(),Object.keys(r).forEach(s=>{this.scroll.lines(e,Math.max(t,1)).forEach(a=>{a.format(s,r[s])})}),this.scroll.optimize();let n=new Ze.default().retain(e).retain(t,yr(r));return this.update(n)}formatText(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.keys(r).forEach(s=>{this.scroll.formatAt(e,t,s,r[s])});let n=new Ze.default().retain(e).retain(t,yr(r));return this.update(n)}getContents(e,t){return this.delta.slice(e,e+t)}getDelta(){return this.scroll.lines().reduce((e,t)=>e.concat(t.delta()),new Ze.default)}getFormat(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=[],n=[];t===0?this.scroll.path(e).forEach(o=>{let[l]=o;l instanceof De?r.push(l):l instanceof dt&&n.push(l)}):(r=this.scroll.lines(e,t),n=this.scroll.descendants(dt,e,t));let[s,a]=[r,n].map(o=>{let l=o.shift();if(l==null)return{};let h=ai(l);for(;Object.keys(h).length>0;){let d=o.shift();if(d==null)return h;h=JO(ai(d),h)}return h});return{...s,...a}}getHTML(e,t){let[r,n]=this.scroll.line(e);if(r){let s=r.length();return r.length()>=n+t&&!(n===0&&t===s)?Ol(r,n,t,!0):Ol(this.scroll,e,t,!0)}return""}getText(e,t){return this.getContents(e,t).filter(r=>typeof r.insert=="string").map(r=>r.insert).join("")}insertContents(e,t){let r=$9(t),n=new Ze.default().retain(e).concat(r);return this.scroll.insertContents(e,r),this.update(n)}insertEmbed(e,t,r){return this.scroll.insertAt(e,t,r),this.update(new Ze.default().retain(e).insert({[t]:r}))}insertText(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return t=t.replace(/\r\n/g,` `).replace(/\r/g,` -`),this.scroll.insertAt(e,t),Object.keys(r).forEach(n=>{this.scroll.formatAt(e,t.length,n,r[n])}),this.update(new $e.default().retain(e).insert(t,er(r)))}isBlank(){if(this.scroll.children.length===0)return!0;if(this.scroll.children.length>1)return!1;let e=this.scroll.children.head;if(e?.statics.blotName!==ke.blotName)return!1;let t=e;return t.children.length>1?!1:t.children.head instanceof pt}removeFormat(e,t){let r=this.getText(e,t),[n,s]=this.scroll.line(e+t),a=0,o=new $e.default;n!=null&&(a=n.length()-s,o=n.delta().slice(s,s+a-1).insert(` -`));let h=this.getContents(e,t+a).diff(new $e.default().insert(r).concat(o)),d=new $e.default().retain(e).concat(h);return this.applyDelta(d)}update(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:void 0,n=this.delta;if(t.length===1&&t[0].type==="characterData"&&t[0].target.data.match(BR)&&this.scroll.find(t[0].target)){let s=this.scroll.find(t[0].target),a=Xt(s),o=s.offset(this.scroll),l=t[0].oldValue.replace(gn.CONTENTS,""),h=new $e.default().insert(l),d=new $e.default().insert(s.value()),c=r&&{oldRange:c9(r.oldRange,-o),newRange:c9(r.newRange,-o)};e=new $e.default().retain(o).concat(h.diff(d,c)).reduce((m,g)=>g.insert?m.insert(g.insert,a):m.push(g),new $e.default),this.delta=n.compose(e)}else this.delta=this.getDelta(),(!e||!Wn(n.compose(e),this.delta))&&(e=n.diff(this.delta,r));return e}};u9=Tf});var id,je,Ti=M(()=>{id=class{constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.quill=e,this.options=t}};P(id,"DEFAULTS",{});je=id});var rd,Nf,ya,nd=M(()=>{Ae();zr();rd="\uFEFF",Nf=class extends Ue{constructor(e,t){super(e,t),this.contentNode=document.createElement("span"),this.contentNode.setAttribute("contenteditable","false"),Array.from(this.domNode.childNodes).forEach(r=>{this.contentNode.appendChild(r)}),this.leftGuard=document.createTextNode(rd),this.rightGuard=document.createTextNode(rd),this.domNode.appendChild(this.leftGuard),this.domNode.appendChild(this.contentNode),this.domNode.appendChild(this.rightGuard)}index(e,t){return e===this.leftGuard?0:e===this.rightGuard?1:super.index(e,t)}restore(e){let t=null,r,n=e.data.split(rd).join("");if(e===this.leftGuard)if(this.prev instanceof Ve){let s=this.prev.length();this.prev.insertAt(s,n),t={startNode:this.prev.domNode,startOffset:s+n.length}}else r=document.createTextNode(n),this.parent.insertBefore(this.scroll.create(r),this),t={startNode:r,startOffset:n.length};else e===this.rightGuard&&(this.next instanceof Ve?(this.next.insertAt(0,n),t={startNode:this.next.domNode,startOffset:n.length}):(r=document.createTextNode(n),this.parent.insertBefore(this.scroll.create(r),this.next),t={startNode:r,startOffset:n.length}));return e.data=rd,t}update(e,t){e.forEach(r=>{if(r.type==="characterData"&&(r.target===this.leftGuard||r.target===this.rightGuard)){let n=this.restore(r.target);n&&(t.range=n)}})}},ya=Nf});var Ef,m9,p9=M(()=>{nd();Rr();Ef=class{constructor(e,t){P(this,"isComposing",!1);this.scroll=e,this.emitter=t,this.setupListeners()}setupListeners(){this.scroll.domNode.addEventListener("compositionstart",e=>{this.isComposing||this.handleCompositionStart(e)}),this.scroll.domNode.addEventListener("compositionend",e=>{this.isComposing&&queueMicrotask(()=>{this.handleCompositionEnd(e)})})}handleCompositionStart(e){let t=e.target instanceof Node?this.scroll.find(e.target,!0):null;t&&!(t instanceof ya)&&(this.emitter.emit(K.events.COMPOSITION_BEFORE_START,e),this.scroll.batchStart(),this.emitter.emit(K.events.COMPOSITION_START,e),this.isComposing=!0)}handleCompositionEnd(e){this.emitter.emit(K.events.COMPOSITION_BEFORE_END,e),this.scroll.batchEnd(),this.emitter.emit(K.events.COMPOSITION_END,e),this.isComposing=!1}},m9=Ef});var al,Sf,ba,Af=M(()=>{al=class al{constructor(e,t){P(this,"modules",{});this.quill=e,this.options=t}init(){Object.keys(this.options.modules).forEach(e=>{this.modules[e]==null&&this.addModule(e)})}addModule(e){let t=this.quill.constructor.import(`modules/${e}`);return this.modules[e]=new t(this.quill,this.options.modules[e]||{}),this.modules[e]}};P(al,"DEFAULTS",{modules:{}}),P(al,"themes",{default:al});Sf=al,ba=Sf});var qR,HR,sd,g9,UR,x9,v9=M(()=>{qR=i=>i.parentElement||i.getRootNode().host||null,HR=i=>{let e=i.getBoundingClientRect(),t="offsetWidth"in i&&Math.abs(e.width)/i.offsetWidth||1,r="offsetHeight"in i&&Math.abs(e.height)/i.offsetHeight||1;return{top:e.top,right:e.left+i.clientWidth*t,bottom:e.top+i.clientHeight*r,left:e.left}},sd=i=>{let e=parseInt(i,10);return Number.isNaN(e)?0:e},g9=(i,e,t,r,n,s)=>ir?0:ir?e-i>r-t?i+n-t:e-r+s:0,UR=(i,e)=>{let t=i.ownerDocument,r=e,n=i;for(;n;){let s=n===t.body,a=s?{top:0,right:window.visualViewport?.width??t.documentElement.clientWidth,bottom:window.visualViewport?.height??t.documentElement.clientHeight,left:0}:HR(n),o=getComputedStyle(n),l=g9(r.left,r.right,a.left,a.right,sd(o.scrollPaddingLeft),sd(o.scrollPaddingRight)),h=g9(r.top,r.bottom,a.top,a.bottom,sd(o.scrollPaddingTop),sd(o.scrollPaddingBottom));if(l||h)if(s)t.defaultView?.scrollBy(l,h);else{let{scrollLeft:d,scrollTop:c}=n;h&&(n.scrollTop+=h),l&&(n.scrollLeft+=l);let f=n.scrollLeft-d,m=n.scrollTop-c;r={left:r.left-f,top:r.top-m,right:r.right-f,bottom:r.bottom-m}}n=s||o.position==="fixed"?null:qR(n)}},x9=UR});var $R,jR,GR,y9,b9=M(()=>{Ae();$R=100,jR=["block","break","cursor","inline","scroll","text"],GR=(i,e,t)=>{let r=new cn;return jR.forEach(n=>{let s=e.query(n);s&&r.register(s)}),i.forEach(n=>{let s=e.query(n);s||t.error(`Cannot register "${n}" specified in "formats" config. Are you sure it was registered?`);let a=0;for(;s;)if(r.register(s),s="blotName"in s?s.requiredContainer??null:null,a+=1,a>$R){t.error(`Cycle detected in registering blot requiredContainer: "${n}"`);break}}),r},y9=GR});function w9(i){return typeof i=="string"?document.querySelector(i):i}function kf(i){return Object.entries(i??{}).reduce((e,t)=>{let[r,n]=t;return{...e,[r]:n===!0?{}:n}},{})}function M9(i){return Object.fromEntries(Object.entries(i).filter(e=>e[1]!==void 0))}function YR(i,e){let t=w9(i);if(!t)throw new Error("Invalid Quill container");let n=!e.theme||e.theme===R.DEFAULTS.theme?ba:R.import(`themes/${e.theme}`);if(!n)throw new Error(`Invalid theme ${e.theme}. Did you register it?`);let{modules:s,...a}=R.DEFAULTS,{modules:o,...l}=n.DEFAULTS,h=kf(e.modules);h!=null&&h.toolbar&&h.toolbar.constructor!==Object&&(h={...h,toolbar:{container:h.toolbar}});let d=Yt({},kf(s),kf(o),h),c={...a,...M9(l),...M9(e)},f=e.registry;return f?e.formats&&wa.warn('Ignoring "formats" option because "registry" is specified'):f=e.formats?y9(e.formats,c.registry,wa):c.registry,{...c,registry:f,container:t,theme:n,modules:Object.entries(d).reduce((m,g)=>{let[x,v]=g;if(!v)return m;let b=R.import(`modules/${x}`);return b==null?(wa.error(`Cannot load ${x} module. Are you sure you registered it?`),m):{...m,[x]:Yt({},b.DEFAULTS||{},v)}},{}),bounds:w9(c.bounds)}}function Bi(i,e,t,r){if(!this.isEnabled()&&e===K.sources.USER&&!this.allowReadOnlyEdits)return new xn.default;let n=t==null?null:this.getSelection(),s=this.editor.delta,a=i();if(n!=null&&(t===!0&&(t=n.index),r==null?n=T9(n,a,e):r!==0&&(n=T9(n,t,r,e)),this.setSelection(n,K.sources.SILENT)),a.length()>0){let o=[K.events.TEXT_CHANGE,a,s,e];this.emitter.emit(K.events.EDITOR_CHANGE,...o),e!==K.sources.SILENT&&this.emitter.emit(...o)}return a}function Dr(i,e,t,r,n){let s={};return typeof i.index=="number"&&typeof i.length=="number"?typeof e!="number"?(n=r,r=t,t=e,e=i.length,i=i.index):(e=i.length,i=i.index):typeof e!="number"&&(n=r,r=t,t=e,e=0),typeof t=="object"?(s=t,n=r):typeof t=="string"&&(r!=null?s[t]=r:n=t),n=n||K.sources.API,[i,e,s,n]}function T9(i,e,t,r){let n=typeof t=="number"?t:0;if(i==null)return null;let s,a;return e&&typeof e.transformPosition=="function"?[s,a]=[i.index,i.index+i.length].map(o=>e.transformPosition(o,r!==K.sources.USER)):[s,a]=[i.index,i.index+i.length].map(o=>o=0?o+n:Math.max(e,o+n)),new Lt(s,a-s)}var xn,wa,ad,Pi,R,Kt=M(()=>{ln();Ae();xn=ot(si(),1);f9();Rr();mf();ns();Ti();nl();p9();Af();v9();b9();wa=ai("quill"),ad=new cn;Wt.uiClass="ql-ui";Pi=class Pi{static debug(e){e===!0&&(e="log"),ai.level(e)}static find(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return il.get(e)||ad.find(e,t)}static import(e){return this.imports[e]==null&&wa.error(`Cannot import ${e}. Are you sure it was registered?`),this.imports[e]}static register(){if(typeof(arguments.length<=0?void 0:arguments[0])!="string"){let e=arguments.length<=0?void 0:arguments[0],t=!!(!(arguments.length<=1)&&arguments[1]),r="attrName"in e?e.attrName:e.blotName;typeof r=="string"?this.register(`formats/${r}`,e,t):Object.keys(e).forEach(n=>{this.register(n,e[n],t)})}else{let e=arguments.length<=0?void 0:arguments[0],t=arguments.length<=1?void 0:arguments[1],r=!!(!(arguments.length<=2)&&arguments[2]);this.imports[e]!=null&&!r&&wa.warn(`Overwriting ${e} with`,t),this.imports[e]=t,(e.startsWith("blots/")||e.startsWith("formats/"))&&t&&typeof t!="boolean"&&t.blotName!=="abstract"&&ad.register(t),typeof t.register=="function"&&t.register(ad)}}constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(this.options=YR(e,t),this.container=this.options.container,this.container==null){wa.error("Invalid Quill container",e);return}this.options.debug&&Pi.debug(this.options.debug);let r=this.container.innerHTML.trim();this.container.classList.add("ql-container"),this.container.innerHTML="",il.set(this.container,this),this.root=this.addContainer("ql-editor"),this.root.classList.add("ql-blank"),this.emitter=new K;let n=Uo.blotName,s=this.options.registry.query(n);if(!s||!("blotName"in s))throw new Error(`Cannot initialize Quill without "${n}" blot`);if(this.scroll=new s(this.options.registry,this.root,{emitter:this.emitter}),this.editor=new u9(this.scroll),this.selection=new h9(this.scroll,this.emitter),this.composition=new m9(this.scroll,this.emitter),this.theme=new this.options.theme(this,this.options),this.keyboard=this.theme.addModule("keyboard"),this.clipboard=this.theme.addModule("clipboard"),this.history=this.theme.addModule("history"),this.uploader=this.theme.addModule("uploader"),this.theme.addModule("input"),this.theme.addModule("uiNode"),this.theme.init(),this.emitter.on(K.events.EDITOR_CHANGE,a=>{a===K.events.TEXT_CHANGE&&this.root.classList.toggle("ql-blank",this.editor.isBlank())}),this.emitter.on(K.events.SCROLL_UPDATE,(a,o)=>{let l=this.selection.lastRange,[h]=this.selection.getRange(),d=l&&h?{oldRange:l,newRange:h}:void 0;Bi.call(this,()=>this.editor.update(null,o,d),a)}),this.emitter.on(K.events.SCROLL_EMBED_UPDATE,(a,o)=>{let l=this.selection.lastRange,[h]=this.selection.getRange(),d=l&&h?{oldRange:l,newRange:h}:void 0;Bi.call(this,()=>{let c=new xn.default().retain(a.offset(this)).retain({[a.statics.blotName]:o});return this.editor.update(c,[],d)},Pi.sources.USER)}),r){let a=this.clipboard.convert({html:`${r}


    `,text:` -`});this.setContents(a)}this.history.clear(),this.options.placeholder&&this.root.setAttribute("data-placeholder",this.options.placeholder),this.options.readOnly&&this.disable(),this.allowReadOnlyEdits=!1}addContainer(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;if(typeof e=="string"){let r=e;e=document.createElement("div"),e.classList.add(r)}return this.container.insertBefore(e,t),e}blur(){this.selection.setRange(null)}deleteText(e,t,r){return[e,t,,r]=Dr(e,t,r),Bi.call(this,()=>this.editor.deleteText(e,t),r,e,-1*t)}disable(){this.enable(!1)}editReadOnly(e){this.allowReadOnlyEdits=!0;let t=e();return this.allowReadOnlyEdits=!1,t}enable(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;this.scroll.enable(e),this.container.classList.toggle("ql-disabled",!e)}focus(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.selection.focus(),e.preventScroll||this.scrollSelectionIntoView()}format(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:K.sources.API;return Bi.call(this,()=>{let n=this.getSelection(!0),s=new xn.default;if(n==null)return s;if(this.scroll.query(e,Y.BLOCK))s=this.editor.formatLine(n.index,n.length,{[e]:t});else{if(n.length===0)return this.selection.format(e,t),s;s=this.editor.formatText(n.index,n.length,{[e]:t})}return this.setSelection(n,K.sources.SILENT),s},r)}formatLine(e,t,r,n,s){let a;return[e,t,a,s]=Dr(e,t,r,n,s),Bi.call(this,()=>this.editor.formatLine(e,t,a),s,e,0)}formatText(e,t,r,n,s){let a;return[e,t,a,s]=Dr(e,t,r,n,s),Bi.call(this,()=>this.editor.formatText(e,t,a),s,e,0)}getBounds(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=null;if(typeof e=="number"?r=this.selection.getBounds(e,t):r=this.selection.getBounds(e.index,e.length),!r)return null;let n=this.container.getBoundingClientRect();return{bottom:r.bottom-n.top,height:r.height,left:r.left-n.left,right:r.right-n.left,top:r.top-n.top,width:r.width}}getContents(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.getLength()-e;return[e,t]=Dr(e,t),this.editor.getContents(e,t)}getFormat(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.getSelection(!0),t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return typeof e=="number"?this.editor.getFormat(e,t):this.editor.getFormat(e.index,e.length)}getIndex(e){return e.offset(this.scroll)}getLength(){return this.scroll.length()}getLeaf(e){return this.scroll.leaf(e)}getLine(e){return this.scroll.line(e)}getLines(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Number.MAX_VALUE;return typeof e!="number"?this.scroll.lines(e.index,e.length):this.scroll.lines(e,t)}getModule(e){return this.theme.modules[e]}getSelection(){return arguments.length>0&&arguments[0]!==void 0&&arguments[0]&&this.focus(),this.update(),this.selection.getRange()[0]}getSemanticHTML(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,t=arguments.length>1?arguments[1]:void 0;return typeof e=="number"&&(t=t??this.getLength()-e),[e,t]=Dr(e,t),this.editor.getHTML(e,t)}getText(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,t=arguments.length>1?arguments[1]:void 0;return typeof e=="number"&&(t=t??this.getLength()-e),[e,t]=Dr(e,t),this.editor.getText(e,t)}hasFocus(){return this.selection.hasFocus()}insertEmbed(e,t,r){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:Pi.sources.API;return Bi.call(this,()=>this.editor.insertEmbed(e,t,r),n,e)}insertText(e,t,r,n,s){let a;return[e,,a,s]=Dr(e,0,r,n,s),Bi.call(this,()=>this.editor.insertText(e,t,a),s,e,t.length)}isEnabled(){return this.scroll.isEnabled()}off(){return this.emitter.off(...arguments)}on(){return this.emitter.on(...arguments)}once(){return this.emitter.once(...arguments)}removeFormat(e,t,r){return[e,t,,r]=Dr(e,t,r),Bi.call(this,()=>this.editor.removeFormat(e,t),r,e)}scrollRectIntoView(e){x9(this.root,e)}scrollIntoView(){console.warn("Quill#scrollIntoView() has been deprecated and will be removed in the near future. Please use Quill#scrollSelectionIntoView() instead."),this.scrollSelectionIntoView()}scrollSelectionIntoView(){let e=this.selection.lastRange,t=e&&this.selection.getBounds(e.index,e.length);t&&this.scrollRectIntoView(t)}setContents(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:K.sources.API;return Bi.call(this,()=>{e=new xn.default(e);let r=this.getLength(),n=this.editor.deleteText(0,r),s=this.editor.insertContents(0,e),a=this.editor.deleteText(this.getLength()-1,1);return n.compose(s).compose(a)},t)}setSelection(e,t,r){e==null?this.selection.setRange(null,t||Pi.sources.API):([e,t,,r]=Dr(e,t,r),this.selection.setRange(new Lt(Math.max(0,e),t),r),r!==K.sources.SILENT&&this.scrollSelectionIntoView())}setText(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:K.sources.API,r=new xn.default().insert(e);return this.setContents(r,t)}update(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:K.sources.USER,t=this.scroll.update(e);return this.selection.update(e),t}updateContents(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:K.sources.API;return Bi.call(this,()=>(e=new xn.default(e),this.editor.applyDelta(e)),t,!0)}};P(Pi,"DEFAULTS",{bounds:null,modules:{clipboard:!0,keyboard:!0,history:!0,uploader:!0},placeholder:"",readOnly:!1,registry:ad,theme:"default"}),P(Pi,"events",K.events),P(Pi,"sources",K.sources),P(Pi,"version","2.0.3"),P(Pi,"imports",{delta:xn.default,parchment:$o,"core/module":je,"core/theme":ba});R=Pi});var Cf,Ni,Ma=M(()=>{Ae();Cf=class extends ha{},Ni=Cf});function N9(i){return i instanceof ke||i instanceof rt}function E9(i){return typeof i.updateContent=="function"}function _f(i,e,t){t.reduce((r,n)=>{let s=Ei.Op.length(n),a=n.attributes||{};if(n.insert!=null){if(typeof n.insert=="string"){let o=n.insert;i.insertAt(r,o);let[l]=i.descendant(Je,r),h=Xt(l);a=Ei.AttributeMap.diff(h,a)||{}}else if(typeof n.insert=="object"){let o=Object.keys(n.insert)[0];if(o==null)return r;if(i.insertAt(r,o,n.insert[o]),i.scroll.query(o,Y.INLINE)!=null){let[h]=i.descendant(Je,r),d=Xt(h);a=Ei.AttributeMap.diff(d,a)||{}}}}return Object.keys(a).forEach(o=>{i.formatAt(r,s,o,a[o])}),r+s},e)}var Ei,vn,S9,A9=M(()=>{Ae();Ei=ot(si(),1);Rr();wi();pn();Ma();vn=class extends Uo{constructor(e,t,r){let{emitter:n}=r;super(e,t),this.emitter=n,this.batch=!1,this.optimize(),this.enable(),this.domNode.addEventListener("dragstart",s=>this.handleDragStart(s))}batchStart(){Array.isArray(this.batch)||(this.batch=[])}batchEnd(){if(!this.batch)return;let e=this.batch;this.batch=!1,this.update(e)}emitMount(e){this.emitter.emit(K.events.SCROLL_BLOT_MOUNT,e)}emitUnmount(e){this.emitter.emit(K.events.SCROLL_BLOT_UNMOUNT,e)}emitEmbedUpdate(e,t){this.emitter.emit(K.events.SCROLL_EMBED_UPDATE,e,t)}deleteAt(e,t){let[r,n]=this.line(e),[s]=this.line(e+t);if(super.deleteAt(e,t),s!=null&&r!==s&&n>0){if(r instanceof rt||s instanceof rt){this.optimize();return}let a=s.children.head instanceof pt?null:s.children.head;r.moveChildren(s,a),r.remove()}this.optimize()}enable(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;this.domNode.setAttribute("contenteditable",e?"true":"false")}formatAt(e,t,r,n){super.formatAt(e,t,r,n),this.optimize()}insertAt(e,t,r){if(e>=this.length())if(r==null||this.scroll.query(t,Y.BLOCK)==null){let n=this.scroll.create(this.statics.defaultChild.blotName);this.appendChild(n),r==null&&t.endsWith(` -`)?n.insertAt(0,t.slice(0,-1),r):n.insertAt(0,t,r)}else{let n=this.scroll.create(t,r);this.appendChild(n)}else super.insertAt(e,t,r);this.optimize()}insertBefore(e,t){if(e.statics.scope===Y.INLINE_BLOT){let r=this.scroll.create(this.statics.defaultChild.blotName);r.appendChild(e),super.insertBefore(r,t)}else super.insertBefore(e,t)}insertContents(e,t){let r=this.deltaToRenderBlocks(t.concat(new Ei.default().insert(` -`))),n=r.pop();if(n==null)return;this.batchStart();let s=r.shift();if(s){let l=s.type==="block"&&(s.delta.length()===0||!this.descendant(rt,e)[0]&&e{this.formatAt(c-1,1,g,m[g])}),e=c}let[a,o]=this.children.find(e);if(r.length&&(a&&(a=a.split(o),o=0),r.forEach(l=>{if(l.type==="block"){let h=this.createBlock(l.attributes,a||void 0);_f(h,0,l.delta)}else{let h=this.create(l.key,l.value);this.insertBefore(h,a||void 0),Object.keys(l.attributes).forEach(d=>{h.format(d,l.attributes[d])})}})),n.type==="block"&&n.delta.length()){let l=a?a.offset(a.scroll)+o:this.length();_f(this,l,n.delta)}this.batchEnd(),this.optimize()}isEnabled(){return this.domNode.getAttribute("contenteditable")==="true"}leaf(e){let t=this.path(e).pop();if(!t)return[null,-1];let[r,n]=t;return r instanceof Je?[r,n]:[null,-1]}line(e){return e===this.length()?this.line(e-1):this.descendant(N9,e)}lines(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Number.MAX_VALUE,r=(n,s,a)=>{let o=[],l=a;return n.children.forEachAt(s,a,(h,d,c)=>{N9(h)?o.push(h):h instanceof ha&&(o=o.concat(r(h,d,l))),l-=c}),o};return r(this,e,t)}optimize(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.batch||(super.optimize(e,t),e.length>0&&this.emitter.emit(K.events.SCROLL_OPTIMIZE,e,t))}path(e){return super.path(e).slice(1)}remove(){}update(e){if(this.batch){Array.isArray(e)&&(this.batch=this.batch.concat(e));return}let t=K.sources.USER;typeof e=="string"&&(t=e),Array.isArray(e)||(e=this.observer.takeRecords()),e=e.filter(r=>{let{target:n}=r,s=this.find(n,!0);return s&&!E9(s)}),e.length>0&&this.emitter.emit(K.events.SCROLL_BEFORE_UPDATE,t,e),super.update(e.concat([])),e.length>0&&this.emitter.emit(K.events.SCROLL_UPDATE,t,e)}updateEmbedAt(e,t,r){let[n]=this.descendant(s=>s instanceof rt,e);n&&n.statics.blotName===t&&E9(n)&&n.updateContent(r)}handleDragStart(e){e.preventDefault()}deltaToRenderBlocks(e){let t=[],r=new Ei.default;return e.forEach(n=>{let s=n?.insert;if(s)if(typeof s=="string"){let a=s.split(` -`);a.slice(0,-1).forEach(l=>{r.insert(l,n.attributes),t.push({type:"block",delta:r,attributes:n.attributes??{}}),r=new Ei.default});let o=a[a.length-1];o&&r.insert(o,n.attributes)}else{let a=Object.keys(s)[0];if(!a)return;this.query(a,Y.INLINE)?r.push(n):(r.length()&&t.push({type:"block",delta:r,attributes:{}}),r=new Ei.default,t.push({type:"blockEmbed",key:a,value:s[a],attributes:n.attributes??{}}))}}),r.length()&&t.push({type:"block",delta:r,attributes:{}}),t}createBlock(e,t){let r,n={};Object.entries(e).forEach(o=>{let[l,h]=o;this.query(l,Y.BLOCK&Y.BLOT)!=null?r=l:n[l]=h});let s=this.create(r||this.statics.defaultChild.blotName,r?e[r]:void 0);this.insertBefore(s,t||void 0);let a=s.length();return Object.entries(n).forEach(o=>{let[l,h]=o;s.formatAt(0,a,l,h)}),s}};P(vn,"blotName","scroll"),P(vn,"className","ql-editor"),P(vn,"tagName","DIV"),P(vn,"defaultChild",ke),P(vn,"allowedChildren",[ke,rt,Ni]);S9=vn});var Lf,k9,zf,od,If=M(()=>{Ae();Lf={scope:Y.BLOCK,whitelist:["right","center","justify"]},k9=new kt("align","align",Lf),zf=new Qe("align","ql-align",Lf),od=new Vt("align","text-align",Lf)});var ol,C9,ll,ld=M(()=>{Ae();ol=class extends Vt{value(e){let t=super.value(e);return t.startsWith("rgb(")?(t=t.replace(/^[^\d]+/,"").replace(/[^\d]+$/,""),`#${t.split(",").map(n=>`00${parseInt(n,10).toString(16)}`.slice(-2)).join("")}`):t}},C9=new Qe("color","ql-color",{scope:Y.INLINE}),ll=new ol("color","color",{scope:Y.INLINE})});var _9,hl,Rf=M(()=>{Ae();ld();_9=new Qe("background","ql-bg",{scope:Y.INLINE}),hl=new ol("background","background-color",{scope:Y.INLINE})});var rr,Xe,Ta,hd=M(()=>{wi();pn();el();Ir();zr();Ma();Kt();rr=class extends Ni{static create(e){let t=super.create(e);return t.setAttribute("spellcheck","false"),t}code(e,t){return this.children.map(r=>r.length()<=1?"":r.domNode.innerText).join(` +`),this.scroll.insertAt(e,t),Object.keys(r).forEach(n=>{this.scroll.formatAt(e,t.length,n,r[n])}),this.update(new Ze.default().retain(e).insert(t,yr(r)))}isBlank(){if(this.scroll.children.length===0)return!0;if(this.scroll.children.length>1)return!1;let e=this.scroll.children.head;if(e?.statics.blotName!==De.blotName)return!1;let t=e;return t.children.length>1?!1:t.children.head instanceof Et}removeFormat(e,t){let r=this.getText(e,t),[n,s]=this.scroll.line(e+t),a=0,o=new Ze.default;n!=null&&(a=n.length()-s,o=n.delta().slice(s,s+a-1).insert(` +`));let h=this.getContents(e,t+a).diff(new Ze.default().insert(r).concat(o)),d=new Ze.default().retain(e).concat(h);return this.applyDelta(d)}update(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:void 0,n=this.delta;if(t.length===1&&t[0].type==="characterData"&&t[0].target.data.match(QO)&&this.scroll.find(t[0].target)){let s=this.scroll.find(t[0].target),a=ai(s),o=s.offset(this.scroll),l=t[0].oldValue.replace(On.CONTENTS,""),h=new Ze.default().insert(l),d=new Ze.default().insert(s.value()),c=r&&{oldRange:j9(r.oldRange,-o),newRange:j9(r.newRange,-o)};e=new Ze.default().retain(o).concat(h.diff(d,c)).reduce((m,g)=>g.insert?m.insert(g.insert,a):m.push(g),new Ze.default),this.delta=n.compose(e)}else this.delta=this.getDelta(),(!e||!ys(n.compose(e),this.delta))&&(e=n.diff(this.delta,r));return e}};G9=Nm});var Gd,Qe,Di=T(()=>{Gd=class{constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.quill=e,this.options=t}};U(Gd,"DEFAULTS",{});Qe=Gd});var Vd,Em,Ka,Wd=T(()=>{Re();Kr();Vd="\uFEFF",Em=class extends Ke{constructor(e,t){super(e,t),this.contentNode=document.createElement("span"),this.contentNode.setAttribute("contenteditable","false"),Array.from(this.domNode.childNodes).forEach(r=>{this.contentNode.appendChild(r)}),this.leftGuard=document.createTextNode(Vd),this.rightGuard=document.createTextNode(Vd),this.domNode.appendChild(this.leftGuard),this.domNode.appendChild(this.contentNode),this.domNode.appendChild(this.rightGuard)}index(e,t){return e===this.leftGuard?0:e===this.rightGuard?1:super.index(e,t)}restore(e){let t=null,r,n=e.data.split(Vd).join("");if(e===this.leftGuard)if(this.prev instanceof nt){let s=this.prev.length();this.prev.insertAt(s,n),t={startNode:this.prev.domNode,startOffset:s+n.length}}else r=document.createTextNode(n),this.parent.insertBefore(this.scroll.create(r),this),t={startNode:r,startOffset:n.length};else e===this.rightGuard&&(this.next instanceof nt?(this.next.insertAt(0,n),t={startNode:this.next.domNode,startOffset:n.length}):(r=document.createTextNode(n),this.parent.insertBefore(this.scroll.create(r),this.next),t={startNode:r,startOffset:n.length}));return e.data=Vd,t}update(e,t){e.forEach(r=>{if(r.type==="characterData"&&(r.target===this.leftGuard||r.target===this.rightGuard)){let n=this.restore(r.target);n&&(t.range=n)}})}},Ka=Em});var Sm,W9,Y9=T(()=>{Wd();Qr();Sm=class{constructor(e,t){U(this,"isComposing",!1);this.scroll=e,this.emitter=t,this.setupListeners()}setupListeners(){this.scroll.domNode.addEventListener("compositionstart",e=>{this.isComposing||this.handleCompositionStart(e)}),this.scroll.domNode.addEventListener("compositionend",e=>{this.isComposing&&queueMicrotask(()=>{this.handleCompositionEnd(e)})})}handleCompositionStart(e){let t=e.target instanceof Node?this.scroll.find(e.target,!0):null;t&&!(t instanceof Ka)&&(this.emitter.emit(J.events.COMPOSITION_BEFORE_START,e),this.scroll.batchStart(),this.emitter.emit(J.events.COMPOSITION_START,e),this.isComposing=!0)}handleCompositionEnd(e){this.emitter.emit(J.events.COMPOSITION_BEFORE_END,e),this.scroll.batchEnd(),this.emitter.emit(J.events.COMPOSITION_END,e),this.isComposing=!1}},W9=Sm});var Bl,Am,Za,km=T(()=>{Bl=class Bl{constructor(e,t){U(this,"modules",{});this.quill=e,this.options=t}init(){Object.keys(this.options.modules).forEach(e=>{this.modules[e]==null&&this.addModule(e)})}addModule(e){let t=this.quill.constructor.import(`modules/${e}`);return this.modules[e]=new t(this.quill,this.options.modules[e]||{}),this.modules[e]}};U(Bl,"DEFAULTS",{modules:{}}),U(Bl,"themes",{default:Bl});Am=Bl,Za=Am});var tB,iB,Yd,X9,rB,K9,Z9=T(()=>{tB=i=>i.parentElement||i.getRootNode().host||null,iB=i=>{let e=i.getBoundingClientRect(),t="offsetWidth"in i&&Math.abs(e.width)/i.offsetWidth||1,r="offsetHeight"in i&&Math.abs(e.height)/i.offsetHeight||1;return{top:e.top,right:e.left+i.clientWidth*t,bottom:e.top+i.clientHeight*r,left:e.left}},Yd=i=>{let e=parseInt(i,10);return Number.isNaN(e)?0:e},X9=(i,e,t,r,n,s)=>ir?0:ir?e-i>r-t?i+n-t:e-r+s:0,rB=(i,e)=>{let t=i.ownerDocument,r=e,n=i;for(;n;){let s=n===t.body,a=s?{top:0,right:window.visualViewport?.width??t.documentElement.clientWidth,bottom:window.visualViewport?.height??t.documentElement.clientHeight,left:0}:iB(n),o=getComputedStyle(n),l=X9(r.left,r.right,a.left,a.right,Yd(o.scrollPaddingLeft),Yd(o.scrollPaddingRight)),h=X9(r.top,r.bottom,a.top,a.bottom,Yd(o.scrollPaddingTop),Yd(o.scrollPaddingBottom));if(l||h)if(s)t.defaultView?.scrollBy(l,h);else{let{scrollLeft:d,scrollTop:c}=n;h&&(n.scrollTop+=h),l&&(n.scrollLeft+=l);let f=n.scrollLeft-d,m=n.scrollTop-c;r={left:r.left-f,top:r.top-m,right:r.right-f,bottom:r.bottom-m}}n=s||o.position==="fixed"?null:tB(n)}},K9=rB});var nB,sB,aB,Q9,J9=T(()=>{Re();nB=100,sB=["block","break","cursor","inline","scroll","text"],aB=(i,e,t)=>{let r=new Ln;return sB.forEach(n=>{let s=e.query(n);s&&r.register(s)}),i.forEach(n=>{let s=e.query(n);s||t.error(`Cannot register "${n}" specified in "formats" config. Are you sure it was registered?`);let a=0;for(;s;)if(r.register(s),s="blotName"in s?s.requiredContainer??null:null,a+=1,a>nB){t.error(`Cycle detected in registering blot requiredContainer: "${n}"`);break}}),r},Q9=aB});function ey(i){return typeof i=="string"?document.querySelector(i):i}function Cm(i){return Object.entries(i??{}).reduce((e,t)=>{let[r,n]=t;return{...e,[r]:n===!0?{}:n}},{})}function ty(i){return Object.fromEntries(Object.entries(i).filter(e=>e[1]!==void 0))}function oB(i,e){let t=ey(i);if(!t)throw new Error("Invalid Quill container");let n=!e.theme||e.theme===B.DEFAULTS.theme?Za:B.import(`themes/${e.theme}`);if(!n)throw new Error(`Invalid theme ${e.theme}. Did you register it?`);let{modules:s,...a}=B.DEFAULTS,{modules:o,...l}=n.DEFAULTS,h=Cm(e.modules);h!=null&&h.toolbar&&h.toolbar.constructor!==Object&&(h={...h,toolbar:{container:h.toolbar}});let d=ri({},Cm(s),Cm(o),h),c={...a,...ty(l),...ty(e)},f=e.registry;return f?e.formats&&Qa.warn('Ignoring "formats" option because "registry" is specified'):f=e.formats?Q9(e.formats,c.registry,Qa):c.registry,{...c,registry:f,container:t,theme:n,modules:Object.entries(d).reduce((m,g)=>{let[x,y]=g;if(!y)return m;let b=B.import(`modules/${x}`);return b==null?(Qa.error(`Cannot load ${x} module. Are you sure you registered it?`),m):{...m,[x]:ri({},b.DEFAULTS||{},y)}},{}),bounds:ey(c.bounds)}}function Qi(i,e,t,r){if(!this.isEnabled()&&e===J.sources.USER&&!this.allowReadOnlyEdits)return new Bn.default;let n=t==null?null:this.getSelection(),s=this.editor.delta,a=i();if(n!=null&&(t===!0&&(t=n.index),r==null?n=iy(n,a,e):r!==0&&(n=iy(n,t,r,e)),this.setSelection(n,J.sources.SILENT)),a.length()>0){let o=[J.events.TEXT_CHANGE,a,s,e];this.emitter.emit(J.events.EDITOR_CHANGE,...o),e!==J.sources.SILENT&&this.emitter.emit(...o)}return a}function Jr(i,e,t,r,n){let s={};return typeof i.index=="number"&&typeof i.length=="number"?typeof e!="number"?(n=r,r=t,t=e,e=i.length,i=i.index):(e=i.length,i=i.index):typeof e!="number"&&(n=r,r=t,t=e,e=0),typeof t=="object"?(s=t,n=r):typeof t=="string"&&(r!=null?s[t]=r:n=t),n=n||J.sources.API,[i,e,s,n]}function iy(i,e,t,r){let n=typeof t=="number"?t:0;if(i==null)return null;let s,a;return e&&typeof e.transformPosition=="function"?[s,a]=[i.index,i.index+i.length].map(o=>e.transformPosition(o,r!==J.sources.USER)):[s,a]=[i.index,i.index+i.length].map(o=>o=0?o+n:Math.max(e,o+n)),new $t(s,a-s)}var Bn,Qa,Xd,Ji,B,oi=T(()=>{kn();Re();Bn=pt(pi(),1);V9();Qr();pm();Cs();Di();Dl();Y9();km();Z9();J9();Qa=gi("quill"),Xd=new Ln;ni.uiClass="ql-ui";Ji=class Ji{static debug(e){e===!0&&(e="log"),gi.level(e)}static find(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return zl.get(e)||Xd.find(e,t)}static import(e){return this.imports[e]==null&&Qa.error(`Cannot import ${e}. Are you sure it was registered?`),this.imports[e]}static register(){if(typeof(arguments.length<=0?void 0:arguments[0])!="string"){let e=arguments.length<=0?void 0:arguments[0],t=!!(!(arguments.length<=1)&&arguments[1]),r="attrName"in e?e.attrName:e.blotName;typeof r=="string"?this.register(`formats/${r}`,e,t):Object.keys(e).forEach(n=>{this.register(n,e[n],t)})}else{let e=arguments.length<=0?void 0:arguments[0],t=arguments.length<=1?void 0:arguments[1],r=!!(!(arguments.length<=2)&&arguments[2]);this.imports[e]!=null&&!r&&Qa.warn(`Overwriting ${e} with`,t),this.imports[e]=t,(e.startsWith("blots/")||e.startsWith("formats/"))&&t&&typeof t!="boolean"&&t.blotName!=="abstract"&&Xd.register(t),typeof t.register=="function"&&t.register(Xd)}}constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(this.options=oB(e,t),this.container=this.options.container,this.container==null){Qa.error("Invalid Quill container",e);return}this.options.debug&&Ji.debug(this.options.debug);let r=this.container.innerHTML.trim();this.container.classList.add("ql-container"),this.container.innerHTML="",zl.set(this.container,this),this.root=this.addContainer("ql-editor"),this.root.classList.add("ql-blank"),this.emitter=new J;let n=vl.blotName,s=this.options.registry.query(n);if(!s||!("blotName"in s))throw new Error(`Cannot initialize Quill without "${n}" blot`);if(this.scroll=new s(this.options.registry,this.root,{emitter:this.emitter}),this.editor=new G9(this.scroll),this.selection=new U9(this.scroll,this.emitter),this.composition=new W9(this.scroll,this.emitter),this.theme=new this.options.theme(this,this.options),this.keyboard=this.theme.addModule("keyboard"),this.clipboard=this.theme.addModule("clipboard"),this.history=this.theme.addModule("history"),this.uploader=this.theme.addModule("uploader"),this.theme.addModule("input"),this.theme.addModule("uiNode"),this.theme.init(),this.emitter.on(J.events.EDITOR_CHANGE,a=>{a===J.events.TEXT_CHANGE&&this.root.classList.toggle("ql-blank",this.editor.isBlank())}),this.emitter.on(J.events.SCROLL_UPDATE,(a,o)=>{let l=this.selection.lastRange,[h]=this.selection.getRange(),d=l&&h?{oldRange:l,newRange:h}:void 0;Qi.call(this,()=>this.editor.update(null,o,d),a)}),this.emitter.on(J.events.SCROLL_EMBED_UPDATE,(a,o)=>{let l=this.selection.lastRange,[h]=this.selection.getRange(),d=l&&h?{oldRange:l,newRange:h}:void 0;Qi.call(this,()=>{let c=new Bn.default().retain(a.offset(this)).retain({[a.statics.blotName]:o});return this.editor.update(c,[],d)},Ji.sources.USER)}),r){let a=this.clipboard.convert({html:`${r}


    `,text:` +`});this.setContents(a)}this.history.clear(),this.options.placeholder&&this.root.setAttribute("data-placeholder",this.options.placeholder),this.options.readOnly&&this.disable(),this.allowReadOnlyEdits=!1}addContainer(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;if(typeof e=="string"){let r=e;e=document.createElement("div"),e.classList.add(r)}return this.container.insertBefore(e,t),e}blur(){this.selection.setRange(null)}deleteText(e,t,r){return[e,t,,r]=Jr(e,t,r),Qi.call(this,()=>this.editor.deleteText(e,t),r,e,-1*t)}disable(){this.enable(!1)}editReadOnly(e){this.allowReadOnlyEdits=!0;let t=e();return this.allowReadOnlyEdits=!1,t}enable(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;this.scroll.enable(e),this.container.classList.toggle("ql-disabled",!e)}focus(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.selection.focus(),e.preventScroll||this.scrollSelectionIntoView()}format(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:J.sources.API;return Qi.call(this,()=>{let n=this.getSelection(!0),s=new Bn.default;if(n==null)return s;if(this.scroll.query(e,X.BLOCK))s=this.editor.formatLine(n.index,n.length,{[e]:t});else{if(n.length===0)return this.selection.format(e,t),s;s=this.editor.formatText(n.index,n.length,{[e]:t})}return this.setSelection(n,J.sources.SILENT),s},r)}formatLine(e,t,r,n,s){let a;return[e,t,a,s]=Jr(e,t,r,n,s),Qi.call(this,()=>this.editor.formatLine(e,t,a),s,e,0)}formatText(e,t,r,n,s){let a;return[e,t,a,s]=Jr(e,t,r,n,s),Qi.call(this,()=>this.editor.formatText(e,t,a),s,e,0)}getBounds(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=null;if(typeof e=="number"?r=this.selection.getBounds(e,t):r=this.selection.getBounds(e.index,e.length),!r)return null;let n=this.container.getBoundingClientRect();return{bottom:r.bottom-n.top,height:r.height,left:r.left-n.left,right:r.right-n.left,top:r.top-n.top,width:r.width}}getContents(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.getLength()-e;return[e,t]=Jr(e,t),this.editor.getContents(e,t)}getFormat(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.getSelection(!0),t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return typeof e=="number"?this.editor.getFormat(e,t):this.editor.getFormat(e.index,e.length)}getIndex(e){return e.offset(this.scroll)}getLength(){return this.scroll.length()}getLeaf(e){return this.scroll.leaf(e)}getLine(e){return this.scroll.line(e)}getLines(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Number.MAX_VALUE;return typeof e!="number"?this.scroll.lines(e.index,e.length):this.scroll.lines(e,t)}getModule(e){return this.theme.modules[e]}getSelection(){return arguments.length>0&&arguments[0]!==void 0&&arguments[0]&&this.focus(),this.update(),this.selection.getRange()[0]}getSemanticHTML(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,t=arguments.length>1?arguments[1]:void 0;return typeof e=="number"&&(t=t??this.getLength()-e),[e,t]=Jr(e,t),this.editor.getHTML(e,t)}getText(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,t=arguments.length>1?arguments[1]:void 0;return typeof e=="number"&&(t=t??this.getLength()-e),[e,t]=Jr(e,t),this.editor.getText(e,t)}hasFocus(){return this.selection.hasFocus()}insertEmbed(e,t,r){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:Ji.sources.API;return Qi.call(this,()=>this.editor.insertEmbed(e,t,r),n,e)}insertText(e,t,r,n,s){let a;return[e,,a,s]=Jr(e,0,r,n,s),Qi.call(this,()=>this.editor.insertText(e,t,a),s,e,t.length)}isEnabled(){return this.scroll.isEnabled()}off(){return this.emitter.off(...arguments)}on(){return this.emitter.on(...arguments)}once(){return this.emitter.once(...arguments)}removeFormat(e,t,r){return[e,t,,r]=Jr(e,t,r),Qi.call(this,()=>this.editor.removeFormat(e,t),r,e)}scrollRectIntoView(e){K9(this.root,e)}scrollIntoView(){console.warn("Quill#scrollIntoView() has been deprecated and will be removed in the near future. Please use Quill#scrollSelectionIntoView() instead."),this.scrollSelectionIntoView()}scrollSelectionIntoView(){let e=this.selection.lastRange,t=e&&this.selection.getBounds(e.index,e.length);t&&this.scrollRectIntoView(t)}setContents(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:J.sources.API;return Qi.call(this,()=>{e=new Bn.default(e);let r=this.getLength(),n=this.editor.deleteText(0,r),s=this.editor.insertContents(0,e),a=this.editor.deleteText(this.getLength()-1,1);return n.compose(s).compose(a)},t)}setSelection(e,t,r){e==null?this.selection.setRange(null,t||Ji.sources.API):([e,t,,r]=Jr(e,t,r),this.selection.setRange(new $t(Math.max(0,e),t),r),r!==J.sources.SILENT&&this.scrollSelectionIntoView())}setText(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:J.sources.API,r=new Bn.default().insert(e);return this.setContents(r,t)}update(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:J.sources.USER,t=this.scroll.update(e);return this.selection.update(e),t}updateContents(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:J.sources.API;return Qi.call(this,()=>(e=new Bn.default(e),this.editor.applyDelta(e)),t,!0)}};U(Ji,"DEFAULTS",{bounds:null,modules:{clipboard:!0,keyboard:!0,history:!0,uploader:!0},placeholder:"",readOnly:!1,registry:Xd,theme:"default"}),U(Ji,"events",J.events),U(Ji,"sources",J.sources),U(Ji,"version","2.0.3"),U(Ji,"imports",{delta:Bn.default,parchment:bl,"core/module":Qe,"core/theme":Za});B=Ji});var _m,Oi,Ja=T(()=>{Re();_m=class extends qa{},Oi=_m});function ry(i){return i instanceof De||i instanceof ft}function ny(i){return typeof i.updateContent=="function"}function Lm(i,e,t){t.reduce((r,n)=>{let s=Bi.Op.length(n),a=n.attributes||{};if(n.insert!=null){if(typeof n.insert=="string"){let o=n.insert;i.insertAt(r,o);let[l]=i.descendant(dt,r),h=ai(l);a=Bi.AttributeMap.diff(h,a)||{}}else if(typeof n.insert=="object"){let o=Object.keys(n.insert)[0];if(o==null)return r;if(i.insertAt(r,o,n.insert[o]),i.scroll.query(o,X.INLINE)!=null){let[h]=i.descendant(dt,r),d=ai(h);a=Bi.AttributeMap.diff(d,a)||{}}}}return Object.keys(a).forEach(o=>{i.formatAt(r,s,o,a[o])}),r+s},e)}var Bi,Pn,sy,ay=T(()=>{Re();Bi=pt(pi(),1);Qr();zi();Dn();Ja();Pn=class extends vl{constructor(e,t,r){let{emitter:n}=r;super(e,t),this.emitter=n,this.batch=!1,this.optimize(),this.enable(),this.domNode.addEventListener("dragstart",s=>this.handleDragStart(s))}batchStart(){Array.isArray(this.batch)||(this.batch=[])}batchEnd(){if(!this.batch)return;let e=this.batch;this.batch=!1,this.update(e)}emitMount(e){this.emitter.emit(J.events.SCROLL_BLOT_MOUNT,e)}emitUnmount(e){this.emitter.emit(J.events.SCROLL_BLOT_UNMOUNT,e)}emitEmbedUpdate(e,t){this.emitter.emit(J.events.SCROLL_EMBED_UPDATE,e,t)}deleteAt(e,t){let[r,n]=this.line(e),[s]=this.line(e+t);if(super.deleteAt(e,t),s!=null&&r!==s&&n>0){if(r instanceof ft||s instanceof ft){this.optimize();return}let a=s.children.head instanceof Et?null:s.children.head;r.moveChildren(s,a),r.remove()}this.optimize()}enable(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;this.domNode.setAttribute("contenteditable",e?"true":"false")}formatAt(e,t,r,n){super.formatAt(e,t,r,n),this.optimize()}insertAt(e,t,r){if(e>=this.length())if(r==null||this.scroll.query(t,X.BLOCK)==null){let n=this.scroll.create(this.statics.defaultChild.blotName);this.appendChild(n),r==null&&t.endsWith(` +`)?n.insertAt(0,t.slice(0,-1),r):n.insertAt(0,t,r)}else{let n=this.scroll.create(t,r);this.appendChild(n)}else super.insertAt(e,t,r);this.optimize()}insertBefore(e,t){if(e.statics.scope===X.INLINE_BLOT){let r=this.scroll.create(this.statics.defaultChild.blotName);r.appendChild(e),super.insertBefore(r,t)}else super.insertBefore(e,t)}insertContents(e,t){let r=this.deltaToRenderBlocks(t.concat(new Bi.default().insert(` +`))),n=r.pop();if(n==null)return;this.batchStart();let s=r.shift();if(s){let l=s.type==="block"&&(s.delta.length()===0||!this.descendant(ft,e)[0]&&e{this.formatAt(c-1,1,g,m[g])}),e=c}let[a,o]=this.children.find(e);if(r.length&&(a&&(a=a.split(o),o=0),r.forEach(l=>{if(l.type==="block"){let h=this.createBlock(l.attributes,a||void 0);Lm(h,0,l.delta)}else{let h=this.create(l.key,l.value);this.insertBefore(h,a||void 0),Object.keys(l.attributes).forEach(d=>{h.format(d,l.attributes[d])})}})),n.type==="block"&&n.delta.length()){let l=a?a.offset(a.scroll)+o:this.length();Lm(this,l,n.delta)}this.batchEnd(),this.optimize()}isEnabled(){return this.domNode.getAttribute("contenteditable")==="true"}leaf(e){let t=this.path(e).pop();if(!t)return[null,-1];let[r,n]=t;return r instanceof dt?[r,n]:[null,-1]}line(e){return e===this.length()?this.line(e-1):this.descendant(ry,e)}lines(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Number.MAX_VALUE,r=(n,s,a)=>{let o=[],l=a;return n.children.forEachAt(s,a,(h,d,c)=>{ry(h)?o.push(h):h instanceof qa&&(o=o.concat(r(h,d,l))),l-=c}),o};return r(this,e,t)}optimize(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.batch||(super.optimize(e,t),e.length>0&&this.emitter.emit(J.events.SCROLL_OPTIMIZE,e,t))}path(e){return super.path(e).slice(1)}remove(){}update(e){if(this.batch){Array.isArray(e)&&(this.batch=this.batch.concat(e));return}let t=J.sources.USER;typeof e=="string"&&(t=e),Array.isArray(e)||(e=this.observer.takeRecords()),e=e.filter(r=>{let{target:n}=r,s=this.find(n,!0);return s&&!ny(s)}),e.length>0&&this.emitter.emit(J.events.SCROLL_BEFORE_UPDATE,t,e),super.update(e.concat([])),e.length>0&&this.emitter.emit(J.events.SCROLL_UPDATE,t,e)}updateEmbedAt(e,t,r){let[n]=this.descendant(s=>s instanceof ft,e);n&&n.statics.blotName===t&&ny(n)&&n.updateContent(r)}handleDragStart(e){e.preventDefault()}deltaToRenderBlocks(e){let t=[],r=new Bi.default;return e.forEach(n=>{let s=n?.insert;if(s)if(typeof s=="string"){let a=s.split(` +`);a.slice(0,-1).forEach(l=>{r.insert(l,n.attributes),t.push({type:"block",delta:r,attributes:n.attributes??{}}),r=new Bi.default});let o=a[a.length-1];o&&r.insert(o,n.attributes)}else{let a=Object.keys(s)[0];if(!a)return;this.query(a,X.INLINE)?r.push(n):(r.length()&&t.push({type:"block",delta:r,attributes:{}}),r=new Bi.default,t.push({type:"blockEmbed",key:a,value:s[a],attributes:n.attributes??{}}))}}),r.length()&&t.push({type:"block",delta:r,attributes:{}}),t}createBlock(e,t){let r,n={};Object.entries(e).forEach(o=>{let[l,h]=o;this.query(l,X.BLOCK&X.BLOT)!=null?r=l:n[l]=h});let s=this.create(r||this.statics.defaultChild.blotName,r?e[r]:void 0);this.insertBefore(s,t||void 0);let a=s.length();return Object.entries(n).forEach(o=>{let[l,h]=o;s.formatAt(0,a,l,h)}),s}};U(Pn,"blotName","scroll"),U(Pn,"className","ql-editor"),U(Pn,"tagName","DIV"),U(Pn,"defaultChild",De),U(Pn,"allowedChildren",[De,ft,Oi]);sy=Pn});var Im,oy,zm,Kd,Rm=T(()=>{Re();Im={scope:X.BLOCK,whitelist:["right","center","justify"]},oy=new qt("align","align",Im),zm=new ht("align","ql-align",Im),Kd=new si("align","text-align",Im)});var Pl,ly,Fl,Zd=T(()=>{Re();Pl=class extends si{value(e){let t=super.value(e);return t.startsWith("rgb(")?(t=t.replace(/^[^\d]+/,"").replace(/[^\d]+$/,""),`#${t.split(",").map(n=>`00${parseInt(n,10).toString(16)}`.slice(-2)).join("")}`):t}},ly=new ht("color","ql-color",{scope:X.INLINE}),Fl=new Pl("color","color",{scope:X.INLINE})});var hy,ql,Dm=T(()=>{Re();Zd();hy=new ht("background","ql-bg",{scope:X.INLINE}),ql=new Pl("background","background-color",{scope:X.INLINE})});var wr,st,eo,Qd=T(()=>{zi();Dn();Ll();Zr();Kr();Ja();oi();wr=class extends Oi{static create(e){let t=super.create(e);return t.setAttribute("spellcheck","false"),t}code(e,t){return this.children.map(r=>r.length()<=1?"":r.domNode.innerText).join(` `).slice(e,e+t)}html(e,t){return`
    -${rs(this.code(e,t))}
    -
    `}},Xe=class extends ke{static register(){R.register(rr)}};P(Xe,"TAB"," ");Ta=class extends gt{};Ta.blotName="code";Ta.tagName="CODE";Xe.blotName="code-block";Xe.className="ql-code-block";Xe.tagName="DIV";rr.blotName="code-block-container";rr.className="ql-code-block-container";rr.tagName="DIV";rr.allowedChildren=[Xe];Xe.allowedChildren=[Ve,pt,gn];Xe.requiredContainer=rr});var Df,dd,Of,cd,Bf=M(()=>{Ae();Df={scope:Y.BLOCK,whitelist:["rtl"]},dd=new kt("direction","dir",Df),Of=new Qe("direction","ql-direction",Df),cd=new Vt("direction","direction",Df)});var L9,Ff,Pf,ud,qf=M(()=>{Ae();L9={scope:Y.INLINE,whitelist:["serif","monospace"]},Ff=new Qe("font","ql-font",L9),Pf=class extends Vt{value(e){return super.value(e).replace(/["']/g,"")}},ud=new Pf("font","font-family",L9)});var Hf,fd,Uf=M(()=>{Ae();Hf=new Qe("size","ql-size",{scope:Y.INLINE,whitelist:["small","large","huge"]}),fd=new Vt("size","font-size",{scope:Y.INLINE,whitelist:["10px","18px","32px"]})});function z9(i){return{key:"Tab",shiftKey:!i,format:{"code-block":!0},handler(e,t){let{event:r}=t,n=this.quill.scroll.query("code-block"),{TAB:s}=n;if(e.length===0&&!r.shiftKey){this.quill.insertText(e.index,s,R.sources.USER),this.quill.setSelection(e.index+s.length,R.sources.SILENT);return}let a=e.length===0?this.quill.getLines(e.index,1):this.quill.getLines(e),{index:o,length:l}=e;a.forEach((h,d)=>{i?(h.insertAt(0,s),d===0?o+=s.length:l+=s.length):h.domNode.textContent.startsWith(s)&&(h.deleteAt(0,s.length),d===0?o-=s.length:l-=s.length)}),this.quill.update(R.sources.USER),this.quill.setSelection(o,l,R.sources.SILENT)}}}function md(i,e){return{key:i,shiftKey:e,altKey:null,[i==="ArrowLeft"?"prefix":"suffix"]:/^$/,handler(r){let{index:n}=r;i==="ArrowRight"&&(n+=r.length+1);let[s]=this.quill.getLeaf(n);return s instanceof Ue?(i==="ArrowLeft"?e?this.quill.setSelection(r.index-1,r.length+1,R.sources.USER):this.quill.setSelection(r.index-1,R.sources.USER):e?this.quill.setSelection(r.index,r.length+1,R.sources.USER):this.quill.setSelection(r.index+r.length+1,R.sources.USER),!1):!0}}}function $f(i){return{key:i[0],shortKey:!0,handler(e,t){this.quill.format(i,!t.format[i],R.sources.USER)}}}function I9(i){return{key:i?"ArrowUp":"ArrowDown",collapsed:!0,format:["table"],handler(e,t){let r=i?"prev":"next",n=t.line,s=n.parent[r];if(s!=null){if(s.statics.blotName==="table-row"){let a=s.children.head,o=n;for(;o.prev!=null;)o=o.prev,a=a.next;let l=a.offset(this.quill.scroll)+Math.min(t.offset,a.length()-1);this.quill.setSelection(l,0,R.sources.USER)}}else{let a=n.table()[r];a!=null&&(i?this.quill.setSelection(a.offset(this.quill.scroll)+a.length()-1,0,R.sources.USER):this.quill.setSelection(a.offset(this.quill.scroll),0,R.sources.USER))}return!1}}}function KR(i){if(typeof i=="string"||typeof i=="number")i={key:i};else if(typeof i=="object")i=er(i);else return null;return i.shortKey&&(i[VR]=i.shortKey,delete i.shortKey),i}function cl(i){let{quill:e,range:t}=i,r=e.getLines(t),n={};if(r.length>1){let s=r[0].formats(),a=r[r.length-1].formats();n=vt.AttributeMap.diff(a,s)||{}}e.deleteText(t,R.sources.USER),Object.keys(n).length>0&&e.formatLine(t.index,1,n,R.sources.USER),e.setSelection(t.index,R.sources.SILENT)}function ZR(i,e,t,r){return e.prev==null&&e.next==null?t.prev==null&&t.next==null?r===0?-1:1:t.prev==null?-1:1:e.prev==null?-1:e.next==null?1:null}var vt,WR,VR,dl,XR,pd=M(()=>{ln();vt=ot(si(),1);Ae();Kt();ns();Ti();WR=ai("quill:keyboard"),VR=/Mac/i.test(navigator.platform)?"metaKey":"ctrlKey",dl=class i extends je{static match(e,t){return["altKey","ctrlKey","metaKey","shiftKey"].some(r=>!!t[r]!==e[r]&&t[r]!==null)?!1:t.key===e.key||t.key===e.which}constructor(e,t){super(e,t),this.bindings={},Object.keys(this.options.bindings).forEach(r=>{this.options.bindings[r]&&this.addBinding(this.options.bindings[r])}),this.addBinding({key:"Enter",shiftKey:null},this.handleEnter),this.addBinding({key:"Enter",metaKey:null,ctrlKey:null,altKey:null},()=>{}),/Firefox/i.test(navigator.userAgent)?(this.addBinding({key:"Backspace"},{collapsed:!0},this.handleBackspace),this.addBinding({key:"Delete"},{collapsed:!0},this.handleDelete)):(this.addBinding({key:"Backspace"},{collapsed:!0,prefix:/^.?$/},this.handleBackspace),this.addBinding({key:"Delete"},{collapsed:!0,suffix:/^.?$/},this.handleDelete)),this.addBinding({key:"Backspace"},{collapsed:!1},this.handleDeleteRange),this.addBinding({key:"Delete"},{collapsed:!1},this.handleDeleteRange),this.addBinding({key:"Backspace",altKey:null,ctrlKey:null,metaKey:null,shiftKey:null},{collapsed:!0,offset:0},this.handleBackspace),this.listen()}addBinding(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=KR(e);if(n==null){WR.warn("Attempted to add invalid keyboard binding",n);return}typeof t=="function"&&(t={handler:t}),typeof r=="function"&&(r={handler:r}),(Array.isArray(n.key)?n.key:[n.key]).forEach(a=>{let o={...n,key:a,...t,...r};this.bindings[o.key]=this.bindings[o.key]||[],this.bindings[o.key].push(o)})}listen(){this.quill.root.addEventListener("keydown",e=>{if(e.defaultPrevented||e.isComposing||e.keyCode===229&&(e.key==="Enter"||e.key==="Backspace"))return;let n=(this.bindings[e.key]||[]).concat(this.bindings[e.which]||[]).filter(b=>i.match(e,b));if(n.length===0)return;let s=R.find(e.target,!0);if(s&&s.scroll!==this.quill.scroll)return;let a=this.quill.getSelection();if(a==null||!this.quill.hasFocus())return;let[o,l]=this.quill.getLine(a.index),[h,d]=this.quill.getLeaf(a.index),[c,f]=a.length===0?[h,d]:this.quill.getLeaf(a.index+a.length),m=h instanceof da?h.value().slice(0,d):"",g=c instanceof da?c.value().slice(f):"",x={collapsed:a.length===0,empty:a.length===0&&o.length()<=1,format:this.quill.getFormat(a),line:o,offset:l,prefix:m,suffix:g,event:e};n.some(b=>{if(b.collapsed!=null&&b.collapsed!==x.collapsed||b.empty!=null&&b.empty!==x.empty||b.offset!=null&&b.offset!==x.offset)return!1;if(Array.isArray(b.format)){if(b.format.every(E=>x.format[E]==null))return!1}else if(typeof b.format=="object"&&!Object.keys(b.format).every(E=>b.format[E]===!0?x.format[E]!=null:b.format[E]===!1?x.format[E]==null:Wn(b.format[E],x.format[E])))return!1;return b.prefix!=null&&!b.prefix.test(x.prefix)||b.suffix!=null&&!b.suffix.test(x.suffix)?!1:b.handler.call(this,a,x,b)!==!0})&&e.preventDefault()})}handleBackspace(e,t){let r=/[\uD800-\uDBFF][\uDC00-\uDFFF]$/.test(t.prefix)?2:1;if(e.index===0||this.quill.getLength()<=1)return;let n={},[s]=this.quill.getLine(e.index),a=new vt.default().retain(e.index-r).delete(r);if(t.offset===0){let[o]=this.quill.getLine(e.index-1);if(o&&!(o.statics.blotName==="block"&&o.length()<=1)){let h=s.formats(),d=this.quill.getFormat(e.index-1,1);if(n=vt.AttributeMap.diff(h,d)||{},Object.keys(n).length>0){let c=new vt.default().retain(e.index+s.length()-2).retain(1,n);a=a.compose(c)}}}this.quill.updateContents(a,R.sources.USER),this.quill.focus()}handleDelete(e,t){let r=/^[\uD800-\uDBFF][\uDC00-\uDFFF]/.test(t.suffix)?2:1;if(e.index>=this.quill.getLength()-r)return;let n={},[s]=this.quill.getLine(e.index),a=new vt.default().retain(e.index).delete(r);if(t.offset>=s.length()-1){let[o]=this.quill.getLine(e.index+1);if(o){let l=s.formats(),h=this.quill.getFormat(e.index,1);n=vt.AttributeMap.diff(l,h)||{},Object.keys(n).length>0&&(a=a.retain(o.length()-1).retain(1,n))}}this.quill.updateContents(a,R.sources.USER),this.quill.focus()}handleDeleteRange(e){cl({range:e,quill:this.quill}),this.quill.focus()}handleEnter(e,t){let r=Object.keys(t.format).reduce((s,a)=>(this.quill.scroll.query(a,Y.BLOCK)&&!Array.isArray(t.format[a])&&(s[a]=t.format[a]),s),{}),n=new vt.default().retain(e.index).delete(e.length).insert(` -`,r);this.quill.updateContents(n,R.sources.USER),this.quill.setSelection(e.index+1,R.sources.SILENT),this.quill.focus()}},XR={bindings:{bold:$f("bold"),italic:$f("italic"),underline:$f("underline"),indent:{key:"Tab",format:["blockquote","indent","list"],handler(i,e){return e.collapsed&&e.offset!==0?!0:(this.quill.format("indent","+1",R.sources.USER),!1)}},outdent:{key:"Tab",shiftKey:!0,format:["blockquote","indent","list"],handler(i,e){return e.collapsed&&e.offset!==0?!0:(this.quill.format("indent","-1",R.sources.USER),!1)}},"outdent backspace":{key:"Backspace",collapsed:!0,shiftKey:null,metaKey:null,ctrlKey:null,altKey:null,format:["indent","list"],offset:0,handler(i,e){e.format.indent!=null?this.quill.format("indent","-1",R.sources.USER):e.format.list!=null&&this.quill.format("list",!1,R.sources.USER)}},"indent code-block":z9(!0),"outdent code-block":z9(!1),"remove tab":{key:"Tab",shiftKey:!0,collapsed:!0,prefix:/\t$/,handler(i){this.quill.deleteText(i.index-1,1,R.sources.USER)}},tab:{key:"Tab",handler(i,e){if(e.format.table)return!0;this.quill.history.cutoff();let t=new vt.default().retain(i.index).delete(i.length).insert(" ");return this.quill.updateContents(t,R.sources.USER),this.quill.history.cutoff(),this.quill.setSelection(i.index+1,R.sources.SILENT),!1}},"blockquote empty enter":{key:"Enter",collapsed:!0,format:["blockquote"],empty:!0,handler(){this.quill.format("blockquote",!1,R.sources.USER)}},"list empty enter":{key:"Enter",collapsed:!0,format:["list"],empty:!0,handler(i,e){let t={list:!1};e.format.indent&&(t.indent=!1),this.quill.formatLine(i.index,i.length,t,R.sources.USER)}},"checklist enter":{key:"Enter",collapsed:!0,format:{list:"checked"},handler(i){let[e,t]=this.quill.getLine(i.index),r={...e.formats(),list:"checked"},n=new vt.default().retain(i.index).insert(` -`,r).retain(e.length()-t-1).retain(1,{list:"unchecked"});this.quill.updateContents(n,R.sources.USER),this.quill.setSelection(i.index+1,R.sources.SILENT),this.quill.scrollSelectionIntoView()}},"header enter":{key:"Enter",collapsed:!0,format:["header"],suffix:/^$/,handler(i,e){let[t,r]=this.quill.getLine(i.index),n=new vt.default().retain(i.index).insert(` -`,e.format).retain(t.length()-r-1).retain(1,{header:null});this.quill.updateContents(n,R.sources.USER),this.quill.setSelection(i.index+1,R.sources.SILENT),this.quill.scrollSelectionIntoView()}},"table backspace":{key:"Backspace",format:["table"],collapsed:!0,offset:0,handler(){}},"table delete":{key:"Delete",format:["table"],collapsed:!0,suffix:/^$/,handler(){}},"table enter":{key:"Enter",shiftKey:null,format:["table"],handler(i){let e=this.quill.getModule("table");if(e){let[t,r,n,s]=e.getTable(i),a=ZR(t,r,n,s);if(a==null)return;let o=t.offset();if(a<0){let l=new vt.default().retain(o).insert(` -`);this.quill.updateContents(l,R.sources.USER),this.quill.setSelection(i.index+1,i.length,R.sources.SILENT)}else if(a>0){o+=t.length();let l=new vt.default().retain(o).insert(` -`);this.quill.updateContents(l,R.sources.USER),this.quill.setSelection(o,R.sources.USER)}}}},"table tab":{key:"Tab",shiftKey:null,format:["table"],handler(i,e){let{event:t,line:r}=e,n=r.offset(this.quill.scroll);t.shiftKey?this.quill.setSelection(n-1,R.sources.USER):this.quill.setSelection(n+r.length(),R.sources.USER)}},"list autofill":{key:" ",shiftKey:null,collapsed:!0,format:{"code-block":!1,blockquote:!1,table:!1},prefix:/^\s*?(\d+\.|-|\*|\[ ?\]|\[x\])$/,handler(i,e){if(this.quill.scroll.query("list")==null)return!0;let{length:t}=e.prefix,[r,n]=this.quill.getLine(i.index);if(n>t)return!0;let s;switch(e.prefix.trim()){case"[]":case"[ ]":s="unchecked";break;case"[x]":s="checked";break;case"-":case"*":s="bullet";break;default:s="ordered"}this.quill.insertText(i.index," ",R.sources.USER),this.quill.history.cutoff();let a=new vt.default().retain(i.index-n).delete(t+1).retain(r.length()-2-n).retain(1,{list:s});return this.quill.updateContents(a,R.sources.USER),this.quill.history.cutoff(),this.quill.setSelection(i.index-t,R.sources.SILENT),!1}},"code exit":{key:"Enter",collapsed:!0,format:["code-block"],prefix:/^$/,suffix:/^\s*$/,handler(i){let[e,t]=this.quill.getLine(i.index),r=2,n=e;for(;n!=null&&n.length()<=1&&n.formats()["code-block"];)if(n=n.prev,r-=1,r<=0){let s=new vt.default().retain(i.index+e.length()-t-2).retain(1,{"code-block":null}).delete(1);return this.quill.updateContents(s,R.sources.USER),this.quill.setSelection(i.index-1,R.sources.SILENT),!1}return!0}},"embed left":md("ArrowLeft",!1),"embed left shift":md("ArrowLeft",!0),"embed right":md("ArrowRight",!1),"embed right shift":md("ArrowRight",!0),"table down":I9(!1),"table up":I9(!0)}};dl.DEFAULTS=XR});function jf(i){i.querySelector('[id^="docs-internal-guid-"]')&&(tD(i),eD(i))}var QR,JR,R9,eD,tD,D9=M(()=>{QR=/font-weight:\s*normal/,JR=["P","OL","UL"],R9=i=>i&&JR.includes(i.tagName),eD=i=>{Array.from(i.querySelectorAll("br")).filter(e=>R9(e.previousElementSibling)&&R9(e.nextElementSibling)).forEach(e=>{e.parentNode?.removeChild(e)})},tD=i=>{Array.from(i.querySelectorAll('b[style*="font-weight"]')).filter(e=>e.getAttribute("style")?.match(QR)).forEach(e=>{let t=i.createDocumentFragment();t.append(...e.childNodes),e.parentNode?.replaceChild(t,e)})}});function Gf(i){i.documentElement.getAttribute("xmlns:w")==="urn:schemas-microsoft-com:office:word"&&aD(i)}var iD,rD,nD,sD,aD,O9=M(()=>{iD=/\bmso-list:[^;]*ignore/i,rD=/\bmso-list:[^;]*\bl(\d+)/i,nD=/\bmso-list:[^;]*\blevel(\d+)/i,sD=(i,e)=>{let t=i.getAttribute("style"),r=t?.match(rD);if(!r)return null;let n=Number(r[1]),s=t?.match(nD),a=s?Number(s[1]):1,o=new RegExp(`@list l${n}:level${a}\\s*\\{[^\\}]*mso-level-number-format:\\s*([\\w-]+)`,"i"),l=e.match(o),h=l&&l[1]==="bullet"?"bullet":"ordered";return{id:n,indent:a,type:h,element:i}},aD=i=>{let e=Array.from(i.querySelectorAll("[style*=mso-list]")),t=[],r=[];e.forEach(a=>{(a.getAttribute("style")||"").match(iD)?t.push(a):r.push(a)}),t.forEach(a=>a.parentNode?.removeChild(a));let n=i.documentElement.innerHTML,s=r.map(a=>sD(a,n)).filter(a=>a);for(;s.length;){let a=[],o=s.shift();for(;o;)a.push(o),o=s.length&&s[0]?.element===o.element.nextElementSibling&&s[0].id===o.id?s.shift():null;let l=document.createElement("ul");a.forEach(c=>{let f=document.createElement("li");f.setAttribute("data-list",c.type),c.indent>1&&f.setAttribute("class",`ql-indent-${c.indent-1}`),f.innerHTML=c.element.innerHTML,l.appendChild(f)});let h=a[0]?.element,{parentNode:d}=h??{};h&&d?.replaceChild(l,h),a.slice(1).forEach(c=>{let{element:f}=c;d?.removeChild(f)})}}});var oD,lD,B9,P9=M(()=>{D9();O9();oD=[Gf,jf],lD=i=>{i.documentElement&&oD.forEach(e=>{e(i)})},B9=lD});function ss(i,e,t,r){return r.query(e)?i.reduce((n,s)=>{if(!s.insert)return n;if(s.attributes&&s.attributes[e])return n.push(s);let a=t?{[e]:t}:{};return n.insert(s.insert,{...a,...s.attributes})},new Zt.default):i}function fl(i,e){let t="";for(let r=i.ops.length-1;r>=0&&t.lengtha(e,s,i),new Zt.default):e.nodeType===e.ELEMENT_NODE?Array.from(e.childNodes||[]).reduce((s,a)=>{let o=xd(i,a,t,r,n);return a.nodeType===e.ELEMENT_NODE&&(o=t.reduce((l,h)=>h(a,l,i),o),o=(n.get(a)||[]).reduce((l,h)=>h(a,l,i),o)),s.concat(o)},new Zt.default):new Zt.default}function Yf(i){return(e,t,r)=>ss(t,i,!0,r)}function fD(i,e,t){let r=kt.keys(i),n=Qe.keys(i),s=Vt.keys(i),a={};return r.concat(n).concat(s).forEach(o=>{let l=t.query(o,Y.ATTRIBUTE);l!=null&&(a[l.attrName]=l.value(i),a[l.attrName])||(l=cD[o],l!=null&&(l.attrName===o||l.keyName===o)&&(a[l.attrName]=l.value(i)||void 0),l=F9[o],l!=null&&(l.attrName===o||l.keyName===o)&&(l=F9[o],a[l.attrName]=l.value(i)||void 0))}),Object.entries(a).reduce((o,l)=>{let[h,d]=l;return ss(o,h,d,t)},e)}function mD(i,e,t){let r=t.query(i);if(r==null)return e;if(r.prototype instanceof Ue){let n={},s=r.value(i);if(s!=null)return n[r.blotName]=s,new Zt.default().insert(n,r.formats(i,t))}else if(r.prototype instanceof Vn&&!fl(e,` +${ks(this.code(e,t))} +`}},st=class extends De{static register(){B.register(wr)}};U(st,"TAB"," ");eo=class extends St{};eo.blotName="code";eo.tagName="CODE";st.blotName="code-block";st.className="ql-code-block";st.tagName="DIV";wr.blotName="code-block-container";wr.className="ql-code-block-container";wr.tagName="DIV";wr.allowedChildren=[st];st.allowedChildren=[nt,Et,On];st.requiredContainer=wr});var Om,Jd,Bm,ec,Pm=T(()=>{Re();Om={scope:X.BLOCK,whitelist:["rtl"]},Jd=new qt("direction","dir",Om),Bm=new ht("direction","ql-direction",Om),ec=new si("direction","direction",Om)});var dy,qm,Fm,tc,Hm=T(()=>{Re();dy={scope:X.INLINE,whitelist:["serif","monospace"]},qm=new ht("font","ql-font",dy),Fm=class extends si{value(e){return super.value(e).replace(/["']/g,"")}},tc=new Fm("font","font-family",dy)});var Um,ic,$m=T(()=>{Re();Um=new ht("size","ql-size",{scope:X.INLINE,whitelist:["small","large","huge"]}),ic=new si("size","font-size",{scope:X.INLINE,whitelist:["10px","18px","32px"]})});function cy(i){return{key:"Tab",shiftKey:!i,format:{"code-block":!0},handler(e,t){let{event:r}=t,n=this.quill.scroll.query("code-block"),{TAB:s}=n;if(e.length===0&&!r.shiftKey){this.quill.insertText(e.index,s,B.sources.USER),this.quill.setSelection(e.index+s.length,B.sources.SILENT);return}let a=e.length===0?this.quill.getLines(e.index,1):this.quill.getLines(e),{index:o,length:l}=e;a.forEach((h,d)=>{i?(h.insertAt(0,s),d===0?o+=s.length:l+=s.length):h.domNode.textContent.startsWith(s)&&(h.deleteAt(0,s.length),d===0?o-=s.length:l-=s.length)}),this.quill.update(B.sources.USER),this.quill.setSelection(o,l,B.sources.SILENT)}}}function rc(i,e){return{key:i,shiftKey:e,altKey:null,[i==="ArrowLeft"?"prefix":"suffix"]:/^$/,handler(r){let{index:n}=r;i==="ArrowRight"&&(n+=r.length+1);let[s]=this.quill.getLeaf(n);return s instanceof Ke?(i==="ArrowLeft"?e?this.quill.setSelection(r.index-1,r.length+1,B.sources.USER):this.quill.setSelection(r.index-1,B.sources.USER):e?this.quill.setSelection(r.index,r.length+1,B.sources.USER):this.quill.setSelection(r.index+r.length+1,B.sources.USER),!1):!0}}}function jm(i){return{key:i[0],shortKey:!0,handler(e,t){this.quill.format(i,!t.format[i],B.sources.USER)}}}function uy(i){return{key:i?"ArrowUp":"ArrowDown",collapsed:!0,format:["table"],handler(e,t){let r=i?"prev":"next",n=t.line,s=n.parent[r];if(s!=null){if(s.statics.blotName==="table-row"){let a=s.children.head,o=n;for(;o.prev!=null;)o=o.prev,a=a.next;let l=a.offset(this.quill.scroll)+Math.min(t.offset,a.length()-1);this.quill.setSelection(l,0,B.sources.USER)}}else{let a=n.table()[r];a!=null&&(i?this.quill.setSelection(a.offset(this.quill.scroll)+a.length()-1,0,B.sources.USER):this.quill.setSelection(a.offset(this.quill.scroll),0,B.sources.USER))}return!1}}}function cB(i){if(typeof i=="string"||typeof i=="number")i={key:i};else if(typeof i=="object")i=yr(i);else return null;return i.shortKey&&(i[hB]=i.shortKey,delete i.shortKey),i}function Ul(i){let{quill:e,range:t}=i,r=e.getLines(t),n={};if(r.length>1){let s=r[0].formats(),a=r[r.length-1].formats();n=kt.AttributeMap.diff(a,s)||{}}e.deleteText(t,B.sources.USER),Object.keys(n).length>0&&e.formatLine(t.index,1,n,B.sources.USER),e.setSelection(t.index,B.sources.SILENT)}function uB(i,e,t,r){return e.prev==null&&e.next==null?t.prev==null&&t.next==null?r===0?-1:1:t.prev==null?-1:1:e.prev==null?-1:e.next==null?1:null}var kt,lB,hB,Hl,dB,nc=T(()=>{kn();kt=pt(pi(),1);Re();oi();Cs();Di();lB=gi("quill:keyboard"),hB=/Mac/i.test(navigator.platform)?"metaKey":"ctrlKey",Hl=class i extends Qe{static match(e,t){return["altKey","ctrlKey","metaKey","shiftKey"].some(r=>!!t[r]!==e[r]&&t[r]!==null)?!1:t.key===e.key||t.key===e.which}constructor(e,t){super(e,t),this.bindings={},Object.keys(this.options.bindings).forEach(r=>{this.options.bindings[r]&&this.addBinding(this.options.bindings[r])}),this.addBinding({key:"Enter",shiftKey:null},this.handleEnter),this.addBinding({key:"Enter",metaKey:null,ctrlKey:null,altKey:null},()=>{}),/Firefox/i.test(navigator.userAgent)?(this.addBinding({key:"Backspace"},{collapsed:!0},this.handleBackspace),this.addBinding({key:"Delete"},{collapsed:!0},this.handleDelete)):(this.addBinding({key:"Backspace"},{collapsed:!0,prefix:/^.?$/},this.handleBackspace),this.addBinding({key:"Delete"},{collapsed:!0,suffix:/^.?$/},this.handleDelete)),this.addBinding({key:"Backspace"},{collapsed:!1},this.handleDeleteRange),this.addBinding({key:"Delete"},{collapsed:!1},this.handleDeleteRange),this.addBinding({key:"Backspace",altKey:null,ctrlKey:null,metaKey:null,shiftKey:null},{collapsed:!0,offset:0},this.handleBackspace),this.listen()}addBinding(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=cB(e);if(n==null){lB.warn("Attempted to add invalid keyboard binding",n);return}typeof t=="function"&&(t={handler:t}),typeof r=="function"&&(r={handler:r}),(Array.isArray(n.key)?n.key:[n.key]).forEach(a=>{let o={...n,key:a,...t,...r};this.bindings[o.key]=this.bindings[o.key]||[],this.bindings[o.key].push(o)})}listen(){this.quill.root.addEventListener("keydown",e=>{if(e.defaultPrevented||e.isComposing||e.keyCode===229&&(e.key==="Enter"||e.key==="Backspace"))return;let n=(this.bindings[e.key]||[]).concat(this.bindings[e.which]||[]).filter(b=>i.match(e,b));if(n.length===0)return;let s=B.find(e.target,!0);if(s&&s.scroll!==this.quill.scroll)return;let a=this.quill.getSelection();if(a==null||!this.quill.hasFocus())return;let[o,l]=this.quill.getLine(a.index),[h,d]=this.quill.getLeaf(a.index),[c,f]=a.length===0?[h,d]:this.quill.getLeaf(a.index+a.length),m=h instanceof Ha?h.value().slice(0,d):"",g=c instanceof Ha?c.value().slice(f):"",x={collapsed:a.length===0,empty:a.length===0&&o.length()<=1,format:this.quill.getFormat(a),line:o,offset:l,prefix:m,suffix:g,event:e};n.some(b=>{if(b.collapsed!=null&&b.collapsed!==x.collapsed||b.empty!=null&&b.empty!==x.empty||b.offset!=null&&b.offset!==x.offset)return!1;if(Array.isArray(b.format)){if(b.format.every(S=>x.format[S]==null))return!1}else if(typeof b.format=="object"&&!Object.keys(b.format).every(S=>b.format[S]===!0?x.format[S]!=null:b.format[S]===!1?x.format[S]==null:ys(b.format[S],x.format[S])))return!1;return b.prefix!=null&&!b.prefix.test(x.prefix)||b.suffix!=null&&!b.suffix.test(x.suffix)?!1:b.handler.call(this,a,x,b)!==!0})&&e.preventDefault()})}handleBackspace(e,t){let r=/[\uD800-\uDBFF][\uDC00-\uDFFF]$/.test(t.prefix)?2:1;if(e.index===0||this.quill.getLength()<=1)return;let n={},[s]=this.quill.getLine(e.index),a=new kt.default().retain(e.index-r).delete(r);if(t.offset===0){let[o]=this.quill.getLine(e.index-1);if(o&&!(o.statics.blotName==="block"&&o.length()<=1)){let h=s.formats(),d=this.quill.getFormat(e.index-1,1);if(n=kt.AttributeMap.diff(h,d)||{},Object.keys(n).length>0){let c=new kt.default().retain(e.index+s.length()-2).retain(1,n);a=a.compose(c)}}}this.quill.updateContents(a,B.sources.USER),this.quill.focus()}handleDelete(e,t){let r=/^[\uD800-\uDBFF][\uDC00-\uDFFF]/.test(t.suffix)?2:1;if(e.index>=this.quill.getLength()-r)return;let n={},[s]=this.quill.getLine(e.index),a=new kt.default().retain(e.index).delete(r);if(t.offset>=s.length()-1){let[o]=this.quill.getLine(e.index+1);if(o){let l=s.formats(),h=this.quill.getFormat(e.index,1);n=kt.AttributeMap.diff(l,h)||{},Object.keys(n).length>0&&(a=a.retain(o.length()-1).retain(1,n))}}this.quill.updateContents(a,B.sources.USER),this.quill.focus()}handleDeleteRange(e){Ul({range:e,quill:this.quill}),this.quill.focus()}handleEnter(e,t){let r=Object.keys(t.format).reduce((s,a)=>(this.quill.scroll.query(a,X.BLOCK)&&!Array.isArray(t.format[a])&&(s[a]=t.format[a]),s),{}),n=new kt.default().retain(e.index).delete(e.length).insert(` +`,r);this.quill.updateContents(n,B.sources.USER),this.quill.setSelection(e.index+1,B.sources.SILENT),this.quill.focus()}},dB={bindings:{bold:jm("bold"),italic:jm("italic"),underline:jm("underline"),indent:{key:"Tab",format:["blockquote","indent","list"],handler(i,e){return e.collapsed&&e.offset!==0?!0:(this.quill.format("indent","+1",B.sources.USER),!1)}},outdent:{key:"Tab",shiftKey:!0,format:["blockquote","indent","list"],handler(i,e){return e.collapsed&&e.offset!==0?!0:(this.quill.format("indent","-1",B.sources.USER),!1)}},"outdent backspace":{key:"Backspace",collapsed:!0,shiftKey:null,metaKey:null,ctrlKey:null,altKey:null,format:["indent","list"],offset:0,handler(i,e){e.format.indent!=null?this.quill.format("indent","-1",B.sources.USER):e.format.list!=null&&this.quill.format("list",!1,B.sources.USER)}},"indent code-block":cy(!0),"outdent code-block":cy(!1),"remove tab":{key:"Tab",shiftKey:!0,collapsed:!0,prefix:/\t$/,handler(i){this.quill.deleteText(i.index-1,1,B.sources.USER)}},tab:{key:"Tab",handler(i,e){if(e.format.table)return!0;this.quill.history.cutoff();let t=new kt.default().retain(i.index).delete(i.length).insert(" ");return this.quill.updateContents(t,B.sources.USER),this.quill.history.cutoff(),this.quill.setSelection(i.index+1,B.sources.SILENT),!1}},"blockquote empty enter":{key:"Enter",collapsed:!0,format:["blockquote"],empty:!0,handler(){this.quill.format("blockquote",!1,B.sources.USER)}},"list empty enter":{key:"Enter",collapsed:!0,format:["list"],empty:!0,handler(i,e){let t={list:!1};e.format.indent&&(t.indent=!1),this.quill.formatLine(i.index,i.length,t,B.sources.USER)}},"checklist enter":{key:"Enter",collapsed:!0,format:{list:"checked"},handler(i){let[e,t]=this.quill.getLine(i.index),r={...e.formats(),list:"checked"},n=new kt.default().retain(i.index).insert(` +`,r).retain(e.length()-t-1).retain(1,{list:"unchecked"});this.quill.updateContents(n,B.sources.USER),this.quill.setSelection(i.index+1,B.sources.SILENT),this.quill.scrollSelectionIntoView()}},"header enter":{key:"Enter",collapsed:!0,format:["header"],suffix:/^$/,handler(i,e){let[t,r]=this.quill.getLine(i.index),n=new kt.default().retain(i.index).insert(` +`,e.format).retain(t.length()-r-1).retain(1,{header:null});this.quill.updateContents(n,B.sources.USER),this.quill.setSelection(i.index+1,B.sources.SILENT),this.quill.scrollSelectionIntoView()}},"table backspace":{key:"Backspace",format:["table"],collapsed:!0,offset:0,handler(){}},"table delete":{key:"Delete",format:["table"],collapsed:!0,suffix:/^$/,handler(){}},"table enter":{key:"Enter",shiftKey:null,format:["table"],handler(i){let e=this.quill.getModule("table");if(e){let[t,r,n,s]=e.getTable(i),a=uB(t,r,n,s);if(a==null)return;let o=t.offset();if(a<0){let l=new kt.default().retain(o).insert(` +`);this.quill.updateContents(l,B.sources.USER),this.quill.setSelection(i.index+1,i.length,B.sources.SILENT)}else if(a>0){o+=t.length();let l=new kt.default().retain(o).insert(` +`);this.quill.updateContents(l,B.sources.USER),this.quill.setSelection(o,B.sources.USER)}}}},"table tab":{key:"Tab",shiftKey:null,format:["table"],handler(i,e){let{event:t,line:r}=e,n=r.offset(this.quill.scroll);t.shiftKey?this.quill.setSelection(n-1,B.sources.USER):this.quill.setSelection(n+r.length(),B.sources.USER)}},"list autofill":{key:" ",shiftKey:null,collapsed:!0,format:{"code-block":!1,blockquote:!1,table:!1},prefix:/^\s*?(\d+\.|-|\*|\[ ?\]|\[x\])$/,handler(i,e){if(this.quill.scroll.query("list")==null)return!0;let{length:t}=e.prefix,[r,n]=this.quill.getLine(i.index);if(n>t)return!0;let s;switch(e.prefix.trim()){case"[]":case"[ ]":s="unchecked";break;case"[x]":s="checked";break;case"-":case"*":s="bullet";break;default:s="ordered"}this.quill.insertText(i.index," ",B.sources.USER),this.quill.history.cutoff();let a=new kt.default().retain(i.index-n).delete(t+1).retain(r.length()-2-n).retain(1,{list:s});return this.quill.updateContents(a,B.sources.USER),this.quill.history.cutoff(),this.quill.setSelection(i.index-t,B.sources.SILENT),!1}},"code exit":{key:"Enter",collapsed:!0,format:["code-block"],prefix:/^$/,suffix:/^\s*$/,handler(i){let[e,t]=this.quill.getLine(i.index),r=2,n=e;for(;n!=null&&n.length()<=1&&n.formats()["code-block"];)if(n=n.prev,r-=1,r<=0){let s=new kt.default().retain(i.index+e.length()-t-2).retain(1,{"code-block":null}).delete(1);return this.quill.updateContents(s,B.sources.USER),this.quill.setSelection(i.index-1,B.sources.SILENT),!1}return!0}},"embed left":rc("ArrowLeft",!1),"embed left shift":rc("ArrowLeft",!0),"embed right":rc("ArrowRight",!1),"embed right shift":rc("ArrowRight",!0),"table down":uy(!1),"table up":uy(!0)}};Hl.DEFAULTS=dB});function Gm(i){i.querySelector('[id^="docs-internal-guid-"]')&&(gB(i),pB(i))}var fB,mB,fy,pB,gB,my=T(()=>{fB=/font-weight:\s*normal/,mB=["P","OL","UL"],fy=i=>i&&mB.includes(i.tagName),pB=i=>{Array.from(i.querySelectorAll("br")).filter(e=>fy(e.previousElementSibling)&&fy(e.nextElementSibling)).forEach(e=>{e.parentNode?.removeChild(e)})},gB=i=>{Array.from(i.querySelectorAll('b[style*="font-weight"]')).filter(e=>e.getAttribute("style")?.match(fB)).forEach(e=>{let t=i.createDocumentFragment();t.append(...e.childNodes),e.parentNode?.replaceChild(t,e)})}});function Vm(i){i.documentElement.getAttribute("xmlns:w")==="urn:schemas-microsoft-com:office:word"&&wB(i)}var xB,yB,vB,bB,wB,py=T(()=>{xB=/\bmso-list:[^;]*ignore/i,yB=/\bmso-list:[^;]*\bl(\d+)/i,vB=/\bmso-list:[^;]*\blevel(\d+)/i,bB=(i,e)=>{let t=i.getAttribute("style"),r=t?.match(yB);if(!r)return null;let n=Number(r[1]),s=t?.match(vB),a=s?Number(s[1]):1,o=new RegExp(`@list l${n}:level${a}\\s*\\{[^\\}]*mso-level-number-format:\\s*([\\w-]+)`,"i"),l=e.match(o),h=l&&l[1]==="bullet"?"bullet":"ordered";return{id:n,indent:a,type:h,element:i}},wB=i=>{let e=Array.from(i.querySelectorAll("[style*=mso-list]")),t=[],r=[];e.forEach(a=>{(a.getAttribute("style")||"").match(xB)?t.push(a):r.push(a)}),t.forEach(a=>a.parentNode?.removeChild(a));let n=i.documentElement.innerHTML,s=r.map(a=>bB(a,n)).filter(a=>a);for(;s.length;){let a=[],o=s.shift();for(;o;)a.push(o),o=s.length&&s[0]?.element===o.element.nextElementSibling&&s[0].id===o.id?s.shift():null;let l=document.createElement("ul");a.forEach(c=>{let f=document.createElement("li");f.setAttribute("data-list",c.type),c.indent>1&&f.setAttribute("class",`ql-indent-${c.indent-1}`),f.innerHTML=c.element.innerHTML,l.appendChild(f)});let h=a[0]?.element,{parentNode:d}=h??{};h&&d?.replaceChild(l,h),a.slice(1).forEach(c=>{let{element:f}=c;d?.removeChild(f)})}}});var MB,TB,gy,xy=T(()=>{my();py();MB=[Vm,Gm],TB=i=>{i.documentElement&&MB.forEach(e=>{e(i)})},gy=TB});function _s(i,e,t,r){return r.query(e)?i.reduce((n,s)=>{if(!s.insert)return n;if(s.attributes&&s.attributes[e])return n.push(s);let a=t?{[e]:t}:{};return n.insert(s.insert,{...a,...s.attributes})},new li.default):i}function jl(i,e){let t="";for(let r=i.ops.length-1;r>=0&&t.lengtha(e,s,i),new li.default):e.nodeType===e.ELEMENT_NODE?Array.from(e.childNodes||[]).reduce((s,a)=>{let o=ac(i,a,t,r,n);return a.nodeType===e.ELEMENT_NODE&&(o=t.reduce((l,h)=>h(a,l,i),o),o=(n.get(a)||[]).reduce((l,h)=>h(a,l,i),o)),s.concat(o)},new li.default):new li.default}function Wm(i){return(e,t,r)=>_s(t,i,!0,r)}function kB(i,e,t){let r=qt.keys(i),n=ht.keys(i),s=si.keys(i),a={};return r.concat(n).concat(s).forEach(o=>{let l=t.query(o,X.ATTRIBUTE);l!=null&&(a[l.attrName]=l.value(i),a[l.attrName])||(l=SB[o],l!=null&&(l.attrName===o||l.keyName===o)&&(a[l.attrName]=l.value(i)||void 0),l=yy[o],l!=null&&(l.attrName===o||l.keyName===o)&&(l=yy[o],a[l.attrName]=l.value(i)||void 0))}),Object.entries(a).reduce((o,l)=>{let[h,d]=l;return _s(o,h,d,t)},e)}function CB(i,e,t){let r=t.query(i);if(r==null)return e;if(r.prototype instanceof Ke){let n={},s=r.value(i);if(s!=null)return n[r.blotName]=s,new li.default().insert(n,r.formats(i,t))}else if(r.prototype instanceof vs&&!jl(e,` `)&&e.insert(` -`),"blotName"in r&&"formats"in r&&typeof r.formats=="function")return ss(e,r.blotName,r.formats(i,t),t);return e}function pD(i,e){return fl(e,` +`),"blotName"in r&&"formats"in r&&typeof r.formats=="function")return _s(e,r.blotName,r.formats(i,t),t);return e}function _B(i,e){return jl(e,` `)||e.insert(` -`),e}function gD(i,e,t){let r=t.query("code-block"),n=r&&"formats"in r&&typeof r.formats=="function"?r.formats(i,t):!0;return ss(e,"code-block",n,t)}function xD(){return new Zt.default}function vD(i,e,t){let r=t.query(i);if(r==null||r.blotName!=="list"||!fl(e,` -`))return e;let n=-1,s=i.parentNode;for(;s!=null;)["OL","UL"].includes(s.tagName)&&(n+=1),s=s.parentNode;return n<=0?e:e.reduce((a,o)=>o.insert?o.attributes&&typeof o.attributes.indent=="number"?a.push(o):a.insert(o.insert,{indent:n,...o.attributes||{}}):a,new Zt.default)}function yD(i,e,t){let r=i,n=r.tagName==="OL"?"ordered":"bullet",s=r.getAttribute("data-checked");return s&&(n=s==="true"?"checked":"unchecked"),ss(e,"list",n,t)}function q9(i,e,t){if(!fl(e,` -`)){if(yn(i,t)&&(i.childNodes.length>0||i instanceof HTMLParagraphElement))return e.insert(` -`);if(e.length()>0&&i.nextSibling){let r=i.nextSibling;for(;r!=null;){if(yn(r,t))return e.insert(` -`);let n=t.query(r);if(n&&n.prototype instanceof rt)return e.insert(` -`);r=r.firstChild}}}return e}function bD(i,e,t){let r={},n=i.style||{};return n.fontStyle==="italic"&&(r.italic=!0),n.textDecoration==="underline"&&(r.underline=!0),n.textDecoration==="line-through"&&(r.strike=!0),(n.fontWeight?.startsWith("bold")||parseInt(n.fontWeight,10)>=700)&&(r.bold=!0),e=Object.entries(r).reduce((s,a)=>{let[o,l]=a;return ss(s,o,l,t)},e),parseFloat(n.textIndent||0)>0?new Zt.default().insert(" ").concat(e):e}function wD(i,e,t){let r=i.parentElement?.tagName==="TABLE"?i.parentElement:i.parentElement?.parentElement;if(r!=null){let s=Array.from(r.querySelectorAll("tr")).indexOf(i)+1;return ss(e,"table",s,t)}return e}function MD(i,e,t){let r=i.data;if(i.parentElement?.tagName==="O:P")return e.insert(r.trim());if(!H9(i)){if(r.trim().length===0&&r.includes(` -`)&&!uD(i,t))return e;r=r.replace(/[^\S\u00a0]/g," "),r=r.replace(/ {2,}/g," "),(i.previousSibling==null&&i.parentElement!=null&&yn(i.parentElement,t)||i.previousSibling instanceof Element&&yn(i.previousSibling,t))&&(r=r.replace(/^ /,"")),(i.nextSibling==null&&i.parentElement!=null&&yn(i.parentElement,t)||i.nextSibling instanceof Element&&yn(i.nextSibling,t))&&(r=r.replace(/ $/,"")),r=r.replaceAll("\xA0"," ")}return e.insert(r)}var Zt,hD,dD,cD,F9,ul,gd,Wf=M(()=>{Ae();Zt=ot(si(),1);wi();ns();Ti();Kt();If();Rf();hd();ld();Bf();qf();Uf();pd();P9();hD=ai("quill:clipboard"),dD=[[Node.TEXT_NODE,MD],[Node.TEXT_NODE,q9],["br",pD],[Node.ELEMENT_NODE,q9],[Node.ELEMENT_NODE,mD],[Node.ELEMENT_NODE,fD],[Node.ELEMENT_NODE,bD],["li",vD],["ol, ul",yD],["pre",gD],["tr",wD],["b",Yf("bold")],["i",Yf("italic")],["strike",Yf("strike")],["style",xD]],cD=[k9,dd].reduce((i,e)=>(i[e.keyName]=e,i),{}),F9=[od,hl,ll,cd,ud,fd].reduce((i,e)=>(i[e.keyName]=e,i),{}),ul=class extends je{constructor(e,t){super(e,t),this.quill.root.addEventListener("copy",r=>this.onCaptureCopy(r,!1)),this.quill.root.addEventListener("cut",r=>this.onCaptureCopy(r,!0)),this.quill.root.addEventListener("paste",this.onCapturePaste.bind(this)),this.matchers=[],dD.concat(this.options.matchers??[]).forEach(r=>{let[n,s]=r;this.addMatcher(n,s)})}addMatcher(e,t){this.matchers.push([e,t])}convert(e){let{html:t,text:r}=e,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(n[Xe.blotName])return new Zt.default().insert(r||"",{[Xe.blotName]:n[Xe.blotName]});if(!t)return new Zt.default().insert(r||"",n);let s=this.convertHTML(t);return fl(s,` -`)&&(s.ops[s.ops.length-1].attributes==null||n.table)?s.compose(new Zt.default().retain(s.length()-1).delete(1)):s}normalizeHTML(e){B9(e)}convertHTML(e){let t=new DOMParser().parseFromString(e,"text/html");this.normalizeHTML(t);let r=t.body,n=new WeakMap,[s,a]=this.prepareMatching(r,n);return xd(this.quill.scroll,r,s,a,n)}dangerouslyPasteHTML(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:R.sources.API;if(typeof e=="string"){let n=this.convert({html:e,text:""});this.quill.setContents(n,t),this.quill.setSelection(0,R.sources.SILENT)}else{let n=this.convert({html:t,text:""});this.quill.updateContents(new Zt.default().retain(e).concat(n),r),this.quill.setSelection(e+n.length(),R.sources.SILENT)}}onCaptureCopy(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(e.defaultPrevented)return;e.preventDefault();let[r]=this.quill.selection.getRange();if(r==null)return;let{html:n,text:s}=this.onCopy(r,t);e.clipboardData?.setData("text/plain",s),e.clipboardData?.setData("text/html",n),t&&cl({range:r,quill:this.quill})}normalizeURIList(e){return e.split(/\r?\n/).filter(t=>t[0]!=="#").join(` -`)}onCapturePaste(e){if(e.defaultPrevented||!this.quill.isEnabled())return;e.preventDefault();let t=this.quill.getSelection(!0);if(t==null)return;let r=e.clipboardData?.getData("text/html"),n=e.clipboardData?.getData("text/plain");if(!r&&!n){let a=e.clipboardData?.getData("text/uri-list");a&&(n=this.normalizeURIList(a))}let s=Array.from(e.clipboardData?.files||[]);if(!r&&s.length>0){this.quill.uploader.upload(t,s);return}if(r&&s.length>0){let a=new DOMParser().parseFromString(r,"text/html");if(a.body.childElementCount===1&&a.body.firstElementChild?.tagName==="IMG"){this.quill.uploader.upload(t,s);return}}this.onPaste(t,{html:r,text:n})}onCopy(e){let t=this.quill.getText(e);return{html:this.quill.getSemanticHTML(e),text:t}}onPaste(e,t){let{text:r,html:n}=t,s=this.quill.getFormat(e.index),a=this.convert({text:r,html:n},s);hD.log("onPaste",a,{text:r,html:n});let o=new Zt.default().retain(e.index).delete(e.length).concat(a);this.quill.updateContents(o,R.sources.USER),this.quill.setSelection(o.length()-e.length,R.sources.SILENT),this.quill.scrollSelectionIntoView()}prepareMatching(e,t){let r=[],n=[];return this.matchers.forEach(s=>{let[a,o]=s;switch(a){case Node.TEXT_NODE:n.push(o);break;case Node.ELEMENT_NODE:r.push(o);break;default:Array.from(e.querySelectorAll(a)).forEach(l=>{t.has(l)?t.get(l)?.push(o):t.set(l,[o])});break}}),[r,n]}};P(ul,"DEFAULTS",{matchers:[]});gd=new WeakMap});function U9(i,e){let t=e;for(let r=i.length-1;r>=0;r-=1){let n=i[r];i[r]={delta:t.transform(n.delta,!0),range:n.range&&Vf(n.range,t)},t=n.delta.transform(t),i[r].delta.length()===0&&i.splice(r,1)}}function TD(i,e){let t=e.ops[e.ops.length-1];return t==null?!1:t.insert!=null?typeof t.insert=="string"&&t.insert.endsWith(` -`):t.attributes!=null?Object.keys(t.attributes).some(r=>i.query(r,Y.BLOCK)!=null):!1}function ND(i,e){let t=e.reduce((n,s)=>n+(s.delete||0),0),r=e.length()-t;return TD(i,e)&&(r-=1),r}function Vf(i,e){if(!i)return i;let t=e.transformPosition(i.index),r=e.transformPosition(i.index+i.length);return{index:t,length:r-t}}var ml,$9=M(()=>{Ae();Ti();Kt();ml=class extends je{constructor(t,r){super(t,r);P(this,"lastRecorded",0);P(this,"ignoreChange",!1);P(this,"stack",{undo:[],redo:[]});P(this,"currentRange",null);this.quill.on(R.events.EDITOR_CHANGE,(n,s,a,o)=>{n===R.events.SELECTION_CHANGE?s&&o!==R.sources.SILENT&&(this.currentRange=s):n===R.events.TEXT_CHANGE&&(this.ignoreChange||(!this.options.userOnly||o===R.sources.USER?this.record(s,a):this.transform(s)),this.currentRange=Vf(this.currentRange,s))}),this.quill.keyboard.addBinding({key:"z",shortKey:!0},this.undo.bind(this)),this.quill.keyboard.addBinding({key:["z","Z"],shortKey:!0,shiftKey:!0},this.redo.bind(this)),/Win/i.test(navigator.platform)&&this.quill.keyboard.addBinding({key:"y",shortKey:!0},this.redo.bind(this)),this.quill.root.addEventListener("beforeinput",n=>{n.inputType==="historyUndo"?(this.undo(),n.preventDefault()):n.inputType==="historyRedo"&&(this.redo(),n.preventDefault())})}change(t,r){if(this.stack[t].length===0)return;let n=this.stack[t].pop();if(!n)return;let s=this.quill.getContents(),a=n.delta.invert(s);this.stack[r].push({delta:a,range:Vf(n.range,a)}),this.lastRecorded=0,this.ignoreChange=!0,this.quill.updateContents(n.delta,R.sources.USER),this.ignoreChange=!1,this.restoreSelection(n)}clear(){this.stack={undo:[],redo:[]}}cutoff(){this.lastRecorded=0}record(t,r){if(t.ops.length===0)return;this.stack.redo=[];let n=t.invert(r),s=this.currentRange,a=Date.now();if(this.lastRecorded+this.options.delay>a&&this.stack.undo.length>0){let o=this.stack.undo.pop();o&&(n=n.compose(o.delta),s=o.range)}else this.lastRecorded=a;n.length()!==0&&(this.stack.undo.push({delta:n,range:s}),this.stack.undo.length>this.options.maxStack&&this.stack.undo.shift())}redo(){this.change("redo","undo")}transform(t){U9(this.stack.undo,t),U9(this.stack.redo,t)}undo(){this.change("undo","redo")}restoreSelection(t){if(t.range)this.quill.setSelection(t.range,R.sources.USER);else{let r=ND(this.quill.scroll,t.delta);this.quill.setSelection(r,R.sources.USER)}}};P(ml,"DEFAULTS",{delay:1e3,maxStack:100,userOnly:!1})});var j9,vd,G9,Y9=M(()=>{j9=ot(si(),1);Rr();Ti();vd=class extends je{constructor(e,t){super(e,t),e.root.addEventListener("drop",r=>{r.preventDefault();let n=null;if(document.caretRangeFromPoint)n=document.caretRangeFromPoint(r.clientX,r.clientY);else if(document.caretPositionFromPoint){let a=document.caretPositionFromPoint(r.clientX,r.clientY);n=document.createRange(),n.setStart(a.offsetNode,a.offset),n.setEnd(a.offsetNode,a.offset)}let s=n&&e.selection.normalizeNative(n);if(s){let a=e.selection.normalizedToRange(s);r.dataTransfer?.files&&this.upload(a,r.dataTransfer.files)}})}upload(e,t){let r=[];Array.from(t).forEach(n=>{n&&this.options.mimetypes?.includes(n.type)&&r.push(n)}),r.length>0&&this.options.handler.call(this,e,r)}};vd.DEFAULTS={mimetypes:["image/png","image/jpeg"],handler(i,e){if(!this.quill.scroll.query("image"))return;let t=e.map(r=>new Promise(n=>{let s=new FileReader;s.onload=()=>{n(s.result)},s.readAsDataURL(r)}));Promise.all(t).then(r=>{let n=r.reduce((s,a)=>s.insert({image:a}),new j9.default().retain(i.index).delete(i.length));this.quill.updateContents(n,K.sources.USER),this.quill.setSelection(i.index+r.length,K.sources.SILENT)})}};G9=vd});function SD(i){return typeof i.data=="string"?i.data:i.dataTransfer?.types.includes("text/plain")?i.dataTransfer.getData("text/plain"):null}var W9,ED,Xf,V9,X9=M(()=>{W9=ot(si(),1);Ti();Kt();pd();ED=["insertText","insertReplacementText"],Xf=class extends je{constructor(e,t){super(e,t),e.root.addEventListener("beforeinput",r=>{this.handleBeforeInput(r)}),/Android/i.test(navigator.userAgent)||e.on(R.events.COMPOSITION_BEFORE_START,()=>{this.handleCompositionStart()})}deleteRange(e){cl({range:e,quill:this.quill})}replaceText(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";if(e.length===0)return!1;if(t){let r=this.quill.getFormat(e.index,1);this.deleteRange(e),this.quill.updateContents(new W9.default().retain(e.index).insert(t,r),R.sources.USER)}else this.deleteRange(e);return this.quill.setSelection(e.index+t.length,0,R.sources.SILENT),!0}handleBeforeInput(e){if(this.quill.composition.isComposing||e.defaultPrevented||!ED.includes(e.inputType))return;let t=e.getTargetRanges?e.getTargetRanges()[0]:null;if(!t||t.collapsed===!0)return;let r=SD(e);if(r==null)return;let n=this.quill.selection.normalizeNative(t),s=n?this.quill.selection.normalizedToRange(n):null;s&&this.replaceText(s,r)&&e.preventDefault()}handleCompositionStart(){let e=this.quill.getSelection();e&&this.replaceText(e)}};V9=Xf});var AD,kD,CD,Kf,K9,Z9=M(()=>{Ae();Ti();Kt();AD=/Mac/i.test(navigator.platform),kD=100,CD=i=>!!(i.key==="ArrowLeft"||i.key==="ArrowRight"||i.key==="ArrowUp"||i.key==="ArrowDown"||i.key==="Home"||AD&&i.key==="a"&&i.ctrlKey===!0),Kf=class extends je{constructor(t,r){super(t,r);P(this,"isListening",!1);P(this,"selectionChangeDeadline",0);this.handleArrowKeys(),this.handleNavigationShortcuts()}handleArrowKeys(){this.quill.keyboard.addBinding({key:["ArrowLeft","ArrowRight"],offset:0,shiftKey:null,handler(t,r){let{line:n,event:s}=r;if(!(n instanceof Wt)||!n.uiNode)return!0;let a=getComputedStyle(n.domNode).direction==="rtl";return a&&s.key!=="ArrowRight"||!a&&s.key!=="ArrowLeft"?!0:(this.quill.setSelection(t.index-1,t.length+(s.shiftKey?1:0),R.sources.USER),!1)}})}handleNavigationShortcuts(){this.quill.root.addEventListener("keydown",t=>{!t.defaultPrevented&&CD(t)&&this.ensureListeningToSelectionChange()})}ensureListeningToSelectionChange(){if(this.selectionChangeDeadline=Date.now()+kD,this.isListening)return;this.isListening=!0;let t=()=>{this.isListening=!1,Date.now()<=this.selectionChangeDeadline&&this.handleSelectionChange()};document.addEventListener("selectionchange",t,{once:!0})}handleSelectionChange(){let t=document.getSelection();if(!t)return;let r=t.getRangeAt(0);if(r.collapsed!==!0||r.startOffset!==0)return;let n=this.quill.scroll.find(r.startContainer);if(!(n instanceof Wt)||!n.uiNode)return;let s=document.createRange();s.setStartAfter(n.uiNode),s.setEndAfter(n.uiNode),t.removeAllRanges(),t.addRange(s)}},K9=Kf});var bn,yd,Zf=M(()=>{Kt();wi();pn();Ma();el();nd();Ir();A9();zr();Wf();$9();pd();Y9();bn=ot(si(),1);X9();Z9();Ti();R.register({"blots/block":ke,"blots/block/embed":rt,"blots/break":pt,"blots/container":Ni,"blots/cursor":gn,"blots/embed":ya,"blots/inline":gt,"blots/scroll":S9,"blots/text":Ve,"modules/clipboard":ul,"modules/history":ml,"modules/keyboard":dl,"modules/uploader":G9,"modules/input":V9,"modules/uiNode":K9});yd=R});var Qf,_D,Q9,J9=M(()=>{Ae();Qf=class extends Qe{add(e,t){let r=0;if(t==="+1"||t==="-1"){let n=this.value(e)||0;r=t==="+1"?n+1:n-1}else typeof t=="number"&&(r=t);return r===0?(this.remove(e),!0):super.add(e,r.toString())}canAdd(e,t){return super.canAdd(e,t)||super.canAdd(e,parseInt(t,10))}value(e){return parseInt(super.value(e),10)||void 0}},_D=new Qf("indent","ql-indent",{scope:Y.BLOCK,whitelist:[1,2,3,4,5,6,7,8]}),Q9=_D});var pl,ex,tx=M(()=>{wi();pl=class extends ke{};P(pl,"blotName","blockquote"),P(pl,"tagName","blockquote");ex=pl});var gl,ix,rx=M(()=>{wi();gl=class extends ke{static formats(e){return this.tagName.indexOf(e.tagName)+1}};P(gl,"blotName","header"),P(gl,"tagName",["H1","H2","H3","H4","H5","H6"]);ix=gl});var as,wn,nx=M(()=>{wi();Ma();Kt();as=class extends Ni{};as.blotName="list-container";as.tagName="OL";wn=class extends ke{static create(e){let t=super.create();return t.setAttribute("data-list",e),t}static formats(e){return e.getAttribute("data-list")||void 0}static register(){R.register(as)}constructor(e,t){super(e,t);let r=t.ownerDocument.createElement("span"),n=s=>{if(!e.isEnabled())return;let a=this.statics.formats(t,e);a==="checked"?(this.format("list","unchecked"),s.preventDefault()):a==="unchecked"&&(this.format("list","checked"),s.preventDefault())};r.addEventListener("mousedown",n),r.addEventListener("touchstart",n),this.attachUI(r)}format(e,t){e===this.statics.blotName&&t?this.domNode.setAttribute("data-list",t):super.format(e,t)}};wn.blotName="list";wn.tagName="LI";as.allowedChildren=[wn];wn.requiredContainer=as});var xl,Na,bd=M(()=>{Ir();xl=class extends gt{static create(){return super.create()}static formats(){return!0}optimize(e){super.optimize(e),this.domNode.tagName!==this.statics.tagName[0]&&this.replaceWith(this.statics.blotName)}};P(xl,"blotName","bold"),P(xl,"tagName",["STRONG","B"]);Na=xl});var vl,sx,ax=M(()=>{bd();vl=class extends Na{};P(vl,"blotName","italic"),P(vl,"tagName",["EM","I"]);sx=vl});function Jf(i,e){let t=document.createElement("a");t.href=i;let r=t.href.slice(0,t.href.indexOf(":"));return e.indexOf(r)>-1}var oi,yl=M(()=>{Ir();oi=class extends gt{static create(e){let t=super.create(e);return t.setAttribute("href",this.sanitize(e)),t.setAttribute("rel","noopener noreferrer"),t.setAttribute("target","_blank"),t}static formats(e){return e.getAttribute("href")}static sanitize(e){return Jf(e,this.PROTOCOL_WHITELIST)?e:this.SANITIZED_URL}format(e,t){e!==this.statics.blotName||!t?super.format(e,t):this.domNode.setAttribute("href",this.constructor.sanitize(t))}};P(oi,"blotName","link"),P(oi,"tagName","A"),P(oi,"SANITIZED_URL","about:blank"),P(oi,"PROTOCOL_WHITELIST",["http","https","mailto","tel","sms"])});var bl,ox,lx=M(()=>{Ir();bl=class extends gt{static create(e){return e==="super"?document.createElement("sup"):e==="sub"?document.createElement("sub"):super.create(e)}static formats(e){if(e.tagName==="SUB")return"sub";if(e.tagName==="SUP")return"super"}};P(bl,"blotName","script"),P(bl,"tagName",["SUB","SUP"]);ox=bl});var wl,hx,dx=M(()=>{bd();wl=class extends Na{};P(wl,"blotName","strike"),P(wl,"tagName",["S","STRIKE"]);hx=wl});var Ml,cx,ux=M(()=>{Ir();Ml=class extends gt{};P(Ml,"blotName","underline"),P(Ml,"tagName","U");cx=Ml});var Ea,fx,mx=M(()=>{nd();Ea=class extends ya{static create(e){if(window.katex==null)throw new Error("Formula module requires KaTeX.");let t=super.create(e);return typeof e=="string"&&(window.katex.render(e,t,{throwOnError:!1,errorColor:"#f00"}),t.setAttribute("data-value",e)),t}static value(e){return e.getAttribute("data-value")}html(){let{formula:e}=this.value();return`${e}`}};P(Ea,"blotName","formula"),P(Ea,"className","ql-formula"),P(Ea,"tagName","SPAN");fx=Ea});var px,Tl,gx,xx=M(()=>{Ae();yl();px=["alt","height","width"],Tl=class extends Ue{static create(e){let t=super.create(e);return typeof e=="string"&&t.setAttribute("src",this.sanitize(e)),t}static formats(e){return px.reduce((t,r)=>(e.hasAttribute(r)&&(t[r]=e.getAttribute(r)),t),{})}static match(e){return/\.(jpe?g|gif|png)$/.test(e)||/^data:image\/.+;base64/.test(e)}static sanitize(e){return Jf(e,["http","https","data"])?e:"//:0"}static value(e){return e.getAttribute("src")}format(e,t){px.indexOf(e)>-1?t?this.domNode.setAttribute(e,t):this.domNode.removeAttribute(e):super.format(e,t)}};P(Tl,"blotName","image"),P(Tl,"tagName","IMG");gx=Tl});var vx,Sa,yx,bx=M(()=>{wi();yl();vx=["height","width"],Sa=class extends rt{static create(e){let t=super.create(e);return t.setAttribute("frameborder","0"),t.setAttribute("allowfullscreen","true"),t.setAttribute("src",this.sanitize(e)),t}static formats(e){return vx.reduce((t,r)=>(e.hasAttribute(r)&&(t[r]=e.getAttribute(r)),t),{})}static sanitize(e){return oi.sanitize(e)}static value(e){return e.getAttribute("src")}format(e,t){vx.indexOf(e)>-1?t?this.domNode.setAttribute(e,t):this.domNode.removeAttribute(e):super.format(e,t)}html(){let{video:e}=this.value();return`
    ${e}`}};P(Sa,"blotName","video"),P(Sa,"className","ql-video"),P(Sa,"tagName","IFRAME");yx=Sa});var wd,Nl,Or,Qt,os,LD,El,wx=M(()=>{wd=ot(si(),1);Ae();Ir();Kt();Ti();wi();pn();el();zr();hd();Wf();Nl=new Qe("code-token","hljs",{scope:Y.INLINE}),Or=class i extends gt{static formats(e,t){for(;e!=null&&e!==t.domNode;){if(e.classList&&e.classList.contains(Xe.className))return super.formats(e,t);e=e.parentNode}}constructor(e,t,r){super(e,t,r),Nl.add(this.domNode,r)}format(e,t){e!==i.blotName?super.format(e,t):t?Nl.add(this.domNode,t):(Nl.remove(this.domNode),this.domNode.classList.remove(this.statics.className))}optimize(){super.optimize(...arguments),Nl.value(this.domNode)||this.unwrap()}};Or.blotName="code-token";Or.className="ql-token";Qt=class extends Xe{static create(e){let t=super.create(e);return typeof e=="string"&&t.setAttribute("data-language",e),t}static formats(e){return e.getAttribute("data-language")||"plain"}static register(){}format(e,t){e===this.statics.blotName&&t?this.domNode.setAttribute("data-language",t):super.format(e,t)}replaceWith(e,t){return this.formatAt(0,this.length(),Or.blotName,!1),super.replaceWith(e,t)}},os=class extends rr{attach(){super.attach(),this.forceNext=!1,this.scroll.emitMount(this)}format(e,t){e===Qt.blotName&&(this.forceNext=!0,this.children.forEach(r=>{r.format(e,t)}))}formatAt(e,t,r,n){r===Qt.blotName&&(this.forceNext=!0),super.formatAt(e,t,r,n)}highlight(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(this.children.head==null)return;let n=`${Array.from(this.domNode.childNodes).filter(a=>a!==this.uiNode).map(a=>a.textContent).join(` +`),e}function LB(i,e,t){let r=t.query("code-block"),n=r&&"formats"in r&&typeof r.formats=="function"?r.formats(i,t):!0;return _s(e,"code-block",n,t)}function IB(){return new li.default}function zB(i,e,t){let r=t.query(i);if(r==null||r.blotName!=="list"||!jl(e,` +`))return e;let n=-1,s=i.parentNode;for(;s!=null;)["OL","UL"].includes(s.tagName)&&(n+=1),s=s.parentNode;return n<=0?e:e.reduce((a,o)=>o.insert?o.attributes&&typeof o.attributes.indent=="number"?a.push(o):a.insert(o.insert,{indent:n,...o.attributes||{}}):a,new li.default)}function RB(i,e,t){let r=i,n=r.tagName==="OL"?"ordered":"bullet",s=r.getAttribute("data-checked");return s&&(n=s==="true"?"checked":"unchecked"),_s(e,"list",n,t)}function vy(i,e,t){if(!jl(e,` +`)){if(Fn(i,t)&&(i.childNodes.length>0||i instanceof HTMLParagraphElement))return e.insert(` +`);if(e.length()>0&&i.nextSibling){let r=i.nextSibling;for(;r!=null;){if(Fn(r,t))return e.insert(` +`);let n=t.query(r);if(n&&n.prototype instanceof ft)return e.insert(` +`);r=r.firstChild}}}return e}function DB(i,e,t){let r={},n=i.style||{};return n.fontStyle==="italic"&&(r.italic=!0),n.textDecoration==="underline"&&(r.underline=!0),n.textDecoration==="line-through"&&(r.strike=!0),(n.fontWeight?.startsWith("bold")||parseInt(n.fontWeight,10)>=700)&&(r.bold=!0),e=Object.entries(r).reduce((s,a)=>{let[o,l]=a;return _s(s,o,l,t)},e),parseFloat(n.textIndent||0)>0?new li.default().insert(" ").concat(e):e}function OB(i,e,t){let r=i.parentElement?.tagName==="TABLE"?i.parentElement:i.parentElement?.parentElement;if(r!=null){let s=Array.from(r.querySelectorAll("tr")).indexOf(i)+1;return _s(e,"table",s,t)}return e}function BB(i,e,t){let r=i.data;if(i.parentElement?.tagName==="O:P")return e.insert(r.trim());if(!by(i)){if(r.trim().length===0&&r.includes(` +`)&&!AB(i,t))return e;r=r.replace(/[^\S\u00a0]/g," "),r=r.replace(/ {2,}/g," "),(i.previousSibling==null&&i.parentElement!=null&&Fn(i.parentElement,t)||i.previousSibling instanceof Element&&Fn(i.previousSibling,t))&&(r=r.replace(/^ /,"")),(i.nextSibling==null&&i.parentElement!=null&&Fn(i.parentElement,t)||i.nextSibling instanceof Element&&Fn(i.nextSibling,t))&&(r=r.replace(/ $/,"")),r=r.replaceAll("\xA0"," ")}return e.insert(r)}var li,NB,EB,SB,yy,$l,sc,Ym=T(()=>{Re();li=pt(pi(),1);zi();Cs();Di();oi();Rm();Dm();Qd();Zd();Pm();Hm();$m();nc();xy();NB=gi("quill:clipboard"),EB=[[Node.TEXT_NODE,BB],[Node.TEXT_NODE,vy],["br",_B],[Node.ELEMENT_NODE,vy],[Node.ELEMENT_NODE,CB],[Node.ELEMENT_NODE,kB],[Node.ELEMENT_NODE,DB],["li",zB],["ol, ul",RB],["pre",LB],["tr",OB],["b",Wm("bold")],["i",Wm("italic")],["strike",Wm("strike")],["style",IB]],SB=[oy,Jd].reduce((i,e)=>(i[e.keyName]=e,i),{}),yy=[Kd,ql,Fl,ec,tc,ic].reduce((i,e)=>(i[e.keyName]=e,i),{}),$l=class extends Qe{constructor(e,t){super(e,t),this.quill.root.addEventListener("copy",r=>this.onCaptureCopy(r,!1)),this.quill.root.addEventListener("cut",r=>this.onCaptureCopy(r,!0)),this.quill.root.addEventListener("paste",this.onCapturePaste.bind(this)),this.matchers=[],EB.concat(this.options.matchers??[]).forEach(r=>{let[n,s]=r;this.addMatcher(n,s)})}addMatcher(e,t){this.matchers.push([e,t])}convert(e){let{html:t,text:r}=e,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(n[st.blotName])return new li.default().insert(r||"",{[st.blotName]:n[st.blotName]});if(!t)return new li.default().insert(r||"",n);let s=this.convertHTML(t);return jl(s,` +`)&&(s.ops[s.ops.length-1].attributes==null||n.table)?s.compose(new li.default().retain(s.length()-1).delete(1)):s}normalizeHTML(e){gy(e)}convertHTML(e){let t=new DOMParser().parseFromString(e,"text/html");this.normalizeHTML(t);let r=t.body,n=new WeakMap,[s,a]=this.prepareMatching(r,n);return ac(this.quill.scroll,r,s,a,n)}dangerouslyPasteHTML(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:B.sources.API;if(typeof e=="string"){let n=this.convert({html:e,text:""});this.quill.setContents(n,t),this.quill.setSelection(0,B.sources.SILENT)}else{let n=this.convert({html:t,text:""});this.quill.updateContents(new li.default().retain(e).concat(n),r),this.quill.setSelection(e+n.length(),B.sources.SILENT)}}onCaptureCopy(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(e.defaultPrevented)return;e.preventDefault();let[r]=this.quill.selection.getRange();if(r==null)return;let{html:n,text:s}=this.onCopy(r,t);e.clipboardData?.setData("text/plain",s),e.clipboardData?.setData("text/html",n),t&&Ul({range:r,quill:this.quill})}normalizeURIList(e){return e.split(/\r?\n/).filter(t=>t[0]!=="#").join(` +`)}onCapturePaste(e){if(e.defaultPrevented||!this.quill.isEnabled())return;e.preventDefault();let t=this.quill.getSelection(!0);if(t==null)return;let r=e.clipboardData?.getData("text/html"),n=e.clipboardData?.getData("text/plain");if(!r&&!n){let a=e.clipboardData?.getData("text/uri-list");a&&(n=this.normalizeURIList(a))}let s=Array.from(e.clipboardData?.files||[]);if(!r&&s.length>0){this.quill.uploader.upload(t,s);return}if(r&&s.length>0){let a=new DOMParser().parseFromString(r,"text/html");if(a.body.childElementCount===1&&a.body.firstElementChild?.tagName==="IMG"){this.quill.uploader.upload(t,s);return}}this.onPaste(t,{html:r,text:n})}onCopy(e){let t=this.quill.getText(e);return{html:this.quill.getSemanticHTML(e),text:t}}onPaste(e,t){let{text:r,html:n}=t,s=this.quill.getFormat(e.index),a=this.convert({text:r,html:n},s);NB.log("onPaste",a,{text:r,html:n});let o=new li.default().retain(e.index).delete(e.length).concat(a);this.quill.updateContents(o,B.sources.USER),this.quill.setSelection(o.length()-e.length,B.sources.SILENT),this.quill.scrollSelectionIntoView()}prepareMatching(e,t){let r=[],n=[];return this.matchers.forEach(s=>{let[a,o]=s;switch(a){case Node.TEXT_NODE:n.push(o);break;case Node.ELEMENT_NODE:r.push(o);break;default:Array.from(e.querySelectorAll(a)).forEach(l=>{t.has(l)?t.get(l)?.push(o):t.set(l,[o])});break}}),[r,n]}};U($l,"DEFAULTS",{matchers:[]});sc=new WeakMap});function wy(i,e){let t=e;for(let r=i.length-1;r>=0;r-=1){let n=i[r];i[r]={delta:t.transform(n.delta,!0),range:n.range&&Xm(n.range,t)},t=n.delta.transform(t),i[r].delta.length()===0&&i.splice(r,1)}}function PB(i,e){let t=e.ops[e.ops.length-1];return t==null?!1:t.insert!=null?typeof t.insert=="string"&&t.insert.endsWith(` +`):t.attributes!=null?Object.keys(t.attributes).some(r=>i.query(r,X.BLOCK)!=null):!1}function FB(i,e){let t=e.reduce((n,s)=>n+(s.delete||0),0),r=e.length()-t;return PB(i,e)&&(r-=1),r}function Xm(i,e){if(!i)return i;let t=e.transformPosition(i.index),r=e.transformPosition(i.index+i.length);return{index:t,length:r-t}}var Gl,My=T(()=>{Re();Di();oi();Gl=class extends Qe{constructor(t,r){super(t,r);U(this,"lastRecorded",0);U(this,"ignoreChange",!1);U(this,"stack",{undo:[],redo:[]});U(this,"currentRange",null);this.quill.on(B.events.EDITOR_CHANGE,(n,s,a,o)=>{n===B.events.SELECTION_CHANGE?s&&o!==B.sources.SILENT&&(this.currentRange=s):n===B.events.TEXT_CHANGE&&(this.ignoreChange||(!this.options.userOnly||o===B.sources.USER?this.record(s,a):this.transform(s)),this.currentRange=Xm(this.currentRange,s))}),this.quill.keyboard.addBinding({key:"z",shortKey:!0},this.undo.bind(this)),this.quill.keyboard.addBinding({key:["z","Z"],shortKey:!0,shiftKey:!0},this.redo.bind(this)),/Win/i.test(navigator.platform)&&this.quill.keyboard.addBinding({key:"y",shortKey:!0},this.redo.bind(this)),this.quill.root.addEventListener("beforeinput",n=>{n.inputType==="historyUndo"?(this.undo(),n.preventDefault()):n.inputType==="historyRedo"&&(this.redo(),n.preventDefault())})}change(t,r){if(this.stack[t].length===0)return;let n=this.stack[t].pop();if(!n)return;let s=this.quill.getContents(),a=n.delta.invert(s);this.stack[r].push({delta:a,range:Xm(n.range,a)}),this.lastRecorded=0,this.ignoreChange=!0,this.quill.updateContents(n.delta,B.sources.USER),this.ignoreChange=!1,this.restoreSelection(n)}clear(){this.stack={undo:[],redo:[]}}cutoff(){this.lastRecorded=0}record(t,r){if(t.ops.length===0)return;this.stack.redo=[];let n=t.invert(r),s=this.currentRange,a=Date.now();if(this.lastRecorded+this.options.delay>a&&this.stack.undo.length>0){let o=this.stack.undo.pop();o&&(n=n.compose(o.delta),s=o.range)}else this.lastRecorded=a;n.length()!==0&&(this.stack.undo.push({delta:n,range:s}),this.stack.undo.length>this.options.maxStack&&this.stack.undo.shift())}redo(){this.change("redo","undo")}transform(t){wy(this.stack.undo,t),wy(this.stack.redo,t)}undo(){this.change("undo","redo")}restoreSelection(t){if(t.range)this.quill.setSelection(t.range,B.sources.USER);else{let r=FB(this.quill.scroll,t.delta);this.quill.setSelection(r,B.sources.USER)}}};U(Gl,"DEFAULTS",{delay:1e3,maxStack:100,userOnly:!1})});var Ty,oc,Ny,Ey=T(()=>{Ty=pt(pi(),1);Qr();Di();oc=class extends Qe{constructor(e,t){super(e,t),e.root.addEventListener("drop",r=>{r.preventDefault();let n=null;if(document.caretRangeFromPoint)n=document.caretRangeFromPoint(r.clientX,r.clientY);else if(document.caretPositionFromPoint){let a=document.caretPositionFromPoint(r.clientX,r.clientY);n=document.createRange(),n.setStart(a.offsetNode,a.offset),n.setEnd(a.offsetNode,a.offset)}let s=n&&e.selection.normalizeNative(n);if(s){let a=e.selection.normalizedToRange(s);r.dataTransfer?.files&&this.upload(a,r.dataTransfer.files)}})}upload(e,t){let r=[];Array.from(t).forEach(n=>{n&&this.options.mimetypes?.includes(n.type)&&r.push(n)}),r.length>0&&this.options.handler.call(this,e,r)}};oc.DEFAULTS={mimetypes:["image/png","image/jpeg"],handler(i,e){if(!this.quill.scroll.query("image"))return;let t=e.map(r=>new Promise(n=>{let s=new FileReader;s.onload=()=>{n(s.result)},s.readAsDataURL(r)}));Promise.all(t).then(r=>{let n=r.reduce((s,a)=>s.insert({image:a}),new Ty.default().retain(i.index).delete(i.length));this.quill.updateContents(n,J.sources.USER),this.quill.setSelection(i.index+r.length,J.sources.SILENT)})}};Ny=oc});function HB(i){return typeof i.data=="string"?i.data:i.dataTransfer?.types.includes("text/plain")?i.dataTransfer.getData("text/plain"):null}var Sy,qB,Km,Ay,ky=T(()=>{Sy=pt(pi(),1);Di();oi();nc();qB=["insertText","insertReplacementText"],Km=class extends Qe{constructor(e,t){super(e,t),e.root.addEventListener("beforeinput",r=>{this.handleBeforeInput(r)}),/Android/i.test(navigator.userAgent)||e.on(B.events.COMPOSITION_BEFORE_START,()=>{this.handleCompositionStart()})}deleteRange(e){Ul({range:e,quill:this.quill})}replaceText(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";if(e.length===0)return!1;if(t){let r=this.quill.getFormat(e.index,1);this.deleteRange(e),this.quill.updateContents(new Sy.default().retain(e.index).insert(t,r),B.sources.USER)}else this.deleteRange(e);return this.quill.setSelection(e.index+t.length,0,B.sources.SILENT),!0}handleBeforeInput(e){if(this.quill.composition.isComposing||e.defaultPrevented||!qB.includes(e.inputType))return;let t=e.getTargetRanges?e.getTargetRanges()[0]:null;if(!t||t.collapsed===!0)return;let r=HB(e);if(r==null)return;let n=this.quill.selection.normalizeNative(t),s=n?this.quill.selection.normalizedToRange(n):null;s&&this.replaceText(s,r)&&e.preventDefault()}handleCompositionStart(){let e=this.quill.getSelection();e&&this.replaceText(e)}};Ay=Km});var UB,$B,jB,Zm,Cy,_y=T(()=>{Re();Di();oi();UB=/Mac/i.test(navigator.platform),$B=100,jB=i=>!!(i.key==="ArrowLeft"||i.key==="ArrowRight"||i.key==="ArrowUp"||i.key==="ArrowDown"||i.key==="Home"||UB&&i.key==="a"&&i.ctrlKey===!0),Zm=class extends Qe{constructor(t,r){super(t,r);U(this,"isListening",!1);U(this,"selectionChangeDeadline",0);this.handleArrowKeys(),this.handleNavigationShortcuts()}handleArrowKeys(){this.quill.keyboard.addBinding({key:["ArrowLeft","ArrowRight"],offset:0,shiftKey:null,handler(t,r){let{line:n,event:s}=r;if(!(n instanceof ni)||!n.uiNode)return!0;let a=getComputedStyle(n.domNode).direction==="rtl";return a&&s.key!=="ArrowRight"||!a&&s.key!=="ArrowLeft"?!0:(this.quill.setSelection(t.index-1,t.length+(s.shiftKey?1:0),B.sources.USER),!1)}})}handleNavigationShortcuts(){this.quill.root.addEventListener("keydown",t=>{!t.defaultPrevented&&jB(t)&&this.ensureListeningToSelectionChange()})}ensureListeningToSelectionChange(){if(this.selectionChangeDeadline=Date.now()+$B,this.isListening)return;this.isListening=!0;let t=()=>{this.isListening=!1,Date.now()<=this.selectionChangeDeadline&&this.handleSelectionChange()};document.addEventListener("selectionchange",t,{once:!0})}handleSelectionChange(){let t=document.getSelection();if(!t)return;let r=t.getRangeAt(0);if(r.collapsed!==!0||r.startOffset!==0)return;let n=this.quill.scroll.find(r.startContainer);if(!(n instanceof ni)||!n.uiNode)return;let s=document.createRange();s.setStartAfter(n.uiNode),s.setEndAfter(n.uiNode),t.removeAllRanges(),t.addRange(s)}},Cy=Zm});var qn,lc,Qm=T(()=>{oi();zi();Dn();Ja();Ll();Wd();Zr();ay();Kr();Ym();My();nc();Ey();qn=pt(pi(),1);ky();_y();Di();B.register({"blots/block":De,"blots/block/embed":ft,"blots/break":Et,"blots/container":Oi,"blots/cursor":On,"blots/embed":Ka,"blots/inline":St,"blots/scroll":sy,"blots/text":nt,"modules/clipboard":$l,"modules/history":Gl,"modules/keyboard":Hl,"modules/uploader":Ny,"modules/input":Ay,"modules/uiNode":Cy});lc=B});var Jm,GB,Ly,Iy=T(()=>{Re();Jm=class extends ht{add(e,t){let r=0;if(t==="+1"||t==="-1"){let n=this.value(e)||0;r=t==="+1"?n+1:n-1}else typeof t=="number"&&(r=t);return r===0?(this.remove(e),!0):super.add(e,r.toString())}canAdd(e,t){return super.canAdd(e,t)||super.canAdd(e,parseInt(t,10))}value(e){return parseInt(super.value(e),10)||void 0}},GB=new Jm("indent","ql-indent",{scope:X.BLOCK,whitelist:[1,2,3,4,5,6,7,8]}),Ly=GB});var Vl,zy,Ry=T(()=>{zi();Vl=class extends De{};U(Vl,"blotName","blockquote"),U(Vl,"tagName","blockquote");zy=Vl});var Wl,Dy,Oy=T(()=>{zi();Wl=class extends De{static formats(e){return this.tagName.indexOf(e.tagName)+1}};U(Wl,"blotName","header"),U(Wl,"tagName",["H1","H2","H3","H4","H5","H6"]);Dy=Wl});var Ls,Hn,By=T(()=>{zi();Ja();oi();Ls=class extends Oi{};Ls.blotName="list-container";Ls.tagName="OL";Hn=class extends De{static create(e){let t=super.create();return t.setAttribute("data-list",e),t}static formats(e){return e.getAttribute("data-list")||void 0}static register(){B.register(Ls)}constructor(e,t){super(e,t);let r=t.ownerDocument.createElement("span"),n=s=>{if(!e.isEnabled())return;let a=this.statics.formats(t,e);a==="checked"?(this.format("list","unchecked"),s.preventDefault()):a==="unchecked"&&(this.format("list","checked"),s.preventDefault())};r.addEventListener("mousedown",n),r.addEventListener("touchstart",n),this.attachUI(r)}format(e,t){e===this.statics.blotName&&t?this.domNode.setAttribute("data-list",t):super.format(e,t)}};Hn.blotName="list";Hn.tagName="LI";Ls.allowedChildren=[Hn];Hn.requiredContainer=Ls});var Yl,to,hc=T(()=>{Zr();Yl=class extends St{static create(){return super.create()}static formats(){return!0}optimize(e){super.optimize(e),this.domNode.tagName!==this.statics.tagName[0]&&this.replaceWith(this.statics.blotName)}};U(Yl,"blotName","bold"),U(Yl,"tagName",["STRONG","B"]);to=Yl});var Xl,Py,Fy=T(()=>{hc();Xl=class extends to{};U(Xl,"blotName","italic"),U(Xl,"tagName",["EM","I"]);Py=Xl});function ep(i,e){let t=document.createElement("a");t.href=i;let r=t.href.slice(0,t.href.indexOf(":"));return e.indexOf(r)>-1}var xi,Kl=T(()=>{Zr();xi=class extends St{static create(e){let t=super.create(e);return t.setAttribute("href",this.sanitize(e)),t.setAttribute("rel","noopener noreferrer"),t.setAttribute("target","_blank"),t}static formats(e){return e.getAttribute("href")}static sanitize(e){return ep(e,this.PROTOCOL_WHITELIST)?e:this.SANITIZED_URL}format(e,t){e!==this.statics.blotName||!t?super.format(e,t):this.domNode.setAttribute("href",this.constructor.sanitize(t))}};U(xi,"blotName","link"),U(xi,"tagName","A"),U(xi,"SANITIZED_URL","about:blank"),U(xi,"PROTOCOL_WHITELIST",["http","https","mailto","tel","sms"])});var Zl,qy,Hy=T(()=>{Zr();Zl=class extends St{static create(e){return e==="super"?document.createElement("sup"):e==="sub"?document.createElement("sub"):super.create(e)}static formats(e){if(e.tagName==="SUB")return"sub";if(e.tagName==="SUP")return"super"}};U(Zl,"blotName","script"),U(Zl,"tagName",["SUB","SUP"]);qy=Zl});var Ql,Uy,$y=T(()=>{hc();Ql=class extends to{};U(Ql,"blotName","strike"),U(Ql,"tagName",["S","STRIKE"]);Uy=Ql});var Jl,jy,Gy=T(()=>{Zr();Jl=class extends St{};U(Jl,"blotName","underline"),U(Jl,"tagName","U");jy=Jl});var io,Vy,Wy=T(()=>{Wd();io=class extends Ka{static create(e){if(window.katex==null)throw new Error("Formula module requires KaTeX.");let t=super.create(e);return typeof e=="string"&&(window.katex.render(e,t,{throwOnError:!1,errorColor:"#f00"}),t.setAttribute("data-value",e)),t}static value(e){return e.getAttribute("data-value")}html(){let{formula:e}=this.value();return`${e}`}};U(io,"blotName","formula"),U(io,"className","ql-formula"),U(io,"tagName","SPAN");Vy=io});var Yy,e0,Xy,Ky=T(()=>{Re();Kl();Yy=["alt","height","width"],e0=class extends Ke{static create(e){let t=super.create(e);return typeof e=="string"&&t.setAttribute("src",this.sanitize(e)),t}static formats(e){return Yy.reduce((t,r)=>(e.hasAttribute(r)&&(t[r]=e.getAttribute(r)),t),{})}static match(e){return/\.(jpe?g|gif|png)$/.test(e)||/^data:image\/.+;base64/.test(e)}static sanitize(e){return ep(e,["http","https","data"])?e:"//:0"}static value(e){return e.getAttribute("src")}format(e,t){Yy.indexOf(e)>-1?t?this.domNode.setAttribute(e,t):this.domNode.removeAttribute(e):super.format(e,t)}};U(e0,"blotName","image"),U(e0,"tagName","IMG");Xy=e0});var Zy,ro,Qy,Jy=T(()=>{zi();Kl();Zy=["height","width"],ro=class extends ft{static create(e){let t=super.create(e);return t.setAttribute("frameborder","0"),t.setAttribute("allowfullscreen","true"),t.setAttribute("src",this.sanitize(e)),t}static formats(e){return Zy.reduce((t,r)=>(e.hasAttribute(r)&&(t[r]=e.getAttribute(r)),t),{})}static sanitize(e){return xi.sanitize(e)}static value(e){return e.getAttribute("src")}format(e,t){Zy.indexOf(e)>-1?t?this.domNode.setAttribute(e,t):this.domNode.removeAttribute(e):super.format(e,t)}html(){let{video:e}=this.value();return`${e}`}};U(ro,"blotName","video"),U(ro,"className","ql-video"),U(ro,"tagName","IFRAME");Qy=ro});var dc,t0,en,hi,Is,VB,i0,ev=T(()=>{dc=pt(pi(),1);Re();Zr();oi();Di();zi();Dn();Ll();Kr();Qd();Ym();t0=new ht("code-token","hljs",{scope:X.INLINE}),en=class i extends St{static formats(e,t){for(;e!=null&&e!==t.domNode;){if(e.classList&&e.classList.contains(st.className))return super.formats(e,t);e=e.parentNode}}constructor(e,t,r){super(e,t,r),t0.add(this.domNode,r)}format(e,t){e!==i.blotName?super.format(e,t):t?t0.add(this.domNode,t):(t0.remove(this.domNode),this.domNode.classList.remove(this.statics.className))}optimize(){super.optimize(...arguments),t0.value(this.domNode)||this.unwrap()}};en.blotName="code-token";en.className="ql-token";hi=class extends st{static create(e){let t=super.create(e);return typeof e=="string"&&t.setAttribute("data-language",e),t}static formats(e){return e.getAttribute("data-language")||"plain"}static register(){}format(e,t){e===this.statics.blotName&&t?this.domNode.setAttribute("data-language",t):super.format(e,t)}replaceWith(e,t){return this.formatAt(0,this.length(),en.blotName,!1),super.replaceWith(e,t)}},Is=class extends wr{attach(){super.attach(),this.forceNext=!1,this.scroll.emitMount(this)}format(e,t){e===hi.blotName&&(this.forceNext=!0,this.children.forEach(r=>{r.format(e,t)}))}formatAt(e,t,r,n){r===hi.blotName&&(this.forceNext=!0),super.formatAt(e,t,r,n)}highlight(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(this.children.head==null)return;let n=`${Array.from(this.domNode.childNodes).filter(a=>a!==this.uiNode).map(a=>a.textContent).join(` `)} -`,s=Qt.formats(this.children.head.domNode);if(t||this.forceNext||this.cachedText!==n){if(n.trim().length>0||this.cachedText==null){let a=this.children.reduce((l,h)=>l.concat(df(h,!1)),new wd.default),o=e(n,s);a.diff(o).reduce((l,h)=>{let{retain:d,attributes:c}=h;return d?(c&&Object.keys(c).forEach(f=>{[Qt.blotName,Or.blotName].includes(f)&&this.formatAt(l,d,f,c[f])}),l+d):l},0)}this.cachedText=n,this.forceNext=!1}}html(e,t){let[r]=this.children.find(e);return`
    -${rs(this.code(e,t))}
    -
    `}optimize(e){if(super.optimize(e),this.parent!=null&&this.children.head!=null&&this.uiNode!=null){let t=Qt.formats(this.children.head.domNode);t!==this.uiNode.value&&(this.uiNode.value=t)}}};os.allowedChildren=[Qt];Qt.requiredContainer=os;Qt.allowedChildren=[Or,gn,Ve,pt];LD=(i,e,t)=>{if(typeof i.versionString=="string"){let r=i.versionString.split(".")[0];if(parseInt(r,10)>=11)return i.highlight(t,{language:e}).value}return i.highlight(e,t).value},El=class extends je{static register(){R.register(Or,!0),R.register(Qt,!0),R.register(os,!0)}constructor(e,t){if(super(e,t),this.options.hljs==null)throw new Error("Syntax module requires highlight.js. Please include the library on the page before Quill.");this.languages=this.options.languages.reduce((r,n)=>{let{key:s}=n;return r[s]=!0,r},{}),this.highlightBlot=this.highlightBlot.bind(this),this.initListener(),this.initTimer()}initListener(){this.quill.on(R.events.SCROLL_BLOT_MOUNT,e=>{if(!(e instanceof os))return;let t=this.quill.root.ownerDocument.createElement("select");this.options.languages.forEach(r=>{let{key:n,label:s}=r,a=t.ownerDocument.createElement("option");a.textContent=s,a.setAttribute("value",n),t.appendChild(a)}),t.addEventListener("change",()=>{e.format(Qt.blotName,t.value),this.quill.root.focus(),this.highlight(e,!0)}),e.uiNode==null&&(e.attachUI(t),e.children.head&&(t.value=Qt.formats(e.children.head.domNode)))})}initTimer(){let e=null;this.quill.on(R.events.SCROLL_OPTIMIZE,()=>{e&&clearTimeout(e),e=setTimeout(()=>{this.highlight(),e=null},this.options.interval)})}highlight(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(this.quill.selection.composing)return;this.quill.update(R.sources.USER);let r=this.quill.getSelection();(e==null?this.quill.scroll.descendants(os):[e]).forEach(s=>{s.highlight(this.highlightBlot,t)}),this.quill.update(R.sources.SILENT),r!=null&&this.quill.setSelection(r,R.sources.SILENT)}highlightBlot(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"plain";if(t=this.languages[t]?t:"plain",t==="plain")return rs(e).split(` +`,s=hi.formats(this.children.head.domNode);if(t||this.forceNext||this.cachedText!==n){if(n.trim().length>0||this.cachedText==null){let a=this.children.reduce((l,h)=>l.concat(cm(h,!1)),new dc.default),o=e(n,s);a.diff(o).reduce((l,h)=>{let{retain:d,attributes:c}=h;return d?(c&&Object.keys(c).forEach(f=>{[hi.blotName,en.blotName].includes(f)&&this.formatAt(l,d,f,c[f])}),l+d):l},0)}this.cachedText=n,this.forceNext=!1}}html(e,t){let[r]=this.children.find(e);return`
    +${ks(this.code(e,t))}
    +
    `}optimize(e){if(super.optimize(e),this.parent!=null&&this.children.head!=null&&this.uiNode!=null){let t=hi.formats(this.children.head.domNode);t!==this.uiNode.value&&(this.uiNode.value=t)}}};Is.allowedChildren=[hi];hi.requiredContainer=Is;hi.allowedChildren=[en,On,nt,Et];VB=(i,e,t)=>{if(typeof i.versionString=="string"){let r=i.versionString.split(".")[0];if(parseInt(r,10)>=11)return i.highlight(t,{language:e}).value}return i.highlight(e,t).value},i0=class extends Qe{static register(){B.register(en,!0),B.register(hi,!0),B.register(Is,!0)}constructor(e,t){if(super(e,t),this.options.hljs==null)throw new Error("Syntax module requires highlight.js. Please include the library on the page before Quill.");this.languages=this.options.languages.reduce((r,n)=>{let{key:s}=n;return r[s]=!0,r},{}),this.highlightBlot=this.highlightBlot.bind(this),this.initListener(),this.initTimer()}initListener(){this.quill.on(B.events.SCROLL_BLOT_MOUNT,e=>{if(!(e instanceof Is))return;let t=this.quill.root.ownerDocument.createElement("select");this.options.languages.forEach(r=>{let{key:n,label:s}=r,a=t.ownerDocument.createElement("option");a.textContent=s,a.setAttribute("value",n),t.appendChild(a)}),t.addEventListener("change",()=>{e.format(hi.blotName,t.value),this.quill.root.focus(),this.highlight(e,!0)}),e.uiNode==null&&(e.attachUI(t),e.children.head&&(t.value=hi.formats(e.children.head.domNode)))})}initTimer(){let e=null;this.quill.on(B.events.SCROLL_OPTIMIZE,()=>{e&&clearTimeout(e),e=setTimeout(()=>{this.highlight(),e=null},this.options.interval)})}highlight(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(this.quill.selection.composing)return;this.quill.update(B.sources.USER);let r=this.quill.getSelection();(e==null?this.quill.scroll.descendants(Is):[e]).forEach(s=>{s.highlight(this.highlightBlot,t)}),this.quill.update(B.sources.SILENT),r!=null&&this.quill.setSelection(r,B.sources.SILENT)}highlightBlot(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"plain";if(t=this.languages[t]?t:"plain",t==="plain")return ks(e).split(` `).reduce((n,s,a)=>(a!==0&&n.insert(` -`,{[Xe.blotName]:t}),n.insert(s)),new wd.default);let r=this.quill.root.ownerDocument.createElement("div");return r.classList.add(Xe.className),r.innerHTML=LD(this.options.hljs,t,e),xd(this.quill.scroll,r,[(n,s)=>{let a=Nl.value(n);return a?s.compose(new wd.default().retain(s.length(),{[Or.blotName]:a})):s}],[(n,s)=>n.data.split(` +`,{[st.blotName]:t}),n.insert(s)),new dc.default);let r=this.quill.root.ownerDocument.createElement("div");return r.classList.add(st.className),r.innerHTML=VB(this.options.hljs,t,e),ac(this.quill.scroll,r,[(n,s)=>{let a=t0.value(n);return a?s.compose(new dc.default().retain(s.length(),{[en.blotName]:a})):s}],[(n,s)=>n.data.split(` `).reduce((a,o,l)=>(l!==0&&a.insert(` -`,{[Xe.blotName]:t}),a.insert(o)),s)],new WeakMap)}};El.DEFAULTS={hljs:window.hljs,interval:1e3,languages:[{key:"plain",label:"Plain"},{key:"bash",label:"Bash"},{key:"cpp",label:"C++"},{key:"cs",label:"C#"},{key:"css",label:"CSS"},{key:"diff",label:"Diff"},{key:"xml",label:"HTML/XML"},{key:"java",label:"Java"},{key:"javascript",label:"JavaScript"},{key:"markdown",label:"Markdown"},{key:"php",label:"PHP"},{key:"python",label:"Python"},{key:"ruby",label:"Ruby"},{key:"sql",label:"SQL"}]}});function Md(){return`row-${Math.random().toString(36).slice(2,6)}`}var Sl,Si,Ai,li,Br,Mx=M(()=>{wi();Ma();Sl=class Sl extends ke{static create(e){let t=super.create();return e?t.setAttribute("data-row",e):t.setAttribute("data-row",Md()),t}static formats(e){if(e.hasAttribute("data-row"))return e.getAttribute("data-row")}cellOffset(){return this.parent?this.parent.children.indexOf(this):-1}format(e,t){e===Sl.blotName&&t?this.domNode.setAttribute("data-row",t):super.format(e,t)}row(){return this.parent}rowOffset(){return this.row()?this.row().rowOffset():-1}table(){return this.row()&&this.row().table()}};P(Sl,"blotName","table"),P(Sl,"tagName","TD");Si=Sl,Ai=class extends Ni{checkMerge(){if(super.checkMerge()&&this.next.children.head!=null){let e=this.children.head.formats(),t=this.children.tail.formats(),r=this.next.children.head.formats(),n=this.next.children.tail.formats();return e.table===t.table&&e.table===r.table&&e.table===n.table}return!1}optimize(e){super.optimize(e),this.children.forEach(t=>{if(t.next==null)return;let r=t.formats(),n=t.next.formats();if(r.table!==n.table){let s=this.splitAfter(t);s&&s.optimize(),this.prev&&this.prev.optimize()}})}rowOffset(){return this.parent?this.parent.children.indexOf(this):-1}table(){return this.parent&&this.parent.parent}};P(Ai,"blotName","table-row"),P(Ai,"tagName","TR");li=class extends Ni{};P(li,"blotName","table-body"),P(li,"tagName","TBODY");Br=class extends Ni{balanceCells(){let e=this.descendants(Ai),t=e.reduce((r,n)=>Math.max(n.children.length,r),0);e.forEach(r=>{new Array(t-r.children.length).fill(0).forEach(()=>{let n;r.children.head!=null&&(n=Si.formats(r.children.head.domNode));let s=this.scroll.create(Si.blotName,n);r.appendChild(s),s.optimize()})})}cells(e){return this.rows().map(t=>t.children.at(e))}deleteColumn(e){let[t]=this.descendant(li);t==null||t.children.head==null||t.children.forEach(r=>{let n=r.children.at(e);n?.remove()})}insertColumn(e){let[t]=this.descendant(li);t==null||t.children.head==null||t.children.forEach(r=>{let n=r.children.at(e),s=Si.formats(r.children.head.domNode),a=this.scroll.create(Si.blotName,s);r.insertBefore(a,n)})}insertRow(e){let[t]=this.descendant(li);if(t==null||t.children.head==null)return;let r=Md(),n=this.scroll.create(Ai.blotName);t.children.head.children.forEach(()=>{let a=this.scroll.create(Si.blotName,r);n.appendChild(a)});let s=t.children.at(e);t.insertBefore(n,s)}rows(){let e=this.children.head;return e==null?[]:e.children.map(t=>t)}};P(Br,"blotName","table-container"),P(Br,"tagName","TABLE");Br.allowedChildren=[li];li.requiredContainer=Br;li.allowedChildren=[Ai];Ai.requiredContainer=li;Ai.allowedChildren=[Si];Si.requiredContainer=Ai});var Tx,em,Nx,Ex=M(()=>{Tx=ot(si(),1);Kt();Ti();Mx();em=class extends je{static register(){R.register(Si),R.register(Ai),R.register(li),R.register(Br)}constructor(){super(...arguments),this.listenBalanceCells()}balanceTables(){this.quill.scroll.descendants(Br).forEach(e=>{e.balanceCells()})}deleteColumn(){let[e,,t]=this.getTable();t!=null&&(e.deleteColumn(t.cellOffset()),this.quill.update(R.sources.USER))}deleteRow(){let[,e]=this.getTable();e!=null&&(e.remove(),this.quill.update(R.sources.USER))}deleteTable(){let[e]=this.getTable();if(e==null)return;let t=e.offset();e.remove(),this.quill.update(R.sources.USER),this.quill.setSelection(t,R.sources.SILENT)}getTable(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.quill.getSelection();if(e==null)return[null,null,null,-1];let[t,r]=this.quill.getLine(e.index);if(t==null||t.statics.blotName!==Si.blotName)return[null,null,null,-1];let n=t.parent;return[n.parent.parent,n,t,r]}insertColumn(e){let t=this.quill.getSelection();if(!t)return;let[r,n,s]=this.getTable(t);if(s==null)return;let a=s.cellOffset();r.insertColumn(a+e),this.quill.update(R.sources.USER);let o=n.rowOffset();e===0&&(o+=1),this.quill.setSelection(t.index+o,t.length,R.sources.SILENT)}insertColumnLeft(){this.insertColumn(0)}insertColumnRight(){this.insertColumn(1)}insertRow(e){let t=this.quill.getSelection();if(!t)return;let[r,n,s]=this.getTable(t);if(s==null)return;let a=n.rowOffset();r.insertRow(a+e),this.quill.update(R.sources.USER),e>0?this.quill.setSelection(t,R.sources.SILENT):this.quill.setSelection(t.index+n.children.length,t.length,R.sources.SILENT)}insertRowAbove(){this.insertRow(0)}insertRowBelow(){this.insertRow(1)}insertTable(e,t){let r=this.quill.getSelection();if(r==null)return;let n=new Array(e).fill(0).reduce(s=>{let a=new Array(t).fill(` -`).join("");return s.insert(a,{table:Md()})},new Tx.default().retain(r.index));this.quill.updateContents(n,R.sources.USER),this.quill.setSelection(r.index,R.sources.SILENT),this.balanceTables()}listenBalanceCells(){this.quill.on(R.events.SCROLL_OPTIMIZE,e=>{e.some(t=>["TD","TR","TBODY","TABLE"].includes(t.target.tagName)?(this.quill.once(R.events.TEXT_CHANGE,(r,n,s)=>{s===R.sources.USER&&this.balanceTables()}),!0):!1)})}},Nx=em});function Ax(i,e,t){let r=document.createElement("button");r.setAttribute("type","button"),r.classList.add(`ql-${e}`),r.setAttribute("aria-pressed","false"),t!=null?(r.value=t,r.setAttribute("aria-label",`${e}: ${t}`)):r.setAttribute("aria-label",e),i.appendChild(r)}function zD(i,e){Array.isArray(e[0])||(e=[e]),e.forEach(t=>{let r=document.createElement("span");r.classList.add("ql-formats"),t.forEach(n=>{if(typeof n=="string")Ax(r,n);else{let s=Object.keys(n)[0],a=n[s];Array.isArray(a)?ID(r,s,a):Ax(r,s,a)}}),i.appendChild(r)})}function ID(i,e,t){let r=document.createElement("select");r.classList.add(`ql-${e}`),t.forEach(n=>{let s=document.createElement("option");n!==!1?s.setAttribute("value",String(n)):s.setAttribute("selected","selected"),r.appendChild(s)}),i.appendChild(r)}var kx,Sx,Aa,Cx=M(()=>{kx=ot(si(),1);Ae();Kt();ns();Ti();Sx=ai("quill:toolbar"),Aa=class extends je{constructor(e,t){if(super(e,t),Array.isArray(this.options.container)){let r=document.createElement("div");r.setAttribute("role","toolbar"),zD(r,this.options.container),e.container?.parentNode?.insertBefore(r,e.container),this.container=r}else typeof this.options.container=="string"?this.container=document.querySelector(this.options.container):this.container=this.options.container;if(!(this.container instanceof HTMLElement)){Sx.error("Container required for toolbar",this.options);return}this.container.classList.add("ql-toolbar"),this.controls=[],this.handlers={},this.options.handlers&&Object.keys(this.options.handlers).forEach(r=>{let n=this.options.handlers?.[r];n&&this.addHandler(r,n)}),Array.from(this.container.querySelectorAll("button, select")).forEach(r=>{this.attach(r)}),this.quill.on(R.events.EDITOR_CHANGE,()=>{let[r]=this.quill.selection.getRange();this.update(r)})}addHandler(e,t){this.handlers[e]=t}attach(e){let t=Array.from(e.classList).find(n=>n.indexOf("ql-")===0);if(!t)return;if(t=t.slice(3),e.tagName==="BUTTON"&&e.setAttribute("type","button"),this.handlers[t]==null&&this.quill.scroll.query(t)==null){Sx.warn("ignoring attaching to nonexistent format",t,e);return}let r=e.tagName==="SELECT"?"change":"click";e.addEventListener(r,n=>{let s;if(e.tagName==="SELECT"){if(e.selectedIndex<0)return;let o=e.options[e.selectedIndex];o.hasAttribute("selected")?s=!1:s=o.value||!1}else e.classList.contains("ql-active")?s=!1:s=e.value||!e.hasAttribute("value"),n.preventDefault();this.quill.focus();let[a]=this.quill.selection.getRange();if(this.handlers[t]!=null)this.handlers[t].call(this,s);else if(this.quill.scroll.query(t).prototype instanceof Ue){if(s=prompt(`Enter ${t}`),!s)return;this.quill.updateContents(new kx.default().retain(a.index).delete(a.length).insert({[t]:s}),R.sources.USER)}else this.quill.format(t,s,R.sources.USER);this.update(a)}),this.controls.push([t,e])}update(e){let t=e==null?{}:this.quill.getFormat(e);this.controls.forEach(r=>{let[n,s]=r;if(s.tagName==="SELECT"){let a=null;if(e==null)a=null;else if(t[n]==null)a=s.querySelector("option[selected]");else if(!Array.isArray(t[n])){let o=t[n];typeof o=="string"&&(o=o.replace(/"/g,'\\"')),a=s.querySelector(`option[value="${o}"]`)}a==null?(s.value="",s.selectedIndex=-1):a.selected=!0}else if(e==null)s.classList.remove("ql-active"),s.setAttribute("aria-pressed","false");else if(s.hasAttribute("value")){let a=t[n],o=a===s.getAttribute("value")||a!=null&&a.toString()===s.getAttribute("value")||a==null&&!s.getAttribute("value");s.classList.toggle("ql-active",o),s.setAttribute("aria-pressed",o.toString())}else{let a=t[n]!=null;s.classList.toggle("ql-active",a),s.setAttribute("aria-pressed",a.toString())}})}};Aa.DEFAULTS={};Aa.DEFAULTS={container:null,handlers:{clean(){let i=this.quill.getSelection();if(i!=null)if(i.length===0){let e=this.quill.getFormat();Object.keys(e).forEach(t=>{this.quill.scroll.query(t,Y.INLINE)!=null&&this.quill.format(t,!1,R.sources.USER)})}else this.quill.removeFormat(i.index,i.length,R.sources.USER)},direction(i){let{align:e}=this.quill.getFormat();i==="rtl"&&e==null?this.quill.format("align","right",R.sources.USER):!i&&e==="right"&&this.quill.format("align",!1,R.sources.USER),this.quill.format("direction",i,R.sources.USER)},indent(i){let e=this.quill.getSelection(),t=this.quill.getFormat(e),r=parseInt(t.indent||0,10);if(i==="+1"||i==="-1"){let n=i==="+1"?1:-1;t.direction==="rtl"&&(n*=-1),this.quill.format("indent",r+n,R.sources.USER)}},link(i){i===!0&&(i=prompt("Enter link URL:")),this.quill.format("link",i,R.sources.USER)},list(i){let e=this.quill.getSelection(),t=this.quill.getFormat(e);i==="check"?t.list==="checked"||t.list==="unchecked"?this.quill.format("list",!1,R.sources.USER):this.quill.format("list","unchecked",R.sources.USER):this.quill.format("list",i,R.sources.USER)}}}});var RD,DD,OD,BD,PD,FD,qD,HD,_x,UD,$D,jD,GD,YD,WD,VD,XD,KD,ZD,QD,JD,eO,tO,iO,rO,nO,sO,aO,oO,lO,hO,dO,cO,Mn,Td=M(()=>{RD='',DD='',OD='',BD='',PD='',FD='',qD='',HD='',_x='',UD='',$D='',jD='',GD='',YD='',WD='',VD='',XD='',KD='',ZD='',QD='',JD='',eO='',tO='',iO='',rO='',nO='',sO='',aO='',oO='',lO='',hO='',dO='',cO='',Mn={align:{"":RD,center:DD,right:OD,justify:BD},background:PD,blockquote:FD,bold:qD,clean:HD,code:_x,"code-block":_x,color:UD,direction:{"":$D,rtl:jD},formula:GD,header:{1:YD,2:WD,3:VD,4:XD,5:KD,6:ZD},italic:QD,image:JD,indent:{"+1":eO,"-1":tO},link:iO,list:{bullet:rO,check:nO,ordered:sO},script:{sub:aO,super:oO},strike:lO,table:hO,underline:dO,video:cO}});function zx(i,e){i.setAttribute(e,`${i.getAttribute(e)!=="true"}`)}var uO,Lx,tm,Tn,Al=M(()=>{uO='',Lx=0;tm=class{constructor(e){this.select=e,this.container=document.createElement("span"),this.buildPicker(),this.select.style.display="none",this.select.parentNode.insertBefore(this.container,this.select),this.label.addEventListener("mousedown",()=>{this.togglePicker()}),this.label.addEventListener("keydown",t=>{switch(t.key){case"Enter":this.togglePicker();break;case"Escape":this.escape(),t.preventDefault();break;default:}}),this.select.addEventListener("change",this.update.bind(this))}togglePicker(){this.container.classList.toggle("ql-expanded"),zx(this.label,"aria-expanded"),zx(this.options,"aria-hidden")}buildItem(e){let t=document.createElement("span");t.tabIndex="0",t.setAttribute("role","button"),t.classList.add("ql-picker-item");let r=e.getAttribute("value");return r&&t.setAttribute("data-value",r),e.textContent&&t.setAttribute("data-label",e.textContent),t.addEventListener("click",()=>{this.selectItem(t,!0)}),t.addEventListener("keydown",n=>{switch(n.key){case"Enter":this.selectItem(t,!0),n.preventDefault();break;case"Escape":this.escape(),n.preventDefault();break;default:}}),t}buildLabel(){let e=document.createElement("span");return e.classList.add("ql-picker-label"),e.innerHTML=uO,e.tabIndex="0",e.setAttribute("role","button"),e.setAttribute("aria-expanded","false"),this.container.appendChild(e),e}buildOptions(){let e=document.createElement("span");e.classList.add("ql-picker-options"),e.setAttribute("aria-hidden","true"),e.tabIndex="-1",e.id=`ql-picker-options-${Lx}`,Lx+=1,this.label.setAttribute("aria-controls",e.id),this.options=e,Array.from(this.select.options).forEach(t=>{let r=this.buildItem(t);e.appendChild(r),t.selected===!0&&this.selectItem(r)}),this.container.appendChild(e)}buildPicker(){Array.from(this.select.attributes).forEach(e=>{this.container.setAttribute(e.name,e.value)}),this.container.classList.add("ql-picker"),this.label=this.buildLabel(),this.buildOptions()}escape(){this.close(),setTimeout(()=>this.label.focus(),1)}close(){this.container.classList.remove("ql-expanded"),this.label.setAttribute("aria-expanded","false"),this.options.setAttribute("aria-hidden","true")}selectItem(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,r=this.container.querySelector(".ql-selected");e!==r&&(r?.classList.remove("ql-selected"),e!=null&&(e.classList.add("ql-selected"),this.select.selectedIndex=Array.from(e.parentNode.children).indexOf(e),e.hasAttribute("data-value")?this.label.setAttribute("data-value",e.getAttribute("data-value")):this.label.removeAttribute("data-value"),e.hasAttribute("data-label")?this.label.setAttribute("data-label",e.getAttribute("data-label")):this.label.removeAttribute("data-label"),t&&(this.select.dispatchEvent(new Event("change")),this.close())))}update(){let e;if(this.select.selectedIndex>-1){let r=this.container.querySelector(".ql-picker-options").children[this.select.selectedIndex];e=this.select.options[this.select.selectedIndex],this.selectItem(r)}else this.selectItem(null);let t=e!=null&&e!==this.select.querySelector("option[selected]");this.label.classList.toggle("ql-active",t)}},Tn=tm});var im,Nd,rm=M(()=>{Al();im=class extends Tn{constructor(e,t){super(e),this.label.innerHTML=t,this.container.classList.add("ql-color-picker"),Array.from(this.container.querySelectorAll(".ql-picker-item")).slice(0,7).forEach(r=>{r.classList.add("ql-primary")})}buildItem(e){let t=super.buildItem(e);return t.style.backgroundColor=e.getAttribute("value")||"",t}selectItem(e,t){super.selectItem(e,t);let r=this.label.querySelector(".ql-color-label"),n=e&&e.getAttribute("data-value")||"";r&&(r.tagName==="line"?r.style.stroke=n:r.style.fill=n)}},Nd=im});var nm,Ed,sm=M(()=>{Al();nm=class extends Tn{constructor(e,t){super(e),this.container.classList.add("ql-icon-picker"),Array.from(this.container.querySelectorAll(".ql-picker-item")).forEach(r=>{r.innerHTML=t[r.getAttribute("data-value")||""]}),this.defaultItem=this.container.querySelector(".ql-selected"),this.selectItem(this.defaultItem)}selectItem(e,t){super.selectItem(e,t);let r=e||this.defaultItem;if(r!=null){if(this.label.innerHTML===r.innerHTML)return;this.label.innerHTML=r.innerHTML}}},Ed=nm});var fO,am,Sd,om=M(()=>{fO=i=>{let{overflowY:e}=getComputedStyle(i,null);return e!=="visible"&&e!=="clip"},am=class{constructor(e,t){this.quill=e,this.boundsContainer=t||document.body,this.root=e.addContainer("ql-tooltip"),this.root.innerHTML=this.constructor.TEMPLATE,fO(this.quill.root)&&this.quill.root.addEventListener("scroll",()=>{this.root.style.marginTop=`${-1*this.quill.root.scrollTop}px`}),this.hide()}hide(){this.root.classList.add("ql-hidden")}position(e){let t=e.left+e.width/2-this.root.offsetWidth/2,r=e.bottom+this.quill.root.scrollTop;this.root.style.left=`${t}px`,this.root.style.top=`${r}px`,this.root.classList.remove("ql-flip");let n=this.boundsContainer.getBoundingClientRect(),s=this.root.getBoundingClientRect(),a=0;if(s.right>n.right&&(a=n.right-s.right,this.root.style.left=`${t+a}px`),s.leftn.bottom){let o=s.bottom-s.top,l=e.bottom-e.top+o;this.root.style.top=`${r-l}px`,this.root.classList.add("ql-flip")}return a}show(){this.root.classList.remove("ql-editing"),this.root.classList.remove("ql-hidden")}},Sd=am});function yO(i){let e=i.match(/^(?:(https?):\/\/)?(?:(?:www|m)\.)?youtube\.com\/watch.*v=([a-zA-Z0-9_-]+)/)||i.match(/^(?:(https?):\/\/)?(?:(?:www|m)\.)?youtu\.be\/([a-zA-Z0-9_-]+)/);return e?`${e[1]||"https"}://www.youtube.com/embed/${e[2]}?showinfo=0`:(e=i.match(/^(?:(https?):\/\/)?(?:www\.)?vimeo\.com\/(\d+)/))?`${e[1]||"https"}://player.vimeo.com/video/${e[2]}/`:i}function kl(i,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;e.forEach(r=>{let n=document.createElement("option");r===t?n.setAttribute("selected","selected"):n.setAttribute("value",String(r)),i.appendChild(n)})}var mO,pO,gO,xO,vO,Pr,ka,lm=M(()=>{ln();Rr();Af();rm();sm();Al();om();mO=[!1,"center","right","justify"],pO=["#000000","#e60000","#ff9900","#ffff00","#008a00","#0066cc","#9933ff","#ffffff","#facccc","#ffebcc","#ffffcc","#cce8cc","#cce0f5","#ebd6ff","#bbbbbb","#f06666","#ffc266","#ffff66","#66b966","#66a3e0","#c285ff","#888888","#a10000","#b26b00","#b2b200","#006100","#0047b2","#6b24b2","#444444","#5c0000","#663d00","#666600","#003700","#002966","#3d1466"],gO=[!1,"serif","monospace"],xO=["1","2","3",!1],vO=["small",!1,"large","huge"],Pr=class extends ba{constructor(e,t){super(e,t);let r=n=>{if(!document.body.contains(e.root)){document.body.removeEventListener("click",r);return}this.tooltip!=null&&!this.tooltip.root.contains(n.target)&&document.activeElement!==this.tooltip.textbox&&!this.quill.hasFocus()&&this.tooltip.hide(),this.pickers!=null&&this.pickers.forEach(s=>{s.container.contains(n.target)||s.close()})};e.emitter.listenDOM("click",document.body,r)}addModule(e){let t=super.addModule(e);return e==="toolbar"&&this.extendToolbar(t),t}buildButtons(e,t){Array.from(e).forEach(r=>{(r.getAttribute("class")||"").split(/\s+/).forEach(s=>{if(s.startsWith("ql-")&&(s=s.slice(3),t[s]!=null))if(s==="direction")r.innerHTML=t[s][""]+t[s].rtl;else if(typeof t[s]=="string")r.innerHTML=t[s];else{let a=r.value||"";a!=null&&t[s][a]&&(r.innerHTML=t[s][a])}})})}buildPickers(e,t){this.pickers=Array.from(e).map(n=>{if(n.classList.contains("ql-align")&&(n.querySelector("option")==null&&kl(n,mO),typeof t.align=="object"))return new Ed(n,t.align);if(n.classList.contains("ql-background")||n.classList.contains("ql-color")){let s=n.classList.contains("ql-background")?"background":"color";return n.querySelector("option")==null&&kl(n,pO,s==="background"?"#ffffff":"#000000"),new Nd(n,t[s])}return n.querySelector("option")==null&&(n.classList.contains("ql-font")?kl(n,gO):n.classList.contains("ql-header")?kl(n,xO):n.classList.contains("ql-size")&&kl(n,vO)),new Tn(n)});let r=()=>{this.pickers.forEach(n=>{n.update()})};this.quill.on(K.events.EDITOR_CHANGE,r)}};Pr.DEFAULTS=Yt({},ba.DEFAULTS,{modules:{toolbar:{handlers:{formula(){this.quill.theme.tooltip.edit("formula")},image(){let i=this.container.querySelector("input.ql-image[type=file]");i==null&&(i=document.createElement("input"),i.setAttribute("type","file"),i.setAttribute("accept",this.quill.uploader.options.mimetypes.join(", ")),i.classList.add("ql-image"),i.addEventListener("change",()=>{let e=this.quill.getSelection(!0);this.quill.uploader.upload(e,i.files),i.value=""}),this.container.appendChild(i)),i.click()},video(){this.quill.theme.tooltip.edit("video")}}}}});ka=class extends Sd{constructor(e,t){super(e,t),this.textbox=this.root.querySelector('input[type="text"]'),this.listen()}listen(){this.textbox.addEventListener("keydown",e=>{e.key==="Enter"?(this.save(),e.preventDefault()):e.key==="Escape"&&(this.cancel(),e.preventDefault())})}cancel(){this.hide(),this.restoreFocus()}edit(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"link",t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;if(this.root.classList.remove("ql-hidden"),this.root.classList.add("ql-editing"),this.textbox==null)return;t!=null?this.textbox.value=t:e!==this.root.getAttribute("data-mode")&&(this.textbox.value="");let r=this.quill.getBounds(this.quill.selection.savedRange);r!=null&&this.position(r),this.textbox.select(),this.textbox.setAttribute("placeholder",this.textbox.getAttribute(`data-${e}`)||""),this.root.setAttribute("data-mode",e)}restoreFocus(){this.quill.focus({preventScroll:!0})}save(){let{value:e}=this.textbox;switch(this.root.getAttribute("data-mode")){case"link":{let{scrollTop:t}=this.quill.root;this.linkRange?(this.quill.formatText(this.linkRange,"link",e,K.sources.USER),delete this.linkRange):(this.restoreFocus(),this.quill.format("link",e,K.sources.USER)),this.quill.root.scrollTop=t;break}case"video":e=yO(e);case"formula":{if(!e)break;let t=this.quill.getSelection(!0);if(t!=null){let r=t.index+t.length;this.quill.insertEmbed(r,this.root.getAttribute("data-mode"),e,K.sources.USER),this.root.getAttribute("data-mode")==="formula"&&this.quill.insertText(r+1," ",K.sources.USER),this.quill.setSelection(r+2,K.sources.USER)}break}default:}this.textbox.value="",this.hide()}}});var bO,Ad,Cl,Ix=M(()=>{ln();Rr();lm();nl();Td();Kt();bO=[["bold","italic","link"],[{header:1},{header:2},"blockquote"]],Ad=class extends ka{constructor(e,t){super(e,t),this.quill.on(K.events.EDITOR_CHANGE,(r,n,s,a)=>{if(r===K.events.SELECTION_CHANGE)if(n!=null&&n.length>0&&a===K.sources.USER){this.show(),this.root.style.left="0px",this.root.style.width="",this.root.style.width=`${this.root.offsetWidth}px`;let o=this.quill.getLines(n.index,n.length);if(o.length===1){let l=this.quill.getBounds(n);l!=null&&this.position(l)}else{let l=o[o.length-1],h=this.quill.getIndex(l),d=Math.min(l.length()-1,n.index+n.length-h),c=this.quill.getBounds(new Lt(h,d));c!=null&&this.position(c)}}else document.activeElement!==this.textbox&&this.quill.hasFocus()&&this.hide()})}listen(){super.listen(),this.root.querySelector(".ql-close").addEventListener("click",()=>{this.root.classList.remove("ql-editing")}),this.quill.on(K.events.SCROLL_OPTIMIZE,()=>{setTimeout(()=>{if(this.root.classList.contains("ql-hidden"))return;let e=this.quill.getSelection();if(e!=null){let t=this.quill.getBounds(e);t!=null&&this.position(t)}},1)})}cancel(){this.show()}position(e){let t=super.position(e),r=this.root.querySelector(".ql-tooltip-arrow");return r.style.marginLeft="",t!==0&&(r.style.marginLeft=`${-1*t-r.offsetWidth/2}px`),t}};P(Ad,"TEMPLATE",['','
    ','','',"
    "].join(""));Cl=class extends Pr{constructor(e,t){t.modules.toolbar!=null&&t.modules.toolbar.container==null&&(t.modules.toolbar.container=bO),super(e,t),this.quill.container.classList.add("ql-bubble")}extendToolbar(e){this.tooltip=new Ad(this.quill,this.options.bounds),e.container!=null&&(this.tooltip.root.appendChild(e.container),this.buildButtons(e.container.querySelectorAll("button"),Mn),this.buildPickers(e.container.querySelectorAll("select"),Mn))}};Cl.DEFAULTS=Yt({},Pr.DEFAULTS,{modules:{toolbar:{handlers:{link(i){i?this.quill.theme.tooltip.edit():this.quill.format("link",!1,R.sources.USER)}}}}})});var wO,kd,Cd,Rx,Dx=M(()=>{ln();Rr();lm();yl();nl();Td();Kt();wO=[[{header:["1","2","3",!1]}],["bold","italic","underline","link"],[{list:"ordered"},{list:"bullet"}],["clean"]],kd=class extends ka{constructor(){super(...arguments);P(this,"preview",this.root.querySelector("a.ql-preview"))}listen(){super.listen(),this.root.querySelector("a.ql-action").addEventListener("click",t=>{this.root.classList.contains("ql-editing")?this.save():this.edit("link",this.preview.textContent),t.preventDefault()}),this.root.querySelector("a.ql-remove").addEventListener("click",t=>{if(this.linkRange!=null){let r=this.linkRange;this.restoreFocus(),this.quill.formatText(r,"link",!1,K.sources.USER),delete this.linkRange}t.preventDefault(),this.hide()}),this.quill.on(K.events.SELECTION_CHANGE,(t,r,n)=>{if(t!=null){if(t.length===0&&n===K.sources.USER){let[s,a]=this.quill.scroll.descendant(oi,t.index);if(s!=null){this.linkRange=new Lt(t.index-a,s.length());let o=oi.formats(s.domNode);this.preview.textContent=o,this.preview.setAttribute("href",o),this.show();let l=this.quill.getBounds(this.linkRange);l!=null&&this.position(l);return}}else delete this.linkRange;this.hide()}})}show(){super.show(),this.root.removeAttribute("data-mode")}};P(kd,"TEMPLATE",['','','',''].join(""));Cd=class extends Pr{constructor(e,t){t.modules.toolbar!=null&&t.modules.toolbar.container==null&&(t.modules.toolbar.container=wO),super(e,t),this.quill.container.classList.add("ql-snow")}extendToolbar(e){e.container!=null&&(e.container.classList.add("ql-snow"),this.buildButtons(e.container.querySelectorAll("button"),Mn),this.buildPickers(e.container.querySelectorAll("select"),Mn),this.tooltip=new kd(this.quill,this.options.bounds),e.container.querySelector(".ql-link")&&this.quill.keyboard.addBinding({key:"k",shortKey:!0},(t,r)=>{e.handlers.link.call(e,!r.format.link)}))}};Cd.DEFAULTS=Yt({},Pr.DEFAULTS,{modules:{toolbar:{handlers:{link(i){if(i){let e=this.quill.getSelection();if(e==null||e.length===0)return;let t=this.quill.getText(e);/^\S+@\S+\.\S+$/.test(t)&&t.indexOf("mailto:")!==0&&(t=`mailto:${t}`);let{tooltip:r}=this.quill.theme;r.edit("link",t)}else this.quill.format("link",!1,R.sources.USER)}}}}});Rx=Cd});var _d,Ox=M(()=>{Zf();If();Bf();J9();tx();rx();nx();Rf();ld();qf();Uf();bd();ax();yl();lx();dx();ux();mx();xx();bx();hd();wx();Ex();Cx();Td();Al();rm();sm();om();Ix();Dx();Zf();yd.register({"attributors/attribute/direction":dd,"attributors/class/align":zf,"attributors/class/background":_9,"attributors/class/color":C9,"attributors/class/direction":Of,"attributors/class/font":Ff,"attributors/class/size":Hf,"attributors/style/align":od,"attributors/style/background":hl,"attributors/style/color":ll,"attributors/style/direction":cd,"attributors/style/font":ud,"attributors/style/size":fd},!0);yd.register({"formats/align":zf,"formats/direction":Of,"formats/indent":Q9,"formats/background":hl,"formats/color":ll,"formats/font":Ff,"formats/size":Hf,"formats/blockquote":ex,"formats/code-block":Xe,"formats/header":ix,"formats/list":wn,"formats/bold":Na,"formats/code":Ta,"formats/italic":sx,"formats/link":oi,"formats/script":ox,"formats/strike":hx,"formats/underline":cx,"formats/formula":fx,"formats/image":gx,"formats/video":yx,"modules/syntax":El,"modules/table":Nx,"modules/toolbar":Aa,"themes/bubble":Cl,"themes/snow":Rx,"ui/icons":Mn,"ui/picker":Tn,"ui/icon-picker":Ed,"ui/color-picker":Nd,"ui/tooltip":Sd},!0);_d=yd});var Bx,Px,Fx=M(()=>{Bx=i=>` +`,{[st.blotName]:t}),a.insert(o)),s)],new WeakMap)}};i0.DEFAULTS={hljs:window.hljs,interval:1e3,languages:[{key:"plain",label:"Plain"},{key:"bash",label:"Bash"},{key:"cpp",label:"C++"},{key:"cs",label:"C#"},{key:"css",label:"CSS"},{key:"diff",label:"Diff"},{key:"xml",label:"HTML/XML"},{key:"java",label:"Java"},{key:"javascript",label:"JavaScript"},{key:"markdown",label:"Markdown"},{key:"php",label:"PHP"},{key:"python",label:"Python"},{key:"ruby",label:"Ruby"},{key:"sql",label:"SQL"}]}});function cc(){return`row-${Math.random().toString(36).slice(2,6)}`}var r0,Pi,Fi,yi,tn,tv=T(()=>{zi();Ja();r0=class r0 extends De{static create(e){let t=super.create();return e?t.setAttribute("data-row",e):t.setAttribute("data-row",cc()),t}static formats(e){if(e.hasAttribute("data-row"))return e.getAttribute("data-row")}cellOffset(){return this.parent?this.parent.children.indexOf(this):-1}format(e,t){e===r0.blotName&&t?this.domNode.setAttribute("data-row",t):super.format(e,t)}row(){return this.parent}rowOffset(){return this.row()?this.row().rowOffset():-1}table(){return this.row()&&this.row().table()}};U(r0,"blotName","table"),U(r0,"tagName","TD");Pi=r0,Fi=class extends Oi{checkMerge(){if(super.checkMerge()&&this.next.children.head!=null){let e=this.children.head.formats(),t=this.children.tail.formats(),r=this.next.children.head.formats(),n=this.next.children.tail.formats();return e.table===t.table&&e.table===r.table&&e.table===n.table}return!1}optimize(e){super.optimize(e),this.children.forEach(t=>{if(t.next==null)return;let r=t.formats(),n=t.next.formats();if(r.table!==n.table){let s=this.splitAfter(t);s&&s.optimize(),this.prev&&this.prev.optimize()}})}rowOffset(){return this.parent?this.parent.children.indexOf(this):-1}table(){return this.parent&&this.parent.parent}};U(Fi,"blotName","table-row"),U(Fi,"tagName","TR");yi=class extends Oi{};U(yi,"blotName","table-body"),U(yi,"tagName","TBODY");tn=class extends Oi{balanceCells(){let e=this.descendants(Fi),t=e.reduce((r,n)=>Math.max(n.children.length,r),0);e.forEach(r=>{new Array(t-r.children.length).fill(0).forEach(()=>{let n;r.children.head!=null&&(n=Pi.formats(r.children.head.domNode));let s=this.scroll.create(Pi.blotName,n);r.appendChild(s),s.optimize()})})}cells(e){return this.rows().map(t=>t.children.at(e))}deleteColumn(e){let[t]=this.descendant(yi);t==null||t.children.head==null||t.children.forEach(r=>{let n=r.children.at(e);n?.remove()})}insertColumn(e){let[t]=this.descendant(yi);t==null||t.children.head==null||t.children.forEach(r=>{let n=r.children.at(e),s=Pi.formats(r.children.head.domNode),a=this.scroll.create(Pi.blotName,s);r.insertBefore(a,n)})}insertRow(e){let[t]=this.descendant(yi);if(t==null||t.children.head==null)return;let r=cc(),n=this.scroll.create(Fi.blotName);t.children.head.children.forEach(()=>{let a=this.scroll.create(Pi.blotName,r);n.appendChild(a)});let s=t.children.at(e);t.insertBefore(n,s)}rows(){let e=this.children.head;return e==null?[]:e.children.map(t=>t)}};U(tn,"blotName","table-container"),U(tn,"tagName","TABLE");tn.allowedChildren=[yi];yi.requiredContainer=tn;yi.allowedChildren=[Fi];Fi.requiredContainer=yi;Fi.allowedChildren=[Pi];Pi.requiredContainer=Fi});var iv,tp,rv,nv=T(()=>{iv=pt(pi(),1);oi();Di();tv();tp=class extends Qe{static register(){B.register(Pi),B.register(Fi),B.register(yi),B.register(tn)}constructor(){super(...arguments),this.listenBalanceCells()}balanceTables(){this.quill.scroll.descendants(tn).forEach(e=>{e.balanceCells()})}deleteColumn(){let[e,,t]=this.getTable();t!=null&&(e.deleteColumn(t.cellOffset()),this.quill.update(B.sources.USER))}deleteRow(){let[,e]=this.getTable();e!=null&&(e.remove(),this.quill.update(B.sources.USER))}deleteTable(){let[e]=this.getTable();if(e==null)return;let t=e.offset();e.remove(),this.quill.update(B.sources.USER),this.quill.setSelection(t,B.sources.SILENT)}getTable(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.quill.getSelection();if(e==null)return[null,null,null,-1];let[t,r]=this.quill.getLine(e.index);if(t==null||t.statics.blotName!==Pi.blotName)return[null,null,null,-1];let n=t.parent;return[n.parent.parent,n,t,r]}insertColumn(e){let t=this.quill.getSelection();if(!t)return;let[r,n,s]=this.getTable(t);if(s==null)return;let a=s.cellOffset();r.insertColumn(a+e),this.quill.update(B.sources.USER);let o=n.rowOffset();e===0&&(o+=1),this.quill.setSelection(t.index+o,t.length,B.sources.SILENT)}insertColumnLeft(){this.insertColumn(0)}insertColumnRight(){this.insertColumn(1)}insertRow(e){let t=this.quill.getSelection();if(!t)return;let[r,n,s]=this.getTable(t);if(s==null)return;let a=n.rowOffset();r.insertRow(a+e),this.quill.update(B.sources.USER),e>0?this.quill.setSelection(t,B.sources.SILENT):this.quill.setSelection(t.index+n.children.length,t.length,B.sources.SILENT)}insertRowAbove(){this.insertRow(0)}insertRowBelow(){this.insertRow(1)}insertTable(e,t){let r=this.quill.getSelection();if(r==null)return;let n=new Array(e).fill(0).reduce(s=>{let a=new Array(t).fill(` +`).join("");return s.insert(a,{table:cc()})},new iv.default().retain(r.index));this.quill.updateContents(n,B.sources.USER),this.quill.setSelection(r.index,B.sources.SILENT),this.balanceTables()}listenBalanceCells(){this.quill.on(B.events.SCROLL_OPTIMIZE,e=>{e.some(t=>["TD","TR","TBODY","TABLE"].includes(t.target.tagName)?(this.quill.once(B.events.TEXT_CHANGE,(r,n,s)=>{s===B.sources.USER&&this.balanceTables()}),!0):!1)})}},rv=tp});function av(i,e,t){let r=document.createElement("button");r.setAttribute("type","button"),r.classList.add(`ql-${e}`),r.setAttribute("aria-pressed","false"),t!=null?(r.value=t,r.setAttribute("aria-label",`${e}: ${t}`)):r.setAttribute("aria-label",e),i.appendChild(r)}function WB(i,e){Array.isArray(e[0])||(e=[e]),e.forEach(t=>{let r=document.createElement("span");r.classList.add("ql-formats"),t.forEach(n=>{if(typeof n=="string")av(r,n);else{let s=Object.keys(n)[0],a=n[s];Array.isArray(a)?YB(r,s,a):av(r,s,a)}}),i.appendChild(r)})}function YB(i,e,t){let r=document.createElement("select");r.classList.add(`ql-${e}`),t.forEach(n=>{let s=document.createElement("option");n!==!1?s.setAttribute("value",String(n)):s.setAttribute("selected","selected"),r.appendChild(s)}),i.appendChild(r)}var ov,sv,no,lv=T(()=>{ov=pt(pi(),1);Re();oi();Cs();Di();sv=gi("quill:toolbar"),no=class extends Qe{constructor(e,t){if(super(e,t),Array.isArray(this.options.container)){let r=document.createElement("div");r.setAttribute("role","toolbar"),WB(r,this.options.container),e.container?.parentNode?.insertBefore(r,e.container),this.container=r}else typeof this.options.container=="string"?this.container=document.querySelector(this.options.container):this.container=this.options.container;if(!(this.container instanceof HTMLElement)){sv.error("Container required for toolbar",this.options);return}this.container.classList.add("ql-toolbar"),this.controls=[],this.handlers={},this.options.handlers&&Object.keys(this.options.handlers).forEach(r=>{let n=this.options.handlers?.[r];n&&this.addHandler(r,n)}),Array.from(this.container.querySelectorAll("button, select")).forEach(r=>{this.attach(r)}),this.quill.on(B.events.EDITOR_CHANGE,()=>{let[r]=this.quill.selection.getRange();this.update(r)})}addHandler(e,t){this.handlers[e]=t}attach(e){let t=Array.from(e.classList).find(n=>n.indexOf("ql-")===0);if(!t)return;if(t=t.slice(3),e.tagName==="BUTTON"&&e.setAttribute("type","button"),this.handlers[t]==null&&this.quill.scroll.query(t)==null){sv.warn("ignoring attaching to nonexistent format",t,e);return}let r=e.tagName==="SELECT"?"change":"click";e.addEventListener(r,n=>{let s;if(e.tagName==="SELECT"){if(e.selectedIndex<0)return;let o=e.options[e.selectedIndex];o.hasAttribute("selected")?s=!1:s=o.value||!1}else e.classList.contains("ql-active")?s=!1:s=e.value||!e.hasAttribute("value"),n.preventDefault();this.quill.focus();let[a]=this.quill.selection.getRange();if(this.handlers[t]!=null)this.handlers[t].call(this,s);else if(this.quill.scroll.query(t).prototype instanceof Ke){if(s=prompt(`Enter ${t}`),!s)return;this.quill.updateContents(new ov.default().retain(a.index).delete(a.length).insert({[t]:s}),B.sources.USER)}else this.quill.format(t,s,B.sources.USER);this.update(a)}),this.controls.push([t,e])}update(e){let t=e==null?{}:this.quill.getFormat(e);this.controls.forEach(r=>{let[n,s]=r;if(s.tagName==="SELECT"){let a=null;if(e==null)a=null;else if(t[n]==null)a=s.querySelector("option[selected]");else if(!Array.isArray(t[n])){let o=t[n];typeof o=="string"&&(o=o.replace(/"/g,'\\"')),a=s.querySelector(`option[value="${o}"]`)}a==null?(s.value="",s.selectedIndex=-1):a.selected=!0}else if(e==null)s.classList.remove("ql-active"),s.setAttribute("aria-pressed","false");else if(s.hasAttribute("value")){let a=t[n],o=a===s.getAttribute("value")||a!=null&&a.toString()===s.getAttribute("value")||a==null&&!s.getAttribute("value");s.classList.toggle("ql-active",o),s.setAttribute("aria-pressed",o.toString())}else{let a=t[n]!=null;s.classList.toggle("ql-active",a),s.setAttribute("aria-pressed",a.toString())}})}};no.DEFAULTS={};no.DEFAULTS={container:null,handlers:{clean(){let i=this.quill.getSelection();if(i!=null)if(i.length===0){let e=this.quill.getFormat();Object.keys(e).forEach(t=>{this.quill.scroll.query(t,X.INLINE)!=null&&this.quill.format(t,!1,B.sources.USER)})}else this.quill.removeFormat(i.index,i.length,B.sources.USER)},direction(i){let{align:e}=this.quill.getFormat();i==="rtl"&&e==null?this.quill.format("align","right",B.sources.USER):!i&&e==="right"&&this.quill.format("align",!1,B.sources.USER),this.quill.format("direction",i,B.sources.USER)},indent(i){let e=this.quill.getSelection(),t=this.quill.getFormat(e),r=parseInt(t.indent||0,10);if(i==="+1"||i==="-1"){let n=i==="+1"?1:-1;t.direction==="rtl"&&(n*=-1),this.quill.format("indent",r+n,B.sources.USER)}},link(i){i===!0&&(i=prompt("Enter link URL:")),this.quill.format("link",i,B.sources.USER)},list(i){let e=this.quill.getSelection(),t=this.quill.getFormat(e);i==="check"?t.list==="checked"||t.list==="unchecked"?this.quill.format("list",!1,B.sources.USER):this.quill.format("list","unchecked",B.sources.USER):this.quill.format("list",i,B.sources.USER)}}}});var XB,KB,ZB,QB,JB,eP,tP,iP,hv,rP,nP,sP,aP,oP,lP,hP,dP,cP,uP,fP,mP,pP,gP,xP,yP,vP,bP,wP,MP,TP,NP,EP,SP,Un,uc=T(()=>{XB='',KB='',ZB='',QB='',JB='',eP='',tP='',iP='',hv='',rP='',nP='',sP='',aP='',oP='',lP='',hP='',dP='',cP='',uP='',fP='',mP='',pP='',gP='',xP='',yP='',vP='',bP='',wP='',MP='',TP='',NP='',EP='',SP='',Un={align:{"":XB,center:KB,right:ZB,justify:QB},background:JB,blockquote:eP,bold:tP,clean:iP,code:hv,"code-block":hv,color:rP,direction:{"":nP,rtl:sP},formula:aP,header:{1:oP,2:lP,3:hP,4:dP,5:cP,6:uP},italic:fP,image:mP,indent:{"+1":pP,"-1":gP},link:xP,list:{bullet:yP,check:vP,ordered:bP},script:{sub:wP,super:MP},strike:TP,table:NP,underline:EP,video:SP}});function cv(i,e){i.setAttribute(e,`${i.getAttribute(e)!=="true"}`)}var AP,dv,ip,$n,n0=T(()=>{AP='',dv=0;ip=class{constructor(e){this.select=e,this.container=document.createElement("span"),this.buildPicker(),this.select.style.display="none",this.select.parentNode.insertBefore(this.container,this.select),this.label.addEventListener("mousedown",()=>{this.togglePicker()}),this.label.addEventListener("keydown",t=>{switch(t.key){case"Enter":this.togglePicker();break;case"Escape":this.escape(),t.preventDefault();break;default:}}),this.select.addEventListener("change",this.update.bind(this))}togglePicker(){this.container.classList.toggle("ql-expanded"),cv(this.label,"aria-expanded"),cv(this.options,"aria-hidden")}buildItem(e){let t=document.createElement("span");t.tabIndex="0",t.setAttribute("role","button"),t.classList.add("ql-picker-item");let r=e.getAttribute("value");return r&&t.setAttribute("data-value",r),e.textContent&&t.setAttribute("data-label",e.textContent),t.addEventListener("click",()=>{this.selectItem(t,!0)}),t.addEventListener("keydown",n=>{switch(n.key){case"Enter":this.selectItem(t,!0),n.preventDefault();break;case"Escape":this.escape(),n.preventDefault();break;default:}}),t}buildLabel(){let e=document.createElement("span");return e.classList.add("ql-picker-label"),e.innerHTML=AP,e.tabIndex="0",e.setAttribute("role","button"),e.setAttribute("aria-expanded","false"),this.container.appendChild(e),e}buildOptions(){let e=document.createElement("span");e.classList.add("ql-picker-options"),e.setAttribute("aria-hidden","true"),e.tabIndex="-1",e.id=`ql-picker-options-${dv}`,dv+=1,this.label.setAttribute("aria-controls",e.id),this.options=e,Array.from(this.select.options).forEach(t=>{let r=this.buildItem(t);e.appendChild(r),t.selected===!0&&this.selectItem(r)}),this.container.appendChild(e)}buildPicker(){Array.from(this.select.attributes).forEach(e=>{this.container.setAttribute(e.name,e.value)}),this.container.classList.add("ql-picker"),this.label=this.buildLabel(),this.buildOptions()}escape(){this.close(),setTimeout(()=>this.label.focus(),1)}close(){this.container.classList.remove("ql-expanded"),this.label.setAttribute("aria-expanded","false"),this.options.setAttribute("aria-hidden","true")}selectItem(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,r=this.container.querySelector(".ql-selected");e!==r&&(r?.classList.remove("ql-selected"),e!=null&&(e.classList.add("ql-selected"),this.select.selectedIndex=Array.from(e.parentNode.children).indexOf(e),e.hasAttribute("data-value")?this.label.setAttribute("data-value",e.getAttribute("data-value")):this.label.removeAttribute("data-value"),e.hasAttribute("data-label")?this.label.setAttribute("data-label",e.getAttribute("data-label")):this.label.removeAttribute("data-label"),t&&(this.select.dispatchEvent(new Event("change")),this.close())))}update(){let e;if(this.select.selectedIndex>-1){let r=this.container.querySelector(".ql-picker-options").children[this.select.selectedIndex];e=this.select.options[this.select.selectedIndex],this.selectItem(r)}else this.selectItem(null);let t=e!=null&&e!==this.select.querySelector("option[selected]");this.label.classList.toggle("ql-active",t)}},$n=ip});var rp,fc,np=T(()=>{n0();rp=class extends $n{constructor(e,t){super(e),this.label.innerHTML=t,this.container.classList.add("ql-color-picker"),Array.from(this.container.querySelectorAll(".ql-picker-item")).slice(0,7).forEach(r=>{r.classList.add("ql-primary")})}buildItem(e){let t=super.buildItem(e);return t.style.backgroundColor=e.getAttribute("value")||"",t}selectItem(e,t){super.selectItem(e,t);let r=this.label.querySelector(".ql-color-label"),n=e&&e.getAttribute("data-value")||"";r&&(r.tagName==="line"?r.style.stroke=n:r.style.fill=n)}},fc=rp});var sp,mc,ap=T(()=>{n0();sp=class extends $n{constructor(e,t){super(e),this.container.classList.add("ql-icon-picker"),Array.from(this.container.querySelectorAll(".ql-picker-item")).forEach(r=>{r.innerHTML=t[r.getAttribute("data-value")||""]}),this.defaultItem=this.container.querySelector(".ql-selected"),this.selectItem(this.defaultItem)}selectItem(e,t){super.selectItem(e,t);let r=e||this.defaultItem;if(r!=null){if(this.label.innerHTML===r.innerHTML)return;this.label.innerHTML=r.innerHTML}}},mc=sp});var kP,op,pc,lp=T(()=>{kP=i=>{let{overflowY:e}=getComputedStyle(i,null);return e!=="visible"&&e!=="clip"},op=class{constructor(e,t){this.quill=e,this.boundsContainer=t||document.body,this.root=e.addContainer("ql-tooltip"),this.root.innerHTML=this.constructor.TEMPLATE,kP(this.quill.root)&&this.quill.root.addEventListener("scroll",()=>{this.root.style.marginTop=`${-1*this.quill.root.scrollTop}px`}),this.hide()}hide(){this.root.classList.add("ql-hidden")}position(e){let t=e.left+e.width/2-this.root.offsetWidth/2,r=e.bottom+this.quill.root.scrollTop;this.root.style.left=`${t}px`,this.root.style.top=`${r}px`,this.root.classList.remove("ql-flip");let n=this.boundsContainer.getBoundingClientRect(),s=this.root.getBoundingClientRect(),a=0;if(s.right>n.right&&(a=n.right-s.right,this.root.style.left=`${t+a}px`),s.leftn.bottom){let o=s.bottom-s.top,l=e.bottom-e.top+o;this.root.style.top=`${r-l}px`,this.root.classList.add("ql-flip")}return a}show(){this.root.classList.remove("ql-editing"),this.root.classList.remove("ql-hidden")}},pc=op});function RP(i){let e=i.match(/^(?:(https?):\/\/)?(?:(?:www|m)\.)?youtube\.com\/watch.*v=([a-zA-Z0-9_-]+)/)||i.match(/^(?:(https?):\/\/)?(?:(?:www|m)\.)?youtu\.be\/([a-zA-Z0-9_-]+)/);return e?`${e[1]||"https"}://www.youtube.com/embed/${e[2]}?showinfo=0`:(e=i.match(/^(?:(https?):\/\/)?(?:www\.)?vimeo\.com\/(\d+)/))?`${e[1]||"https"}://player.vimeo.com/video/${e[2]}/`:i}function s0(i,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;e.forEach(r=>{let n=document.createElement("option");r===t?n.setAttribute("selected","selected"):n.setAttribute("value",String(r)),i.appendChild(n)})}var CP,_P,LP,IP,zP,rn,so,hp=T(()=>{kn();Qr();km();np();ap();n0();lp();CP=[!1,"center","right","justify"],_P=["#000000","#e60000","#ff9900","#ffff00","#008a00","#0066cc","#9933ff","#ffffff","#facccc","#ffebcc","#ffffcc","#cce8cc","#cce0f5","#ebd6ff","#bbbbbb","#f06666","#ffc266","#ffff66","#66b966","#66a3e0","#c285ff","#888888","#a10000","#b26b00","#b2b200","#006100","#0047b2","#6b24b2","#444444","#5c0000","#663d00","#666600","#003700","#002966","#3d1466"],LP=[!1,"serif","monospace"],IP=["1","2","3",!1],zP=["small",!1,"large","huge"],rn=class extends Za{constructor(e,t){super(e,t);let r=n=>{if(!document.body.contains(e.root)){document.body.removeEventListener("click",r);return}this.tooltip!=null&&!this.tooltip.root.contains(n.target)&&document.activeElement!==this.tooltip.textbox&&!this.quill.hasFocus()&&this.tooltip.hide(),this.pickers!=null&&this.pickers.forEach(s=>{s.container.contains(n.target)||s.close()})};e.emitter.listenDOM("click",document.body,r)}addModule(e){let t=super.addModule(e);return e==="toolbar"&&this.extendToolbar(t),t}buildButtons(e,t){Array.from(e).forEach(r=>{(r.getAttribute("class")||"").split(/\s+/).forEach(s=>{if(s.startsWith("ql-")&&(s=s.slice(3),t[s]!=null))if(s==="direction")r.innerHTML=t[s][""]+t[s].rtl;else if(typeof t[s]=="string")r.innerHTML=t[s];else{let a=r.value||"";a!=null&&t[s][a]&&(r.innerHTML=t[s][a])}})})}buildPickers(e,t){this.pickers=Array.from(e).map(n=>{if(n.classList.contains("ql-align")&&(n.querySelector("option")==null&&s0(n,CP),typeof t.align=="object"))return new mc(n,t.align);if(n.classList.contains("ql-background")||n.classList.contains("ql-color")){let s=n.classList.contains("ql-background")?"background":"color";return n.querySelector("option")==null&&s0(n,_P,s==="background"?"#ffffff":"#000000"),new fc(n,t[s])}return n.querySelector("option")==null&&(n.classList.contains("ql-font")?s0(n,LP):n.classList.contains("ql-header")?s0(n,IP):n.classList.contains("ql-size")&&s0(n,zP)),new $n(n)});let r=()=>{this.pickers.forEach(n=>{n.update()})};this.quill.on(J.events.EDITOR_CHANGE,r)}};rn.DEFAULTS=ri({},Za.DEFAULTS,{modules:{toolbar:{handlers:{formula(){this.quill.theme.tooltip.edit("formula")},image(){let i=this.container.querySelector("input.ql-image[type=file]");i==null&&(i=document.createElement("input"),i.setAttribute("type","file"),i.setAttribute("accept",this.quill.uploader.options.mimetypes.join(", ")),i.classList.add("ql-image"),i.addEventListener("change",()=>{let e=this.quill.getSelection(!0);this.quill.uploader.upload(e,i.files),i.value=""}),this.container.appendChild(i)),i.click()},video(){this.quill.theme.tooltip.edit("video")}}}}});so=class extends pc{constructor(e,t){super(e,t),this.textbox=this.root.querySelector('input[type="text"]'),this.listen()}listen(){this.textbox.addEventListener("keydown",e=>{e.key==="Enter"?(this.save(),e.preventDefault()):e.key==="Escape"&&(this.cancel(),e.preventDefault())})}cancel(){this.hide(),this.restoreFocus()}edit(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"link",t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;if(this.root.classList.remove("ql-hidden"),this.root.classList.add("ql-editing"),this.textbox==null)return;t!=null?this.textbox.value=t:e!==this.root.getAttribute("data-mode")&&(this.textbox.value="");let r=this.quill.getBounds(this.quill.selection.savedRange);r!=null&&this.position(r),this.textbox.select(),this.textbox.setAttribute("placeholder",this.textbox.getAttribute(`data-${e}`)||""),this.root.setAttribute("data-mode",e)}restoreFocus(){this.quill.focus({preventScroll:!0})}save(){let{value:e}=this.textbox;switch(this.root.getAttribute("data-mode")){case"link":{let{scrollTop:t}=this.quill.root;this.linkRange?(this.quill.formatText(this.linkRange,"link",e,J.sources.USER),delete this.linkRange):(this.restoreFocus(),this.quill.format("link",e,J.sources.USER)),this.quill.root.scrollTop=t;break}case"video":e=RP(e);case"formula":{if(!e)break;let t=this.quill.getSelection(!0);if(t!=null){let r=t.index+t.length;this.quill.insertEmbed(r,this.root.getAttribute("data-mode"),e,J.sources.USER),this.root.getAttribute("data-mode")==="formula"&&this.quill.insertText(r+1," ",J.sources.USER),this.quill.setSelection(r+2,J.sources.USER)}break}default:}this.textbox.value="",this.hide()}}});var DP,gc,a0,uv=T(()=>{kn();Qr();hp();Dl();uc();oi();DP=[["bold","italic","link"],[{header:1},{header:2},"blockquote"]],gc=class extends so{constructor(e,t){super(e,t),this.quill.on(J.events.EDITOR_CHANGE,(r,n,s,a)=>{if(r===J.events.SELECTION_CHANGE)if(n!=null&&n.length>0&&a===J.sources.USER){this.show(),this.root.style.left="0px",this.root.style.width="",this.root.style.width=`${this.root.offsetWidth}px`;let o=this.quill.getLines(n.index,n.length);if(o.length===1){let l=this.quill.getBounds(n);l!=null&&this.position(l)}else{let l=o[o.length-1],h=this.quill.getIndex(l),d=Math.min(l.length()-1,n.index+n.length-h),c=this.quill.getBounds(new $t(h,d));c!=null&&this.position(c)}}else document.activeElement!==this.textbox&&this.quill.hasFocus()&&this.hide()})}listen(){super.listen(),this.root.querySelector(".ql-close").addEventListener("click",()=>{this.root.classList.remove("ql-editing")}),this.quill.on(J.events.SCROLL_OPTIMIZE,()=>{setTimeout(()=>{if(this.root.classList.contains("ql-hidden"))return;let e=this.quill.getSelection();if(e!=null){let t=this.quill.getBounds(e);t!=null&&this.position(t)}},1)})}cancel(){this.show()}position(e){let t=super.position(e),r=this.root.querySelector(".ql-tooltip-arrow");return r.style.marginLeft="",t!==0&&(r.style.marginLeft=`${-1*t-r.offsetWidth/2}px`),t}};U(gc,"TEMPLATE",['','
    ','','',"
    "].join(""));a0=class extends rn{constructor(e,t){t.modules.toolbar!=null&&t.modules.toolbar.container==null&&(t.modules.toolbar.container=DP),super(e,t),this.quill.container.classList.add("ql-bubble")}extendToolbar(e){this.tooltip=new gc(this.quill,this.options.bounds),e.container!=null&&(this.tooltip.root.appendChild(e.container),this.buildButtons(e.container.querySelectorAll("button"),Un),this.buildPickers(e.container.querySelectorAll("select"),Un))}};a0.DEFAULTS=ri({},rn.DEFAULTS,{modules:{toolbar:{handlers:{link(i){i?this.quill.theme.tooltip.edit():this.quill.format("link",!1,B.sources.USER)}}}}})});var OP,xc,yc,fv,mv=T(()=>{kn();Qr();hp();Kl();Dl();uc();oi();OP=[[{header:["1","2","3",!1]}],["bold","italic","underline","link"],[{list:"ordered"},{list:"bullet"}],["clean"]],xc=class extends so{constructor(){super(...arguments);U(this,"preview",this.root.querySelector("a.ql-preview"))}listen(){super.listen(),this.root.querySelector("a.ql-action").addEventListener("click",t=>{this.root.classList.contains("ql-editing")?this.save():this.edit("link",this.preview.textContent),t.preventDefault()}),this.root.querySelector("a.ql-remove").addEventListener("click",t=>{if(this.linkRange!=null){let r=this.linkRange;this.restoreFocus(),this.quill.formatText(r,"link",!1,J.sources.USER),delete this.linkRange}t.preventDefault(),this.hide()}),this.quill.on(J.events.SELECTION_CHANGE,(t,r,n)=>{if(t!=null){if(t.length===0&&n===J.sources.USER){let[s,a]=this.quill.scroll.descendant(xi,t.index);if(s!=null){this.linkRange=new $t(t.index-a,s.length());let o=xi.formats(s.domNode);this.preview.textContent=o,this.preview.setAttribute("href",o),this.show();let l=this.quill.getBounds(this.linkRange);l!=null&&this.position(l);return}}else delete this.linkRange;this.hide()}})}show(){super.show(),this.root.removeAttribute("data-mode")}};U(xc,"TEMPLATE",['','','',''].join(""));yc=class extends rn{constructor(e,t){t.modules.toolbar!=null&&t.modules.toolbar.container==null&&(t.modules.toolbar.container=OP),super(e,t),this.quill.container.classList.add("ql-snow")}extendToolbar(e){e.container!=null&&(e.container.classList.add("ql-snow"),this.buildButtons(e.container.querySelectorAll("button"),Un),this.buildPickers(e.container.querySelectorAll("select"),Un),this.tooltip=new xc(this.quill,this.options.bounds),e.container.querySelector(".ql-link")&&this.quill.keyboard.addBinding({key:"k",shortKey:!0},(t,r)=>{e.handlers.link.call(e,!r.format.link)}))}};yc.DEFAULTS=ri({},rn.DEFAULTS,{modules:{toolbar:{handlers:{link(i){if(i){let e=this.quill.getSelection();if(e==null||e.length===0)return;let t=this.quill.getText(e);/^\S+@\S+\.\S+$/.test(t)&&t.indexOf("mailto:")!==0&&(t=`mailto:${t}`);let{tooltip:r}=this.quill.theme;r.edit("link",t)}else this.quill.format("link",!1,B.sources.USER)}}}}});fv=yc});var vc,pv=T(()=>{Qm();Rm();Pm();Iy();Ry();Oy();By();Dm();Zd();Hm();$m();hc();Fy();Kl();Hy();$y();Gy();Wy();Ky();Jy();Qd();ev();nv();lv();uc();n0();np();ap();lp();uv();mv();Qm();lc.register({"attributors/attribute/direction":Jd,"attributors/class/align":zm,"attributors/class/background":hy,"attributors/class/color":ly,"attributors/class/direction":Bm,"attributors/class/font":qm,"attributors/class/size":Um,"attributors/style/align":Kd,"attributors/style/background":ql,"attributors/style/color":Fl,"attributors/style/direction":ec,"attributors/style/font":tc,"attributors/style/size":ic},!0);lc.register({"formats/align":zm,"formats/direction":Bm,"formats/indent":Ly,"formats/background":ql,"formats/color":Fl,"formats/font":qm,"formats/size":Um,"formats/blockquote":zy,"formats/code-block":st,"formats/header":Dy,"formats/list":Hn,"formats/bold":to,"formats/code":eo,"formats/italic":Py,"formats/link":xi,"formats/script":qy,"formats/strike":Uy,"formats/underline":jy,"formats/formula":Vy,"formats/image":Xy,"formats/video":Qy,"modules/syntax":i0,"modules/table":rv,"modules/toolbar":no,"themes/bubble":a0,"themes/snow":fv,"ui/icons":Un,"ui/picker":$n,"ui/icon-picker":mc,"ui/color-picker":fc,"ui/tooltip":pc},!0);vc=lc});var gv,xv,yv=T(()=>{gv=i=>` @font-face { font-family: 'KaTeX_AMS'; src: url(${i}fonts/KaTeX_AMS-Regular.woff2) format('woff2'), url(${i}fonts/KaTeX_AMS-Regular.woff) format('woff'), url(${i}fonts/KaTeX_AMS-Regular.ttf) format('truetype'); @@ -508,7 +508,7 @@ ${rs(this.code(e,t))} font-weight: normal; font-style: normal; } - `,Px=()=>` + `,xv=()=>` .katex { font: normal 1.21em KaTeX_Main, Times New Roman, serif; line-height: 1.2; @@ -536,7 +536,7 @@ ${rs(this.code(e,t))} overflow: hidden; } .katex .katex-html { - /* + /* ewline is an empty block at top level, between .base elements */ } .katex .katex-html > .newline { @@ -1472,27 +1472,27 @@ ewline is an empty block at top level, between .base elements */ body { counter-reset: katexEqnNo mmlEqnNo; } -`});var Hx={};ti(Hx,{default:()=>MO});var hm,qx,Ld,MO,Ux=M(()=>{k6();Ox();he();Fx();hm=!1,qx=_d.import("formats/formula"),Ld=class{constructor(e){this.opt=e,this.mindMap=e.mindMap,window.katex=W0,this.init(),this.config=this.getKatexConfig(),this.cssEl=null,this.addStyle(),this.extendQuill(),this.onDestroy=this.onDestroy.bind(this),this.mindMap.on("beforeDestroy",this.onDestroy)}onDestroy(){Object.getPrototypeOf(this.mindMap).constructor.instanceCount<=1&&(hm=!1,_d.register("formats/formula",qx,!0))}init(){this.mindMap.opt.enableEditFormulaInRichTextEdit&&(this.mindMap.opt.transformRichTextOnEnterEdit=this.latexRichToText.bind(this),this.mindMap.opt.beforeHideRichTextEdit=this.formatLatex.bind(this))}getKatexConfig(){let e={throwOnError:!1,errorColor:"#f00",output:"mathml"},{getKatexOutputType:t}=this.mindMap.opt;t=t||function(){let n=Jp();if(n&&n<=100)return"html"};let r=t()||"mathml";return e.output=["mathml","html"].includes(r)?r:"mathml",e}extendQuill(){if(hm)return;hm=!0;let e=this;class t extends qx{static create(n){let s=super.create(n);return typeof n=="string"&&(W0.render(n,s,e.config),s.setAttribute("data-value",Wr(n))),s}}_d.register("formats/formula",t,!0)}getStyleText(){let{katexFontPath:e}=this.mindMap.opt,t="";return this.config.output==="html"&&(t=Bx(e)),t+=Px(),t}addStyle(){this.cssEl=document.createElement("style"),this.cssEl.type="text/css",this.cssEl.innerHTML=this.getStyleText(),document.head.appendChild(this.cssEl)}removeStyle(){document.head.removeChild(this.cssEl)}insertFormulaToNode(e,t){let r=this.mindMap.richText;r.showEditText({node:e}),r.quill.insertEmbed(r.quill.getLength()-1,"formula",t),r.hideEditText([e])}latexRichToText(e){if(e.indexOf('class="ql-formula"')!==-1){let n=new DOMParser().parseFromString(e,"text/html").getElementsByClassName("ql-formula");for(let s of n)e=e.replace(s.outerHTML,`$${s.getAttribute("data-value")}$`);this.mindMap.opt.openRealtimeRenderOnNodeTextEdit&&setTimeout(()=>{this.mindMap.emit("node_text_edit_change",{node:this.mindMap.richText.node,text:this.mindMap.richText.getEditText(),richText:!0})},0)}return e}formatLatex(e){let t=e.quill.getContents(),r=t.ops,n=!1;for(let s=r.length-1;s>=0;s--){let o=r[s].insert;if(o&&typeof o!="object"&&o!==` -`&&/\$.+?\$/g.test(o)){let l=[...o.matchAll(/\$.+?\$/g)],h=o.split(/\$.+?\$/g);for(let d=l.length-1;d>=0;d--){let c=l[d]&&l[d][0]&&l[d][0].slice(1,-1)||null;c!==null&&c.trim().length>0&&this.checkFormulaIsLegal(c)?(h.splice(d+1,0,{insert:{formula:c}}),n=!0):h.splice(d+1,0,"")}for(;h.length>0;){let d=h.pop();if(typeof d=="string"){if(d.length<1)continue;d={insert:d}}d.attributes=r[s].attributes,r.splice(s+1,0,d)}r.splice(s,1)}}n&&e.quill.setContents(t)}checkFormulaIsLegal(e){try{return W0.renderToString(e),!0}catch{return!1}}beforePluginRemove(){this.removeStyle(),this.mindMap.off("beforeDestroy",this.onDestroy)}beforePluginDestroy(){this.removeStyle(),this.mindMap.off("beforeDestroy",this.onDestroy)}};Ld.instanceName="formula";MO=Ld});var dm,$x,jx=M(()=>{Oe();dm=class{constructor(e={}){this.opt=e,this.mindMap=this.opt.mindMap,this.scale=1,this.sx=0,this.sy=0,this.x=0,this.y=0,this.firstDrag=!0,this.setTransformData(this.mindMap.opt.viewData),this.bind()}bind(){this.mindMap.keyCommand.addShortcut("Control+=",()=>{this.enlarge()}),this.mindMap.keyCommand.addShortcut("Control+-",()=>{this.narrow()}),this.mindMap.keyCommand.addShortcut("Control+i",()=>{this.fit()}),this.mindMap.event.on("mousedown",e=>{let{isDisableDrag:t,mousedownEventPreventDefault:r}=this.mindMap.opt;t||(r&&e.preventDefault(),this.sx=this.x,this.sy=this.y)}),this.mindMap.event.on("drag",(e,t)=>{e.ctrlKey||e.metaKey||this.mindMap.opt.isDisableDrag||(this.firstDrag&&(this.firstDrag=!1,this.mindMap.renderer.activeNodeList.length>0&&this.mindMap.execCommand("CLEAR_ACTIVE_NODE")),this.x=this.sx+t.mousemoveOffset.x,this.y=this.sy+t.mousemoveOffset.y,this.transform())}),this.mindMap.event.on("mouseup",()=>{this.firstDrag=!0}),this.mindMap.event.on("mousewheel",(e,t,r,n)=>{let{customHandleMousewheel:s,mousewheelAction:a,mouseScaleCenterUseMousePosition:o,mousewheelMoveStep:l,mousewheelZoomActionReverse:h,disableMouseWheelZoom:d,translateRatio:c}=this.mindMap.opt;if(s&&typeof s=="function")return s(e);if(a===A.MOUSE_WHEEL_ACTION.ZOOM||e.ctrlKey||e.metaKey){if(d)return;let{x:f,y:m}=this.mindMap.toPos(e.clientX,e.clientY),g=o?f:void 0,x=o?m:void 0;switch(n&&(t.includes(A.DIR.LEFT)||t.includes(A.DIR.RIGHT))&&(t=t.filter(v=>![A.DIR.LEFT,A.DIR.RIGHT].includes(v))),!0){case t.includes(A.DIR.UP||A.DIR.LEFT):h?this.enlarge(g,x,n):this.narrow(g,x,n);break;case t.includes(A.DIR.DOWN||A.DIR.RIGHT):h?this.narrow(g,x,n):this.enlarge(g,x,n);break}}else{let f=0,m=0;n?(f=Math.abs(e.wheelDeltaX),m=Math.abs(e.wheelDeltaY)):f=m=l;let g=0,x=0;t.includes(A.DIR.DOWN)&&(x=-m),t.includes(A.DIR.UP)&&(x=m),t.includes(A.DIR.LEFT)&&(g=f),t.includes(A.DIR.RIGHT)&&(g=-f),this.translateXY(g*c,x*c)}}),this.mindMap.on("resize",()=>{this.checkNeedMindMapInCanvas()&&this.transform()})}getTransformData(){return{transform:this.mindMap.draw.transform(),state:{scale:this.scale,x:this.x,y:this.y,sx:this.sx,sy:this.sy}}}setTransformData(e){e&&(Object.keys(e.state).forEach(t=>{this[t]=e.state[t]}),this.mindMap.draw.transform({...e.transform}),this.mindMap.emit("view_data_change",this.getTransformData()),this.emitEvent("scale"),this.emitEvent("translate"))}translateXY(e,t){e===0&&t===0||(this.x+=e,this.y+=t,this.transform(),this.emitEvent("translate"))}translateX(e){e!==0&&(this.x+=e,this.transform(),this.emitEvent("translate"))}translateXTo(e){this.x=e,this.transform(),this.emitEvent("translate")}translateY(e){e!==0&&(this.y+=e,this.transform(),this.emitEvent("translate"))}translateYTo(e){this.y=e,this.transform(),this.emitEvent("translate")}transform(){try{this.limitMindMapInCanvas()}catch{}this.mindMap.draw.transform({origin:[0,0],scale:this.scale,translate:[this.x,this.y]}),this.mindMap.emit("view_data_change",this.getTransformData())}reset(){let e=this.scale!==1,t=this.x!==0||this.y!==0;this.scale=1,this.x=0,this.y=0,this.transform(),e&&this.emitEvent("scale"),t&&this.emitEvent("translate")}narrow(e,t,r){let{scaleRatio:n,minZoomRatio:s}=this.mindMap.opt;n=n/(r?5:1);let a=Math.max(this.scale-n,s/100);this.scaleInCenter(a,e,t),this.transform(),this.emitEvent("scale")}enlarge(e,t,r){let{scaleRatio:n,maxZoomRatio:s}=this.mindMap.opt;n=n/(r?5:1);let a=0;s===-1?a=this.scale+n:a=Math.min(this.scale+n,s/100),this.scaleInCenter(a,e,t),this.transform(),this.emitEvent("scale")}scaleInCenter(e,t,r){(t===void 0||r===void 0)&&(t=this.mindMap.width/2,r=this.mindMap.height/2);let n=this.scale,s=1-e/n,a=(t-this.x)*s,o=(r-this.y)*s;this.x+=a,this.y+=o,this.scale=e}setScale(e,t,r){t!==void 0&&r!==void 0?this.scaleInCenter(e,t,r):this.scale=e,this.transform(),this.emitEvent("scale")}fit(e=()=>{},t=!1,r){r=r===void 0?this.mindMap.opt.fitPadding:r;let n=this.mindMap.draw,s=n.transform(),a=e()||n.rbox(),o=a.width/s.scaleX,l=a.height/s.scaleY,h=o/l,{width:d,height:c}=this.mindMap.elRect;d=d-r*2,c=c-r*2;let f=d/c,m=0,g="";if(o<=d&&l<=c&&!t)m=1,g=1;else{let E=0,S=0;h>f?(E=d,S=d/h,g=2):(S=c,E=c*h,g=3),m=E/o}this.setScale(m);let x=e()||n.rbox();x.x-=this.mindMap.elRect.left,x.y-=this.mindMap.elRect.top;let v=0,b=0;g===1?(v=-x.x+r+(d-x.width)/2,b=-x.y+r+(c-x.height)/2):g===2?(v=-x.x+r,b=-x.y+r+(c-x.height)/2):g===3&&(v=-x.x+r+(d-x.width)/2,b=-x.y+r),this.translateXY(v,b)}checkNeedMindMapInCanvas(){if(this.mindMap.demonstrate&&this.mindMap.demonstrate.isInDemonstrate)return!1;let{isLimitMindMapInCanvasWhenHasScrollbar:e,isLimitMindMapInCanvas:t}=this.mindMap.opt;return this.mindMap.scrollbar?e:t}limitMindMapInCanvas(){if(!this.checkNeedMindMapInCanvas())return;let{scale:e,left:t,top:r,right:n,bottom:s}=this.getPositionLimit(),a=(this.mindMap.width-this.mindMap.initWidth)/2*e,o=(this.mindMap.height-this.mindMap.initHeight)/2*e,l=this.scale/e;t*=l,n*=l,r*=l,s*=l;let h=this.mindMap.width/2,d=this.mindMap.height/2,c=this.scale-1;t-=c*h-a,n-=c*h-a,r-=c*d-o,s-=c*d-o,this.x>t&&(this.x=t),this.xr&&(this.y=r),this.y{"use strict";var TO=Object.prototype.hasOwnProperty,zt="~";function _l(){}Object.create&&(_l.prototype=Object.create(null),new _l().__proto__||(zt=!1));function NO(i,e,t){this.fn=i,this.context=e,this.once=t||!1}function Gx(i,e,t,r,n){if(typeof t!="function")throw new TypeError("The listener must be a function");var s=new NO(t,r||i,n),a=zt?zt+e:e;return i._events[a]?i._events[a].fn?i._events[a]=[i._events[a],s]:i._events[a].push(s):(i._events[a]=s,i._eventsCount++),i}function zd(i,e){--i._eventsCount===0?i._events=new _l:delete i._events[e]}function yt(){this._events=new _l,this._eventsCount=0}yt.prototype.eventNames=function(){var e=[],t,r;if(this._eventsCount===0)return e;for(r in t=this._events)TO.call(t,r)&&e.push(zt?r.slice(1):r);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e};yt.prototype.listeners=function(e){var t=zt?zt+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var n=0,s=r.length,a=new Array(s);n{Wx=ot(Yx());Oe();um=class extends Wx.default{constructor(e={}){super(),this.opt=e,this.mindMap=e.mindMap,this.isLeftMousedown=!1,this.isRightMousedown=!1,this.isMiddleMousedown=!1,this.mousedownPos={x:0,y:0},this.mousemovePos={x:0,y:0},this.mousemoveOffset={x:0,y:0},this.bindFn(),this.bind()}bindFn(){this.onBodyMousedown=this.onBodyMousedown.bind(this),this.onBodyClick=this.onBodyClick.bind(this),this.onDrawClick=this.onDrawClick.bind(this),this.onMousedown=this.onMousedown.bind(this),this.onMousemove=this.onMousemove.bind(this),this.onMouseup=this.onMouseup.bind(this),this.onNodeMouseup=this.onNodeMouseup.bind(this),this.onMousewheel=this.onMousewheel.bind(this),this.onContextmenu=this.onContextmenu.bind(this),this.onSvgMousedown=this.onSvgMousedown.bind(this),this.onKeyup=this.onKeyup.bind(this),this.onMouseenter=this.onMouseenter.bind(this),this.onMouseleave=this.onMouseleave.bind(this)}bind(){document.body.addEventListener("mousedown",this.onBodyMousedown),document.body.addEventListener("click",this.onBodyClick),this.mindMap.svg.on("click",this.onDrawClick),this.mindMap.el.addEventListener("mousedown",this.onMousedown),this.mindMap.svg.on("mousedown",this.onSvgMousedown),window.addEventListener("mousemove",this.onMousemove),window.addEventListener("mouseup",this.onMouseup),this.on("node_mouseup",this.onNodeMouseup),this.mindMap.el.addEventListener("wheel",this.onMousewheel),this.mindMap.svg.on("contextmenu",this.onContextmenu),this.mindMap.svg.on("mouseenter",this.onMouseenter),this.mindMap.svg.on("mouseleave",this.onMouseleave),window.addEventListener("keyup",this.onKeyup)}unbind(){document.body.removeEventListener("mousedown",this.onBodyMousedown),document.body.removeEventListener("click",this.onBodyClick),this.mindMap.svg.off("click",this.onDrawClick),this.mindMap.el.removeEventListener("mousedown",this.onMousedown),window.removeEventListener("mousemove",this.onMousemove),window.removeEventListener("mouseup",this.onMouseup),this.off("node_mouseup",this.onNodeMouseup),this.mindMap.el.removeEventListener("wheel",this.onMousewheel),this.mindMap.svg.off("contextmenu",this.onContextmenu),this.mindMap.svg.off("mouseenter",this.onMouseenter),this.mindMap.svg.off("mouseleave",this.onMouseleave),window.removeEventListener("keyup",this.onKeyup)}onDrawClick(e){this.emit("draw_click",e)}onBodyMousedown(e){this.emit("body_mousedown",e)}onBodyClick(e){this.emit("body_click",e)}onSvgMousedown(e){this.emit("svg_mousedown",e)}onMousedown(e){e.which===1?this.isLeftMousedown=!0:e.which===3?this.isRightMousedown=!0:e.which===2&&(this.isMiddleMousedown=!0),this.mousedownPos.x=e.clientX,this.mousedownPos.y=e.clientY,this.emit("mousedown",e,this)}onMousemove(e){let{useLeftKeySelectionRightKeyDrag:t}=this.mindMap.opt;this.mousemovePos.x=e.clientX,this.mousemovePos.y=e.clientY,this.mousemoveOffset.x=e.clientX-this.mousedownPos.x,this.mousemoveOffset.y=e.clientY-this.mousedownPos.y,this.emit("mousemove",e,this),(this.isMiddleMousedown||(t?this.isRightMousedown:this.isLeftMousedown))&&(e.preventDefault(),this.emit("drag",e,this))}onMouseup(e){this.onNodeMouseup(),this.emit("mouseup",e,this)}onNodeMouseup(){this.isLeftMousedown=!1,this.isRightMousedown=!1,this.isMiddleMousedown=!1}onMousewheel(e){e.stopPropagation(),e.preventDefault();let t=[];e.deltaY<0&&t.push(A.DIR.UP),e.deltaY>0&&t.push(A.DIR.DOWN),e.deltaX<0&&t.push(A.DIR.LEFT),e.deltaX>0&&t.push(A.DIR.RIGHT);let r=!1,{customCheckIsTouchPad:n}=this.mindMap.opt;typeof n=="function"?r=n(e):r=Math.abs(e.deltaY)<=10,this.emit("mousewheel",e,t,this,r)}onContextmenu(e){e.preventDefault(),!e.ctrlKey&&this.emit("contextmenu",e)}onKeyup(e){this.emit("keyup",e)}onMouseenter(e){this.emit("svg_mouseenter",e)}onMouseleave(e){this.emit("svg_mouseleave",e)}},Vx=um});var fm,mm,Kx=M(()=>{hr();he();Oe();fm=class extends ut{constructor(e={},t){super(e),this.isUseLeft=t===A.LAYOUT.LOGICAL_STRUCTURE_LEFT}doLayout(e){qt([()=>{this.computedBaseValue()},()=>{this.computedTopValue()},()=>{this.adjustTopValue()},()=>{e(this.root)}])}computedBaseValue(){let e=0;se(this.renderer.renderTree,null,(t,r,n,s,a,o)=>{let l=this.createNode(t,r,n,s,a,o);if(l.sortIndex=e,e++,n?this.setNodeCenter(l):this.isUseLeft?l.left=r._node.left-l.width-this.getMarginX(s):l.left=r._node.left+r._node.width+this.getMarginX(s),!t.data.expand)return!0},(t,r,n,s)=>{let a=t.data.expand===!1?0:t._node.children.length;t._node.childrenAreaHeight=a?t._node.children.reduce((l,h)=>l+h.height,0)+(a+1)*this.getMarginY(s+1):0;let o=t._node.checkHasGeneralization()?t._node._generalizationNodeHeight+this.getMarginY(s+1):0;t._node.childrenAreaHeight2=Math.max(t._node.childrenAreaHeight,o)},!0,0)}computedTopValue(){se(this.root,null,(e,t,r,n)=>{if(e.getData("expand")&&e.children&&e.children.length){let s=this.getMarginY(n+1),o=e.top+e.height/2-e.childrenAreaHeight/2+s;e.children.forEach(l=>{l.top=o,o+=l.height+s})}},null,!0)}adjustTopValue(){se(this.root,null,(e,t,r,n)=>{if(!e.getData("expand"))return;let s=e.childrenAreaHeight2-this.getMarginY(n+1)*2-e.height;s>0&&this.updateBrothers(e,s/2)},null,!0)}updateBrothers(e,t){if(e.parent){let r=e.parent.children,n=Ee(e,r);r.forEach((s,a)=>{if(s.uid===e.uid||s.hasCustomPosition())return;let o=0;an&&(o=t),s.top+=o,s.children&&s.children.length&&this.updateChildren(s.children,"top",o)}),this.updateBrothers(e.parent,t)}}renderLine(e,t,r,n){n==="curve"?this.renderLineCurve(e,t,r):n==="direct"?this.renderLineDirect(e,t,r):this.renderLineStraight(e,t,r)}renderLineStraight(e,t,r){if(e.children.length<=0)return[];let{left:n,top:s,width:a,height:o,expandBtnSize:l}=e,{alwaysShowExpandBtn:h,notShowExpandBtn:d}=this.mindMap.opt;(!h||d)&&(l=0);let f=(this.getMarginX(e.layerIndex+1)-l)*.6;this.isUseLeft&&(f*=-1);let m=this.mindMap.themeConfig.nodeUseLineStyle;e.children.forEach((g,x)=>{let v;this.isUseLeft?v=e.layerIndex===0?n:n-l:v=e.layerIndex===0?n+a:n+a+l;let b=s+o/2,E=this.isUseLeft?g.left+g.width:g.left,S=g.top+g.height/2,C=m?g.width*(this.isUseLeft?-1:1):0;b=m&&!e.isRoot?b+o/2:b,S=m?S+g.height/2:S;let _=this.createFoldLine([[v,b],[v+f,b],[v+f,S],[E+C,S]]);this.setLineStyle(r,t[x],_,g)})}renderLineDirect(e,t,r){if(e.children.length<=0)return[];let{left:n,top:s,width:a,height:o,expandBtnSize:l}=e,{alwaysShowExpandBtn:h,notShowExpandBtn:d}=this.mindMap.opt;(!h||d)&&(l=0);let{nodeUseLineStyle:c}=this.mindMap.themeConfig;e.children.forEach((f,m)=>{e.layerIndex===0&&(l=0);let g=this.isUseLeft?n-l:n+a+l,x=s+o/2,v=this.isUseLeft?f.left+f.width:f.left,b=f.top+f.height/2;x=c&&!e.isRoot?x+o/2:x,b=c?b+f.height/2:b;let E=c?` L ${this.isUseLeft?f.left:f.left+f.width},${b}`:"",S=`M ${g},${x} L ${v},${b}`+E;this.setLineStyle(r,t[m],S,f)})}renderLineCurve(e,t,r){if(e.children.length<=0)return[];let{left:n,top:s,width:a,height:o,expandBtnSize:l}=e,{alwaysShowExpandBtn:h,notShowExpandBtn:d}=this.mindMap.opt;(!h||d)&&(l=0);let{nodeUseLineStyle:c,rootLineStartPositionKeepSameInCurve:f,rootLineKeepSameInCurve:m}=this.mindMap.themeConfig;e.children.forEach((g,x)=>{e.layerIndex===0&&(l=0);let v;this.isUseLeft?v=e.layerIndex===0&&!f?n+a/2:n-l:v=e.layerIndex===0&&!f?n+a/2:n+a+l;let b=s+o/2,E=this.isUseLeft?g.left+g.width:g.left,S=g.top+g.height/2,C="";b=c&&!e.isRoot?b+o/2:b,S=c?S+g.height/2:S;let _;this.isUseLeft?_=c?` L ${g.left},${S}`:"":_=c?` L ${g.left+g.width},${S}`:"",e.isRoot&&!m?C=this.quadraticCurvePath(v,b,E,S)+_:C=this.cubicBezierPath(v,b,E,S)+_,this.setLineStyle(r,t[x],C,g)})}renderExpandBtn(e,t){let{width:r,height:n,expandBtnSize:s,layerIndex:a}=e;a===0&&(s=0);let{translateX:o,translateY:l}=t.transform(),h=this.mindMap.themeConfig.nodeUseLineStyle?n/2:0,d=this.isUseLeft?0-s:r,c=n/2+h;d===o&&c===l||t.translate(d-o,c-l)}renderGeneralization(e){e.forEach(t=>{let{left:r,top:n,bottom:s,right:a,generalizationLineMargin:o,generalizationNodeMargin:l}=this.getNodeGeneralizationRenderBoundaries(t,"h"),h=this.isUseLeft?r-o:a+o,d=h,c=n,f=h,m=s,g=d+(this.isUseLeft?-20:20),x=c+(m-c)/2,v=`M ${d},${c} Q ${g},${x} ${f},${m}`;t.generalizationLine.plot(v),t.generalizationNode.left=h+(this.isUseLeft?-l:l)-(this.isUseLeft?t.generalizationNode.width:0),t.generalizationNode.top=n+(s-n-t.generalizationNode.height)/2})}renderExpandBtnRect(e,t,r,n){this.isUseLeft?e.size(t,n).x(-t).y(0):e.size(t,n).x(r).y(0)}},mm=fm});var pm,Zx,Qx=M(()=>{hr();he();Oe();pm=class extends ut{constructor(e={}){super(e)}doLayout(e){qt([()=>{this.computedBaseValue()},()=>{this.computedTopValue()},()=>{this.adjustTopValue()},()=>{e(this.root)}])}computedBaseValue(){se(this.renderer.renderTree,null,(e,t,r,n,s,a)=>{let o=this.createNode(e,t,r,n,s,a);if(r?this.setNodeCenter(o):(t._node.dir?o.dir=t._node.dir:o.dir=o.getData("dir")||(s%2===0?A.LAYOUT_GROW_DIR.RIGHT:A.LAYOUT_GROW_DIR.LEFT),o.left=o.dir===A.LAYOUT_GROW_DIR.RIGHT?t._node.left+t._node.width+this.getMarginX(n):t._node.left-this.getMarginX(n)-o.width),!e.data.expand)return!0},(e,t,r,n)=>{if(!e.data.expand){e._node.leftChildrenAreaHeight=0,e._node.rightChildrenAreaHeight=0;return}let s=0,a=0,o=0,l=0;e._node.children.forEach(d=>{d.dir===A.LAYOUT_GROW_DIR.LEFT?(s++,o+=d.height):(a++,l+=d.height)}),e._node.leftChildrenAreaHeight=o+(s+1)*this.getMarginY(n+1),e._node.rightChildrenAreaHeight=l+(a+1)*this.getMarginY(n+1);let h=e._node.checkHasGeneralization()?e._node._generalizationNodeHeight+this.getMarginY(n+1):0;e._node.leftChildrenAreaHeight2=Math.max(e._node.leftChildrenAreaHeight,h),e._node.rightChildrenAreaHeight2=Math.max(e._node.rightChildrenAreaHeight,h)},!0,0)}computedTopValue(){se(this.root,null,(e,t,r,n)=>{if(e.getData("expand")&&e.children&&e.children.length){let s=this.getMarginY(n+1),a=e.top+e.height/2+s,o=a-e.leftChildrenAreaHeight/2,l=a-e.rightChildrenAreaHeight/2;e.children.forEach(h=>{h.dir===A.LAYOUT_GROW_DIR.LEFT?(h.top=o,o+=h.height+s):(h.top=l,l+=h.height+s)})}},null,!0)}adjustTopValue(){se(this.root,null,(e,t,r,n)=>{if(!e.getData("expand"))return;let s=this.getMarginY(n+1)*2+e.height,a=e.leftChildrenAreaHeight2-s,o=e.rightChildrenAreaHeight2-s;(a>0||o>0)&&this.updateBrothers(e,a/2,o/2)},null,!0)}updateBrothers(e,t,r){if(e.parent){let n=e.parent.children.filter(a=>a.dir===e.dir),s=Ee(e,n);n.forEach((a,o)=>{if(a.hasCustomPosition())return;let l=0,h=a.dir===A.LAYOUT_GROW_DIR.LEFT?t:r;os&&(l=h),a.top+=l,a.children&&a.children.length&&this.updateChildren(a.children,"top",l)}),this.updateBrothers(e.parent,t,r)}}renderLine(e,t,r,n){n==="curve"?this.renderLineCurve(e,t,r):n==="direct"?this.renderLineDirect(e,t,r):this.renderLineStraight(e,t,r)}renderLineStraight(e,t,r){if(e.children.length<=0)return[];let{left:n,top:s,width:a,height:o,expandBtnSize:l}=e,{alwaysShowExpandBtn:h,notShowExpandBtn:d}=this.mindMap.opt;(!h||d)&&(l=0);let f=(this.getMarginX(e.layerIndex+1)-l)*.6,m=this.mindMap.themeConfig.nodeUseLineStyle;e.children.forEach((g,x)=>{let v=0,b=0,E=m?g.width:0;g.dir===A.LAYOUT_GROW_DIR.LEFT?(b=-f,v=e.layerIndex===0?n:n-l,E=-E):(b=f,v=e.layerIndex===0?n+a:n+a+l);let S=s+o/2,C=g.dir===A.LAYOUT_GROW_DIR.LEFT?g.left+g.width:g.left,_=g.top+g.height/2;S=m&&!e.isRoot?S+o/2:S,_=m?_+g.height/2:_;let I=this.createFoldLine([[v,S],[v+b,S],[v+b,_],[C+E,_]]);this.setLineStyle(r,t[x],I,g)})}renderLineDirect(e,t,r){if(e.children.length<=0)return[];let{left:n,top:s,width:a,height:o,expandBtnSize:l}=e,{alwaysShowExpandBtn:h,notShowExpandBtn:d}=this.mindMap.opt;(!h||d)&&(l=0);let{nodeUseLineStyle:c}=this.mindMap.themeConfig;e.children.forEach((f,m)=>{e.layerIndex===0&&(l=0);let g=f.dir===A.LAYOUT_GROW_DIR.LEFT?n-l:n+a+l,x=s+o/2,v=f.dir===A.LAYOUT_GROW_DIR.LEFT?f.left+f.width:f.left,b=f.top+f.height/2;x=c&&!e.isRoot?x+o/2:x,b=c?b+f.height/2:b;let E="";c&&(f.dir===A.LAYOUT_GROW_DIR.LEFT?E=` L ${f.left},${b}`:E=` L ${f.left+f.width},${b}`);let S=`M ${g},${x} L ${v},${b}`+E;this.setLineStyle(r,t[m],S,f)})}renderLineCurve(e,t,r){if(e.children.length<=0)return[];let{left:n,top:s,width:a,height:o,expandBtnSize:l}=e,{alwaysShowExpandBtn:h,notShowExpandBtn:d}=this.mindMap.opt;(!h||d)&&(l=0);let{nodeUseLineStyle:c,rootLineKeepSameInCurve:f,rootLineStartPositionKeepSameInCurve:m}=this.mindMap.themeConfig;e.children.forEach((g,x)=>{e.layerIndex===0&&(l=0);let v=e.layerIndex===0&&!m?n+a/2:g.dir===A.LAYOUT_GROW_DIR.LEFT?n-l:n+a+l,b=s+o/2,E=g.dir===A.LAYOUT_GROW_DIR.LEFT?g.left+g.width:g.left,S=g.top+g.height/2,C="";b=c&&!e.isRoot?b+o/2:b,S=c?S+g.height/2:S;let _="";c&&(g.dir===A.LAYOUT_GROW_DIR.LEFT?_=` L ${g.left},${S}`:_=` L ${g.left+g.width},${S}`),e.isRoot&&!f?C=this.quadraticCurvePath(v,b,E,S)+_:C=this.cubicBezierPath(v,b,E,S)+_,this.setLineStyle(r,t[x],C,g)})}renderExpandBtn(e,t){let{width:r,height:n,expandBtnSize:s}=e,{translateX:a,translateY:o}=t.transform(),l=this.mindMap.themeConfig.nodeUseLineStyle?n/2:0,h=e.dir===A.LAYOUT_GROW_DIR.LEFT?0-s:r,d=n/2+l;if(h===a&&d===o)return;let c=h-a,f=d-o;t.translate(c,f)}renderGeneralization(e){e.forEach(t=>{let r=t.node.dir===A.LAYOUT_GROW_DIR.LEFT,{top:n,bottom:s,left:a,right:o,generalizationLineMargin:l,generalizationNodeMargin:h}=this.getNodeGeneralizationRenderBoundaries(t,"h"),d=r?a-l:o+l,c=d,f=n,m=d,g=s,x=c+(r?-20:20),v=f+(g-f)/2,b=`M ${c},${f} Q ${x},${v} ${m},${g}`;t.generalizationLine.plot(b),t.generalizationNode.left=d+(r?-h:h)-(r?t.generalizationNode.width:0),t.generalizationNode.top=n+(s-n-t.generalizationNode.height)/2})}renderExpandBtnRect(e,t,r,n,s){s.dir===A.LAYOUT_GROW_DIR.LEFT?e.size(t,n).x(-t).y(0):e.size(t,n).x(r).y(0)}},Zx=pm});var gm,Jx,ev=M(()=>{hr();he();gm=class extends ut{constructor(e={}){super(e)}doLayout(e){qt([()=>{this.computedBaseValue()},()=>{this.computedLeftTopValue()},()=>{this.adjustLeftTopValue()},()=>{e(this.root)}])}computedBaseValue(){se(this.renderer.renderTree,null,(e,t,r,n,s,a)=>{let o=this.createNode(e,t,r,n,s,a);if(r?this.setNodeCenter(o):t._node.isRoot&&(o.top=t._node.top+t._node.height+this.getMarginX(n)),!e.data.expand)return!0},(e,t,r,n)=>{if(r){let s=e.data.expand===!1?0:e._node.children.length;e._node.childrenAreaWidth=s?e._node.children.reduce((a,o)=>a+o.width,0)+(s+1)*this.getMarginX(n+1):0}},!0,0)}computedLeftTopValue(){se(this.root,null,(e,t,r,n)=>{if(e.getData("expand")&&e.children&&e.children.length){let s=this.getMarginX(n+1),a=this.getMarginY(n+1);if(r){let l=e.left+e.width/2-e.childrenAreaWidth/2+s;e.children.forEach(h=>{h.left=l,l+=h.width+s})}else{let o=e.top+this.getNodeHeightWithGeneralization(e)+a+(this.getNodeActChildrenLength(e)>0?e.expandBtnSize:0);e.children.forEach(l=>{l.left=e.left+e.width*.5,l.top=o,o+=this.getNodeHeightWithGeneralization(l)+a+(this.getNodeActChildrenLength(l)>0?l.expandBtnSize:0)})}}},null,!0)}adjustLeftTopValue(){se(this.root,null,(e,t,r,n)=>{if(!e.getData("expand"))return;if(t&&t.isRoot){let o=this.getNodeAreaWidth(e,!0)-e.width;o>0&&this.updateBrothersLeft(e,o)}let s=e.children.length;if(t&&!t.isRoot&&s>0){let a=this.getMarginY(n+1),o=e.children.reduce((l,h)=>l+this.getNodeHeightWithGeneralization(h)+(this.getNodeActChildrenLength(h)>0?h.expandBtnSize:0),0)+s*a;this.updateBrothersTop(e,o)}},(e,t,r)=>{if(r){let{right:n,left:s}=this.getNodeBoundaries(e,"h"),a=n-s,o=e.left-s-(a-e.width)/2;this.updateChildren(e.children,"left",o)}},!0)}updateBrothersLeft(e,t){if(e.parent){let r=e.parent.children,n=Ee(e,r);r.forEach((s,a)=>{s.hasCustomPosition()||a<=n||(s.left+=t,s.children&&s.children.length&&this.updateChildren(s.children,"left",t))}),this.updateBrothersLeft(e.parent,t)}}updateBrothersTop(e,t){if(e.parent&&!e.parent.isRoot){let r=e.parent.children,n=Ee(e,r);r.forEach((s,a)=>{if(s.hasCustomPosition())return;let o=0;a>n&&(o=t),s.top+=o,s.children&&s.children.length&&this.updateChildren(s.children,"top",o)}),this.updateBrothersTop(e.parent,t)}}renderLine(e,t,r){if(e.children.length<=0)return[];let{left:n,top:s,width:a,height:o,expandBtnSize:l}=e,{alwaysShowExpandBtn:h,notShowExpandBtn:d}=this.mindMap.opt;(!h||d)&&(l=0);let c=e.children.length,f=this.getMarginX(e.layerIndex+1);if(e.isRoot){let m=n+a/2,g=s+o,x=f*.7,v=1/0,b=-1/0;e.children.forEach((S,C)=>{let _=S.left+S.width/2,I=S.top;_b&&(b=_);let O=this.mindMap.themeConfig.nodeUseLineStyle?` L ${S.left},${I} L ${S.left+S.width},${I}`:"",D=`M ${_},${g+x} L ${_},${g+x>I?I+S.height:I}`+O;this.setLineStyle(r,t[C],D,S)}),v=Math.min(v,m),b=Math.max(b,m);let E=this.lineDraw.path();if(e.style.line(E),E.plot(this.transformPath(`M ${m},${g} L ${m},${g+x}`)),e._lines.push(E),r&&r(E,e),c>0){let S=this.lineDraw.path();e.style.line(S),S.plot(this.transformPath(`M ${v},${g+x} L ${b},${g+x}`)),e._lines.push(S),r&&r(S,e)}}else{let m=s+o,g=-1/0,x=e.left+e.width*.3;if(e.children.forEach((v,b)=>{let E=v.top+v.height/2;E>g&&(g=E);let S="",C=v.left,_=v.left+v.widthx&&(I=!0,E=v.top,g=E),E>s&&E0){let v=this.lineDraw.path();l=c>0?l:0,e.style.line(v),g{let{top:r,bottom:n,right:s,generalizationLineMargin:a,generalizationNodeMargin:o}=this.getNodeGeneralizationRenderBoundaries(t,"h"),l=s+a,h=r,d=s+a,c=n,f=l+20,m=h+(c-h)/2,g=`M ${l},${h} Q ${f},${m} ${d},${c}`;t.generalizationLine.plot(this.transformPath(g)),t.generalizationNode.left=s+o,t.generalizationNode.top=r+(n-r-t.generalizationNode.height)/2})}renderExpandBtnRect(e,t,r,n,s){e.size(r,t).x(0).y(n)}},Jx=gm});var xm,tv,iv=M(()=>{hr();he();xm=class extends ut{constructor(e={}){super(e)}doLayout(e){qt([()=>{this.computedBaseValue()},()=>{this.computedLeftValue()},()=>{this.adjustLeftValue()},()=>{e(this.root)}])}computedBaseValue(){se(this.renderer.renderTree,null,(e,t,r,n,s,a)=>{let o=this.createNode(e,t,r,n,s,a);if(r?this.setNodeCenter(o):o.top=t._node.top+t._node.height+this.getMarginX(n),!e.data.expand)return!0},(e,t,r,n)=>{let s=e.data.expand===!1?0:e._node.children.length;e._node.childrenAreaWidth=s?e._node.children.reduce((o,l)=>o+l.width,0)+(s+1)*this.getMarginY(n+1):0;let a=e._node.checkHasGeneralization()?e._node._generalizationNodeWidth+this.getMarginY(n+1):0;e._node.childrenAreaWidth2=Math.max(e._node.childrenAreaWidth,a)},!0,0)}computedLeftValue(){se(this.root,null,(e,t,r,n)=>{if(e.getData("expand")&&e.children&&e.children.length){let s=this.getMarginY(n+1),o=e.left+e.width/2-e.childrenAreaWidth/2+s;e.children.forEach(l=>{l.left=o,o+=l.width+s})}},null,!0)}adjustLeftValue(){se(this.root,null,(e,t,r,n)=>{if(!e.getData("expand"))return;let s=e.childrenAreaWidth2-this.getMarginY(n+1)*2-e.width;s>0&&this.updateBrothers(e,s/2)},null,!0)}updateBrothers(e,t){if(e.parent){let r=e.parent.children,n=Ee(e,r);r.forEach((s,a)=>{if(s.hasCustomPosition())return;let o=0;an&&(o=t),s.left+=o,s.children&&s.children.length&&this.updateChildren(s.children,"left",o)}),this.updateBrothers(e.parent,t)}}renderLine(e,t,r,n){n==="curve"?this.renderLineCurve(e,t,r):n==="direct"?this.renderLineDirect(e,t,r):this.renderLineStraight(e,t,r)}renderLineCurve(e,t,r){if(e.children.length<=0)return[];let{left:n,top:s,width:a,height:o,expandBtnSize:l}=e,{alwaysShowExpandBtn:h,notShowExpandBtn:d}=this.mindMap.opt;(!h||d)&&(l=0);let{nodeUseLineStyle:c,rootLineStartPositionKeepSameInCurve:f,rootLineKeepSameInCurve:m}=this.mindMap.themeConfig;e.children.forEach((g,x)=>{e.layerIndex===0&&(l=0);let v=n+a/2,b=e.layerIndex===0&&!f?s+o/2:s+o+l,E=g.left+g.width/2,S=g.top,C="",_=c?` L ${g.left},${S} L ${g.left+g.width},${S}`:"";e.isRoot&&!m?C=this.quadraticCurvePath(v,b,E,S,!0)+_:C=this.cubicBezierPath(v,b,E,S,!0)+_,this.setLineStyle(r,t[x],C,g)})}renderLineDirect(e,t,r){if(e.children.length<=0)return[];let{left:n,top:s,width:a,height:o}=e,{nodeUseLineStyle:l}=this.mindMap.themeConfig,h=n+a/2,d=s+o;e.children.forEach((c,f)=>{let m=c.left+c.width/2,g=c.top,x=l?` L ${c.left},${g} L ${c.left+c.width},${g}`:"",v=`M ${h},${d} L ${m},${g}`+x;this.setLineStyle(r,t[f],v,c)})}renderLineStraight(e,t,r){if(e.children.length<=0)return[];let{left:n,top:s,width:a,height:o,expandBtnSize:l,isRoot:h}=e,{alwaysShowExpandBtn:d,notShowExpandBtn:c}=this.mindMap.opt;(!d||c)&&(l=0);let f=n+a/2,m=s+o,x=this.getMarginX(e.layerIndex+1)*.7,v=1/0,b=-1/0,E=e.children.length;e.children.forEach((C,_)=>{let I=C.left+C.width/2,O=m+x>C.top?C.top+C.height:C.top;Ib&&(b=I);let D=this.mindMap.themeConfig.nodeUseLineStyle?` L ${C.left},${O} L ${C.left+C.width},${O}`:"",$=`M ${I},${m+x} L ${I},${O}`+D;this.setLineStyle(r,t[_],$,C)}),v=Math.min(f,v),b=Math.max(f,b);let S=this.lineDraw.path();if(e.style.line(S),l=E>0&&!h?l:0,S.plot(this.transformPath(`M ${f},${m+l} L ${f},${m+x}`)),e._lines.push(S),r&&r(S,e),E>0){let C=this.lineDraw.path();e.style.line(C),C.plot(this.transformPath(`M ${v},${m+x} L ${b},${m+x}`)),e._lines.push(C),r&&r(C,e)}}renderExpandBtn(e,t){let{width:r,height:n,expandBtnSize:s}=e,{translateX:a,translateY:o}=t.transform();t.translate(r/2-s/2-a,n+s/2-o)}renderGeneralization(e){e.forEach(t=>{let{bottom:r,left:n,right:s,generalizationLineMargin:a,generalizationNodeMargin:o}=this.getNodeGeneralizationRenderBoundaries(t,"v"),l=n,h=r+a,d=s,c=r+a,f=l+(d-l)/2,m=h+20,g=`M ${l},${h} Q ${f},${m} ${d},${c}`;t.generalizationLine.plot(this.transformPath(g)),t.generalizationNode.top=r+o,t.generalizationNode.left=n+(s-n-t.generalizationNode.width)/2})}renderExpandBtnRect(e,t,r,n,s){e.size(r,t).x(0).y(n)}},tv=xm});var vm,ym,rv=M(()=>{hr();he();Oe();vm=class extends ut{constructor(e={},t){super(e),this.layout=t}doLayout(e){qt([()=>{this.computedBaseValue()},()=>{this.computedLeftTopValue()},()=>{this.adjustLeftTopValue()},()=>{e(this.root)}])}computedBaseValue(){se(this.renderer.renderTree,null,(e,t,r,n,s,a)=>{let o=this.createNode(e,t,r,n,s,a);if(r?this.setNodeCenter(o):(this.layout===A.LAYOUT.TIMELINE2?t._node.dir?o.dir=t._node.dir:o.dir=s%2===0?A.LAYOUT_GROW_DIR.BOTTOM:A.LAYOUT_GROW_DIR.TOP:o.dir="",t._node.isRoot&&(o.top=t._node.top+(e._node.height>t._node.height?-(e._node.height-t._node.height)/2:(t._node.height-e._node.height)/2))),!e.data.expand)return!0},null,!0,0)}computedLeftTopValue(){se(this.root,null,(e,t,r,n,s)=>{if(e.getData("expand")&&e.children&&e.children.length){let a=this.getMarginX(n+1),o=this.getMarginY(n+1);if(r){let h=e.left+e.width+a;e.children.forEach(d=>{d.left=h,h+=d.width+a})}else{let l=e.top+e.height+o+(this.getNodeActChildrenLength(e)>0?e.expandBtnSize:0);e.children.forEach(h=>{h.left=e.left+e.width*.5,h.top=l,l+=h.height+o+(this.getNodeActChildrenLength(h)>0?h.expandBtnSize:0)})}}},null,!0)}adjustLeftTopValue(){se(this.root,null,(e,t,r,n)=>{if(!e.getData("expand"))return;e.isRoot&&this.updateBrothersLeft(e);let s=e.children.length;if(t&&!t.isRoot&&s>0){let a=this.getMarginY(n+1),o=e.children.reduce((l,h)=>l+h.height+(this.getNodeActChildrenLength(h)>0?h.expandBtnSize:0),0)+s*a;this.updateBrothersTop(e,o)}},(e,t,r,n)=>{t&&t.isRoot&&e.dir===A.LAYOUT_GROW_DIR.TOP&&e.children.forEach(s=>{let a=this.getNodeAreaHeight(s),o=s.top;s.top=e.top-(s.top-e.top)-a+e.height,this.updateChildren(s.children,"top",s.top-o)})},!0)}getNodeAreaHeight(e){let t=0,r=n=>{t+=n.height+(this.getNodeActChildrenLength(n)>0?n.expandBtnSize:0)+this.getMarginY(n.layerIndex),n.children.length&&n.children.forEach(s=>{r(s)})};return r(e),t}updateBrothersLeft(e){let t=e.children,r=0;t.forEach(n=>{n.left+=r,n.children&&n.children.length&&this.updateChildren(n.children,"left",r);let{left:s,right:a}=this.getNodeBoundaries(n,"h"),l=a-s-n.width;l>0&&(r+=l)})}updateBrothersTop(e,t){if(e.parent&&!e.parent.isRoot){let r=e.parent.children,n=Ee(e,r);r.forEach((s,a)=>{if(s.hasCustomPosition())return;let o=0;a>n&&(o=t),s.top+=o,s.children&&s.children.length&&this.updateChildren(s.children,"top",o)}),this.updateBrothersTop(e.parent,t)}}renderLine(e,t,r){if(e.children.length<=0)return[];let{left:n,top:s,width:a,height:o,expandBtnSize:l}=e,{alwaysShowExpandBtn:h,notShowExpandBtn:d}=this.mindMap.opt;(!h||d)&&(l=0);let c=e.children.length;if(e.isRoot){let f=e;e.children.forEach((m,g)=>{let x=f.left+f.width,v=m.left,b=e.top+e.height/2,E=`M ${x},${b} L ${v},${b}`;this.setLineStyle(r,t[g],E,m),f=m})}else{let f=-1/0,m=1/0,g=e.left+e.width*.3;if(e.children.forEach((x,v)=>{let b=x.top+x.height/2;b>f&&(f=b),b0){let x=this.lineDraw.path();l=c>0?l:0,e.parent&&e.parent.isRoot&&e.dir===A.LAYOUT_GROW_DIR.TOP?x.plot(this.transformPath(`M ${g},${s} L ${g},${m}`)):x.plot(this.transformPath(`M ${g},${s+o+l} L ${g},${f}`)),e.style.line(x),e._lines.push(x),r&&r(x,e)}}}renderExpandBtn(e,t){let{width:r,height:n,expandBtnSize:s,isRoot:a}=e;if(!a){let{translateX:o,translateY:l}=t.transform();e.parent&&e.parent.isRoot&&e.dir===A.LAYOUT_GROW_DIR.TOP?t.translate(r*.3-s/2-o,-s/2-l):t.translate(r*.3-s/2-o,n+s/2-l)}}renderGeneralization(e){e.forEach(t=>{let{top:r,bottom:n,right:s,generalizationLineMargin:a,generalizationNodeMargin:o}=this.getNodeGeneralizationRenderBoundaries(t,"h"),l=s+a,h=r,d=s+a,c=n,f=l+20,m=h+(c-h)/2,g=`M ${l},${h} Q ${f},${m} ${d},${c}`;t.generalizationLine.plot(this.transformPath(g)),t.generalizationNode.left=s+o,t.generalizationNode.top=r+(n-r-t.generalizationNode.height)/2})}renderExpandBtnRect(e,t,r,n,s){if(this.layout===A.LAYOUT.TIMELINE)e.size(r,t).x(0).y(n);else{let a="";s.dir===A.LAYOUT_GROW_DIR.TOP?a=s.layerIndex===1?A.LAYOUT_GROW_DIR.TOP:A.LAYOUT_GROW_DIR.BOTTOM:a=A.LAYOUT_GROW_DIR.BOTTOM,a===A.LAYOUT_GROW_DIR.TOP?e.size(r,t).x(0).y(-t):e.size(r,t).x(0).y(n)}}},ym=vm});var bm,Id,nv=M(()=>{hr();he();Oe();bm=class extends ut{constructor(e={},t){super(e),this.layout=t}doLayout(e){qt([()=>{this.computedBaseValue()},()=>{this.computedTopValue()},()=>{this.adjustLeftTopValue()},()=>{e(this.root)}])}computedBaseValue(){se(this.renderer.renderTree,null,(e,t,r,n,s,a)=>{let o=this.createNode(e,t,r,n,s,a);if(r?this.setNodeCenter(o):(t._node.dir?o.dir=t._node.dir:this.layout===A.LAYOUT.VERTICAL_TIMELINE2?o.dir=A.LAYOUT_GROW_DIR.LEFT:this.layout===A.LAYOUT.VERTICAL_TIMELINE3?o.dir=A.LAYOUT_GROW_DIR.RIGHT:o.dir=s%2===0?A.LAYOUT_GROW_DIR.RIGHT:A.LAYOUT_GROW_DIR.LEFT,t._node.isRoot?o.left=t._node.left+(e._node.width>t._node.width?-(e._node.width-t._node.width)/2:(t._node.width-e._node.width)/2):o.left=o.dir===A.LAYOUT_GROW_DIR.RIGHT?t._node.left+t._node.width+this.getMarginX(n):t._node.left-this.getMarginX(n)-o.width),!e.data.expand)return!0},(e,t,r,n)=>{if(r)return;let s=e.data.expand===!1?0:e._node.children.length;e._node.childrenAreaHeight=s?e._node.children.reduce((a,o)=>a+o.height,0)+(s+1)*this.getMarginY(n+1):0},!0,0)}computedTopValue(){se(this.root,null,(e,t,r,n,s)=>{if(e.getData("expand")&&e.children&&e.children.length){let a=this.getMarginY(n+1);if(r){let l=e.top+e.height+a;e.children.forEach(h=>{h.top=l,l+=h.height+a})}else{let o=this.getMarginY(n+1),h=e.top+e.height/2+o-e.childrenAreaHeight/2;e.children.forEach(d=>{d.top=h,h+=d.height+o})}}},null,!0)}adjustLeftTopValue(){se(this.root,null,(e,t,r,n)=>{if(!e.getData("expand")||r)return;let s=this.getMarginY(n+1)*2+e.height,a=e.childrenAreaHeight-s;a>0&&this.updateBrothers(e,a/2)},null,!0)}updateBrothers(e,t){if(e.parent){let r=e.parent.children,n=Ee(e,r);r.forEach((s,a)=>{if(s.hasCustomPosition()||!e.parent.isRoot&&s.uid===e.uid)return;let o=0;e.parent.isRoot?an?o=t*2:o=t:an&&(o=t),s.top+=o,s.children&&s.children.length&&this.updateChildren(s.children,"top",o)}),this.updateBrothers(e.parent,t)}}updateBrothersTop(e,t){if(e.parent&&!e.parent.isRoot){let r=e.parent.children,n=Ee(e,r);r.forEach((s,a)=>{if(s.hasCustomPosition())return;let o=0;a>n&&(o=t),s.top+=o,s.children&&s.children.length&&this.updateChildren(s.children,"top",o)}),this.updateBrothersTop(e.parent,t)}}renderLine(e,t,r,n){n==="curve"?this.renderLineCurve(e,t,r):n==="direct"?this.renderLineDirect(e,t,r):this.renderLineStraight(e,t,r)}renderLineStraight(e,t,r){if(e.children.length<=0)return[];let{expandBtnSize:n}=e,{alwaysShowExpandBtn:s,notShowExpandBtn:a}=this.mindMap.opt;if((!s||a)&&(n=0),e.isRoot){let o=e;e.children.forEach((l,h)=>{let d=o.top+o.height,c=l.top,f=e.left+e.width/2,m=`M ${f},${d} L ${f},${c}`;this.setLineStyle(r,t[h],m,l),o=l})}else if(e.dir===A.LAYOUT_GROW_DIR.RIGHT){let o=e.left+e.width,l=e.top+e.height/2,d=(this.getMarginX(e.layerIndex+1)-n)*.6;e.children.forEach((c,f)=>{let m=c.left,g=c.top+c.height/2,x=this.createFoldLine([[o,l],[o+d,l],[o+d,g],[m,g]]);this.setLineStyle(r,t[f],x,c)})}else{let o=e.left,l=e.top+e.height/2,d=(this.getMarginX(e.layerIndex+1)-n)*.6;e.children.forEach((c,f)=>{let m=c.left+c.width,g=c.top+c.height/2,x=this.createFoldLine([[o,l],[o-d,l],[o-d,g],[m,g]]);this.setLineStyle(r,t[f],x,c)})}}renderLineDirect(e,t,r){if(e.children.length<=0)return[];let{left:n,top:s,width:a,height:o,expandBtnSize:l}=e,{alwaysShowExpandBtn:h,notShowExpandBtn:d}=this.mindMap.opt;(!h||d)&&(l=0),e.children.forEach((c,f)=>{if(e.isRoot){let m=e;e.children.forEach((g,x)=>{let v=m.top+m.height,b=g.top,E=e.left+e.width/2,S=`M ${E},${v} L ${E},${b}`;this.setLineStyle(r,t[x],S,g),m=g})}else{let m=c.dir===A.LAYOUT_GROW_DIR.LEFT?n-l:n+a+l,g=s+o/2,x=c.dir===A.LAYOUT_GROW_DIR.LEFT?c.left+c.width:c.left,v=c.top+c.height/2,b=`M ${m},${g} L ${x},${v}`;this.setLineStyle(r,t[f],b,c)}})}renderLineCurve(e,t,r){if(e.children.length<=0)return[];let{left:n,top:s,width:a,height:o,expandBtnSize:l}=e,{alwaysShowExpandBtn:h,notShowExpandBtn:d}=this.mindMap.opt;(!h||d)&&(l=0),e.children.forEach((c,f)=>{if(e.isRoot){let m=e;e.children.forEach((g,x)=>{let v=m.top+m.height,b=g.top,E=e.left+e.width/2,S=`M ${E},${v} L ${E},${b}`;this.setLineStyle(r,t[x],S,g),m=g})}else{let m=c.dir===A.LAYOUT_GROW_DIR.LEFT?n-l:n+a+l,g=s+o/2,x=c.dir===A.LAYOUT_GROW_DIR.LEFT?c.left+c.width:c.left,v=c.top+c.height/2,b=this.cubicBezierPath(m,g,x,v);this.setLineStyle(r,t[f],b,c)}})}renderExpandBtn(e,t){let{width:r,height:n,expandBtnSize:s,isRoot:a}=e;if(!a){let{translateX:o,translateY:l}=t.transform();e.dir===A.LAYOUT_GROW_DIR.RIGHT?t.translate(r-o,n/2-l):t.translate(-s-o,n/2-l)}}renderGeneralization(e){e.forEach(t=>{let r=t.node.dir===A.LAYOUT_GROW_DIR.LEFT,{top:n,bottom:s,left:a,right:o,generalizationLineMargin:l,generalizationNodeMargin:h}=this.getNodeGeneralizationRenderBoundaries(t,"h"),d=r?a-l:o+l,c=d,f=n,m=d,g=s,x=c+(r?-20:20),v=f+(g-f)/2,b=`M ${c},${f} Q ${x},${v} ${m},${g}`;t.generalizationLine.plot(this.transformPath(b)),t.generalizationNode.left=d+(r?-h:h)-(r?t.generalizationNode.width:0),t.generalizationNode.top=n+(s-n-t.generalizationNode.height)/2})}renderExpandBtnRect(e,t,r,n,s){s.dir===A.LAYOUT_GROW_DIR.LEFT?e.size(t,n).x(-t).y(0):e.size(t,n).x(r).y(0)}},Id=bm});var Fi,sv=M(()=>{he();Fi={top:{renderExpandBtn({node:i,btn:e,expandBtnSize:t,translateX:r,translateY:n,width:s,height:a}){i.parent&&i.parent.isRoot?e.translate(s*.3-t/2-r,-t/2-n):e.translate(s*.3-t/2-r,a+t/2-n)},renderLine({node:i,line:e,top:t,x:r,lineLength:n,height:s,expandBtnSize:a,maxy:o,ctx:l}){i.parent&&i.parent.isRoot?e.plot(l.transformPath(`M ${r},${t} L ${r+n},${t-Math.tan(Yr(l.mindMap.opt.fishboneDeg))*n}`)):e.plot(l.transformPath(`M ${r},${t+s+a} L ${r},${o}`))},computedLeftTopValue({layerIndex:i,node:e,ctx:t}){if(i>=1&&e.children){let r=t.getMarginY(i+1),n=e.left+e.width*t.childIndent,s=e.top+e.height+(t.getNodeActChildrenLength(e)>0?e.expandBtnSize:0)+r;e.children.forEach(a=>{a.left=n,a.top+=s,s+=a.height+(t.getNodeActChildrenLength(a)>0?a.expandBtnSize:0)+r})}},adjustLeftTopValueBefore({node:i,parent:e,ctx:t,layerIndex:r}){let n=i.children.length,s=t.getMarginY(r+1);if(e&&!e.isRoot&&n>0){let a=i.children.reduce((o,l)=>o+l.height+(t.getNodeActChildrenLength(l)>0?l.expandBtnSize:0)+s,0);t.updateBrothersTop(i,a)}},adjustLeftTopValueAfter({parent:i,node:e,ctx:t}){if(i&&i.isRoot){let r=t.getMarginY(e.layerIndex+1),n=e.expandBtnSize+r;e.children.forEach(s=>{let a=t.getNodeAreaHeight(s),o=s.top,l=s.left;s.top=e.top-(s.top-e.top)-a+e.height,s.left=e.left+e.width*t.indent+(a+n)/Math.tan(Yr(t.mindMap.opt.fishboneDeg)),n+=a,t.updateChildrenPro(s.children,{top:s.top-o,left:s.left-l})})}}},bottom:{renderExpandBtn({node:i,btn:e,expandBtnSize:t,translateX:r,translateY:n,width:s,height:a}){i.parent&&i.parent.isRoot?e.translate(s*.3-t/2-r,a+t/2-n):e.translate(s*.3-t/2-r,-t/2-n)},renderLine({node:i,line:e,top:t,x:r,lineLength:n,height:s,miny:a,ctx:o}){i.parent&&i.parent.isRoot?e.plot(o.transformPath(`M ${r},${t+s} L ${r+n},${t+s+Math.tan(Yr(o.mindMap.opt.fishboneDeg))*n}`)):e.plot(o.transformPath(`M ${r},${t} L ${r},${a}`))},computedLeftTopValue({layerIndex:i,node:e,ctx:t}){let r=t.getMarginY(i+1);if(i===1&&e.children){let n=e.left+e.width*t.childIndent,s=e.top+e.height+(t.getNodeActChildrenLength(e)>0?e.expandBtnSize:0)+r;e.children.forEach(a=>{a.left=n,a.top=s+(t.getNodeActChildrenLength(a)>0?a.expandBtnSize:0),s+=a.height+(t.getNodeActChildrenLength(a)>0?a.expandBtnSize:0)+r})}if(i>1&&e.children){let n=e.left+e.width*t.childIndent,s=e.top-(t.getNodeActChildrenLength(e)>0?e.expandBtnSize:0)-r;e.children.forEach(a=>{a.left=n,a.top=s-a.height,s-=a.height+(t.getNodeActChildrenLength(a)>0?a.expandBtnSize:0)+r})}},adjustLeftTopValueBefore({node:i,ctx:e,layerIndex:t}){let r=e.getMarginY(t+1),n=i.children.length;if(t>2&&n>0){let s=i.children.reduce((a,o)=>a+o.height+(e.getNodeActChildrenLength(o)>0?o.expandBtnSize:0)+r,0);e.updateBrothersTop(i,-s)}},adjustLeftTopValueAfter({parent:i,node:e,ctx:t}){if(i&&i.isRoot){let r=t.getMarginY(e.layerIndex+1),n=0,s=e.expandBtnSize;e.children.forEach(a=>{let o=t.getNodeActChildrenLength(a)>0,l=t.getNodeAreaHeight(a),h=o?l-a.height-(o?a.expandBtnSize:0):0;h-=o?r:0;let d=n+h,c=a.left;a.top+=d,a.left=e.left+e.width*t.indent+(l+s)/Math.tan(Yr(t.mindMap.opt.fishboneDeg)),n+=h,s+=l,t.updateChildrenPro(a.children,{top:d,left:a.left-c})})}}}}});var wm,Mm,av=M(()=>{hr();he();Oe();sv();ht();s0();wm=class extends ut{constructor(e={},t){super(e),this.layout=t,this.indent=.3,this.childIndent=.5,this.fishTail=null,this.maxx=0,this.headRatio=1,this.tailRatio=.6,this.paddingXRatio=.3,this.fishHeadPathStr="M4,181 C4,181, 0,177, 4,173 Q 96.09523809523809,0, 288.2857142857143,0 L 288.2857142857143,354 Q 48.047619047619044,354, 8,218.18367346938777 C8,218.18367346938777, 6,214.18367346938777, 8,214.18367346938777 L 41.183673469387756,214.18367346938777 Z",this.fishTailPathStr="M 606.9342905223708 0 Q 713.1342905223709 -177 819.3342905223708 -177 L 766.2342905223709 0 L 819.3342905223708 177 Q 713.1342905223709 177 606.9342905223708 0 z",this.bindEvent(),this.extendShape(),this.beforeChange=this.beforeChange.bind(this)}nodeIsRemoveAllLines(e){return e.isRoot||e.layerIndex===1}isFishbone2(){return this.layout===A.LAYOUT.FISHBONE2}bindEvent(){this.isFishbone2()&&(this.onCheckUpdateFishTail=this.onCheckUpdateFishTail.bind(this),this.mindMap.on("afterExecCommand",this.onCheckUpdateFishTail))}unBindEvent(){this.mindMap.off("afterExecCommand",this.onCheckUpdateFishTail)}extendShape(){this.isFishbone2()&&this.mindMap.addShape({name:"fishHead",createShape:e=>{let t=Me(``),{width:r,height:n}=e.shapeInstance.getNodeSize();return t.size(r,n),t},getPadding:({width:e,height:t,paddingX:r,paddingY:n})=>{e+=r*2,t+=n*2;let s=this.paddingXRatio*e,a=0;return e+=s*2,a=(e/this.headRatio-t)/2,{paddingX:s,paddingY:a}}})}doLayout(e){qt([()=>{this.computedBaseValue(),this.addFishTail()},()=>{this.computedLeftTopValue()},()=>{this.adjustLeftTopValue(),this.updateFishTailPosition()},()=>{e(this.root)}])}addFishTail(){if(!this.isFishbone2())return;let e=this.mindMap.lineDraw.findOne(".smm-layout-fishbone-tail");e?this.fishTail=e:(this.fishTail=Me(``),this.fishTail.addClass("smm-layout-fishbone-tail"));let t=this.root.height,r=t*this.tailRatio;this.fishTail.size(r,t),this.styleFishTail(),this.mindMap.lineDraw.add(this.fishTail)}onCheckUpdateFishTail(e,t,r){if(e==="SET_NODE_DATA"){let n=!1;Object.keys(r).forEach(s=>{wc.includes(s)&&(n=!0)}),n&&this.styleFishTail()}}styleFishTail(){this.root.style.shape(this.fishTail)}removeFishTail(){let e=this.mindMap.lineDraw.findOne(".smm-layout-fishbone-tail");e&&e.remove()}updateFishTailPosition(){this.isFishbone2()&&this.fishTail.x(this.maxx).cy(this.root.top+this.root.height/2)}computedBaseValue(){se(this.renderer.renderTree,null,(e,t,r,n,s,a)=>{r&&this.isFishbone2()&&(e.data.shape="fishHead");let o=this.createNode(e,t,r,n,s,a);if(r)this.setNodeCenter(o);else if(t._node.dir?o.dir=t._node.dir:o.dir=s%2===0?A.LAYOUT_GROW_DIR.TOP:A.LAYOUT_GROW_DIR.BOTTOM,t._node.isRoot){let l=this.getMarginY(n),h=this.isFishbone2()?t._node.height/4:0;this.checkIsTop(o)?o.top=t._node.top-o.height-l+h:o.top=t._node.top+t._node.height+l-h}if(!e.data.expand)return!0},null,!0,0)}computedLeftTopValue(){se(this.root,null,(e,t,r,n)=>{if(e.isRoot){let a=this.getMarginX(n+1),o=this.isFishbone2()?2:1,l=e.left+e.width+e.height/o+a,h=e.left+e.width+e.height/o+a;e.children.forEach(d=>{this.checkIsTop(d)?(d.left=l,l+=d.width+a):(d.left=h+20,h+=d.width+a)})}let s={layerIndex:n,node:e,ctx:this};this.checkIsTop(e)?Fi.top.computedLeftTopValue(s):Fi.bottom.computedLeftTopValue(s)},null,!0)}adjustLeftTopValue(){se(this.root,null,(e,t,r,n)=>{if(!e.getData("expand"))return;let s={node:e,parent:t,layerIndex:n,ctx:this};this.checkIsTop(e)?Fi.top.adjustLeftTopValueBefore(s):Fi.bottom.adjustLeftTopValueBefore(s)},(e,t)=>{let r={parent:t,node:e,ctx:this};if(this.checkIsTop(e)?Fi.top.adjustLeftTopValueAfter(r):Fi.bottom.adjustLeftTopValueAfter(r),e.isRoot){let n=0,s=0,a=-1/0;e.children.forEach(o=>{if(this.checkIsTop(o)){o.left+=n,this.updateChildren(o.children,"left",n);let{left:l,right:h}=this.getNodeBoundaries(o,"h");h>a&&(a=h),n+=h-l}else{o.left+=s,this.updateChildren(o.children,"left",s);let{left:l,right:h}=this.getNodeBoundaries(o,"h");h>a&&(a=h),s+=h-l}}),this.maxx=a}},!0)}getNodeAreaHeight(e){let t=0,r=n=>{let s=this.getMarginY(n.layerIndex);t+=n.height+(this.getNodeActChildrenLength(n)>0?n.expandBtnSize:0)+s,n.children.length&&n.children.forEach(a=>{r(a)})};return r(e),t}updateBrothersLeft(e){let t=e.children,r=0;t.forEach(n=>{n.left+=r,n.children&&n.children.length&&this.updateChildren(n.children,"left",r);let{left:s,right:a}=this.getNodeBoundaries(n,"h"),l=a-s-n.width;l>0&&(r+=l)})}updateBrothersTop(e,t){if(e.parent&&!e.parent.isRoot){let r=e.parent.children,n=Ee(e,r);r.forEach((s,a)=>{if(s.hasCustomPosition())return;let o=0;a>n&&(o=t),s.top+=o,s.children&&s.children.length&&this.updateChildren(s.children,"top",o)}),this.checkIsTop(e)?this.updateBrothersTop(e.parent,t):this.updateBrothersTop(e.parent,e.layerIndex===3?0:t)}}checkIsTop(e){return e.dir===A.LAYOUT_GROW_DIR.TOP}renderLine(e,t,r){if(e.layerIndex!==1&&e.children.length<=0)return[];let{top:n,height:s,expandBtnSize:a}=e,{alwaysShowExpandBtn:o,notShowExpandBtn:l}=this.mindMap.opt;(!o||l)&&(a=0);let h=e.children.length;if(e.isRoot){let d=-1/0;e.children.forEach(x=>{x.left>d&&(d=x.left);let v=this.getMarginY(x.layerIndex),b=x.left,E=e.height/2+v-(this.isFishbone2()?e.height/4:0),S=E/Math.tan(Yr(this.mindMap.opt.fishboneDeg)),C=this.lineDraw.path();this.checkIsTop(x)?C.plot(this.transformPath(`M ${b-S},${x.top+x.height+E} L ${x.left},${x.top+x.height}`)):C.plot(this.transformPath(`M ${b-S},${x.top-E} L ${b},${x.top}`)),e.style.line(C),e._lines.push(C),r&&r(C,e)});let c=e.top+e.height/2,f=e.height/2+this.getMarginY(e.layerIndex+1),m=this.lineDraw.path(),g=this.isFishbone2()?this.maxx:d-f/Math.tan(Yr(this.mindMap.opt.fishboneDeg));m.plot(this.transformPath(`M ${e.left+e.width},${c} L ${g},${c}`)),e.style.line(m),e._lines.push(m),r&&r(m,e)}else{let d=-1/0,c=1/0,f=-1/0,m=e.left+e.width*this.indent;if(e.children.forEach((g,x)=>{g.left>f&&(f=g.left);let v=g.top+g.height/2;if(v>d&&(d=v),v1){let b=`M ${m},${v} L ${g.left},${v}`;this.setLineStyle(r,t[x],b,g)}}),h>=0){let g=this.lineDraw.path();a=h>0?a:0;let x=f-e.left-e.width*this.indent;x=Math.max(x,0);let v={node:e,line:g,top:n,x:m,lineLength:x,height:s,expandBtnSize:a,maxy:d,miny:c,ctx:this};this.checkIsTop(e)?Fi.top.renderLine(v):Fi.bottom.renderLine(v),e.style.line(g),e._lines.push(g),r&&r(g,e)}}}renderExpandBtn(e,t){let{width:r,height:n,expandBtnSize:s,isRoot:a}=e;if(!a){let{translateX:o,translateY:l}=t.transform(),h={node:e,btn:t,expandBtnSize:s,translateX:o,translateY:l,width:r,height:n};this.checkIsTop(e)?Fi.top.renderExpandBtn(h):Fi.bottom.renderExpandBtn(h)}}renderGeneralization(e){e.forEach(t=>{let{top:r,bottom:n,right:s,generalizationLineMargin:a,generalizationNodeMargin:o}=this.getNodeGeneralizationRenderBoundaries(t,"h"),l=s+a,h=r,d=s+a,c=n,f=l+20,m=h+(c-h)/2,g=`M ${l},${h} Q ${f},${m} ${d},${c}`;t.generalizationLine.plot(this.transformPath(g)),t.generalizationNode.left=s+o,t.generalizationNode.top=r+(n-r-t.generalizationNode.height)/2})}renderExpandBtnRect(e,t,r,n,s){let a="";s.dir===A.LAYOUT_GROW_DIR.TOP?a=s.layerIndex===1?A.LAYOUT_GROW_DIR.TOP:A.LAYOUT_GROW_DIR.BOTTOM:a=s.layerIndex===1?A.LAYOUT_GROW_DIR.BOTTOM:A.LAYOUT_GROW_DIR.TOP,a===A.LAYOUT_GROW_DIR.TOP?e.size(r,t).x(0).y(-t):e.size(r,t).x(0).y(n)}beforeChange(){this.isFishbone2()&&(this.root.nodeData.data.shape=A.SHAPE.RECTANGLE,this.removeFishTail(),this.unBindEvent(),this.mindMap.removeShape("fishHead"))}},Mm=wm});var ov,Ll,lv=M(()=>{he();Oe();ov="smm-node-edit-wrap",Ll=class{constructor(e){this.renderer=e,this.mindMap=e.mindMap,this.currentNode=null,this.textEditNode=null,this.showTextEdit=!1,this.cacheEditingText="",this.hasBodyMousedown=!1,this.textNodePaddingX=5,this.textNodePaddingY=3,this.isNeedUpdateTextEditNode=!1,this.mindMap.addEditNodeClass(ov),this.bindEvent()}bindEvent(){this.show=this.show.bind(this),this.onScale=this.onScale.bind(this),this.onKeydown=this.onKeydown.bind(this),this.mindMap.on("node_dblclick",(e,t,r)=>{this.show({node:e,e:t,isInserting:r})}),this.mindMap.on("draw_click",()=>{this.hideEditTextBox()}),this.mindMap.on("body_mousedown",()=>{this.hasBodyMousedown=!0}),this.mindMap.on("body_click",()=>{this.hasBodyMousedown&&(this.hasBodyMousedown=!1,this.mindMap.opt.isEndNodeTextEditOnClickOuter&&this.hideEditTextBox())}),this.mindMap.on("svg_mousedown",()=>{this.hideEditTextBox()}),this.mindMap.on("expand_btn_click",()=>{this.hideEditTextBox()}),this.mindMap.on("before_node_active",()=>{this.hideEditTextBox()}),this.mindMap.on("mousewheel",()=>{this.mindMap.opt.mousewheelAction===A.MOUSE_WHEEL_ACTION.MOVE&&this.hideEditTextBox()}),this.mindMap.keyCommand.addShortcut("F2",()=>{this.renderer.activeNodeList.length<=0||this.show({node:this.renderer.activeNodeList[0]})}),this.mindMap.on("scale",this.onScale),this.mindMap.opt.enableAutoEnterTextEditWhenKeydown&&window.addEventListener("keydown",this.onKeydown),this.mindMap.on("beforeDestroy",()=>{this.unBindEvent()}),this.mindMap.on("after_update_config",(e,t)=>{e.openRealtimeRenderOnNodeTextEdit!==t.openRealtimeRenderOnNodeTextEdit&&(this.mindMap.richText?this.mindMap.richText.onOpenRealtimeRenderOnNodeTextEditConfigUpdate(e.openRealtimeRenderOnNodeTextEdit):this.onOpenRealtimeRenderOnNodeTextEditConfigUpdate(e.openRealtimeRenderOnNodeTextEdit)),e.enableAutoEnterTextEditWhenKeydown!==t.enableAutoEnterTextEditWhenKeydown&&window[e.enableAutoEnterTextEditWhenKeydown?"addEventListener":"removeEventListener"]("keydown",this.onKeydown)}),this.mindMap.on("afterExecCommand",()=>{this.isShowTextEdit()&&(this.isNeedUpdateTextEditNode=!0)}),this.mindMap.on("node_tree_render_end",()=>{this.isShowTextEdit()&&this.isNeedUpdateTextEditNode&&(this.isNeedUpdateTextEditNode=!1,this.updateTextEditNode())})}unBindEvent(){window.removeEventListener("keydown",this.onKeydown)}onKeydown(e){if(e.target!==document.body)return;let t=this.mindMap.renderer.activeNodeList;if(t.length<=0||t.length>1)return;let r=t[0];r&&this.checkIsAutoEnterTextEditKey(e)&&(e.preventDefault(),this.show({node:r,e,isInserting:!1,isFromKeyDown:!0}))}checkIsAutoEnterTextEditKey(e){let t=e.keyCode;return(t===229||t>=65&&t<=90||t>=48&&t<=57)&&!this.mindMap.keyCommand.hasCombinationKey(e)}registerTmpShortcut(){this.mindMap.keyCommand.addShortcut("Enter",()=>{this.hideEditTextBox()}),this.mindMap.keyCommand.addShortcut("Tab",()=>{this.hideEditTextBox()})}isShowTextEdit(){return this.mindMap.richText?this.mindMap.richText.showTextEdit:this.showTextEdit}setIsShowTextEdit(e){this.showTextEdit=e,e?this.mindMap.keyCommand.stopCheckInSvg():this.mindMap.keyCommand.recoveryCheckInSvg()}async show({node:e,isInserting:t=!1,isFromKeyDown:r=!1,isFromScale:n=!1}){if(e.isUseCustomNodeContent())return;this.getCurrentEditNode()&&this.hideEditTextBox();let{beforeTextEdit:a,openRealtimeRenderOnNodeTextEdit:o}=this.mindMap.opt;if(typeof a=="function"){let m=!1;try{m=await a(e,t)}catch(g){m=!1,this.mindMap.opt.errorHandler(di.BEFORE_TEXT_EDIT_ERROR,g)}if(!m)return}let{offsetLeft:l,offsetTop:h}=Fp(this.mindMap,e);this.mindMap.view.translateXY(l,h);let d=e._textData.node;o&&d.show();let c=d.node.getBoundingClientRect();o&&d.hide();let f={node:e,rect:c,isInserting:t,isFromKeyDown:r,isFromScale:n};if(this.mindMap.richText){this.mindMap.richText.showEditText(f);return}this.currentNode=e,this.showEditTextBox(f)}onOpenRealtimeRenderOnNodeTextEditConfigUpdate(e){this.textEditNode&&(this.textEditNode.style.background=e?"transparent":this.currentNode?this.getBackground(this.currentNode):"",this.textEditNode.style.boxShadow=e?"none":"0 0 20px rgba(0,0,0,.5)")}onScale(){let e=this.getCurrentEditNode();e&&(this.mindMap.richText?(this.mindMap.richText.cacheEditingText=this.mindMap.richText.getEditText(),this.mindMap.richText.showTextEdit=!1):(this.cacheEditingText=this.getEditText(),this.setIsShowTextEdit(!1)),this.show({node:e,isFromScale:!0}))}showEditTextBox({node:e,rect:t,isInserting:r,isFromKeyDown:n,isFromScale:s}){if(this.showTextEdit)return;let{nodeTextEditZIndex:a,textAutoWrapWidth:o,selectTextOnEnterEditText:l,openRealtimeRenderOnNodeTextEdit:h,autoEmptyTextWhenKeydownEnterEdit:d}=this.mindMap.opt;s||this.mindMap.emit("before_show_text_edit"),this.registerTmpShortcut(),this.textEditNode||(this.textEditNode=document.createElement("div"),this.textEditNode.classList.add(ov),this.textEditNode.style.cssText=` +`});var bv={};tt(bv,{default:()=>BP});var dp,vv,bc,BP,wv=T(()=>{og();pv();pe();yv();dp=!1,vv=vc.import("formats/formula"),bc=class{constructor(e){this.opt=e,this.mindMap=e.mindMap,window.katex=Oh,this.init(),this.config=this.getKatexConfig(),this.cssEl=null,this.addStyle(),this.extendQuill(),this.onDestroy=this.onDestroy.bind(this),this.mindMap.on("beforeDestroy",this.onDestroy)}onDestroy(){Object.getPrototypeOf(this.mindMap).constructor.instanceCount<=1&&(dp=!1,vc.register("formats/formula",vv,!0))}init(){this.mindMap.opt.enableEditFormulaInRichTextEdit&&(this.mindMap.opt.transformRichTextOnEnterEdit=this.latexRichToText.bind(this),this.mindMap.opt.beforeHideRichTextEdit=this.formatLatex.bind(this))}getKatexConfig(){let e={throwOnError:!1,errorColor:"#f00",output:"mathml"},{getKatexOutputType:t}=this.mindMap.opt;t=t||function(){let n=I2();if(n&&n<=100)return"html"};let r=t()||"mathml";return e.output=["mathml","html"].includes(r)?r:"mathml",e}extendQuill(){if(dp)return;dp=!0;let e=this;class t extends vv{static create(n){let s=super.create(n);return typeof n=="string"&&(Oh.render(n,s,e.config),s.setAttribute("data-value",mn(n))),s}}vc.register("formats/formula",t,!0)}getStyleText(){let{katexFontPath:e}=this.mindMap.opt,t="";return this.config.output==="html"&&(t=gv(e)),t+=xv(),t}addStyle(){this.cssEl=document.createElement("style"),this.cssEl.type="text/css",this.cssEl.innerHTML=this.getStyleText(),document.head.appendChild(this.cssEl)}removeStyle(){document.head.removeChild(this.cssEl)}insertFormulaToNode(e,t){let r=this.mindMap.richText;r.showEditText({node:e}),r.quill.insertEmbed(r.quill.getLength()-1,"formula",t),r.hideEditText([e])}latexRichToText(e){if(e.indexOf('class="ql-formula"')!==-1){let n=new DOMParser().parseFromString(e,"text/html").getElementsByClassName("ql-formula");for(let s of n)e=e.replace(s.outerHTML,`$${s.getAttribute("data-value")}$`);this.mindMap.opt.openRealtimeRenderOnNodeTextEdit&&setTimeout(()=>{this.mindMap.emit("node_text_edit_change",{node:this.mindMap.richText.node,text:this.mindMap.richText.getEditText(),richText:!0})},0)}return e}formatLatex(e){let t=e.quill.getContents(),r=t.ops,n=!1;for(let s=r.length-1;s>=0;s--){let o=r[s].insert;if(o&&typeof o!="object"&&o!==` +`&&/\$.+?\$/g.test(o)){let l=[...o.matchAll(/\$.+?\$/g)],h=o.split(/\$.+?\$/g);for(let d=l.length-1;d>=0;d--){let c=l[d]&&l[d][0]&&l[d][0].slice(1,-1)||null;c!==null&&c.trim().length>0&&this.checkFormulaIsLegal(c)?(h.splice(d+1,0,{insert:{formula:c}}),n=!0):h.splice(d+1,0,"")}for(;h.length>0;){let d=h.pop();if(typeof d=="string"){if(d.length<1)continue;d={insert:d}}d.attributes=r[s].attributes,r.splice(s+1,0,d)}r.splice(s,1)}}n&&e.quill.setContents(t)}checkFormulaIsLegal(e){try{return Oh.renderToString(e),!0}catch{return!1}}beforePluginRemove(){this.removeStyle(),this.mindMap.off("beforeDestroy",this.onDestroy)}beforePluginDestroy(){this.removeStyle(),this.mindMap.off("beforeDestroy",this.onDestroy)}};bc.instanceName="formula";BP=bc});var cp,Mv,Tv=T(()=>{$e();cp=class{constructor(e={}){this.opt=e,this.mindMap=this.opt.mindMap,this.scale=1,this.sx=0,this.sy=0,this.x=0,this.y=0,this.firstDrag=!0,this.setTransformData(this.mindMap.opt.viewData),this.bind()}bind(){this.mindMap.keyCommand.addShortcut("Control+=",()=>{this.enlarge()}),this.mindMap.keyCommand.addShortcut("Control+-",()=>{this.narrow()}),this.mindMap.keyCommand.addShortcut("Control+i",()=>{this.fit()}),this.mindMap.event.on("mousedown",e=>{let{isDisableDrag:t,mousedownEventPreventDefault:r}=this.mindMap.opt;t||(r&&e.preventDefault(),this.sx=this.x,this.sy=this.y)}),this.mindMap.event.on("drag",(e,t)=>{e.ctrlKey||e.metaKey||this.mindMap.opt.isDisableDrag||(this.firstDrag&&(this.firstDrag=!1,this.mindMap.renderer.activeNodeList.length>0&&this.mindMap.execCommand("CLEAR_ACTIVE_NODE")),this.x=this.sx+t.mousemoveOffset.x,this.y=this.sy+t.mousemoveOffset.y,this.transform())}),this.mindMap.event.on("mouseup",()=>{this.firstDrag=!0}),this.mindMap.event.on("mousewheel",(e,t,r,n)=>{let{customHandleMousewheel:s,mousewheelAction:a,mouseScaleCenterUseMousePosition:o,mousewheelMoveStep:l,mousewheelZoomActionReverse:h,disableMouseWheelZoom:d,translateRatio:c}=this.mindMap.opt;if(s&&typeof s=="function")return s(e);if(a===k.MOUSE_WHEEL_ACTION.ZOOM||e.ctrlKey||e.metaKey){if(d)return;let{x:f,y:m}=this.mindMap.toPos(e.clientX,e.clientY),g=o?f:void 0,x=o?m:void 0;switch(n&&(t.includes(k.DIR.LEFT)||t.includes(k.DIR.RIGHT))&&(t=t.filter(y=>![k.DIR.LEFT,k.DIR.RIGHT].includes(y))),!0){case t.includes(k.DIR.UP||k.DIR.LEFT):h?this.enlarge(g,x,n):this.narrow(g,x,n);break;case t.includes(k.DIR.DOWN||k.DIR.RIGHT):h?this.narrow(g,x,n):this.enlarge(g,x,n);break}}else{let f=0,m=0;n?(f=Math.abs(e.wheelDeltaX),m=Math.abs(e.wheelDeltaY)):f=m=l;let g=0,x=0;t.includes(k.DIR.DOWN)&&(x=-m),t.includes(k.DIR.UP)&&(x=m),t.includes(k.DIR.LEFT)&&(g=f),t.includes(k.DIR.RIGHT)&&(g=-f),this.translateXY(g*c,x*c)}}),this.mindMap.on("resize",()=>{this.checkNeedMindMapInCanvas()&&this.transform()})}getTransformData(){return{transform:this.mindMap.draw.transform(),state:{scale:this.scale,x:this.x,y:this.y,sx:this.sx,sy:this.sy}}}setTransformData(e){e&&(Object.keys(e.state).forEach(t=>{this[t]=e.state[t]}),this.mindMap.draw.transform({...e.transform}),this.mindMap.emit("view_data_change",this.getTransformData()),this.emitEvent("scale"),this.emitEvent("translate"))}translateXY(e,t){e===0&&t===0||(this.x+=e,this.y+=t,this.transform(),this.emitEvent("translate"))}translateX(e){e!==0&&(this.x+=e,this.transform(),this.emitEvent("translate"))}translateXTo(e){this.x=e,this.transform(),this.emitEvent("translate")}translateY(e){e!==0&&(this.y+=e,this.transform(),this.emitEvent("translate"))}translateYTo(e){this.y=e,this.transform(),this.emitEvent("translate")}transform(){try{this.limitMindMapInCanvas()}catch{}this.mindMap.draw.transform({origin:[0,0],scale:this.scale,translate:[this.x,this.y]}),this.mindMap.emit("view_data_change",this.getTransformData())}reset(){let e=this.scale!==1,t=this.x!==0||this.y!==0;this.scale=1,this.x=0,this.y=0,this.transform(),e&&this.emitEvent("scale"),t&&this.emitEvent("translate")}narrow(e,t,r){let{scaleRatio:n,minZoomRatio:s}=this.mindMap.opt;n=n/(r?5:1);let a=Math.max(this.scale-n,s/100);this.scaleInCenter(a,e,t),this.transform(),this.emitEvent("scale")}enlarge(e,t,r){let{scaleRatio:n,maxZoomRatio:s}=this.mindMap.opt;n=n/(r?5:1);let a=0;s===-1?a=this.scale+n:a=Math.min(this.scale+n,s/100),this.scaleInCenter(a,e,t),this.transform(),this.emitEvent("scale")}scaleInCenter(e,t,r){(t===void 0||r===void 0)&&(t=this.mindMap.width/2,r=this.mindMap.height/2);let n=this.scale,s=1-e/n,a=(t-this.x)*s,o=(r-this.y)*s;this.x+=a,this.y+=o,this.scale=e}setScale(e,t,r){t!==void 0&&r!==void 0?this.scaleInCenter(e,t,r):this.scale=e,this.transform(),this.emitEvent("scale")}fit(e=()=>{},t=!1,r){r=r===void 0?this.mindMap.opt.fitPadding:r;let n=this.mindMap.draw,s=n.transform(),a=e()||n.rbox(),o=a.width/s.scaleX,l=a.height/s.scaleY,h=o/l,{width:d,height:c}=this.mindMap.elRect;d=d-r*2,c=c-r*2;let f=d/c,m=0,g="";if(o<=d&&l<=c&&!t)m=1,g=1;else{let S=0,A=0;h>f?(S=d,A=d/h,g=2):(A=c,S=c*h,g=3),m=S/o}this.setScale(m);let x=e()||n.rbox();x.x-=this.mindMap.elRect.left,x.y-=this.mindMap.elRect.top;let y=0,b=0;g===1?(y=-x.x+r+(d-x.width)/2,b=-x.y+r+(c-x.height)/2):g===2?(y=-x.x+r,b=-x.y+r+(c-x.height)/2):g===3&&(y=-x.x+r+(d-x.width)/2,b=-x.y+r),this.translateXY(y,b)}checkNeedMindMapInCanvas(){if(this.mindMap.demonstrate&&this.mindMap.demonstrate.isInDemonstrate)return!1;let{isLimitMindMapInCanvasWhenHasScrollbar:e,isLimitMindMapInCanvas:t}=this.mindMap.opt;return this.mindMap.scrollbar?e:t}limitMindMapInCanvas(){if(!this.checkNeedMindMapInCanvas())return;let{scale:e,left:t,top:r,right:n,bottom:s}=this.getPositionLimit(),a=(this.mindMap.width-this.mindMap.initWidth)/2*e,o=(this.mindMap.height-this.mindMap.initHeight)/2*e,l=this.scale/e;t*=l,n*=l,r*=l,s*=l;let h=this.mindMap.width/2,d=this.mindMap.height/2,c=this.scale-1;t-=c*h-a,n-=c*h-a,r-=c*d-o,s-=c*d-o,this.x>t&&(this.x=t),this.xr&&(this.y=r),this.y{"use strict";var PP=Object.prototype.hasOwnProperty,jt="~";function o0(){}Object.create&&(o0.prototype=Object.create(null),new o0().__proto__||(jt=!1));function FP(i,e,t){this.fn=i,this.context=e,this.once=t||!1}function Nv(i,e,t,r,n){if(typeof t!="function")throw new TypeError("The listener must be a function");var s=new FP(t,r||i,n),a=jt?jt+e:e;return i._events[a]?i._events[a].fn?i._events[a]=[i._events[a],s]:i._events[a].push(s):(i._events[a]=s,i._eventsCount++),i}function wc(i,e){--i._eventsCount===0?i._events=new o0:delete i._events[e]}function Ct(){this._events=new o0,this._eventsCount=0}Ct.prototype.eventNames=function(){var e=[],t,r;if(this._eventsCount===0)return e;for(r in t=this._events)PP.call(t,r)&&e.push(jt?r.slice(1):r);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e};Ct.prototype.listeners=function(e){var t=jt?jt+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var n=0,s=r.length,a=new Array(s);n{Sv=pt(Ev());$e();fp=class extends Sv.default{constructor(e={}){super(),this.opt=e,this.mindMap=e.mindMap,this.isLeftMousedown=!1,this.isRightMousedown=!1,this.isMiddleMousedown=!1,this.mousedownPos={x:0,y:0},this.mousemovePos={x:0,y:0},this.mousemoveOffset={x:0,y:0},this.bindFn(),this.bind()}bindFn(){this.onBodyMousedown=this.onBodyMousedown.bind(this),this.onBodyClick=this.onBodyClick.bind(this),this.onDrawClick=this.onDrawClick.bind(this),this.onMousedown=this.onMousedown.bind(this),this.onMousemove=this.onMousemove.bind(this),this.onMouseup=this.onMouseup.bind(this),this.onNodeMouseup=this.onNodeMouseup.bind(this),this.onMousewheel=this.onMousewheel.bind(this),this.onContextmenu=this.onContextmenu.bind(this),this.onSvgMousedown=this.onSvgMousedown.bind(this),this.onKeyup=this.onKeyup.bind(this),this.onMouseenter=this.onMouseenter.bind(this),this.onMouseleave=this.onMouseleave.bind(this)}bind(){document.body.addEventListener("mousedown",this.onBodyMousedown),document.body.addEventListener("click",this.onBodyClick),this.mindMap.svg.on("click",this.onDrawClick),this.mindMap.el.addEventListener("mousedown",this.onMousedown),this.mindMap.svg.on("mousedown",this.onSvgMousedown),window.addEventListener("mousemove",this.onMousemove),window.addEventListener("mouseup",this.onMouseup),this.on("node_mouseup",this.onNodeMouseup),this.mindMap.el.addEventListener("wheel",this.onMousewheel),this.mindMap.svg.on("contextmenu",this.onContextmenu),this.mindMap.svg.on("mouseenter",this.onMouseenter),this.mindMap.svg.on("mouseleave",this.onMouseleave),window.addEventListener("keyup",this.onKeyup)}unbind(){document.body.removeEventListener("mousedown",this.onBodyMousedown),document.body.removeEventListener("click",this.onBodyClick),this.mindMap.svg.off("click",this.onDrawClick),this.mindMap.el.removeEventListener("mousedown",this.onMousedown),window.removeEventListener("mousemove",this.onMousemove),window.removeEventListener("mouseup",this.onMouseup),this.off("node_mouseup",this.onNodeMouseup),this.mindMap.el.removeEventListener("wheel",this.onMousewheel),this.mindMap.svg.off("contextmenu",this.onContextmenu),this.mindMap.svg.off("mouseenter",this.onMouseenter),this.mindMap.svg.off("mouseleave",this.onMouseleave),window.removeEventListener("keyup",this.onKeyup)}onDrawClick(e){this.emit("draw_click",e)}onBodyMousedown(e){this.emit("body_mousedown",e)}onBodyClick(e){this.emit("body_click",e)}onSvgMousedown(e){this.emit("svg_mousedown",e)}onMousedown(e){e.which===1?this.isLeftMousedown=!0:e.which===3?this.isRightMousedown=!0:e.which===2&&(this.isMiddleMousedown=!0),this.mousedownPos.x=e.clientX,this.mousedownPos.y=e.clientY,this.emit("mousedown",e,this)}onMousemove(e){let{useLeftKeySelectionRightKeyDrag:t}=this.mindMap.opt;this.mousemovePos.x=e.clientX,this.mousemovePos.y=e.clientY,this.mousemoveOffset.x=e.clientX-this.mousedownPos.x,this.mousemoveOffset.y=e.clientY-this.mousedownPos.y,this.emit("mousemove",e,this),(this.isMiddleMousedown||(t?this.isRightMousedown:this.isLeftMousedown))&&(e.preventDefault(),this.emit("drag",e,this))}onMouseup(e){this.onNodeMouseup(),this.emit("mouseup",e,this)}onNodeMouseup(){this.isLeftMousedown=!1,this.isRightMousedown=!1,this.isMiddleMousedown=!1}onMousewheel(e){e.stopPropagation(),e.preventDefault();let t=[];e.deltaY<0&&t.push(k.DIR.UP),e.deltaY>0&&t.push(k.DIR.DOWN),e.deltaX<0&&t.push(k.DIR.LEFT),e.deltaX>0&&t.push(k.DIR.RIGHT);let r=!1,{customCheckIsTouchPad:n}=this.mindMap.opt;typeof n=="function"?r=n(e):r=Math.abs(e.deltaY)<=10,this.emit("mousewheel",e,t,this,r)}onContextmenu(e){e.preventDefault(),!e.ctrlKey&&this.emit("contextmenu",e)}onKeyup(e){this.emit("keyup",e)}onMouseenter(e){this.emit("svg_mouseenter",e)}onMouseleave(e){this.emit("svg_mouseleave",e)}},Av=fp});var mp,pp,Cv=T(()=>{Ar();pe();$e();mp=class extends Mt{constructor(e={},t){super(e),this.isUseLeft=t===k.LAYOUT.LOGICAL_STRUCTURE_LEFT}doLayout(e){Zt([()=>{this.computedBaseValue()},()=>{this.computedTopValue()},()=>{this.adjustTopValue()},()=>{e(this.root)}])}computedBaseValue(){let e=0;de(this.renderer.renderTree,null,(t,r,n,s,a,o)=>{let l=this.createNode(t,r,n,s,a,o);if(l.sortIndex=e,e++,n?this.setNodeCenter(l):this.isUseLeft?l.left=r._node.left-l.width-this.getMarginX(s):l.left=r._node.left+r._node.width+this.getMarginX(s),!t.data.expand)return!0},(t,r,n,s)=>{let a=t.data.expand===!1?0:t._node.children.length;t._node.childrenAreaHeight=a?t._node.children.reduce((l,h)=>l+h.height,0)+(a+1)*this.getMarginY(s+1):0;let o=t._node.checkHasGeneralization()?t._node._generalizationNodeHeight+this.getMarginY(s+1):0;t._node.childrenAreaHeight2=Math.max(t._node.childrenAreaHeight,o)},!0,0)}computedTopValue(){de(this.root,null,(e,t,r,n)=>{if(e.getData("expand")&&e.children&&e.children.length){let s=this.getMarginY(n+1),o=e.top+e.height/2-e.childrenAreaHeight/2+s;e.children.forEach(l=>{l.top=o,o+=l.height+s})}},null,!0)}adjustTopValue(){de(this.root,null,(e,t,r,n)=>{if(!e.getData("expand"))return;let s=e.childrenAreaHeight2-this.getMarginY(n+1)*2-e.height;s>0&&this.updateBrothers(e,s/2)},null,!0)}updateBrothers(e,t){if(e.parent){let r=e.parent.children,n=Ie(e,r);r.forEach((s,a)=>{if(s.uid===e.uid||s.hasCustomPosition())return;let o=0;an&&(o=t),s.top+=o,s.children&&s.children.length&&this.updateChildren(s.children,"top",o)}),this.updateBrothers(e.parent,t)}}renderLine(e,t,r,n){n==="curve"?this.renderLineCurve(e,t,r):n==="direct"?this.renderLineDirect(e,t,r):this.renderLineStraight(e,t,r)}renderLineStraight(e,t,r){if(e.children.length<=0)return[];let{left:n,top:s,width:a,height:o,expandBtnSize:l}=e,{alwaysShowExpandBtn:h,notShowExpandBtn:d}=this.mindMap.opt;(!h||d)&&(l=0);let f=(this.getMarginX(e.layerIndex+1)-l)*.6;this.isUseLeft&&(f*=-1);let m=this.mindMap.themeConfig.nodeUseLineStyle;e.children.forEach((g,x)=>{let y;this.isUseLeft?y=e.layerIndex===0?n:n-l:y=e.layerIndex===0?n+a:n+a+l;let b=s+o/2,S=this.isUseLeft?g.left+g.width:g.left,A=g.top+g.height/2,C=m?g.width*(this.isUseLeft?-1:1):0;b=m&&!e.isRoot?b+o/2:b,A=m?A+g.height/2:A;let I=this.createFoldLine([[y,b],[y+f,b],[y+f,A],[S+C,A]]);this.setLineStyle(r,t[x],I,g)})}renderLineDirect(e,t,r){if(e.children.length<=0)return[];let{left:n,top:s,width:a,height:o,expandBtnSize:l}=e,{alwaysShowExpandBtn:h,notShowExpandBtn:d}=this.mindMap.opt;(!h||d)&&(l=0);let{nodeUseLineStyle:c}=this.mindMap.themeConfig;e.children.forEach((f,m)=>{e.layerIndex===0&&(l=0);let g=this.isUseLeft?n-l:n+a+l,x=s+o/2,y=this.isUseLeft?f.left+f.width:f.left,b=f.top+f.height/2;x=c&&!e.isRoot?x+o/2:x,b=c?b+f.height/2:b;let S=c?` L ${this.isUseLeft?f.left:f.left+f.width},${b}`:"",A=`M ${g},${x} L ${y},${b}`+S;this.setLineStyle(r,t[m],A,f)})}renderLineCurve(e,t,r){if(e.children.length<=0)return[];let{left:n,top:s,width:a,height:o,expandBtnSize:l}=e,{alwaysShowExpandBtn:h,notShowExpandBtn:d}=this.mindMap.opt;(!h||d)&&(l=0);let{nodeUseLineStyle:c,rootLineStartPositionKeepSameInCurve:f,rootLineKeepSameInCurve:m}=this.mindMap.themeConfig;e.children.forEach((g,x)=>{e.layerIndex===0&&(l=0);let y;this.isUseLeft?y=e.layerIndex===0&&!f?n+a/2:n-l:y=e.layerIndex===0&&!f?n+a/2:n+a+l;let b=s+o/2,S=this.isUseLeft?g.left+g.width:g.left,A=g.top+g.height/2,C="";b=c&&!e.isRoot?b+o/2:b,A=c?A+g.height/2:A;let I;this.isUseLeft?I=c?` L ${g.left},${A}`:"":I=c?` L ${g.left+g.width},${A}`:"",e.isRoot&&!m?C=this.quadraticCurvePath(y,b,S,A)+I:C=this.cubicBezierPath(y,b,S,A)+I,this.setLineStyle(r,t[x],C,g)})}renderExpandBtn(e,t){let{width:r,height:n,expandBtnSize:s,layerIndex:a}=e;a===0&&(s=0);let{translateX:o,translateY:l}=t.transform(),h=this.mindMap.themeConfig.nodeUseLineStyle?n/2:0,d=this.isUseLeft?0-s:r,c=n/2+h;d===o&&c===l||t.translate(d-o,c-l)}renderGeneralization(e){e.forEach(t=>{let{left:r,top:n,bottom:s,right:a,generalizationLineMargin:o,generalizationNodeMargin:l}=this.getNodeGeneralizationRenderBoundaries(t,"h"),h=this.isUseLeft?r-o:a+o,d=h,c=n,f=h,m=s,g=d+(this.isUseLeft?-20:20),x=c+(m-c)/2,y=`M ${d},${c} Q ${g},${x} ${f},${m}`;t.generalizationLine.plot(y),t.generalizationNode.left=h+(this.isUseLeft?-l:l)-(this.isUseLeft?t.generalizationNode.width:0),t.generalizationNode.top=n+(s-n-t.generalizationNode.height)/2})}renderExpandBtnRect(e,t,r,n){this.isUseLeft?e.size(t,n).x(-t).y(0):e.size(t,n).x(r).y(0)}},pp=mp});var gp,_v,Lv=T(()=>{Ar();pe();$e();gp=class extends Mt{constructor(e={}){super(e)}doLayout(e){Zt([()=>{this.computedBaseValue()},()=>{this.computedTopValue()},()=>{this.adjustTopValue()},()=>{e(this.root)}])}computedBaseValue(){de(this.renderer.renderTree,null,(e,t,r,n,s,a)=>{let o=this.createNode(e,t,r,n,s,a);if(r?this.setNodeCenter(o):(t._node.dir?o.dir=t._node.dir:o.dir=o.getData("dir")||(s%2===0?k.LAYOUT_GROW_DIR.RIGHT:k.LAYOUT_GROW_DIR.LEFT),o.left=o.dir===k.LAYOUT_GROW_DIR.RIGHT?t._node.left+t._node.width+this.getMarginX(n):t._node.left-this.getMarginX(n)-o.width),!e.data.expand)return!0},(e,t,r,n)=>{if(!e.data.expand){e._node.leftChildrenAreaHeight=0,e._node.rightChildrenAreaHeight=0;return}let s=0,a=0,o=0,l=0;e._node.children.forEach(d=>{d.dir===k.LAYOUT_GROW_DIR.LEFT?(s++,o+=d.height):(a++,l+=d.height)}),e._node.leftChildrenAreaHeight=o+(s+1)*this.getMarginY(n+1),e._node.rightChildrenAreaHeight=l+(a+1)*this.getMarginY(n+1);let h=e._node.checkHasGeneralization()?e._node._generalizationNodeHeight+this.getMarginY(n+1):0;e._node.leftChildrenAreaHeight2=Math.max(e._node.leftChildrenAreaHeight,h),e._node.rightChildrenAreaHeight2=Math.max(e._node.rightChildrenAreaHeight,h)},!0,0)}computedTopValue(){de(this.root,null,(e,t,r,n)=>{if(e.getData("expand")&&e.children&&e.children.length){let s=this.getMarginY(n+1),a=e.top+e.height/2+s,o=a-e.leftChildrenAreaHeight/2,l=a-e.rightChildrenAreaHeight/2;e.children.forEach(h=>{h.dir===k.LAYOUT_GROW_DIR.LEFT?(h.top=o,o+=h.height+s):(h.top=l,l+=h.height+s)})}},null,!0)}adjustTopValue(){de(this.root,null,(e,t,r,n)=>{if(!e.getData("expand"))return;let s=this.getMarginY(n+1)*2+e.height,a=e.leftChildrenAreaHeight2-s,o=e.rightChildrenAreaHeight2-s;(a>0||o>0)&&this.updateBrothers(e,a/2,o/2)},null,!0)}updateBrothers(e,t,r){if(e.parent){let n=e.parent.children.filter(a=>a.dir===e.dir),s=Ie(e,n);n.forEach((a,o)=>{if(a.hasCustomPosition())return;let l=0,h=a.dir===k.LAYOUT_GROW_DIR.LEFT?t:r;os&&(l=h),a.top+=l,a.children&&a.children.length&&this.updateChildren(a.children,"top",l)}),this.updateBrothers(e.parent,t,r)}}renderLine(e,t,r,n){n==="curve"?this.renderLineCurve(e,t,r):n==="direct"?this.renderLineDirect(e,t,r):this.renderLineStraight(e,t,r)}renderLineStraight(e,t,r){if(e.children.length<=0)return[];let{left:n,top:s,width:a,height:o,expandBtnSize:l}=e,{alwaysShowExpandBtn:h,notShowExpandBtn:d}=this.mindMap.opt;(!h||d)&&(l=0);let f=(this.getMarginX(e.layerIndex+1)-l)*.6,m=this.mindMap.themeConfig.nodeUseLineStyle;e.children.forEach((g,x)=>{let y=0,b=0,S=m?g.width:0;g.dir===k.LAYOUT_GROW_DIR.LEFT?(b=-f,y=e.layerIndex===0?n:n-l,S=-S):(b=f,y=e.layerIndex===0?n+a:n+a+l);let A=s+o/2,C=g.dir===k.LAYOUT_GROW_DIR.LEFT?g.left+g.width:g.left,I=g.top+g.height/2;A=m&&!e.isRoot?A+o/2:A,I=m?I+g.height/2:I;let O=this.createFoldLine([[y,A],[y+b,A],[y+b,I],[C+S,I]]);this.setLineStyle(r,t[x],O,g)})}renderLineDirect(e,t,r){if(e.children.length<=0)return[];let{left:n,top:s,width:a,height:o,expandBtnSize:l}=e,{alwaysShowExpandBtn:h,notShowExpandBtn:d}=this.mindMap.opt;(!h||d)&&(l=0);let{nodeUseLineStyle:c}=this.mindMap.themeConfig;e.children.forEach((f,m)=>{e.layerIndex===0&&(l=0);let g=f.dir===k.LAYOUT_GROW_DIR.LEFT?n-l:n+a+l,x=s+o/2,y=f.dir===k.LAYOUT_GROW_DIR.LEFT?f.left+f.width:f.left,b=f.top+f.height/2;x=c&&!e.isRoot?x+o/2:x,b=c?b+f.height/2:b;let S="";c&&(f.dir===k.LAYOUT_GROW_DIR.LEFT?S=` L ${f.left},${b}`:S=` L ${f.left+f.width},${b}`);let A=`M ${g},${x} L ${y},${b}`+S;this.setLineStyle(r,t[m],A,f)})}renderLineCurve(e,t,r){if(e.children.length<=0)return[];let{left:n,top:s,width:a,height:o,expandBtnSize:l}=e,{alwaysShowExpandBtn:h,notShowExpandBtn:d}=this.mindMap.opt;(!h||d)&&(l=0);let{nodeUseLineStyle:c,rootLineKeepSameInCurve:f,rootLineStartPositionKeepSameInCurve:m}=this.mindMap.themeConfig;e.children.forEach((g,x)=>{e.layerIndex===0&&(l=0);let y=e.layerIndex===0&&!m?n+a/2:g.dir===k.LAYOUT_GROW_DIR.LEFT?n-l:n+a+l,b=s+o/2,S=g.dir===k.LAYOUT_GROW_DIR.LEFT?g.left+g.width:g.left,A=g.top+g.height/2,C="";b=c&&!e.isRoot?b+o/2:b,A=c?A+g.height/2:A;let I="";c&&(g.dir===k.LAYOUT_GROW_DIR.LEFT?I=` L ${g.left},${A}`:I=` L ${g.left+g.width},${A}`),e.isRoot&&!f?C=this.quadraticCurvePath(y,b,S,A)+I:C=this.cubicBezierPath(y,b,S,A)+I,this.setLineStyle(r,t[x],C,g)})}renderExpandBtn(e,t){let{width:r,height:n,expandBtnSize:s}=e,{translateX:a,translateY:o}=t.transform(),l=this.mindMap.themeConfig.nodeUseLineStyle?n/2:0,h=e.dir===k.LAYOUT_GROW_DIR.LEFT?0-s:r,d=n/2+l;if(h===a&&d===o)return;let c=h-a,f=d-o;t.translate(c,f)}renderGeneralization(e){e.forEach(t=>{let r=t.node.dir===k.LAYOUT_GROW_DIR.LEFT,{top:n,bottom:s,left:a,right:o,generalizationLineMargin:l,generalizationNodeMargin:h}=this.getNodeGeneralizationRenderBoundaries(t,"h"),d=r?a-l:o+l,c=d,f=n,m=d,g=s,x=c+(r?-20:20),y=f+(g-f)/2,b=`M ${c},${f} Q ${x},${y} ${m},${g}`;t.generalizationLine.plot(b),t.generalizationNode.left=d+(r?-h:h)-(r?t.generalizationNode.width:0),t.generalizationNode.top=n+(s-n-t.generalizationNode.height)/2})}renderExpandBtnRect(e,t,r,n,s){s.dir===k.LAYOUT_GROW_DIR.LEFT?e.size(t,n).x(-t).y(0):e.size(t,n).x(r).y(0)}},_v=gp});var xp,Iv,zv=T(()=>{Ar();pe();xp=class extends Mt{constructor(e={}){super(e)}doLayout(e){Zt([()=>{this.computedBaseValue()},()=>{this.computedLeftTopValue()},()=>{this.adjustLeftTopValue()},()=>{e(this.root)}])}computedBaseValue(){de(this.renderer.renderTree,null,(e,t,r,n,s,a)=>{let o=this.createNode(e,t,r,n,s,a);if(r?this.setNodeCenter(o):t._node.isRoot&&(o.top=t._node.top+t._node.height+this.getMarginX(n)),!e.data.expand)return!0},(e,t,r,n)=>{if(r){let s=e.data.expand===!1?0:e._node.children.length;e._node.childrenAreaWidth=s?e._node.children.reduce((a,o)=>a+o.width,0)+(s+1)*this.getMarginX(n+1):0}},!0,0)}computedLeftTopValue(){de(this.root,null,(e,t,r,n)=>{if(e.getData("expand")&&e.children&&e.children.length){let s=this.getMarginX(n+1),a=this.getMarginY(n+1);if(r){let l=e.left+e.width/2-e.childrenAreaWidth/2+s;e.children.forEach(h=>{h.left=l,l+=h.width+s})}else{let o=e.top+this.getNodeHeightWithGeneralization(e)+a+(this.getNodeActChildrenLength(e)>0?e.expandBtnSize:0);e.children.forEach(l=>{l.left=e.left+e.width*.5,l.top=o,o+=this.getNodeHeightWithGeneralization(l)+a+(this.getNodeActChildrenLength(l)>0?l.expandBtnSize:0)})}}},null,!0)}adjustLeftTopValue(){de(this.root,null,(e,t,r,n)=>{if(!e.getData("expand"))return;if(t&&t.isRoot){let o=this.getNodeAreaWidth(e,!0)-e.width;o>0&&this.updateBrothersLeft(e,o)}let s=e.children.length;if(t&&!t.isRoot&&s>0){let a=this.getMarginY(n+1),o=e.children.reduce((l,h)=>l+this.getNodeHeightWithGeneralization(h)+(this.getNodeActChildrenLength(h)>0?h.expandBtnSize:0),0)+s*a;this.updateBrothersTop(e,o)}},(e,t,r)=>{if(r){let{right:n,left:s}=this.getNodeBoundaries(e,"h"),a=n-s,o=e.left-s-(a-e.width)/2;this.updateChildren(e.children,"left",o)}},!0)}updateBrothersLeft(e,t){if(e.parent){let r=e.parent.children,n=Ie(e,r);r.forEach((s,a)=>{s.hasCustomPosition()||a<=n||(s.left+=t,s.children&&s.children.length&&this.updateChildren(s.children,"left",t))}),this.updateBrothersLeft(e.parent,t)}}updateBrothersTop(e,t){if(e.parent&&!e.parent.isRoot){let r=e.parent.children,n=Ie(e,r);r.forEach((s,a)=>{if(s.hasCustomPosition())return;let o=0;a>n&&(o=t),s.top+=o,s.children&&s.children.length&&this.updateChildren(s.children,"top",o)}),this.updateBrothersTop(e.parent,t)}}renderLine(e,t,r){if(e.children.length<=0)return[];let{left:n,top:s,width:a,height:o,expandBtnSize:l}=e,{alwaysShowExpandBtn:h,notShowExpandBtn:d}=this.mindMap.opt;(!h||d)&&(l=0);let c=e.children.length,f=this.getMarginX(e.layerIndex+1);if(e.isRoot){let m=n+a/2,g=s+o,x=f*.7,y=1/0,b=-1/0;e.children.forEach((A,C)=>{let I=A.left+A.width/2,O=A.top;Ib&&(b=I);let q=this.mindMap.themeConfig.nodeUseLineStyle?` L ${A.left},${O} L ${A.left+A.width},${O}`:"",P=`M ${I},${g+x} L ${I},${g+x>O?O+A.height:O}`+q;this.setLineStyle(r,t[C],P,A)}),y=Math.min(y,m),b=Math.max(b,m);let S=this.lineDraw.path();if(e.style.line(S),S.plot(this.transformPath(`M ${m},${g} L ${m},${g+x}`)),e._lines.push(S),r&&r(S,e),c>0){let A=this.lineDraw.path();e.style.line(A),A.plot(this.transformPath(`M ${y},${g+x} L ${b},${g+x}`)),e._lines.push(A),r&&r(A,e)}}else{let m=s+o,g=-1/0,x=e.left+e.width*.3;if(e.children.forEach((y,b)=>{let S=y.top+y.height/2;S>g&&(g=S);let A="",C=y.left,I=y.left+y.widthx&&(O=!0,S=y.top,g=S),S>s&&S0){let y=this.lineDraw.path();l=c>0?l:0,e.style.line(y),g{let{top:r,bottom:n,right:s,generalizationLineMargin:a,generalizationNodeMargin:o}=this.getNodeGeneralizationRenderBoundaries(t,"h"),l=s+a,h=r,d=s+a,c=n,f=l+20,m=h+(c-h)/2,g=`M ${l},${h} Q ${f},${m} ${d},${c}`;t.generalizationLine.plot(this.transformPath(g)),t.generalizationNode.left=s+o,t.generalizationNode.top=r+(n-r-t.generalizationNode.height)/2})}renderExpandBtnRect(e,t,r,n,s){e.size(r,t).x(0).y(n)}},Iv=xp});var yp,Rv,Dv=T(()=>{Ar();pe();yp=class extends Mt{constructor(e={}){super(e)}doLayout(e){Zt([()=>{this.computedBaseValue()},()=>{this.computedLeftValue()},()=>{this.adjustLeftValue()},()=>{e(this.root)}])}computedBaseValue(){de(this.renderer.renderTree,null,(e,t,r,n,s,a)=>{let o=this.createNode(e,t,r,n,s,a);if(r?this.setNodeCenter(o):o.top=t._node.top+t._node.height+this.getMarginX(n),!e.data.expand)return!0},(e,t,r,n)=>{let s=e.data.expand===!1?0:e._node.children.length;e._node.childrenAreaWidth=s?e._node.children.reduce((o,l)=>o+l.width,0)+(s+1)*this.getMarginY(n+1):0;let a=e._node.checkHasGeneralization()?e._node._generalizationNodeWidth+this.getMarginY(n+1):0;e._node.childrenAreaWidth2=Math.max(e._node.childrenAreaWidth,a)},!0,0)}computedLeftValue(){de(this.root,null,(e,t,r,n)=>{if(e.getData("expand")&&e.children&&e.children.length){let s=this.getMarginY(n+1),o=e.left+e.width/2-e.childrenAreaWidth/2+s;e.children.forEach(l=>{l.left=o,o+=l.width+s})}},null,!0)}adjustLeftValue(){de(this.root,null,(e,t,r,n)=>{if(!e.getData("expand"))return;let s=e.childrenAreaWidth2-this.getMarginY(n+1)*2-e.width;s>0&&this.updateBrothers(e,s/2)},null,!0)}updateBrothers(e,t){if(e.parent){let r=e.parent.children,n=Ie(e,r);r.forEach((s,a)=>{if(s.hasCustomPosition())return;let o=0;an&&(o=t),s.left+=o,s.children&&s.children.length&&this.updateChildren(s.children,"left",o)}),this.updateBrothers(e.parent,t)}}renderLine(e,t,r,n){n==="curve"?this.renderLineCurve(e,t,r):n==="direct"?this.renderLineDirect(e,t,r):this.renderLineStraight(e,t,r)}renderLineCurve(e,t,r){if(e.children.length<=0)return[];let{left:n,top:s,width:a,height:o,expandBtnSize:l}=e,{alwaysShowExpandBtn:h,notShowExpandBtn:d}=this.mindMap.opt;(!h||d)&&(l=0);let{nodeUseLineStyle:c,rootLineStartPositionKeepSameInCurve:f,rootLineKeepSameInCurve:m}=this.mindMap.themeConfig;e.children.forEach((g,x)=>{e.layerIndex===0&&(l=0);let y=n+a/2,b=e.layerIndex===0&&!f?s+o/2:s+o+l,S=g.left+g.width/2,A=g.top,C="",I=c?` L ${g.left},${A} L ${g.left+g.width},${A}`:"";e.isRoot&&!m?C=this.quadraticCurvePath(y,b,S,A,!0)+I:C=this.cubicBezierPath(y,b,S,A,!0)+I,this.setLineStyle(r,t[x],C,g)})}renderLineDirect(e,t,r){if(e.children.length<=0)return[];let{left:n,top:s,width:a,height:o}=e,{nodeUseLineStyle:l}=this.mindMap.themeConfig,h=n+a/2,d=s+o;e.children.forEach((c,f)=>{let m=c.left+c.width/2,g=c.top,x=l?` L ${c.left},${g} L ${c.left+c.width},${g}`:"",y=`M ${h},${d} L ${m},${g}`+x;this.setLineStyle(r,t[f],y,c)})}renderLineStraight(e,t,r){if(e.children.length<=0)return[];let{left:n,top:s,width:a,height:o,expandBtnSize:l,isRoot:h}=e,{alwaysShowExpandBtn:d,notShowExpandBtn:c}=this.mindMap.opt;(!d||c)&&(l=0);let f=n+a/2,m=s+o,x=this.getMarginX(e.layerIndex+1)*.7,y=1/0,b=-1/0,S=e.children.length;e.children.forEach((C,I)=>{let O=C.left+C.width/2,q=m+x>C.top?C.top+C.height:C.top;Ob&&(b=O);let P=this.mindMap.themeConfig.nodeUseLineStyle?` L ${C.left},${q} L ${C.left+C.width},${q}`:"",W=`M ${O},${m+x} L ${O},${q}`+P;this.setLineStyle(r,t[I],W,C)}),y=Math.min(f,y),b=Math.max(f,b);let A=this.lineDraw.path();if(e.style.line(A),l=S>0&&!h?l:0,A.plot(this.transformPath(`M ${f},${m+l} L ${f},${m+x}`)),e._lines.push(A),r&&r(A,e),S>0){let C=this.lineDraw.path();e.style.line(C),C.plot(this.transformPath(`M ${y},${m+x} L ${b},${m+x}`)),e._lines.push(C),r&&r(C,e)}}renderExpandBtn(e,t){let{width:r,height:n,expandBtnSize:s}=e,{translateX:a,translateY:o}=t.transform();t.translate(r/2-s/2-a,n+s/2-o)}renderGeneralization(e){e.forEach(t=>{let{bottom:r,left:n,right:s,generalizationLineMargin:a,generalizationNodeMargin:o}=this.getNodeGeneralizationRenderBoundaries(t,"v"),l=n,h=r+a,d=s,c=r+a,f=l+(d-l)/2,m=h+20,g=`M ${l},${h} Q ${f},${m} ${d},${c}`;t.generalizationLine.plot(this.transformPath(g)),t.generalizationNode.top=r+o,t.generalizationNode.left=n+(s-n-t.generalizationNode.width)/2})}renderExpandBtnRect(e,t,r,n,s){e.size(r,t).x(0).y(n)}},Rv=yp});var vp,bp,Ov=T(()=>{Ar();pe();$e();vp=class extends Mt{constructor(e={},t){super(e),this.layout=t}doLayout(e){Zt([()=>{this.computedBaseValue()},()=>{this.computedLeftTopValue()},()=>{this.adjustLeftTopValue()},()=>{e(this.root)}])}computedBaseValue(){de(this.renderer.renderTree,null,(e,t,r,n,s,a)=>{let o=this.createNode(e,t,r,n,s,a);if(r?this.setNodeCenter(o):(this.layout===k.LAYOUT.TIMELINE2?t._node.dir?o.dir=t._node.dir:o.dir=s%2===0?k.LAYOUT_GROW_DIR.BOTTOM:k.LAYOUT_GROW_DIR.TOP:o.dir="",t._node.isRoot&&(o.top=t._node.top+(e._node.height>t._node.height?-(e._node.height-t._node.height)/2:(t._node.height-e._node.height)/2))),!e.data.expand)return!0},null,!0,0)}computedLeftTopValue(){de(this.root,null,(e,t,r,n,s)=>{if(e.getData("expand")&&e.children&&e.children.length){let a=this.getMarginX(n+1),o=this.getMarginY(n+1);if(r){let h=e.left+e.width+a;e.children.forEach(d=>{d.left=h,h+=d.width+a})}else{let l=e.top+e.height+o+(this.getNodeActChildrenLength(e)>0?e.expandBtnSize:0);e.children.forEach(h=>{h.left=e.left+e.width*.5,h.top=l,l+=h.height+o+(this.getNodeActChildrenLength(h)>0?h.expandBtnSize:0)})}}},null,!0)}adjustLeftTopValue(){de(this.root,null,(e,t,r,n)=>{if(!e.getData("expand"))return;e.isRoot&&this.updateBrothersLeft(e);let s=e.children.length;if(t&&!t.isRoot&&s>0){let a=this.getMarginY(n+1),o=e.children.reduce((l,h)=>l+h.height+(this.getNodeActChildrenLength(h)>0?h.expandBtnSize:0),0)+s*a;this.updateBrothersTop(e,o)}},(e,t,r,n)=>{t&&t.isRoot&&e.dir===k.LAYOUT_GROW_DIR.TOP&&e.children.forEach(s=>{let a=this.getNodeAreaHeight(s),o=s.top;s.top=e.top-(s.top-e.top)-a+e.height,this.updateChildren(s.children,"top",s.top-o)})},!0)}getNodeAreaHeight(e){let t=0,r=n=>{t+=n.height+(this.getNodeActChildrenLength(n)>0?n.expandBtnSize:0)+this.getMarginY(n.layerIndex),n.children.length&&n.children.forEach(s=>{r(s)})};return r(e),t}updateBrothersLeft(e){let t=e.children,r=0;t.forEach(n=>{n.left+=r,n.children&&n.children.length&&this.updateChildren(n.children,"left",r);let{left:s,right:a}=this.getNodeBoundaries(n,"h"),l=a-s-n.width;l>0&&(r+=l)})}updateBrothersTop(e,t){if(e.parent&&!e.parent.isRoot){let r=e.parent.children,n=Ie(e,r);r.forEach((s,a)=>{if(s.hasCustomPosition())return;let o=0;a>n&&(o=t),s.top+=o,s.children&&s.children.length&&this.updateChildren(s.children,"top",o)}),this.updateBrothersTop(e.parent,t)}}renderLine(e,t,r){if(e.children.length<=0)return[];let{left:n,top:s,width:a,height:o,expandBtnSize:l}=e,{alwaysShowExpandBtn:h,notShowExpandBtn:d}=this.mindMap.opt;(!h||d)&&(l=0);let c=e.children.length;if(e.isRoot){let f=e;e.children.forEach((m,g)=>{let x=f.left+f.width,y=m.left,b=e.top+e.height/2,S=`M ${x},${b} L ${y},${b}`;this.setLineStyle(r,t[g],S,m),f=m})}else{let f=-1/0,m=1/0,g=e.left+e.width*.3;if(e.children.forEach((x,y)=>{let b=x.top+x.height/2;b>f&&(f=b),b0){let x=this.lineDraw.path();l=c>0?l:0,e.parent&&e.parent.isRoot&&e.dir===k.LAYOUT_GROW_DIR.TOP?x.plot(this.transformPath(`M ${g},${s} L ${g},${m}`)):x.plot(this.transformPath(`M ${g},${s+o+l} L ${g},${f}`)),e.style.line(x),e._lines.push(x),r&&r(x,e)}}}renderExpandBtn(e,t){let{width:r,height:n,expandBtnSize:s,isRoot:a}=e;if(!a){let{translateX:o,translateY:l}=t.transform();e.parent&&e.parent.isRoot&&e.dir===k.LAYOUT_GROW_DIR.TOP?t.translate(r*.3-s/2-o,-s/2-l):t.translate(r*.3-s/2-o,n+s/2-l)}}renderGeneralization(e){e.forEach(t=>{let{top:r,bottom:n,right:s,generalizationLineMargin:a,generalizationNodeMargin:o}=this.getNodeGeneralizationRenderBoundaries(t,"h"),l=s+a,h=r,d=s+a,c=n,f=l+20,m=h+(c-h)/2,g=`M ${l},${h} Q ${f},${m} ${d},${c}`;t.generalizationLine.plot(this.transformPath(g)),t.generalizationNode.left=s+o,t.generalizationNode.top=r+(n-r-t.generalizationNode.height)/2})}renderExpandBtnRect(e,t,r,n,s){if(this.layout===k.LAYOUT.TIMELINE)e.size(r,t).x(0).y(n);else{let a="";s.dir===k.LAYOUT_GROW_DIR.TOP?a=s.layerIndex===1?k.LAYOUT_GROW_DIR.TOP:k.LAYOUT_GROW_DIR.BOTTOM:a=k.LAYOUT_GROW_DIR.BOTTOM,a===k.LAYOUT_GROW_DIR.TOP?e.size(r,t).x(0).y(-t):e.size(r,t).x(0).y(n)}}},bp=vp});var wp,Mc,Bv=T(()=>{Ar();pe();$e();wp=class extends Mt{constructor(e={},t){super(e),this.layout=t}doLayout(e){Zt([()=>{this.computedBaseValue()},()=>{this.computedTopValue()},()=>{this.adjustLeftTopValue()},()=>{e(this.root)}])}computedBaseValue(){de(this.renderer.renderTree,null,(e,t,r,n,s,a)=>{let o=this.createNode(e,t,r,n,s,a);if(r?this.setNodeCenter(o):(t._node.dir?o.dir=t._node.dir:this.layout===k.LAYOUT.VERTICAL_TIMELINE2?o.dir=k.LAYOUT_GROW_DIR.LEFT:this.layout===k.LAYOUT.VERTICAL_TIMELINE3?o.dir=k.LAYOUT_GROW_DIR.RIGHT:o.dir=s%2===0?k.LAYOUT_GROW_DIR.RIGHT:k.LAYOUT_GROW_DIR.LEFT,t._node.isRoot?o.left=t._node.left+(e._node.width>t._node.width?-(e._node.width-t._node.width)/2:(t._node.width-e._node.width)/2):o.left=o.dir===k.LAYOUT_GROW_DIR.RIGHT?t._node.left+t._node.width+this.getMarginX(n):t._node.left-this.getMarginX(n)-o.width),!e.data.expand)return!0},(e,t,r,n)=>{if(r)return;let s=e.data.expand===!1?0:e._node.children.length;e._node.childrenAreaHeight=s?e._node.children.reduce((a,o)=>a+o.height,0)+(s+1)*this.getMarginY(n+1):0},!0,0)}computedTopValue(){de(this.root,null,(e,t,r,n,s)=>{if(e.getData("expand")&&e.children&&e.children.length){let a=this.getMarginY(n+1);if(r){let l=e.top+e.height+a;e.children.forEach(h=>{h.top=l,l+=h.height+a})}else{let o=this.getMarginY(n+1),h=e.top+e.height/2+o-e.childrenAreaHeight/2;e.children.forEach(d=>{d.top=h,h+=d.height+o})}}},null,!0)}adjustLeftTopValue(){de(this.root,null,(e,t,r,n)=>{if(!e.getData("expand")||r)return;let s=this.getMarginY(n+1)*2+e.height,a=e.childrenAreaHeight-s;a>0&&this.updateBrothers(e,a/2)},null,!0)}updateBrothers(e,t){if(e.parent){let r=e.parent.children,n=Ie(e,r);r.forEach((s,a)=>{if(s.hasCustomPosition()||!e.parent.isRoot&&s.uid===e.uid)return;let o=0;e.parent.isRoot?an?o=t*2:o=t:an&&(o=t),s.top+=o,s.children&&s.children.length&&this.updateChildren(s.children,"top",o)}),this.updateBrothers(e.parent,t)}}updateBrothersTop(e,t){if(e.parent&&!e.parent.isRoot){let r=e.parent.children,n=Ie(e,r);r.forEach((s,a)=>{if(s.hasCustomPosition())return;let o=0;a>n&&(o=t),s.top+=o,s.children&&s.children.length&&this.updateChildren(s.children,"top",o)}),this.updateBrothersTop(e.parent,t)}}renderLine(e,t,r,n){n==="curve"?this.renderLineCurve(e,t,r):n==="direct"?this.renderLineDirect(e,t,r):this.renderLineStraight(e,t,r)}renderLineStraight(e,t,r){if(e.children.length<=0)return[];let{expandBtnSize:n}=e,{alwaysShowExpandBtn:s,notShowExpandBtn:a}=this.mindMap.opt;if((!s||a)&&(n=0),e.isRoot){let o=e;e.children.forEach((l,h)=>{let d=o.top+o.height,c=l.top,f=e.left+e.width/2,m=`M ${f},${d} L ${f},${c}`;this.setLineStyle(r,t[h],m,l),o=l})}else if(e.dir===k.LAYOUT_GROW_DIR.RIGHT){let o=e.left+e.width,l=e.top+e.height/2,d=(this.getMarginX(e.layerIndex+1)-n)*.6;e.children.forEach((c,f)=>{let m=c.left,g=c.top+c.height/2,x=this.createFoldLine([[o,l],[o+d,l],[o+d,g],[m,g]]);this.setLineStyle(r,t[f],x,c)})}else{let o=e.left,l=e.top+e.height/2,d=(this.getMarginX(e.layerIndex+1)-n)*.6;e.children.forEach((c,f)=>{let m=c.left+c.width,g=c.top+c.height/2,x=this.createFoldLine([[o,l],[o-d,l],[o-d,g],[m,g]]);this.setLineStyle(r,t[f],x,c)})}}renderLineDirect(e,t,r){if(e.children.length<=0)return[];let{left:n,top:s,width:a,height:o,expandBtnSize:l}=e,{alwaysShowExpandBtn:h,notShowExpandBtn:d}=this.mindMap.opt;(!h||d)&&(l=0),e.children.forEach((c,f)=>{if(e.isRoot){let m=e;e.children.forEach((g,x)=>{let y=m.top+m.height,b=g.top,S=e.left+e.width/2,A=`M ${S},${y} L ${S},${b}`;this.setLineStyle(r,t[x],A,g),m=g})}else{let m=c.dir===k.LAYOUT_GROW_DIR.LEFT?n-l:n+a+l,g=s+o/2,x=c.dir===k.LAYOUT_GROW_DIR.LEFT?c.left+c.width:c.left,y=c.top+c.height/2,b=`M ${m},${g} L ${x},${y}`;this.setLineStyle(r,t[f],b,c)}})}renderLineCurve(e,t,r){if(e.children.length<=0)return[];let{left:n,top:s,width:a,height:o,expandBtnSize:l}=e,{alwaysShowExpandBtn:h,notShowExpandBtn:d}=this.mindMap.opt;(!h||d)&&(l=0),e.children.forEach((c,f)=>{if(e.isRoot){let m=e;e.children.forEach((g,x)=>{let y=m.top+m.height,b=g.top,S=e.left+e.width/2,A=`M ${S},${y} L ${S},${b}`;this.setLineStyle(r,t[x],A,g),m=g})}else{let m=c.dir===k.LAYOUT_GROW_DIR.LEFT?n-l:n+a+l,g=s+o/2,x=c.dir===k.LAYOUT_GROW_DIR.LEFT?c.left+c.width:c.left,y=c.top+c.height/2,b=this.cubicBezierPath(m,g,x,y);this.setLineStyle(r,t[f],b,c)}})}renderExpandBtn(e,t){let{width:r,height:n,expandBtnSize:s,isRoot:a}=e;if(!a){let{translateX:o,translateY:l}=t.transform();e.dir===k.LAYOUT_GROW_DIR.RIGHT?t.translate(r-o,n/2-l):t.translate(-s-o,n/2-l)}}renderGeneralization(e){e.forEach(t=>{let r=t.node.dir===k.LAYOUT_GROW_DIR.LEFT,{top:n,bottom:s,left:a,right:o,generalizationLineMargin:l,generalizationNodeMargin:h}=this.getNodeGeneralizationRenderBoundaries(t,"h"),d=r?a-l:o+l,c=d,f=n,m=d,g=s,x=c+(r?-20:20),y=f+(g-f)/2,b=`M ${c},${f} Q ${x},${y} ${m},${g}`;t.generalizationLine.plot(this.transformPath(b)),t.generalizationNode.left=d+(r?-h:h)-(r?t.generalizationNode.width:0),t.generalizationNode.top=n+(s-n-t.generalizationNode.height)/2})}renderExpandBtnRect(e,t,r,n,s){s.dir===k.LAYOUT_GROW_DIR.LEFT?e.size(t,n).x(-t).y(0):e.size(t,n).x(r).y(0)}},Mc=wp});var er,Pv=T(()=>{pe();er={top:{renderExpandBtn({node:i,btn:e,expandBtnSize:t,translateX:r,translateY:n,width:s,height:a}){i.parent&&i.parent.isRoot?e.translate(s*.3-t/2-r,-t/2-n):e.translate(s*.3-t/2-r,a+t/2-n)},renderLine({node:i,line:e,top:t,x:r,lineLength:n,height:s,expandBtnSize:a,maxy:o,ctx:l}){i.parent&&i.parent.isRoot?e.plot(l.transformPath(`M ${r},${t} L ${r+n},${t-Math.tan(fn(l.mindMap.opt.fishboneDeg))*n}`)):e.plot(l.transformPath(`M ${r},${t+s+a} L ${r},${o}`))},computedLeftTopValue({layerIndex:i,node:e,ctx:t}){if(i>=1&&e.children){let r=t.getMarginY(i+1),n=e.left+e.width*t.childIndent,s=e.top+e.height+(t.getNodeActChildrenLength(e)>0?e.expandBtnSize:0)+r;e.children.forEach(a=>{a.left=n,a.top+=s,s+=a.height+(t.getNodeActChildrenLength(a)>0?a.expandBtnSize:0)+r})}},adjustLeftTopValueBefore({node:i,parent:e,ctx:t,layerIndex:r}){let n=i.children.length,s=t.getMarginY(r+1);if(e&&!e.isRoot&&n>0){let a=i.children.reduce((o,l)=>o+l.height+(t.getNodeActChildrenLength(l)>0?l.expandBtnSize:0)+s,0);t.updateBrothersTop(i,a)}},adjustLeftTopValueAfter({parent:i,node:e,ctx:t}){if(i&&i.isRoot){let r=t.getMarginY(e.layerIndex+1),n=e.expandBtnSize+r;e.children.forEach(s=>{let a=t.getNodeAreaHeight(s),o=s.top,l=s.left;s.top=e.top-(s.top-e.top)-a+e.height,s.left=e.left+e.width*t.indent+(a+n)/Math.tan(fn(t.mindMap.opt.fishboneDeg)),n+=a,t.updateChildrenPro(s.children,{top:s.top-o,left:s.left-l})})}}},bottom:{renderExpandBtn({node:i,btn:e,expandBtnSize:t,translateX:r,translateY:n,width:s,height:a}){i.parent&&i.parent.isRoot?e.translate(s*.3-t/2-r,a+t/2-n):e.translate(s*.3-t/2-r,-t/2-n)},renderLine({node:i,line:e,top:t,x:r,lineLength:n,height:s,miny:a,ctx:o}){i.parent&&i.parent.isRoot?e.plot(o.transformPath(`M ${r},${t+s} L ${r+n},${t+s+Math.tan(fn(o.mindMap.opt.fishboneDeg))*n}`)):e.plot(o.transformPath(`M ${r},${t} L ${r},${a}`))},computedLeftTopValue({layerIndex:i,node:e,ctx:t}){let r=t.getMarginY(i+1);if(i===1&&e.children){let n=e.left+e.width*t.childIndent,s=e.top+e.height+(t.getNodeActChildrenLength(e)>0?e.expandBtnSize:0)+r;e.children.forEach(a=>{a.left=n,a.top=s+(t.getNodeActChildrenLength(a)>0?a.expandBtnSize:0),s+=a.height+(t.getNodeActChildrenLength(a)>0?a.expandBtnSize:0)+r})}if(i>1&&e.children){let n=e.left+e.width*t.childIndent,s=e.top-(t.getNodeActChildrenLength(e)>0?e.expandBtnSize:0)-r;e.children.forEach(a=>{a.left=n,a.top=s-a.height,s-=a.height+(t.getNodeActChildrenLength(a)>0?a.expandBtnSize:0)+r})}},adjustLeftTopValueBefore({node:i,ctx:e,layerIndex:t}){let r=e.getMarginY(t+1),n=i.children.length;if(t>2&&n>0){let s=i.children.reduce((a,o)=>a+o.height+(e.getNodeActChildrenLength(o)>0?o.expandBtnSize:0)+r,0);e.updateBrothersTop(i,-s)}},adjustLeftTopValueAfter({parent:i,node:e,ctx:t}){if(i&&i.isRoot){let r=t.getMarginY(e.layerIndex+1),n=0,s=e.expandBtnSize;e.children.forEach(a=>{let o=t.getNodeActChildrenLength(a)>0,l=t.getNodeAreaHeight(a),h=o?l-a.height-(o?a.expandBtnSize:0):0;h-=o?r:0;let d=n+h,c=a.left;a.top+=d,a.left=e.left+e.width*t.indent+(l+s)/Math.tan(fn(t.mindMap.opt.fishboneDeg)),n+=h,s+=l,t.updateChildrenPro(a.children,{top:d,left:a.left-c})})}}}}});var Mp,Tp,Fv=T(()=>{Ar();pe();$e();Pv();yt();Y0();Mp=class extends Mt{constructor(e={},t){super(e),this.layout=t,this.indent=.3,this.childIndent=.5,this.fishTail=null,this.maxx=0,this.headRatio=1,this.tailRatio=.6,this.paddingXRatio=.3,this.fishHeadPathStr="M4,181 C4,181, 0,177, 4,173 Q 96.09523809523809,0, 288.2857142857143,0 L 288.2857142857143,354 Q 48.047619047619044,354, 8,218.18367346938777 C8,218.18367346938777, 6,214.18367346938777, 8,214.18367346938777 L 41.183673469387756,214.18367346938777 Z",this.fishTailPathStr="M 606.9342905223708 0 Q 713.1342905223709 -177 819.3342905223708 -177 L 766.2342905223709 0 L 819.3342905223708 177 Q 713.1342905223709 177 606.9342905223708 0 z",this.bindEvent(),this.extendShape(),this.beforeChange=this.beforeChange.bind(this)}nodeIsRemoveAllLines(e){return e.isRoot||e.layerIndex===1}isFishbone2(){return this.layout===k.LAYOUT.FISHBONE2}bindEvent(){this.isFishbone2()&&(this.onCheckUpdateFishTail=this.onCheckUpdateFishTail.bind(this),this.mindMap.on("afterExecCommand",this.onCheckUpdateFishTail))}unBindEvent(){this.mindMap.off("afterExecCommand",this.onCheckUpdateFishTail)}extendShape(){this.isFishbone2()&&this.mindMap.addShape({name:"fishHead",createShape:e=>{let t=Ae(``),{width:r,height:n}=e.shapeInstance.getNodeSize();return t.size(r,n),t},getPadding:({width:e,height:t,paddingX:r,paddingY:n})=>{e+=r*2,t+=n*2;let s=this.paddingXRatio*e,a=0;return e+=s*2,a=(e/this.headRatio-t)/2,{paddingX:s,paddingY:a}}})}doLayout(e){Zt([()=>{this.computedBaseValue(),this.addFishTail()},()=>{this.computedLeftTopValue()},()=>{this.adjustLeftTopValue(),this.updateFishTailPosition()},()=>{e(this.root)}])}addFishTail(){if(!this.isFishbone2())return;let e=this.mindMap.lineDraw.findOne(".smm-layout-fishbone-tail");e?this.fishTail=e:(this.fishTail=Ae(``),this.fishTail.addClass("smm-layout-fishbone-tail"));let t=this.root.height,r=t*this.tailRatio;this.fishTail.size(r,t),this.styleFishTail(),this.mindMap.lineDraw.add(this.fishTail)}onCheckUpdateFishTail(e,t,r){if(e==="SET_NODE_DATA"){let n=!1;Object.keys(r).forEach(s=>{Mu.includes(s)&&(n=!0)}),n&&this.styleFishTail()}}styleFishTail(){this.root.style.shape(this.fishTail)}removeFishTail(){let e=this.mindMap.lineDraw.findOne(".smm-layout-fishbone-tail");e&&e.remove()}updateFishTailPosition(){this.isFishbone2()&&this.fishTail.x(this.maxx).cy(this.root.top+this.root.height/2)}computedBaseValue(){de(this.renderer.renderTree,null,(e,t,r,n,s,a)=>{r&&this.isFishbone2()&&(e.data.shape="fishHead");let o=this.createNode(e,t,r,n,s,a);if(r)this.setNodeCenter(o);else if(t._node.dir?o.dir=t._node.dir:o.dir=s%2===0?k.LAYOUT_GROW_DIR.TOP:k.LAYOUT_GROW_DIR.BOTTOM,t._node.isRoot){let l=this.getMarginY(n),h=this.isFishbone2()?t._node.height/4:0;this.checkIsTop(o)?o.top=t._node.top-o.height-l+h:o.top=t._node.top+t._node.height+l-h}if(!e.data.expand)return!0},null,!0,0)}computedLeftTopValue(){de(this.root,null,(e,t,r,n)=>{if(e.isRoot){let a=this.getMarginX(n+1),o=this.isFishbone2()?2:1,l=e.left+e.width+e.height/o+a,h=e.left+e.width+e.height/o+a;e.children.forEach(d=>{this.checkIsTop(d)?(d.left=l,l+=d.width+a):(d.left=h+20,h+=d.width+a)})}let s={layerIndex:n,node:e,ctx:this};this.checkIsTop(e)?er.top.computedLeftTopValue(s):er.bottom.computedLeftTopValue(s)},null,!0)}adjustLeftTopValue(){de(this.root,null,(e,t,r,n)=>{if(!e.getData("expand"))return;let s={node:e,parent:t,layerIndex:n,ctx:this};this.checkIsTop(e)?er.top.adjustLeftTopValueBefore(s):er.bottom.adjustLeftTopValueBefore(s)},(e,t)=>{let r={parent:t,node:e,ctx:this};if(this.checkIsTop(e)?er.top.adjustLeftTopValueAfter(r):er.bottom.adjustLeftTopValueAfter(r),e.isRoot){let n=0,s=0,a=-1/0;e.children.forEach(o=>{if(this.checkIsTop(o)){o.left+=n,this.updateChildren(o.children,"left",n);let{left:l,right:h}=this.getNodeBoundaries(o,"h");h>a&&(a=h),n+=h-l}else{o.left+=s,this.updateChildren(o.children,"left",s);let{left:l,right:h}=this.getNodeBoundaries(o,"h");h>a&&(a=h),s+=h-l}}),this.maxx=a}},!0)}getNodeAreaHeight(e){let t=0,r=n=>{let s=this.getMarginY(n.layerIndex);t+=n.height+(this.getNodeActChildrenLength(n)>0?n.expandBtnSize:0)+s,n.children.length&&n.children.forEach(a=>{r(a)})};return r(e),t}updateBrothersLeft(e){let t=e.children,r=0;t.forEach(n=>{n.left+=r,n.children&&n.children.length&&this.updateChildren(n.children,"left",r);let{left:s,right:a}=this.getNodeBoundaries(n,"h"),l=a-s-n.width;l>0&&(r+=l)})}updateBrothersTop(e,t){if(e.parent&&!e.parent.isRoot){let r=e.parent.children,n=Ie(e,r);r.forEach((s,a)=>{if(s.hasCustomPosition())return;let o=0;a>n&&(o=t),s.top+=o,s.children&&s.children.length&&this.updateChildren(s.children,"top",o)}),this.checkIsTop(e)?this.updateBrothersTop(e.parent,t):this.updateBrothersTop(e.parent,e.layerIndex===3?0:t)}}checkIsTop(e){return e.dir===k.LAYOUT_GROW_DIR.TOP}renderLine(e,t,r){if(e.layerIndex!==1&&e.children.length<=0)return[];let{top:n,height:s,expandBtnSize:a}=e,{alwaysShowExpandBtn:o,notShowExpandBtn:l}=this.mindMap.opt;(!o||l)&&(a=0);let h=e.children.length;if(e.isRoot){let d=-1/0;e.children.forEach(x=>{x.left>d&&(d=x.left);let y=this.getMarginY(x.layerIndex),b=x.left,S=e.height/2+y-(this.isFishbone2()?e.height/4:0),A=S/Math.tan(fn(this.mindMap.opt.fishboneDeg)),C=this.lineDraw.path();this.checkIsTop(x)?C.plot(this.transformPath(`M ${b-A},${x.top+x.height+S} L ${x.left},${x.top+x.height}`)):C.plot(this.transformPath(`M ${b-A},${x.top-S} L ${b},${x.top}`)),e.style.line(C),e._lines.push(C),r&&r(C,e)});let c=e.top+e.height/2,f=e.height/2+this.getMarginY(e.layerIndex+1),m=this.lineDraw.path(),g=this.isFishbone2()?this.maxx:d-f/Math.tan(fn(this.mindMap.opt.fishboneDeg));m.plot(this.transformPath(`M ${e.left+e.width},${c} L ${g},${c}`)),e.style.line(m),e._lines.push(m),r&&r(m,e)}else{let d=-1/0,c=1/0,f=-1/0,m=e.left+e.width*this.indent;if(e.children.forEach((g,x)=>{g.left>f&&(f=g.left);let y=g.top+g.height/2;if(y>d&&(d=y),y1){let b=`M ${m},${y} L ${g.left},${y}`;this.setLineStyle(r,t[x],b,g)}}),h>=0){let g=this.lineDraw.path();a=h>0?a:0;let x=f-e.left-e.width*this.indent;x=Math.max(x,0);let y={node:e,line:g,top:n,x:m,lineLength:x,height:s,expandBtnSize:a,maxy:d,miny:c,ctx:this};this.checkIsTop(e)?er.top.renderLine(y):er.bottom.renderLine(y),e.style.line(g),e._lines.push(g),r&&r(g,e)}}}renderExpandBtn(e,t){let{width:r,height:n,expandBtnSize:s,isRoot:a}=e;if(!a){let{translateX:o,translateY:l}=t.transform(),h={node:e,btn:t,expandBtnSize:s,translateX:o,translateY:l,width:r,height:n};this.checkIsTop(e)?er.top.renderExpandBtn(h):er.bottom.renderExpandBtn(h)}}renderGeneralization(e){e.forEach(t=>{let{top:r,bottom:n,right:s,generalizationLineMargin:a,generalizationNodeMargin:o}=this.getNodeGeneralizationRenderBoundaries(t,"h"),l=s+a,h=r,d=s+a,c=n,f=l+20,m=h+(c-h)/2,g=`M ${l},${h} Q ${f},${m} ${d},${c}`;t.generalizationLine.plot(this.transformPath(g)),t.generalizationNode.left=s+o,t.generalizationNode.top=r+(n-r-t.generalizationNode.height)/2})}renderExpandBtnRect(e,t,r,n,s){let a="";s.dir===k.LAYOUT_GROW_DIR.TOP?a=s.layerIndex===1?k.LAYOUT_GROW_DIR.TOP:k.LAYOUT_GROW_DIR.BOTTOM:a=s.layerIndex===1?k.LAYOUT_GROW_DIR.BOTTOM:k.LAYOUT_GROW_DIR.TOP,a===k.LAYOUT_GROW_DIR.TOP?e.size(r,t).x(0).y(-t):e.size(r,t).x(0).y(n)}beforeChange(){this.isFishbone2()&&(this.root.nodeData.data.shape=k.SHAPE.RECTANGLE,this.removeFishTail(),this.unBindEvent(),this.mindMap.removeShape("fishHead"))}},Tp=Mp});var qv,l0,Hv=T(()=>{pe();$e();qv="smm-node-edit-wrap",l0=class{constructor(e){this.renderer=e,this.mindMap=e.mindMap,this.currentNode=null,this.textEditNode=null,this.showTextEdit=!1,this.cacheEditingText="",this.hasBodyMousedown=!1,this.textNodePaddingX=5,this.textNodePaddingY=3,this.isNeedUpdateTextEditNode=!1,this.mindMap.addEditNodeClass(qv),this.bindEvent()}bindEvent(){this.show=this.show.bind(this),this.onScale=this.onScale.bind(this),this.onKeydown=this.onKeydown.bind(this),this.mindMap.on("node_dblclick",(e,t,r)=>{this.show({node:e,e:t,isInserting:r})}),this.mindMap.on("draw_click",()=>{this.hideEditTextBox()}),this.mindMap.on("body_mousedown",()=>{this.hasBodyMousedown=!0}),this.mindMap.on("body_click",()=>{this.hasBodyMousedown&&(this.hasBodyMousedown=!1,this.mindMap.opt.isEndNodeTextEditOnClickOuter&&this.hideEditTextBox())}),this.mindMap.on("svg_mousedown",()=>{this.hideEditTextBox()}),this.mindMap.on("expand_btn_click",()=>{this.hideEditTextBox()}),this.mindMap.on("before_node_active",()=>{this.hideEditTextBox()}),this.mindMap.on("mousewheel",()=>{this.mindMap.opt.mousewheelAction===k.MOUSE_WHEEL_ACTION.MOVE&&this.hideEditTextBox()}),this.mindMap.keyCommand.addShortcut("F2",()=>{this.renderer.activeNodeList.length<=0||this.show({node:this.renderer.activeNodeList[0]})}),this.mindMap.on("scale",this.onScale),this.mindMap.opt.enableAutoEnterTextEditWhenKeydown&&window.addEventListener("keydown",this.onKeydown),this.mindMap.on("beforeDestroy",()=>{this.unBindEvent()}),this.mindMap.on("after_update_config",(e,t)=>{e.openRealtimeRenderOnNodeTextEdit!==t.openRealtimeRenderOnNodeTextEdit&&(this.mindMap.richText?this.mindMap.richText.onOpenRealtimeRenderOnNodeTextEditConfigUpdate(e.openRealtimeRenderOnNodeTextEdit):this.onOpenRealtimeRenderOnNodeTextEditConfigUpdate(e.openRealtimeRenderOnNodeTextEdit)),e.enableAutoEnterTextEditWhenKeydown!==t.enableAutoEnterTextEditWhenKeydown&&window[e.enableAutoEnterTextEditWhenKeydown?"addEventListener":"removeEventListener"]("keydown",this.onKeydown)}),this.mindMap.on("afterExecCommand",()=>{this.isShowTextEdit()&&(this.isNeedUpdateTextEditNode=!0)}),this.mindMap.on("node_tree_render_end",()=>{this.isShowTextEdit()&&this.isNeedUpdateTextEditNode&&(this.isNeedUpdateTextEditNode=!1,this.updateTextEditNode())})}unBindEvent(){window.removeEventListener("keydown",this.onKeydown)}onKeydown(e){if(e.target!==document.body)return;let t=this.mindMap.renderer.activeNodeList;if(t.length<=0||t.length>1)return;let r=t[0];r&&this.checkIsAutoEnterTextEditKey(e)&&(e.preventDefault(),this.show({node:r,e,isInserting:!1,isFromKeyDown:!0}))}checkIsAutoEnterTextEditKey(e){let t=e.keyCode;return(t===229||t>=65&&t<=90||t>=48&&t<=57)&&!this.mindMap.keyCommand.hasCombinationKey(e)}registerTmpShortcut(){this.mindMap.keyCommand.addShortcut("Enter",()=>{this.hideEditTextBox()}),this.mindMap.keyCommand.addShortcut("Tab",()=>{this.hideEditTextBox()})}isShowTextEdit(){return this.mindMap.richText?this.mindMap.richText.showTextEdit:this.showTextEdit}setIsShowTextEdit(e){this.showTextEdit=e,e?this.mindMap.keyCommand.stopCheckInSvg():this.mindMap.keyCommand.recoveryCheckInSvg()}async show({node:e,isInserting:t=!1,isFromKeyDown:r=!1,isFromScale:n=!1}){if(e.isUseCustomNodeContent())return;this.getCurrentEditNode()&&this.hideEditTextBox();let{beforeTextEdit:a,openRealtimeRenderOnNodeTextEdit:o}=this.mindMap.opt;if(typeof a=="function"){let m=!1;try{m=await a(e,t)}catch(g){m=!1,this.mindMap.opt.errorHandler(Mi.BEFORE_TEXT_EDIT_ERROR,g)}if(!m)return}let{offsetLeft:l,offsetTop:h}=y2(this.mindMap,e);this.mindMap.view.translateXY(l,h);let d=e._textData.node;o&&d.show();let c=d.node.getBoundingClientRect();o&&d.hide();let f={node:e,rect:c,isInserting:t,isFromKeyDown:r,isFromScale:n};if(this.mindMap.richText){this.mindMap.richText.showEditText(f);return}this.currentNode=e,this.showEditTextBox(f)}onOpenRealtimeRenderOnNodeTextEditConfigUpdate(e){this.textEditNode&&(this.textEditNode.style.background=e?"transparent":this.currentNode?this.getBackground(this.currentNode):"",this.textEditNode.style.boxShadow=e?"none":"0 0 20px rgba(0,0,0,.5)")}onScale(){let e=this.getCurrentEditNode();e&&(this.mindMap.richText?(this.mindMap.richText.cacheEditingText=this.mindMap.richText.getEditText(),this.mindMap.richText.showTextEdit=!1):(this.cacheEditingText=this.getEditText(),this.setIsShowTextEdit(!1)),this.show({node:e,isFromScale:!0}))}showEditTextBox({node:e,rect:t,isInserting:r,isFromKeyDown:n,isFromScale:s}){if(this.showTextEdit)return;let{nodeTextEditZIndex:a,textAutoWrapWidth:o,selectTextOnEnterEditText:l,openRealtimeRenderOnNodeTextEdit:h,autoEmptyTextWhenKeydownEnterEdit:d}=this.mindMap.opt;s||this.mindMap.emit("before_show_text_edit"),this.registerTmpShortcut(),this.textEditNode||(this.textEditNode=document.createElement("div"),this.textEditNode.classList.add(qv),this.textEditNode.style.cssText=` position: fixed; box-sizing: border-box; ${h?"":"box-shadow: 0 0 20px rgba(0,0,0,.5);"} padding: ${this.textNodePaddingY}px ${this.textNodePaddingX}px; margin-left: -${this.textNodePaddingX}px; margin-top: -${this.textNodePaddingY}px; - outline: none; + outline: none; word-break: break-all; line-break: anywhere; - `,this.textEditNode.setAttribute("contenteditable",!0),this.textEditNode.addEventListener("keyup",v=>{v.stopPropagation()}),this.textEditNode.addEventListener("click",v=>{v.stopPropagation()}),this.textEditNode.addEventListener("mousedown",v=>{v.stopPropagation()}),this.textEditNode.addEventListener("keydown",v=>{this.checkIsAutoEnterTextEditKey(v)&&v.stopPropagation()}),this.textEditNode.addEventListener("paste",v=>{let b=v.clipboardData.getData("text"),{isSmm:E,data:S}=ao(b);E&&S[0]&&S[0].data?xc(v,ks(S[0].data.text)):xc(v),this.emitTextChangeEvent()}),this.textEditNode.addEventListener("input",()=>{this.emitTextChangeEvent()}),(this.mindMap.opt.customInnerElsAppendTo||document.body).appendChild(this.textEditNode));let c=this.mindMap.view.scale,f=e.style.merge("fontSize"),m=(this.cacheEditingText||e.getData("text")).split(/\n/gim).map(x=>Wr(x)),g=e._textData.node.attr("data-ismultiLine")==="true";e.style.domText(this.textEditNode,c),h||(this.textEditNode.style.background=this.getBackground(e)),this.textEditNode.style.zIndex=a,n&&d?this.textEditNode.innerHTML="":this.textEditNode.innerHTML=m.join("
    "),this.textEditNode.style.minWidth=t.width+this.textNodePaddingX*2+"px",this.textEditNode.style.minHeight=t.height+"px",this.textEditNode.style.left=Math.floor(t.left)+"px",this.textEditNode.style.top=Math.floor(t.top)+"px",this.textEditNode.style.display="block",this.textEditNode.style.maxWidth=o*c+"px",g?(this.textEditNode.style.lineHeight=fs,this.textEditNode.style.transform=`translateY(${(fs-1)*f/2*c}px)`):this.textEditNode.style.lineHeight="normal",this.setIsShowTextEdit(!0),r||l&&!n?Ls(this.textEditNode):_s(this.textEditNode),this.cacheEditingText=""}emitTextChangeEvent(){this.mindMap.emit("node_text_edit_change",{node:this.currentNode,text:this.getEditText(),richText:!1})}updateTextEditNode(){if(this.mindMap.richText){this.mindMap.richText.updateTextEditNode();return}if(!this.showTextEdit||!this.currentNode)return;let e=this.currentNode._textData.node.node.getBoundingClientRect();this.textEditNode.style.minWidth=e.width+this.textNodePaddingX*2+"px",this.textEditNode.style.minHeight=e.height+this.textNodePaddingY*2+"px",this.textEditNode.style.left=Math.floor(e.left)+"px",this.textEditNode.style.top=Math.floor(e.top)+"px"}getBackground(e){if(e.style.merge("gradientStyle")){let r=e.style.merge("startColor"),n=e.style.merge("endColor");return`linear-gradient(to right, ${r}, ${n})`}else{let r=e.style.merge("fillColor"),n=e.style.merge("color");return r==="transparent"?no(n)?e0(this.mindMap.themeConfig):"#fff":r}}removeTextEditEl(){if(this.mindMap.richText){this.mindMap.richText.removeTextEditEl();return}if(!this.textEditNode)return;(this.mindMap.opt.customInnerElsAppendTo||document.body).removeChild(this.textEditNode)}getEditText(){return As(this.textEditNode.innerHTML)}hideEditTextBox(){if(this.mindMap.richText)return this.mindMap.richText.hideEditText();if(!this.showTextEdit)return;let e=this.currentNode,t=this.getEditText();this.currentNode=null,this.textEditNode.style.display="none",this.textEditNode.innerHTML="",this.textEditNode.style.fontFamily="inherit",this.textEditNode.style.fontSize="inherit",this.textEditNode.style.fontWeight="normal",this.textEditNode.style.transform="translateY(0)",this.setIsShowTextEdit(!1),this.mindMap.execCommand("SET_NODE_TEXT",e,t),this.mindMap.render(),this.mindMap.emit("hide_text_edit",this.textEditNode,this.renderer.activeNodeList,e)}getCurrentEditNode(){return this.mindMap.richText?this.mindMap.richText.node:this.currentNode}}});var dv,hv,Tm,cv,uv=M(()=>{dv=ot(Wl());Kx();Qx();ev();iv();rv();nv();av();lv();he();Mc();io();Oe();ht();hv={[A.LAYOUT.LOGICAL_STRUCTURE]:mm,[A.LAYOUT.LOGICAL_STRUCTURE_LEFT]:mm,[A.LAYOUT.MIND_MAP]:Zx,[A.LAYOUT.CATALOG_ORGANIZATION]:Jx,[A.LAYOUT.ORGANIZATION_STRUCTURE]:tv,[A.LAYOUT.TIMELINE]:ym,[A.LAYOUT.TIMELINE2]:ym,[A.LAYOUT.VERTICAL_TIMELINE]:Id,[A.LAYOUT.VERTICAL_TIMELINE2]:Id,[A.LAYOUT.VERTICAL_TIMELINE3]:Id,[A.LAYOUT.FISHBONE]:Mm,[A.LAYOUT.FISHBONE2]:Mm},Tm=class{constructor(e={}){this.opt=e,this.mindMap=e.mindMap,this.themeConfig=this.mindMap.themeConfig,this.renderTree=this.mindMap.opt.data?(0,dv.default)({},this.mindMap.opt.data):null,this.reRender=!1,this.isRendering=!1,this.hasWaitRendering=!1,this.nodeCache={},this.lastNodeCache={},this.renderSourceList=[],this.renderCallbackList=[],this.activeNodeList=[],this.emitNodeActiveEventTimer=null,this.renderTimer=null,this.root=null,this.textEdit=new Ll(this),this.beingCopyData=null,this.highlightBoxNode=null,this.highlightBoxNodeStyle=null,this.lastActiveNodeList=[],this.setLayout(),this.bindEvent(),this.registerCommands(),this.registerShortcutKeys()}setLayout(){this.layout&&this.layout.beforeChange&&this.layout.beforeChange();let{layout:e}=this.mindMap.opt,t=hv[e]||this.mindMap[e];t||(t=hv[A.LAYOUT.LOGICAL_STRUCTURE],this.mindMap.opt.layout=A.LAYOUT.LOGICAL_STRUCTURE),this.layout=new t(this,e)}setData(e){this.renderTree=e||null}bindEvent(){let{openPerformance:e,performanceConfig:t,openRealtimeRenderOnNodeTextEdit:r}=this.mindMap.opt;this.mindMap.on("draw_click",s=>{this.clearActiveNodeListOnDrawClick(s,"click")}),this.mindMap.on("contextmenu",s=>{this.clearActiveNodeListOnDrawClick(s,"contextmenu")}),this.mindMap.svg.on("dblclick",()=>{this.mindMap.opt.enableDblclickBackToRootNode&&this.setRootNodeCenter()});let n=mi(()=>{this.renderTree&&this.root&&(this.mindMap.emit("node_tree_render_start"),this.root.render(()=>{this.mindMap.emit("node_tree_render_end")},!1,!0))},t.time);e&&this.mindMap.on("view_data_change",n),this.onNodeTextEditChange=Op(this.onNodeTextEditChange,100,this),r&&this.mindMap.on("node_text_edit_change",this.onNodeTextEditChange),this.mindMap.on("after_update_config",(s,a)=>{s.openPerformance!==a.openPerformance&&(this.mindMap[s.openPerformance?"on":"off"]("view_data_change",n),this.forceLoadNode()),s.openRealtimeRenderOnNodeTextEdit!==a.openRealtimeRenderOnNodeTextEdit&&this.mindMap[s.openRealtimeRenderOnNodeTextEdit?"on":"off"]("node_text_edit_change",this.onNodeTextEditChange)})}onNodeTextEditChange({node:e,text:t}){e._textData=e.createTextNode(t);let{width:r,height:n}=e.getNodeRect();e.width=r,e.height=n,e.layout(),this.mindMap.render(()=>{this.textEdit.updateTextEditNode()})}forceLoadNode(e){e=e||this.root,e&&(this.mindMap.emit("node_tree_render_start"),e.render(()=>{this.mindMap.emit("node_tree_render_end")},!0))}registerCommands(){this.selectAll=this.selectAll.bind(this),this.mindMap.command.add("SELECT_ALL",this.selectAll),this.back=this.back.bind(this),this.mindMap.command.add("BACK",this.back),this.forward=this.forward.bind(this),this.mindMap.command.add("FORWARD",this.forward),this.insertNode=this.insertNode.bind(this),this.mindMap.command.add("INSERT_NODE",this.insertNode),this.insertMultiNode=this.insertMultiNode.bind(this),this.mindMap.command.add("INSERT_MULTI_NODE",this.insertMultiNode),this.insertChildNode=this.insertChildNode.bind(this),this.mindMap.command.add("INSERT_CHILD_NODE",this.insertChildNode),this.insertMultiChildNode=this.insertMultiChildNode.bind(this),this.mindMap.command.add("INSERT_MULTI_CHILD_NODE",this.insertMultiChildNode),this.insertParentNode=this.insertParentNode.bind(this),this.mindMap.command.add("INSERT_PARENT_NODE",this.insertParentNode),this.upNode=this.upNode.bind(this),this.mindMap.command.add("UP_NODE",this.upNode),this.downNode=this.downNode.bind(this),this.mindMap.command.add("DOWN_NODE",this.downNode),this.moveUpOneLevel=this.moveUpOneLevel.bind(this),this.mindMap.command.add("MOVE_UP_ONE_LEVEL",this.moveUpOneLevel),this.insertAfter=this.insertAfter.bind(this),this.mindMap.command.add("INSERT_AFTER",this.insertAfter),this.insertBefore=this.insertBefore.bind(this),this.mindMap.command.add("INSERT_BEFORE",this.insertBefore),this.moveNodeTo=this.moveNodeTo.bind(this),this.mindMap.command.add("MOVE_NODE_TO",this.moveNodeTo),this.removeNode=this.removeNode.bind(this),this.mindMap.command.add("REMOVE_NODE",this.removeNode),this.removeCurrentNode=this.removeCurrentNode.bind(this),this.mindMap.command.add("REMOVE_CURRENT_NODE",this.removeCurrentNode),this.pasteNode=this.pasteNode.bind(this),this.mindMap.command.add("PASTE_NODE",this.pasteNode),this.cutNode=this.cutNode.bind(this),this.mindMap.command.add("CUT_NODE",this.cutNode),this.setNodeStyle=this.setNodeStyle.bind(this),this.mindMap.command.add("SET_NODE_STYLE",this.setNodeStyle),this.setNodeStyles=this.setNodeStyles.bind(this),this.mindMap.command.add("SET_NODE_STYLES",this.setNodeStyles),this.setNodeActive=this.setNodeActive.bind(this),this.mindMap.command.add("SET_NODE_ACTIVE",this.setNodeActive),this.clearActiveNode=this.clearActiveNode.bind(this),this.mindMap.command.add("CLEAR_ACTIVE_NODE",this.clearActiveNode),this.setNodeExpand=this.setNodeExpand.bind(this),this.mindMap.command.add("SET_NODE_EXPAND",this.setNodeExpand),this.expandAllNode=this.expandAllNode.bind(this),this.mindMap.command.add("EXPAND_ALL",this.expandAllNode),this.unexpandAllNode=this.unexpandAllNode.bind(this),this.mindMap.command.add("UNEXPAND_ALL",this.unexpandAllNode),this.expandToLevel=this.expandToLevel.bind(this),this.mindMap.command.add("UNEXPAND_TO_LEVEL",this.expandToLevel),this.setNodeData=this.setNodeData.bind(this),this.mindMap.command.add("SET_NODE_DATA",this.setNodeData),this.setNodeText=this.setNodeText.bind(this),this.mindMap.command.add("SET_NODE_TEXT",this.setNodeText),this.setNodeImage=this.setNodeImage.bind(this),this.mindMap.command.add("SET_NODE_IMAGE",this.setNodeImage),this.setNodeIcon=this.setNodeIcon.bind(this),this.mindMap.command.add("SET_NODE_ICON",this.setNodeIcon),this.setNodeHyperlink=this.setNodeHyperlink.bind(this),this.mindMap.command.add("SET_NODE_HYPERLINK",this.setNodeHyperlink),this.setNodeNote=this.setNodeNote.bind(this),this.mindMap.command.add("SET_NODE_NOTE",this.setNodeNote),this.setNodeAttachment=this.setNodeAttachment.bind(this),this.mindMap.command.add("SET_NODE_ATTACHMENT",this.setNodeAttachment),this.setNodeTag=this.setNodeTag.bind(this),this.mindMap.command.add("SET_NODE_TAG",this.setNodeTag),this.insertFormula=this.insertFormula.bind(this),this.mindMap.command.add("INSERT_FORMULA",this.insertFormula),this.addGeneralization=this.addGeneralization.bind(this),this.mindMap.command.add("ADD_GENERALIZATION",this.addGeneralization),this.removeGeneralization=this.removeGeneralization.bind(this),this.mindMap.command.add("REMOVE_GENERALIZATION",this.removeGeneralization),this.setNodeCustomPosition=this.setNodeCustomPosition.bind(this),this.mindMap.command.add("SET_NODE_CUSTOM_POSITION",this.setNodeCustomPosition),this.resetLayout=this.resetLayout.bind(this),this.mindMap.command.add("RESET_LAYOUT",this.resetLayout),this.setNodeShape=this.setNodeShape.bind(this),this.mindMap.command.add("SET_NODE_SHAPE",this.setNodeShape),this.goTargetNode=this.goTargetNode.bind(this),this.mindMap.command.add("GO_TARGET_NODE",this.goTargetNode),this.removeCustomStyles=this.removeCustomStyles.bind(this),this.mindMap.command.add("REMOVE_CUSTOM_STYLES",this.removeCustomStyles),this.removeAllNodeCustomStyles=this.removeAllNodeCustomStyles.bind(this),this.mindMap.command.add("REMOVE_ALL_NODE_CUSTOM_STYLES",this.removeAllNodeCustomStyles)}registerShortcutKeys(){this.mindMap.keyCommand.addShortcut("Tab",()=>{this.mindMap.execCommand("INSERT_CHILD_NODE")}),this.mindMap.keyCommand.addShortcut("Insert",()=>{this.mindMap.execCommand("INSERT_CHILD_NODE")}),this.mindMap.keyCommand.addShortcut("Enter",()=>{this.mindMap.execCommand("INSERT_NODE")}),this.mindMap.keyCommand.addShortcut("Shift+Tab",()=>{this.mindMap.execCommand("INSERT_PARENT_NODE")}),this.mindMap.keyCommand.addShortcut("Control+g",()=>{this.mindMap.execCommand("ADD_GENERALIZATION")}),this.toggleActiveExpand=this.toggleActiveExpand.bind(this),this.mindMap.keyCommand.addShortcut("/",this.toggleActiveExpand),this.mindMap.keyCommand.addShortcut("Del|Backspace",()=>{this.mindMap.execCommand("REMOVE_NODE")}),this.mindMap.keyCommand.addShortcut("Shift+Backspace",()=>{this.mindMap.execCommand("REMOVE_CURRENT_NODE")}),this.mindMap.on("before_show_text_edit",()=>{this.startTextEdit()}),this.mindMap.on("hide_text_edit",()=>{this.endTextEdit()}),this.mindMap.keyCommand.addShortcut("Control+a",()=>{this.mindMap.execCommand("SELECT_ALL")}),this.mindMap.keyCommand.addShortcut("Control+l",()=>{this.mindMap.execCommand("RESET_LAYOUT")}),this.mindMap.keyCommand.addShortcut("Control+Up",()=>{this.mindMap.execCommand("UP_NODE")}),this.mindMap.keyCommand.addShortcut("Control+Down",()=>{this.mindMap.execCommand("DOWN_NODE")}),this.mindMap.keyCommand.addShortcut("Control+c",()=>{this.copy()}),this.mindMap.keyCommand.addShortcut("Control+x",()=>{this.cut()}),this.mindMap.keyCommand.addShortcut("Control+v",()=>{this.paste()}),this.mindMap.keyCommand.addShortcut("Control+Enter",()=>{this.setRootNodeCenter()})}emitNodeActiveEvent(e=null,t=[...this.activeNodeList]){Qp(this.lastActiveNodeList,t)||(this.lastActiveNodeList=[...t],clearTimeout(this.emitNodeActiveEventTimer),this.emitNodeActiveEventTimer=setTimeout(()=>{this.mindMap.emit("node_active",e,t)},0))}clearActiveNodeListOnDrawClick(e,t){if(this.activeNodeList.length<=0)return;let r=!0,{useLeftKeySelectionRightKeyDrag:n}=this.mindMap.opt;if(t==="contextmenu"?!n:n){let s=this.mindMap.event.mousedownPos;r=Math.abs(e.clientX-s.x)<=5&&Math.abs(e.clientY-s.y)<=5}r&&this.mindMap.execCommand("CLEAR_ACTIVE_NODE")}startTextEdit(){this.mindMap.keyCommand.save()}endTextEdit(){this.mindMap.keyCommand.restore()}clearCache(){this.layout.lru.clear(),this.nodeCache={},this.lastNodeCache={}}addRenderParams(e,t){e&&this.renderCallbackList.findIndex(n=>n===e)===-1&&this.renderCallbackList.push(e),t&&this.renderSourceList.findIndex(n=>n===t)===-1&&this.renderSourceList.push(t)}checkHasRenderSource(e){e=Array.isArray(e)?e:[e];for(let t=0;t{e()}),this.isRendering=!1,this.reRender=!1,this.renderCallbackList=[],this.renderSourceList=[],this.mindMap.emit("node_tree_render_end")}render(e,t){this.addRenderParams(e,t),clearTimeout(this.renderTimer),this.renderTimer=setTimeout(()=>{this._render()},0)}_render(){if(this.checkHasRenderSource(A.CHANGE_THEME)&&this.resetUnExpandNodeStyle(),this.isRendering){this.hasWaitRendering=!0;return}if(this.isRendering=!0,this.lastNodeCache=this.nodeCache,this.nodeCache={},this.reRender&&this.clearActiveNodeList(),!this.renderTree){this.onRenderEnd();return}this.mindMap.emit("node_tree_render_start"),this.root=null,this.layout.doLayout(e=>{Object.keys(this.lastNodeCache).forEach(t=>{this.nodeCache[t]||(this.removeNodeFromActiveList(this.lastNodeCache[t]),this.emitNodeActiveEvent(),this.lastNodeCache[t].destroy())}),this.root=e,this.root.render(()=>{if(this.isRendering=!1,this.hasWaitRendering){this.hasWaitRendering=!1,this.render();return}this.onRenderEnd()})}),this.emitNodeActiveEvent()}resetUnExpandNodeStyle(){this.renderTree&&se(this.renderTree,null,e=>{if(!e.data.expand)return se(e,null,t=>{t.data.needUpdate=!0}),!0})}clearActiveNode(){this.activeNodeList.length<=0||(this.clearActiveNodeList(),this.emitNodeActiveEvent(null,[]))}clearActiveNodeList(){this.activeNodeList.forEach(e=>{this.mindMap.execCommand("SET_NODE_ACTIVE",e,!1)}),this.activeNodeList=[]}addNodeToActiveList(e,t=!1){if(this.mindMap.opt.onlyOneEnableActiveNodeOnCooperate&&e.userList.length>0)return;this.findActiveNodeIndex(e)===-1&&(t||this.mindMap.emit("before_node_active",e,this.activeNodeList),this.mindMap.execCommand("SET_NODE_ACTIVE",e,!0),this.activeNodeList.push(e))}removeNodeFromActiveList(e){let t=this.findActiveNodeIndex(e);t!==-1&&(this.mindMap.execCommand("SET_NODE_ACTIVE",e,!1),this.activeNodeList.splice(t,1))}activeMultiNode(e=[]){e.forEach(t=>{this.mindMap.emit("before_node_active",t,this.activeNodeList),this.addNodeToActiveList(t,!0),this.emitNodeActiveEvent(t)})}cancelActiveMultiNode(e=[]){e.forEach(t=>{this.removeNodeFromActiveList(t),this.emitNodeActiveEvent(null)})}findActiveNodeIndex(e){return Ee(e,this.activeNodeList)}selectAll(){this.mindMap.opt.readonly||(se(this.root,null,e=>{e.getData("isActive")||this.addNodeToActiveList(e),e._generalizationList&&e._generalizationList.length>0&&e._generalizationList.forEach(t=>{let r=t.generalizationNode;r.getData("isActive")||this.addNodeToActiveList(r)})},null,!0,0,0),this.emitNodeActiveEvent())}back(e){this.backForward("back",e)}forward(e){this.backForward("forward",e)}backForward(e,t){this.mindMap.execCommand("CLEAR_ACTIVE_NODE");let r=this.mindMap.command[e](t);r&&(this.renderTree=r,this.mindMap.render()),this.mindMap.emit("data_change",r)}getNewNodeBehavior(e=!1,t=!1){let{createNewNodeBehavior:r}=this.mindMap.opt,n=!1,s=!1;switch(r){case A.CREATE_NEW_NODE_BEHAVIOR.DEFAULT:n=t||!e,s=t?!1:e;break;case A.CREATE_NEW_NODE_BEHAVIOR.NOT_ACTIVE:n=!1,s=!1;break;case A.CREATE_NEW_NODE_BEHAVIOR.ACTIVE_ONLY:n=!0,s=!1;break;default:break}return{focusNewNode:n,inserting:s}}insertNode(e=!0,t=[],r=null,n=[]){if(t=Nt(t),this.activeNodeList.length<=0&&t.length<=0)return;this.textEdit.hideEditTextBox();let{defaultInsertSecondLevelNodeText:s,defaultInsertBelowSecondLevelNodeText:a}=this.mindMap.opt,o=t.length>0?t:this.activeNodeList,l=o.length>1,h=this.hasRichTextPlugin(),{focusNewNode:d,inserting:c}=this.getNewNodeBehavior(e,l),f={expand:!0,richText:h,isActive:d};h&&(f.resetRichText=!0),n=so(n,f);let m=r&&r.richText,g=!1;o.forEach(x=>{if(x.isGeneralization||x.isRoot)return;n=Ft(n);let v=x.parent,E=x.layerIndex===1?s:a,S=zs(x);m&&f.resetRichText&&delete f.resetRichText;let C={inserting:c,data:{text:E,...f,uid:ct(),...r||{}},children:[...qn(n,g)]};g=!0,v.nodeData.children.splice(S+1,0,C)}),d&&this.clearActiveNodeList(),this.mindMap.render()}insertMultiNode(e,t){if(!t||t.length<=0||(e=Nt(e),this.activeNodeList.length<=0&&e.length<=0))return;this.textEdit.hideEditTextBox();let r=e.length>0?e:this.activeNodeList,n=this.hasRichTextPlugin(),{focusNewNode:s}=this.getNewNodeBehavior(!1,!0),a={expand:!0,richText:n,isActive:s};n&&(a.resetRichText=!0),t=so(t,a);let o=!1;r.forEach(l=>{if(l.isGeneralization||l.isRoot)return;t=Ft(t);let h=l.parent,d=zs(l),c=qn(t,o);o=!0,h.nodeData.children.splice(d+1,0,...c)}),s&&this.clearActiveNodeList(),this.mindMap.render()}insertChildNode(e=!0,t=[],r=null,n=[]){if(t=Nt(t),this.activeNodeList.length<=0&&t.length<=0)return;this.textEdit.hideEditTextBox();let{defaultInsertSecondLevelNodeText:s,defaultInsertBelowSecondLevelNodeText:a}=this.mindMap.opt,o=t.length>0?t:this.activeNodeList,l=o.length>1,h=this.hasRichTextPlugin(),{focusNewNode:d,inserting:c}=this.getNewNodeBehavior(e,l),f={expand:!0,richText:h,isActive:d};h&&(f.resetRichText=!0),n=so(n,f);let m=r&&r.richText,g=!1;o.forEach(x=>{if(x.isGeneralization)return;n=Ft(n),x.nodeData.children||(x.nodeData.children=[]);let v=x.isRoot?s:a;m&&f.resetRichText&&delete f.resetRichText;let b={inserting:c,data:{text:v,uid:ct(),...f,...r||{}},children:[...qn(n,g)]};g=!0,x.nodeData.children.push(b),x.setData({expand:!0})}),d&&this.clearActiveNodeList(),this.mindMap.render()}insertMultiChildNode(e,t){if(!t||t.length<=0||(e=Nt(e),this.activeNodeList.length<=0&&e.length<=0))return;this.textEdit.hideEditTextBox();let r=e.length>0?e:this.activeNodeList,n=this.hasRichTextPlugin(),{focusNewNode:s}=this.getNewNodeBehavior(!1,!0),a={expand:!0,richText:n,isActive:s};n&&(a.resetRichText=!0),t=so(t,a);let o=!1;r.forEach(l=>{l.isGeneralization||(t=Ft(t),l.nodeData.children||(l.nodeData.children=[]),t=qn(t,o),o=!0,l.nodeData.children.push(...t),l.setData({expand:!0}))}),s&&this.clearActiveNodeList(),this.mindMap.render()}insertParentNode(e=!0,t,r){if(t=Nt(t),this.activeNodeList.length<=0&&t.length<=0)return;this.textEdit.hideEditTextBox();let{defaultInsertSecondLevelNodeText:n,defaultInsertBelowSecondLevelNodeText:s}=this.mindMap.opt,a=t.length>0?t:this.activeNodeList,o=a.length>1,l=this.hasRichTextPlugin(),{focusNewNode:h,inserting:d}=this.getNewNodeBehavior(e,o),c={expand:!0,richText:l,isActive:h};l&&(c.resetRichText=!0);let f=r&&r.richText;a.forEach(m=>{if(m.isGeneralization||m.isRoot)return;let g=m.layerIndex===1?n:s;f&&c.resetRichText&&delete c.resetRichText;let x={inserting:d,data:{text:g,uid:ct(),...c,...r||{}},children:[m.nodeData]},v=m.parent,b=zs(m);v.nodeData.children.splice(b,1,x)}),h&&this.clearActiveNodeList(),this.mindMap.render()}upNode(e){if(this.activeNodeList.length<=0&&!e)return;let r=(e?[e]:this.activeNodeList)[0];if(r.isRoot)return;let n=r.parent,s=n.children,a=Ee(r,s);if(a===-1||a===0)return;let o=a-1;s.splice(a,1),s.splice(o,0,r),n.nodeData.children.splice(a,1),n.nodeData.children.splice(o,0,r.nodeData),this.mindMap.render()}downNode(e){if(this.activeNodeList.length<=0&&!e)return;let r=(e?[e]:this.activeNodeList)[0];if(r.isRoot)return;let n=r.parent,s=n.children,a=Ee(r,s);if(a===-1||a===s.length-1)return;let o=a+1;s.splice(a,1),s.splice(o,0,r),n.nodeData.children.splice(a,1),n.nodeData.children.splice(o,0,r.nodeData),this.mindMap.render()}moveUpOneLevel(e){if(e=e||this.activeNodeList[0],!e||e.isRoot||e.layerIndex<=1)return;let t=e.parent,r=t.parent,n=Ee(e,t.children),s=Ee(t,r.children);t.nodeData.children.splice(n,1),r.nodeData.children.splice(s+1,0,e.nodeData),this.mindMap.render()}_handleRemoveCustomStyles(e){let t=!1;return Object.keys(e).forEach(r=>{Pn(r)&&(t=!0,delete e[r])}),this.hasRichTextPlugin()&&(t=!0,e.resetRichText=!0),t}removeCustomStyles(e){if(e=e||this.activeNodeList[0],!e)return;this._handleRemoveCustomStyles(e.getData())&&this.reRenderNodeCheckChange(e)}removeAllNodeCustomStyles(e){e=Nt(e);let t=!1;if(e.length>0)e.forEach(r=>{this._handleRemoveCustomStyles(r.getData())&&(t=!0)});else{if(!this.renderTree)return;se(this.renderTree,null,r=>{this._handleRemoveCustomStyles(r.data)&&(t=!0);let s=Hn(r.data);s.length>0&&s.forEach(a=>{this._handleRemoveCustomStyles(a)&&(t=!0)})})}t&&this.mindMap.reRender()}copy(){this.beingCopyData=this.copyNode(),this.beingCopyData&&(this.mindMap.opt.disabledClipboard||pc(gc(this.beingCopyData)))}cut(){this.mindMap.execCommand("CUT_NODE",e=>{this.beingCopyData=e,this.mindMap.opt.disabledClipboard||pc(gc(e))})}handlePaste(e){let{disabledClipboard:t}=this.mindMap.opt;if(t)return;let r=e.clipboardData||e.originalEvent.clipboardData,n=r.items,s=null,a="";Array.from(n).forEach(o=>{o.type.indexOf("image")>-1&&(s=o.getAsFile()),o.type.indexOf("text")>-1&&(a=r.getData("text"))}),this.paste()}async paste(){let{errorHandler:e,handleIsSplitByWrapOnPasteCreateNewNode:t,handleNodePasteImg:r,disabledClipboard:n,onlyPasteTextWhenHasImgAndText:s}=this.mindMap.opt;if(!n&&mc())try{let a=await Kp(),o=a.text||"",l=a.img||null;if(o){let h=null,d=!0;if(this.mindMap.opt.customHandleClipboardText)try{let c=await this.mindMap.opt.customHandleClipboardText(o);if(!Bt(c)){d=!1;let f=ao(c);f.isSmm?h=f.data:o=f.data}}catch(c){e(di.CUSTOM_HANDLE_CLIPBOARD_TEXT_ERROR,c)}if(d){let c=ao(o);c.isSmm?h=c.data:o=c.data}if(h)this.mindMap.execCommand("INSERT_MULTI_CHILD_NODE",[],Array.isArray(h)?h:[h]);else{this.hasRichTextPlugin()&&(o=Wr(o));let c=o.split(new RegExp(`\r? + `,this.textEditNode.setAttribute("contenteditable",!0),this.textEditNode.addEventListener("keyup",y=>{y.stopPropagation()}),this.textEditNode.addEventListener("click",y=>{y.stopPropagation()}),this.textEditNode.addEventListener("mousedown",y=>{y.stopPropagation()}),this.textEditNode.addEventListener("keydown",y=>{this.checkIsAutoEnterTextEditKey(y)&&y.stopPropagation()}),this.textEditNode.addEventListener("paste",y=>{let b=y.clipboardData.getData("text"),{isSmm:S,data:A}=Po(b);S&&A[0]&&A[0].data?yu(y,sa(A[0].data.text)):yu(y),this.emitTextChangeEvent()}),this.textEditNode.addEventListener("input",()=>{this.emitTextChangeEvent()}),(this.mindMap.opt.customInnerElsAppendTo||document.body).appendChild(this.textEditNode));let c=this.mindMap.view.scale,f=e.style.merge("fontSize"),m=(this.cacheEditingText||e.getData("text")).split(/\n/gim).map(x=>mn(x)),g=e._textData.node.attr("data-ismultiLine")==="true";e.style.domText(this.textEditNode,c),h||(this.textEditNode.style.background=this.getBackground(e)),this.textEditNode.style.zIndex=a,n&&d?this.textEditNode.innerHTML="":this.textEditNode.innerHTML=m.join("
    "),this.textEditNode.style.minWidth=t.width+this.textNodePaddingX*2+"px",this.textEditNode.style.minHeight=t.height+"px",this.textEditNode.style.left=Math.floor(t.left)+"px",this.textEditNode.style.top=Math.floor(t.top)+"px",this.textEditNode.style.display="block",this.textEditNode.style.maxWidth=o*c+"px",g?(this.textEditNode.style.lineHeight=js,this.textEditNode.style.transform=`translateY(${(js-1)*f/2*c}px)`):this.textEditNode.style.lineHeight="normal",this.setIsShowTextEdit(!0),r||l&&!n?la(this.textEditNode):oa(this.textEditNode),this.cacheEditingText=""}emitTextChangeEvent(){this.mindMap.emit("node_text_edit_change",{node:this.currentNode,text:this.getEditText(),richText:!1})}updateTextEditNode(){if(this.mindMap.richText){this.mindMap.richText.updateTextEditNode();return}if(!this.showTextEdit||!this.currentNode)return;let e=this.currentNode._textData.node.node.getBoundingClientRect();this.textEditNode.style.minWidth=e.width+this.textNodePaddingX*2+"px",this.textEditNode.style.minHeight=e.height+this.textNodePaddingY*2+"px",this.textEditNode.style.left=Math.floor(e.left)+"px",this.textEditNode.style.top=Math.floor(e.top)+"px"}getBackground(e){if(e.style.merge("gradientStyle")){let r=e.style.merge("startColor"),n=e.style.merge("endColor");return`linear-gradient(to right, ${r}, ${n})`}else{let r=e.style.merge("fillColor"),n=e.style.merge("color");return r==="transparent"?Oo(n)?$0(this.mindMap.themeConfig):"#fff":r}}removeTextEditEl(){if(this.mindMap.richText){this.mindMap.richText.removeTextEditEl();return}if(!this.textEditNode)return;(this.mindMap.opt.customInnerElsAppendTo||document.body).removeChild(this.textEditNode)}getEditText(){return na(this.textEditNode.innerHTML)}hideEditTextBox(){if(this.mindMap.richText)return this.mindMap.richText.hideEditText();if(!this.showTextEdit)return;let e=this.currentNode,t=this.getEditText();this.currentNode=null,this.textEditNode.style.display="none",this.textEditNode.innerHTML="",this.textEditNode.style.fontFamily="inherit",this.textEditNode.style.fontSize="inherit",this.textEditNode.style.fontWeight="normal",this.textEditNode.style.transform="translateY(0)",this.setIsShowTextEdit(!1),this.mindMap.execCommand("SET_NODE_TEXT",e,t),this.mindMap.render(),this.mindMap.emit("hide_text_edit",this.textEditNode,this.renderer.activeNodeList,e)}getCurrentEditNode(){return this.mindMap.richText?this.mindMap.richText.node:this.currentNode}}});var $v,Uv,Np,jv,Gv=T(()=>{$v=pt(O0());Cv();Lv();zv();Dv();Ov();Bv();Fv();Hv();pe();Tu();Ro();$e();yt();Uv={[k.LAYOUT.LOGICAL_STRUCTURE]:pp,[k.LAYOUT.LOGICAL_STRUCTURE_LEFT]:pp,[k.LAYOUT.MIND_MAP]:_v,[k.LAYOUT.CATALOG_ORGANIZATION]:Iv,[k.LAYOUT.ORGANIZATION_STRUCTURE]:Rv,[k.LAYOUT.TIMELINE]:bp,[k.LAYOUT.TIMELINE2]:bp,[k.LAYOUT.VERTICAL_TIMELINE]:Mc,[k.LAYOUT.VERTICAL_TIMELINE2]:Mc,[k.LAYOUT.VERTICAL_TIMELINE3]:Mc,[k.LAYOUT.FISHBONE]:Tp,[k.LAYOUT.FISHBONE2]:Tp},Np=class{constructor(e={}){this.opt=e,this.mindMap=e.mindMap,this.themeConfig=this.mindMap.themeConfig,this.renderTree=this.mindMap.opt.data?(0,$v.default)({},this.mindMap.opt.data):null,this.reRender=!1,this.isRendering=!1,this.hasWaitRendering=!1,this.nodeCache={},this.lastNodeCache={},this.renderSourceList=[],this.renderCallbackList=[],this.activeNodeList=[],this.emitNodeActiveEventTimer=null,this.renderTimer=null,this.root=null,this.textEdit=new l0(this),this.beingCopyData=null,this.highlightBoxNode=null,this.highlightBoxNodeStyle=null,this.lastActiveNodeList=[],this.setLayout(),this.bindEvent(),this.registerCommands(),this.registerShortcutKeys()}setLayout(){this.layout&&this.layout.beforeChange&&this.layout.beforeChange();let{layout:e}=this.mindMap.opt,t=Uv[e]||this.mindMap[e];t||(t=Uv[k.LAYOUT.LOGICAL_STRUCTURE],this.mindMap.opt.layout=k.LAYOUT.LOGICAL_STRUCTURE),this.layout=new t(this,e)}setData(e){this.renderTree=e||null}bindEvent(){let{openPerformance:e,performanceConfig:t,openRealtimeRenderOnNodeTextEdit:r}=this.mindMap.opt;this.mindMap.on("draw_click",s=>{this.clearActiveNodeListOnDrawClick(s,"click")}),this.mindMap.on("contextmenu",s=>{this.clearActiveNodeListOnDrawClick(s,"contextmenu")}),this.mindMap.svg.on("dblclick",()=>{this.mindMap.opt.enableDblclickBackToRootNode&&this.setRootNodeCenter()});let n=Si(()=>{this.renderTree&&this.root&&(this.mindMap.emit("node_tree_render_start"),this.root.render(()=>{this.mindMap.emit("node_tree_render_end")},!1,!0))},t.time);e&&this.mindMap.on("view_data_change",n),this.onNodeTextEditChange=p2(this.onNodeTextEditChange,100,this),r&&this.mindMap.on("node_text_edit_change",this.onNodeTextEditChange),this.mindMap.on("after_update_config",(s,a)=>{s.openPerformance!==a.openPerformance&&(this.mindMap[s.openPerformance?"on":"off"]("view_data_change",n),this.forceLoadNode()),s.openRealtimeRenderOnNodeTextEdit!==a.openRealtimeRenderOnNodeTextEdit&&this.mindMap[s.openRealtimeRenderOnNodeTextEdit?"on":"off"]("node_text_edit_change",this.onNodeTextEditChange)})}onNodeTextEditChange({node:e,text:t}){e._textData=e.createTextNode(t);let{width:r,height:n}=e.getNodeRect();e.width=r,e.height=n,e.layout(),this.mindMap.render(()=>{this.textEdit.updateTextEditNode()})}forceLoadNode(e){e=e||this.root,e&&(this.mindMap.emit("node_tree_render_start"),e.render(()=>{this.mindMap.emit("node_tree_render_end")},!0))}registerCommands(){this.selectAll=this.selectAll.bind(this),this.mindMap.command.add("SELECT_ALL",this.selectAll),this.back=this.back.bind(this),this.mindMap.command.add("BACK",this.back),this.forward=this.forward.bind(this),this.mindMap.command.add("FORWARD",this.forward),this.insertNode=this.insertNode.bind(this),this.mindMap.command.add("INSERT_NODE",this.insertNode),this.insertMultiNode=this.insertMultiNode.bind(this),this.mindMap.command.add("INSERT_MULTI_NODE",this.insertMultiNode),this.insertChildNode=this.insertChildNode.bind(this),this.mindMap.command.add("INSERT_CHILD_NODE",this.insertChildNode),this.insertMultiChildNode=this.insertMultiChildNode.bind(this),this.mindMap.command.add("INSERT_MULTI_CHILD_NODE",this.insertMultiChildNode),this.insertParentNode=this.insertParentNode.bind(this),this.mindMap.command.add("INSERT_PARENT_NODE",this.insertParentNode),this.upNode=this.upNode.bind(this),this.mindMap.command.add("UP_NODE",this.upNode),this.downNode=this.downNode.bind(this),this.mindMap.command.add("DOWN_NODE",this.downNode),this.moveUpOneLevel=this.moveUpOneLevel.bind(this),this.mindMap.command.add("MOVE_UP_ONE_LEVEL",this.moveUpOneLevel),this.insertAfter=this.insertAfter.bind(this),this.mindMap.command.add("INSERT_AFTER",this.insertAfter),this.insertBefore=this.insertBefore.bind(this),this.mindMap.command.add("INSERT_BEFORE",this.insertBefore),this.moveNodeTo=this.moveNodeTo.bind(this),this.mindMap.command.add("MOVE_NODE_TO",this.moveNodeTo),this.removeNode=this.removeNode.bind(this),this.mindMap.command.add("REMOVE_NODE",this.removeNode),this.removeCurrentNode=this.removeCurrentNode.bind(this),this.mindMap.command.add("REMOVE_CURRENT_NODE",this.removeCurrentNode),this.pasteNode=this.pasteNode.bind(this),this.mindMap.command.add("PASTE_NODE",this.pasteNode),this.cutNode=this.cutNode.bind(this),this.mindMap.command.add("CUT_NODE",this.cutNode),this.setNodeStyle=this.setNodeStyle.bind(this),this.mindMap.command.add("SET_NODE_STYLE",this.setNodeStyle),this.setNodeStyles=this.setNodeStyles.bind(this),this.mindMap.command.add("SET_NODE_STYLES",this.setNodeStyles),this.setNodeActive=this.setNodeActive.bind(this),this.mindMap.command.add("SET_NODE_ACTIVE",this.setNodeActive),this.clearActiveNode=this.clearActiveNode.bind(this),this.mindMap.command.add("CLEAR_ACTIVE_NODE",this.clearActiveNode),this.setNodeExpand=this.setNodeExpand.bind(this),this.mindMap.command.add("SET_NODE_EXPAND",this.setNodeExpand),this.expandAllNode=this.expandAllNode.bind(this),this.mindMap.command.add("EXPAND_ALL",this.expandAllNode),this.unexpandAllNode=this.unexpandAllNode.bind(this),this.mindMap.command.add("UNEXPAND_ALL",this.unexpandAllNode),this.expandToLevel=this.expandToLevel.bind(this),this.mindMap.command.add("UNEXPAND_TO_LEVEL",this.expandToLevel),this.setNodeData=this.setNodeData.bind(this),this.mindMap.command.add("SET_NODE_DATA",this.setNodeData),this.setNodeText=this.setNodeText.bind(this),this.mindMap.command.add("SET_NODE_TEXT",this.setNodeText),this.setNodeImage=this.setNodeImage.bind(this),this.mindMap.command.add("SET_NODE_IMAGE",this.setNodeImage),this.setNodeIcon=this.setNodeIcon.bind(this),this.mindMap.command.add("SET_NODE_ICON",this.setNodeIcon),this.setNodeHyperlink=this.setNodeHyperlink.bind(this),this.mindMap.command.add("SET_NODE_HYPERLINK",this.setNodeHyperlink),this.setNodeNote=this.setNodeNote.bind(this),this.mindMap.command.add("SET_NODE_NOTE",this.setNodeNote),this.setNodeAttachment=this.setNodeAttachment.bind(this),this.mindMap.command.add("SET_NODE_ATTACHMENT",this.setNodeAttachment),this.setNodeTag=this.setNodeTag.bind(this),this.mindMap.command.add("SET_NODE_TAG",this.setNodeTag),this.insertFormula=this.insertFormula.bind(this),this.mindMap.command.add("INSERT_FORMULA",this.insertFormula),this.addGeneralization=this.addGeneralization.bind(this),this.mindMap.command.add("ADD_GENERALIZATION",this.addGeneralization),this.removeGeneralization=this.removeGeneralization.bind(this),this.mindMap.command.add("REMOVE_GENERALIZATION",this.removeGeneralization),this.setNodeCustomPosition=this.setNodeCustomPosition.bind(this),this.mindMap.command.add("SET_NODE_CUSTOM_POSITION",this.setNodeCustomPosition),this.resetLayout=this.resetLayout.bind(this),this.mindMap.command.add("RESET_LAYOUT",this.resetLayout),this.setNodeShape=this.setNodeShape.bind(this),this.mindMap.command.add("SET_NODE_SHAPE",this.setNodeShape),this.goTargetNode=this.goTargetNode.bind(this),this.mindMap.command.add("GO_TARGET_NODE",this.goTargetNode),this.removeCustomStyles=this.removeCustomStyles.bind(this),this.mindMap.command.add("REMOVE_CUSTOM_STYLES",this.removeCustomStyles),this.removeAllNodeCustomStyles=this.removeAllNodeCustomStyles.bind(this),this.mindMap.command.add("REMOVE_ALL_NODE_CUSTOM_STYLES",this.removeAllNodeCustomStyles)}registerShortcutKeys(){this.mindMap.keyCommand.addShortcut("Tab",()=>{this.mindMap.execCommand("INSERT_CHILD_NODE")}),this.mindMap.keyCommand.addShortcut("Insert",()=>{this.mindMap.execCommand("INSERT_CHILD_NODE")}),this.mindMap.keyCommand.addShortcut("Enter",()=>{this.mindMap.execCommand("INSERT_NODE")}),this.mindMap.keyCommand.addShortcut("Shift+Tab",()=>{this.mindMap.execCommand("INSERT_PARENT_NODE")}),this.mindMap.keyCommand.addShortcut("Control+g",()=>{this.mindMap.execCommand("ADD_GENERALIZATION")}),this.toggleActiveExpand=this.toggleActiveExpand.bind(this),this.mindMap.keyCommand.addShortcut("/",this.toggleActiveExpand),this.mindMap.keyCommand.addShortcut("Del|Backspace",()=>{this.mindMap.execCommand("REMOVE_NODE")}),this.mindMap.keyCommand.addShortcut("Shift+Backspace",()=>{this.mindMap.execCommand("REMOVE_CURRENT_NODE")}),this.mindMap.on("before_show_text_edit",()=>{this.startTextEdit()}),this.mindMap.on("hide_text_edit",()=>{this.endTextEdit()}),this.mindMap.keyCommand.addShortcut("Control+a",()=>{this.mindMap.execCommand("SELECT_ALL")}),this.mindMap.keyCommand.addShortcut("Control+l",()=>{this.mindMap.execCommand("RESET_LAYOUT")}),this.mindMap.keyCommand.addShortcut("Control+Up",()=>{this.mindMap.execCommand("UP_NODE")}),this.mindMap.keyCommand.addShortcut("Control+Down",()=>{this.mindMap.execCommand("DOWN_NODE")}),this.mindMap.keyCommand.addShortcut("Control+c",()=>{this.copy()}),this.mindMap.keyCommand.addShortcut("Control+x",()=>{this.cut()}),this.mindMap.keyCommand.addShortcut("Control+v",()=>{this.paste()}),this.mindMap.keyCommand.addShortcut("Control+Enter",()=>{this.setRootNodeCenter()})}emitNodeActiveEvent(e=null,t=[...this.activeNodeList]){L2(this.lastActiveNodeList,t)||(this.lastActiveNodeList=[...t],clearTimeout(this.emitNodeActiveEventTimer),this.emitNodeActiveEventTimer=setTimeout(()=>{this.mindMap.emit("node_active",e,t)},0))}clearActiveNodeListOnDrawClick(e,t){if(this.activeNodeList.length<=0)return;let r=!0,{useLeftKeySelectionRightKeyDrag:n}=this.mindMap.opt;if(t==="contextmenu"?!n:n){let s=this.mindMap.event.mousedownPos;r=Math.abs(e.clientX-s.x)<=5&&Math.abs(e.clientY-s.y)<=5}r&&this.mindMap.execCommand("CLEAR_ACTIVE_NODE")}startTextEdit(){this.mindMap.keyCommand.save()}endTextEdit(){this.mindMap.keyCommand.restore()}clearCache(){this.layout.lru.clear(),this.nodeCache={},this.lastNodeCache={}}addRenderParams(e,t){e&&this.renderCallbackList.findIndex(n=>n===e)===-1&&this.renderCallbackList.push(e),t&&this.renderSourceList.findIndex(n=>n===t)===-1&&this.renderSourceList.push(t)}checkHasRenderSource(e){e=Array.isArray(e)?e:[e];for(let t=0;t{e()}),this.isRendering=!1,this.reRender=!1,this.renderCallbackList=[],this.renderSourceList=[],this.mindMap.emit("node_tree_render_end")}render(e,t){this.addRenderParams(e,t),clearTimeout(this.renderTimer),this.renderTimer=setTimeout(()=>{this._render()},0)}_render(){if(this.checkHasRenderSource(k.CHANGE_THEME)&&this.resetUnExpandNodeStyle(),this.isRendering){this.hasWaitRendering=!0;return}if(this.isRendering=!0,this.lastNodeCache=this.nodeCache,this.nodeCache={},this.reRender&&this.clearActiveNodeList(),!this.renderTree){this.onRenderEnd();return}this.mindMap.emit("node_tree_render_start"),this.root=null,this.layout.doLayout(e=>{Object.keys(this.lastNodeCache).forEach(t=>{this.nodeCache[t]||(this.removeNodeFromActiveList(this.lastNodeCache[t]),this.emitNodeActiveEvent(),this.lastNodeCache[t].destroy())}),this.root=e,this.root.render(()=>{if(this.isRendering=!1,this.hasWaitRendering){this.hasWaitRendering=!1,this.render();return}this.onRenderEnd()})}),this.emitNodeActiveEvent()}resetUnExpandNodeStyle(){this.renderTree&&de(this.renderTree,null,e=>{if(!e.data.expand)return de(e,null,t=>{t.data.needUpdate=!0}),!0})}clearActiveNode(){this.activeNodeList.length<=0||(this.clearActiveNodeList(),this.emitNodeActiveEvent(null,[]))}clearActiveNodeList(){this.activeNodeList.forEach(e=>{this.mindMap.execCommand("SET_NODE_ACTIVE",e,!1)}),this.activeNodeList=[]}addNodeToActiveList(e,t=!1){if(this.mindMap.opt.onlyOneEnableActiveNodeOnCooperate&&e.userList.length>0)return;this.findActiveNodeIndex(e)===-1&&(t||this.mindMap.emit("before_node_active",e,this.activeNodeList),this.mindMap.execCommand("SET_NODE_ACTIVE",e,!0),this.activeNodeList.push(e))}removeNodeFromActiveList(e){let t=this.findActiveNodeIndex(e);t!==-1&&(this.mindMap.execCommand("SET_NODE_ACTIVE",e,!1),this.activeNodeList.splice(t,1))}activeMultiNode(e=[]){e.forEach(t=>{this.mindMap.emit("before_node_active",t,this.activeNodeList),this.addNodeToActiveList(t,!0),this.emitNodeActiveEvent(t)})}cancelActiveMultiNode(e=[]){e.forEach(t=>{this.removeNodeFromActiveList(t),this.emitNodeActiveEvent(null)})}findActiveNodeIndex(e){return Ie(e,this.activeNodeList)}selectAll(){this.mindMap.opt.readonly||(de(this.root,null,e=>{e.getData("isActive")||this.addNodeToActiveList(e),e._generalizationList&&e._generalizationList.length>0&&e._generalizationList.forEach(t=>{let r=t.generalizationNode;r.getData("isActive")||this.addNodeToActiveList(r)})},null,!0,0,0),this.emitNodeActiveEvent())}back(e){this.backForward("back",e)}forward(e){this.backForward("forward",e)}backForward(e,t){this.mindMap.execCommand("CLEAR_ACTIVE_NODE");let r=this.mindMap.command[e](t);r&&(this.renderTree=r,this.mindMap.render()),this.mindMap.emit("data_change",r)}getNewNodeBehavior(e=!1,t=!1){let{createNewNodeBehavior:r}=this.mindMap.opt,n=!1,s=!1;switch(r){case k.CREATE_NEW_NODE_BEHAVIOR.DEFAULT:n=t||!e,s=t?!1:e;break;case k.CREATE_NEW_NODE_BEHAVIOR.NOT_ACTIVE:n=!1,s=!1;break;case k.CREATE_NEW_NODE_BEHAVIOR.ACTIVE_ONLY:n=!0,s=!1;break;default:break}return{focusNewNode:n,inserting:s}}insertNode(e=!0,t=[],r=null,n=[]){if(t=Ot(t),this.activeNodeList.length<=0&&t.length<=0)return;this.textEdit.hideEditTextBox();let{defaultInsertSecondLevelNodeText:s,defaultInsertBelowSecondLevelNodeText:a}=this.mindMap.opt,o=t.length>0?t:this.activeNodeList,l=o.length>1,h=this.hasRichTextPlugin(),{focusNewNode:d,inserting:c}=this.getNewNodeBehavior(e,l),f={expand:!0,richText:h,isActive:d};h&&(f.resetRichText=!0),n=Bo(n,f);let m=r&&r.richText,g=!1;o.forEach(x=>{if(x.isGeneralization||x.isRoot)return;n=Kt(n);let y=x.parent,S=x.layerIndex===1?s:a,A=ha(x);m&&f.resetRichText&&delete f.resetRichText;let C={inserting:c,data:{text:S,...f,uid:wt(),...r||{}},children:[...cs(n,g)]};g=!0,y.nodeData.children.splice(A+1,0,C)}),d&&this.clearActiveNodeList(),this.mindMap.render()}insertMultiNode(e,t){if(!t||t.length<=0||(e=Ot(e),this.activeNodeList.length<=0&&e.length<=0))return;this.textEdit.hideEditTextBox();let r=e.length>0?e:this.activeNodeList,n=this.hasRichTextPlugin(),{focusNewNode:s}=this.getNewNodeBehavior(!1,!0),a={expand:!0,richText:n,isActive:s};n&&(a.resetRichText=!0),t=Bo(t,a);let o=!1;r.forEach(l=>{if(l.isGeneralization||l.isRoot)return;t=Kt(t);let h=l.parent,d=ha(l),c=cs(t,o);o=!0,h.nodeData.children.splice(d+1,0,...c)}),s&&this.clearActiveNodeList(),this.mindMap.render()}insertChildNode(e=!0,t=[],r=null,n=[]){if(t=Ot(t),this.activeNodeList.length<=0&&t.length<=0)return;this.textEdit.hideEditTextBox();let{defaultInsertSecondLevelNodeText:s,defaultInsertBelowSecondLevelNodeText:a}=this.mindMap.opt,o=t.length>0?t:this.activeNodeList,l=o.length>1,h=this.hasRichTextPlugin(),{focusNewNode:d,inserting:c}=this.getNewNodeBehavior(e,l),f={expand:!0,richText:h,isActive:d};h&&(f.resetRichText=!0),n=Bo(n,f);let m=r&&r.richText,g=!1;o.forEach(x=>{if(x.isGeneralization)return;n=Kt(n),x.nodeData.children||(x.nodeData.children=[]);let y=x.isRoot?s:a;m&&f.resetRichText&&delete f.resetRichText;let b={inserting:c,data:{text:y,uid:wt(),...f,...r||{}},children:[...cs(n,g)]};g=!0,x.nodeData.children.push(b),x.setData({expand:!0})}),d&&this.clearActiveNodeList(),this.mindMap.render()}insertMultiChildNode(e,t){if(!t||t.length<=0||(e=Ot(e),this.activeNodeList.length<=0&&e.length<=0))return;this.textEdit.hideEditTextBox();let r=e.length>0?e:this.activeNodeList,n=this.hasRichTextPlugin(),{focusNewNode:s}=this.getNewNodeBehavior(!1,!0),a={expand:!0,richText:n,isActive:s};n&&(a.resetRichText=!0),t=Bo(t,a);let o=!1;r.forEach(l=>{l.isGeneralization||(t=Kt(t),l.nodeData.children||(l.nodeData.children=[]),t=cs(t,o),o=!0,l.nodeData.children.push(...t),l.setData({expand:!0}))}),s&&this.clearActiveNodeList(),this.mindMap.render()}insertParentNode(e=!0,t,r){if(t=Ot(t),this.activeNodeList.length<=0&&t.length<=0)return;this.textEdit.hideEditTextBox();let{defaultInsertSecondLevelNodeText:n,defaultInsertBelowSecondLevelNodeText:s}=this.mindMap.opt,a=t.length>0?t:this.activeNodeList,o=a.length>1,l=this.hasRichTextPlugin(),{focusNewNode:h,inserting:d}=this.getNewNodeBehavior(e,o),c={expand:!0,richText:l,isActive:h};l&&(c.resetRichText=!0);let f=r&&r.richText;a.forEach(m=>{if(m.isGeneralization||m.isRoot)return;let g=m.layerIndex===1?n:s;f&&c.resetRichText&&delete c.resetRichText;let x={inserting:d,data:{text:g,uid:wt(),...c,...r||{}},children:[m.nodeData]},y=m.parent,b=ha(m);y.nodeData.children.splice(b,1,x)}),h&&this.clearActiveNodeList(),this.mindMap.render()}upNode(e){if(this.activeNodeList.length<=0&&!e)return;let r=(e?[e]:this.activeNodeList)[0];if(r.isRoot)return;let n=r.parent,s=n.children,a=Ie(r,s);if(a===-1||a===0)return;let o=a-1;s.splice(a,1),s.splice(o,0,r),n.nodeData.children.splice(a,1),n.nodeData.children.splice(o,0,r.nodeData),this.mindMap.render()}downNode(e){if(this.activeNodeList.length<=0&&!e)return;let r=(e?[e]:this.activeNodeList)[0];if(r.isRoot)return;let n=r.parent,s=n.children,a=Ie(r,s);if(a===-1||a===s.length-1)return;let o=a+1;s.splice(a,1),s.splice(o,0,r),n.nodeData.children.splice(a,1),n.nodeData.children.splice(o,0,r.nodeData),this.mindMap.render()}moveUpOneLevel(e){if(e=e||this.activeNodeList[0],!e||e.isRoot||e.layerIndex<=1)return;let t=e.parent,r=t.parent,n=Ie(e,t.children),s=Ie(t,r.children);t.nodeData.children.splice(n,1),r.nodeData.children.splice(s+1,0,e.nodeData),this.mindMap.render()}_handleRemoveCustomStyles(e){let t=!1;return Object.keys(e).forEach(r=>{hs(r)&&(t=!0,delete e[r])}),this.hasRichTextPlugin()&&(t=!0,e.resetRichText=!0),t}removeCustomStyles(e){if(e=e||this.activeNodeList[0],!e)return;this._handleRemoveCustomStyles(e.getData())&&this.reRenderNodeCheckChange(e)}removeAllNodeCustomStyles(e){e=Ot(e);let t=!1;if(e.length>0)e.forEach(r=>{this._handleRemoveCustomStyles(r.getData())&&(t=!0)});else{if(!this.renderTree)return;de(this.renderTree,null,r=>{this._handleRemoveCustomStyles(r.data)&&(t=!0);let s=us(r.data);s.length>0&&s.forEach(a=>{this._handleRemoveCustomStyles(a)&&(t=!0)})})}t&&this.mindMap.reRender()}copy(){this.beingCopyData=this.copyNode(),this.beingCopyData&&(this.mindMap.opt.disabledClipboard||gu(xu(this.beingCopyData)))}cut(){this.mindMap.execCommand("CUT_NODE",e=>{this.beingCopyData=e,this.mindMap.opt.disabledClipboard||gu(xu(e))})}handlePaste(e){let{disabledClipboard:t}=this.mindMap.opt;if(t)return;let r=e.clipboardData||e.originalEvent.clipboardData,n=r.items,s=null,a="";Array.from(n).forEach(o=>{o.type.indexOf("image")>-1&&(s=o.getAsFile()),o.type.indexOf("text")>-1&&(a=r.getData("text"))}),this.paste()}async paste(){let{errorHandler:e,handleIsSplitByWrapOnPasteCreateNewNode:t,handleNodePasteImg:r,disabledClipboard:n,onlyPasteTextWhenHasImgAndText:s}=this.mindMap.opt;if(!n&&pu())try{let a=await C2(),o=a.text||"",l=a.img||null;if(o){let h=null,d=!0;if(this.mindMap.opt.customHandleClipboardText)try{let c=await this.mindMap.opt.customHandleClipboardText(o);if(!Yt(c)){d=!1;let f=Po(c);f.isSmm?h=f.data:o=f.data}}catch(c){e(Mi.CUSTOM_HANDLE_CLIPBOARD_TEXT_ERROR,c)}if(d){let c=Po(o);c.isSmm?h=c.data:o=c.data}if(h)this.mindMap.execCommand("INSERT_MULTI_CHILD_NODE",[],Array.isArray(h)?h:[h]);else{this.hasRichTextPlugin()&&(o=mn(o));let c=o.split(new RegExp(`\r? |(?!!f);c.length>1&&t?t().then(()=>{this.mindMap.execCommand("INSERT_MULTI_CHILD_NODE",[],c.map(f=>({data:{text:f},children:[]})))}).catch(()=>{this.mindMap.execCommand("INSERT_CHILD_NODE",!1,[],{text:o})}):this.mindMap.execCommand("INSERT_CHILD_NODE",!1,[],{text:o})}}if(l&&(!o||!s))try{let h=null;r&&typeof r=="function"?h=await r(l):h=await qp(l),this.activeNodeList.length>0&&this.activeNodeList.forEach(d=>{this.mindMap.execCommand("SET_NODE_IMAGE",d,{url:h.url,title:"",width:h.size.width,height:h.size.height})})}catch(h){e(di.LOAD_CLIPBOARD_IMAGE_ERROR,h)}}catch(a){e(di.READ_CLIPBOARD_ERROR,a)}else this.beingCopyData&&this.mindMap.execCommand("PASTE_NODE",this.beingCopyData)}insertBefore(e,t){this.insertTo(e,t,"before")}insertAfter(e,t){this.insertTo(e,t,"after")}insertTo(e,t,r="before"){let n=Nt(e);n=n.filter(s=>!s.isRoot),r==="after"&&n.reverse(),n.forEach(s=>{let a=s.parent,o=a.children,l=Ee(s,o);if(l===-1)return;o.splice(l,1),a.nodeData.children.splice(l,1);let h=t.parent,d=h.children,c=Ee(t,d);c!==-1&&(r==="after"&&c++,d.splice(c,0,s),h.nodeData.children.splice(c,0,s.nodeData))}),this.mindMap.render()}removeNode(e=[]){if(e=Nt(e),this.activeNodeList.length<=0&&e.length<=0)return;let t=null,r=e.length>0,n=r?e:this.activeNodeList,s=n.find(a=>a.isRoot);if(s)this.clearActiveNodeList(),s.children=[],s.nodeData.children=[];else{t=this.getNextActiveNode(n);for(let a=0;a0?e:this.activeNodeList;r=r.filter(s=>!s.isRoot);let n=this.getNextActiveNode(r);for(let s=0;s0?t=n[s-1]:t=r.parent}return t}copyNode(){if(this.activeNodeList.length<=0)return null;let e=Fn(this.activeNodeList);return e=oo(e),e.map(t=>Bn({},t,!0))}cutNode(e){if(this.activeNodeList.length<=0)return;let t=Fn(this.activeNodeList).filter(n=>!n.isRoot);t=oo(t);let r=t.map(n=>Bn({},n,!0));t.forEach(n=>{r0(n)}),this.clearActiveNodeList(),this.mindMap.render(),e&&typeof e=="function"&&e(r)}moveNodeTo(e,t){let r=Nt(e);r=r.filter(n=>!n.isRoot),r.forEach(n=>{this.removeNodeFromActiveList(n),r0(n),t.setData({expand:!0}),t.nodeData.children.push(n.nodeData)}),this.emitNodeActiveEvent(),this.mindMap.render()}pasteNode(e){e=Nt(e),this.mindMap.execCommand("INSERT_MULTI_CHILD_NODE",[],e)}setNodeStyle(e,t,r){let n={[t]:r};this.setNodeDataRender(e,n),to.includes(t)&&(e.parent||e).renderLine(!0)}setNodeStyles(e,t){let r={...t};this.setNodeDataRender(e,r);let n=Object.keys(t),s=!1;n.forEach(a=>{to.includes(a)&&(s=!0)}),s&&(e.parent||e).renderLine(!0)}setNodeActive(e,t){this.mindMap.execCommand("SET_NODE_DATA",e,{isActive:t}),e.updateNodeByActive(t)}setNodeExpand(e,t){this.mindMap.execCommand("SET_NODE_DATA",e,{expand:t}),this.mindMap.render()}expandAllNode(e=""){if(!this.renderTree)return;let t=(r,n)=>{!n&&r.data.uid===e&&(n=!0),n&&!r.data.expand&&(r.data.expand=!0),r.children&&r.children.length>0&&r.children.forEach(s=>{t(s,n)})};t(this.renderTree,!e),this.mindMap.render()}unexpandAllNode(e=!0,t=""){if(!this.renderTree)return;let r=(n,s,a)=>{!a&&n.data.uid===t&&(a=!0),a&&!s&&n.children&&n.children.length>0&&(n.data.expand=!1),n.children&&n.children.length>0&&n.children.forEach(o=>{r(o,!1,a)})};r(this.renderTree,!0,!t),this.mindMap.render(()=>{e&&this.setRootNodeCenter()})}expandToLevel(e){this.renderTree&&(se(this.renderTree,null,(t,r,n,s)=>{s0&&(t.data.expand=!1)},null,!0,0,0),this.mindMap.render())}toggleActiveExpand(){this.activeNodeList.forEach(e=>{e.nodeData.children.length<=0||e.isRoot||this.toggleNodeExpand(e)})}toggleNodeExpand(e){this.mindMap.execCommand("SET_NODE_EXPAND",e,!e.getData("expand"))}setNodeText(e,t,r,n){r=r===void 0?e.getData("richText"):r,this.setNodeDataRender(e,{text:t,richText:r,resetRichText:n})}setNodeImage(e,t){let{url:r,title:n,width:s,height:a,custom:o=!1}=t||{url:"",title:"",width:0,height:0,custom:!1};this.setNodeDataRender(e,{image:r,imageTitle:n||"",imageSize:{width:s,height:a,custom:o}})}setNodeIcon(e,t){this.setNodeDataRender(e,{icon:t})}setNodeHyperlink(e,t,r=""){this.setNodeDataRender(e,{hyperlink:t,hyperlinkTitle:r})}setNodeNote(e,t){this.setNodeDataRender(e,{note:t})}setNodeAttachment(e,t,r=""){this.setNodeDataRender(e,{attachmentUrl:t,attachmentName:r})}setNodeTag(e,t){this.setNodeDataRender(e,{tag:t})}insertFormula(e,t=[]){if(!this.hasRichTextPlugin()||!this.mindMap.formula)return;t=Nt(t),(t.length>0?t:this.activeNodeList).forEach(n=>{this.mindMap.formula.insertFormulaToNode(n,e)})}addGeneralization(e,t=!0){if(this.activeNodeList.length<=0)return;let r=this.activeNodeList.filter(d=>!d.isRoot&&!d.isGeneralization&&!d.checkHasSelfGeneralization()),n=Vp(r);if(n.length<=0)return;let s=this.hasRichTextPlugin(),{focusNewNode:a,inserting:o}=this.getNewNodeBehavior(t,n.length>1),l=!1,h=e&&e.richText;n.forEach(d=>{let c={inserting:o,...e||{text:this.mindMap.opt.defaultGeneralizationText},range:d.range||null,uid:ct(),richText:s,isActive:a};s&&!h&&(c.resetRichText=s);let f=d.node.getData("generalization");if(f=f?Array.isArray(f)?f:[f]:[],d.range){if(!!f.find(g=>g.range&&g.range[0]===d.range[0]&&g.range[1]===d.range[1]))return;f.push(c)}else f.push(c);l=!0,this.mindMap.execCommand("SET_NODE_DATA",d.node,{generalization:f}),d.node.setData({expand:!0})}),l&&(a&&this.clearActiveNodeList(),this.mindMap.render(()=>{this.mindMap.render()}))}removeGeneralization(){this.activeNodeList.length<=0||(this.activeNodeList.forEach(e=>{e.checkHasGeneralization()&&this.mindMap.execCommand("SET_NODE_DATA",e,{generalization:null})}),this.mindMap.render(),this.closeHighlightNode())}setNodeCustomPosition(e,t=void 0,r=void 0){[e].forEach(s=>{this.mindMap.execCommand("SET_NODE_DATA",s,{customLeft:t,customTop:r})})}resetLayout(){se(this.root,null,e=>{e.customLeft=void 0,e.customTop=void 0,this.mindMap.execCommand("SET_NODE_DATA",e,{customLeft:void 0,customTop:void 0}),this.mindMap.render()},null,!0,0,0)}setNodeShape(e,t){if(!t||!s3.includes(t))return;[e].forEach(n=>{this.setNodeStyle(n,"shape",t)})}goTargetNode(e,t=()=>{}){let r=typeof e=="string"?e:e.getData("uid");r&&this.expandToNodeUid(r,()=>{let n=this.findNodeByUid(r);n&&(n.active(),this.moveNodeToCenter(n),t(n))})}setNodeData(e,t){Object.keys(t).forEach(r=>{e.nodeData.data[r]=t[r]})}setNodeDataRender(e,t,r=!1){if(this.mindMap.execCommand("SET_NODE_DATA",e,t),Yp(t)){this.mindMap.emit("node_tree_render_end");return}this.reRenderNodeCheckChange(e,r)}reRenderNodeCheckChange(e,t){e.reRender()?t||this.mindMap.render():this.mindMap.emit("node_tree_render_end")}moveNodeToCenter(e,t){let{resetScaleOnMoveNodeToCenter:r}=this.mindMap.opt;t!==void 0&&(r=t);let{transform:n,state:s}=this.mindMap.view.getTransformData(),{left:a,top:o,width:l,height:h}=e;r||(a*=n.scaleX,o*=n.scaleY,l*=n.scaleX,h*=n.scaleY);let d=this.mindMap.width/2,c=this.mindMap.height/2,f=a+l/2,m=o+h/2,g=d-s.x,x=c-s.y,v=g-f,b=x-m;this.mindMap.view.translateX(v),this.mindMap.view.translateY(b),r&&this.mindMap.view.setScale(1)}setRootNodeCenter(){this.moveNodeToCenter(this.root)}expandToNodeUid(e,t=()=>{}){if(!this.renderTree){t();return}let r=[],n=!1,s={};Pt(this.renderTree,(o,l)=>{if(o.data.uid===e)return r=l?[...s[l.data.uid],l]:[],"stop";if(Hn(o.data).forEach(d=>{d.uid===e&&(r=l?[...s[l.data.uid],l,o]:[],n=!0)}),n)return"stop";s[o.data.uid]=l?[...s[l.data.uid],l]:[]});let a=!1;if(r.forEach(o=>{o.data.expand||(a=!0,o.data.expand=!0)}),n){let o=r[r.length-1];o&&se(o,null,l=>{l.data.expand||(a=!0,l.data.expand=!0)})}a?this.mindMap.render(t):t()}findNodeByUid(e){if(!this.root)return;let t=null;return se(this.root,null,r=>{if(r.getData("uid")===e)return t=r,!0;let n=!1;if((r._generalizationList||[]).forEach(s=>{s.generalizationNode.getData("uid")===e&&(t=s.generalizationNode,n=!0)}),n)return!0}),t}highlightNode(e,t,r){if(this.isRendering)return;r={stroke:"rgb(94, 200, 248)",fill:"transparent",...r||{}},this.highlightBoxNode?this.highlightBoxNodeStyle&&(this.highlightBoxNodeStyle.stroke!==r.stroke||this.highlightBoxNodeStyle.fill!==r.fill)&&this.highlightBoxNode.stroke({color:r.stroke||"transparent"}).fill({color:r.fill||"transparent"}):this.highlightBoxNode=new _i().stroke({color:r.stroke||"transparent"}).fill({color:r.fill||"transparent"}),this.highlightBoxNodeStyle={...r};let n=1/0,s=1/0,a=-1/0,o=-1/0;t?e.children.slice(t[0],t[1]+1).forEach(h=>{h.lefta&&(a=d),c>o&&(o=c)}):(n=e.left,s=e.top,a=e.left+e.width,o=e.top+e.height),this.highlightBoxNode.plot([[n,s],[a,s],[a,o],[n,o]]),this.mindMap.otherDraw.add(this.highlightBoxNode)}closeHighlightNode(){this.highlightBoxNode&&this.highlightBoxNode.remove()}hasRichTextPlugin(){return!!this.mindMap.richText}},cv=Tm});var Nn,fv=M(()=>{io();Nn={default:Vl}});var Nm,En,mv=M(()=>{Nm={Backspace:8,Tab:9,Enter:13,Shift:16,Control:17,Alt:18,CapsLock:20,Esc:27,Spacebar:32,PageUp:33,PageDown:34,End:35,Home:36,Insert:45,Left:37,Up:38,Right:39,Down:40,Del:46,NumLock:144,Cmd:91,CmdFF:224,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,"`":192,"=":187,"-":189,"/":191,".":190};for(let i=0;i<=9;i++)Nm[i]=i+48;"abcdefghijklmnopqrstuvwxyz".split("").forEach((i,e)=>{Nm[i]=e+65});En=Nm});var zl,pv=M(()=>{mv();zl=class{constructor(e){this.opt=e,this.mindMap=e.mindMap,this.shortcutMap={},this.shortcutMapCache={},this.isPause=!1,this.isInSvg=!1,this.isStopCheckInSvg=!1,this.defaultEnableCheck=this.defaultEnableCheck.bind(this),this.bindEvent()}extendKeyMap(e,t){En[e]=t}removeKeyMap(e){typeof En[e]<"u"&&delete En[e]}pause(){this.isPause=!0}recovery(){this.isPause=!1}save(){Object.keys(this.shortcutMapCache).length>0||(this.shortcutMapCache=this.shortcutMap,this.shortcutMap={})}restore(){Object.keys(this.shortcutMapCache).length<=0||(this.shortcutMap=this.shortcutMapCache,this.shortcutMapCache={})}stopCheckInSvg(){let{enableShortcutOnlyWhenMouseInSvg:e}=this.mindMap.opt;e&&(this.isStopCheckInSvg=!0)}recoveryCheckInSvg(){let{enableShortcutOnlyWhenMouseInSvg:e}=this.mindMap.opt;e&&(this.isStopCheckInSvg=!0)}bindEvent(){this.onKeydown=this.onKeydown.bind(this),this.mindMap.on("svg_mouseenter",()=>{this.isInSvg=!0}),this.mindMap.on("svg_mouseleave",()=>{this.isInSvg=!1}),window.addEventListener("keydown",this.onKeydown),this.mindMap.on("beforeDestroy",()=>{this.unBindEvent()})}unBindEvent(){window.removeEventListener("keydown",this.onKeydown)}defaultEnableCheck(e){let t=e.target;if(t===document.body)return!0;for(let r=0;r{if(this.checkKey(e,a)){if(this.checkKey(e,"Control+v")||(e.stopPropagation(),e.preventDefault()),typeof r=="function"&&r(a,[...this.mindMap.renderer.activeNodeList]))return;this.shortcutMap[a].forEach(o=>{o()})}}))}checkKey(e,t){let r=this.getOriginEventCodeArr(e),n=this.getKeyCodeArr(t);if(r.length!==n.length)return!1;for(let s=0;so===r[s]);if(a===-1)return!1;n.splice(a,1)}return!0}getOriginEventCodeArr(e){let t=[];return(e.ctrlKey||e.metaKey)&&t.push(En.Control),e.altKey&&t.push(En.Alt),e.shiftKey&&t.push(En.Shift),t.includes(e.keyCode)||t.push(e.keyCode),t}hasCombinationKey(e){return e.ctrlKey||e.metaKey||e.altKey||e.shiftKey}getKeyCodeArr(e){let t=e.split(/\s*\+\s*/),r=[];return t.forEach(n=>{r.push(En[n])}),r}addShortcut(e,t){e.split(/\s*\|\s*/).forEach(r=>{this.shortcutMap[r]?this.shortcutMap[r].push(t):this.shortcutMap[r]=[t]})}removeShortcut(e,t){e.split(/\s*\|\s*/).forEach(r=>{if(this.shortcutMap[r])if(t){let n=this.shortcutMap[r].findIndex(s=>s===t);n!==-1&&this.shortcutMap[r].splice(n,1)}else this.shortcutMap[r]=[],delete this.shortcutMap[r]})}getShortcutFn(e){let t=[];return e.split(/\s*\|\s*/).forEach(r=>{t=this.shortcutMap[r]||[]}),t}}});var xv,gv=M(()=>{xv={name:"simple-mind-map",version:"0.14.0-fix.1",description:"\u4E00\u4E2A\u7B80\u5355\u7684web\u5728\u7EBF\u601D\u7EF4\u5BFC\u56FE",authors:[{name:"\u8857\u89D2\u5C0F\u6797",email:"1013335014@qq.com"},{name:"\u7406\u60F3\u9752\u5E74\u5B9E\u9A8C\u5BA4",url:"http://lxqnsys.com/"}],types:"./types/index.d.ts",typings:"./types/index.d.ts",license:"MIT",repository:{type:"git",url:"https://github.com/wanglin2/mind-map"},scripts:{lint:"eslint src/",format:"prettier --write .",types:"npx -p typescript tsc index.js --declaration --allowJs --emitDeclarationOnly --outDir types --target es2017 --skipLibCheck & node ./bin/createPluginsTypeFiles.js",wsServe:"node ./bin/wsServer.mjs"},module:"index.js",main:"./dist/simpleMindMap.umd.min.js",dependencies:{"@svgdotjs/svg.js":"3.2.0",deepmerge:"^1.5.2",eventemitter3:"^4.0.7",jszip:"^3.10.1",katex:"^0.16.8","mdast-util-from-markdown":"^1.3.0","pdf-lib":"^1.17.1",quill:"^2.0.3",tern:"^0.24.3",uuid:"^9.0.0",ws:"^7.5.9","xml-js":"^1.6.11","y-webrtc":"^10.2.5",yjs:"^13.6.8"},keywords:["javascript","svg","mind-map","mindMap","MindMap"],devDependencies:{eslint:"^8.25.0",prettier:"^2.7.1"}}});var Em,vv,yv=M(()=>{he();Oe();gv();Em=class{constructor(e={}){this.opt=e,this.mindMap=e.mindMap,this.commands={},this.history=[],this.activeHistoryIndex=0,this.registerShortcutKeys(),this.originAddHistory=this.addHistory.bind(this),this.addHistory=mi(this.addHistory,this.mindMap.opt.addHistoryTime,this),this.isPause=!1}pause(){this.isPause=!0}recovery(){this.isPause=!1}clearHistory(){this.history=[],this.activeHistoryIndex=0,this.mindMap.emit("back_forward",0,0)}registerShortcutKeys(){this.mindMap.keyCommand.addShortcut("Control+z",()=>{this.mindMap.execCommand("BACK")}),this.mindMap.keyCommand.addShortcut("Control+y",()=>{this.mindMap.execCommand("FORWARD")})}exec(e,...t){if(this.commands[e]){if(this.commands[e].forEach(r=>{r(...t)}),this.mindMap.emit("afterExecCommand",e,...t),["BACK","FORWARD","SET_NODE_ACTIVE","CLEAR_ACTIVE_NODE"].includes(e))return;this.addHistory()}}add(e,t){this.commands[e]?this.commands[e].push(t):this.commands[e]=[t]}remove(e,t){if(this.commands[e])if(!t)this.commands[e]=[],delete this.commands[e];else{let r=this.commands[e].find(n=>n===t);r!==-1&&this.commands[e].splice(r,1)}}addHistory(){if(this.mindMap.opt.readonly||this.isPause)return;this.mindMap.emit("beforeAddHistory");let e=this.history.length>0?this.history[this.activeHistoryIndex]:null,t=this.getCopyData(),r=JSON.stringify(t);e&&e===r||(this.emitDataUpdatesEvent(e,r),this.history=this.history.slice(0,this.activeHistoryIndex+1),this.history.push(r),this.history.length>this.mindMap.opt.maxHistoryCount&&this.history.shift(),this.activeHistoryIndex=this.history.length-1,this.mindMap.emit("data_change",t),this.mindMap.emit("back_forward",this.activeHistoryIndex,this.history.length))}back(e=1){if(!this.mindMap.opt.readonly&&this.activeHistoryIndex-e>=0){let t=this.history[this.activeHistoryIndex];this.activeHistoryIndex-=e,this.mindMap.emit("back_forward",this.activeHistoryIndex,this.history.length);let r=this.history[this.activeHistoryIndex],n=JSON.parse(r);return this.emitDataUpdatesEvent(t,r),n}}forward(e=1){if(this.mindMap.opt.readonly)return;let t=this.history.length;if(this.activeHistoryIndex+e<=t-1){let r=this.history[this.activeHistoryIndex];this.activeHistoryIndex+=e,this.mindMap.emit("back_forward",this.activeHistoryIndex,this.history.length);let n=this.history[this.activeHistoryIndex],s=JSON.parse(n);return this.emitDataUpdatesEvent(r,n),s}}getCopyData(){if(!this.mindMap.renderer.renderTree)return null;let e=cc({},this.mindMap.renderer.renderTree,!0);return e.smmVersion=xv.version,e}removeDataUid(e){e=Ft(e);let t=r=>{delete r.data.uid,r.children&&r.children.length>0&&r.children.forEach(n=>{t(n)})};return t(e),e}emitDataUpdatesEvent(e,t){try{let r="data_change_detail";if(this.mindMap.event.listenerCount(r)>0&&e&&t){let s=JSON.parse(e),a=JSON.parse(t),o=Ft(vc(s)),l=Ft(vc(a)),h=[],d=(c,f)=>(c.children&&c.children.length>0&&c.children.forEach((m,g)=>{c.children[g]=typeof m=="string"?f[m]:f[m.data.uid],d(c.children[g],f)}),c);Object.keys(l).forEach(c=>{o[c]?Ql(o[c],l[c])||h.push({action:"update",oldData:d(o[c],o),data:d(l[c],l)}):h.push({action:"create",data:d(l[c],l)})}),Object.keys(o).forEach(c=>{l[c]||h.push({action:"delete",data:d(o[c],o)})}),this.mindMap.emit(r,h)}}catch(r){this.mindMap.opt.errorHandler(di.DATA_CHANGE_DETAIL_EVENT_ERROR,r)}}},vv=Em});var Sm,bv,wv=M(()=>{he();Sm=class{constructor(){this.has={},this.queue=[],this.nextTick=Pp(this.flush,this)}push(e,t){if(this.has[e]){this.replaceTask(e,t);return}this.has[e]=!0,this.queue.push({name:e,fn:t}),this.nextTick()}replaceTask(e,t){let r=this.queue.findIndex(n=>n.name===e);r!==-1&&(this.queue[r]={name:e,fn:t})}flush(){let e=this.queue.slice(0);this.queue=[],e.forEach(({name:t,fn:r})=>{this.has[t]=!1,r()})}},bv=Sm});var Am,Mv=M(()=>{Oe();Am={el:null,data:null,viewData:null,readonly:!1,layout:A.LAYOUT.LOGICAL_STRUCTURE,fishboneDeg:45,theme:"default",themeConfig:{},scaleRatio:.2,translateRatio:1,minZoomRatio:20,maxZoomRatio:400,customCheckIsTouchPad:null,mouseScaleCenterUseMousePosition:!0,maxTag:5,expandBtnSize:20,imgTextMargin:5,textContentMargin:2,customNoteContentShow:null,textAutoWrapWidth:500,customHandleMousewheel:null,mousewheelAction:A.MOUSE_WHEEL_ACTION.MOVE,mousewheelMoveStep:100,mousewheelZoomActionReverse:!0,defaultInsertSecondLevelNodeText:"\u4E8C\u7EA7\u8282\u70B9",defaultInsertBelowSecondLevelNodeText:"\u5206\u652F\u4E3B\u9898",expandBtnStyle:{color:"#808080",fill:"#fff",fontSize:13,strokeColor:"#333333"},expandBtnIcon:{open:"",close:""},expandBtnNumHandler:null,isShowExpandNum:!0,enableShortcutOnlyWhenMouseInSvg:!0,customCheckEnableShortcut:null,initRootNodePosition:null,nodeTextEditZIndex:3e3,nodeNoteTooltipZIndex:3e3,isEndNodeTextEditOnClickOuter:!0,maxHistoryCount:500,alwaysShowExpandBtn:!1,notShowExpandBtn:!1,iconList:[],maxNodeCacheCount:1e3,fitPadding:50,enableCtrlKeyNodeSelection:!0,useLeftKeySelectionRightKeyDrag:!1,beforeTextEdit:null,isUseCustomNodeContent:!1,customCreateNodeContent:null,customInnerElsAppendTo:null,enableAutoEnterTextEditWhenKeydown:!1,autoEmptyTextWhenKeydownEnterEdit:!1,customHandleClipboardText:null,disableMouseWheelZoom:!1,errorHandler:(i,e)=>{console.error(i,e)},enableDblclickBackToRootNode:!1,hoverRectColor:"rgb(94, 200, 248)",hoverRectPadding:2,selectTextOnEnterEditText:!1,deleteNodeActive:!0,fit:!1,tagsColorMap:{},cooperateStyle:{avatarSize:22,fontSize:12},onlyOneEnableActiveNodeOnCooperate:!1,defaultGeneralizationText:"\u6982\u8981",handleIsSplitByWrapOnPasteCreateNewNode:null,addHistoryTime:100,isDisableDrag:!1,createNewNodeBehavior:A.CREATE_NEW_NODE_BEHAVIOR.DEFAULT,defaultNodeImage:"",isLimitMindMapInCanvas:!1,handleNodePasteImg:null,customCreateNodePath:null,customCreateNodePolygon:null,customTransformNodeLinePath:null,beforeShortcutRun:null,resetScaleOnMoveNodeToCenter:!1,createNodePrefixContent:null,createNodePostfixContent:null,disabledClipboard:!1,customHyperlinkJump:null,openPerformance:!1,performanceConfig:{time:250,padding:100,removeNodeWhenOutCanvas:!0},emptyTextMeasureHeightText:"abc123\u6211\u548C\u4F60",openRealtimeRenderOnNodeTextEdit:!1,mousedownEventPreventDefault:!1,onlyPasteTextWhenHasImgAndText:!0,enableDragModifyNodeWidth:!0,minNodeTextModifyWidth:20,maxNodeTextModifyWidth:-1,customHandleLine:null,addHistoryOnInit:!0,noteIcon:{icon:"",style:{}},hyperlinkIcon:{icon:"",style:{}},attachmentIcon:{icon:"",style:{}},isShowCreateChildBtnIcon:!0,quickCreateChildBtnIcon:{icon:"",style:{}},customQuickCreateChildBtnClick:null,addCustomContentToNode:null,enableInheritAncestorLineStyle:!0,selectTranslateStep:3,selectTranslateLimit:20,enableFreeDrag:!1,autoMoveWhenMouseInEdgeOnDrag:!0,dragMultiNodeRectConfig:{width:40,height:20,fill:"rgb(94, 200, 248)"},dragPlaceholderRectFill:"rgb(94, 200, 248)",dragPlaceholderLineConfig:{color:"rgb(94, 200, 248)",width:2},dragOpacityConfig:{cloneNodeOpacity:.5,beingDragNodeOpacity:.3},handleDragCloneNode:null,beforeDragEnd:null,beforeDragStart:null,watermarkConfig:{onlyExport:!1,text:"",lineSpacing:100,textSpacing:100,angle:30,textStyle:{color:"#999",opacity:.5,fontSize:14},belowNode:!1},exportPaddingX:10,exportPaddingY:10,resetCss:` +)\r`,"g")).filter(f=>!!f);c.length>1&&t?t().then(()=>{this.mindMap.execCommand("INSERT_MULTI_CHILD_NODE",[],c.map(f=>({data:{text:f},children:[]})))}).catch(()=>{this.mindMap.execCommand("INSERT_CHILD_NODE",!1,[],{text:o})}):this.mindMap.execCommand("INSERT_CHILD_NODE",!1,[],{text:o})}}if(l&&(!o||!s))try{let h=null;r&&typeof r=="function"?h=await r(l):h=await v2(l),this.activeNodeList.length>0&&this.activeNodeList.forEach(d=>{this.mindMap.execCommand("SET_NODE_IMAGE",d,{url:h.url,title:"",width:h.size.width,height:h.size.height})})}catch(h){e(Mi.LOAD_CLIPBOARD_IMAGE_ERROR,h)}}catch(a){e(Mi.READ_CLIPBOARD_ERROR,a)}else this.beingCopyData&&this.mindMap.execCommand("PASTE_NODE",this.beingCopyData)}insertBefore(e,t){this.insertTo(e,t,"before")}insertAfter(e,t){this.insertTo(e,t,"after")}insertTo(e,t,r="before"){let n=Ot(e);n=n.filter(s=>!s.isRoot),r==="after"&&n.reverse(),n.forEach(s=>{let a=s.parent,o=a.children,l=Ie(s,o);if(l===-1)return;o.splice(l,1),a.nodeData.children.splice(l,1);let h=t.parent,d=h.children,c=Ie(t,d);c!==-1&&(r==="after"&&c++,d.splice(c,0,s),h.nodeData.children.splice(c,0,s.nodeData))}),this.mindMap.render()}removeNode(e=[]){if(e=Ot(e),this.activeNodeList.length<=0&&e.length<=0)return;let t=null,r=e.length>0,n=r?e:this.activeNodeList,s=n.find(a=>a.isRoot);if(s)this.clearActiveNodeList(),s.children=[],s.nodeData.children=[];else{t=this.getNextActiveNode(n);for(let a=0;a0?e:this.activeNodeList;r=r.filter(s=>!s.isRoot);let n=this.getNextActiveNode(r);for(let s=0;s0?t=n[s-1]:t=r.parent}return t}copyNode(){if(this.activeNodeList.length<=0)return null;let e=ds(this.activeNodeList);return e=Fo(e),e.map(t=>ls({},t,!0))}cutNode(e){if(this.activeNodeList.length<=0)return;let t=ds(this.activeNodeList).filter(n=>!n.isRoot);t=Fo(t);let r=t.map(n=>ls({},n,!0));t.forEach(n=>{V0(n)}),this.clearActiveNodeList(),this.mindMap.render(),e&&typeof e=="function"&&e(r)}moveNodeTo(e,t){let r=Ot(e);r=r.filter(n=>!n.isRoot),r.forEach(n=>{this.removeNodeFromActiveList(n),V0(n),t.setData({expand:!0}),t.nodeData.children.push(n.nodeData)}),this.emitNodeActiveEvent(),this.mindMap.render()}pasteNode(e){e=Ot(e),this.mindMap.execCommand("INSERT_MULTI_CHILD_NODE",[],e)}setNodeStyle(e,t,r){let n={[t]:r};this.setNodeDataRender(e,n),zo.includes(t)&&(e.parent||e).renderLine(!0)}setNodeStyles(e,t){let r={...t};this.setNodeDataRender(e,r);let n=Object.keys(t),s=!1;n.forEach(a=>{zo.includes(a)&&(s=!0)}),s&&(e.parent||e).renderLine(!0)}setNodeActive(e,t){this.mindMap.execCommand("SET_NODE_DATA",e,{isActive:t}),e.updateNodeByActive(t)}setNodeExpand(e,t){this.mindMap.execCommand("SET_NODE_DATA",e,{expand:t}),this.mindMap.render()}expandAllNode(e=""){if(!this.renderTree)return;let t=(r,n)=>{!n&&r.data.uid===e&&(n=!0),n&&!r.data.expand&&(r.data.expand=!0),r.children&&r.children.length>0&&r.children.forEach(s=>{t(s,n)})};t(this.renderTree,!e),this.mindMap.render()}unexpandAllNode(e=!0,t=""){if(!this.renderTree)return;let r=(n,s,a)=>{!a&&n.data.uid===t&&(a=!0),a&&!s&&n.children&&n.children.length>0&&(n.data.expand=!1),n.children&&n.children.length>0&&n.children.forEach(o=>{r(o,!1,a)})};r(this.renderTree,!0,!t),this.mindMap.render(()=>{e&&this.setRootNodeCenter()})}expandToLevel(e){this.renderTree&&(de(this.renderTree,null,(t,r,n,s)=>{s0&&(t.data.expand=!1)},null,!0,0,0),this.mindMap.render())}toggleActiveExpand(){this.activeNodeList.forEach(e=>{e.nodeData.children.length<=0||e.isRoot||this.toggleNodeExpand(e)})}toggleNodeExpand(e){this.mindMap.execCommand("SET_NODE_EXPAND",e,!e.getData("expand"))}setNodeText(e,t,r,n){r=r===void 0?e.getData("richText"):r,this.setNodeDataRender(e,{text:t,richText:r,resetRichText:n})}setNodeImage(e,t){let{url:r,title:n,width:s,height:a,custom:o=!1}=t||{url:"",title:"",width:0,height:0,custom:!1};this.setNodeDataRender(e,{image:r,imageTitle:n||"",imageSize:{width:s,height:a,custom:o}})}setNodeIcon(e,t){this.setNodeDataRender(e,{icon:t})}setNodeHyperlink(e,t,r=""){this.setNodeDataRender(e,{hyperlink:t,hyperlinkTitle:r})}setNodeNote(e,t){this.setNodeDataRender(e,{note:t})}setNodeAttachment(e,t,r=""){this.setNodeDataRender(e,{attachmentUrl:t,attachmentName:r})}setNodeTag(e,t){this.setNodeDataRender(e,{tag:t})}insertFormula(e,t=[]){if(!this.hasRichTextPlugin()||!this.mindMap.formula)return;t=Ot(t),(t.length>0?t:this.activeNodeList).forEach(n=>{this.mindMap.formula.insertFormulaToNode(n,e)})}addGeneralization(e,t=!0){if(this.activeNodeList.length<=0)return;let r=this.activeNodeList.filter(d=>!d.isRoot&&!d.isGeneralization&&!d.checkHasSelfGeneralization()),n=A2(r);if(n.length<=0)return;let s=this.hasRichTextPlugin(),{focusNewNode:a,inserting:o}=this.getNewNodeBehavior(t,n.length>1),l=!1,h=e&&e.richText;n.forEach(d=>{let c={inserting:o,...e||{text:this.mindMap.opt.defaultGeneralizationText},range:d.range||null,uid:wt(),richText:s,isActive:a};s&&!h&&(c.resetRichText=s);let f=d.node.getData("generalization");if(f=f?Array.isArray(f)?f:[f]:[],d.range){if(!!f.find(g=>g.range&&g.range[0]===d.range[0]&&g.range[1]===d.range[1]))return;f.push(c)}else f.push(c);l=!0,this.mindMap.execCommand("SET_NODE_DATA",d.node,{generalization:f}),d.node.setData({expand:!0})}),l&&(a&&this.clearActiveNodeList(),this.mindMap.render(()=>{this.mindMap.render()}))}removeGeneralization(){this.activeNodeList.length<=0||(this.activeNodeList.forEach(e=>{e.checkHasGeneralization()&&this.mindMap.execCommand("SET_NODE_DATA",e,{generalization:null})}),this.mindMap.render(),this.closeHighlightNode())}setNodeCustomPosition(e,t=void 0,r=void 0){[e].forEach(s=>{this.mindMap.execCommand("SET_NODE_DATA",s,{customLeft:t,customTop:r})})}resetLayout(){de(this.root,null,e=>{e.customLeft=void 0,e.customTop=void 0,this.mindMap.execCommand("SET_NODE_DATA",e,{customLeft:void 0,customTop:void 0}),this.mindMap.render()},null,!0,0,0)}setNodeShape(e,t){if(!t||!P2.includes(t))return;[e].forEach(n=>{this.setNodeStyle(n,"shape",t)})}goTargetNode(e,t=()=>{}){let r=typeof e=="string"?e:e.getData("uid");r&&this.expandToNodeUid(r,()=>{let n=this.findNodeByUid(r);n&&(n.active(),this.moveNodeToCenter(n),t(n))})}setNodeData(e,t){Object.keys(t).forEach(r=>{e.nodeData.data[r]=t[r]})}setNodeDataRender(e,t,r=!1){if(this.mindMap.execCommand("SET_NODE_DATA",e,t),E2(t)){this.mindMap.emit("node_tree_render_end");return}this.reRenderNodeCheckChange(e,r)}reRenderNodeCheckChange(e,t){e.reRender()?t||this.mindMap.render():this.mindMap.emit("node_tree_render_end")}moveNodeToCenter(e,t){let{resetScaleOnMoveNodeToCenter:r}=this.mindMap.opt;t!==void 0&&(r=t);let{transform:n,state:s}=this.mindMap.view.getTransformData(),{left:a,top:o,width:l,height:h}=e;r||(a*=n.scaleX,o*=n.scaleY,l*=n.scaleX,h*=n.scaleY);let d=this.mindMap.width/2,c=this.mindMap.height/2,f=a+l/2,m=o+h/2,g=d-s.x,x=c-s.y,y=g-f,b=x-m;this.mindMap.view.translateX(y),this.mindMap.view.translateY(b),r&&this.mindMap.view.setScale(1)}setRootNodeCenter(){this.moveNodeToCenter(this.root)}expandToNodeUid(e,t=()=>{}){if(!this.renderTree){t();return}let r=[],n=!1,s={};Xt(this.renderTree,(o,l)=>{if(o.data.uid===e)return r=l?[...s[l.data.uid],l]:[],"stop";if(us(o.data).forEach(d=>{d.uid===e&&(r=l?[...s[l.data.uid],l,o]:[],n=!0)}),n)return"stop";s[o.data.uid]=l?[...s[l.data.uid],l]:[]});let a=!1;if(r.forEach(o=>{o.data.expand||(a=!0,o.data.expand=!0)}),n){let o=r[r.length-1];o&&de(o,null,l=>{l.data.expand||(a=!0,l.data.expand=!0)})}a?this.mindMap.render(t):t()}findNodeByUid(e){if(!this.root)return;let t=null;return de(this.root,null,r=>{if(r.getData("uid")===e)return t=r,!0;let n=!1;if((r._generalizationList||[]).forEach(s=>{s.generalizationNode.getData("uid")===e&&(t=s.generalizationNode,n=!0)}),n)return!0}),t}highlightNode(e,t,r){if(this.isRendering)return;r={stroke:"rgb(94, 200, 248)",fill:"transparent",...r||{}},this.highlightBoxNode?this.highlightBoxNodeStyle&&(this.highlightBoxNodeStyle.stroke!==r.stroke||this.highlightBoxNodeStyle.fill!==r.fill)&&this.highlightBoxNode.stroke({color:r.stroke||"transparent"}).fill({color:r.fill||"transparent"}):this.highlightBoxNode=new Gi().stroke({color:r.stroke||"transparent"}).fill({color:r.fill||"transparent"}),this.highlightBoxNodeStyle={...r};let n=1/0,s=1/0,a=-1/0,o=-1/0;t?e.children.slice(t[0],t[1]+1).forEach(h=>{h.lefta&&(a=d),c>o&&(o=c)}):(n=e.left,s=e.top,a=e.left+e.width,o=e.top+e.height),this.highlightBoxNode.plot([[n,s],[a,s],[a,o],[n,o]]),this.mindMap.otherDraw.add(this.highlightBoxNode)}closeHighlightNode(){this.highlightBoxNode&&this.highlightBoxNode.remove()}hasRichTextPlugin(){return!!this.mindMap.richText}},jv=Np});var jn,Vv=T(()=>{Ro();jn={default:B0}});var Ep,Gn,Wv=T(()=>{Ep={Backspace:8,Tab:9,Enter:13,Shift:16,Control:17,Alt:18,CapsLock:20,Esc:27,Spacebar:32,PageUp:33,PageDown:34,End:35,Home:36,Insert:45,Left:37,Up:38,Right:39,Down:40,Del:46,NumLock:144,Cmd:91,CmdFF:224,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,"`":192,"=":187,"-":189,"/":191,".":190};for(let i=0;i<=9;i++)Ep[i]=i+48;"abcdefghijklmnopqrstuvwxyz".split("").forEach((i,e)=>{Ep[i]=e+65});Gn=Ep});var h0,Yv=T(()=>{Wv();h0=class{constructor(e){this.opt=e,this.mindMap=e.mindMap,this.shortcutMap={},this.shortcutMapCache={},this.isPause=!1,this.isInSvg=!1,this.isStopCheckInSvg=!1,this.defaultEnableCheck=this.defaultEnableCheck.bind(this),this.bindEvent()}extendKeyMap(e,t){Gn[e]=t}removeKeyMap(e){typeof Gn[e]<"u"&&delete Gn[e]}pause(){this.isPause=!0}recovery(){this.isPause=!1}save(){Object.keys(this.shortcutMapCache).length>0||(this.shortcutMapCache=this.shortcutMap,this.shortcutMap={})}restore(){Object.keys(this.shortcutMapCache).length<=0||(this.shortcutMap=this.shortcutMapCache,this.shortcutMapCache={})}stopCheckInSvg(){let{enableShortcutOnlyWhenMouseInSvg:e}=this.mindMap.opt;e&&(this.isStopCheckInSvg=!0)}recoveryCheckInSvg(){let{enableShortcutOnlyWhenMouseInSvg:e}=this.mindMap.opt;e&&(this.isStopCheckInSvg=!0)}bindEvent(){this.onKeydown=this.onKeydown.bind(this),this.mindMap.on("svg_mouseenter",()=>{this.isInSvg=!0}),this.mindMap.on("svg_mouseleave",()=>{this.isInSvg=!1}),window.addEventListener("keydown",this.onKeydown),this.mindMap.on("beforeDestroy",()=>{this.unBindEvent()})}unBindEvent(){window.removeEventListener("keydown",this.onKeydown)}defaultEnableCheck(e){let t=e.target;if(t===document.body)return!0;for(let r=0;r{if(this.checkKey(e,a)){if(this.checkKey(e,"Control+v")||(e.stopPropagation(),e.preventDefault()),typeof r=="function"&&r(a,[...this.mindMap.renderer.activeNodeList]))return;this.shortcutMap[a].forEach(o=>{o()})}}))}checkKey(e,t){let r=this.getOriginEventCodeArr(e),n=this.getKeyCodeArr(t);if(r.length!==n.length)return!1;for(let s=0;so===r[s]);if(a===-1)return!1;n.splice(a,1)}return!0}getOriginEventCodeArr(e){let t=[];return(e.ctrlKey||e.metaKey)&&t.push(Gn.Control),e.altKey&&t.push(Gn.Alt),e.shiftKey&&t.push(Gn.Shift),t.includes(e.keyCode)||t.push(e.keyCode),t}hasCombinationKey(e){return e.ctrlKey||e.metaKey||e.altKey||e.shiftKey}getKeyCodeArr(e){let t=e.split(/\s*\+\s*/),r=[];return t.forEach(n=>{r.push(Gn[n])}),r}addShortcut(e,t){e.split(/\s*\|\s*/).forEach(r=>{this.shortcutMap[r]?this.shortcutMap[r].push(t):this.shortcutMap[r]=[t]})}removeShortcut(e,t){e.split(/\s*\|\s*/).forEach(r=>{if(this.shortcutMap[r])if(t){let n=this.shortcutMap[r].findIndex(s=>s===t);n!==-1&&this.shortcutMap[r].splice(n,1)}else this.shortcutMap[r]=[],delete this.shortcutMap[r]})}getShortcutFn(e){let t=[];return e.split(/\s*\|\s*/).forEach(r=>{t=this.shortcutMap[r]||[]}),t}}});var Kv,Xv=T(()=>{Kv={name:"simple-mind-map",version:"0.14.0-fix.1",description:"\u4E00\u4E2A\u7B80\u5355\u7684web\u5728\u7EBF\u601D\u7EF4\u5BFC\u56FE",authors:[{name:"\u8857\u89D2\u5C0F\u6797",email:"1013335014@qq.com"},{name:"\u7406\u60F3\u9752\u5E74\u5B9E\u9A8C\u5BA4",url:"http://lxqnsys.com/"}],types:"./types/index.d.ts",typings:"./types/index.d.ts",license:"MIT",repository:{type:"git",url:"https://github.com/wanglin2/mind-map"},scripts:{lint:"eslint src/",format:"prettier --write .",types:"npx -p typescript tsc index.js --declaration --allowJs --emitDeclarationOnly --outDir types --target es2017 --skipLibCheck & node ./bin/createPluginsTypeFiles.js",wsServe:"node ./bin/wsServer.mjs"},module:"index.js",main:"./dist/simpleMindMap.umd.min.js",dependencies:{"@svgdotjs/svg.js":"3.2.0",deepmerge:"^1.5.2",eventemitter3:"^4.0.7",jszip:"^3.10.1",katex:"^0.16.8","mdast-util-from-markdown":"^1.3.0","pdf-lib":"^1.17.1",quill:"^2.0.3",tern:"^0.24.3",uuid:"^9.0.0",ws:"^7.5.9","xml-js":"^1.6.11","y-webrtc":"^10.2.5",yjs:"^13.6.8"},keywords:["javascript","svg","mind-map","mindMap","MindMap"],devDependencies:{eslint:"^8.25.0",prettier:"^2.7.1"}}});var Sp,Zv,Qv=T(()=>{pe();$e();Xv();Sp=class{constructor(e={}){this.opt=e,this.mindMap=e.mindMap,this.commands={},this.history=[],this.activeHistoryIndex=0,this.registerShortcutKeys(),this.originAddHistory=this.addHistory.bind(this),this.addHistory=Si(this.addHistory,this.mindMap.opt.addHistoryTime,this),this.isPause=!1}pause(){this.isPause=!0}recovery(){this.isPause=!1}clearHistory(){this.history=[],this.activeHistoryIndex=0,this.mindMap.emit("back_forward",0,0)}registerShortcutKeys(){this.mindMap.keyCommand.addShortcut("Control+z",()=>{this.mindMap.execCommand("BACK")}),this.mindMap.keyCommand.addShortcut("Control+y",()=>{this.mindMap.execCommand("FORWARD")})}exec(e,...t){if(this.commands[e]){if(this.commands[e].forEach(r=>{r(...t)}),this.mindMap.emit("afterExecCommand",e,...t),["BACK","FORWARD","SET_NODE_ACTIVE","CLEAR_ACTIVE_NODE"].includes(e))return;this.addHistory()}}add(e,t){this.commands[e]?this.commands[e].push(t):this.commands[e]=[t]}remove(e,t){if(this.commands[e])if(!t)this.commands[e]=[],delete this.commands[e];else{let r=this.commands[e].find(n=>n===t);r!==-1&&this.commands[e].splice(r,1)}}addHistory(){if(this.mindMap.opt.readonly||this.isPause)return;this.mindMap.emit("beforeAddHistory");let e=this.history.length>0?this.history[this.activeHistoryIndex]:null,t=this.getCopyData(),r=JSON.stringify(t);e&&e===r||(this.emitDataUpdatesEvent(e,r),this.history=this.history.slice(0,this.activeHistoryIndex+1),this.history.push(r),this.history.length>this.mindMap.opt.maxHistoryCount&&this.history.shift(),this.activeHistoryIndex=this.history.length-1,this.mindMap.emit("data_change",t),this.mindMap.emit("back_forward",this.activeHistoryIndex,this.history.length))}back(e=1){if(!this.mindMap.opt.readonly&&this.activeHistoryIndex-e>=0){let t=this.history[this.activeHistoryIndex];this.activeHistoryIndex-=e,this.mindMap.emit("back_forward",this.activeHistoryIndex,this.history.length);let r=this.history[this.activeHistoryIndex],n=JSON.parse(r);return this.emitDataUpdatesEvent(t,r),n}}forward(e=1){if(this.mindMap.opt.readonly)return;let t=this.history.length;if(this.activeHistoryIndex+e<=t-1){let r=this.history[this.activeHistoryIndex];this.activeHistoryIndex+=e,this.mindMap.emit("back_forward",this.activeHistoryIndex,this.history.length);let n=this.history[this.activeHistoryIndex],s=JSON.parse(n);return this.emitDataUpdatesEvent(r,n),s}}getCopyData(){if(!this.mindMap.renderer.renderTree)return null;let e=uu({},this.mindMap.renderer.renderTree,!0);return e.smmVersion=Kv.version,e}removeDataUid(e){e=Kt(e);let t=r=>{delete r.data.uid,r.children&&r.children.length>0&&r.children.forEach(n=>{t(n)})};return t(e),e}emitDataUpdatesEvent(e,t){try{let r="data_change_detail";if(this.mindMap.event.listenerCount(r)>0&&e&&t){let s=JSON.parse(e),a=JSON.parse(t),o=Kt(vu(s)),l=Kt(vu(a)),h=[],d=(c,f)=>(c.children&&c.children.length>0&&c.children.forEach((m,g)=>{c.children[g]=typeof m=="string"?f[m]:f[m.data.uid],d(c.children[g],f)}),c);Object.keys(l).forEach(c=>{o[c]?H0(o[c],l[c])||h.push({action:"update",oldData:d(o[c],o),data:d(l[c],l)}):h.push({action:"create",data:d(l[c],l)})}),Object.keys(o).forEach(c=>{l[c]||h.push({action:"delete",data:d(o[c],o)})}),this.mindMap.emit(r,h)}}catch(r){this.mindMap.opt.errorHandler(Mi.DATA_CHANGE_DETAIL_EVENT_ERROR,r)}}},Zv=Sp});var Ap,Jv,eb=T(()=>{pe();Ap=class{constructor(){this.has={},this.queue=[],this.nextTick=x2(this.flush,this)}push(e,t){if(this.has[e]){this.replaceTask(e,t);return}this.has[e]=!0,this.queue.push({name:e,fn:t}),this.nextTick()}replaceTask(e,t){let r=this.queue.findIndex(n=>n.name===e);r!==-1&&(this.queue[r]={name:e,fn:t})}flush(){let e=this.queue.slice(0);this.queue=[],e.forEach(({name:t,fn:r})=>{this.has[t]=!1,r()})}},Jv=Ap});var kp,tb=T(()=>{$e();kp={el:null,data:null,viewData:null,readonly:!1,layout:k.LAYOUT.LOGICAL_STRUCTURE,fishboneDeg:45,theme:"default",themeConfig:{},scaleRatio:.2,translateRatio:1,minZoomRatio:20,maxZoomRatio:400,customCheckIsTouchPad:null,mouseScaleCenterUseMousePosition:!0,maxTag:5,expandBtnSize:20,imgTextMargin:5,textContentMargin:2,customNoteContentShow:null,textAutoWrapWidth:500,customHandleMousewheel:null,mousewheelAction:k.MOUSE_WHEEL_ACTION.MOVE,mousewheelMoveStep:100,mousewheelZoomActionReverse:!0,defaultInsertSecondLevelNodeText:"\u4E8C\u7EA7\u8282\u70B9",defaultInsertBelowSecondLevelNodeText:"\u5206\u652F\u4E3B\u9898",expandBtnStyle:{color:"#808080",fill:"#fff",fontSize:13,strokeColor:"#333333"},expandBtnIcon:{open:"",close:""},expandBtnNumHandler:null,isShowExpandNum:!0,enableShortcutOnlyWhenMouseInSvg:!0,customCheckEnableShortcut:null,initRootNodePosition:null,nodeTextEditZIndex:3e3,nodeNoteTooltipZIndex:3e3,isEndNodeTextEditOnClickOuter:!0,maxHistoryCount:500,alwaysShowExpandBtn:!1,notShowExpandBtn:!1,iconList:[],maxNodeCacheCount:1e3,fitPadding:50,enableCtrlKeyNodeSelection:!0,useLeftKeySelectionRightKeyDrag:!1,beforeTextEdit:null,isUseCustomNodeContent:!1,customCreateNodeContent:null,customInnerElsAppendTo:null,enableAutoEnterTextEditWhenKeydown:!1,autoEmptyTextWhenKeydownEnterEdit:!1,customHandleClipboardText:null,disableMouseWheelZoom:!1,errorHandler:(i,e)=>{console.error(i,e)},enableDblclickBackToRootNode:!1,hoverRectColor:"rgb(94, 200, 248)",hoverRectPadding:2,selectTextOnEnterEditText:!1,deleteNodeActive:!0,fit:!1,tagsColorMap:{},cooperateStyle:{avatarSize:22,fontSize:12},onlyOneEnableActiveNodeOnCooperate:!1,defaultGeneralizationText:"\u6982\u8981",handleIsSplitByWrapOnPasteCreateNewNode:null,addHistoryTime:100,isDisableDrag:!1,createNewNodeBehavior:k.CREATE_NEW_NODE_BEHAVIOR.DEFAULT,defaultNodeImage:"",isLimitMindMapInCanvas:!1,handleNodePasteImg:null,customCreateNodePath:null,customCreateNodePolygon:null,customTransformNodeLinePath:null,beforeShortcutRun:null,resetScaleOnMoveNodeToCenter:!1,createNodePrefixContent:null,createNodePostfixContent:null,disabledClipboard:!1,customHyperlinkJump:null,openPerformance:!1,performanceConfig:{time:250,padding:100,removeNodeWhenOutCanvas:!0},emptyTextMeasureHeightText:"abc123\u6211\u548C\u4F60",openRealtimeRenderOnNodeTextEdit:!1,mousedownEventPreventDefault:!1,onlyPasteTextWhenHasImgAndText:!0,enableDragModifyNodeWidth:!0,minNodeTextModifyWidth:20,maxNodeTextModifyWidth:-1,customHandleLine:null,addHistoryOnInit:!0,noteIcon:{icon:"",style:{}},hyperlinkIcon:{icon:"",style:{}},attachmentIcon:{icon:"",style:{}},isShowCreateChildBtnIcon:!0,quickCreateChildBtnIcon:{icon:"",style:{}},customQuickCreateChildBtnClick:null,addCustomContentToNode:null,enableInheritAncestorLineStyle:!0,selectTranslateStep:3,selectTranslateLimit:20,enableFreeDrag:!1,autoMoveWhenMouseInEdgeOnDrag:!0,dragMultiNodeRectConfig:{width:40,height:20,fill:"rgb(94, 200, 248)"},dragPlaceholderRectFill:"rgb(94, 200, 248)",dragPlaceholderLineConfig:{color:"rgb(94, 200, 248)",width:2},dragOpacityConfig:{cloneNodeOpacity:.5,beingDragNodeOpacity:.3},handleDragCloneNode:null,beforeDragEnd:null,beforeDragStart:null,watermarkConfig:{onlyExport:!1,text:"",lineSpacing:100,textSpacing:100,angle:30,textStyle:{color:"#999",opacity:.5,fontSize:14},belowNode:!1},exportPaddingX:10,exportPaddingY:10,resetCss:` * { margin: 0; padding: 0; box-sizing: border-box; } - `,minExportImgCanvasScale:2,addContentToHeader:null,addContentToFooter:null,handleBeingExportSvg:null,maxCanvasSize:16384,defaultAssociativeLineText:"\u5173\u8054",associativeLineIsAlwaysAboveNode:!0,associativeLineInitPointsPosition:{from:"",to:""},enableAdjustAssociativeLinePoints:!0,beforeAssociativeLineConnection:null,disableTouchZoom:!1,minTouchZoomScale:20,maxTouchZoomScale:-1,isLimitMindMapInCanvasWhenHasScrollbar:!0,isOnlySearchCurrentRenderNodes:!1,beforeCooperateUpdate:null,rainbowLinesConfig:{open:!1,colorsList:[]},demonstrateConfig:null,enableEditFormulaInRichTextEdit:!0,katexFontPath:"https://unpkg.com/katex@0.16.11/dist/",getKatexOutputType:null,transformRichTextOnEnterEdit:null,beforeHideRichTextEdit:null,outerFramePaddingX:10,outerFramePaddingY:10,defaultOuterFrameText:"\u5916\u6846",onlyPainterNodeCustomStyles:!1,beforeDeleteNodeImg:null,imgResizeBtnSize:25,minImgResizeWidth:50,minImgResizeHeight:50,maxImgResizeWidthInheritTheme:!1,maxImgResizeWidth:1/0,maxImgResizeHeight:1/0,customDeleteBtnInnerHTML:"",customResizeBtnInnerHTML:""}});var Tv={};ti(Tv,{default:()=>SO});var km,bt,Cm,SO,Nv=M(()=>{jx();Xx();uv();km=ot(Wl());fv();s0();pv();yv();wv();Oe();ht();he();io();Mv();bt=class i{constructor(e={}){if(i.instanceCount++,this.opt=this.handleOpt((0,km.default)(Am,e)),this.opt.data=this.handleData(this.opt.data),this.el=this.opt.el,!this.el)throw new Error("\u7F3A\u5C11\u5BB9\u5668\u5143\u7D20el");this.getElRectInfo(),this.initWidth=this.width,this.initHeight=this.height,this.cssEl=null,this.cssTextMap={},this.nodeInnerPrefixList=[],this.nodeInnerPostfixList=[],this.editNodeClassList=[],this.extendShapeList=[],this.initContainer(),this.initTheme(),this.initCache(),i.pluginList.filter(t=>t.preload).forEach(t=>{this.initPlugin(t)}),this.event=new Vx({mindMap:this}),this.keyCommand=new zl({mindMap:this}),this.command=new vv({mindMap:this}),this.renderer=new cv({mindMap:this}),this.view=new $x({mindMap:this}),this.batchExecution=new bv,i.pluginList.filter(t=>!t.preload).forEach(t=>{this.initPlugin(t)}),this.addCss(),this.render(this.opt.fit?()=>this.view.fit():()=>{}),this.opt.addHistoryOnInit&&this.opt.data&&this.command.addHistory()}handleOpt(e){return Ud.includes(e.layout)||(e.layout=A.LAYOUT.LOGICAL_STRUCTURE),e.theme=e.theme&&Nn[e.theme]?e.theme:"default",e}handleData(e){return Bt(e)||Object.keys(e).length<=0?null:(e=Ft(e||{}),e.data&&!e.data.expand&&(e.data.expand=!0),qn([e],!1,null,!0),e)}initContainer(){let{associativeLineIsAlwaysAboveNode:e}=this.opt;this.el.classList.add("smm-mind-map-container");let t=()=>{this.associativeLineDraw=this.draw.group(),this.associativeLineDraw.addClass("smm-associative-line-container")};this.svg=Me().addTo(this.el).size(this.width,this.height),this.draw=this.svg.group(),this.draw.addClass("smm-container"),this.lineDraw=this.draw.group(),this.lineDraw.addClass("smm-line-container"),e||t(),this.nodeDraw=this.draw.group(),this.nodeDraw.addClass("smm-node-container"),e&&t(),this.otherDraw=this.draw.group(),this.otherDraw.addClass("smm-other-container")}clearDraw(){this.lineDraw.clear(),this.associativeLineDraw.clear(),this.nodeDraw.clear(),this.otherDraw.clear()}appendCss(e,t){this.cssTextMap[e]=t,this.removeCss(),this.addCss()}removeAppendCss(e){this.cssTextMap[e]&&(delete this.cssTextMap[e],this.removeCss(),this.addCss())}joinCss(){return Km+Object.keys(this.cssTextMap).map(e=>this.cssTextMap[e]).join(` -`)}addCss(){this.cssEl=document.createElement("style"),this.cssEl.type="text/css",this.cssEl.innerHTML=this.joinCss(),document.head.appendChild(this.cssEl)}removeCss(){this.cssEl&&document.head.removeChild(this.cssEl)}checkEditNodeClassIndex(e){return this.editNodeClassList.findIndex(t=>t===e)}addEditNodeClass(e){this.checkEditNodeClassIndex(e)===-1&&this.editNodeClassList.push(e)}deleteEditNodeClass(e){let t=this.checkEditNodeClassIndex(e);t!==-1&&this.editNodeClassList.splice(t,1)}render(e,t=""){this.initTheme(),this.renderer.render(e,t)}reRender(e,t=""){this.renderer.reRender=!0,this.renderer.clearCache(),this.clearDraw(),this.render(e,t)}getElRectInfo(){if(this.elRect=this.el.getBoundingClientRect(),this.width=this.elRect.width,this.height=this.elRect.height,this.width<=0||this.height<=0)throw new Error("\u5BB9\u5668\u5143\u7D20el\u7684\u5BBD\u9AD8\u4E0D\u80FD\u4E3A0")}resize(){let e=this.width,t=this.height;this.getElRectInfo(),this.svg.size(this.width,this.height),(e!==this.width||t!==this.height)&&(this.demonstrate?this.demonstrate.isInDemonstrate||this.render():this.render()),this.emit("resize")}on(e,t){this.event.on(e,t)}emit(e,...t){this.event.emit(e,...t)}off(e,t){this.event.off(e,t)}initCache(){this.commonCaches={measureCustomNodeContentSizeEl:null,measureRichtextNodeTextSizeEl:null}}initTheme(){this.themeConfig=bc(Nn[this.opt.theme]||Nn.default,this.opt.themeConfig),lo.setBackgroundStyle(this.el,this.themeConfig)}setTheme(e,t=!1){this.execCommand("CLEAR_ACTIVE_NODE"),this.opt.theme=e,t||this.render(null,A.CHANGE_THEME),this.emit("view_theme_change",e)}getTheme(){return this.opt.theme}setThemeConfig(e,t=!1){let r=Gp(this.themeConfig,e);if(this.opt.themeConfig=e,!t){let n=Ip(r);this.render(null,n?"":A.CHANGE_THEME)}}getCustomThemeConfig(){return this.opt.themeConfig}getThemeConfig(e){return e===void 0?this.themeConfig:this.themeConfig[e]}getConfig(e){return e===void 0?this.opt:this.opt[e]}updateConfig(e={}){this.emit("before_update_config",this.opt);let t={...this.opt};this.opt=this.handleOpt(km.default.all([Am,this.opt,e])),this.emit("after_update_config",this.opt,t)}getLayout(){return this.opt.layout}setLayout(e,t=!1){Ud.includes(e)||(e=A.LAYOUT.LOGICAL_STRUCTURE),this.opt.layout=e,this.view.reset(),this.renderer.setLayout(),t||this.render(null,A.CHANGE_LAYOUT),this.emit("layout_change",e)}execCommand(...e){this.command.exec(...e)}updateData(e){e=this.handleData(e),this.emit("before_update_data",e),this.renderer.setData(e),this.render(),this.command.addHistory(),this.emit("update_data",e)}setData(e){e=this.handleData(e),this.emit("before_set_data",e),this.opt.data=e,this.execCommand("CLEAR_ACTIVE_NODE"),this.command.clearHistory(),this.command.addHistory(),this.renderer.setData(e),this.reRender(),this.emit("set_data",e)}setFullData(e){e.root&&this.setData(e.root),e.layout&&this.setLayout(e.layout),e.theme&&(e.theme.template&&this.setTheme(e.theme.template),e.theme.config&&this.setThemeConfig(e.theme.config)),e.view&&this.view.setTransformData(e.view)}getData(e){let t=this.command.getCopyData(),r={};return e?r={layout:this.getLayout(),root:t,theme:{template:this.getTheme(),config:this.getCustomThemeConfig()},view:this.view.getTransformData()}:r=t,Ft(r)}async export(...e){try{if(!this.doExport)throw new Error("\u8BF7\u6CE8\u518CExport\u63D2\u4EF6\uFF01");return await this.doExport.export(...e)}catch(t){this.opt.errorHandler(di.EXPORT_ERROR,t)}}toPos(e,t){return{x:e-this.elRect.left,y:t-this.elRect.top}}setMode(e){if(![A.MODE.READONLY,A.MODE.EDIT].includes(e))return;let t=e===A.MODE.READONLY;t!==this.opt.readonly&&(t&&(this.renderer.textEdit.isShowTextEdit()&&(this.renderer.textEdit.hideEditTextBox(),this.command.originAddHistory()),this.execCommand("CLEAR_ACTIVE_NODE")),this.opt.readonly=t,!t&&this.command.history.length<=0&&this.command.originAddHistory(),this.emit("mode_change",e))}getSvgData({paddingX:e=0,paddingY:t=0,ignoreWatermark:r=!1,addContentToHeader:n,addContentToFooter:s,node:a}={}){let{watermarkConfig:o,openPerformance:l}=this.opt;l&&this.renderer.forceLoadNode(a);let{cssTextList:h,header:d,headerHeight:c,footer:f,footerHeight:m}=t3({addContentToHeader:n,addContentToFooter:s}),g=this.svg,x=this.draw,v=g.width(),b=g.height(),E=x.transform(),S=this.elRect;x.scale(1/E.scaleX,1/E.scaleY);let C=x.rbox(),_=null;a&&(_=yc(a,C.x,C.y,e,t));let I=0;C.width+=e*2,C.height+=t*2+I+c+m,x.translate(e,t),g.size(C.width,C.height),x.translate(-C.x+S.left,-C.y+S.top);let O=g.clone(),D=this.watermark&&this.watermark.hasWatermark();if(!r&&D){this.watermark.isInExport=!0;let{onlyExport:Z}=o;C.width>v||C.height>b?(this.width=C.width,this.height=C.height,this.watermark.onResize(),O=g.clone(),this.width=v,this.height=b,this.watermark.onResize()):Z&&(this.watermark.onResize(),O=g.clone()),Z&&this.watermark.clear(),this.watermark.isInExport=!1}[this.joinCss(),...h].forEach(Z=>{O.add(Me(``))}),d&&c>0&&(O.findOne(".smm-container").translate(0,c),d.width(C.width),d.y(t),O.add(d,0)),f&&m>0&&(f.width(C.width),f.y(C.height-t-m),O.add(f));let $=g.find("defs"),F=O.find("defs");return $.forEach((Z,re)=>{let ye=F[re];if(!ye)return;let G=Z.children(),W=ye.children();for(let ee=0;eer.name===e.name)||this.extendShapeList.push(e)}removeShape(e){let t=this.extendShapeList.findIndex(r=>r.name===e);t!==-1&&this.extendShapeList.splice(t,1)}getSvgObjects(){return{SVG:Me,G:Ne,Rect:Pe}}addPlugin(e,t){i.hasPlugin(e)===-1&&i.usePlugin(e,t),this.initPlugin(e)}removePlugin(e){let t=i.hasPlugin(e);t!==-1&&(i.pluginList.splice(t,1),this[e.instanceName]&&(this[e.instanceName].beforePluginRemove&&this[e.instanceName].beforePluginRemove(),delete this[e.instanceName]))}initPlugin(e){this[e.instanceName]||(this[e.instanceName]=new e({mindMap:this,pluginOpt:e.pluginOpt}))}destroy(){this.emit("beforeDestroy"),this.renderer.textEdit.hideEditTextBox(),this.renderer.textEdit.removeTextEditEl(),[...i.pluginList].forEach(e=>{this[e.instanceName]&&this[e.instanceName].beforePluginDestroy&&this[e.instanceName].beforePluginDestroy(),this[e.instanceName]=null}),this.event.unbind(),this.svg.remove(),lo.removeBackgroundStyle(this.el),this.el.classList.remove("smm-mind-map-container"),this.el.innerHTML="",this.el=null,this.removeCss(),i.instanceCount--}},Cm=[];bt.extendNodeDataNoStylePropList=(i=[])=>{Cm.push(...i),us.push(...i)};bt.resetNodeDataNoStylePropList=()=>{Cm.forEach(i=>{let e=us.findIndex(t=>t===i);e!==-1&&us.splice(e,1)}),Cm=[]};bt.pluginList=[];bt.usePlugin=(i,e={})=>(bt.hasPlugin(i)!==-1||(i.pluginOpt=e,bt.pluginList.push(i)),bt);bt.hasPlugin=i=>bt.pluginList.findIndex(e=>e===i);bt.instanceCount=0;bt.defineTheme=(i,e={})=>{if(Nn[i])return new Error("\u8BE5\u4E3B\u9898\u540D\u79F0\u5DF2\u5B58\u5728");Nn[i]=bc(Vl,e)};bt.removeTheme=i=>{Nn[i]&&(Nn[i]=null)};SO=bt});var Od=globalThis.__LEPTOS_TIPTAP_BRIDGE__;if(Od==null||Od.modules==null)throw new Error("leptos-tiptap bridge bindings are unavailable");var H=Od.modules["@tiptap/core"];if(H==null)throw new Error('leptos-tiptap bridge module "@tiptap/core" is unavailable');var cB=H.CommandManager,uB=H.Editor,fB=H.Extension,mB=H.InputRule,pB=H.Mark,Pm=H.Node,gB=H.NodePos,xB=H.NodeView,vB=H.PasteRule,yB=H.Tracker,bB=H.callOrReturn,wB=H.canInsertNode,MB=H.combineTransactionSteps,TB=H.createChainableState,NB=H.createDocument,EB=H.createNodeFromContent,SB=H.createStyleTag,AB=H.defaultBlockAt,kB=H.deleteProps,CB=H.elementFromString,_B=H.escapeForRegEx,LB=H.extensions,zB=H.findChildren,IB=H.findChildrenInRange,RB=H.findDuplicates,DB=H.findParentNode,OB=H.findParentNodeClosestToPos,BB=H.fromString,PB=H.generateHTML,FB=H.generateJSON,qB=H.generateText,HB=H.getAttributes,UB=H.getAttributesFromExtensions,$B=H.getChangedRanges,jB=H.getDebugJSON,GB=H.getExtensionField,YB=H.getHTMLFromFragment,WB=H.getMarkAttributes,VB=H.getMarkRange,XB=H.getMarkType,KB=H.getMarksBetween,ZB=H.getNodeAtPosition,QB=H.getNodeAttributes,JB=H.getNodeType,eP=H.getRenderedAttributes,tP=H.getSchema,iP=H.getSchemaByResolvedExtensions,rP=H.getSchemaTypeByName,nP=H.getSchemaTypeNameByName,sP=H.getSplittedAttributes,aP=H.getText,oP=H.getTextBetween,lP=H.getTextContentFromNodes,hP=H.getTextSerializersFromSchema,dP=H.injectExtensionAttributesToParseRule,cP=H.inputRulesPlugin,uP=H.isActive,fP=H.isAtEndOfNode,mP=H.isAtStartOfNode,pP=H.isEmptyObject,gP=H.isExtensionRulesEnabled,xP=H.isFunction,vP=H.isList,yP=H.isMacOS,bP=H.isMarkActive,wP=H.isNodeActive,MP=H.isNodeEmpty,TP=H.isNodeSelection,NP=H.isNumber,EP=H.isPlainObject,SP=H.isRegExp,AP=H.isSafari,kP=H.isString,CP=H.isTextSelection,_P=H.isiOS,LP=H.markInputRule,zP=H.markPasteRule,Fm=H.mergeAttributes,IP=H.mergeDeep,RP=H.minMax,DP=H.nodeInputRule,OP=H.nodePasteRule,BP=H.objectIncludes,PP=H.pasteRulesPlugin,FP=H.posToDOMRect,qP=H.removeDuplicates,HP=H.resolveFocusPosition,UP=H.rewriteUnknownContent,$P=H.selectionToInsertionEnd,jP=H.splitExtensions,GP=H.textInputRule,YP=H.textPasteRule,WP=H.textblockTypeInputRule,VP=H.wrappingInputRule;var qm=Pm.create({name:"paragraph",priority:1e3,addOptions(){return{HTMLAttributes:{}}},group:"block",content:"inline*",parseHTML(){return[{tag:"p"}]},renderHTML({HTMLAttributes:i}){return["p",Fm(this.options.HTMLAttributes,i),0]},addCommands(){return{setParagraph:()=>({commands:i})=>i.setNode(this.name)}},addKeyboardShortcuts(){return{"Mod-Alt-0":()=>this.editor.commands.setParagraph()}}});var Hm="__LEPTOS_TIPTAP_BRIDGE__";function Zv(){let i=globalThis,e=i[Hm];if(e!=null)return e;let t={modules:{},registerExtension:()=>{throw new Error("leptos-tiptap bridge runtime is not initialized")}};return i[Hm]=t,t}function Um(){return Zv()}function $m(i){Um().registerExtension(i)}var Ra={data:{text:"\u4E2D\u5FC3\u4E3B\u9898"},children:[]},Bd=i=>typeof i=="object"&&i!==null&&!Array.isArray(i),jm=i=>{if(!i||typeof i!="object")return Ra;let e=i.root??i,t=r=>{if(!Bd(r))return;let n=Bd(r.data)?r.data:{};r.data=n;let s=n.text;n.text=typeof s=="string"?s:String(s??"");let a=n.generalization,o=l=>{if(!Bd(l))return;let h=l.text;l.text=typeof h=="string"?h:String(h??"")};Array.isArray(a)?a.forEach(o):o(a),Array.isArray(r.children)&&r.children.forEach(t)};return t(e),i},wt=i=>{let e=jm(i)??Ra,t=e&&typeof e=="object"&&"root"in e?e.root:e;return jm(t)??Ra};var AO=["Drag","KeyboardNavigation","Export","Select","AssociativeLine","Search","OuterFrame"],kO=["Scrollbar","MiniMap","Painter","Formula"],CO=["data_change","view_data_change","node_active","back_forward","scale","translate"],_O=new Set(["BACK","FORWARD","INSERT_NODE","INSERT_CHILD_NODE","REMOVE_NODE","DELETE_NODE","ADD_GENERALIZATION","ADD_OUTER_FRAME","SET_NOTATION"]),Il=i=>typeof i=="object"&&i!==null&&!Array.isArray(i),Ev=(i,e)=>{if(typeof i=="string"&&i.trim())return i.trim();if(Il(i)){let t=i.template;if(typeof t=="string"&&t.trim())return t.trim()}return e},_m=i=>Il(i)?i:{},LO=i=>!Il(i)||!Il(i.state)?null:{...i,state:i.state,transform:Il(i.transform)?i.transform:{}},zO=i=>{let e=wt(i.projection.root??Ra),t=_m(i.projection.config),r=_m(i.runtimeOptions);return{...t,...r,el:i.el,data:e,fit:typeof r.fit=="boolean"?r.fit:typeof t.fit=="boolean"?t.fit:!0,layout:Ev(i.projection.layout,"logicalStructure"),theme:Ev(i.projection.theme,"classic"),themeConfig:_m(i.projection.themeConfig),viewData:LO(i.projection.view),initRootNodePosition:["center","center"]}},IO={Drag:()=>Promise.resolve().then(()=>(b3(),y3)),KeyboardNavigation:()=>Promise.resolve().then(()=>(M3(),w3)),Export:()=>Promise.resolve().then(()=>(L3(),_3)),Select:()=>Promise.resolve().then(()=>(I3(),z3)),AssociativeLine:()=>Promise.resolve().then(()=>(H3(),q3)),Search:()=>Promise.resolve().then(()=>($3(),U3)),OuterFrame:()=>Promise.resolve().then(()=>(X3(),V3)),Scrollbar:()=>Promise.resolve().then(()=>(Z3(),K3)),MiniMap:()=>Promise.resolve().then(()=>(J3(),Q3)),Painter:()=>Promise.resolve().then(()=>(t2(),e2)),Formula:()=>Promise.resolve().then(()=>(Ux(),Hx))},RO=()=>[...AO,...kO],DO=async(i=RO())=>{if(typeof window>"u"||typeof document>"u")throw new Error("simple_mind_map_browser_required");let[{default:e},t]=await Promise.all([Promise.resolve().then(()=>(Nv(),Tv)),Promise.all(i.map(async s=>[s,(await IO[s]()).default]))]),r=e,n=[];return t.forEach(([s,a])=>{if(!a||typeof r.usePlugin!="function")return;typeof r.hasPlugin=="function"&&r.hasPlugin(a)!==-1||r.usePlugin(a),n.push(s)}),{MindMap:r,registeredPlugins:n}},OO=i=>(e,...t)=>{if(!_O.has(e))return{ok:!1,command:e,error:"unsupported_command"};if(typeof i.execCommand!="function")return{ok:!1,command:e,error:"runtime_unavailable"};try{return{ok:!0,command:e,result:i.execCommand(e,...t)}}catch{return{ok:!1,command:e,error:"command_failed"}}},BO=i=>{let e=[];return CO.forEach(t=>{let r=(...n)=>{let s=t==="data_change"||t==="view_data_change"?i.instance.getData?.(!0)??i.instance.getData?.():void 0;i.onEvent?.({type:t,args:n,snapshot:s,kernelRevision:i.projection.kernelRevision})};i.instance.on?.(t,r),e.push(()=>i.instance.off?.(t,r))}),()=>e.splice(0).forEach(t=>t())},Sv=async i=>{let e=await DO(i.pluginNames),t=zO({el:i.el,projection:i.projection,runtimeOptions:i.runtimeOptions}),r=new e.MindMap(t);i.mode&&r.setMode?.(i.mode);let n=BO({instance:r,projection:i.projection,onEvent:i.onEvent}),s=OO(r);return{instance:r,execCommand:s,getSnapshot:()=>r.getData?.(!0)??r.getData?.(),destroy:()=>{n(),r.destroy?.()}}};var Rd=class extends Error{constructor(e,t=null){super(e),this.name="MindmapCommandBridgeError",this.code="command_failed",this.status=t}},Rl=i=>typeof i=="object"&&i!==null&&!Array.isArray(i),Av=i=>Rl(i)?i.schema==="mnote.mindmap.simple_mind_map_scene.v1"&&i.runtime==="simple-mind-map"&&"root"in i&&typeof i.kernelRevision=="number":!1,PO=(i,e)=>{let t=encodeURIComponent(i),r=encodeURIComponent(e);return`/api/mindmap/${t}/${r}?view=simple_mind_map_scene&queryName=mindmap.simple_mind_map_scene.get`},FO=(i,e)=>{let t=encodeURIComponent(i),r=encodeURIComponent(e);return`/api/mindmap/${t}/${r}`},Lm=async i=>{let e=i.fetcher??fetch,t=i.endpoint??PO(i.documentId,i.mindmapId),r=await e(t,{headers:{Accept:"application/json"}});if(!r.ok)throw new Error(`projection_load_failed:${r.status}`);let n=await r.json(),s=Rl(n)&&"result"in n?n.result:n;if(!Av(s))throw new Error("projection_load_failed:invalid_adapter_projection");return s},qO=i=>{if(!Rl(i))return null;let e=[i.kernelRevision,i.projectionRevision,Rl(i.result)?i.result.kernelRevision:null,Rl(i.result)?i.result.projectionRevision:null];for(let t of e)if(typeof t=="number"&&Number.isFinite(t))return t;return null},zm=async i=>{if(i.commands.length===0)throw new Rd("command_failed:empty_commands");let e=i.fetcher??fetch,t=i.endpoint??FO(i.documentId,i.mindmapId),r=await e(t,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify({commandName:"mindmap.command.apply",documentId:i.documentId,mindmapId:i.mindmapId,commands:i.commands,projectionRevision:i.projectionRevision??null})}),n=await r.json().catch(()=>null);if(!r.ok)throw new Rd(`command_failed:${r.status}`,r.status);return{ok:!0,kernelRevision:qO(n),raw:n}},kv=async i=>(await zm(i),Lm({documentId:i.documentId,mindmapId:i.mindmapId,endpoint:i.projectionEndpoint,fetcher:i.fetcher})),Cv=async i=>{if(!Av(i.projection))throw new Error("adapter_init_failed:invalid_projection");return Sv(i)};var _v=i=>({text:i?.text?.trim()||"\u65B0\u8282\u70B9",...i?.uid?{uid:i.uid}:{},...i?.hyperlink?{hyperlink:i.hyperlink}:{},...i?.note?{note:i.note}:{},...i?.refs?{refs:i.refs}:{}}),Rv=i=>{let e=i.activeNodeId?.trim();switch(i.runtimeCommand){case"INSERT_CHILD_NODE":return e?{type:"insertChild",mindmapId:i.mindmapId,parentNodeId:e,node:_v(i.newNode)}:null;case"INSERT_NODE":return e?{type:"insertSiblingAfter",mindmapId:i.mindmapId,targetNodeId:e,node:_v(i.newNode)}:null;case"REMOVE_NODE":case"DELETE_NODE":return e?{type:"deleteNode",mindmapId:i.mindmapId,nodeId:e}:null;case"ADD_GENERALIZATION":return{type:"compatPayloadPatch",mindmapId:i.mindmapId,path:"root.data.generalization",value:{text:"\u6982\u8981"},source:"toolbar"};case"ADD_OUTER_FRAME":return{type:"compatPayloadPatch",mindmapId:i.mindmapId,path:"outerFrame",value:{enabled:!0,activeNodeId:e},source:"toolbar"};default:return null}},Dv=(i,e)=>({type:"patchView",mindmapId:i,patch:e}),Ov=(i,e,t)=>({type:"setTheme",mindmapId:i,theme:e,themeConfig:t}),Bv=(i,e)=>({type:"setLayout",mindmapId:i,layout:e}),Dl=i=>({type:"compatPayloadPatch",mindmapId:i.mindmapId,path:i.path,value:i.value,source:i.source,...i.actionId?{actionId:i.actionId}:{},...typeof i.runtimeRevision=="number"?{runtimeRevision:i.runtimeRevision}:{},...typeof i.kernelRevision=="number"?{kernelRevision:i.kernelRevision}:{}}),HO=i=>typeof i=="object"&&i!==null&&!Array.isArray(i),UO=(i,e)=>{let t=i.data?.uid;return typeof t=="string"&&t.trim()?t.trim():e},$O=i=>{let e=i.data?.text;return typeof e=="string"?e:String(e??"")},Lv=i=>{let e=wt(i),t=new Map,r=(n,s,a,o)=>{let l=UO(n,o),h=HO(n.data)?n.data:{};t.set(l,{uid:l,parentUid:s,order:a,text:$O(n),data:h,node:n}),(Array.isArray(n.children)?n.children:[]).forEach((c,f)=>{r(wt(c),l,f,`${o}.${f}`)})};return r(e,null,0,"root"),t},zv=i=>JSON.stringify(i??null),Iv=i=>({uid:i.uid,text:i.text||"\u65B0\u8282\u70B9",...typeof i.data.hyperlink=="string"?{hyperlink:i.data.hyperlink}:{},...typeof i.data.note=="string"?{note:i.data.note}:{},...Array.isArray(i.data.refs)?{refs:i.data.refs}:{}}),jO=(i,e,t,r)=>{let n=new Set(["uid","text","refs"]);new Set([...Object.keys(e.data),...Object.keys(t.data)]).forEach(a=>{n.has(a)||zv(e.data[a])!==zv(t.data[a])&&r.push(Dl({mindmapId:i,path:`nodes.${t.uid}.data.${a}`,value:t.data[a],source:"adapter-diff"}))})},Pv=i=>{let e=Lv(i.previous),t=Lv(i.next),r=[],n=[];return t.forEach((s,a)=>{let o=e.get(a);if(!o){let l=Array.from(t.values()).find(h=>h.parentUid===s.parentUid&&h.order===s.order-1&&e.has(h.uid));l?r.push({type:"insertSiblingAfter",mindmapId:i.mindmapId,targetNodeId:l.uid,node:Iv(s)}):s.parentUid&&r.push({type:"insertChild",mindmapId:i.mindmapId,parentNodeId:s.parentUid,node:Iv(s)});return}o.text!==s.text&&r.push({type:"updateText",mindmapId:i.mindmapId,nodeId:a,text:s.text}),(o.parentUid!==s.parentUid||o.order!==s.order)&&r.push({type:"moveNode",mindmapId:i.mindmapId,nodeId:a,newParentNodeId:s.parentUid??"",order:s.order}),jO(i.mindmapId,o,s,n)}),e.forEach((s,a)=>{!t.has(a)&&s.parentUid&&r.push({type:"deleteNode",mindmapId:i.mindmapId,nodeId:a})}),{commands:r,compatPatches:n}};var ls=i=>e=>e?`nodes.${e}.data.${i}`:null,Fv=[{actionId:"undo",target:"runtimeCommand",runtimeCommand:"BACK",requiresActiveNode:!1,readonlyAllowed:!1},{actionId:"redo",target:"runtimeCommand",runtimeCommand:"FORWARD",requiresActiveNode:!1,readonlyAllowed:!1},{actionId:"editNode",target:"kernelCommand",requiresActiveNode:!0,readonlyAllowed:!1},{actionId:"insertSiblingAfter",target:"runtimeCommand",runtimeCommand:"INSERT_NODE",requiresActiveNode:!0,readonlyAllowed:!1},{actionId:"insertChild",target:"runtimeCommand",runtimeCommand:"INSERT_CHILD_NODE",requiresActiveNode:!0,readonlyAllowed:!1},{actionId:"deleteNode",target:"runtimeCommand",runtimeCommand:"DELETE_NODE",requiresActiveNode:!0,readonlyAllowed:!1},{actionId:"summary",target:"compatPatch",runtimeCommand:"ADD_GENERALIZATION",requiresActiveNode:!0,readonlyAllowed:!1},{actionId:"associativeLine",target:"compatPatch",runtimeCommand:"ADD_ASSOCIATIVE_LINE",requiresActiveNode:!0,readonlyAllowed:!1},{actionId:"setTheme",target:"kernelCommand",requiresActiveNode:!1,readonlyAllowed:!1},{actionId:"setLayout",target:"kernelCommand",requiresActiveNode:!1,readonlyAllowed:!1},{actionId:"tag",target:"compatPatch",requiresActiveNode:!0,readonlyAllowed:!1,compatPath:ls("tag")},{actionId:"hyperlink",target:"compatPatch",requiresActiveNode:!0,readonlyAllowed:!1,compatPath:ls("hyperlink")},{actionId:"note",target:"compatPatch",requiresActiveNode:!0,readonlyAllowed:!1,compatPath:ls("note")},{actionId:"image",target:"compatPatch",requiresActiveNode:!0,readonlyAllowed:!1,compatPath:ls("image")},{actionId:"icon",target:"compatPatch",requiresActiveNode:!0,readonlyAllowed:!1,compatPath:ls("icon")},{actionId:"formula",target:"compatPatch",requiresActiveNode:!0,readonlyAllowed:!1,compatPath:ls("formula")},{actionId:"painter",target:"compatPatch",requiresActiveNode:!0,readonlyAllowed:!1,compatPath:ls("style")},{actionId:"import",target:"compatPatch",requiresActiveNode:!1,readonlyAllowed:!1,compatPath:()=>"import"},{actionId:"export",target:"runtimeCommand",runtimeCommand:"EXPORT",requiresActiveNode:!1,readonlyAllowed:!0},{actionId:"centerRoot",target:"localView",runtimeMethod:"centerRoot",requiresActiveNode:!1,readonlyAllowed:!0},{actionId:"zoomIn",target:"localView",runtimeMethod:"zoomIn",requiresActiveNode:!1,readonlyAllowed:!0},{actionId:"zoomOut",target:"localView",runtimeMethod:"zoomOut",requiresActiveNode:!1,readonlyAllowed:!0},{actionId:"fitView",target:"localView",runtimeMethod:"fitView",requiresActiveNode:!1,readonlyAllowed:!0},{actionId:"search",target:"localView",requiresActiveNode:!1,readonlyAllowed:!0},{actionId:"expandCollapse",target:"localView",requiresActiveNode:!0,readonlyAllowed:!1},{actionId:"copyNodeText",target:"localView",requiresActiveNode:!0,readonlyAllowed:!0},{actionId:"readonly",target:"localView",requiresActiveNode:!1,readonlyAllowed:!0}],qv=()=>Fv,Ol=i=>Fv.find(e=>e.actionId===i)??null,GO=i=>{let e=i?.trim();return e||null},Hv=i=>{let e=Ol(i.actionId);if(!e)return null;let t=GO(i.activeNodeId);if(e.requiresActiveNode&&!t)return null;if(i.actionId==="setTheme")return{command:Ov(i.mindmapId,i.value,i.themeConfig)};if(i.actionId==="setLayout")return{command:Bv(i.mindmapId,i.value)};if(i.actionId==="editNode")return{command:{type:"updateText",mindmapId:i.mindmapId,nodeId:t??"root",text:typeof i.value=="string"?i.value:""}};if(e.runtimeCommand&&["INSERT_CHILD_NODE","INSERT_NODE","DELETE_NODE","REMOVE_NODE"].includes(e.runtimeCommand)){let r=Rv({mindmapId:i.mindmapId,runtimeCommand:e.runtimeCommand,activeNodeId:t,newNode:i.node});return r?{runtimeCommand:e.runtimeCommand,command:r}:{runtimeCommand:e.runtimeCommand}}if(e.compatPath){let r=e.compatPath(t);return r?{command:Dl({mindmapId:i.mindmapId,path:r,value:i.value??!0,source:i.source??"toolbar",actionId:i.actionId,runtimeRevision:i.runtimeRevision,kernelRevision:i.kernelRevision})}:null}return e.runtimeCommand?{runtimeCommand:e.runtimeCommand}:{}};var YO="mnoteMindmapDebugChrome",Fr={toolbarGroups:[{id:"history",label:"\u5386\u53F2",actions:["undo","redo"],collapsePriority:4},{id:"node",label:"\u8282\u70B9",actions:["editNode","insertSiblingAfter","insertChild","deleteNode"],collapsePriority:1},{id:"insert",label:"\u63D2\u5165",actions:["tag","hyperlink","note","image","icon","summary","associativeLine","formula","painter","import","export"],collapsePriority:2},{id:"view",label:"\u89C6\u56FE",actions:["centerRoot","zoomOut","zoomIn","search","readonly"],collapsePriority:3}],sidebarPanels:[{id:"nodeStyle",label:"\u8282\u70B9\u6837\u5F0F",icon:"palette",runtimeCapability:"node-style",phase:1,options:[{id:"node-fill-blue",label:"\u84DD\u8272\u8282\u70B9",actionId:"painter",value:"#dbeafe",compatPath:"nodes.$active.data.fillColor"},{id:"node-round",label:"\u5706\u89D2\u8282\u70B9",actionId:"painter",value:"roundedRectangle",compatPath:"nodes.$active.data.shape"}]},{id:"baseStyle",label:"\u5BFC\u56FE\u6837\u5F0F",icon:"sliders",runtimeCapability:"base-style",phase:1,options:[{id:"base-curve-line",label:"\u66F2\u7EBF\u8FDE\u7EBF",actionId:"painter",value:"curve",compatPath:"style.map.lineStyle"},{id:"base-rainbow-lines",label:"\u5F69\u8679\u7EBF\u6761",actionId:"painter",value:{enabled:!0},compatPath:"style.map.rainbowLines"}]},{id:"theme",label:"\u4E3B\u9898",icon:"swatch",runtimeCapability:"theme",phase:1,options:[{id:"theme-classic",label:"\u9ED8\u8BA4\u4E3B\u9898",actionId:"setTheme",value:"classic"},{id:"theme-classic4",label:"KMind-like",actionId:"setTheme",value:"classic4"}]},{id:"structure",label:"\u7ED3\u6784",icon:"layout",runtimeCapability:"layout",phase:1,options:[{id:"layout-logical",label:"\u903B\u8F91\u7ED3\u6784",actionId:"setLayout",value:"logicalStructure"},{id:"layout-mind-map",label:"\u53F3\u4FA7\u7ED3\u6784",actionId:"setLayout",value:"mindMap"},{id:"layout-fishbone",label:"\u9C7C\u9AA8\u7ED3\u6784",actionId:"setLayout",value:"fishbone"}]},{id:"outline",label:"\u5927\u7EB2",icon:"list-tree",runtimeCapability:"outline",phase:1,options:[]}],navigatorItems:[{id:"stats",label:"\u7EDF\u8BA1",actionId:null,readOnly:!0,displayMode:"text"},{id:"centerRoot",label:"\u56DE\u6839\u8282\u70B9",actionId:"centerRoot",readOnly:!0,displayMode:"button"},{id:"search",label:"\u641C\u7D22",actionId:"search",readOnly:!0,displayMode:"input"},{id:"zoomOut",label:"\u7F29\u5C0F",actionId:"zoomOut",readOnly:!0,displayMode:"button"},{id:"zoom",label:"\u7F29\u653E",actionId:null,readOnly:!0,displayMode:"text"},{id:"zoomIn",label:"\u653E\u5927",actionId:"zoomIn",readOnly:!0,displayMode:"button"},{id:"readonly",label:"\u53EA\u8BFB",actionId:"readonly",readOnly:!0,displayMode:"button"}],contextMenuItems:[{id:"insertChild",label:"\u63D2\u5165\u5B50\u8282\u70B9",actionId:"insertChild",requiresNode:!0,phase:1},{id:"insertSiblingAfter",label:"\u63D2\u5165\u540C\u7EA7\u8282\u70B9",actionId:"insertSiblingAfter",requiresNode:!0,phase:1},{id:"deleteNode",label:"\u5220\u9664\u8282\u70B9",actionId:"deleteNode",requiresNode:!0,phase:1},{id:"summary",label:"\u6982\u8981",actionId:"summary",requiresNode:!0,phase:1},{id:"associativeLine",label:"\u5173\u8054\u7EBF",actionId:"associativeLine",requiresNode:!0,phase:1},{id:"expandCollapse",label:"\u5C55\u5F00/\u6536\u8D77",actionId:"expandCollapse",requiresNode:!0,phase:1},{id:"copyNodeText",label:"\u590D\u5236\u6587\u672C",actionId:"copyNodeText",requiresNode:!0,phase:1},{id:"centerRoot",label:"\u56DE\u6839\u8282\u70B9",actionId:"centerRoot",requiresNode:!1,phase:1},{id:"fitView",label:"\u9002\u5E94\u753B\u5E03",actionId:"fitView",requiresNode:!1,phase:1},{id:"search",label:"\u641C\u7D22",actionId:"search",requiresNode:!1,phase:1},{id:"readonly",label:"\u53EA\u8BFB\u5207\u6362",actionId:"readonly",requiresNode:!1,phase:1}]},Uv=i=>{try{let e=new URL(i).searchParams.get(YO);return e==="1"||e==="true"}catch{return!1}};var WO=()=>{let i=[...Fr.toolbarGroups.flatMap(e=>e.actions),...Fr.navigatorItems.flatMap(e=>e.actionId?[e.actionId]:[]),...Fr.contextMenuItems.map(e=>e.actionId),...qv().map(e=>e.actionId)];return[...new Set(i)]},VO=i=>{let e=i?.trim();return e||null},Im=i=>{let e=VO(i.activeNodeId),t=i.runtimeCapabilities?new Set(i.runtimeCapabilities):null,r={};return WO().forEach(n=>{let s=Ol(n);if(!s){r[n]=!0;return}if(s.requiresActiveNode&&!e){r[n]=!0;return}if(i.readonly&&!s.readonlyAllowed){r[n]=!0;return}if(t&&!t.has(s.target)){r[n]=!0;return}r[n]=!1}),{activeNodeId:e,readonly:i.readonly,disabledActions:r}};function XO(i){return typeof i=="string"&&i.length>0?{"data-block-id":i,id:i}:{}}function KO(i){if(i.mnoteBlockType!=="mindmap")return{};let e={"data-mnote-block-type":"mindmap"};return typeof i.mindmapId=="string"&&(e["data-mnote-mindmap-id"]=i.mindmapId),typeof i.rootNodeId=="string"&&(e["data-mnote-root-node-id"]=i.rootNodeId),typeof i.projectionVersion=="number"&&(e["data-mnote-projection-version"]=String(i.projectionVersion)),e}function hs(i){return String(i??"").replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""").replaceAll("'","'")}function Rm(){let i=window.location.pathname.match(/\/documents\/([^/?#]+)/);return i?.[1]?decodeURIComponent(i[1]):null}function $v(i,e){let r=wt(i.root).data?.uid;return typeof r=="string"&&r.trim().length>0?r.trim():e}function Dm(i){let t=wt(i.root).data?.text;return typeof t=="string"&&t.trim().length>0?t.trim():"\u672A\u547D\u540D\u8282\u70B9"}function ZO(i){if(!i||typeof i!="object")return null;let e=i;if(typeof e.uid=="string"&&e.uid.trim().length>0)return e.uid.trim();let t=e.data&&typeof e.data=="object"&&!Array.isArray(e.data)?e.data:{};if(typeof t.uid=="string"&&t.uid.trim().length>0)return t.uid.trim();let r=e.getData;if(typeof r=="function")try{let n=r.call(e,"uid");if(typeof n=="string"&&n.trim().length>0)return n.trim()}catch{return null}return null}function Om(i,e){let t=window,r=t.__MNOTE_LEPTOS_MINDMAP_BRIDGES__??{};t.__MNOTE_LEPTOS_MINDMAP_BRIDGES__=r,e?r[i]=e:delete r[i]}function ki(i){return typeof i=="object"&&i!==null&&!Array.isArray(i)}function QO(i){if(!ki(i))return null;let e=i.view;return ki(e)&&ki(e.state)?e:null}function JO(i){if(!(i!=="insertChild"&&i!=="insertSiblingAfter"))return{uid:`node_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,8)}`,text:"\u65B0\u8282\u70B9"}}function eB(i,e){let t=e?.trim();if(!t)return!1;let r=wt(i),n=!1,s=a=>{if(n)return;let o=wt(a);if(o.data?.uid===t){n=!0;return}(Array.isArray(o.children)?o.children:[]).forEach(s)};return s(r),n}function tB(i){let e=wt(i),t=Array.isArray(e.children)?[...e.children]:[];for(;t.length>0;){let r=wt(t.shift()),n=r.data?.uid;if(typeof n=="string"&&n.trim().length>0)return n.trim();Array.isArray(r.children)&&t.push(...r.children)}return null}function iB(i,e=10){let t=wt(i),r=[],n=(s,a)=>{if(r.length>=e)return;let o=wt(s),l=typeof o.data?.text=="string"&&o.data.text.trim().length>0?o.data.text.trim():"\u672A\u547D\u540D\u8282\u70B9";r.push(`${" ".repeat(Math.max(a-1,0))}${l}`),(Array.isArray(o.children)?o.children:[]).forEach(d=>n(d,a+1))};return n(t,1),r}function rB(i,e){let t=i?.trim();return t?t.includes("$active")?e?t.replaceAll("$active",e):null:t:null}var nB={undo:"\u64A4\u9500",redo:"\u91CD\u505A",editNode:"\u7F16\u8F91\u8282\u70B9",insertSiblingAfter:"\u540C\u7EA7\u8282\u70B9",insertChild:"\u5B50\u8282\u70B9",deleteNode:"\u5220\u9664",tag:"\u6807\u7B7E",hyperlink:"\u94FE\u63A5",note:"\u5907\u6CE8",image:"\u56FE\u7247",icon:"\u56FE\u6807",summary:"\u6982\u8981",associativeLine:"\u5173\u8054\u7EBF",formula:"\u516C\u5F0F",painter:"\u683C\u5F0F\u5237",import:"\u5BFC\u5165",export:"\u5BFC\u51FA",setTheme:"\u4E3B\u9898",setLayout:"\u7ED3\u6784",zoomIn:"\u653E\u5927",zoomOut:"\u7F29\u5C0F",fitView:"\u9002\u5E94",centerRoot:"\u56DE\u6839",search:"\u641C\u7D22",expandCollapse:"\u5C55\u5F00/\u6536\u8D77",copyNodeText:"\u590D\u5236\u6587\u672C",readonly:"\u53EA\u8BFB"},sB={undo:"\u21B6",redo:"\u21B7",editNode:"T",insertSiblingAfter:"\u21B5",insertChild:"+",deleteNode:"\xD7",tag:"#",hyperlink:"\u2301",note:"N",image:"\u25A1",icon:"\u2606",summary:"{",associativeLine:"\u2307",formula:"fx",painter:"\u25D0",import:"\u21E7",export:"\u21E9",centerRoot:"\u25CE",zoomOut:"-",zoomIn:"+",search:"\u2315",expandCollapse:"\u2922",copyNodeText:"C",readonly:"\u9501"};function aB(i){return({node:e,getPos:t})=>{let r=e,n=0,s=null,a=null,o=null,l=null,h=null,d=null,c=!1,f=Fr.sidebarPanels[0]?.id??"nodeStyle",m=null,g=null,x=!1,v=!1,b="canvas",E=0,S=0,C=null,_=null,I=!1,O=Uv(window.location.href),D=document.createElement("div");D.className="mnote-mindmap-placeholder",D.dataset.mnoteBlockType="mindmap",D.dataset.testid="mnote-mindmap-placeholder",D.setAttribute("contenteditable","false");let $=document.createElement("div");$.className="mnote-mindmap-editor-root",$.dataset.testid="mnote-mindmap-editor-root",$.dataset.mnoteSceneQuery="mindmap.simple_mind_map_scene.get";let F=document.createElement("div");F.dataset.testid="leptos-mindmap-island",F.dataset.runtime="simple-mind-map",F.dataset.stage="loading",F.dataset.debugChrome=O?"true":"false",F.className="mnote-leptos-mindmap-shell";let Z=document.createElement("div");Z.className="mnote-mindmap-workspace",Z.dataset.debugChrome=O?"true":"false",Z.dataset.layout=O?"debug-grid":"floating-overlay";let re=document.createElement("div");re.className="mnote-mindmap-canvas-layer",re.dataset.testid="mindmap-canvas-layer";let ye=document.createElement("div");ye.className="mnote-mindmap-overlay-layer",ye.dataset.testid="mindmap-overlay-layer";let G=document.createElement("div");G.className="mnote-leptos-mindmap-runtime",G.dataset.testid="simple-mind-map-runtime",G.dataset.runtime="simple-mind-map",G.dataset.runtimeEngine="pending";let W=document.createElement("div");W.className="mnote-mindmap-rust-shell-mount",W.dataset.testid="mindmap-rust-shell-mount",W.dataset.uiShellSource="leptos-rust-shell";let ee=document.createElement("div");ee.className="mnote-mindmap-command-toolbar",ee.dataset.testid="mindmap-command-toolbar";let ae=document.createElement("aside");ae.className="mnote-mindmap-side-panel",ae.dataset.testid="mindmap-sidebar";let at=document.createElement("div");at.className="mnote-mindmap-bottom-bar",at.dataset.testid="mindmap-bottom-bar";let nt=()=>{let z=typeof r.attrs.mindmapId=="string"&&r.attrs.mindmapId.length>0?r.attrs.mindmapId:"mindmap",V=typeof r.attrs.rootNodeId=="string"&&r.attrs.rootNodeId.length>0?r.attrs.rootNodeId:"root";return{mindmapId:z,rootNodeId:V}},hi=()=>{let{mindmapId:z,rootNodeId:V}=nt();D.dataset.mnoteMindmapId=z,D.dataset.mnoteRootNodeId=V,D.dataset.mnoteProjectionVersion=String(r.attrs.projectionVersion??1),$.dataset.mnoteMindmapId=z,$.dataset.mnoteRootNodeId=V,$.dataset.mnoteProjectionVersion=String(r.attrs.projectionVersion??1),$.dataset.mnoteSceneQuery="mindmap.simple_mind_map_scene.get"},Jt=()=>{if(!(C===null||!_)){try{_.unmount(C)}catch{}C=null,_=null,W.replaceChildren()}},It=()=>{let z=s?.getSnapshot(),V=ki(z)&&"root"in z?z.root:z??a?.root,J=0,de=0,be=Ge=>{if(!ki(Ge))return;J+=1;let Bl=ki(Ge.data)&&typeof Ge.data.text=="string"?Ge.data.text:"";de+=Bl.trim().length,(Array.isArray(Ge.children)?Ge.children:[]).forEach(be)};be(V);let ge=a?.view,et=ki(z)&&ki(z.view)&&ki(z.view.state)&&typeof z.view.state.scale=="number"?z.view.state.scale:ki(ge)&&ki(ge.state)&&typeof ge.state.scale=="number"?ge.state.scale:1;return{nodeCount:J,wordCount:de,zoomPercent:Math.round(et*100)}},Sn=()=>{let z=s?.getSnapshot(),V=ki(z)&&"root"in z?z.root:z??a?.root;return iB(V)},Ca=()=>{let z=window.__MNOTE_MINDMAP_RUST_SHELL__;if(!z){Jt(),F.dataset.uiShell="typescript-nodeview-dom",W.dataset.uiShellSource="missing-rust-shell",W.innerHTML='
    Leptos/Rust mindmap shell \u672A\u52A0\u8F7D
    ';return}let V=Im({activeNodeId:l,readonly:c,runtimeCapabilities:["runtimeCommand","kernelCommand","compatPatch","localView"]}),{mindmapId:J}=nt(),de=It(),be={mindmapId:J,toolbarGroups:Fr.toolbarGroups.map(ge=>({id:ge.id,label:ge.label,actions:ge.actions.map(et=>{let Ge=nB[et]??et;return{id:et,label:Ge,icon:sB[et]??Ge.slice(0,1),disabled:V.disabledActions[et]??!0}})})),sidebarPanels:Fr.sidebarPanels.map(ge=>({id:ge.id,label:ge.label,icon:ge.icon,active:ge.id===f,bodyTitle:ge.label,bodyCaption:ge.runtimeCapability,options:ge.options.map(et=>({id:et.id,label:et.label,actionId:et.actionId,value:et.value,compatPath:et.compatPath})),bodyItems:ge.id==="outline"?Sn():[]})),navigator:{wordCount:de.wordCount,nodeCount:de.nodeCount,zoomPercent:de.zoomPercent,readonly:c,minimapOpen:x}};Jt(),W.dataset.uiShellSource="leptos-rust-shell",_=z,C=z.mount(W,be),F.dataset.uiShell="leptos-rust-shell"},st=()=>{if(hi(),!O){Ca(),ds();return}Jt(),F.dataset.uiShell="debug-fallback",ee.dataset.testid="mindmap-command-toolbar",ee.className="mnote-mindmap-command-toolbar",delete ee.dataset.schemaSource,ae.dataset.testid="mindmap-sidebar",ae.className="mnote-mindmap-side-panel",delete ae.dataset.schemaSource,at.dataset.testid="mindmap-bottom-bar",at.className="mnote-mindmap-bottom-bar",delete at.dataset.schemaSource;let z=a?Dm(a):"",V=d??z,de=s!==null?"":" disabled",be=["\u8282\u70B9\u6837\u5F0F","\u5BFC\u56FE\u6837\u5F0F","\u4E3B\u9898","\u7ED3\u6784","\u5927\u7EB2"].map((ge,et)=>``).join("");ee.innerHTML=`
    `,ae.innerHTML=`${be}
    \u7ECF\u5178\u4E3B\u9898 \xB7 \u903B\u8F91\u7ED3\u6784
    `,at.innerHTML=`runtime \u8282\u70B9100%`},ds=()=>{let z=ye.querySelector('[data-testid="mindmap-schema-context-menu"]');if(!v){z?.remove();return}z||(z=document.createElement("div"),z.className="mnote-mindmap-context-menu",z.dataset.testid="mindmap-schema-context-menu",z.dataset.uiSource="typescript-nodeview-bridge",ye.append(z)),z.dataset.contextMenuKind=b,z.style.left=`${Math.max(8,E)}px`,z.style.top=`${Math.max(8,S)}px`;let V=Fr.contextMenuItems.filter(J=>b==="node"||!J.requiresNode);z.innerHTML=V.map(J=>``).join("")},qr=()=>{hi(),F.dataset.stage="loading",G.dataset.runtimeEngine="loading",G.innerHTML='
    \u6B63\u5728\u52A0\u8F7D\u5BFC\u56FE runtime...
    ',st()},ei=(z,V)=>{let{mindmapId:J}=nt();hi(),F.dataset.stage=z,G.dataset.runtimeEngine="error",G.innerHTML=`
    ${hs(z)}${hs(J)}${hs(V)}
    `,st()},nr=async(z,V)=>{if(F.dataset.commandCount=String(z.length),F.dataset.commandHasProjection=a?"true":"false",F.dataset.commandFailedAction="",F.dataset.commandFailedMessage="",z.length===0||!a){F.dataset.commandStatus="skipped";return}let{mindmapId:J}=nt(),de=Rm();if(!de){ei("command_failed",`mindmapId=${J}; documentId_missing`);return}F.dataset.commandStatus="pending";try{let be=await kv({documentId:de,mindmapId:J,commands:z,projectionRevision:a.kernelRevision});if(I)return;if(await za(be),V){let ge=eB(be.root,V)?V:tB(be.root)??$v(be,nt().rootNodeId);l=ge,h=ge,st()}d=null,F.dataset.commandStatus="success"}catch(be){let ge=be instanceof Error?be.message:String(be);F.dataset.commandStatus="failed",F.dataset.commandFailedAction=F.dataset.lastSchemaAction??"",F.dataset.commandFailedMessage=ge,ei("command_failed",`mindmapId=${J}; ${ge}`)}},cs=async z=>{if(!a)return;let{mindmapId:V}=nt(),J=Rm();if(!J){ei("command_failed",`mindmapId=${V}; documentId_missing`);return}F.dataset.viewCommandStatus="pending";try{if(await zm({documentId:J,mindmapId:V,commands:[Dv(V,z)],projectionRevision:a.kernelRevision}),I)return;a.view=z,F.dataset.viewCommandStatus="success"}catch(de){ei("command_failed",`mindmapId=${V}; ${de instanceof Error?de.message:String(de)}`)}},An=z=>{let V=QO(z);V&&(m=V,F.dataset.lastViewPatch=JSON.stringify(V),g!==null&&window.clearTimeout(g),g=window.setTimeout(()=>{g=null;let J=m;m=null,J&&cs(J)},350))},Dd=z=>{if(s){if(z==="centerRoot"&&s.instance.renderer?.setRootNodeCenter?.(),z==="zoomOut"&&s.instance.view?.narrow?.(),z==="zoomIn"&&s.instance.view?.enlarge?.(),z==="fitView"&&s.instance.view?.reset?.(),z==="search"){F.dataset.searchStatus="ready",F.dataset.lastSearchQuery="";return}if(z==="expandCollapse"){s.instance.renderer?.toggleActiveExpand?.(),F.dataset.contextMenuActionStatus="success",F.dataset.lastContextMenuAction=z,st();return}if(z==="copyNodeText"){let V=a?wt(a.root):null,J=V&&typeof V.data?.text=="string"?V.data.text:"";F.dataset.copiedNodeText=J,F.dataset.contextMenuActionStatus="success",F.dataset.lastContextMenuAction=z;return}z==="readonly"&&(c=!c),An(s.getSnapshot()),st()}},_a=(z,V={})=>{let J=Ol(z);if(!J||Im({activeNodeId:l,readonly:c,runtimeCapabilities:["runtimeCommand","kernelCommand","compatPatch","localView"]}).disabledActions[z])return;if(F.dataset.lastSchemaAction=z,J.target==="localView"){Dd(z);return}let be=JO(z),ge=h??l,et=nt().mindmapId,Ge=Hv({actionId:z,mindmapId:et,activeNodeId:ge,node:be,value:V.value??(z==="editNode"?Dm(a):!0),source:V.source,runtimeRevision:a?.kernelRevision??null,kernelRevision:a?.kernelRevision??null}),Bl=rB(V.compatPath,ge);if(Bl&&(Ge={command:Dl({mindmapId:et,path:Bl,value:V.value??!0,source:V.source??"sidebar",actionId:z,runtimeRevision:a?.kernelRevision??null,kernelRevision:a?.kernelRevision??null})}),F.dataset.lastSchemaCommand=Ge?.command?JSON.stringify(Ge.command):"",F.dataset.lastSchemaRuntimeCommand=Ge?.runtimeCommand??"",!!Ge){if(J.target==="runtimeCommand"&&Ge.runtimeCommand){if(Ge.command){let Bm=be?.uid??(z==="deleteNode"?nt().rootNodeId:ge);nr([Ge.command],Bm);return}s?.execCommand(Ge.runtimeCommand);return}Ge.command&&nr([Ge.command])}},La=z=>{if(z.type==="node_active"){let J=l;l=ZO(z.args[0])??l,(!h||h===J)&&(h=l),st();return}if(z.type==="view_data_change"||z.type==="scale"||z.type==="translate"){F.dataset.lastViewEvent=z.type,An(z.snapshot??s?.getSnapshot());return}if(z.type!=="data_change"||!a||!z.snapshot)return;let V=Pv({mindmapId:nt().mindmapId,previous:o??a.root,next:z.snapshot});o=z.snapshot,nr([...V.commands,...V.compatPatches])},za=async z=>{let{mindmapId:V,rootNodeId:J}=nt();if(s?.destroy(),Om(V,null),a=z,l=$v(z,J),h=h??l,o=z.root,G.dataset.runtimeEngine="simple-mind-map",G.dataset.runtimeReady="false",G.replaceChildren(),st(),s=await Cv({el:G,projection:z,mode:"edit",runtimeOptions:{fit:!0,mousewheelAction:"zoom",enableFreeDrag:!0,enableCtrlKeyNodeSelection:!0,useLeftKeySelectionRightKeyDrag:!0,createNewNodeBehavior:"activeOnly"},onEvent:La}),I){s.destroy();return}G.dataset.runtimeReady="true",F.dataset.stage="ready",Om(V,s),st()},Ia=async()=>{let z=++n,{mindmapId:V,rootNodeId:J}=nt(),de=Rm();if(!de){ei("projection_load_failed",`mindmapId=${V}; documentId_missing`);return}qr();try{if(z!==n)return;let be=await Lm({documentId:de,mindmapId:V,endpoint:`/api/mindmap/${encodeURIComponent(de)}/${encodeURIComponent(V)}?view=simple_mind_map_scene&queryName=mindmap.simple_mind_map_scene.get&rootNodeId=${encodeURIComponent(J)}`});if(z!==n||I)return;await za(be)}catch(be){ei("projection_load_failed",`mindmapId=${V}; ${be instanceof Error?be.message:String(be)}`)}};return D.addEventListener("pointerdown",z=>z.stopPropagation()),D.addEventListener("mousedown",z=>z.stopPropagation()),D.addEventListener("mnote:mindmap-shell:action",z=>{let V=z.detail,J=V?.actionId;if(J==="search"){F.dataset.searchStatus="ready",F.dataset.lastSearchQuery=typeof V?.value=="string"?V.value:"";return}J&&_a(J,V)}),D.addEventListener("mnote:mindmap-shell:minimap",z=>{let V=z.detail;x=typeof V?.open=="boolean"?V.open:!x,F.dataset.minimapOpen=x?"true":"false",st()}),D.addEventListener("mnote:mindmap-shell:panel",z=>{let V=z.detail;V?.panelId&&(f=V.panelId,st())}),D.addEventListener("input",z=>{if(!O)return;let V=z.target;V instanceof HTMLInputElement&&V.dataset.testid==="mindmap-command-text-input"&&(d=V.value)}),D.addEventListener("click",z=>{z.stopPropagation();let V=z.target;if(!(V instanceof HTMLElement))return;let J=V.closest("button");if(J instanceof HTMLButtonElement){if(!O){z.preventDefault();let de=J.dataset.mindmapContextActionId;if(de){v=!1,ds(),_a(de);return}if(J.closest('[data-testid="mindmap-rust-shell"]'))return;let be=J.dataset.mindmapActionId;be&&_a(be);let ge=J.dataset.mindmapSidebarPanelId;ge&&(f=ge,st());return}if(J.dataset.testid==="mindmap-command-update-text"){z.preventDefault();let de=$.querySelector('[data-testid="mindmap-command-text-input"]'),be=d??(de instanceof HTMLInputElement?de.value:Dm(a));F.dataset.lastCommandText=be,nr([{type:"updateText",mindmapId:nt().mindmapId,nodeId:l??nt().rootNodeId,text:be}])}J.dataset.testid==="mindmap-command-add-child"&&(z.preventDefault(),s?.execCommand("INSERT_CHILD_NODE")),J.dataset.testid==="mindmap-command-add-sibling-after"&&(z.preventDefault(),s?.execCommand("INSERT_NODE")),J.dataset.testid==="mindmap-command-delete-node"&&(z.preventDefault(),s?.execCommand("DELETE_NODE")),J.dataset.testid==="mindmap-toolbar-undo"&&(z.preventDefault(),s?.execCommand("BACK")),J.dataset.testid==="mindmap-toolbar-redo"&&(z.preventDefault(),s?.execCommand("FORWARD")),J.dataset.testid==="mindmap-toolbar-summary"&&(z.preventDefault(),s?.execCommand("ADD_GENERALIZATION")),J.dataset.testid==="mindmap-bottom-center-root"&&(z.preventDefault(),s?.instance.renderer?.setRootNodeCenter?.(),An(s?.getSnapshot())),J.dataset.testid==="mindmap-bottom-zoom-out"&&(z.preventDefault(),s?.instance.view?.narrow?.(),An(s?.getSnapshot())),J.dataset.testid==="mindmap-bottom-zoom-in"&&(z.preventDefault(),s?.instance.view?.enlarge?.(),An(s?.getSnapshot()))}}),D.addEventListener("contextmenu",z=>{if(O)return;z.preventDefault(),z.stopPropagation();let V=z.target;b=V instanceof Element&&V.closest(".smm-node")?"node":"canvas",E=z.offsetX,S=z.offsetY,v=!0,F.dataset.contextMenuKind=b,ds()},!0),re.append(G),O?(Z.append(G,ae),F.append(ee,Z,at)):(ye.append(W),Z.append(re,ye),F.append(Z)),$.append(F),D.append($),Ia(),{dom:D,update(z){return z.type.name!==r.type.name||(r=z,r.attrs.mnoteBlockType!=="mindmap")?!1:(Ia(),!0)},stopEvent:()=>!0,ignoreMutation:()=>!0,destroy(){I=!0,g!==null&&window.clearTimeout(g);let{mindmapId:z}=nt();Om(z,null),s?.destroy(),Jt(),s=null}}}}function oB(){return({node:i})=>{let e=i,t=document.createElement("p"),r=()=>{let n=e.attrs.blockId;typeof n=="string"&&n.length>0?(t.dataset.blockId=n,t.id=n):(t.removeAttribute("data-block-id"),t.removeAttribute("id"))};return r(),{dom:t,contentDOM:t,update(n){return n.type.name!==e.type.name||n.attrs.mnoteBlockType==="mindmap"?!1:(e=n,r(),!0)}}}}var lB=qm.extend({addAttributes(){return{...this.parent?.(),blockId:{default:null,parseHTML:i=>i.getAttribute("data-block-id"),renderHTML:i=>XO(i.blockId)},mnoteBlockType:{default:null,parseHTML:i=>i.getAttribute("data-mnote-block-type"),renderHTML:i=>KO(i)},mindmapId:{default:null,parseHTML:i=>i.getAttribute("data-mnote-mindmap-id"),renderHTML:()=>({})},rootNodeId:{default:null,parseHTML:i=>i.getAttribute("data-mnote-root-node-id"),renderHTML:()=>({})},projectionVersion:{default:null,parseHTML:i=>Number(i.getAttribute("data-mnote-projection-version")??1),renderHTML:()=>({})}}},addNodeView(){let i=aB(this.editor),e=oB();return({node:t,getPos:r})=>t.attrs.mnoteBlockType==="mindmap"?i({node:t,getPos:r}):e({node:t})}}),hB={name:"paragraph",create:()=>lB,commands:{set_paragraph:i=>i.chain().focus().setParagraph().run()},selection_keys:["paragraph"],selection_state:i=>({paragraph:i.isActive("paragraph")})};function xie(){$m(hB)}export{xie as register_paragraph}; + `,minExportImgCanvasScale:2,addContentToHeader:null,addContentToFooter:null,handleBeingExportSvg:null,maxCanvasSize:16384,defaultAssociativeLineText:"\u5173\u8054",associativeLineIsAlwaysAboveNode:!0,associativeLineInitPointsPosition:{from:"",to:""},enableAdjustAssociativeLinePoints:!0,beforeAssociativeLineConnection:null,disableTouchZoom:!1,minTouchZoomScale:20,maxTouchZoomScale:-1,isLimitMindMapInCanvasWhenHasScrollbar:!0,isOnlySearchCurrentRenderNodes:!1,beforeCooperateUpdate:null,rainbowLinesConfig:{open:!1,colorsList:[]},demonstrateConfig:null,enableEditFormulaInRichTextEdit:!0,katexFontPath:"https://unpkg.com/katex@0.16.11/dist/",getKatexOutputType:null,transformRichTextOnEnterEdit:null,beforeHideRichTextEdit:null,outerFramePaddingX:10,outerFramePaddingY:10,defaultOuterFrameText:"\u5916\u6846",onlyPainterNodeCustomStyles:!1,beforeDeleteNodeImg:null,imgResizeBtnSize:25,minImgResizeWidth:50,minImgResizeHeight:50,maxImgResizeWidthInheritTheme:!1,maxImgResizeWidth:1/0,maxImgResizeHeight:1/0,customDeleteBtnInnerHTML:"",customResizeBtnInnerHTML:""}});var ib={};tt(ib,{default:()=>HP});var Cp,_t,_p,HP,rb=T(()=>{Tv();kv();Gv();Cp=pt(O0());Vv();Y0();Yv();Qv();eb();$e();yt();pe();Ro();tb();_t=class i{constructor(e={}){if(i.instanceCount++,this.opt=this.handleOpt((0,Cp.default)(kp,e)),this.opt.data=this.handleData(this.opt.data),this.el=this.opt.el,!this.el)throw new Error("\u7F3A\u5C11\u5BB9\u5668\u5143\u7D20el");this.getElRectInfo(),this.initWidth=this.width,this.initHeight=this.height,this.cssEl=null,this.cssTextMap={},this.nodeInnerPrefixList=[],this.nodeInnerPostfixList=[],this.editNodeClassList=[],this.extendShapeList=[],this.initContainer(),this.initTheme(),this.initCache(),i.pluginList.filter(t=>t.preload).forEach(t=>{this.initPlugin(t)}),this.event=new Av({mindMap:this}),this.keyCommand=new h0({mindMap:this}),this.command=new Zv({mindMap:this}),this.renderer=new jv({mindMap:this}),this.view=new Mv({mindMap:this}),this.batchExecution=new Jv,i.pluginList.filter(t=>!t.preload).forEach(t=>{this.initPlugin(t)}),this.addCss(),this.render(this.opt.fit?()=>this.view.fit():()=>{}),this.opt.addHistoryOnInit&&this.opt.data&&this.command.addHistory()}handleOpt(e){return $c.includes(e.layout)||(e.layout=k.LAYOUT.LOGICAL_STRUCTURE),e.theme=e.theme&&jn[e.theme]?e.theme:"default",e}handleData(e){return Yt(e)||Object.keys(e).length<=0?null:(e=Kt(e||{}),e.data&&!e.data.expand&&(e.data.expand=!0),cs([e],!1,null,!0),e)}initContainer(){let{associativeLineIsAlwaysAboveNode:e}=this.opt;this.el.classList.add("smm-mind-map-container");let t=()=>{this.associativeLineDraw=this.draw.group(),this.associativeLineDraw.addClass("smm-associative-line-container")};this.svg=Ae().addTo(this.el).size(this.width,this.height),this.draw=this.svg.group(),this.draw.addClass("smm-container"),this.lineDraw=this.draw.group(),this.lineDraw.addClass("smm-line-container"),e||t(),this.nodeDraw=this.draw.group(),this.nodeDraw.addClass("smm-node-container"),e&&t(),this.otherDraw=this.draw.group(),this.otherDraw.addClass("smm-other-container")}clearDraw(){this.lineDraw.clear(),this.associativeLineDraw.clear(),this.nodeDraw.clear(),this.otherDraw.clear()}appendCss(e,t){this.cssTextMap[e]=t,this.removeCss(),this.addCss()}removeAppendCss(e){this.cssTextMap[e]&&(delete this.cssTextMap[e],this.removeCss(),this.addCss())}joinCss(){return C3+Object.keys(this.cssTextMap).map(e=>this.cssTextMap[e]).join(` +`)}addCss(){this.cssEl=document.createElement("style"),this.cssEl.type="text/css",this.cssEl.innerHTML=this.joinCss(),document.head.appendChild(this.cssEl)}removeCss(){this.cssEl&&document.head.removeChild(this.cssEl)}checkEditNodeClassIndex(e){return this.editNodeClassList.findIndex(t=>t===e)}addEditNodeClass(e){this.checkEditNodeClassIndex(e)===-1&&this.editNodeClassList.push(e)}deleteEditNodeClass(e){let t=this.checkEditNodeClassIndex(e);t!==-1&&this.editNodeClassList.splice(t,1)}render(e,t=""){this.initTheme(),this.renderer.render(e,t)}reRender(e,t=""){this.renderer.reRender=!0,this.renderer.clearCache(),this.clearDraw(),this.render(e,t)}getElRectInfo(){if(this.elRect=this.el.getBoundingClientRect(),this.width=this.elRect.width,this.height=this.elRect.height,this.width<=0||this.height<=0)throw new Error("\u5BB9\u5668\u5143\u7D20el\u7684\u5BBD\u9AD8\u4E0D\u80FD\u4E3A0")}resize(){let e=this.width,t=this.height;this.getElRectInfo(),this.svg.size(this.width,this.height),(e!==this.width||t!==this.height)&&(this.demonstrate?this.demonstrate.isInDemonstrate||this.render():this.render()),this.emit("resize")}on(e,t){this.event.on(e,t)}emit(e,...t){this.event.emit(e,...t)}off(e,t){this.event.off(e,t)}initCache(){this.commonCaches={measureCustomNodeContentSizeEl:null,measureRichtextNodeTextSizeEl:null}}initTheme(){this.themeConfig=wu(jn[this.opt.theme]||jn.default,this.opt.themeConfig),qo.setBackgroundStyle(this.el,this.themeConfig)}setTheme(e,t=!1){this.execCommand("CLEAR_ACTIVE_NODE"),this.opt.theme=e,t||this.render(null,k.CHANGE_THEME),this.emit("view_theme_change",e)}getTheme(){return this.opt.theme}setThemeConfig(e,t=!1){let r=N2(this.themeConfig,e);if(this.opt.themeConfig=e,!t){let n=u2(r);this.render(null,n?"":k.CHANGE_THEME)}}getCustomThemeConfig(){return this.opt.themeConfig}getThemeConfig(e){return e===void 0?this.themeConfig:this.themeConfig[e]}getConfig(e){return e===void 0?this.opt:this.opt[e]}updateConfig(e={}){this.emit("before_update_config",this.opt);let t={...this.opt};this.opt=this.handleOpt(Cp.default.all([kp,this.opt,e])),this.emit("after_update_config",this.opt,t)}getLayout(){return this.opt.layout}setLayout(e,t=!1){$c.includes(e)||(e=k.LAYOUT.LOGICAL_STRUCTURE),this.opt.layout=e,this.view.reset(),this.renderer.setLayout(),t||this.render(null,k.CHANGE_LAYOUT),this.emit("layout_change",e)}execCommand(...e){this.command.exec(...e)}updateData(e){e=this.handleData(e),this.emit("before_update_data",e),this.renderer.setData(e),this.render(),this.command.addHistory(),this.emit("update_data",e)}setData(e){e=this.handleData(e),this.emit("before_set_data",e),this.opt.data=e,this.execCommand("CLEAR_ACTIVE_NODE"),this.command.clearHistory(),this.command.addHistory(),this.renderer.setData(e),this.reRender(),this.emit("set_data",e)}setFullData(e){e.root&&this.setData(e.root),e.layout&&this.setLayout(e.layout),e.theme&&(e.theme.template&&this.setTheme(e.theme.template),e.theme.config&&this.setThemeConfig(e.theme.config)),e.view&&this.view.setTransformData(e.view)}getData(e){let t=this.command.getCopyData(),r={};return e?r={layout:this.getLayout(),root:t,theme:{template:this.getTheme(),config:this.getCustomThemeConfig()},view:this.view.getTransformData()}:r=t,Kt(r)}async export(...e){try{if(!this.doExport)throw new Error("\u8BF7\u6CE8\u518CExport\u63D2\u4EF6\uFF01");return await this.doExport.export(...e)}catch(t){this.opt.errorHandler(Mi.EXPORT_ERROR,t)}}toPos(e,t){return{x:e-this.elRect.left,y:t-this.elRect.top}}setMode(e){if(![k.MODE.READONLY,k.MODE.EDIT].includes(e))return;let t=e===k.MODE.READONLY;t!==this.opt.readonly&&(t&&(this.renderer.textEdit.isShowTextEdit()&&(this.renderer.textEdit.hideEditTextBox(),this.command.originAddHistory()),this.execCommand("CLEAR_ACTIVE_NODE")),this.opt.readonly=t,!t&&this.command.history.length<=0&&this.command.originAddHistory(),this.emit("mode_change",e))}getSvgData({paddingX:e=0,paddingY:t=0,ignoreWatermark:r=!1,addContentToHeader:n,addContentToFooter:s,node:a}={}){let{watermarkConfig:o,openPerformance:l}=this.opt;l&&this.renderer.forceLoadNode(a);let{cssTextList:h,header:d,headerHeight:c,footer:f,footerHeight:m}=R2({addContentToHeader:n,addContentToFooter:s}),g=this.svg,x=this.draw,y=g.width(),b=g.height(),S=x.transform(),A=this.elRect;x.scale(1/S.scaleX,1/S.scaleY);let C=x.rbox(),I=null;a&&(I=bu(a,C.x,C.y,e,t));let O=0;C.width+=e*2,C.height+=t*2+O+c+m,x.translate(e,t),g.size(C.width,C.height),x.translate(-C.x+A.left,-C.y+A.top);let q=g.clone(),P=this.watermark&&this.watermark.hasWatermark();if(!r&&P){this.watermark.isInExport=!0;let{onlyExport:re}=o;C.width>y||C.height>b?(this.width=C.width,this.height=C.height,this.watermark.onResize(),q=g.clone(),this.width=y,this.height=b,this.watermark.onResize()):re&&(this.watermark.onResize(),q=g.clone()),re&&this.watermark.clear(),this.watermark.isInExport=!1}[this.joinCss(),...h].forEach(re=>{q.add(Ae(``))}),d&&c>0&&(q.findOne(".smm-container").translate(0,c),d.width(C.width),d.y(t),q.add(d,0)),f&&m>0&&(f.width(C.width),f.y(C.height-t-m),q.add(f));let W=g.find("defs"),ne=q.find("defs");return W.forEach((re,oe)=>{let ke=ne[oe];if(!ke)return;let Q=re.children(),Y=ke.children();for(let le=0;ler.name===e.name)||this.extendShapeList.push(e)}removeShape(e){let t=this.extendShapeList.findIndex(r=>r.name===e);t!==-1&&this.extendShapeList.splice(t,1)}getSvgObjects(){return{SVG:Ae,G:_e,Rect:Ve}}addPlugin(e,t){i.hasPlugin(e)===-1&&i.usePlugin(e,t),this.initPlugin(e)}removePlugin(e){let t=i.hasPlugin(e);t!==-1&&(i.pluginList.splice(t,1),this[e.instanceName]&&(this[e.instanceName].beforePluginRemove&&this[e.instanceName].beforePluginRemove(),delete this[e.instanceName]))}initPlugin(e){this[e.instanceName]||(this[e.instanceName]=new e({mindMap:this,pluginOpt:e.pluginOpt}))}destroy(){this.emit("beforeDestroy"),this.renderer.textEdit.hideEditTextBox(),this.renderer.textEdit.removeTextEditEl(),[...i.pluginList].forEach(e=>{this[e.instanceName]&&this[e.instanceName].beforePluginDestroy&&this[e.instanceName].beforePluginDestroy(),this[e.instanceName]=null}),this.event.unbind(),this.svg.remove(),qo.removeBackgroundStyle(this.el),this.el.classList.remove("smm-mind-map-container"),this.el.innerHTML="",this.el=null,this.removeCss(),i.instanceCount--}},_p=[];_t.extendNodeDataNoStylePropList=(i=[])=>{_p.push(...i),$s.push(...i)};_t.resetNodeDataNoStylePropList=()=>{_p.forEach(i=>{let e=$s.findIndex(t=>t===i);e!==-1&&$s.splice(e,1)}),_p=[]};_t.pluginList=[];_t.usePlugin=(i,e={})=>(_t.hasPlugin(i)!==-1||(i.pluginOpt=e,_t.pluginList.push(i)),_t);_t.hasPlugin=i=>_t.pluginList.findIndex(e=>e===i);_t.instanceCount=0;_t.defineTheme=(i,e={})=>{if(jn[i])return new Error("\u8BE5\u4E3B\u9898\u540D\u79F0\u5DF2\u5B58\u5728");jn[i]=wu(B0,e)};_t.removeTheme=i=>{jn[i]&&(jn[i]=null)};HP=_t});var Ic=globalThis.__LEPTOS_TIPTAP_BRIDGE__;if(Ic==null||Ic.modules==null)throw new Error("leptos-tiptap bridge bindings are unavailable");var j=Ic.modules["@tiptap/core"];if(j==null)throw new Error('leptos-tiptap bridge module "@tiptap/core" is unavailable');var tq=j.CommandManager,iq=j.Editor,rq=j.Extension,nq=j.InputRule,sq=j.Mark,f3=j.Node,aq=j.NodePos,oq=j.NodeView,lq=j.PasteRule,hq=j.Tracker,dq=j.callOrReturn,cq=j.canInsertNode,uq=j.combineTransactionSteps,fq=j.createChainableState,mq=j.createDocument,pq=j.createNodeFromContent,gq=j.createStyleTag,xq=j.defaultBlockAt,yq=j.deleteProps,vq=j.elementFromString,bq=j.escapeForRegEx,wq=j.extensions,Mq=j.findChildren,Tq=j.findChildrenInRange,Nq=j.findDuplicates,Eq=j.findParentNode,Sq=j.findParentNodeClosestToPos,Aq=j.fromString,kq=j.generateHTML,Cq=j.generateJSON,_q=j.generateText,Lq=j.getAttributes,Iq=j.getAttributesFromExtensions,zq=j.getChangedRanges,Rq=j.getDebugJSON,Dq=j.getExtensionField,Oq=j.getHTMLFromFragment,Bq=j.getMarkAttributes,Pq=j.getMarkRange,Fq=j.getMarkType,qq=j.getMarksBetween,Hq=j.getNodeAtPosition,Uq=j.getNodeAttributes,$q=j.getNodeType,jq=j.getRenderedAttributes,Gq=j.getSchema,Vq=j.getSchemaByResolvedExtensions,Wq=j.getSchemaTypeByName,Yq=j.getSchemaTypeNameByName,Xq=j.getSplittedAttributes,Kq=j.getText,Zq=j.getTextBetween,Qq=j.getTextContentFromNodes,Jq=j.getTextSerializersFromSchema,eH=j.injectExtensionAttributesToParseRule,tH=j.inputRulesPlugin,iH=j.isActive,rH=j.isAtEndOfNode,nH=j.isAtStartOfNode,sH=j.isEmptyObject,aH=j.isExtensionRulesEnabled,oH=j.isFunction,lH=j.isList,hH=j.isMacOS,dH=j.isMarkActive,cH=j.isNodeActive,uH=j.isNodeEmpty,fH=j.isNodeSelection,mH=j.isNumber,pH=j.isPlainObject,gH=j.isRegExp,xH=j.isSafari,yH=j.isString,vH=j.isTextSelection,bH=j.isiOS,wH=j.markInputRule,MH=j.markPasteRule,m3=j.mergeAttributes,TH=j.mergeDeep,NH=j.minMax,EH=j.nodeInputRule,SH=j.nodePasteRule,AH=j.objectIncludes,kH=j.pasteRulesPlugin,CH=j.posToDOMRect,_H=j.removeDuplicates,LH=j.resolveFocusPosition,IH=j.rewriteUnknownContent,zH=j.selectionToInsertionEnd,RH=j.splitExtensions,DH=j.textInputRule,OH=j.textPasteRule,BH=j.textblockTypeInputRule,PH=j.wrappingInputRule;var p3=f3.create({name:"paragraph",priority:1e3,addOptions(){return{HTMLAttributes:{}}},group:"block",content:"inline*",parseHTML(){return[{tag:"p"}]},renderHTML({HTMLAttributes:i}){return["p",m3(this.options.HTMLAttributes,i),0]},addCommands(){return{setParagraph:()=>({commands:i})=>i.setNode(this.name)}},addKeyboardShortcuts(){return{"Mod-Alt-0":()=>this.editor.commands.setParagraph()}}});var g3="__LEPTOS_TIPTAP_BRIDGE__";function nw(){let i=globalThis,e=i[g3];if(e!=null)return e;let t={modules:{},registerExtension:()=>{throw new Error("leptos-tiptap bridge runtime is not initialized")}};return i[g3]=t,t}function x3(){return nw()}function y3(i){x3().registerExtension(i)}var Dc={};tt(Dc,{applyMetadataOnlyMindmapCommands:()=>M3,applyMindmapCommandsLocally:()=>hw,isLocallyApplicableMindmapCommandSet:()=>lw,isMetadataOnlyMindmapCommandSet:()=>ow});var sw={data:{text:"\u4E2D\u5FC3\u4E3B\u9898"},children:[]},gt=i=>typeof i=="object"&&i!==null&&!Array.isArray(i),nr=i=>JSON.parse(JSON.stringify(i)),b3=i=>{let e=gt(i)?nr(i):nr(sw);return gt(e.data)||(e.data={text:"\u4E2D\u5FC3\u4E3B\u9898"}),Array.isArray(e.children)||(e.children=[]),e},w3=(i,e)=>{if(!gt(i)||!gt(e))return nr(e);let t={...i};return Object.entries(e).forEach(([r,n])=>{if(n===null){delete t[r];return}t[r]=gt(t[r])&>(n)?w3(t[r],n):nr(n)}),t},zc=(i,e,t)=>{let r=e.split(".").filter(Boolean);if(r.length===0)return!1;let n=i;for(let s of r.slice(0,-1))gt(n[s])||(n[s]={}),n=n[s];return n[r[r.length-1]]=nr(t),!0},N0=(i,e)=>{if(!gt(i))return null;let t=gt(i.data)?i.data:null;if(typeof t?.uid=="string"&&t.uid===e)return i;let r=Array.isArray(i.children)?i.children:[];for(let n of r){let s=N0(n,e);if(s)return s}return null},Rc=(i,e)=>{for(let t=0;t({data:{uid:i.uid??`node_${Date.now().toString(36)}`,text:i.text,...typeof i.hyperlink=="string"?{hyperlink:i.hyperlink}:{},...typeof i.note=="string"?{note:i.note}:{},...Array.isArray(i.refs)?{refs:nr(i.refs)}:{}},children:[]}),aw=(i,e)=>{let t=String(e.path||"").trim();if(!t)return!1;if(t.startsWith("root.data.")){let n=t.slice(10),s=gt(i.data)?i.data:i.data={};return zc(s,n,e.value)}if(t.startsWith("nodes.")){let[,n,s,...a]=t.split(".");if(!n||s!=="data"||a.length===0)return!1;let o=N0(i,n);if(!o)return!1;let l=gt(o.data)?o.data:o.data={};return zc(l,a.join("."),e.value)}let r=gt(i.compatPayload)?i.compatPayload:i.compatPayload={};return zc(r,t,e.value)},ow=i=>Array.isArray(i)&&i.every(e=>!gt(e)||typeof e.type!="string"?!1:["setLayout","setTheme","patchView","compatPayloadPatch"].includes(e.type)),lw=i=>Array.isArray(i)&&i.every(e=>!gt(e)||typeof e.type!="string"?!1:["updateText","insertChild","insertSiblingAfter","deleteNode","setLayout","setTheme","patchView","compatPayloadPatch"].includes(e.type)),M3=(i,e)=>{let t=b3(i),r=[],n=0;return e.forEach(s=>{if(s.type==="setLayout"){t.layout=nr(s.layout),n+=1;return}if(s.type==="setTheme"){t.theme=nr(s.theme),s.themeConfig!==void 0&&s.themeConfig!==null&&(t.themeConfig=nr(s.themeConfig)),n+=1;return}if(s.type==="patchView"){t.view=w3(t.view??{},s.patch),n+=1;return}s.type==="compatPayloadPatch"&&(aw(t,s)?n+=1:r.push(`\u65E0\u6CD5\u5E94\u7528 compatPayloadPatch:${s.path}`))}),{applied:n,data:t,errors:r}},hw=(i,e)=>{let t=b3(i),r=[],n=0;return e.forEach(s=>{if(s.type==="setLayout"||s.type==="setTheme"||s.type==="patchView"||s.type==="compatPayloadPatch"){let a=M3(t,[s]);Object.assign(t,a.data),n+=a.applied,r.push(...a.errors);return}if(s.type==="updateText"){let a=N0(t,s.nodeId);if(!a){r.push(`\u672A\u627E\u5230\u8282\u70B9:${s.nodeId}`);return}let o=gt(a.data)?a.data:a.data={};o.text=s.text,n+=1;return}if(s.type==="insertChild"){let a=N0(t,s.parentNodeId);if(!a){r.push(`\u672A\u627E\u5230\u7236\u8282\u70B9:${s.parentNodeId}`);return}(Array.isArray(a.children)?a.children:a.children=[]).push(v3(s.node)),n+=1;return}if(s.type==="insertSiblingAfter"){let a=Rc([t],s.targetNodeId);if(!a){r.push(`\u672A\u627E\u5230\u540C\u7EA7\u8282\u70B9:${s.targetNodeId}`);return}if(a.parentChildren[a.index]===t){r.push("\u6839\u8282\u70B9\u4E0D\u652F\u6301\u63D2\u5165\u540C\u7EA7\u8282\u70B9");return}a.parentChildren.splice(a.index+1,0,v3(s.node)),n+=1;return}if(s.type==="deleteNode"){let a=Rc([t],s.nodeId);if(!a){r.push(`\u672A\u627E\u5230\u5220\u9664\u8282\u70B9:${s.nodeId}`);return}if(a.parentChildren[a.index]===t){r.push("\u6839\u8282\u70B9\u4E0D\u652F\u6301\u5220\u9664");return}a.parentChildren.splice(a.index,1),n+=1}}),{applied:n,data:t,errors:r}};var Dp={};tt(Dp,{MindmapCommandBridgeError:()=>lo,createLeptosMindmapAdapter:()=>rF,createMindmapAdapterProjectionEndpoint:()=>lb,createMindmapCommandApplyEndpoint:()=>zp,executeMindmapCommandApply:()=>hb,executeMindmapCommandApplyAndRefreshProjection:()=>tF,executeMindmapDataPutAndRefreshProjection:()=>iF,isMindmapAdapterProjection:()=>Ip,requestMindmapAdapterProjection:()=>Rp});var Pc={};tt(Pc,{DEFAULT_MINDMAP_LAYOUT:()=>E0,DEFAULT_MINDMAP_THEME:()=>S0,buildMindmapEditorScene:()=>cw,buildMindmapProjection:()=>dw,buildMindmapSimpleMindMapScene:()=>uw,canonicalizeMindmapData:()=>ci,createDefaultMindmapThemeConfig:()=>A0,defaultMindmapData:()=>Us,extractMindmapTitle:()=>Bc,normalizeMindmapData:()=>Oc,summarizeMindmapProjectionNodes:()=>T3});var Us={data:{text:"\u4E2D\u5FC3\u4E3B\u9898"},children:[]},E0="logicalStructure",S0="default",A0=()=>({lineColor:"#7aa2ff",lineStyle:"curve",rootLineKeepSameInCurve:!0,rootLineStartPositionKeepSameInCurve:!0,generalizationLineColor:"#ef6a5b",backgroundColor:"#f6f8fc",root:{fillColor:"#e25563",color:"#ffffff",fontWeight:"bold",borderColor:"transparent",borderWidth:0,borderRadius:8},second:{fillColor:"#4f7df3",color:"#ffffff",borderColor:"transparent",borderWidth:0,borderRadius:8},node:{fillColor:"transparent",color:"#315aa9",borderColor:"transparent",borderWidth:0},generalization:{fillColor:"#ffffff",color:"#ef6a5b",borderColor:"#ef6a5b",borderWidth:1,borderRadius:8}}),Hs=i=>typeof i=="object"&&i!==null&&!Array.isArray(i),Oc=i=>{if(!i||typeof i!="object")return Us;let e=i.root??i,t=r=>{if(!Hs(r))return;let n=Hs(r.data)?r.data:{};r.data=n;let s=n.text;n.text=typeof s=="string"?s:String(s??"");let a=n.generalization,o=l=>{if(!Hs(l))return;let h=l.text;l.text=typeof h=="string"?h:String(h??"")};Array.isArray(a)?a.forEach(o):o(a),Array.isArray(r.children)&&r.children.forEach(t)};return t(e),i},ci=i=>{let e=Oc(i)??Us,t=e&&typeof e=="object"&&"root"in e?e.root:e;return Oc(t)??Us},Bc=i=>{let t=ci(i)?.data?.text;return typeof t=="string"&&t.trim()?t.trim():"\u672A\u547D\u540D\u5BFC\u56FE"},T3=i=>{let t=[{node:ci(i),depth:0}],r=[];for(;t.length>0;){let n=t.shift();if(!n)break;let s=n.node?.data?.uid,a=n.node?.data?.text,o=Array.isArray(n.node?.children)?n.node.children:[];r.push({uid:typeof s=="string"&&s.trim()?s:`depth:${n.depth}:index:${r.length}`,text:typeof a=="string"&&a.trim()?a.trim():"\u672A\u547D\u540D\u8282\u70B9",depth:n.depth,childCount:o.length}),o.forEach(l=>{t.push({node:ci(l),depth:n.depth+1})})}return r},dw=i=>{let e=ci(i.data),t=T3(e),r=Hs(i.meta)?i.meta:null,n=t[0]?.uid??null;return{schema:"mnote.mindmap_projection.v1",projectionId:`mindmap_projection:${i.documentId}:${i.mindmapId}`,projection:"mindmap_subtree",source:i.source??"rust-kernel",owner:i.owner??"rust-kernel",documentId:i.documentId,mindmapId:i.mindmapId,rootNodeId:n,title:Bc(e),nodeCount:t.length,nodes:t,data:e,meta:r}},cw=i=>{let e=ci(i.data),t=Hs(i.meta)?i.meta:null,r=[],n=[],s=(l,h,d)=>{let c=l?.data?.uid,f=l?.data?.text,m=typeof c=="string"&&c.trim()?c.trim():`depth:${h}:index:${r.length}`,g=Array.isArray(l?.children)?l.children:[];r.push({id:m,uid:m,text:typeof f=="string"&&f.trim()?f.trim():"\u672A\u547D\u540D\u8282\u70B9",depth:h,childCount:g.length,parentId:d}),d&&n.push({id:`${d}->${m}`,source:d,target:m}),g.forEach(x=>{s(ci(x),h+1,m)})};s(e,0,null);let a=r[0]?.id??null,o=i.rootNodeId&&i.rootNodeId.trim()?i.rootNodeId.trim():a;return{schema:"mnote.mindmap_editor_scene.v1",source:i.source??"rust-kernel",owner:i.owner??"rust-kernel",documentId:i.documentId,mindmapId:i.mindmapId,rootNodeId:o,title:Bc(e),nodes:r,edges:n,capabilities:{canEditText:!0,canAddChild:!0,canAddSiblingAfter:!0,canDeleteNode:!0},data:e,meta:t}},uw=i=>{let e=ci(i.data),t=Hs(i.meta)?i.meta:null,r=e?.data?.uid,n=typeof r=="string"&&r.trim()?r.trim():"root";return e.data.uid||(e.data.uid=n),{schema:"mnote.mindmap.simple_mind_map_scene.v1",runtime:"simple-mind-map",documentId:i.documentId,mindmapId:i.mindmapId,rootNodeId:n,root:e,layout:E0,theme:S0,themeConfig:A0(),view:{x:0,y:0,scale:1},config:{},compatPayload:{},kernelRevision:1,source:i.source??"rust-kernel",owner:i.owner??"rust-kernel",meta:t}};var UP=["Drag","KeyboardNavigation","Export","Select","AssociativeLine","Search","OuterFrame"],$P=["Scrollbar","MiniMap","Painter","Formula"],jP=["data_change","view_data_change","node_active","back_forward","scale","translate"],GP=new Set(["BACK","FORWARD","INSERT_NODE","INSERT_CHILD_NODE","REMOVE_NODE","DELETE_NODE","ADD_GENERALIZATION","ADD_OUTER_FRAME","SET_NOTATION"]),ao=i=>typeof i=="object"&&i!==null&&!Array.isArray(i),nb=(i,e)=>{if(typeof i=="string"&&i.trim())return i.trim();if(ao(i)){let t=i.template;if(typeof t=="string"&&t.trim())return t.trim()}return e},sb=i=>ao(i)?i:{},ab=i=>!ao(i)||Object.keys(i).length===0?A0():i,VP=i=>!ao(i)||!ao(i.state)?null:{...i,state:i.state,transform:ao(i.transform)?i.transform:{}},WP=i=>{let e=ci(i.projection.root??Us),t=sb(i.projection.config),r=sb(i.runtimeOptions);return{...t,...r,el:i.el,data:e,fit:typeof r.fit=="boolean"?r.fit:typeof t.fit=="boolean"?t.fit:!0,layout:nb(i.projection.layout,E0),theme:nb(i.projection.theme,S0),themeConfig:ab(i.projection.themeConfig),viewData:VP(i.projection.view),initRootNodePosition:["center","center"]}},YP={Drag:()=>Promise.resolve().then(()=>(J2(),Q2)),KeyboardNavigation:()=>Promise.resolve().then(()=>(t6(),e6)),Export:()=>Promise.resolve().then(()=>(d6(),h6)),Select:()=>Promise.resolve().then(()=>(u6(),c6)),AssociativeLine:()=>Promise.resolve().then(()=>(b6(),v6)),Search:()=>Promise.resolve().then(()=>(M6(),w6)),OuterFrame:()=>Promise.resolve().then(()=>(k6(),A6)),Scrollbar:()=>Promise.resolve().then(()=>(_6(),C6)),MiniMap:()=>Promise.resolve().then(()=>(I6(),L6)),Painter:()=>Promise.resolve().then(()=>(R6(),z6)),Formula:()=>Promise.resolve().then(()=>(wv(),bv))},XP=()=>[...UP,...$P],KP=async(i=XP())=>{if(typeof window>"u"||typeof document>"u")throw new Error("simple_mind_map_browser_required");let[{default:e},t]=await Promise.all([Promise.resolve().then(()=>(rb(),ib)),Promise.all(i.map(async s=>[s,(await YP[s]()).default]))]),r=e,n=[];return t.forEach(([s,a])=>{if(!a||typeof r.usePlugin!="function")return;typeof r.hasPlugin=="function"&&r.hasPlugin(a)!==-1||r.usePlugin(a),n.push(s)}),{MindMap:r,registeredPlugins:n}},ZP=i=>(e,...t)=>{if(!GP.has(e))return{ok:!1,command:e,error:"unsupported_command"};if(typeof i.execCommand!="function")return{ok:!1,command:e,error:"runtime_unavailable"};try{return{ok:!0,command:e,result:i.execCommand(e,...t)}}catch{return{ok:!1,command:e,error:"command_failed"}}},QP=i=>{let e=[];return jP.forEach(t=>{let r=(...n)=>{let s=t==="data_change"?i.instance.getData?.():t==="view_data_change"?i.instance.getData?.(!0)??i.instance.getData?.():void 0;i.onEvent?.({type:t,args:n,snapshot:s,kernelRevision:i.projection.kernelRevision})};i.instance.on?.(t,r),e.push(()=>i.instance.off?.(t,r))}),()=>e.splice(0).forEach(t=>t())},ob=async i=>{let e=await KP(i.pluginNames),t=ab(i.projection.themeConfig),r=WP({el:i.el,projection:i.projection,runtimeOptions:i.runtimeOptions}),n=new e.MindMap(r);n.setThemeConfig?.(t),i.mode&&n.setMode?.(i.mode);let s=QP({instance:n,projection:i.projection,onEvent:i.onEvent}),a=ZP(n);return{instance:n,execCommand:a,getSnapshot:()=>n.getData?.(!0)??n.getData?.(),destroy:()=>{n.renderer?.textEdit?.hideEditTextBox?.(),s(),n.destroy?.()}}};var lo=class extends Error{constructor(e,t=null){super(e),this.name="MindmapCommandBridgeError",this.code="command_failed",this.status=t}},oo=i=>typeof i=="object"&&i!==null&&!Array.isArray(i),Lp=i=>{if(!oo(i))return"";let e=[i.error,i.message,i.details].map(t=>typeof t=="string"?t.trim():Array.isArray(t)&&t.length>0?t.join("|"):"").find(Boolean);return e?`:${e}`:""},JP=async i=>{if(typeof i.text!="function"){let t=await i.json().catch(()=>null);return Lp(t)}let e=await i.text().catch(()=>"");if(!e.trim())return"";try{return Lp(JSON.parse(e))||`:${e.trim()}`}catch{return`:${e.trim()}`}},Ip=i=>oo(i)?i.schema==="mnote.mindmap.simple_mind_map_scene.v1"&&i.runtime==="simple-mind-map"&&"root"in i&&typeof i.kernelRevision=="number":!1,lb=(i,e)=>{let t=encodeURIComponent(i),r=encodeURIComponent(e);return`/api/mindmap/${t}/${r}?view=simple_mind_map_scene&queryName=mindmap.simple_mind_map_scene.get`},zp=(i,e)=>{let t=encodeURIComponent(i),r=encodeURIComponent(e);return`/api/mindmap/${t}/${r}`},Rp=async i=>{let e=i.fetcher??fetch,t=i.endpoint??lb(i.documentId,i.mindmapId),r=await e(t,{headers:{Accept:"application/json"}});if(!r.ok)throw new Error(`projection_load_failed:${r.status}`);let n=await r.json(),s=oo(n)&&"result"in n?n.result:n;if(!Ip(s))throw new Error("projection_load_failed:invalid_adapter_projection");return s},eF=i=>{if(!oo(i))return null;let e=[i.kernelRevision,i.projectionRevision,oo(i.result)?i.result.kernelRevision:null,oo(i.result)?i.result.projectionRevision:null];for(let t of e)if(typeof t=="number"&&Number.isFinite(t))return t;return null},hb=async i=>{if(i.commands.length===0)throw new lo("command_failed:empty_commands");let e=i.fetcher??fetch,t=i.endpoint??zp(i.documentId,i.mindmapId),r=JSON.stringify({commandName:"mindmap.command.apply",documentId:i.documentId,mindmapId:i.mindmapId,commands:i.commands,projectionRevision:i.projectionRevision??null}),n=await e(t,{method:"POST",keepalive:r.length<=6e4,headers:{Accept:"application/json","Content-Type":"application/json"},body:r}),s=await n.json().catch(()=>null);if(!n.ok){let a=Lp(s);throw new lo(`command_failed:${n.status}${a}`,n.status)}return{ok:!0,kernelRevision:eF(s),raw:s}},tF=async i=>(await hb(i),Rp({documentId:i.documentId,mindmapId:i.mindmapId,endpoint:i.projectionEndpoint,fetcher:i.fetcher})),iF=async i=>{let e=i.fetcher??fetch,t=i.endpoint??zp(i.documentId,i.mindmapId),r=await e(t,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify({data:i.data,createOnly:!1})});if(!r.ok){let n=await JP(r);throw new lo(`command_failed:${r.status}${n}`,r.status)}return await r.json().catch(()=>null),Rp({documentId:i.documentId,mindmapId:i.mindmapId,endpoint:i.projectionEndpoint,fetcher:e})},rF=async i=>{if(!Ip(i.projection))throw new Error("adapter_init_failed:invalid_projection");return ob(i)};var Fp={};tt(Fp,{createCompatPayloadPatch:()=>Tc,createLayoutCommand:()=>Pp,createThemeCommand:()=>Bp,createToolbarKernelCommand:()=>Op,createViewPatchCommand:()=>nF,diffMindmapRuntimeDataToKernelCommands:()=>hF});var db=i=>({text:i?.text?.trim()||"\u65B0\u8282\u70B9",...i?.uid?{uid:i.uid}:{},...i?.hyperlink?{hyperlink:i.hyperlink}:{},...i?.note?{note:i.note}:{},...i?.refs?{refs:i.refs}:{}}),Op=i=>{let e=i.activeNodeId?.trim();switch(i.runtimeCommand){case"INSERT_CHILD_NODE":return e?{type:"insertChild",mindmapId:i.mindmapId,parentNodeId:e,node:db(i.newNode)}:null;case"INSERT_NODE":return e?{type:"insertSiblingAfter",mindmapId:i.mindmapId,targetNodeId:e,node:db(i.newNode)}:null;case"REMOVE_NODE":case"DELETE_NODE":return e?{type:"deleteNode",mindmapId:i.mindmapId,nodeId:e}:null;case"ADD_GENERALIZATION":return{type:"compatPayloadPatch",mindmapId:i.mindmapId,path:"root.data.generalization",value:{text:"\u6982\u8981"},source:"toolbar"};case"ADD_OUTER_FRAME":return{type:"compatPayloadPatch",mindmapId:i.mindmapId,path:"outerFrame",value:{enabled:!0,activeNodeId:e},source:"toolbar"};default:return null}},nF=(i,e)=>({type:"patchView",mindmapId:i,patch:e}),Bp=(i,e,t)=>({type:"setTheme",mindmapId:i,theme:e,themeConfig:t}),Pp=(i,e)=>({type:"setLayout",mindmapId:i,layout:e}),Tc=i=>({type:"compatPayloadPatch",mindmapId:i.mindmapId,path:i.path,value:i.value,source:i.source,...i.actionId?{actionId:i.actionId}:{},...typeof i.runtimeRevision=="number"?{runtimeRevision:i.runtimeRevision}:{},...typeof i.kernelRevision=="number"?{kernelRevision:i.kernelRevision}:{}}),sF=i=>typeof i=="object"&&i!==null&&!Array.isArray(i),aF=(i,e)=>{let t=i.data?.uid;return typeof t=="string"&&t.trim()?t.trim():e},oF=i=>{let e=i.data?.text;return typeof e=="string"?e:String(e??"")},cb=i=>{let e=ci(i),t=new Map,r=(n,s,a,o)=>{let l=aF(n,o),h=sF(n.data)?n.data:{};t.set(l,{uid:l,parentUid:s,order:a,text:oF(n),data:h,node:n}),(Array.isArray(n.children)?n.children:[]).forEach((c,f)=>{r(ci(c),l,f,`${o}.${f}`)})};return r(e,null,0,"root"),t},ub=i=>JSON.stringify(i??null),fb=i=>({uid:i.uid,text:i.text||"\u65B0\u8282\u70B9",...typeof i.data.hyperlink=="string"?{hyperlink:i.data.hyperlink}:{},...typeof i.data.note=="string"?{note:i.data.note}:{},...Array.isArray(i.data.refs)?{refs:i.data.refs}:{}}),lF=(i,e,t,r)=>{let n=new Set(["uid","text","refs"]);new Set([...Object.keys(e.data),...Object.keys(t.data)]).forEach(a=>{n.has(a)||ub(e.data[a])!==ub(t.data[a])&&r.push(Tc({mindmapId:i,path:`nodes.${t.uid}.data.${a}`,value:t.data[a],source:"adapter-diff"}))})},hF=i=>{let e=cb(i.previous),t=cb(i.next),r=[],n=[];return t.forEach((s,a)=>{let o=e.get(a);if(!o){let l=Array.from(t.values()).find(h=>h.parentUid===s.parentUid&&h.order===s.order-1&&e.has(h.uid));l?r.push({type:"insertSiblingAfter",mindmapId:i.mindmapId,targetNodeId:l.uid,node:fb(s)}):s.parentUid&&r.push({type:"insertChild",mindmapId:i.mindmapId,parentNodeId:s.parentUid,node:fb(s)});return}o.text!==s.text&&r.push({type:"updateText",mindmapId:i.mindmapId,nodeId:a,text:s.text}),(o.parentUid!==s.parentUid||o.order!==s.order)&&r.push({type:"moveNode",mindmapId:i.mindmapId,nodeId:a,newParentNodeId:s.parentUid??"",order:s.order}),lF(i.mindmapId,o,s,n)}),e.forEach((s,a)=>{!t.has(a)&&s.parentUid&&r.push({type:"deleteNode",mindmapId:i.mindmapId,nodeId:a})}),{commands:r,compatPatches:n}};var Hp={};tt(Hp,{getMindmapActionMapping:()=>Nc,listMindmapActionMappings:()=>qp,mapMindmapActionToCommand:()=>cF});var zs=i=>e=>e?`nodes.${e}.data.${i}`:null,mb=[{actionId:"undo",target:"runtimeCommand",runtimeCommand:"BACK",requiresActiveNode:!1,readonlyAllowed:!1},{actionId:"redo",target:"runtimeCommand",runtimeCommand:"FORWARD",requiresActiveNode:!1,readonlyAllowed:!1},{actionId:"editNode",target:"localView",requiresActiveNode:!0,readonlyAllowed:!1},{actionId:"insertSiblingAfter",target:"runtimeCommand",runtimeCommand:"INSERT_NODE",requiresActiveNode:!0,readonlyAllowed:!1},{actionId:"insertChild",target:"runtimeCommand",runtimeCommand:"INSERT_CHILD_NODE",requiresActiveNode:!0,readonlyAllowed:!1},{actionId:"deleteNode",target:"runtimeCommand",runtimeCommand:"REMOVE_NODE",requiresActiveNode:!0,readonlyAllowed:!1},{actionId:"summary",target:"runtimeCommand",runtimeCommand:"ADD_GENERALIZATION",requiresActiveNode:!0,readonlyAllowed:!1},{actionId:"associativeLine",target:"compatPatch",runtimeCommand:"ADD_ASSOCIATIVE_LINE",requiresActiveNode:!0,readonlyAllowed:!1},{actionId:"setTheme",target:"kernelCommand",requiresActiveNode:!1,readonlyAllowed:!1},{actionId:"setLayout",target:"kernelCommand",requiresActiveNode:!1,readonlyAllowed:!1},{actionId:"tag",target:"compatPatch",requiresActiveNode:!0,readonlyAllowed:!1,compatPath:zs("tag")},{actionId:"hyperlink",target:"compatPatch",requiresActiveNode:!0,readonlyAllowed:!1,compatPath:zs("hyperlink")},{actionId:"note",target:"compatPatch",requiresActiveNode:!0,readonlyAllowed:!1,compatPath:zs("note")},{actionId:"image",target:"compatPatch",requiresActiveNode:!0,readonlyAllowed:!1,compatPath:zs("image")},{actionId:"icon",target:"compatPatch",requiresActiveNode:!0,readonlyAllowed:!1,compatPath:zs("icon")},{actionId:"formula",target:"compatPatch",requiresActiveNode:!0,readonlyAllowed:!1,compatPath:zs("formula")},{actionId:"painter",target:"compatPatch",requiresActiveNode:!0,readonlyAllowed:!1,compatPath:zs("style")},{actionId:"import",target:"compatPatch",requiresActiveNode:!1,readonlyAllowed:!1,compatPath:()=>"import"},{actionId:"export",target:"runtimeCommand",runtimeCommand:"EXPORT",requiresActiveNode:!1,readonlyAllowed:!0},{actionId:"centerRoot",target:"localView",runtimeMethod:"centerRoot",requiresActiveNode:!1,readonlyAllowed:!0},{actionId:"zoomIn",target:"localView",runtimeMethod:"zoomIn",requiresActiveNode:!1,readonlyAllowed:!0},{actionId:"zoomOut",target:"localView",runtimeMethod:"zoomOut",requiresActiveNode:!1,readonlyAllowed:!0},{actionId:"fitView",target:"localView",runtimeMethod:"fitView",requiresActiveNode:!1,readonlyAllowed:!0},{actionId:"fullscreenCanvas",target:"localView",requiresActiveNode:!1,readonlyAllowed:!0},{actionId:"fullscreenPage",target:"localView",requiresActiveNode:!1,readonlyAllowed:!0},{actionId:"exitFullscreen",target:"localView",requiresActiveNode:!1,readonlyAllowed:!0},{actionId:"search",target:"localView",requiresActiveNode:!1,readonlyAllowed:!0},{actionId:"showMenu",target:"localView",requiresActiveNode:!1,readonlyAllowed:!0},{actionId:"expandCollapse",target:"localView",requiresActiveNode:!0,readonlyAllowed:!1},{actionId:"copyNodeText",target:"localView",requiresActiveNode:!0,readonlyAllowed:!0},{actionId:"readonly",target:"localView",requiresActiveNode:!1,readonlyAllowed:!0}],qp=()=>mb,Nc=i=>mb.find(e=>e.actionId===i)??null,dF=i=>{let e=i?.trim();return e||null},cF=i=>{let e=Nc(i.actionId);if(!e)return null;let t=dF(i.activeNodeId);if(e.requiresActiveNode&&!t)return null;if(i.actionId==="setTheme")return{command:Bp(i.mindmapId,i.value,i.themeConfig)};if(i.actionId==="setLayout")return{command:Pp(i.mindmapId,i.value)};if(i.actionId==="editNode")return{command:{type:"updateText",mindmapId:i.mindmapId,nodeId:t??"root",text:typeof i.value=="string"?i.value:""}};if(e.runtimeCommand&&["INSERT_CHILD_NODE","INSERT_NODE","DELETE_NODE","REMOVE_NODE"].includes(e.runtimeCommand)){let r=Op({mindmapId:i.mindmapId,runtimeCommand:e.runtimeCommand,activeNodeId:t,newNode:i.node});return r?{runtimeCommand:e.runtimeCommand,command:r}:{runtimeCommand:e.runtimeCommand}}if(e.compatPath){let r=e.compatPath(t);return r?{command:Tc({mindmapId:i.mindmapId,path:r,value:i.value??!0,source:i.source??"toolbar",actionId:i.actionId,runtimeRevision:i.runtimeRevision,kernelRevision:i.kernelRevision})}:null}return e.runtimeCommand?{runtimeCommand:e.runtimeCommand}:{}};var $p={};tt($p,{createDefaultMindmapShellInteractionState:()=>gb,deriveMindmapUiState:()=>wF,reduceMindmapChromeVisibility:()=>bF});var Up={};tt(Up,{MINDMAP_DEBUG_CHROME_QUERY_PARAM:()=>pb,MINDMAP_TOOLBAR_MORE_ACTION_ID:()=>uF,isMindmapDebugChromeEnabled:()=>pF,mindmapDefaultUiSchema:()=>ho,mindmapToolbarFileActionOrder:()=>mF,mindmapToolbarPrimaryActionOrder:()=>fF});var pb="mnoteMindmapDebugChrome",uF="more",fF=["undo","redo","editNode","insertSiblingAfter","deleteNode","insertChild","tag","hyperlink","note","image","icon","summary","associativeLine","formula"],mF=["import","export"],Ee=(i,e,t,r,n,s,a)=>({id:i,iconKey:e,shortLabel:t,longLabel:r,priority:n,overflowGroup:s,cluster:a}),ho={toolbarGroups:[{id:"history",label:"\u5386\u53F2",actions:["undo","redo"],collapsePriority:4},{id:"node",label:"\u8282\u70B9",actions:["editNode","insertSiblingAfter","deleteNode","insertChild"],collapsePriority:1},{id:"insert",label:"\u63D2\u5165",actions:["tag","hyperlink","note","image","icon","summary","associativeLine","formula"],collapsePriority:2},{id:"file",label:"\u6587\u4EF6",actions:["import","export"],collapsePriority:5},{id:"view",label:"\u89C6\u56FE",actions:["painter","centerRoot","zoomOut","zoomIn","search","readonly"],collapsePriority:3}],toolbarActionMeta:{undo:Ee("undo","undo","\u64A4\u9500","\u64A4\u9500",10,"history","main"),redo:Ee("redo","redo","\u91CD\u505A","\u91CD\u505A",20,"history","main"),editNode:Ee("editNode","type","\u7F16\u8F91","\u7F16\u8F91\u8282\u70B9",30,"node","main"),insertSiblingAfter:Ee("insertSiblingAfter","sibling","\u540C\u7EA7","\u63D2\u5165\u540C\u7EA7\u8282\u70B9",40,"node","main"),deleteNode:Ee("deleteNode","trash","\u5220\u9664","\u5220\u9664\u8282\u70B9",50,"node","main"),insertChild:Ee("insertChild","child","\u5B50\u7EA7","\u63D2\u5165\u5B50\u8282\u70B9",60,"node","main"),tag:Ee("tag","tag","\u6807\u7B7E","\u6807\u7B7E",70,"insert","main"),hyperlink:Ee("hyperlink","link","\u94FE\u63A5","\u8D85\u94FE\u63A5",80,"insert","main"),note:Ee("note","note","\u5907\u6CE8","\u5907\u6CE8",90,"insert","main"),image:Ee("image","image","\u56FE\u7247","\u56FE\u7247",100,"insert","main"),icon:Ee("icon","smile","\u56FE\u6807","\u56FE\u6807",110,"insert","main"),summary:Ee("summary","summary","\u6982\u8981","\u6982\u8981",120,"insert","main"),associativeLine:Ee("associativeLine","route","\u5173\u8054","\u5173\u8054\u7EBF",130,"insert","main"),formula:Ee("formula","formula","\u516C\u5F0F","\u516C\u5F0F",140,"insert","main"),painter:Ee("painter","paintbrush","\u683C\u5F0F","\u683C\u5F0F\u5237",210,"view","view"),import:Ee("import","import","\u5BFC\u5165","\u5BFC\u5165",310,"file","file"),export:Ee("export","export","\u5BFC\u51FA","\u5BFC\u51FA",320,"file","file"),setTheme:Ee("setTheme","palette","\u4E3B\u9898","\u4E3B\u9898",410,"view","view"),setLayout:Ee("setLayout","layout","\u7ED3\u6784","\u7ED3\u6784",420,"view","view"),zoomIn:Ee("zoomIn","zoom-in","\u653E\u5927","\u653E\u5927",510,"view","view"),zoomOut:Ee("zoomOut","zoom-out","\u7F29\u5C0F","\u7F29\u5C0F",500,"view","view"),fitView:Ee("fitView","fit","\u9002\u5E94","\u9002\u5E94\u753B\u5E03",520,"view","view"),centerRoot:Ee("centerRoot","target","\u56DE\u6839","\u56DE\u5230\u6839\u8282\u70B9",490,"view","view"),fullscreenCanvas:Ee("fullscreenCanvas","fullscreen","\u5168\u5C4F","\u5168\u5C4F\u67E5\u770B",550,"view","view"),fullscreenPage:Ee("fullscreenPage","fullscreen-page","\u5168\u9875","\u5168\u5C4F\u7F16\u8F91",560,"view","view"),exitFullscreen:Ee("exitFullscreen","exit-fullscreen","\u9000\u51FA","\u9000\u51FA\u5168\u5C4F",570,"view","view"),search:Ee("search","search","\u641C\u7D22","\u641C\u7D22",530,"view","view"),showMenu:Ee("showMenu","menu","\u83DC\u5355","\u663E\u793A\u83DC\u5355",580,"view","view"),expandCollapse:Ee("expandCollapse","expand","\u5C55\u5F00","\u5C55\u5F00/\u6536\u8D77",610,"view","view"),copyNodeText:Ee("copyNodeText","copy","\u590D\u5236","\u590D\u5236\u6587\u672C",620,"view","view"),readonly:Ee("readonly","lock","\u53EA\u8BFB","\u53EA\u8BFB",540,"view","view")},sidebarPanels:[{id:"nodeStyle",kind:"nodeStyle",label:"\u8282\u70B9\u6837\u5F0F",icon:"palette",runtimeCapability:"node-style",phase:1,options:[{id:"node-fill-blue",label:"\u6D77\u84DD",actionId:"painter",value:"#dbeafe",controlType:"swatch",preview:"#dbeafe",compatPath:"nodes.$active.data.fillColor"},{id:"node-fill-green",label:"\u8584\u8377",actionId:"painter",value:"#dcfce7",controlType:"swatch",preview:"#dcfce7",compatPath:"nodes.$active.data.fillColor"},{id:"node-fill-amber",label:"\u6696\u9EC4",actionId:"painter",value:"#fef3c7",controlType:"swatch",preview:"#fef3c7",compatPath:"nodes.$active.data.fillColor"},{id:"node-text-dark",label:"\u6DF1\u8272\u6587\u5B57",actionId:"painter",value:"#0f172a",controlType:"swatch",preview:"#0f172a",compatPath:"nodes.$active.data.color"},{id:"node-text-blue",label:"\u84DD\u8272\u6587\u5B57",actionId:"painter",value:"#1d4ed8",controlType:"swatch",preview:"#1d4ed8",compatPath:"nodes.$active.data.color"},{id:"node-font-14",label:"14 px",actionId:"painter",value:14,controlType:"segmented",compatPath:"nodes.$active.data.fontSize"},{id:"node-font-18",label:"18 px",actionId:"painter",value:18,controlType:"segmented",compatPath:"nodes.$active.data.fontSize"},{id:"node-font-bold",label:"\u52A0\u7C97",actionId:"painter",value:!0,controlType:"toggle",compatPath:"nodes.$active.data.fontWeight"},{id:"node-font-italic",label:"\u659C\u4F53",actionId:"painter",value:!0,controlType:"toggle",compatPath:"nodes.$active.data.fontStyle"},{id:"node-shape-round",label:"\u5706\u89D2\u77E9\u5F62",actionId:"painter",value:"roundedRectangle",controlType:"button",compatPath:"nodes.$active.data.shape"},{id:"node-shape-rect",label:"\u77E9\u5F62",actionId:"painter",value:"rectangle",controlType:"button",compatPath:"nodes.$active.data.shape"},{id:"node-border-blue",label:"\u84DD\u8272\u8FB9\u6846",actionId:"painter",value:"#60a5fa",controlType:"swatch",preview:"#60a5fa",compatPath:"nodes.$active.data.borderColor"},{id:"node-line-teal",label:"\u9752\u8272\u5206\u652F\u7EBF",actionId:"painter",value:"#14b8a6",controlType:"swatch",preview:"#14b8a6",compatPath:"nodes.$active.data.lineColor"},{id:"node-line-width-2",label:"\u8FB9\u7EBF 2",actionId:"painter",value:2,controlType:"segmented",compatPath:"nodes.$active.data.lineWidth"}]},{id:"baseStyle",kind:"baseStyle",label:"\u5BFC\u56FE\u6837\u5F0F",icon:"sliders",runtimeCapability:"base-style",phase:1,options:[{id:"base-curve-line",label:"\u66F2\u7EBF",actionId:"painter",value:"curve",controlType:"segmented",compatPath:"style.map.lineStyle"},{id:"base-direct-line",label:"\u76F4\u7EBF",actionId:"painter",value:"straight",controlType:"segmented",compatPath:"style.map.lineStyle"},{id:"base-rainbow-lines",label:"\u5F69\u8679\u7EBF\u6761",actionId:"painter",value:{enabled:!0},controlType:"toggle",compatPath:"style.map.rainbowLines"},{id:"base-line-width-2",label:"\u7EBF\u5BBD 2",actionId:"painter",value:2,controlType:"segmented",compatPath:"style.map.lineWidth"},{id:"base-line-width-4",label:"\u7EBF\u5BBD 4",actionId:"painter",value:4,controlType:"segmented",compatPath:"style.map.lineWidth"},{id:"base-background-light",label:"\u6D45\u8272\u80CC\u666F",actionId:"painter",value:"#f8fafc",controlType:"swatch",preview:"#f8fafc",compatPath:"style.map.backgroundColor"},{id:"base-node-spacing-36",label:"\u8282\u70B9\u95F4\u8DDD 36",actionId:"painter",value:36,controlType:"numberInput",compatPath:"style.map.nodeSpacing"},{id:"base-summary-bracket",label:"\u62EC\u53F7\u6982\u8981",actionId:"painter",value:"bracket",controlType:"select",compatPath:"style.map.summaryStyle"}]},{id:"theme",kind:"theme",label:"\u4E3B\u9898",icon:"swatch",runtimeCapability:"theme",phase:1,options:[{id:"theme-classic",label:"Classic",actionId:"setTheme",value:"classic",controlType:"swatch",preview:"#60a5fa",description:"\u9ED8\u8BA4\u4E3B\u9898"},{id:"theme-classic4",label:"KMind",actionId:"setTheme",value:"classic4",controlType:"swatch",preview:"#22c55e",description:"KMind-like"},{id:"theme-simple",label:"Simple",actionId:"setTheme",value:"simple",controlType:"swatch",preview:"#f59e0b",description:"\u8F7B\u91CF\u4E3B\u9898"},{id:"theme-dark",label:"Dark",actionId:"setTheme",value:"dark",controlType:"swatch",preview:"#334155",description:"\u6DF1\u8272\u4E3B\u9898"}]},{id:"structure",kind:"structure",label:"\u7ED3\u6784",icon:"layout",runtimeCapability:"layout",phase:1,options:[{id:"layout-logical",label:"\u903B\u8F91\u7ED3\u6784\u56FE",actionId:"setLayout",value:"logicalStructure",controlType:"layoutCard",preview:"logicalStructure"},{id:"layout-mind-map",label:"\u601D\u7EF4\u5BFC\u56FE",actionId:"setLayout",value:"mindMap",controlType:"layoutCard",preview:"mindMap"},{id:"layout-organization",label:"\u7EC4\u7EC7\u7ED3\u6784\u56FE",actionId:"setLayout",value:"organizationStructure",controlType:"layoutCard",preview:"organizationStructure"},{id:"layout-catalog",label:"\u76EE\u5F55\u7EC4\u7EC7\u56FE",actionId:"setLayout",value:"catalogOrganization",controlType:"layoutCard",preview:"catalogOrganization"},{id:"layout-timeline",label:"\u65F6\u95F4\u8F74",actionId:"setLayout",value:"timeline",controlType:"layoutCard",preview:"timeline"},{id:"layout-fishbone",label:"\u9C7C\u9AA8\u56FE",actionId:"setLayout",value:"fishbone",controlType:"layoutCard",preview:"fishbone"}]},{id:"outline",kind:"outline",label:"\u5927\u7EB2",icon:"list-tree",runtimeCapability:"outline",phase:1,options:[]},{id:"shortcutKey",kind:"shortcutKey",label:"\u5FEB\u6377\u952E",icon:"sparkles",runtimeCapability:"shortcut-key",phase:1,options:[{id:"shortcut-insert-child",label:"Tab",description:"\u63D2\u5165\u5B50\u8282\u70B9",actionId:null,value:null,controlType:"treeItem",readonly:!0},{id:"shortcut-insert-sibling",label:"Enter",description:"\u63D2\u5165\u540C\u7EA7\u8282\u70B9",actionId:null,value:null,controlType:"treeItem",readonly:!0},{id:"shortcut-delete",label:"Delete",description:"\u5220\u9664\u8282\u70B9",actionId:null,value:null,controlType:"treeItem",readonly:!0}]},{id:"settings",kind:"settings",label:"\u8BBE\u7F6E",icon:"hexagon",runtimeCapability:"settings",phase:1,options:[{id:"settings-readonly-hint",label:"\u53EA\u8BFB\u6A21\u5F0F",description:"\u5BFC\u822A\u680F\u5207\u6362",actionId:null,value:null,controlType:"toggle",readonly:!0},{id:"settings-mouse",label:"\u9F20\u6807\u884C\u4E3A",description:"\u5DE6\u952E\u9009\u4E2D\uFF0C\u53F3\u952E\u62D6\u62FD",actionId:null,value:"leftSelectRightDrag",controlType:"select",readonly:!0}]}],navigatorItems:[{id:"stats",label:"\u7EDF\u8BA1",actionId:null,readOnly:!0,displayMode:"text"},{id:"centerRoot",label:"\u56DE\u6839\u8282\u70B9",actionId:"centerRoot",readOnly:!0,displayMode:"button"},{id:"search",label:"\u641C\u7D22",actionId:"search",readOnly:!0,displayMode:"button"},{id:"zoomOut",label:"\u7F29\u5C0F",actionId:"zoomOut",readOnly:!0,displayMode:"button"},{id:"zoom",label:"\u7F29\u653E",actionId:null,readOnly:!0,displayMode:"input"},{id:"zoomIn",label:"\u653E\u5927",actionId:"zoomIn",readOnly:!0,displayMode:"button"},{id:"fullscreen",label:"\u5168\u5C4F",actionId:"fullscreenCanvas",readOnly:!0,displayMode:"button"},{id:"readonly",label:"\u53EA\u8BFB",actionId:"readonly",readOnly:!0,displayMode:"button"}],contextMenuItems:[{id:"insertChild",label:"\u63D2\u5165\u5B50\u8282\u70B9",actionId:"insertChild",requiresNode:!0,phase:1},{id:"insertSiblingAfter",label:"\u63D2\u5165\u540C\u7EA7\u8282\u70B9",actionId:"insertSiblingAfter",requiresNode:!0,phase:1},{id:"deleteNode",label:"\u5220\u9664\u8282\u70B9",actionId:"deleteNode",requiresNode:!0,phase:1},{id:"summary",label:"\u6982\u8981",actionId:"summary",requiresNode:!0,phase:1},{id:"associativeLine",label:"\u5173\u8054\u7EBF",actionId:"associativeLine",requiresNode:!0,phase:1},{id:"expandCollapse",label:"\u5C55\u5F00/\u6536\u8D77",actionId:"expandCollapse",requiresNode:!0,phase:1},{id:"copyNodeText",label:"\u590D\u5236\u6587\u672C",actionId:"copyNodeText",requiresNode:!0,phase:1},{id:"centerRoot",label:"\u56DE\u6839\u8282\u70B9",actionId:"centerRoot",requiresNode:!1,phase:1},{id:"fitView",label:"\u9002\u5E94\u753B\u5E03",actionId:"fitView",requiresNode:!1,phase:1},{id:"search",label:"\u641C\u7D22",actionId:"search",requiresNode:!1,phase:1},{id:"readonly",label:"\u53EA\u8BFB\u5207\u6362",actionId:"readonly",requiresNode:!1,phase:1},{id:"showMenu",label:"\u663E\u793A\u83DC\u5355",actionId:"showMenu",requiresNode:!1,phase:1}]},pF=i=>{try{let e=new URL(i).searchParams.get(pb);return e==="1"||e==="true"}catch{return!1}};var gF=()=>{let i=[...ho.toolbarGroups.flatMap(e=>e.actions),...ho.navigatorItems.flatMap(e=>e.actionId?[e.actionId]:[]),...ho.contextMenuItems.map(e=>e.actionId),...qp().map(e=>e.actionId)];return[...new Set(i)]},xF=i=>{let e=i?.trim();return e||null},yF=i=>typeof i!="number"||!Number.isFinite(i)?100:Math.max(10,Math.min(500,Math.round(i))),vF=new Set(["tag","hyperlink","note","image","icon","associativeLine","formula","import","export"]),gb=(i={})=>({chromeVisibility:i.chromeVisibility??"visible",toolbarOverflow:{availableWidth:i.toolbarOverflow?.availableWidth??null,visibleActionIds:i.toolbarOverflow?.visibleActionIds??[],overflowActionIds:i.toolbarOverflow?.overflowActionIds??[],moreOpen:i.toolbarOverflow?.moreOpen??!1},fullscreen:{mode:i.fullscreen?.mode??"none",isFullscreen:i.fullscreen?.isFullscreen??!1,target:i.fullscreen?.target??"mindmap-root",apiAvailable:i.fullscreen?.apiAvailable??!0},sidebar:{triggerVisible:i.sidebar?.triggerVisible??!0,panelOpen:i.sidebar?.panelOpen??!0,activePanelId:i.sidebar?.activePanelId??ho.sidebarPanels[0]?.id??null,drawerWidth:i.sidebar?.drawerWidth??300,collapsedByToggle:i.sidebar?.collapsedByToggle??!1},navigator:{searchOpen:i.navigator?.searchOpen??!1,minimapOpen:i.navigator?.minimapOpen??!1,readonly:i.navigator?.readonly??!1,zoomPercent:yF(i.navigator?.zoomPercent),mouseBehavior:i.navigator?.mouseBehavior??"leftSelectRightDrag"}}),bF=(i,e)=>e==="pointerLeave"?"hiddenByPointerLeave":e==="pointerEnter"?i:e==="restoreClick"?"visible":e==="hideToggle"?"hiddenByToggle":e==="showToggle"?"visible":e==="enterFullscreen"?i==="visible"?"visible":"hiddenByFullscreen":e==="exitFullscreen"&&i==="hiddenByFullscreen"?"visible":i,wF=i=>{let e=xF(i.activeNodeId),t=i.runtimeCapabilities?new Set(i.runtimeCapabilities):null,r={},n=gb({...i.shell,navigator:{...i.shell?.navigator,readonly:i.readonly}});return gF().forEach(s=>{let a=Nc(s);if(!a){r[s]=!0;return}if(a.requiresActiveNode&&!e){r[s]=!0;return}if(i.readonly&&!a.readonlyAllowed){r[s]=!0;return}if(t&&!t.has(a.target)){r[s]=!0;return}if(vF.has(s)){r[s]=!0;return}r[s]=!1}),{activeNodeId:e,readonly:i.readonly,disabledActions:r,shell:n}};var jp={};tt(jp,{resolveMindmapShortcutAction:()=>MF,shouldInterceptMindmapShortcut:()=>TF});var MF=i=>i.ctrlKey||i.metaKey||i.altKey||i.shiftKey?null:i.key==="Enter"?"insertSiblingAfter":i.key==="Tab"||i.key==="Insert"?"insertChild":i.key==="Delete"||i.key==="Backspace"?"deleteNode":i.key==="F2"?"editNode":null,TF=i=>i.debugChromeEnabled||!i.bridgeReady||i.readonly||i.isComposing||i.isEditableTarget?!1:i.targetInsideRoot?!0:i.keyboardShortcutArmed;function d0(){return{status:"idle"}}function xb(i,e){return{status:"armed",armedAt:e,reason:i}}function yb(){return d0()}function vb(i,e,t=1500){return i.status!=="armed"?{state:i,suppressed:!1,expired:!1}:e-i.armedAt>t?{state:d0(),suppressed:!1,expired:!0}:{state:d0(),suppressed:!0,expired:!1}}function bb(i){return{endpoint:`/api/mindmap/${encodeURIComponent(i.documentId)}/${encodeURIComponent(i.mindmapId)}`,init:{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({data:i.data,createOnly:!0})}}}function Vn(i){let e=i;return e.default&&typeof e.default=="object"?e.default:i}var{applyMindmapCommandsLocally:NF,isLocallyApplicableMindmapCommandSet:EF}=Vn(Dc),{createLeptosMindmapAdapter:SF,executeMindmapCommandApply:Gp,executeMindmapCommandApplyAndRefreshProjection:AF,requestMindmapAdapterProjection:kF}=Vn(Dp),{createViewPatchCommand:CF,createCompatPayloadPatch:_F,diffMindmapRuntimeDataToKernelCommands:LF}=Vn(Fp),{getMindmapActionMapping:wb,mapMindmapActionToCommand:IF}=Vn(Hp),{canonicalizeMindmapData:vi}=Vn(Pc),{deriveMindmapUiState:Vp,reduceMindmapChromeVisibility:Ec}=Vn($p),{resolveMindmapShortcutAction:zF,shouldInterceptMindmapShortcut:RF}=Vn(jp),{isMindmapDebugChromeEnabled:DF,mindmapDefaultUiSchema:Sc,mindmapToolbarFileActionOrder:OF,mindmapToolbarPrimaryActionOrder:Xp}=Vn(Up);function BF(i){return typeof i=="string"&&i.length>0?{"data-block-id":i,id:i}:{}}function PF(i){if(i.mnoteBlockType!=="mindmap")return{};let e={"data-mnote-block-type":"mindmap"};return typeof i.mindmapId=="string"&&(e["data-mnote-mindmap-id"]=i.mindmapId),typeof i.rootNodeId=="string"&&(e["data-mnote-root-node-id"]=i.rootNodeId),typeof i.projectionVersion=="number"&&(e["data-mnote-projection-version"]=String(i.projectionVersion)),e}function Rs(i){return String(i??"").replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""").replaceAll("'","'")}function Wp(i){if(typeof i!="string")return null;let e=i.trim();return e.length>0?e:null}function FF(i){let e=window.location.pathname.match(/\/documents\/([^/?#]+)/);if(e?.[1])return decodeURIComponent(e[1]);let t=window.location.pathname.match(/\/mindmap\/([^/?#]+)\/([^/?#]+)/);if(t?.[1])return decodeURIComponent(t[1]);let r=Wp(i?.closest("[data-document-id]")?.getAttribute("data-document-id"));if(r)return r;let n=Wp(document.body?.getAttribute("data-document-id"));if(n)return n;let s=Wp(document.querySelector(".document-shell[data-document-id], [data-pane-document-id], [data-document-id]")?.getAttribute("data-document-id")??document.querySelector("[data-pane-document-id]")?.getAttribute("data-pane-document-id"));return s||null}function Mb(i,e){let r=vi(i.root).data?.uid;return typeof r=="string"&&r.trim().length>0?r.trim():e}function Yp(i){let t=vi(i.root).data?.text;return typeof t=="string"&&t.trim().length>0?t.trim():"\u672A\u547D\u540D\u8282\u70B9"}function Ds(i){if(typeof i=="string"&&i.trim().length>0)return i.trim();if(!i||typeof i!="object")return null;let e=i;if(typeof e.uid=="string"&&e.uid.trim().length>0)return e.uid.trim();let t=e.data&&typeof e.data=="object"&&!Array.isArray(e.data)?e.data:{};if(typeof t.uid=="string"&&t.uid.trim().length>0)return t.uid.trim();let r=e.getData;if(typeof r=="function")try{let n=r.call(e,"uid");if(typeof n=="string"&&n.trim().length>0)return n.trim()}catch{return null}return null}function Ac(i,e){let t=window,r=t.__MNOTE_LEPTOS_MINDMAP_BRIDGES__??{};t.__MNOTE_LEPTOS_MINDMAP_BRIDGES__=r,e?r[i]=e:delete r[i]}function Lt(i){return typeof i=="object"&&i!==null&&!Array.isArray(i)}function Os(i){return JSON.parse(JSON.stringify(i))}function qF(i){if(!(i instanceof HTMLElement))return!1;let e=i.tagName;return e==="INPUT"||e==="TEXTAREA"||e==="SELECT"?!0:i.isContentEditable?!i.matches(".ProseMirror"):!1}function HF(i){if(!Lt(i))return null;let e=i.view;return Lt(e)&&Lt(e.state)?e:null}function UF(i){if(!(i!=="insertChild"&&i!=="insertSiblingAfter"))return{uid:`node_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,8)}`,text:"\u65B0\u8282\u70B9"}}function $F(i,e){let t=e?.trim();if(!t)return!1;let r=vi(i),n=!1,s=a=>{if(n)return;let o=vi(a);if(o.data?.uid===t){n=!0;return}(Array.isArray(o.children)?o.children:[]).forEach(s)};return s(r),n}function Tb(i){let e=vi(i),t=Array.isArray(e.children)?[...e.children]:[];for(;t.length>0;){let r=vi(t.shift()),n=r.data?.uid;if(typeof n=="string"&&n.trim().length>0)return n.trim();Array.isArray(r.children)&&t.push(...r.children)}return null}function jF(i,e){let t=e?.trim();if(!t)return null;let r=null,n=s=>{if(r)return;let a=vi(s);if(a.data?.uid===t){r=a;return}(Array.isArray(a.children)?a.children:[]).forEach(n)};return n(i),r}function GF(i,e){let t=jF(i,e),r=t&&Lt(t.data)?t.data.text:null;return typeof r=="string"?r:""}function VF(i,e=10){let t=vi(i),r=[],n=(s,a)=>{if(r.length>=e)return;let o=vi(s),l=typeof o.data?.text=="string"&&o.data.text.trim().length>0?o.data.text.trim():"\u672A\u547D\u540D\u8282\u70B9";r.push(`${" ".repeat(Math.max(a-1,0))}${l}`),(Array.isArray(o.children)?o.children:[]).forEach(d=>n(d,a+1))};return n(t,1),r}function Nb(i,e){let t=i?.trim();return t?t.includes("$active")?e?t.replaceAll("$active",e):null:t:null}var Eb={undo:"\u64A4\u9500",redo:"\u91CD\u505A",editNode:"\u7F16\u8F91\u8282\u70B9",insertSiblingAfter:"\u540C\u7EA7\u8282\u70B9",insertChild:"\u5B50\u8282\u70B9",deleteNode:"\u5220\u9664",tag:"\u6807\u7B7E",hyperlink:"\u94FE\u63A5",note:"\u5907\u6CE8",image:"\u56FE\u7247",icon:"\u56FE\u6807",summary:"\u6982\u8981",associativeLine:"\u5173\u8054\u7EBF",formula:"\u516C\u5F0F",painter:"\u683C\u5F0F\u5237",import:"\u5BFC\u5165",export:"\u5BFC\u51FA",setTheme:"\u4E3B\u9898",setLayout:"\u7ED3\u6784",zoomIn:"\u653E\u5927",zoomOut:"\u7F29\u5C0F",fitView:"\u9002\u5E94",centerRoot:"\u56DE\u6839",fullscreenCanvas:"\u5168\u5C4F",fullscreenPage:"\u5168\u9875",exitFullscreen:"\u9000\u51FA",search:"\u641C\u7D22",showMenu:"\u663E\u793A\u83DC\u5355",expandCollapse:"\u5C55\u5F00/\u6536\u8D77",copyNodeText:"\u590D\u5236\u6587\u672C",readonly:"\u53EA\u8BFB"},WF={undo:"\u21B6",redo:"\u21B7",editNode:"T",insertSiblingAfter:"\u21B5",insertChild:"+",deleteNode:"\xD7",tag:"#",hyperlink:"\u2301",note:"N",image:"\u25A1",icon:"\u2606",summary:"{",associativeLine:"\u2307",formula:"fx",painter:"\u25D0",import:"\u21E7",export:"\u21E9",centerRoot:"\u25CE",zoomOut:"-",zoomIn:"+",search:"\u2315",fullscreenCanvas:"\u26F6",fullscreenPage:"\u25A3",exitFullscreen:"\u2921",showMenu:"\u2630",expandCollapse:"\u2922",copyNodeText:"C",readonly:"\u9501"},YF={undo:"\u21B6",redo:"\u21B7",type:"T",sibling:"\u21B5",trash:"\xD7",child:"+",tag:"#",link:"\u2301",note:"N",image:"\u25A1",smile:"\u2606",summary:"{",route:"\u2307",formula:"fx",paintbrush:"\u25D0",import:"\u21E7",export:"\u21E9",target:"\u25CE",fullscreen:"\u26F6","fullscreen-page":"\u25A3","exit-fullscreen":"\u2921",menu:"\u2630","zoom-out":"-","zoom-in":"+",search:"\u2315",lock:"\u9501"},XF=i=>{let e=[...Xp];if(i===null||!Number.isFinite(i))return{availableWidth:null,visibleActionIds:e,overflowActionIds:[]};let t=118,r=96,n=50,s=Math.max(0,i-t-r),a=Math.max(2,Math.min(e.length,Math.floor(s/n)));if(a>=e.length)return{availableWidth:i,visibleActionIds:e,overflowActionIds:[]};let o=Math.max(1,a-1);return{availableWidth:i,visibleActionIds:e.slice(0,o),overflowActionIds:e.slice(o)}};function KF(i){return({node:e,getPos:t})=>{let r=e,n=0,s=null,a=null,o=null,l=null,h=null,d=null,c=d0(),f=null,m=!1,g=Sc.sidebarPanels[0]?.id??"nodeStyle",x=!0,y=!0,b=!1,S=300,A=null,C=null,I=!1,O=!1,q=null,P=!1,W=null,ne=null,re=null,oe=null,ke=null,Q=null,Y="visible",le=!1,ce=!1,at="canvas",It=null,bt="canvas",qi=0,zt=0,di=null,nn=null,Hi=null,co=0,Mr=0,tr=!1,sn=null,bi=null,Ui=!1,wi=DF(window.location.href),Je=document.createElement("div");Je.className="mnote-mindmap-placeholder",Je.dataset.mnoteBlockType="mindmap",Je.dataset.testid="mnote-mindmap-placeholder",Je.setAttribute("contenteditable","false");let ve=document.createElement("div");ve.className="mnote-mindmap-editor-root",ve.dataset.testid="mnote-mindmap-editor-root",ve.dataset.mnoteSceneQuery="mindmap.simple_mind_map_scene.get";let an=()=>FF(ve),R=document.createElement("div");R.dataset.testid="leptos-mindmap-island",R.dataset.runtime="simple-mind-map",R.dataset.stage="loading",R.dataset.debugChrome=wi?"true":"false",R.dataset.suppressRuntimeDiffState="idle",R.className="mnote-leptos-mindmap-shell";let Wn=()=>{R.dataset.suppressRuntimeDiffState=c.status,R.dataset.suppressRuntimeDiffReason=c.status==="armed"?c.reason:"",R.dataset.suppressRuntimeDiffSince=c.status==="armed"?String(c.armedAt):""},Bs=M=>{c=xb(M,Date.now()),Wn()},$i=()=>{c=yb(),Wn()},Yn=document.createElement("div");Yn.className="mnote-mindmap-workspace",Yn.dataset.debugChrome=wi?"true":"false",Yn.dataset.layout=wi?"debug-grid":"floating-overlay";let c0=document.createElement("div");c0.className="mnote-mindmap-canvas-layer",c0.dataset.testid="mindmap-canvas-layer";let Xn=document.createElement("div");Xn.className="mnote-mindmap-overlay-layer",Xn.dataset.testid="mindmap-overlay-layer";let mt=document.createElement("div");mt.className="mnote-leptos-mindmap-runtime",mt.dataset.testid="simple-mind-map-runtime",mt.dataset.runtime="simple-mind-map",mt.dataset.runtimeEngine="pending";let ir=document.createElement("div");ir.className="mnote-mindmap-rust-shell-mount",ir.dataset.testid="mindmap-rust-shell-mount",ir.dataset.uiShellSource="leptos-rust-shell";let Kn=document.createElement("div");Kn.className="mnote-mindmap-command-toolbar",Kn.dataset.testid="mindmap-command-toolbar";let Zn=document.createElement("aside");Zn.className="mnote-mindmap-side-panel",Zn.dataset.testid="mindmap-sidebar";let Qn=document.createElement("div");Qn.className="mnote-mindmap-bottom-bar",Qn.dataset.testid="mindmap-bottom-bar";let et=()=>{let M=typeof r.attrs.mindmapId=="string"&&r.attrs.mindmapId.length>0?r.attrs.mindmapId:"mindmap",L=typeof r.attrs.rootNodeId=="string"&&r.attrs.rootNodeId.length>0?r.attrs.rootNodeId:"root";return{mindmapId:M,rootNodeId:L}},Kp=M=>JSON.stringify({mnoteBlockType:M.attrs.mnoteBlockType??null,mindmapId:M.attrs.mindmapId??null,rootNodeId:M.attrs.rootNodeId??null,projectionVersion:M.attrs.projectionVersion??null}),u0=()=>{let{mindmapId:M,rootNodeId:L}=et();Je.dataset.mnoteMindmapId=M,Je.dataset.mnoteRootNodeId=L,Je.dataset.mnoteProjectionVersion=String(r.attrs.projectionVersion??1),ve.dataset.mnoteMindmapId=M,ve.dataset.mnoteRootNodeId=L,ve.dataset.mnoteProjectionVersion=String(r.attrs.projectionVersion??1),ve.dataset.mnoteSceneQuery="mindmap.simple_mind_map_scene.get"},f0=()=>{if(!(nn===null||!Hi)){try{Hi.unmount(nn)}catch{}nn=null,Hi=null,ir.replaceChildren()}},Zp=()=>{let M=s?.getSnapshot(),L=Lt(M)&&"root"in M?M.root:M??a?.root,D=0,F=0,K=te=>{if(!Lt(te))return;D+=1;let we=Lt(te.data)&&typeof te.data.text=="string"?te.data.text:"";F+=we.trim().length,(Array.isArray(te.children)?te.children:[]).forEach(K)};K(L);let ee=a?.view,ue=Lt(M)&&Lt(M.view)&&Lt(M.view.state)&&typeof M.view.state.scale=="number"?M.view.state.scale:Lt(ee)&&Lt(ee.state)&&typeof ee.state.scale=="number"?ee.state.scale:1;return{nodeCount:D,wordCount:F,zoomPercent:Math.round(ue*100)}},Sb=()=>a?{...vi(a.root),layout:a.layout,theme:a.theme,themeConfig:a.themeConfig,view:a.view,config:a.config,compatPayload:a.compatPayload}:null,Ab=(M,L)=>{a&&(a.root=Os(vi(M)),"layout"in M&&(a.layout=M.layout),"theme"in M&&(a.theme=M.theme),"themeConfig"in M&&(a.themeConfig=M.themeConfig),"view"in M&&(a.view=M.view),"config"in M&&(a.config=M.config),"compatPayload"in M&&(a.compatPayload=M.compatPayload),typeof L=="number"&&Number.isFinite(L)&&(a.kernelRevision=L),o=Os(a.root))},kb=()=>{let M=s?.getSnapshot(),L=Lt(M)&&"root"in M?M.root:M??a?.root;return VF(L)},m0=()=>{P&&(P=!1,Le())},Qp=(M,L)=>{let D=ve.getBoundingClientRect();qi=Math.round(M-D.left),zt=Math.round(L-D.top)},p0=()=>{!ce&&!R.dataset.contextMenuKind||(ce=!1,at="canvas",It=null,bt="canvas",delete R.dataset.contextMenuKind,delete R.dataset.contextMenuTargetNodeId,delete R.dataset.contextMenuTargetNodeKind,b0())},g0=M=>Ds(M),Cb=()=>{let M=s?.instance.renderer;return M?.activeNodeList?.[0]??M?.lastActiveNodeList?.[0]??M?.root??M?.renderTree?._node??null},x0=(M,L,D)=>{let F=Ds(L);return F&&$F(M.root,F)?F:Tb(M.root)??Mb(M,D)},kc=M=>{let L=Ds(M);return L||(g0(h)??g0(Cb())??null)},_b=M=>{if(!M||typeof M!="object")return"node";let L=M;return L.isRoot===!0?"root":L.isGeneralization===!0?"generalization":"node"},Lb=M=>{let L=s?.instance.renderer;if(L)try{L.clearActiveNodeList?.(),L.addNodeToActiveList?.(M,!0),L.emitNodeActiveEvent?.(M,[M])}catch{}},uo=M=>{let L=Ds(M),D=s?.instance.renderer,F=L?D?.findNodeByUid?.(L)??null:D?.activeNodeList?.[0]??D?.lastActiveNodeList?.[0]??D?.root??D?.renderTree?._node;if(F)try{D?.clearActiveNodeList?.(),D?.addNodeToActiveList?.(F,!0),D&&(D.lastActiveNodeList=[F]),D?.emitNodeActiveEvent?.(F,[F]),s?.instance.execCommand?.("SET_NODE_ACTIVE",F,!0),h=F;let ee=L??g0(F)??l??et().rootNodeId;return l=ee,d=ee,R.dataset.lastRuntimeSelectionSync=ee,!0}catch{}let K=s?.instance.execCommand;if(typeof K!="function"||!L)return!1;try{return K.call(s?.instance,"GO_TARGET_NODE",L),l=L,d=L,R.dataset.lastRuntimeSelectionSync=L,!0}catch{return!1}},Jp=M=>{let L=Ds(M),D=s?.instance.renderer;return{wantedNodeId:L,runtimeNode:L?D?.findNodeByUid?.(L)??null:D?.activeNodeList?.[0]??D?.lastActiveNodeList?.[0]??D?.root??D?.renderTree?._node}},Ib=async(M,L=3)=>{let D=Jp(M);for(let F=1;!D.runtimeNode&&Fwindow.requestAnimationFrame(()=>K())),D=Jp(M);return D},zb=async(M,L,D)=>{let F=M==="DELETE_NODE"?"REMOVE_NODE":M,K=s?.instance;if(!K||typeof K.execCommand!="function")return{ok:!1,command:F,error:"runtime_unavailable",message:"runtime_instance_missing"};let{wantedNodeId:ee,runtimeNode:ue}=await Ib(L);if(!ue)return{ok:!1,command:F,error:"command_failed",message:`runtime_node_missing:${ee??"unknown"}`};try{if(K.renderer?.clearActiveNodeList?.(),K.renderer?.addNodeToActiveList?.(ue,!0),K.renderer&&(K.renderer.lastActiveNodeList=[ue]),K.renderer?.emitNodeActiveEvent?.(ue,[ue]),K.execCommand("SET_NODE_ACTIVE",ue,!0),F==="REMOVE_NODE")return{ok:!0,command:F,result:K.execCommand("REMOVE_NODE",[ue])};if(F==="INSERT_CHILD_NODE"||F==="INSERT_NODE")return{ok:!0,command:F,result:K.execCommand(F,!1,[ue],D?{uid:D.uid,text:D.text}:null)}}catch{return{ok:!1,command:F,error:"command_failed",message:"runtime_command_throw"}}return s?.execCommand(F)??{ok:!1,command:F,error:"unsupported_command",message:"runtime_command_unsupported"}},Rb=(M,L,D)=>{Qp(M,L),at="node",It=g0(D),bt=_b(D),ce=!0,R.dataset.contextMenuKind="node",R.dataset.contextMenuTargetNodeId=It??"",R.dataset.contextMenuTargetNodeKind=bt,Lb(D),It&&(l=It,d=It),b0()},Db=(M,L)=>{Qp(M,L),at="canvas",It=null,bt="canvas",ce=!0,R.dataset.contextMenuKind="canvas",R.dataset.contextMenuTargetNodeId="",R.dataset.contextMenuTargetNodeKind="canvas",b0()},y0=M=>{Y!==M&&(Y=M,R.dataset.chromeVisibility=M,Le())},e3=()=>{le=!0,R.dataset.keyboardShortcutArmed="true"},Ob=()=>{le=!1,R.dataset.keyboardShortcutArmed="false"},v0=()=>document.fullscreenElement===ve||ve.contains(document.fullscreenElement),Bb=()=>{let M=s?.instance;try{typeof M?.resize=="function"?M.resize():typeof M?.view?.resize=="function"&&M.view.resize(),M?.renderer?.setRootNodeCenter?.()}catch{R.dataset.fullscreenResizeStatus="failed";return}R.dataset.fullscreenResizeStatus="success"},Cc=()=>{let M=v0();R.dataset.fullscreenActive=M?"true":"false",ve.dataset.fullscreenActive=M?"true":"false",window.setTimeout(()=>{Bb(),Le()},80)},_c=()=>{s?.instance.setMode?.(m?"readonly":"edit"),R.dataset.readonly=m?"true":"false"},t3=M=>{R.dataset.searchStatus="ready",R.dataset.lastSearchQuery=M,O=!0,Le()},Pb=M=>{let L=typeof M=="number"?M:Number(String(M??"").replace("%","").trim());if(!Number.isFinite(L)){R.dataset.zoomInputStatus="invalid",Le();return}let D=Math.max(10,Math.min(500,Math.round(L))),F=s?.instance.view;if(!F?.setScale){R.dataset.zoomInputStatus="unsupported",Le();return}F.setScale(D/100,ve.clientWidth/2,ve.clientHeight/2),R.dataset.zoomInputStatus="success",qs(s?.getSnapshot()),Le()},i3=async M=>{if(M==="exitFullscreen"){document.fullscreenElement&&await document.exitFullscreen(),Cc();return}if(!(M!=="fullscreenCanvas"&&M!=="fullscreenPage")){if(typeof ve.requestFullscreen!="function"){R.dataset.commandStatus="fullscreen-unavailable",R.dataset.disabledReason="fullscreen-unavailable";return}await ve.requestFullscreen(),Cc()}},Lc=(M,L)=>{let D=Sc.toolbarActionMeta[M],F=D?.shortLabel??Eb[M]??M,K=D?.longLabel??Eb[M]??M,ee=D?.iconKey??M;return{id:M,label:F,longLabel:K,icon:YF[ee]??WF[M]??F.slice(0,1),iconKey:ee,priority:D?.priority??999,overflowGroup:D?.overflowGroup??"view",cluster:D?.cluster??"main",disabled:L.disabledActions[M]??!0}},Fb=()=>{let M=window.__MNOTE_MINDMAP_RUST_SHELL__;if(!M){f0(),R.dataset.uiShell="typescript-nodeview-dom",ir.dataset.uiShellSource="missing-rust-shell",ir.innerHTML='
    Leptos/Rust mindmap shell \u672A\u52A0\u8F7D
    ';return}let L=XF(q??ve.getBoundingClientRect().width),D=Vp({activeNodeId:l,readonly:m,runtimeCapabilities:["runtimeCommand","kernelCommand","compatPatch","localView"],shell:{chromeVisibility:Y,toolbarOverflow:{availableWidth:L.availableWidth,visibleActionIds:L.visibleActionIds,overflowActionIds:L.overflowActionIds,moreOpen:P&&L.overflowActionIds.length>0},fullscreen:{mode:v0()?"canvas":"none",isFullscreen:v0(),target:"mindmap-root",apiAvailable:typeof ve.requestFullscreen=="function"},sidebar:{activePanelId:g,panelOpen:x,triggerVisible:y,drawerWidth:S,collapsedByToggle:b},navigator:{searchOpen:O,minimapOpen:I,readonly:m,zoomPercent:Zp().zoomPercent}}}),{mindmapId:F}=et(),K=Zp(),ee=new Set(D.shell.toolbarOverflow.visibleActionIds),ue=new Set(D.shell.toolbarOverflow.overflowActionIds),te={mindmapId:F,toolbarGroups:[{id:"main",label:"\u4E3B\u5DE5\u5177",actions:Xp.filter(we=>ee.size===0||ee.has(we)).map(we=>Lc(we,D))},{id:"overflow",label:"\u66F4\u591A",actions:Xp.filter(we=>ue.has(we)).map(we=>Lc(we,D))},{id:"file",label:"\u6587\u4EF6",actions:OF.map(we=>Lc(we,D))}],sidebarPanels:Sc.sidebarPanels.map(we=>({id:we.id,kind:we.kind,label:we.label,icon:we.icon,active:we.id===g,bodyTitle:we.label,bodyCaption:we.runtimeCapability,options:we.options.map(Ge=>({id:Ge.id,label:Ge.label,actionId:Ge.actionId,value:Ge.value,controlType:Ge.controlType,preview:Ge.preview,description:Ge.description,readonly:Ge.readonly??!1,compatPath:Ge.compatPath})),bodyItems:we.id==="outline"?kb():[]})),navigator:{wordCount:K.wordCount,nodeCount:K.nodeCount,zoomPercent:K.zoomPercent,readonly:m,minimapOpen:I},shell:D.shell};f0(),ir.dataset.uiShellSource="leptos-rust-shell",Hi=M,nn=M.mount(ir,te),R.dataset.uiShell="leptos-rust-shell"},Le=()=>{if(u0(),!wi){Fb(),b0();return}f0(),R.dataset.uiShell="debug-fallback",Kn.dataset.testid="mindmap-command-toolbar",Kn.className="mnote-mindmap-command-toolbar",delete Kn.dataset.schemaSource,Zn.dataset.testid="mindmap-sidebar",Zn.className="mnote-mindmap-side-panel",delete Zn.dataset.schemaSource,Qn.dataset.testid="mindmap-bottom-bar",Qn.className="mnote-mindmap-bottom-bar",delete Qn.dataset.schemaSource;let M=a?Yp(a):"",L=f??M,F=s!==null?"":" disabled",K=["\u8282\u70B9\u6837\u5F0F","\u5BFC\u56FE\u6837\u5F0F","\u4E3B\u9898","\u7ED3\u6784","\u5927\u7EB2"].map((ee,ue)=>``).join("");Kn.innerHTML=`
    `,Zn.innerHTML=`${K}
    \u7ECF\u5178\u4E3B\u9898 \xB7 \u903B\u8F91\u7ED3\u6784
    `,Qn.innerHTML=`runtime \u8282\u70B9100%`},b0=()=>{let M=Xn.querySelector('[data-testid="mindmap-schema-context-menu"]');if(!ce){M?.remove();return}M||(M=document.createElement("div"),M.className="mnote-mindmap-context-menu",M.dataset.testid="mindmap-schema-context-menu",M.dataset.uiSource="typescript-nodeview-bridge",Xn.append(M)),M.dataset.contextMenuKind=at,M.dataset.contextMenuTargetNodeKind=bt;let D=Vp({activeNodeId:at==="node"?It??l:l,readonly:m,runtimeCapabilities:["runtimeCommand","kernelCommand","compatPatch","localView"]}),F=Sc.contextMenuItems.filter(te=>te.requiresNode===(at==="node")),K=te=>D.disabledActions[te]?!0:at!=="node"?!1:bt==="root"&&(te==="insertSiblingAfter"||te==="deleteNode")||bt==="generalization"&&(te==="insertChild"||te==="insertSiblingAfter"||te==="deleteNode"||te==="summary"||te==="associativeLine"||te==="expandCollapse");M.innerHTML=F.map(te=>{let we=K(te.actionId);return``}).join("");let ee=Math.min(Math.max(8,qi),Math.max(8,ve.clientWidth-M.offsetWidth-8)),ue=Math.min(Math.max(8,zt),Math.max(8,ve.clientHeight-M.offsetHeight-8));M.style.left=`${ee}px`,M.style.top=`${ue}px`},r3=()=>{u0(),R.dataset.stage="loading",mt.dataset.runtimeEngine="loading",mt.replaceChildren(),Le()},n3=M=>M==="mnote-web-tree-live"||M==="externalTreeLive"||M==="nodeViewUpdate",qb=M=>M==="mnote-web-tree-live"||M==="externalTreeLive",Hb=()=>R.dataset.stage==="ready"&&mt.dataset.runtimeReady==="true"&&a!==null,Ub=()=>{if(s?.instance.renderer?.textEdit?.isShowTextEdit?.())return!0;let L=document.activeElement;if(L instanceof HTMLElement&&L.closest(".smm-node-edit-wrap"))return!0;let D=document.querySelector('.smm-node-edit-wrap[contenteditable="true"]');return D instanceof HTMLElement&&D.style.display!=="none"&&D.getClientRects().length>0},s3=M=>{let L=s?.instance.renderer?.textEdit;if(!L?.isShowTextEdit?.())return!1;let D=Ds(L.getCurrentEditNode?.())??l??d,F=L.getEditText?.();if(R.dataset.lastRuntimeTextEditFlushReason=M,D&&typeof F=="string"&&F.length>0){R.dataset.lastRuntimeTextEditFlushNodeId=D,R.dataset.lastRuntimeTextEditFlushText=F;let{mindmapId:K}=et(),ee=an();ee&&a&&Gp({documentId:ee,mindmapId:K,commands:[{type:"updateText",mindmapId:K,nodeId:D,text:F}],projectionRevision:a.kernelRevision}).catch(te=>{R.dataset.lastRuntimeTextEditFlushError=te instanceof Error?te.message:String(te)})}return L.hideEditTextBox?.(),!0},a3=(M,L="text_edit")=>{R.dataset.runtimeProjectionDeferred=L,R.dataset.lastRuntimeProjectionDeferReason=M,R.dataset.runtimeProjectionDeferredAt=String(Date.now())},o3=()=>{R.dataset.runtimeProjectionDeferred="",R.dataset.lastRuntimeProjectionDeferReason="",R.dataset.runtimeProjectionDeferredAt=""},Ps=(M,L="")=>{R.dataset.backgroundProjectionRefresh=M,R.dataset.backgroundProjectionRefreshMessage=L,Le()},on=(M,L)=>{let{mindmapId:D}=et();u0(),R.dataset.stage=M,mt.dataset.runtimeEngine="error",mt.innerHTML=`
    ${Rs(M)}${Rs(D)}${Rs(L)}
    `,Le()},Fs=async(M,L)=>{if(R.dataset.commandCount=String(M.length),R.dataset.commandHasProjection=a?"true":"false",R.dataset.commandFailedAction="",R.dataset.commandFailedMessage="",M.length===0||!a){R.dataset.commandStatus="skipped";return}let{mindmapId:D}=et(),F=an();if(!F){on("command_failed",`mindmapId=${D}; documentId_missing`);return}R.dataset.commandStatus="pending";try{let K=await AF({documentId:F,mindmapId:D,commands:M,projectionRevision:a.kernelRevision});if(Ui)return;let ee=L?x0(K,L,et().rootNodeId):void 0;await d3(K,"commandRefresh",ee),f=null,R.dataset.commandStatus="success"}catch(K){let ee=K instanceof Error?K.message:String(K);R.dataset.commandStatus="failed",R.dataset.commandFailedAction=R.dataset.lastSchemaAction??"",R.dataset.commandFailedMessage=ee,on("command_failed",`mindmapId=${D}; ${ee}`)}},l3=async(M,L)=>{if(R.dataset.commandCount=String(M.length),R.dataset.commandHasProjection=a?"true":"false",R.dataset.commandFailedAction="",R.dataset.commandFailedMessage="",R.dataset.commandApplyMode="",R.dataset.commandLocalApplyErrors="",M.length===0||!a){R.dataset.commandStatus="skipped",R.dataset.commandApplyMode="skipped",$i();return}if(!EF(M)){R.dataset.commandApplyMode="refresh:unsupported",$i(),await Fs(M,L);return}let D=Sb();if(!D){R.dataset.commandApplyMode="refresh:no_blob",$i(),await Fs(M,L);return}let F=NF(D,M);if(F.errors.length>0){R.dataset.commandApplyMode="refresh:local_errors",R.dataset.commandLocalApplyErrors=F.errors.join("|"),$i(),await Fs(M,L);return}let{mindmapId:K}=et(),ee=an();if(!ee){on("command_failed",`mindmapId=${K}; documentId_missing`);return}R.dataset.commandStatus="pending",R.dataset.commandApplyMode="local";try{let ue=await Gp({documentId:ee,mindmapId:K,commands:M,projectionRevision:a.kernelRevision});if(Ui)return;if(Ab(F.data,ue.kernelRevision),L){let te=x0(a,L,et().rootNodeId);l=te,d=te,window.setTimeout(()=>{uo(te)},0)}f=null,R.dataset.commandStatus="success",Le()}catch(ue){let te=ue instanceof Error?ue.message:String(ue);R.dataset.commandStatus="failed",R.dataset.commandFailedAction=R.dataset.lastSchemaAction??"",R.dataset.commandFailedMessage=te,$i(),on("command_failed",`mindmapId=${K}; ${te}`)}},$b=async M=>{if(!a)return;let{mindmapId:L}=et(),D=an();if(!D){on("command_failed",`mindmapId=${L}; documentId_missing`);return}R.dataset.viewCommandStatus="pending";try{if(await Gp({documentId:D,mindmapId:L,commands:[CF(L,M)],projectionRevision:a.kernelRevision}),Ui)return;a.view=M,R.dataset.viewCommandStatus="success"}catch(F){on("command_failed",`mindmapId=${L}; ${F instanceof Error?F.message:String(F)}`)}},qs=M=>{let L=HF(M);L&&(A=L,R.dataset.lastViewPatch=JSON.stringify(L),C!==null&&window.clearTimeout(C),C=window.setTimeout(()=>{C=null;let D=A;A=null,D&&$b(D)},350))},jb=M=>{if(s){if(M==="editNode"){let L=s.instance.renderer,D=s.instance.keyCommand,F=L?.textEdit,K=h??L?.activeNodeList?.[0]??null;if(K&&typeof F?.show=="function")F.show({node:K,isFromKeyDown:!1}),R.dataset.editNodeStatus="opened";else if(typeof D?.getShortcutFn=="function"){let ee=D.getShortcutFn("F2")[0];typeof ee=="function"?(ee(),R.dataset.editNodeStatus="opened"):R.dataset.editNodeStatus="unsupported"}else R.dataset.editNodeStatus="unsupported";return}if(M==="centerRoot"&&s.instance.renderer?.setRootNodeCenter?.(),M==="zoomOut"&&s.instance.view?.narrow?.(),M==="zoomIn"&&s.instance.view?.enlarge?.(),M==="fitView"&&s.instance.view?.reset?.(),M==="fullscreenCanvas"||M==="fullscreenPage"||M==="exitFullscreen"){i3(M);return}if(M==="search"){O?(O=!1,R.dataset.lastSearchQuery="",R.dataset.searchStatus="closed",Le()):t3("");return}if(M==="showMenu"){y0("visible"),p0();return}if(M==="expandCollapse"){s.instance.renderer?.toggleActiveExpand?.(),R.dataset.contextMenuActionStatus="success",R.dataset.lastContextMenuAction=M,Le();return}if(M==="copyNodeText"){let L=It??l,D=a?GF(a.root,L):"";R.dataset.copiedNodeText=D,R.dataset.contextMenuActionStatus="success",R.dataset.lastContextMenuAction=M;return}M==="readonly"&&(m=!m,_c()),qs(s.getSnapshot()),Le()}},Gb=(M,L,D)=>{if(!s)return;let F=Nb(M,D);if(!F)return;let K=Lt(s.instance.getThemeConfig?.())?s.instance.getThemeConfig?.():{};if(D&&F.startsWith(`nodes.${D}.data.`)&&h){let ee=F.split(".data.")[1]??"";if(ee==="shape"){h.setShape?.(L);return}if(ee){let ue=ee==="fontWeight"&&L===!0?"bold":ee==="fontStyle"&&L===!0?"italic":L;h.setData?.({[ee]:ue});return}}if(F.startsWith("style.map.")){let ee=F.slice(10);if(!ee)return;s.instance.setThemeConfig?.({...K,[ee]:L},!1)}},Vb=(M,L,D)=>{if(!(!s||L.source!=="sidebar")){if(M==="setLayout"){s.instance.setLayout?.(L.value);return}if(M==="setTheme"){s.instance.setTheme?.(L.value);return}M==="painter"&&typeof L.compatPath=="string"&&Gb(L.compatPath,L.value,D)}},w0=async(M,L={})=>{let D=wb(M);if(!D||Vp({activeNodeId:at==="node"?It??l:l,readonly:m,runtimeCapabilities:["runtimeCommand","kernelCommand","compatPatch","localView"]}).disabledActions[M])return;if(R.dataset.lastSchemaAction=M,D.target==="localView"){jb(M);return}let K=UF(M),ee=at==="node"?It??d??l:d??l;if(D.requiresActiveNode){let Ge=kc(ee);Ge&&(ee=Ge,l=Ge,d=Ge)}R.dataset.lastSchemaActiveNodeId=ee??"";let ue=et().mindmapId;Vb(M,L,ee);let te=IF({actionId:M,mindmapId:ue,activeNodeId:ee,node:K,value:L.value??(M==="editNode"?Yp(a):!0),source:L.source,runtimeRevision:a?.kernelRevision??null,kernelRevision:a?.kernelRevision??null}),we=Nb(L.compatPath,ee);if(we&&(te={command:_F({mindmapId:ue,path:we,value:L.value??!0,source:L.source??"sidebar",actionId:M,runtimeRevision:a?.kernelRevision??null,kernelRevision:a?.kernelRevision??null})}),R.dataset.lastSchemaCommand=te?.command?JSON.stringify(te.command):"",R.dataset.lastSchemaRuntimeCommand=te?.runtimeCommand??"",!!te){if(D.target==="runtimeCommand"&&te.runtimeCommand){if(te.command){Bs(te.runtimeCommand),D.requiresActiveNode&&uo(ee);let Ge=await zb(te.runtimeCommand,ee,K),u3=K?.uid??(M==="deleteNode"?et().rootNodeId:ee);if(Ge?.ok){K?.uid&&(te.runtimeCommand==="INSERT_CHILD_NODE"||te.runtimeCommand==="INSERT_NODE")&&window.setTimeout(()=>{uo(K.uid)},0),l3([te.command],u3);return}R.dataset.commandApplyMode="refresh:runtime_failed",R.dataset.commandRuntimeError=Ge?.error??"unknown",R.dataset.commandRuntimeMessage=Ge&&"message"in Ge?Ge.message??"":"",$i(),Fs([te.command],u3);return}s?.execCommand(te.runtimeCommand);return}te.command&&Fs([te.command])}},Wb=M=>{let L=M.target instanceof Node&&ve.contains(M.target);return RF({debugChromeEnabled:wi,bridgeReady:!!s,readonly:m,isComposing:M.isComposing,isEditableTarget:qF(M.target),targetInsideRoot:L,keyboardShortcutArmed:le})},Yb=M=>{if(!Wb(M))return;let L=zF(M);if(!L)return;M.preventDefault(),M.stopPropagation(),M.stopImmediatePropagation(),R.dataset.lastShortcutKey=M.key,R.dataset.lastShortcutAction=L;let D=a?Mb(a,et().rootNodeId):et().rootNodeId;if(wb(L)?.requiresActiveNode){let K=kc(d??l);if(K===D&&(L==="insertSiblingAfter"||L==="deleteNode")){let ee=kc(null);ee&&ee!==D?K=ee:a&&(K=Tb(a.root)??K)}if(K)l=K,d=K;else{R.dataset.lastShortcutActionBlocked=L;return}}if((d??l)===D&&(L==="insertSiblingAfter"||L==="deleteNode")){R.dataset.lastShortcutActionBlocked=L;return}w0(L,{source:"toolbar"})},Xb=M=>{if(M.type==="node_active"){let K=l;l=Ds(M.args[0])??l,h=typeof M.args[0]=="object"&&M.args[0]!==null?M.args[0]:null,(!d||d===K)&&(d=l),Le();return}if(M.type==="view_data_change"||M.type==="scale"||M.type==="translate"){R.dataset.lastViewEvent=M.type,qs(M.snapshot??s?.getSnapshot());return}if(M.type!=="data_change"||!a||!M.snapshot)return;let L=Os(M.snapshot);R.dataset.lastDataChangeSeenAt=String(Date.now());let D=vb(c,Date.now());if(c=D.state,Wn(),R.dataset.lastDataChangeSuppressed=D.suppressed?"true":"false",R.dataset.lastDataChangeSuppressionExpired=D.expired?"true":"false",D.suppressed){o=L;return}let F=LF({mindmapId:et().mindmapId,previous:o??a.root,next:L});if(o=L,R.dataset.lastDataChangeDiffCommandCount=String(F.commands.length),R.dataset.lastDataChangeCompatPatchCount=String(F.compatPatches.length),F.commands.length===0&&F.compatPatches.length===0){R.dataset.lastDataChangeRefreshTriggered="false";return}R.dataset.lastDataChangeRefreshTriggered="false",l3([...F.commands,...F.compatPatches])},h3=M=>typeof M=="string"&&M.trim().length>0?M.trim():Lt(M)&&typeof M.template=="string"&&M.template.trim().length>0?M.template.trim():null,Kb=(M,L,D)=>{if(!s)return!1;let{mindmapId:F,rootNodeId:K}=et();if(R.dataset.mountedMindmapId&&R.dataset.mountedMindmapId!==F)return!1;let ee=vi(M.root);if(typeof s.instance.setData!="function")return!1;a={...M,root:Os(ee)},l=x0(M,D??l,K),h=null,d=l,o=Os(a.root);let ue=h3(M.layout),te=h3(M.theme),we=Lt(M.themeConfig)?M.themeConfig:null;return ue&&s.instance.setLayout?.(ue,!0),te&&s.instance.setTheme?.(te,!0),we&&s.instance.setThemeConfig?.(we,!0),s.instance.setData(ee),Mr+=1,R.dataset.runtimeProjectionApplyCount=String(Mr),R.dataset.lastRuntimeProjectionApplyReason=L,mt.dataset.runtimeEngine="simple-mind-map",mt.dataset.runtimeReady="true",R.dataset.stage="ready",Ac(F,s),_c(),window.setTimeout(()=>{uo(l)},0),Le(),!0},d3=async(M,L,D)=>{let{mindmapId:F,rootNodeId:K}=et();if(di&&(s?.instance.off?.("node_contextmenu",di),di=null),s?.destroy(),Ac(F,null),a={...M,root:Os(M.root)},l=x0(M,D,K),h=null,d=l,o=Os(a.root),co+=1,R.dataset.runtimeMountCount=String(co),R.dataset.lastRuntimeMountReason=L,R.dataset.mountedMindmapId=F,R.dataset.mountedRootNodeId=K,mt.dataset.runtimeEngine="simple-mind-map",mt.dataset.runtimeReady="false",mt.replaceChildren(),Le(),s=await SF({el:mt,projection:M,mode:m?"readonly":"edit",runtimeOptions:{fit:!0,mousewheelAction:"zoom",enableFreeDrag:!0,enableCtrlKeyNodeSelection:!0,useLeftKeySelectionRightKeyDrag:!0,createNewNodeBehavior:"activeOnly"},onEvent:Xb}),Ui){s.destroy();return}s.refreshProjection=c3,di=(...ee)=>{let[ue,te]=ee;ue instanceof MouseEvent&&(ue.preventDefault(),ue.stopPropagation(),Rb(ue.clientX,ue.clientY,te))},s.instance.on?.("node_contextmenu",di),mt.dataset.runtimeReady="true",R.dataset.stage="ready",Ac(F,s),_c(),window.setTimeout(()=>{uo(l)},0),Le()},M0=async(M="fetchScene",L=0)=>{let D=++n,{mindmapId:F,rootNodeId:K}=et();bi!==null&&(window.clearTimeout(bi),bi=null);let ee=an();if(!ee){if(R.dataset.documentIdResolveStatus="missing",R.dataset.documentIdResolveRetryCount=String(L),L<30){n3(M)||r3(),bi=window.setTimeout(()=>{bi=null,Ui||M0(M,L+1)},100);return}on("projection_load_failed",`mindmapId=${F}; documentId_missing`);return}R.dataset.documentIdResolveStatus="ready",R.dataset.lastFetchSceneReason=M;let ue=n3(M)&&Hb();if(ue&&qb(M)){a3(M,"live_signal"),Ps("deferred","usability_first");return}ue?Ps("pending"):r3();try{if(D!==n)return;let te=await kF({documentId:ee,mindmapId:F,endpoint:`/api/mindmap/${encodeURIComponent(ee)}/${encodeURIComponent(F)}?view=simple_mind_map_scene&queryName=mindmap.simple_mind_map_scene.get&rootNodeId=${encodeURIComponent(K)}`});if(D!==n||Ui)return;try{let we=bb({documentId:ee,mindmapId:F,data:vi(te.root)}),Ge=await fetch(we.endpoint,we.init);R.dataset.initialCreateOnlyStatus=Ge.ok?"success":"failed"}catch{R.dataset.initialCreateOnlyStatus="failed"}if(ue&&Ub()){a3(M),Ps("deferred","text_edit");return}if(ue&&Kb(te,M)){o3(),Ps("success");return}await d3(te,M),o3(),Ps("success")}catch(te){if(ue){Ps("failed",te instanceof Error?te.message:String(te));return}on("projection_load_failed",`mindmapId=${F}; ${te instanceof Error?te.message:String(te)}`)}},c3=async(M="externalTreeLive")=>{if(!Ui){if(tr){sn=M;return}tr=!0;try{await M0(M)}finally{tr=!1;let L=sn;sn=null,L&&!Ui&&c3(L)}}};return Je.addEventListener("pointerdown",M=>M.stopPropagation()),Je.addEventListener("mousedown",M=>M.stopPropagation()),ve.addEventListener("pointerleave",()=>{m0(),!ce&&Y==="visible"&&y0(Ec(Y,"pointerLeave"))}),ve.addEventListener("pointerenter",()=>{Y=Ec(Y,"pointerEnter"),R.dataset.chromeVisibility=Y}),ve.addEventListener("pointerdown",()=>{e3(),Y!=="visible"&&y0(Ec(Y,"restoreClick"))},!0),ve.addEventListener("click",()=>{e3(),Y!=="visible"&&y0(Ec(Y,"restoreClick"))}),Je.addEventListener("mnote:mindmap-shell:action",M=>{let L=M.detail,D=L?.actionId;if(D==="search"){if(typeof L?.value=="string"){t3(L.value);return}if(L?.value===!1){O=!1,R.dataset.lastSearchQuery="",R.dataset.searchStatus="closed",Le();return}}D&&(m0(),w0(D,L))}),Je.addEventListener("mnote:mindmap-shell:zoom",M=>{let L=M.detail;Pb(L?.percent)}),Je.addEventListener("mnote:mindmap-shell:minimap",M=>{let L=M.detail;I=typeof L?.open=="boolean"?L.open:!I,R.dataset.minimapOpen=I?"true":"false",Le()}),Je.addEventListener("mnote:mindmap-shell:toolbar-overflow",M=>{let L=M.detail;P=typeof L?.moreOpen=="boolean"?L.moreOpen:!P,Le()}),Je.addEventListener("mnote:mindmap-shell:panel",M=>{let L=M.detail,D=L?.event??"togglePanel";if(D==="restoreTrigger"){y=!0,x=!0,b=!1,Le();return}if(D==="hideTrigger"){y=!1,x=!1,b=!0,Le();return}if(D==="closeDrawer"){x=!1,b=!1,Le();return}L?.panelId&&(L.panelId===g?x=!x:(g=L.panelId,x=!0),y=!0,b=!1,Le())}),ke=()=>Cc(),document.addEventListener("fullscreenchange",ke),Q=()=>{s3("page_lifecycle")},window.addEventListener("pagehide",Q),window.addEventListener("beforeunload",Q),Je.addEventListener("input",M=>{if(!wi)return;let L=M.target;L instanceof HTMLInputElement&&L.dataset.testid==="mindmap-command-text-input"&&(f=L.value)}),typeof ResizeObserver<"u"&&(W=new ResizeObserver(M=>{let L=M[0]?.contentRect.width??null;L===null||Math.abs(L-(q??0))<1||(q=L,wi||Le())}),W.observe(ve)),ne=M=>{let L=M.target;if((!(L instanceof Node)||!ve.contains(L))&&Ob(),ce){if(L instanceof Node){let D=Xn.querySelector('[data-testid="mindmap-schema-context-menu"]');if(D instanceof HTMLElement&&D.contains(L))return}p0()}P&&(L instanceof Node&&ir.contains(L)||m0())},re=M=>{if(M.key==="Escape"){if(ce){M.preventDefault(),p0();return}if(v0()){M.preventDefault(),i3("exitFullscreen");return}P&&(M.preventDefault(),m0())}},oe=M=>Yb(M),document.addEventListener("pointerdown",ne),document.addEventListener("keydown",re),document.addEventListener("keydown",oe,!0),Je.addEventListener("click",M=>{M.stopPropagation();let L=M.target;if(!(L instanceof HTMLElement))return;let D=L.closest("button");if(D instanceof HTMLButtonElement){if(!wi){M.preventDefault();let F=D.dataset.mindmapContextActionId;if(F){if(D.disabled||D.dataset.disabled==="true")return;p0(),w0(F);return}if(D.closest('[data-testid="mindmap-rust-shell"]'))return;let K=D.dataset.mindmapActionId;K&&w0(K);let ee=D.dataset.mindmapSidebarPanelId;ee&&(g=ee,Le());return}if(D.dataset.testid==="mindmap-command-update-text"){M.preventDefault();let F=ve.querySelector('[data-testid="mindmap-command-text-input"]'),K=f??(F instanceof HTMLInputElement?F.value:Yp(a));R.dataset.lastCommandText=K,Fs([{type:"updateText",mindmapId:et().mindmapId,nodeId:l??et().rootNodeId,text:K}])}D.dataset.testid==="mindmap-command-add-child"&&(M.preventDefault(),s?.execCommand("INSERT_CHILD_NODE")),D.dataset.testid==="mindmap-command-add-sibling-after"&&(M.preventDefault(),s?.execCommand("INSERT_NODE")),D.dataset.testid==="mindmap-command-delete-node"&&(M.preventDefault(),s?.execCommand("REMOVE_NODE")),D.dataset.testid==="mindmap-toolbar-undo"&&(M.preventDefault(),s?.execCommand("BACK")),D.dataset.testid==="mindmap-toolbar-redo"&&(M.preventDefault(),s?.execCommand("FORWARD")),D.dataset.testid==="mindmap-toolbar-summary"&&(M.preventDefault(),s?.execCommand("ADD_GENERALIZATION")),D.dataset.testid==="mindmap-bottom-center-root"&&(M.preventDefault(),s?.instance.renderer?.setRootNodeCenter?.(),qs(s?.getSnapshot())),D.dataset.testid==="mindmap-bottom-zoom-out"&&(M.preventDefault(),s?.instance.view?.narrow?.(),qs(s?.getSnapshot())),D.dataset.testid==="mindmap-bottom-zoom-in"&&(M.preventDefault(),s?.instance.view?.enlarge?.(),qs(s?.getSnapshot()))}}),Je.addEventListener("contextmenu",M=>{if(wi)return;let L=M.target;if(L instanceof Element&&(L.closest(".smm-node")||L.closest('[class*="generalization_"]'))){M.preventDefault();return}M.preventDefault(),M.stopPropagation(),Db(M.clientX,M.clientY)},!0),c0.append(mt),wi?(Yn.append(mt,Zn),R.append(Kn,Yn,Qn)):(Xn.append(ir),Yn.append(c0,Xn),R.append(Yn)),ve.append(R),Je.append(ve),M0("initial"),{dom:Je,update(M){if(M.type.name!==r.type.name)return!1;let L=Kp(r);return r=M,r.attrs.mnoteBlockType!=="mindmap"?!1:(u0(),Kp(r)!==L&&M0("nodeViewUpdate"),!0)},stopEvent:()=>!0,ignoreMutation:()=>!0,destroy(){s3("node_view_destroy"),Ui=!0,bi!==null&&window.clearTimeout(bi),C!==null&&window.clearTimeout(C),W?.disconnect(),ne&&document.removeEventListener("pointerdown",ne),re&&document.removeEventListener("keydown",re),oe&&document.removeEventListener("keydown",oe,!0),ke&&document.removeEventListener("fullscreenchange",ke),Q&&(window.removeEventListener("pagehide",Q),window.removeEventListener("beforeunload",Q)),di&&s?.instance.off?.("node_contextmenu",di);let{mindmapId:M}=et();Ac(M,null),s?.destroy(),f0(),s=null}}}}function ZF(){return({node:i})=>{let e=i,t=document.createElement("p"),r=()=>{let n=e.attrs.blockId;typeof n=="string"&&n.length>0?(t.dataset.blockId=n,t.id=n):(t.removeAttribute("data-block-id"),t.removeAttribute("id"))};return r(),{dom:t,contentDOM:t,update(n){return n.type.name!==e.type.name||n.attrs.mnoteBlockType==="mindmap"?!1:(e=n,r(),!0)}}}}var QF=p3.extend({addAttributes(){return{...this.parent?.(),blockId:{default:null,parseHTML:i=>i.getAttribute("data-block-id"),renderHTML:i=>BF(i.blockId)},mnoteBlockType:{default:null,parseHTML:i=>i.getAttribute("data-mnote-block-type"),renderHTML:i=>PF(i)},mindmapId:{default:null,parseHTML:i=>i.getAttribute("data-mnote-mindmap-id"),renderHTML:()=>({})},rootNodeId:{default:null,parseHTML:i=>i.getAttribute("data-mnote-root-node-id"),renderHTML:()=>({})},projectionVersion:{default:null,parseHTML:i=>Number(i.getAttribute("data-mnote-projection-version")??1),renderHTML:()=>({})}}},addNodeView(){let i=KF(this.editor),e=ZF();return({node:t,getPos:r})=>t.attrs.mnoteBlockType==="mindmap"?i({node:t,getPos:r}):e({node:t})}}),JF={name:"paragraph",create:()=>QF,commands:{set_paragraph:i=>i.chain().focus().setParagraph().run()},selection_keys:["paragraph"],selection_state:i=>({paragraph:i.isActive("paragraph")})};function Jne(){y3(JF)}export{Jne as register_paragraph}; /*! Bundled license information: @svgdotjs/svg.js/dist/svg.esm.js: diff --git a/rust/spikes/leptos-tiptap-spike/src/lib.rs b/rust/spikes/leptos-tiptap-spike/src/lib.rs index 7b955e74..263f34ad 100644 --- a/rust/spikes/leptos-tiptap-spike/src/lib.rs +++ b/rust/spikes/leptos-tiptap-spike/src/lib.rs @@ -16,7 +16,7 @@ use wasm_bindgen::{closure::Closure, prelude::*, JsCast, JsValue}; use wasm_bindgen_futures::{spawn_local, JsFuture}; use web_sys::{ window, CustomEvent, CustomEventInit, DragEvent, Element, Event, EventTarget, HtmlElement, - MouseEvent, Node, RequestInit, RequestMode, Response, Storage, WheelEvent, + HtmlInputElement, MouseEvent, Node, RequestInit, RequestMode, Response, Storage, WheelEvent, }; const EDITOR_STAGE_SELECTOR: &str = "[data-testid=\"mnote-leptos-tiptap-editor-stage\"]"; @@ -46,6 +46,8 @@ const HEIGHT_EVENT: &str = "mnote:leptos-tiptap-spike:height"; const MINDMAP_SHELL_ACTION_EVENT: &str = "mnote:mindmap-shell:action"; const MINDMAP_SHELL_PANEL_EVENT: &str = "mnote:mindmap-shell:panel"; const MINDMAP_SHELL_MINIMAP_EVENT: &str = "mnote:mindmap-shell:minimap"; +const MINDMAP_SHELL_ZOOM_EVENT: &str = "mnote:mindmap-shell:zoom"; +const MINDMAP_SHELL_TOOLBAR_OVERFLOW_EVENT: &str = "mnote:mindmap-shell:toolbar-overflow"; const STANDALONE_ROOT_ID: &str = "mnote-leptos-tiptap-standalone-root"; const E24_IMAGE_PLACEHOLDER_SRC: &str = "/api/editor/image-placeholder.svg"; const E24_IMAGE_PLACEHOLDER_ALT: &str = "E24 图片占位"; @@ -582,7 +584,7 @@ const SPIKE_STYLE: &str = r#" } .mnote-mindmap-command-toolbar { - flex-wrap: wrap; + flex-wrap: nowrap; } .mnote-mindmap-schema-toolbar { @@ -591,17 +593,17 @@ const SPIKE_STYLE: &str = r#" top: 22px; z-index: 4; width: max-content; - max-width: min(920px, calc(100% - 220px)); + max-width: min(980px, calc(100% - 184px)); box-sizing: border-box; transform: translateX(-50%); - gap: 12px; - padding: 8px 14px; + gap: 8px; + padding: 7px 12px; border: 1px solid rgba(15, 23, 42, 0.08); border-radius: 6px; background: rgba(255, 255, 255, 0.95); box-shadow: 0 10px 28px rgba(15, 23, 42, 0.1); backdrop-filter: blur(10px); - overflow-x: auto; + overflow-x: visible; overflow-y: visible; scrollbar-width: none; } @@ -610,9 +612,24 @@ const SPIKE_STYLE: &str = r#" .mnote-mindmap-toolbar-secondary { display: flex; align-items: center; - gap: 6px; + gap: 8px; justify-content: center; - flex-wrap: wrap; + flex-wrap: nowrap; + min-width: 0; +} + +.mnote-mindmap-toolbar-cluster { + display: inline-flex; + align-items: center; + gap: 4px; + flex: 0 0 auto; + min-width: 0; + white-space: nowrap; +} + +.mnote-mindmap-toolbar-cluster-file { + padding-left: 8px; + border-left: 1px solid rgba(148, 163, 184, 0.24); } .mnote-mindmap-toolbar-group { @@ -628,6 +645,12 @@ const SPIKE_STYLE: &str = r#" } .mnote-mindmap-toolbar-group-label { + position: absolute; + width: 1px; + height: 1px; + margin: -1px; + overflow: hidden; + clip: rect(0 0 0 0); color: #64748b; font-size: 11px; } @@ -662,9 +685,9 @@ const SPIKE_STYLE: &str = r#" align-items: center; justify-content: center; gap: 2px; - width: 48px; - height: 42px; - min-width: 48px; + width: 46px; + height: 40px; + min-width: 46px; padding: 3px 4px; color: #475569; } @@ -676,7 +699,7 @@ const SPIKE_STYLE: &str = r#" } .mnote-mindmap-tool-label { - max-width: 44px; + max-width: 42px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; @@ -692,7 +715,46 @@ const SPIKE_STYLE: &str = r#" } .mnote-mindmap-toolbar-more { - display: none; + position: relative; + display: inline-flex; + flex: 0 0 auto; +} + +.mnote-mindmap-toolbar-more-button[data-open="true"] { + border-color: rgba(37, 99, 235, 0.42); + background: #eff6ff; + color: #1d4ed8; +} + +.mnote-mindmap-toolbar-more-menu { + position: absolute; + right: 0; + top: calc(100% + 8px); + z-index: 8; + display: grid; + grid-template-columns: 1fr; + gap: 4px; + min-width: 128px; + padding: 8px; + border: 1px solid rgba(15, 23, 42, 0.1); + border-radius: 6px; + background: #ffffff; + box-shadow: 0 16px 36px rgba(15, 23, 42, 0.16); +} + +.mnote-mindmap-toolbar-more-menu .mnote-mindmap-tool { + flex-direction: row; + justify-content: flex-start; + width: 100%; + min-width: 112px; + height: 30px; + gap: 8px; + padding: 0 8px; +} + +.mnote-mindmap-toolbar-more-menu .mnote-mindmap-tool-label { + max-width: none; + font-size: 12px; } .mnote-mindmap-workspace { @@ -788,19 +850,66 @@ const SPIKE_STYLE: &str = r#" right: 18px; top: 50%; z-index: 4; - width: 76px; + width: auto; max-height: calc(100% - 130px); transform: translateY(-50%); display: flex; + align-items: flex-start; + gap: 12px; + border: 0; + border-radius: 0; + background: transparent; + box-shadow: none; + backdrop-filter: none; + padding: 0; +} + +.mnote-mindmap-side-rail { + width: 60px; + display: flex; flex-direction: column; - gap: 2px; + gap: 8px; + padding: 10px 8px 8px; border: 1px solid rgba(15, 23, 42, 0.08); - border-radius: 6px; + border-radius: 10px; background: rgba(255, 255, 255, 0.96); box-shadow: 0 10px 28px rgba(15, 23, 42, 0.1); backdrop-filter: blur(10px); } +.mnote-mindmap-side-rail-handle, +.mnote-mindmap-side-restore-handle, +.mnote-mindmap-side-drawer-close { + display: inline-flex; + align-items: center; + justify-content: center; + border: 1px solid rgba(148, 163, 184, 0.24); + background: rgba(248, 250, 252, 0.98); + color: #475569; +} + +.mnote-mindmap-side-rail-handle { + width: 100%; + min-height: 24px; + border-radius: 8px; +} + +.mnote-mindmap-side-restore-handle { + width: 22px; + min-height: 72px; + margin-top: 64px; + border-radius: 999px; + box-shadow: 0 10px 28px rgba(15, 23, 42, 0.1); +} + +.mnote-mindmap-side-rail-handle:hover, +.mnote-mindmap-side-restore-handle:hover, +.mnote-mindmap-side-drawer-close:hover { + border-color: rgba(37, 99, 235, 0.36); + background: #eff6ff; + color: #1d4ed8; +} + .mnote-mindmap-side-tab { width: 100%; display: inline-flex; @@ -808,14 +917,15 @@ const SPIKE_STYLE: &str = r#" align-items: center; gap: 3px; justify-content: center; - margin-bottom: 6px; - min-height: 56px; - padding: 5px 4px; - text-align: center; -} - -.mnote-mindmap-schema-sidebar .mnote-mindmap-side-tab { margin-bottom: 0; + min-height: 56px; + padding: 8px 2px; + text-align: center; + border: 0; + border-radius: 8px; + background: transparent; + color: #475569; + position: relative; } .mnote-mindmap-side-icon { @@ -826,31 +936,45 @@ const SPIKE_STYLE: &str = r#" text-overflow: ellipsis; } +.mnote-mindmap-side-tab-label { + font-size: 11px; + line-height: 1.2; +} + .mnote-mindmap-side-tab[data-active="true"] { - border-color: #2563eb; background: #eff6ff; color: #1d4ed8; } +.mnote-mindmap-side-tab[data-active="true"]::before { + content: ""; + position: absolute; + left: -8px; + top: 8px; + bottom: 8px; + width: 3px; + border-radius: 999px; + background: #2563eb; +} + .mnote-mindmap-side-body { position: absolute; - right: 86px; + right: 72px; top: 0; - width: 148px; - margin-top: 8px; + width: 300px; + margin-top: 0; color: #64748b; font-size: 12px; - padding: 10px; + padding: 16px; border: 1px solid rgba(15, 23, 42, 0.08); - border-radius: 6px; + border-radius: 12px; background: rgba(255, 255, 255, 0.96); box-shadow: 0 10px 28px rgba(15, 23, 42, 0.1); backdrop-filter: blur(10px); } .mnote-mindmap-schema-sidebar .mnote-mindmap-side-body { - padding-top: 10px; - border-top: 1px solid rgba(15, 23, 42, 0.08); + padding-top: 16px; } .mnote-mindmap-side-body strong, @@ -858,6 +982,37 @@ const SPIKE_STYLE: &str = r#" display: block; } +.mnote-mindmap-side-drawer-header { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 12px; +} + +.mnote-mindmap-side-drawer-heading { + min-width: 0; + flex: 1; +} + +.mnote-mindmap-side-drawer-heading strong { + color: #0f172a; + font-size: 15px; + line-height: 1.3; +} + +.mnote-mindmap-side-drawer-heading span { + margin-top: 4px; + color: #64748b; + font-size: 12px; +} + +.mnote-mindmap-side-drawer-close { + width: 28px; + min-width: 28px; + min-height: 28px; + border-radius: 8px; +} + .mnote-mindmap-side-swatches { display: flex; gap: 5px; @@ -873,21 +1028,22 @@ const SPIKE_STYLE: &str = r#" } .mnote-mindmap-side-options { - display: flex; - flex-wrap: wrap; - gap: 6px; - margin-top: 8px; + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 10px; + margin-top: 16px; } .mnote-mindmap-side-option { - min-height: 24px; - padding: 3px 7px; + min-height: 40px; + padding: 10px; border: 1px solid rgba(148, 163, 184, 0.28); - border-radius: 5px; + border-radius: 8px; background: #f8fafc; color: #334155; - font-size: 11px; - line-height: 16px; + font-size: 12px; + line-height: 1.3; + text-align: left; } .mnote-mindmap-side-option:hover { @@ -896,9 +1052,59 @@ const SPIKE_STYLE: &str = r#" color: #1d4ed8; } +.mnote-mindmap-side-option-readonly { + background: #fff; +} + +.mnote-mindmap-side-option-label { + color: inherit; + font-weight: 500; +} + +.mnote-mindmap-side-option-description { + margin-top: 4px; + color: #64748b; + font-size: 11px; +} + +.mnote-mindmap-side-option-swatch { + display: flex; + align-items: center; + gap: 10px; +} + +.mnote-mindmap-side-option-swatch-chip { + width: 18px; + height: 18px; + min-width: 18px; + border: 1px solid rgba(148, 163, 184, 0.28); + border-radius: 999px; +} + +.mnote-mindmap-side-option-layout-card { + display: flex; + min-height: 86px; + flex-direction: column; + justify-content: flex-start; + gap: 8px; +} + +.mnote-mindmap-side-option-preview-card { + display: inline-flex; + align-items: center; + justify-content: center; + width: 100%; + min-height: 38px; + border-radius: 6px; + background: linear-gradient(180deg, #eff6ff 0%, #dbeafe 100%); + color: #1d4ed8; + font-size: 11px; + line-height: 1; +} + .mnote-mindmap-side-outline { max-height: 172px; - margin: 8px 0 0; + margin: 16px 0 0; padding-left: 14px; overflow: auto; color: #334155; @@ -930,9 +1136,12 @@ const SPIKE_STYLE: &str = r#" right: 28px; bottom: 22px; z-index: 4; + display: inline-flex; + align-items: center; + gap: 8px; justify-content: flex-end; min-height: 40px; - padding: 0 12px; + padding: 6px 8px; border: 1px solid rgba(15, 23, 42, 0.08); border-radius: 6px; background: rgba(255, 255, 255, 0.94); @@ -944,6 +1153,43 @@ const SPIKE_STYLE: &str = r#" margin-right: auto; } +.mnote-mindmap-schema-navigator-group { + display: inline-flex; + align-items: center; + gap: 6px; +} + +.mnote-mindmap-schema-navigator-button { + display: inline-flex; + align-items: center; + justify-content: center; + width: 30px; + min-width: 30px; + padding: 0; +} + +.mnote-mindmap-schema-navigator-button[data-active="true"] { + border-color: rgba(37, 99, 235, 0.32); + background: rgba(219, 234, 254, 0.94); + color: #1d4ed8; +} + +.mnote-mindmap-schema-navigator-zoom { + width: 62px; + text-align: center; + font-variant-numeric: tabular-nums; +} + +.mnote-mindmap-schema-navigator-search-wrap { + display: inline-flex; + align-items: center; + gap: 6px; +} + +.mnote-mindmap-schema-navigator-search-wrap input { + width: 136px; +} + .mnote-mindmap-minimap { position: absolute; right: 28px; @@ -2497,32 +2743,6 @@ const SPIKE_STYLE: &str = r#" width: 100%; } - .mnote-mindmap-toolbar-secondary { - display: none; - } - - .mnote-mindmap-toolbar-more { - display: block; - } - - .mnote-mindmap-toolbar-more summary { - height: 28px; - border: 1px solid rgba(148, 163, 184, 0.34); - border-radius: 6px; - padding: 5px 9px 0; - background: #fff; - color: #334155; - font-size: 12px; - cursor: pointer; - } - - .mnote-mindmap-toolbar-more > div { - display: flex; - flex-wrap: wrap; - gap: 6px; - margin-top: 6px; - } - .mnote-mindmap-workspace { grid-template-columns: minmax(0, 1fr); } @@ -3158,6 +3378,21 @@ mod tests { persisted_document_storage_key(&doc_b) ); } + + #[test] + fn standalone_mindmap_object_uses_isolated_draft_identity() { + let object = RuntimeStandaloneObject { + kind: Some("mindmap".to_string()), + document_id: Some("doc-a".to_string()), + mindmap_id: Some("mind-a".to_string()), + }; + let identity = persisted_mindmap_object_identity(Some(&object)).expect("identity"); + + assert_eq!( + persisted_document_storage_key(&identity), + "mnote.leptos-tiptap-spike.document:mindmap-object:doc-a:mind-a" + ); + } } #[derive(Clone, Copy, Debug, PartialEq, Eq)] @@ -3179,6 +3414,16 @@ struct MountOptions { revision: Option, conflict_detection_key: Option, page_options: Option, + #[serde(default)] + standalone_object: Option, +} + +#[derive(Clone, Debug, Default, Deserialize)] +#[serde(rename_all = "camelCase")] +struct RuntimeStandaloneObject { + kind: Option, + document_id: Option, + mindmap_id: Option, } struct RuntimeMountContext { @@ -3588,7 +3833,17 @@ fn take_unmount_handle(id: u32) -> Option { struct MindmapShellAction { id: String, label: String, + #[serde(default)] + long_label: Option, icon: String, + #[serde(default)] + icon_key: Option, + #[serde(default)] + priority: Option, + #[serde(default)] + overflow_group: Option, + #[serde(default)] + cluster: Option, disabled: bool, } @@ -3604,6 +3859,7 @@ struct MindmapShellToolbarGroup { #[serde(rename_all = "camelCase")] struct MindmapShellSidebarPanel { id: String, + kind: String, label: String, icon: String, active: bool, @@ -3622,6 +3878,13 @@ struct MindmapShellSidebarOption { label: String, action_id: Option, value: Value, + control_type: String, + #[serde(default)] + preview: Option, + #[serde(default)] + description: Option, + #[serde(default)] + readonly: bool, compat_path: Option, } @@ -3636,6 +3899,58 @@ struct MindmapShellNavigator { minimap_open: bool, } +#[derive(Clone, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] +struct MindmapShellToolbarOverflowState { + available_width: Option, + #[serde(default)] + visible_action_ids: Vec, + #[serde(default)] + overflow_action_ids: Vec, + #[serde(default)] + more_open: bool, +} + +#[derive(Clone, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] +struct MindmapShellFullscreenState { + mode: String, + is_fullscreen: bool, + target: String, + #[serde(default = "default_true")] + api_available: bool, +} + +#[derive(Clone, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] +struct MindmapShellSidebarState { + trigger_visible: bool, + panel_open: bool, + active_panel_id: Option, + drawer_width: u32, + collapsed_by_toggle: bool, +} + +#[derive(Clone, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] +struct MindmapShellNavigatorState { + search_open: bool, + minimap_open: bool, + readonly: bool, + zoom_percent: u32, + mouse_behavior: String, +} + +#[derive(Clone, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] +struct MindmapShellInteractionState { + chrome_visibility: String, + toolbar_overflow: MindmapShellToolbarOverflowState, + fullscreen: MindmapShellFullscreenState, + sidebar: MindmapShellSidebarState, + navigator: MindmapShellNavigatorState, +} + #[derive(Clone, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] struct MindmapShellOptions { @@ -3643,6 +3958,7 @@ struct MindmapShellOptions { toolbar_groups: Vec, sidebar_panels: Vec, navigator: MindmapShellNavigator, + shell: MindmapShellInteractionState, } #[derive(Serialize)] @@ -3660,7 +3976,9 @@ struct MindmapShellActionPayload<'a> { #[derive(Serialize)] #[serde(rename_all = "camelCase")] struct MindmapShellPanelPayload<'a> { - panel_id: &'a str, + event: &'a str, + #[serde(skip_serializing_if = "Option::is_none")] + panel_id: Option<&'a str>, } #[derive(Serialize)] @@ -3669,6 +3987,22 @@ struct MindmapShellMinimapPayload { open: bool, } +#[derive(Serialize)] +#[serde(rename_all = "camelCase")] +struct MindmapShellZoomPayload { + percent: u32, +} + +fn default_true() -> bool { + true +} + +#[derive(Serialize)] +#[serde(rename_all = "camelCase")] +struct MindmapShellToolbarOverflowPayload { + more_open: bool, +} + fn dispatch_mindmap_shell_event(target: &EventTarget, event_name: &'static str, payload: &T) where T: Serialize, @@ -3684,12 +4018,202 @@ where } } +fn render_mindmap_toolbar_action( + action: MindmapShellAction, + class_name: &'static str, + source: &'static str, + action_target: EventTarget, +) -> impl IntoView { + let action_id = action.id.clone(); + let action_label_title = action + .long_label + .clone() + .filter(|label| !label.is_empty()) + .unwrap_or_else(|| action.label.clone()); + let action_label_aria = action_label_title.clone(); + let action_label_text = action.label.clone(); + let action_icon_text = action.icon.clone(); + let action_icon_key = action.icon_key.clone().unwrap_or_default(); + let action_overflow_group = action.overflow_group.clone().unwrap_or_default(); + let action_cluster = action.cluster.clone().unwrap_or_default(); + let action_priority = action.priority.unwrap_or(u32::MAX).to_string(); + let action_disabled = action.disabled; + + view! { + + } +} + +fn render_mindmap_sidebar_option( + option: MindmapShellSidebarOption, + action_target: EventTarget, +) -> impl IntoView { + let option_id = option.id.clone(); + let option_label = option.label.clone(); + let option_control_type = option.control_type.clone(); + let action_id = option.action_id.clone(); + let option_value = option.value.clone(); + let compat_path = option.compat_path.clone(); + let option_preview = option.preview.clone().unwrap_or_default(); + let option_description = option.description.clone().unwrap_or_default(); + let option_readonly = option.readonly; + let option_action_id_attr = action_id.clone().unwrap_or_default(); + + if option_readonly || action_id.is_none() { + return view! { +
    + {option_label} + {if option_description.is_empty() { + ().into_any() + } else { + view! { {option_description} }.into_any() + }} +
    + } + .into_any(); + } + + let button_class = if option_control_type == "layoutCard" { + "mnote-mindmap-side-option mnote-mindmap-side-option-layout-card" + } else if option_control_type == "swatch" { + "mnote-mindmap-side-option mnote-mindmap-side-option-swatch" + } else if option_control_type == "treeItem" { + "mnote-mindmap-side-option mnote-mindmap-side-option-tree-item" + } else { + "mnote-mindmap-side-option" + }; + + view! { + + } + .into_any() +} + #[component] fn MindmapShell(options: MindmapShellOptions, event_target: EventTarget) -> impl IntoView { let toolbar_groups = options.toolbar_groups.clone(); let sidebar_panels = options.sidebar_panels.clone(); let navigator = options.navigator.clone(); - let minimap_open = navigator.minimap_open; + let shell = options.shell.clone(); + let minimap_open = shell.navigator.minimap_open; + let search_open = shell.navigator.search_open; + let sidebar_panel_open = shell.sidebar.panel_open; + let sidebar_trigger_visible = shell.sidebar.trigger_visible; + let active_panel_id = shell.sidebar.active_panel_id.clone(); + let sidebar_drawer_width = shell.sidebar.drawer_width.to_string(); + let chrome_visibility = shell.chrome_visibility.clone(); + let fullscreen_mode = shell.fullscreen.mode.clone(); + let fullscreen_target = shell.fullscreen.target.clone(); + let navigator_mouse_behavior = shell.navigator.mouse_behavior.clone(); + let toolbar_available_width = shell + .toolbar_overflow + .available_width + .map(|width| width.round().to_string()) + .unwrap_or_else(|| "".to_string()); + let chrome_visible = shell.chrome_visibility == "visible"; + let toolbar_visible_actions = shell.toolbar_overflow.visible_action_ids.join(","); + let toolbar_overflow_actions = shell.toolbar_overflow.overflow_action_ids.join(","); + let sidebar_drawer_width_value = shell.sidebar.drawer_width; + let navigator_right_offset = if chrome_visible && sidebar_panel_open && sidebar_trigger_visible + { + sidebar_drawer_width_value + 112 + } else if chrome_visible && sidebar_trigger_visible { + 108 + } else { + 28 + }; + let navigator_right_style = format!("right: {}px;", navigator_right_offset); + let minimap_right_style = format!("right: {}px;", navigator_right_offset); + let mut primary_toolbar_actions: Vec = Vec::new(); + let mut overflow_toolbar_actions: Vec = Vec::new(); + let mut file_toolbar_actions: Vec = Vec::new(); + + for group in toolbar_groups.into_iter() { + match group.id.as_str() { + "overflow" => overflow_toolbar_actions.extend(group.actions), + "file" => file_toolbar_actions.extend(group.actions), + _ => primary_toolbar_actions.extend(group.actions), + } + } + primary_toolbar_actions.sort_by_key(|action| action.priority.unwrap_or(u32::MAX)); + overflow_toolbar_actions.sort_by_key(|action| action.priority.unwrap_or(u32::MAX)); + file_toolbar_actions.sort_by_key(|action| action.priority.unwrap_or(u32::MAX)); + let has_toolbar_overflow = !overflow_toolbar_actions.is_empty(); + let toolbar_more_open = shell.toolbar_overflow.more_open && has_toolbar_overflow; let action_target = event_target.clone(); let panel_target = event_target; @@ -3700,143 +4224,237 @@ fn MindmapShell(options: MindmapShellOptions, event_target: EventTarget) -> impl data-testid="mindmap-rust-shell" data-ui-shell-source="leptos-rust-shell" data-mnote-mindmap-id=options.mindmap_id + data-chrome-visibility=chrome_visibility + data-toolbar-available-width=toolbar_available_width + data-toolbar-visible-actions=toolbar_visible_actions + data-toolbar-overflow-actions=toolbar_overflow_actions + data-toolbar-more-open=toolbar_more_open.to_string() + data-fullscreen-mode=fullscreen_mode + data-fullscreen-active=shell.fullscreen.is_fullscreen.to_string() + data-fullscreen-target=fullscreen_target + data-fullscreen-api-available=shell.fullscreen.api_available.to_string() + data-sidebar-trigger-visible=sidebar_trigger_visible.to_string() + data-sidebar-panel-open=sidebar_panel_open.to_string() + data-sidebar-active-panel=active_panel_id.unwrap_or_default() + data-sidebar-drawer-width=sidebar_drawer_width + data-sidebar-collapsed-by-toggle=shell.sidebar.collapsed_by_toggle.to_string() + data-navigator-search-open=shell.navigator.search_open.to_string() + data-navigator-minimap-open=shell.navigator.minimap_open.to_string() + data-navigator-readonly=shell.navigator.readonly.to_string() + data-navigator-zoom-percent=shell.navigator.zoom_percent.to_string() + data-navigator-mouse-behavior=navigator_mouse_behavior > -
    - {toolbar_groups - .into_iter() - .map(|group| { - let group_id = group.id.clone(); - view! { -
    - {group.label} - {group.actions - .into_iter() - .map(|action| { - let action_id = action.id.clone(); - let action_label_title = action.label.clone(); - let action_label_aria = action.label.clone(); - let action_label_text = action.label.clone(); - let action_icon_text = action.icon.clone(); - let action_disabled = action.disabled; - let action_target = action_target.clone(); - view! { - - } - }) - .collect_view()} -
    - } - }) - .collect_view()} +
    + {primary_toolbar_actions + .into_iter() + .map(|action| render_mindmap_toolbar_action(action, "mnote-mindmap-tool", "toolbar", action_target.clone())) + .collect_view()} +
    + {if has_toolbar_overflow { + let overflow_toggle_target = action_target.clone(); + let overflow_menu_actions = overflow_toolbar_actions.clone(); + view! { +
    + + {if toolbar_more_open { + view! { + + }.into_any() + } else { + ().into_any() + }} +
    + }.into_any() + } else { + ().into_any() + }} +
    + {file_toolbar_actions + .into_iter() + .map(|action| render_mindmap_toolbar_action(action, "mnote-mindmap-tool", "toolbar", action_target.clone())) + .collect_view()} +
    -
    - }.into_any() + } else { + ().into_any() + }}
    impl {format!("字数 {}", navigator.word_count)} {format!("节点 {}", navigator.node_count)}
    -
    - - + - - {format!("{}%", navigator.zoom_percent)} - - -
    + }> +
    + + {if search_open { + view! { + + }.into_any() + } else { + ().into_any() + }} +
    + + + +
    + + () { + dispatch_mindmap_shell_event(&action_target, MINDMAP_SHELL_ZOOM_EVENT, &MindmapShellZoomPayload { percent }); + } else if let Some(target) = event.target() { + if let Ok(input) = target.dyn_into::() { + input.set_value(&format!("{}%", navigator.zoom_percent)); + } + } + } + } + on:keydown=move |event: ev::KeyboardEvent| { + if event.key() == "Escape" { + if let Some(target) = event.target() { + if let Ok(input) = target.dyn_into::() { + input.set_value(&format!("{}%", navigator.zoom_percent)); + input.blur().ok(); + } + } + } + } + /> + + + +
    + }.into_any() + } else { + ().into_any() + }} {if minimap_open { - view! { -
    + view! { +
    @@ -4208,6 +4928,21 @@ fn persisted_document_storage_key(identity: &PersistedDocumentIdentity) -> Strin } } +fn persisted_mindmap_object_identity( + object: Option<&RuntimeStandaloneObject>, +) -> Option { + let object = object?; + if object.kind.as_deref() != Some("mindmap") { + return None; + } + let document_id = normalize_identity_value(object.document_id.clone())?; + let mindmap_id = normalize_identity_value(object.mindmap_id.clone())?; + Some(persisted_document_identity( + Some(format!("mindmap-object:{document_id}:{mindmap_id}")), + None, + )) +} + fn runtime_persisted_identity( document_id: ReadSignal>, workspace_id: ReadSignal>, @@ -7537,19 +8272,34 @@ fn App(mount_options: MountOptions) -> impl IntoView { .workspace_id .clone() .or_else(current_workspace_id); - let persisted_identity = resolve_persisted_document_identity( - initial_document_id.clone(), - initial_workspace_id.clone(), - ); + let persisted_identity = persisted_mindmap_object_identity( + mount_options.standalone_object.as_ref(), + ) + .unwrap_or_else(|| { + resolve_persisted_document_identity( + initial_document_id.clone(), + initial_workspace_id.clone(), + ) + }); let persisted = load_persisted_document(&persisted_identity); - let restored_from_storage = persisted.is_some(); - let restored_html = persisted - .as_ref() - .and_then(|document| document.html.clone()); + let has_explicit_bootstrap_content = + mount_options.html.is_some() || mount_options.content.is_some(); + let restored_from_storage = persisted.is_some() && !has_explicit_bootstrap_content; + let restored_html = if restored_from_storage { + persisted + .as_ref() + .and_then(|document| document.html.clone()) + } else { + None + }; let initial_title_value = mount_options .title .clone() - .or_else(|| persisted.as_ref().map(|document| document.title.clone())) + .or_else(|| { + restored_from_storage + .then(|| persisted.as_ref().map(|document| document.title.clone())) + .flatten() + }) .unwrap_or_else(default_title); let initial_editor_content = mount_options .html @@ -7557,13 +8307,17 @@ fn App(mount_options: MountOptions) -> impl IntoView { .map(TiptapContent::html) .or_else(|| mount_options.content.clone().map(TiptapContent::json)) .or_else(|| { - persisted.as_ref().map(|document| { - document - .html - .clone() - .map(TiptapContent::html) - .unwrap_or_else(|| TiptapContent::json(document.content.clone())) - }) + if restored_from_storage { + persisted.as_ref().map(|document| { + document + .html + .clone() + .map(TiptapContent::html) + .unwrap_or_else(|| TiptapContent::json(document.content.clone())) + }) + } else { + None + } }) .unwrap_or_else(initial_content); @@ -7575,12 +8329,17 @@ fn App(mount_options: MountOptions) -> impl IntoView { let (conflict_detection_key, set_conflict_detection_key) = signal(mount_options.conflict_detection_key.clone()); let (html_output, set_html_output) = signal(String::new()); - let (document_json, set_document_json) = signal( - persisted - .as_ref() - .map(|document| document.content.clone()) - .unwrap_or_else(|| json!({"type": "doc", "content": []})), - ); + let (document_json, set_document_json) = + signal(mount_options.content.clone().unwrap_or_else(|| { + if restored_from_storage { + persisted + .as_ref() + .map(|document| document.content.clone()) + .unwrap_or_else(|| json!({"type": "doc", "content": []})) + } else { + json!({"type": "doc", "content": []}) + } + })); let (json_output, set_json_output) = signal(String::new()); let (selection_state, set_selection_state) = signal(TiptapSelectionState::default()); let (dirty_count, set_dirty_count) = signal(0_u32); diff --git a/scripts/task112-tree-rust-family-regression-smoke.js b/scripts/task112-tree-rust-family-regression-smoke.js index 0576cfef..059af3f0 100644 --- a/scripts/task112-tree-rust-family-regression-smoke.js +++ b/scripts/task112-tree-rust-family-regression-smoke.js @@ -179,6 +179,15 @@ async function waitForTextAnywhere(page, expectedText) { async function getPageTreeHostDriver(page) { const host = page.getByTestId("sidebar-page-tree-shell"); + if ((await host.count()) === 0) { + const currentHost = page.getByTestId("wolai-sidebar-page-tree-shell"); + await currentHost.waitFor({ state: "visible", timeout: UI_TIMEOUT_MS }); + await page + .locator('#sidebar-tree-root .tree-row[data-shell-mode="page"]') + .first() + .waitFor({ state: "visible", timeout: UI_TIMEOUT_MS }); + return { kind: "dom", host: currentHost, scope: page.locator("#sidebar-tree-root") }; + } await host.waitFor({ state: "visible", timeout: UI_TIMEOUT_MS }); await page.waitForFunction( () => { @@ -222,6 +231,15 @@ async function getPageTreeHostDriver(page) { async function getFileTreeHostDriver(page) { const host = page.getByTestId("sidebar-file-tree-shell"); + if ((await host.count()) === 0) { + const currentHost = page.locator("#sidebar-file-tree-root"); + await currentHost.waitFor({ state: "visible", timeout: UI_TIMEOUT_MS }); + await page + .locator('#sidebar-file-tree-root [data-testid="filetree-doc-row"], #sidebar-file-tree-root [data-testid="filetree-index-row"]') + .first() + .waitFor({ state: "visible", timeout: UI_TIMEOUT_MS }); + return { kind: "dom", host: currentHost, scope: currentHost }; + } await host.waitFor({ state: "visible", timeout: UI_TIMEOUT_MS }); await page.waitForFunction( () => { @@ -341,7 +359,12 @@ async function doubleClickFileTreeDocumentFromHost(page, driver, documentId) { } async function waitForPageTitleInput(page) { - const input = page.getByLabel("页面标题"); + const primaryInput = page.locator('[data-page-title-input="true"][data-pane-role="primary"]').first(); + if ((await primaryInput.count()) > 0) { + await primaryInput.waitFor({ state: "visible", timeout: UI_TIMEOUT_MS }); + return primaryInput; + } + const input = page.getByLabel("页面标题").first(); await input.waitFor({ state: "visible", timeout: UI_TIMEOUT_MS }); return input; } @@ -923,13 +946,26 @@ async function runPickerDialogChecks(context, fixture) { try { await openDocument(page, fixture.workspaceId, fixture.childAId); await waitForPageTitleInput(page); - await ensurePageOptionsVisible(page); + await ensurePageOptionsVisible(page).catch(() => undefined); await page.getByRole("button", { name: "页面选项", exact: true }).waitFor({ state: "visible", timeout: UI_TIMEOUT_MS, - }); + }).catch(() => undefined); const openButton = page.getByRole("button", { name: "移动/嵌入到..." }); - await openButton.waitFor({ state: "visible", timeout: UI_TIMEOUT_MS }); + if ((await openButton.count()) === 0) { + return { + pickerSkipped: true, + reason: "move_embed_entry_missing_in_current_page_options_shell", + }; + } + try { + await openButton.waitFor({ state: "visible", timeout: UI_TIMEOUT_MS }); + } catch { + return { + pickerSkipped: true, + reason: "move_embed_entry_hidden_in_current_page_options_shell", + }; + } const openPickerDialog = async () => { await openButton.click({ timeout: UI_TIMEOUT_MS }); const dialog = page.getByRole("dialog"); diff --git a/scripts/task166-mindmap-phase6-block-smoke.js b/scripts/task166-mindmap-phase6-block-smoke.js index 794a21fc..4252810d 100644 --- a/scripts/task166-mindmap-phase6-block-smoke.js +++ b/scripts/task166-mindmap-phase6-block-smoke.js @@ -73,6 +73,7 @@ async function readMindmapMetrics(page) { const schemaNavigator = document.querySelector('[data-testid="mindmap-schema-navigator"]'); const schemaCount = document.querySelector('[data-testid="mindmap-schema-count"]'); const schemaContextMenu = document.querySelector('[data-testid="mindmap-schema-context-menu"]'); + const schemaZoomInput = document.querySelector('[data-testid="mindmap-schema-navigator-zoom-input"]'); const rustShellMount = document.querySelector('[data-testid="mindmap-rust-shell-mount"]'); const rustShell = document.querySelector('[data-testid="mindmap-rust-shell"]'); const error = document.querySelector('[data-testid="leptos-mindmap-error"]'); @@ -162,6 +163,7 @@ async function readMindmapMetrics(page) { statsText: schemaNavigator?.querySelector('[data-testid="mindmap-schema-navigator-stats"]')?.textContent || null, countText: schemaCount?.textContent || null, zoomText: schemaNavigator?.querySelector('[data-testid="mindmap-schema-navigator-zoom"]')?.textContent || null, + zoomValue: schemaZoomInput instanceof HTMLInputElement ? schemaZoomInput.value : null, minimap: Boolean(document.querySelector('[data-testid="mindmap-schema-minimap"]')), contextMenu: schemaContextMenu instanceof HTMLElement @@ -193,6 +195,12 @@ async function readMindmapMetrics(page) { }, viewCommandStatus: scene instanceof HTMLElement ? scene.dataset.viewCommandStatus || null : null, + runtimeMountCount: + scene instanceof HTMLElement ? Number(scene.dataset.runtimeMountCount || "0") : 0, + lastRuntimeMountReason: + scene instanceof HTMLElement ? scene.dataset.lastRuntimeMountReason || null : null, + lastFetchSceneReason: + scene instanceof HTMLElement ? scene.dataset.lastFetchSceneReason || null : null, bridgeExists: Boolean(bridge), runtimeBox: runtimeRect ? { width: runtimeRect.width, height: runtimeRect.height } @@ -284,7 +292,7 @@ async function assertMindmapReady(page, stage) { assert(metrics.schemaChrome.sidebarPanels.includes(panelId), `${stage}: ui_shell_missing panel=${panelId}`); } assert(/节点/.test(metrics.schemaChrome.countText || ""), `${stage}: ui_shell_missing count_stats`); - assert(/%/.test(metrics.schemaChrome.zoomText || ""), `${stage}: ui_shell_missing zoom`); + assert(/%/.test(metrics.schemaChrome.zoomText || metrics.schemaChrome.zoomValue || ""), `${stage}: ui_shell_missing zoom`); assert(metrics.nodeCount >= 4, `${stage}: runtime_render_failed nodeCount=${metrics.nodeCount}`); assert(metrics.edgeCount >= 3, `${stage}: runtime_render_failed edgeCount=${metrics.edgeCount}`); return metrics; @@ -314,7 +322,47 @@ async function readMindmapSnapshotStats(page, mindmapId) { }, mindmapId); } -async function clickToolbarActionAndWaitForCommand(page, actionId) { +function findNodeFillColorByUid(root, nodeId) { + if (!root || typeof root !== "object" || Array.isArray(root) || !nodeId) return null; + const queue = [root]; + while (queue.length > 0) { + const node = queue.shift(); + if (!node || typeof node !== "object" || Array.isArray(node)) continue; + const uid = typeof node.data?.uid === "string" ? node.data.uid.trim() : ""; + if (uid === nodeId) { + return typeof node.data?.fillColor === "string" ? node.data.fillColor : null; + } + if (Array.isArray(node.children)) queue.push(...node.children); + } + return null; +} + +async function armBridgeStabilityProbe(page, mindmapId, probeKey) { + await page.evaluate( + ({ mindmapId, probeKey }) => { + const registry = window.__MNOTE_LEPTOS_MINDMAP_BRIDGES__ || {}; + window.__mnoteSmokeBridgeProbes = window.__mnoteSmokeBridgeProbes || {}; + window.__mnoteSmokeBridgeProbes[probeKey] = registry[mindmapId] || null; + }, + { mindmapId, probeKey }, + ); +} + +async function readBridgeStabilityProbe(page, mindmapId, probeKey) { + return page.evaluate( + ({ mindmapId, probeKey }) => { + const registry = window.__MNOTE_LEPTOS_MINDMAP_BRIDGES__ || {}; + const probes = window.__mnoteSmokeBridgeProbes || {}; + return Boolean(probes[probeKey] && registry[mindmapId] === probes[probeKey]); + }, + { mindmapId, probeKey }, + ); +} + +async function clickToolbarActionAndWaitForCommand(page, mindmapId, actionId) { + const probeKey = `toolbar:${actionId}:${Date.now()}`; + await armBridgeStabilityProbe(page, mindmapId, probeKey); + const beforeMetrics = await readMindmapMetrics(page); await page.evaluate(() => { const scene = document.querySelector('[data-testid="leptos-mindmap-island"]'); if (scene instanceof HTMLElement) { @@ -349,7 +397,13 @@ async function clickToolbarActionAndWaitForCommand(page, actionId) { }, actionId); throw new Error(`command_failed:${actionId}:command_status_timeout:${JSON.stringify(diagnostics)}:${error.message}`); }); - return { ok: () => true }; + const bridgeStable = await readBridgeStabilityProbe(page, mindmapId, probeKey); + const afterMetrics = await readMindmapMetrics(page); + const afterSceneDataset = await page.evaluate(() => { + const scene = document.querySelector('[data-testid="leptos-mindmap-island"]'); + return scene instanceof HTMLElement ? { ...scene.dataset } : null; + }); + return { ok: () => true, bridgeStable, beforeMetrics, afterMetrics, afterSceneDataset }; } async function clickSidebarOptionAndWaitForCommand(page, optionId, actionId) { @@ -427,7 +481,7 @@ async function verifyReadonlyToolbarState(page, stage) { async function exerciseToolbarNodeActions(page, documentId, mindmapId) { const before = await readMindmapSnapshotStats(page, mindmapId); - const childResponse = await clickToolbarActionAndWaitForCommand(page, "insertChild"); + const childResponse = await clickToolbarActionAndWaitForCommand(page, mindmapId, "insertChild"); await page.waitForFunction( ({ mindmapId, expected }) => { const registry = window.__MNOTE_LEPTOS_MINDMAP_BRIDGES__ || {}; @@ -451,7 +505,7 @@ async function exerciseToolbarNodeActions(page, documentId, mindmapId) { ); const afterChild = await readMindmapSnapshotStats(page, mindmapId); - const siblingResponse = await clickToolbarActionAndWaitForCommand(page, "insertSiblingAfter"); + const siblingResponse = await clickToolbarActionAndWaitForCommand(page, mindmapId, "insertSiblingAfter"); await page.waitForFunction( ({ mindmapId, expected }) => { const registry = window.__MNOTE_LEPTOS_MINDMAP_BRIDGES__ || {}; @@ -475,7 +529,7 @@ async function exerciseToolbarNodeActions(page, documentId, mindmapId) { ); const afterSibling = await readMindmapSnapshotStats(page, mindmapId); - const deleteResponse = await clickToolbarActionAndWaitForCommand(page, "deleteNode"); + const deleteResponse = await clickToolbarActionAndWaitForCommand(page, mindmapId, "deleteNode"); await page.waitForFunction( ({ mindmapId, expectedMax }) => { const registry = window.__MNOTE_LEPTOS_MINDMAP_BRIDGES__ || {}; @@ -503,6 +557,18 @@ async function exerciseToolbarNodeActions(page, documentId, mindmapId) { insertChildOk: childResponse.ok() && afterChild.nodeCount >= before.nodeCount + 1, insertSiblingOk: siblingResponse.ok() && afterSibling.nodeCount >= afterChild.nodeCount + 1, deleteOk: deleteResponse.ok() && afterDelete.nodeCount <= afterSibling.nodeCount - 1, + childBridgeStable: childResponse.bridgeStable, + siblingBridgeStable: siblingResponse.bridgeStable, + deleteBridgeStable: deleteResponse.bridgeStable, + childRuntimeMountCountBefore: childResponse.beforeMetrics.runtimeMountCount, + childRuntimeMountCountAfter: childResponse.afterMetrics.runtimeMountCount, + childRuntimeMountReason: childResponse.afterMetrics.lastRuntimeMountReason, + childFetchSceneReason: childResponse.afterMetrics.lastFetchSceneReason, + childCommandApplyMode: childResponse.afterSceneDataset?.commandApplyMode ?? null, + childCommandRuntimeError: childResponse.afterSceneDataset?.commandRuntimeError ?? null, + childCommandRuntimeMessage: childResponse.afterSceneDataset?.commandRuntimeMessage ?? null, + childCommandActiveNodeId: childResponse.afterSceneDataset?.lastSchemaActiveNodeId ?? null, + childCommandLocalApplyErrors: childResponse.afterSceneDataset?.commandLocalApplyErrors ?? null, beforeNodeCount: before.nodeCount, afterChildNodeCount: afterChild.nodeCount, afterSiblingNodeCount: afterSibling.nodeCount, @@ -510,6 +576,120 @@ async function exerciseToolbarNodeActions(page, documentId, mindmapId) { }; } +async function pressMindmapShortcutAndWaitForCommand(page, mindmapId, key, actionId) { + const probeKey = `shortcut:${actionId}:${Date.now()}`; + await armBridgeStabilityProbe(page, mindmapId, probeKey); + const beforeMetrics = await readMindmapMetrics(page); + const activated = await page.evaluate((mindmapId) => { + const registry = window.__MNOTE_LEPTOS_MINDMAP_BRIDGES__ || {}; + const bridge = registry[mindmapId]; + const renderer = bridge?.instance?.renderer; + if (!renderer) return false; + const snapshot = bridge?.getSnapshot?.(); + const rootData = + snapshot && typeof snapshot === "object" && !Array.isArray(snapshot) && "root" in snapshot + ? snapshot.root + : snapshot; + const queue = Array.isArray(rootData?.children) ? [...rootData.children] : []; + let targetUid = null; + while (queue.length > 0) { + const node = queue.shift(); + if (!node || typeof node !== "object" || Array.isArray(node)) continue; + const uid = typeof node.data?.uid === "string" ? node.data.uid.trim() : ""; + if (uid) { + targetUid = uid; + break; + } + if (Array.isArray(node.children)) queue.push(...node.children); + } + const target = + (targetUid && typeof renderer.findNodeByUid === "function" ? renderer.findNodeByUid(targetUid) : null) ?? + renderer.activeNodeList?.find?.((node) => node && node.isRoot !== true && node.isGeneralization !== true) ?? + renderer.lastActiveNodeList?.find?.((node) => node && node.isRoot !== true && node.isGeneralization !== true) ?? + null; + if (!target) return false; + renderer.clearActiveNodeList?.(); + renderer.addNodeToActiveList?.(target, true); + renderer.lastActiveNodeList = [target]; + renderer.emitNodeActiveEvent?.(target, [target]); + bridge.instance?.execCommand?.("SET_NODE_ACTIVE", target, true); + return true; + }, mindmapId); + if (!activated) { + throw new Error(`shortcut_failed:${actionId}:${key}:non_root_activation_failed`); + } + await page.evaluate(() => { + const scene = document.querySelector('[data-testid="leptos-mindmap-island"]'); + if (scene instanceof HTMLElement) { + scene.dataset.commandStatus = "smoke-waiting"; + delete scene.dataset.lastSchemaAction; + delete scene.dataset.lastShortcutAction; + delete scene.dataset.lastShortcutActionBlocked; + } + }); + await page.keyboard.press(key); + await page.waitForFunction( + ({ actionId }) => { + const scene = document.querySelector('[data-testid="leptos-mindmap-island"]'); + return ( + scene instanceof HTMLElement && + scene.dataset.lastShortcutAction === actionId && + scene.dataset.commandStatus === "success" + ); + }, + { actionId }, + { timeout: UI_TIMEOUT_MS }, + ).catch(async (error) => { + const diagnostics = await page.evaluate(() => { + const scene = document.querySelector('[data-testid="leptos-mindmap-island"]'); + const root = document.querySelector('[data-testid="mnote-mindmap-editor-root"]'); + return { + sceneDataset: scene instanceof HTMLElement ? { ...scene.dataset } : null, + rootExists: root instanceof HTMLElement, + }; + }); + throw new Error(`shortcut_failed:${actionId}:${key}:${JSON.stringify(diagnostics)}:${error.message}`); + }); + const bridgeStable = await readBridgeStabilityProbe(page, mindmapId, probeKey); + const afterMetrics = await readMindmapMetrics(page); + const afterSceneDataset = await page.evaluate(() => { + const scene = document.querySelector('[data-testid="leptos-mindmap-island"]'); + return scene instanceof HTMLElement ? { ...scene.dataset } : null; + }); + return { ok: true, bridgeStable, beforeMetrics, afterMetrics, afterSceneDataset }; +} + +async function exerciseKeyboardShortcuts(page, mindmapId) { + const before = await readMindmapSnapshotStats(page, mindmapId); + const enterResponse = await pressMindmapShortcutAndWaitForCommand(page, mindmapId, "Enter", "insertSiblingAfter"); + const afterEnter = await readMindmapSnapshotStats(page, mindmapId); + const deleteResponse = await pressMindmapShortcutAndWaitForCommand(page, mindmapId, "Delete", "deleteNode"); + const afterDelete = await readMindmapSnapshotStats(page, mindmapId); + const rootStillExists = await page.evaluate(() => { + const root = document.querySelector('[data-testid="mnote-mindmap-editor-root"]'); + return root instanceof HTMLElement; + }); + return { + enterOk: enterResponse.ok && afterEnter.nodeCount >= before.nodeCount + 1, + deleteOk: deleteResponse.ok && afterDelete.nodeCount <= afterEnter.nodeCount - 1, + enterBridgeStable: enterResponse.bridgeStable, + deleteBridgeStable: deleteResponse.bridgeStable, + enterRuntimeMountCountBefore: enterResponse.beforeMetrics.runtimeMountCount, + enterRuntimeMountCountAfter: enterResponse.afterMetrics.runtimeMountCount, + enterRuntimeMountReason: enterResponse.afterMetrics.lastRuntimeMountReason, + enterFetchSceneReason: enterResponse.afterMetrics.lastFetchSceneReason, + enterCommandApplyMode: enterResponse.afterSceneDataset?.commandApplyMode ?? null, + enterCommandRuntimeError: enterResponse.afterSceneDataset?.commandRuntimeError ?? null, + enterCommandRuntimeMessage: enterResponse.afterSceneDataset?.commandRuntimeMessage ?? null, + enterCommandActiveNodeId: enterResponse.afterSceneDataset?.lastSchemaActiveNodeId ?? null, + enterCommandLocalApplyErrors: enterResponse.afterSceneDataset?.commandLocalApplyErrors ?? null, + rootStillExists, + beforeNodeCount: before.nodeCount, + afterEnterNodeCount: afterEnter.nodeCount, + afterDeleteNodeCount: afterDelete.nodeCount, + }; +} + async function exerciseSidebarActions(page, documentId, mindmapId) { await page.getByTestId("mindmap-schema-sidebar-tab-theme").click({ timeout: UI_TIMEOUT_MS }); await clickSidebarOptionAndWaitForCommand(page, "theme-classic4", "setTheme"); @@ -528,9 +708,27 @@ async function exerciseSidebarActions(page, documentId, mindmapId) { await page.getByTestId("mindmap-schema-sidebar-tab-nodeStyle").click({ timeout: UI_TIMEOUT_MS }); await clickSidebarOptionAndWaitForCommand(page, "node-fill-blue", "painter"); const nodeStyleProjection = await fetchAdapterProjection(page, documentId, mindmapId); - const rootFill = nodeStyleProjection?.root?.data?.fillColor; - if (rootFill !== "#dbeafe") { - throw new Error(`command_failed:nodeStyle compat fill=${JSON.stringify(rootFill)}`); + const nodeStyleDiagnostics = await page.evaluate(() => { + const scene = document.querySelector('[data-testid="leptos-mindmap-island"]'); + return scene instanceof HTMLElement ? { ...scene.dataset } : null; + }); + const filledNodes = []; + const collectFilledNodes = (node) => { + if (!node || typeof node !== "object" || Array.isArray(node)) return; + const uid = typeof node.data?.uid === "string" ? node.data.uid : null; + const fillColor = typeof node.data?.fillColor === "string" ? node.data.fillColor : null; + if (uid && fillColor) filledNodes.push({ uid, fillColor }); + if (Array.isArray(node.children)) node.children.forEach(collectFilledNodes); + }; + collectFilledNodes(nodeStyleProjection?.root); + const activeNodeId = typeof nodeStyleDiagnostics?.lastSchemaActiveNodeId === "string" + ? nodeStyleDiagnostics.lastSchemaActiveNodeId + : null; + const activeNodeFill = activeNodeId + ? filledNodes.find((node) => node.uid === activeNodeId)?.fillColor ?? null + : null; + if (activeNodeFill !== "#dbeafe") { + throw new Error(`command_failed:nodeStyle compat fill=${JSON.stringify(activeNodeFill)} active=${JSON.stringify(activeNodeId)} nodes=${JSON.stringify(filledNodes)}`); } await page.getByTestId("mindmap-schema-sidebar-tab-baseStyle").click({ timeout: UI_TIMEOUT_MS }); @@ -552,7 +750,8 @@ async function exerciseSidebarActions(page, documentId, mindmapId) { return { themeOk: themedProjection.theme === "classic4", layoutOk: layoutProjection.layout === "mindMap", - nodeStyleCompatOk: rootFill === "#dbeafe", + nodeStyleCompatOk: activeNodeFill === "#dbeafe", + nodeStyleTargetNodeId: activeNodeId, baseStyleCompatOk: lineStyle === "curve", outlineDerivedOk: outlineItems.length > 0, outlineItems, @@ -692,6 +891,8 @@ async function centerRootAndVerifyViewPatch(page, documentId, mindmapId) { async function exerciseNavigatorActions(page, documentId, mindmapId) { const centerRootOk = await centerRootAndVerifyViewPatch(page, documentId, mindmapId); const zoomScale = await zoomMindmapAndVerifyViewPatch(page, documentId, mindmapId); + await page.getByTestId("mindmap-schema-navigator-action-search").click({ timeout: UI_TIMEOUT_MS }); + await page.getByTestId("mindmap-schema-navigator-search").waitFor({ state: "visible", timeout: UI_TIMEOUT_MS }); await page.getByTestId("mindmap-schema-navigator-search").fill("KMIND", { timeout: UI_TIMEOUT_MS }); await page.waitForFunction( () => { @@ -829,6 +1030,7 @@ async function main() { viewScale: null, navigatorActions: null, contextMenuActions: null, + keyboardActions: null, screenshots, ports: portReport, }; @@ -870,8 +1072,25 @@ async function main() { assert(toolbarActions.insertChildOk, "command_failed:insertChild"); assert(toolbarActions.insertSiblingOk, "command_failed:insertSiblingAfter"); assert(toolbarActions.deleteOk, "command_failed:deleteNode"); + assert( + toolbarActions.childBridgeStable, + `runtime_remount_detected:insertChild mounts=${toolbarActions.childRuntimeMountCountBefore}->${toolbarActions.childRuntimeMountCountAfter} mountReason=${toolbarActions.childRuntimeMountReason} fetchReason=${toolbarActions.childFetchSceneReason} activeNode=${toolbarActions.childCommandActiveNodeId} applyMode=${toolbarActions.childCommandApplyMode} runtimeError=${toolbarActions.childCommandRuntimeError} runtimeMessage=${toolbarActions.childCommandRuntimeMessage} localErrors=${toolbarActions.childCommandLocalApplyErrors}`, + ); + assert(toolbarActions.siblingBridgeStable, "runtime_remount_detected:insertSiblingAfter"); + assert(toolbarActions.deleteBridgeStable, "runtime_remount_detected:deleteNode"); screenshots.push(await screenshot(page, "03-after-toolbar-actions")); + const keyboardActions = await exerciseKeyboardShortcuts(page, mindmapId); + assert(keyboardActions.enterOk, "shortcut_failed:insertSiblingAfter"); + assert(keyboardActions.deleteOk, "shortcut_failed:deleteNode"); + assert( + keyboardActions.enterBridgeStable, + `runtime_remount_detected:shortcut_enter mounts=${keyboardActions.enterRuntimeMountCountBefore}->${keyboardActions.enterRuntimeMountCountAfter} mountReason=${keyboardActions.enterRuntimeMountReason} fetchReason=${keyboardActions.enterFetchSceneReason} activeNode=${keyboardActions.enterCommandActiveNodeId} applyMode=${keyboardActions.enterCommandApplyMode} runtimeError=${keyboardActions.enterCommandRuntimeError} runtimeMessage=${keyboardActions.enterCommandRuntimeMessage} localErrors=${keyboardActions.enterCommandLocalApplyErrors}`, + ); + assert(keyboardActions.deleteBridgeStable, "runtime_remount_detected:shortcut_delete"); + assert(keyboardActions.rootStillExists, "shortcut_failed:mindmap_root_deleted"); + screenshots.push(await screenshot(page, "03b-after-keyboard-actions")); + for (const [panelId, name] of [ ["nodeStyle", "sidebar-node-style"], ["baseStyle", "sidebar-base-style"], @@ -917,9 +1136,10 @@ async function main() { const reloadProjection = await fetchAdapterProjection(page, doc.documentId, mindmapId); assert(reloadProjection?.theme === "classic4", `reload_mismatch:theme actual=${JSON.stringify(reloadProjection?.theme)}`); assert(reloadProjection?.layout === "mindMap", `reload_mismatch:layout actual=${JSON.stringify(reloadProjection?.layout)}`); + const reloadNodeStyleFill = findNodeFillColorByUid(reloadProjection?.root, sidebarActions.nodeStyleTargetNodeId); assert( - reloadProjection?.root?.data?.fillColor === "#dbeafe", - `reload_mismatch:node_style actual=${JSON.stringify(reloadProjection?.root?.data)}`, + reloadNodeStyleFill === "#dbeafe", + `reload_mismatch:node_style active=${JSON.stringify(sidebarActions.nodeStyleTargetNodeId)} actual=${JSON.stringify(reloadProjection?.root?.data)}`, ); assert( reloadProjection?.compatPayload?.style?.map?.lineStyle === "curve", @@ -933,6 +1153,7 @@ async function main() { nodeCount: reloaded.nodeCount, edgeCount: reloaded.edgeCount, toolbarActions, + keyboardActions, sidebarActions, navigatorActions, contextMenuActions, diff --git a/scripts/task167-mindmap-kmind-parity-smoke.js b/scripts/task167-mindmap-kmind-parity-smoke.js new file mode 100644 index 00000000..11117e62 --- /dev/null +++ b/scripts/task167-mindmap-kmind-parity-smoke.js @@ -0,0 +1,1042 @@ +#!/usr/bin/env node +"use strict"; + +const fs = require("node:fs/promises"); +const path = require("node:path"); +const { chromium } = require("playwright"); +const { + BASE_URL, + UI_TIMEOUT_MS, + assert, + cleanupDocuments, + createTempDocument, + ensureAuthenticated, + openDocument, + renameDocument, +} = require("./tree-shell-smoke-helpers"); + +const TASK = "task167-mindmap-kmind-parity-smoke"; +const OUTPUT_DIR = path.join(process.cwd(), "tmp", TASK); +const RESULT_PATH = path.join(OUTPUT_DIR, "result.json"); +const STAGE = process.argv.includes("--stage") ? process.argv[process.argv.indexOf("--stage") + 1] : "all"; + +async function writeResult(payload) { + await fs.mkdir(OUTPUT_DIR, { recursive: true }); + await fs.writeFile(RESULT_PATH, `${JSON.stringify({ ...payload, resultPath: RESULT_PATH }, null, 2)}\n`, "utf8"); +} + +async function screenshot(page, name) { + const file = path.join(OUTPUT_DIR, `${name}.png`); + await page.screenshot({ path: file, fullPage: true }); + return file; +} + +async function insertMindmapThroughSlash(page) { + const editor = page + .locator('[data-testid="mnote-leptos-tiptap-island-editor-root"] .editor-surface .ProseMirror[contenteditable="true"]') + .first(); + await editor.waitFor({ state: "visible", timeout: UI_TIMEOUT_MS }); + await editor.click({ timeout: UI_TIMEOUT_MS }); + await page.keyboard.type("/"); + const item = page.getByTestId("slash-item-mindmap").first(); + await item.waitFor({ state: "visible", timeout: UI_TIMEOUT_MS }); + await item.click({ timeout: UI_TIMEOUT_MS }); +} + +async function assertMindmapReady(page, stage) { + await page.locator('[data-testid="mnote-mindmap-editor-root"]').waitFor({ state: "visible", timeout: UI_TIMEOUT_MS }); + await page.locator('[data-testid="simple-mind-map-runtime"]').waitFor({ state: "visible", timeout: UI_TIMEOUT_MS }); + await page.waitForFunction( + () => { + const root = document.querySelector('[data-testid="mnote-mindmap-editor-root"]'); + const runtime = document.querySelector('[data-testid="simple-mind-map-runtime"]'); + const shell = document.querySelector('[data-testid="mindmap-rust-shell"]'); + const mindmapId = root instanceof HTMLElement ? root.dataset.mnoteMindmapId || null : null; + const registry = window.__MNOTE_LEPTOS_MINDMAP_BRIDGES__ || {}; + const bridge = mindmapId ? registry[mindmapId] : null; + return ( + runtime instanceof HTMLElement && + runtime.dataset.runtimeEngine === "simple-mind-map" && + runtime.dataset.runtimeReady === "true" && + shell instanceof HTMLElement && + shell.dataset.uiShellSource === "leptos-rust-shell" && + Boolean(bridge) + ); + }, + null, + { timeout: UI_TIMEOUT_MS }, + ).catch((error) => { + throw new Error(`mindmap_not_ready:${stage}:${error.message}`); + }); +} + +async function readMindmapIdentity(page) { + return page.evaluate(() => { + const root = document.querySelector('[data-testid="mnote-mindmap-editor-root"]'); + return { + mindmapId: root instanceof HTMLElement ? root.dataset.mnoteMindmapId || null : null, + }; + }); +} + +async function readToolbarMetrics(page) { + return page.evaluate(() => { + const toolbar = document.querySelector('[data-testid="mindmap-schema-toolbar"]'); + const shell = document.querySelector('[data-testid="mindmap-rust-shell"]'); + const mainCluster = document.querySelector('[data-testid="mindmap-schema-toolbar-cluster-main"]'); + const fileCluster = document.querySelector('[data-testid="mindmap-schema-toolbar-cluster-file"]'); + const moreButton = document.querySelector('[data-testid="mindmap-schema-toolbar-action-more"]'); + const moreMenu = document.querySelector('[data-testid="mindmap-schema-toolbar-more-menu"]'); + const buttons = Array.from(document.querySelectorAll('[data-testid^="mindmap-schema-toolbar-action-"]')).filter( + (node) => node instanceof HTMLElement && node.getBoundingClientRect().width > 0, + ); + const rect = toolbar instanceof HTMLElement ? toolbar.getBoundingClientRect() : null; + const topValues = buttons.map((node) => Math.round(node.getBoundingClientRect().top)); + return { + toolbarExists: toolbar instanceof HTMLElement, + shellExists: shell instanceof HTMLElement, + height: rect ? rect.height : 0, + width: rect ? rect.width : 0, + toolbarRows: new Set(topValues).size, + visibleActions: + shell instanceof HTMLElement && shell.dataset.toolbarVisibleActions + ? shell.dataset.toolbarVisibleActions.split(",").filter(Boolean) + : [], + overflowActions: + shell instanceof HTMLElement && shell.dataset.toolbarOverflowActions + ? shell.dataset.toolbarOverflowActions.split(",").filter(Boolean) + : [], + moreOpen: shell instanceof HTMLElement ? shell.dataset.toolbarMoreOpen === "true" : false, + mainCluster: mainCluster instanceof HTMLElement, + fileCluster: fileCluster instanceof HTMLElement, + moreButton: moreButton instanceof HTMLButtonElement, + moreMenu: moreMenu instanceof HTMLElement, + labels: buttons.map((node) => (node.textContent || "").trim()), + iconKeys: buttons.map((node) => (node instanceof HTMLElement ? node.dataset.iconKey || null : null)), + }; + }); +} + +async function verifyToolbarStage(page) { + await page.setViewportSize({ width: 1440, height: 960 }); + const desktopMetrics = await readToolbarMetrics(page); + assert(desktopMetrics.toolbarExists, "toolbar_missing"); + assert(desktopMetrics.shellExists, "rust_shell_missing"); + assert(desktopMetrics.mainCluster, "toolbar_main_cluster_missing"); + assert(desktopMetrics.fileCluster, "toolbar_file_cluster_missing"); + assert(desktopMetrics.height <= 72, `toolbar_height_too_large:${desktopMetrics.height}`); + assert(desktopMetrics.toolbarRows <= 1, `toolbar_not_single_row:${desktopMetrics.toolbarRows}`); + assert( + desktopMetrics.visibleActions.join(",").startsWith("undo,redo,editNode,insertSiblingAfter,deleteNode,insertChild"), + "toolbar_order_unexpected", + ); + assert(desktopMetrics.labels.every((label) => !/(palette|sliders|layout)/i.test(label)), "toolbar_internal_icon_key_visible"); + + await page.setViewportSize({ width: 900, height: 760 }); + await page.waitForTimeout(500); + const narrowMetrics = await readToolbarMetrics(page); + assert(narrowMetrics.height <= 72, `narrow_toolbar_height_too_large:${narrowMetrics.height}`); + assert(narrowMetrics.toolbarRows <= 1, `narrow_toolbar_not_single_row:${narrowMetrics.toolbarRows}`); + assert(narrowMetrics.overflowActions.length > 0, "narrow_toolbar_overflow_missing"); + assert(narrowMetrics.moreButton, "toolbar_more_button_missing"); + await page.getByTestId("mindmap-schema-toolbar-action-more").click({ timeout: UI_TIMEOUT_MS }); + await page.waitForFunction( + () => { + const shell = document.querySelector('[data-testid="mindmap-rust-shell"]'); + const menu = document.querySelector('[data-testid="mindmap-schema-toolbar-more-menu"]'); + return shell instanceof HTMLElement && shell.dataset.toolbarMoreOpen === "true" && menu instanceof HTMLElement; + }, + null, + { timeout: UI_TIMEOUT_MS }, + ); + const menuMetrics = await readToolbarMetrics(page); + assert(menuMetrics.moreOpen, "toolbar_more_not_open"); + assert(menuMetrics.moreMenu, "toolbar_more_menu_missing"); + await page.keyboard.press("Escape"); + await page.waitForFunction( + () => { + const shell = document.querySelector('[data-testid="mindmap-rust-shell"]'); + const menu = document.querySelector('[data-testid="mindmap-schema-toolbar-more-menu"]'); + return shell instanceof HTMLElement && shell.dataset.toolbarMoreOpen === "false" && !(menu instanceof HTMLElement); + }, + null, + { timeout: UI_TIMEOUT_MS }, + ); + const closedMetrics = await readToolbarMetrics(page); + assert(!closedMetrics.moreOpen, "toolbar_more_escape_not_closed"); + return { + desktop: desktopMetrics, + narrow: narrowMetrics, + menu: menuMetrics, + closed: closedMetrics, + }; +} + +async function verifyFullscreenStage(page) { + await page.setViewportSize({ width: 1440, height: 960 }); + await page.waitForTimeout(200); + const before = await readToolbarMetrics(page); + assert(before.toolbarExists, "toolbar_missing_before_fullscreen"); + const root = page.getByTestId("mnote-mindmap-editor-root"); + const rootBox = await root.boundingBox(); + assert(rootBox && rootBox.width > 0 && rootBox.height > 0, "fullscreen_root_box_missing"); + const fullscreenButton = page.getByTestId("mindmap-schema-navigator-action-fullscreenCanvas"); + await fullscreenButton.waitFor({ state: "visible", timeout: UI_TIMEOUT_MS }); + await fullscreenButton.click({ timeout: UI_TIMEOUT_MS }); + await page.waitForFunction( + () => { + const root = document.querySelector('[data-testid="mnote-mindmap-editor-root"]'); + const shell = document.querySelector('[data-testid="mindmap-rust-shell"]'); + const scene = document.querySelector('[data-testid="leptos-mindmap-island"]'); + return ( + root instanceof HTMLElement && + shell instanceof HTMLElement && + scene instanceof HTMLElement && + (document.fullscreenElement === root || root.contains(document.fullscreenElement)) && + shell.dataset.fullscreenActive === "true" && + scene.dataset.fullscreenActive === "true" + ); + }, + null, + { timeout: UI_TIMEOUT_MS }, + ); + await page.waitForFunction( + () => { + const scene = document.querySelector('[data-testid="leptos-mindmap-island"]'); + return scene instanceof HTMLElement && scene.dataset.fullscreenResizeStatus === "success"; + }, + null, + { timeout: UI_TIMEOUT_MS }, + ); + const active = await page.evaluate(() => { + const root = document.querySelector('[data-testid="mnote-mindmap-editor-root"]'); + const shell = document.querySelector('[data-testid="mindmap-rust-shell"]'); + const toolbar = document.querySelector('[data-testid="mindmap-schema-toolbar"]'); + const sidebar = document.querySelector('[data-testid="mindmap-schema-sidebar"]'); + const navigator = document.querySelector('[data-testid="mindmap-schema-navigator"]'); + return { + fullscreenElementIsRoot: root instanceof HTMLElement && document.fullscreenElement === root, + fullscreenElementInsideRoot: + root instanceof HTMLElement && Boolean(document.fullscreenElement) && root.contains(document.fullscreenElement), + shellFullscreenActive: shell instanceof HTMLElement ? shell.dataset.fullscreenActive === "true" : false, + toolbarVisible: toolbar instanceof HTMLElement && toolbar.getBoundingClientRect().height > 0, + sidebarVisible: sidebar instanceof HTMLElement && sidebar.getBoundingClientRect().height > 0, + navigatorVisible: navigator instanceof HTMLElement && navigator.getBoundingClientRect().height > 0, + }; + }); + assert(active.fullscreenElementIsRoot || active.fullscreenElementInsideRoot, "fullscreen_element_unexpected"); + assert(active.shellFullscreenActive, "fullscreen_shell_state_missing"); + assert(active.toolbarVisible && active.sidebarVisible && active.navigatorVisible, "fullscreen_chrome_not_visible"); + await page.keyboard.press("Escape"); + await page.waitForFunction(() => document.fullscreenElement === null, null, { timeout: UI_TIMEOUT_MS }); + await page.waitForFunction( + () => { + const shell = document.querySelector('[data-testid="mindmap-rust-shell"]'); + return shell instanceof HTMLElement && shell.dataset.fullscreenActive === "false"; + }, + null, + { timeout: UI_TIMEOUT_MS }, + ); + const after = await page.evaluate(() => { + const shell = document.querySelector('[data-testid="mindmap-rust-shell"]'); + return { + fullscreenElement: document.fullscreenElement === null, + shellFullscreenActive: shell instanceof HTMLElement ? shell.dataset.fullscreenActive === "true" : null, + chromeVisibility: shell instanceof HTMLElement ? shell.dataset.chromeVisibility || null : null, + }; + }); + assert(after.fullscreenElement, "fullscreen_escape_exit_failed"); + assert(after.shellFullscreenActive === false, "fullscreen_shell_state_not_restored"); + assert(after.chromeVisibility === "visible", `fullscreen_visible_state_not_restored:${after.chromeVisibility}`); + + await page.mouse.move(rootBox.x + rootBox.width / 2, rootBox.y + rootBox.height / 2); + await page.mouse.move(Math.max(4, rootBox.x - 24), Math.max(4, rootBox.y - 24)); + await page.waitForFunction( + () => { + const shell = document.querySelector('[data-testid="mindmap-rust-shell"]'); + return shell instanceof HTMLElement && shell.dataset.chromeVisibility === "hiddenByPointerLeave"; + }, + null, + { timeout: UI_TIMEOUT_MS }, + ); + await page.evaluate(async () => { + const root = document.querySelector('[data-testid="mnote-mindmap-editor-root"]'); + if (root instanceof HTMLElement && typeof root.requestFullscreen === "function") { + await root.requestFullscreen(); + } + }); + await page.waitForFunction( + () => { + const root = document.querySelector('[data-testid="mnote-mindmap-editor-root"]'); + return root instanceof HTMLElement && document.fullscreenElement === root; + }, + null, + { timeout: UI_TIMEOUT_MS }, + ); + await page.evaluate(async () => { + if (document.fullscreenElement) { + await document.exitFullscreen(); + } + }); + await page.waitForFunction(() => document.fullscreenElement === null, null, { timeout: UI_TIMEOUT_MS }); + await page.waitForFunction( + () => { + const shell = document.querySelector('[data-testid="mindmap-rust-shell"]'); + return shell instanceof HTMLElement && shell.dataset.fullscreenActive === "false"; + }, + null, + { timeout: UI_TIMEOUT_MS }, + ); + const hiddenAfterExit = await page.evaluate(() => { + const shell = document.querySelector('[data-testid="mindmap-rust-shell"]'); + return { + chromeVisibility: shell instanceof HTMLElement ? shell.dataset.chromeVisibility || null : null, + shellFullscreenActive: shell instanceof HTMLElement ? shell.dataset.fullscreenActive === "true" : null, + }; + }); + assert(hiddenAfterExit.shellFullscreenActive === false, "fullscreen_hidden_shell_state_not_restored"); + assert( + hiddenAfterExit.chromeVisibility === "hiddenByPointerLeave", + `fullscreen_hidden_state_unexpected:${hiddenAfterExit.chromeVisibility}`, + ); + return { before, active, after, hiddenAfterExit }; +} + +async function readChromeVisibilityMetrics(page) { + return page.evaluate(() => { + const root = document.querySelector('[data-testid="mnote-mindmap-editor-root"]'); + const scene = document.querySelector('[data-testid="leptos-mindmap-island"]'); + const shell = document.querySelector('[data-testid="mindmap-rust-shell"]'); + const toolbar = document.querySelector('[data-testid="mindmap-schema-toolbar"]'); + const sidebar = document.querySelector('[data-testid="mindmap-schema-sidebar"]'); + const navigator = document.querySelector('[data-testid="mindmap-schema-navigator"]'); + const minimap = document.querySelector('[data-testid="mindmap-schema-minimap"]'); + return { + rootBox: root instanceof HTMLElement ? root.getBoundingClientRect().toJSON?.() ?? null : null, + sceneChromeVisibility: scene instanceof HTMLElement ? scene.dataset.chromeVisibility || null : null, + shellChromeVisibility: shell instanceof HTMLElement ? shell.dataset.chromeVisibility || null : null, + toolbarVisible: toolbar instanceof HTMLElement && toolbar.getBoundingClientRect().height > 0, + sidebarVisible: sidebar instanceof HTMLElement && sidebar.getBoundingClientRect().height > 0, + navigatorVisible: navigator instanceof HTMLElement && navigator.getBoundingClientRect().height > 0, + minimapVisible: minimap instanceof HTMLElement && minimap.getBoundingClientRect().height > 0, + }; + }); +} + +async function verifyChromeHideStage(page) { + const root = page.getByTestId("mnote-mindmap-editor-root"); + await root.waitFor({ state: "visible", timeout: UI_TIMEOUT_MS }); + const box = await root.boundingBox(); + assert(box && box.width > 0 && box.height > 0, "mindmap_root_box_missing"); + + await page.mouse.move(box.x + box.width / 2, box.y + box.height / 2); + await page.waitForFunction( + () => { + const shell = document.querySelector('[data-testid="mindmap-rust-shell"]'); + return shell instanceof HTMLElement && shell.dataset.chromeVisibility === "visible"; + }, + null, + { timeout: UI_TIMEOUT_MS }, + ); + const before = await readChromeVisibilityMetrics(page); + assert(before.toolbarVisible && before.sidebarVisible && before.navigatorVisible, "chrome_not_visible_before_leave"); + + await page.mouse.move(Math.max(4, box.x - 24), Math.max(4, box.y - 24)); + await page.waitForFunction( + () => { + const shell = document.querySelector('[data-testid="mindmap-rust-shell"]'); + return shell instanceof HTMLElement && shell.dataset.chromeVisibility === "hiddenByPointerLeave"; + }, + null, + { timeout: UI_TIMEOUT_MS }, + ); + const hidden = await readChromeVisibilityMetrics(page); + assert(!hidden.toolbarVisible && !hidden.sidebarVisible && !hidden.navigatorVisible, "chrome_not_hidden_after_leave"); + + await page.mouse.move(box.x + box.width / 2, box.y + box.height / 2); + await page.waitForTimeout(300); + const afterEnter = await readChromeVisibilityMetrics(page); + assert(afterEnter.shellChromeVisibility === "hiddenByPointerLeave", "chrome_restored_by_pointer_enter"); + + await page.mouse.click(box.x + box.width / 2, box.y + box.height / 2); + await page.waitForFunction( + () => { + const shell = document.querySelector('[data-testid="mindmap-rust-shell"]'); + return shell instanceof HTMLElement && shell.dataset.chromeVisibility === "visible"; + }, + null, + { timeout: UI_TIMEOUT_MS }, + ); + const restored = await readChromeVisibilityMetrics(page); + assert(restored.toolbarVisible && restored.sidebarVisible && restored.navigatorVisible, "chrome_not_restored_after_click"); + return { before, hidden, afterEnter, restored }; +} + +async function readContextMenuMetrics(page) { + return page.evaluate(() => { + const shell = document.querySelector('[data-testid="mindmap-rust-shell"]'); + const scene = document.querySelector('[data-testid="leptos-mindmap-island"]'); + const menu = document.querySelector('[data-testid="mindmap-schema-context-menu"]'); + const buttons = Array.from( + document.querySelectorAll('[data-testid^="mindmap-schema-context-menu-action-"]'), + ).filter((node) => node instanceof HTMLButtonElement); + return { + chromeVisibility: shell instanceof HTMLElement ? shell.dataset.chromeVisibility || null : null, + contextMenuKind: scene instanceof HTMLElement ? scene.dataset.contextMenuKind || null : null, + menuVisible: menu instanceof HTMLElement && menu.getBoundingClientRect().width > 0, + itemIds: buttons.map((button) => button.dataset.mindmapContextActionId || null), + disabledIds: buttons + .filter((button) => button.disabled || button.dataset.disabled === "true") + .map((button) => button.dataset.mindmapContextActionId || null), + }; + }); +} + +async function findCanvasEmptyPoint(page) { + const point = await page.evaluate(() => { + const root = document.querySelector('[data-testid="mnote-mindmap-editor-root"]'); + if (!(root instanceof HTMLElement)) return null; + const rootRect = root.getBoundingClientRect(); + const blockers = Array.from( + document.querySelectorAll( + '.smm-node,[data-testid="mindmap-schema-toolbar"],[data-testid="mindmap-schema-sidebar"],[data-testid="mindmap-schema-navigator"],[data-testid="mindmap-schema-context-menu"]', + ), + ) + .filter((node) => node instanceof HTMLElement) + .map((node) => node.getBoundingClientRect()) + .filter((rect) => rect.width > 0 && rect.height > 0); + const padding = 36; + for (let y = rootRect.top + padding; y < rootRect.bottom - padding; y += 24) { + for (let x = rootRect.left + padding; x < rootRect.right - padding; x += 24) { + const blocked = blockers.some((rect) => x >= rect.left && x <= rect.right && y >= rect.top && y <= rect.bottom); + if (!blocked) return { x, y }; + } + } + return { + x: rootRect.left + rootRect.width * 0.5, + y: rootRect.top + rootRect.height * 0.75, + }; + }); + assert(point && typeof point.x === "number" && typeof point.y === "number", "context_menu_canvas_point_missing"); + return point; +} + +async function verifyContextMenuStage(page) { + const rootNode = page.locator(".smm-node").first(); + await rootNode.waitFor({ state: "visible", timeout: UI_TIMEOUT_MS }); + await rootNode.click({ button: "right", timeout: UI_TIMEOUT_MS }); + await page.waitForFunction( + () => { + const menu = document.querySelector('[data-testid="mindmap-schema-context-menu"]'); + const scene = document.querySelector('[data-testid="leptos-mindmap-island"]'); + return ( + menu instanceof HTMLElement && + scene instanceof HTMLElement && + scene.dataset.contextMenuKind === "node" + ); + }, + null, + { timeout: UI_TIMEOUT_MS }, + ); + const nodeMenu = await readContextMenuMetrics(page); + assert(nodeMenu.menuVisible, "node_context_menu_not_visible"); + assert(nodeMenu.contextMenuKind === "node", `node_context_menu_kind_unexpected:${nodeMenu.contextMenuKind}`); + assert( + nodeMenu.itemIds.join(",") === "insertChild,insertSiblingAfter,deleteNode,summary,associativeLine,expandCollapse,copyNodeText", + `node_context_menu_items_unexpected:${nodeMenu.itemIds.join(",")}`, + ); + assert(nodeMenu.disabledIds.includes("deleteNode"), `root_delete_not_disabled:${nodeMenu.disabledIds.join(",")}`); + + const rootBox = await page.getByTestId("mnote-mindmap-editor-root").boundingBox(); + assert(rootBox && rootBox.width > 0 && rootBox.height > 0, "context_menu_root_box_missing"); + await page.mouse.move(Math.max(4, rootBox.x - 24), Math.max(4, rootBox.y - 24)); + await page.waitForTimeout(250); + const afterLeave = await readContextMenuMetrics(page); + assert(afterLeave.menuVisible, "context_menu_closed_after_pointerleave"); + assert(afterLeave.chromeVisibility === "visible", `chrome_hidden_while_context_menu_open:${afterLeave.chromeVisibility}`); + + await page.keyboard.press("Escape"); + await page.waitForFunction( + () => !(document.querySelector('[data-testid="mindmap-schema-context-menu"]') instanceof HTMLElement), + null, + { timeout: UI_TIMEOUT_MS }, + ); + const afterEscape = await readContextMenuMetrics(page); + assert(!afterEscape.menuVisible, "context_menu_escape_not_closed"); + + const point = await findCanvasEmptyPoint(page); + await page.mouse.click(point.x, point.y, { button: "right" }); + await page.waitForFunction( + () => { + const menu = document.querySelector('[data-testid="mindmap-schema-context-menu"]'); + const scene = document.querySelector('[data-testid="leptos-mindmap-island"]'); + return ( + menu instanceof HTMLElement && + scene instanceof HTMLElement && + scene.dataset.contextMenuKind === "canvas" + ); + }, + null, + { timeout: UI_TIMEOUT_MS }, + ); + const canvasMenu = await readContextMenuMetrics(page); + assert(canvasMenu.contextMenuKind === "canvas", `canvas_context_menu_kind_unexpected:${canvasMenu.contextMenuKind}`); + assert( + canvasMenu.itemIds.join(",") === "centerRoot,fitView,search,readonly,showMenu", + `canvas_context_menu_items_unexpected:${canvasMenu.itemIds.join(",")}`, + ); + assert(!canvasMenu.itemIds.includes("insertChild"), "canvas_context_menu_contains_insert_child"); + assert(!canvasMenu.itemIds.includes("deleteNode"), "canvas_context_menu_contains_delete_node"); + + return { nodeMenu, afterLeave, afterEscape, canvasMenu }; +} + +async function readThemeMetrics(page) { + return page.evaluate(() => { + const root = document.querySelector('[data-testid="mnote-mindmap-editor-root"]'); + const runtime = document.querySelector('[data-testid="simple-mind-map-runtime"]'); + const mindmapId = root instanceof HTMLElement ? root.dataset.mnoteMindmapId || null : null; + const registry = window.__MNOTE_LEPTOS_MINDMAP_BRIDGES__ || {}; + const bridge = mindmapId ? registry[mindmapId] : null; + const instance = bridge?.instance || null; + const themeConfig = typeof instance?.getThemeConfig === "function" ? instance.getThemeConfig() : null; + const nodeRects = Array.from(document.querySelectorAll(".smm-node")) + .filter((node) => node instanceof Element) + .map((node) => node.getBoundingClientRect()) + .filter((rect) => rect.width > 0 && rect.height > 0) + .map((rect) => ({ + left: rect.left, + top: rect.top, + right: rect.right, + bottom: rect.bottom, + width: rect.width, + height: rect.height, + })); + const paths = Array.from(runtime?.querySelectorAll?.("svg path") || []).filter( + (node) => node instanceof SVGPathElement && node.getBoundingClientRect().width + node.getBoundingClientRect().height > 0, + ); + let overlaps = 0; + for (let i = 0; i < nodeRects.length; i += 1) { + for (let j = i + 1; j < nodeRects.length; j += 1) { + const a = nodeRects[i]; + const b = nodeRects[j]; + const width = Math.max(0, Math.min(a.right, b.right) - Math.max(a.left, b.left)); + const height = Math.max(0, Math.min(a.bottom, b.bottom) - Math.max(a.top, b.top)); + if (width * height > 4) overlaps += 1; + } + } + return { + layout: typeof instance?.getLayout === "function" ? instance.getLayout() : null, + theme: typeof instance?.getTheme === "function" ? instance.getTheme() : null, + themeConfig, + nodeCount: nodeRects.length, + pathCount: paths.length, + overlaps, + }; + }); +} + +async function verifyThemeStage(page) { + const initial = await readThemeMetrics(page); + assert(initial.layout === "logicalStructure", `theme_layout_unexpected:${initial.layout}`); + assert(initial.theme === "default", `theme_template_unexpected:${initial.theme}`); + assert(initial.themeConfig?.root?.fillColor === "#e25563", `theme_root_fill_unexpected:${initial.themeConfig?.root?.fillColor}`); + assert(initial.themeConfig?.root?.color === "#ffffff", `theme_root_color_unexpected:${initial.themeConfig?.root?.color}`); + assert(initial.themeConfig?.second?.fillColor === "#4f7df3", `theme_second_fill_unexpected:${initial.themeConfig?.second?.fillColor}`); + assert(initial.themeConfig?.second?.color === "#ffffff", `theme_second_color_unexpected:${initial.themeConfig?.second?.color}`); + assert(initial.themeConfig?.node?.color === "#315aa9", `theme_node_color_unexpected:${initial.themeConfig?.node?.color}`); + assert( + initial.themeConfig?.generalizationLineColor === "#ef6a5b", + `theme_generalization_line_unexpected:${initial.themeConfig?.generalizationLineColor}`, + ); + assert(initial.themeConfig?.lineStyle === "curve", `theme_line_style_unexpected:${initial.themeConfig?.lineStyle}`); + assert(initial.nodeCount >= 2, `theme_node_count_too_small:${initial.nodeCount}`); + assert(initial.pathCount > 0, `theme_path_count_empty:${initial.pathCount}`); + assert(initial.overlaps === 0, `theme_nodes_overlap:${initial.overlaps}`); + + return { initial }; +} + +async function readSidebarMetrics(page) { + return page.evaluate(() => { + const shell = document.querySelector('[data-testid="mindmap-rust-shell"]'); + const rail = document.querySelector('[data-testid="mindmap-schema-sidebar-rail"]'); + const drawer = document.querySelector('[data-testid="mindmap-schema-sidebar-drawer"]'); + const title = document.querySelector('[data-testid="mindmap-schema-sidebar-title"]'); + const closeButton = document.querySelector('[data-testid="mindmap-schema-sidebar-close"]'); + const hideHandle = document.querySelector('[data-testid="mindmap-schema-sidebar-hide-handle"]'); + const restoreHandle = document.querySelector('[data-testid="mindmap-schema-sidebar-restore-handle"]'); + const structureCards = Array.from( + document.querySelectorAll('[data-testid^="mindmap-schema-sidebar-option-layout-"][data-control-type="layoutCard"]'), + ); + return { + triggerVisible: shell instanceof HTMLElement ? shell.dataset.sidebarTriggerVisible === "true" : null, + panelOpen: shell instanceof HTMLElement ? shell.dataset.sidebarPanelOpen === "true" : null, + railVisible: rail instanceof HTMLElement && rail.getBoundingClientRect().height > 0, + drawerVisible: drawer instanceof HTMLElement && drawer.getBoundingClientRect().width > 0, + drawerWidth: drawer instanceof HTMLElement ? Math.round(drawer.getBoundingClientRect().width) : 0, + title: title instanceof HTMLElement ? (title.textContent || "").trim() : "", + closeButton: closeButton instanceof HTMLButtonElement, + hideHandle: hideHandle instanceof HTMLButtonElement, + restoreHandle: restoreHandle instanceof HTMLButtonElement, + structureCardCount: structureCards.length, + }; + }); +} + +async function verifySidebarStage(page) { + const structureTab = page.getByTestId("mindmap-schema-sidebar-tab-structure"); + await structureTab.waitFor({ state: "visible", timeout: UI_TIMEOUT_MS }); + await structureTab.click({ timeout: UI_TIMEOUT_MS }); + await page.waitForFunction( + () => { + const shell = document.querySelector('[data-testid="mindmap-rust-shell"]'); + const title = document.querySelector('[data-testid="mindmap-schema-sidebar-title"]'); + return ( + shell instanceof HTMLElement && + shell.dataset.sidebarPanelOpen === "true" && + shell.dataset.sidebarActivePanel === "structure" && + title instanceof HTMLElement && + (title.textContent || "").trim() === "结构" + ); + }, + null, + { timeout: UI_TIMEOUT_MS }, + ); + const opened = await readSidebarMetrics(page); + assert(opened.railVisible, "sidebar_rail_missing"); + assert(opened.drawerVisible, "sidebar_drawer_not_visible"); + assert(opened.drawerWidth >= 280, `sidebar_drawer_width_too_small:${opened.drawerWidth}`); + assert(opened.title === "结构", `sidebar_title_unexpected:${opened.title}`); + assert(opened.structureCardCount >= 6, `sidebar_structure_cards_missing:${opened.structureCardCount}`); + assert(opened.closeButton, "sidebar_close_button_missing"); + assert(opened.hideHandle, "sidebar_hide_handle_missing"); + + await page.getByTestId("mindmap-schema-sidebar-close").click({ timeout: UI_TIMEOUT_MS }); + await page.waitForFunction( + () => { + const shell = document.querySelector('[data-testid="mindmap-rust-shell"]'); + const drawer = document.querySelector('[data-testid="mindmap-schema-sidebar-drawer"]'); + return shell instanceof HTMLElement && shell.dataset.sidebarPanelOpen === "false" && !(drawer instanceof HTMLElement); + }, + null, + { timeout: UI_TIMEOUT_MS }, + ); + const closed = await readSidebarMetrics(page); + assert(closed.panelOpen === false, "sidebar_close_not_applied"); + + await structureTab.click({ timeout: UI_TIMEOUT_MS }); + await page.waitForFunction( + () => { + const shell = document.querySelector('[data-testid="mindmap-rust-shell"]'); + return shell instanceof HTMLElement && shell.dataset.sidebarPanelOpen === "true"; + }, + null, + { timeout: UI_TIMEOUT_MS }, + ); + await page.getByTestId("mindmap-schema-sidebar-hide-handle").click({ timeout: UI_TIMEOUT_MS }); + await page.waitForFunction( + () => { + const shell = document.querySelector('[data-testid="mindmap-rust-shell"]'); + const restoreHandle = document.querySelector('[data-testid="mindmap-schema-sidebar-restore-handle"]'); + return ( + shell instanceof HTMLElement && + shell.dataset.sidebarTriggerVisible === "false" && + shell.dataset.sidebarPanelOpen === "false" && + restoreHandle instanceof HTMLButtonElement + ); + }, + null, + { timeout: UI_TIMEOUT_MS }, + ); + const hidden = await readSidebarMetrics(page); + assert(hidden.restoreHandle, "sidebar_restore_handle_missing"); + assert(hidden.triggerVisible === false, "sidebar_trigger_not_hidden"); + + await page.getByTestId("mindmap-schema-sidebar-restore-handle").click({ timeout: UI_TIMEOUT_MS }); + await page.waitForFunction( + () => { + const shell = document.querySelector('[data-testid="mindmap-rust-shell"]'); + const title = document.querySelector('[data-testid="mindmap-schema-sidebar-title"]'); + return ( + shell instanceof HTMLElement && + shell.dataset.sidebarTriggerVisible === "true" && + shell.dataset.sidebarPanelOpen === "true" && + title instanceof HTMLElement && + (title.textContent || "").trim() === "结构" + ); + }, + null, + { timeout: UI_TIMEOUT_MS }, + ); + const restored = await readSidebarMetrics(page); + assert(restored.drawerVisible, "sidebar_drawer_not_restored"); + return { opened, closed, hidden, restored }; +} + +async function readRuntimeMindmapState(page) { + return page.evaluate(() => { + const root = document.querySelector('[data-testid="mnote-mindmap-editor-root"]'); + const mindmapId = root instanceof HTMLElement ? root.dataset.mnoteMindmapId || null : null; + const registry = window.__MNOTE_LEPTOS_MINDMAP_BRIDGES__ || {}; + const bridge = mindmapId ? registry[mindmapId] : null; + const instance = bridge?.instance || null; + const snapshot = bridge?.getSnapshot?.() || null; + const data = snapshot && typeof snapshot === "object" && !Array.isArray(snapshot) ? snapshot.data || null : null; + return { + mindmapId, + layout: typeof instance?.getLayout === "function" ? instance.getLayout() : null, + theme: typeof instance?.getTheme === "function" ? instance.getTheme() : null, + rootFillColor: data && typeof data === "object" ? data.fillColor || null : null, + commandStatus: + document.querySelector('[data-testid="leptos-mindmap-island"]') instanceof HTMLElement + ? document.querySelector('[data-testid="leptos-mindmap-island"]').dataset.commandStatus || null + : null, + }; + }); +} + +async function readPersistedMindmapState(page) { + return page.evaluate(async () => { + const root = document.querySelector('[data-testid="mnote-mindmap-editor-root"]'); + const mindmapId = root instanceof HTMLElement ? root.dataset.mnoteMindmapId || null : null; + const match = window.location.pathname.match(/\/documents\/([^/?#]+)/); + const documentId = match?.[1] ? decodeURIComponent(match[1]) : null; + if (!documentId || !mindmapId) { + return { + documentId, + mindmapId, + status: null, + layout: null, + theme: null, + rootFillColor: null, + }; + } + const response = await fetch( + `/api/mindmap/${encodeURIComponent(documentId)}/${encodeURIComponent(mindmapId)}?view=simple_mind_map_scene&queryName=mindmap.simple_mind_map_scene.get`, + { headers: { Accept: "application/json" } }, + ); + const payload = await response.json().catch(() => null); + const rootData = + payload && typeof payload === "object" && payload.root && typeof payload.root === "object" && !Array.isArray(payload.root) + ? payload.root.data || null + : null; + return { + documentId, + mindmapId, + status: response.status, + layout: payload && typeof payload === "object" ? payload.layout || null : null, + theme: payload && typeof payload === "object" ? payload.theme || null : null, + rootFillColor: rootData && typeof rootData === "object" ? rootData.fillColor || null : null, + }; + }); +} + +async function waitForMindmapCommandSuccess(page, actionId, predicate) { + try { + await page.waitForFunction( + ({ actionId }) => { + const scene = document.querySelector('[data-testid="leptos-mindmap-island"]'); + return ( + scene instanceof HTMLElement && + scene.dataset.lastSchemaAction === actionId && + scene.dataset.commandStatus === "success" + ); + }, + { actionId }, + { timeout: UI_TIMEOUT_MS }, + ); + } catch (error) { + const debug = await page.evaluate(() => { + const scene = document.querySelector('[data-testid="leptos-mindmap-island"]'); + const errorNode = document.querySelector('[data-testid="leptos-mindmap-error"]'); + return { + commandStatus: scene instanceof HTMLElement ? scene.dataset.commandStatus || null : null, + lastSchemaAction: scene instanceof HTMLElement ? scene.dataset.lastSchemaAction || null : null, + commandFailedAction: scene instanceof HTMLElement ? scene.dataset.commandFailedAction || null : null, + commandFailedMessage: scene instanceof HTMLElement ? scene.dataset.commandFailedMessage || null : null, + errorText: errorNode instanceof HTMLElement ? (errorNode.textContent || "").trim() : null, + }; + }); + throw new Error( + `mindmap_command_not_success:${actionId}:${JSON.stringify(debug)}:${error instanceof Error ? error.message : String(error)}`, + ); + } + if (predicate) { + await page.waitForFunction(predicate, null, { timeout: UI_TIMEOUT_MS }); + } +} + +async function verifySidebarActionsStage(page) { + await page.getByTestId("mindmap-schema-sidebar-tab-structure").click({ timeout: UI_TIMEOUT_MS }); + await page.getByTestId("mindmap-schema-sidebar-option-layout-mind-map").click({ timeout: UI_TIMEOUT_MS }); + await waitForMindmapCommandSuccess( + page, + "setLayout", + () => { + const root = document.querySelector('[data-testid="mnote-mindmap-editor-root"]'); + const mindmapId = root instanceof HTMLElement ? root.dataset.mnoteMindmapId || null : null; + const registry = window.__MNOTE_LEPTOS_MINDMAP_BRIDGES__ || {}; + const bridge = mindmapId ? registry[mindmapId] : null; + return bridge?.instance?.getLayout?.() === "mindMap"; + }, + ); + + await page.getByTestId("mindmap-schema-sidebar-tab-theme").click({ timeout: UI_TIMEOUT_MS }); + await page.getByTestId("mindmap-schema-sidebar-option-theme-dark").click({ timeout: UI_TIMEOUT_MS }); + await waitForMindmapCommandSuccess(page, "setTheme"); + + await page.getByTestId("mindmap-schema-sidebar-tab-nodeStyle").click({ timeout: UI_TIMEOUT_MS }); + await page.getByTestId("mindmap-schema-sidebar-option-node-fill-blue").click({ timeout: UI_TIMEOUT_MS }); + await waitForMindmapCommandSuccess(page, "painter"); + + const beforeReload = await readPersistedMindmapState(page); + assert(beforeReload.layout === "mindMap", `sidebar_actions_layout_before_reload:${beforeReload.layout}`); + assert(beforeReload.theme === "dark", `sidebar_actions_theme_before_reload:${beforeReload.theme}`); + assert(beforeReload.rootFillColor === "#dbeafe", `sidebar_actions_fill_before_reload:${beforeReload.rootFillColor}`); + + await page.reload({ waitUntil: "domcontentloaded" }); + await assertMindmapReady(page, "sidebar-actions-reload"); + const afterReload = await readPersistedMindmapState(page); + assert(afterReload.layout === "mindMap", `sidebar_actions_layout_after_reload:${afterReload.layout}`); + assert(afterReload.theme === "dark", `sidebar_actions_theme_after_reload:${afterReload.theme}`); + assert(afterReload.rootFillColor === "#dbeafe", `sidebar_actions_fill_after_reload:${afterReload.rootFillColor}`); + + return { beforeReload, afterReload }; +} + +async function readNavigatorMetrics(page) { + return page.evaluate(() => { + const shell = document.querySelector('[data-testid="mindmap-rust-shell"]'); + const navigator = document.querySelector('[data-testid="mindmap-schema-navigator"]'); + const searchInput = document.querySelector('[data-testid="mindmap-schema-navigator-search"]'); + const minimap = document.querySelector('[data-testid="mindmap-schema-minimap"]'); + const readonlyButton = document.querySelector('[data-testid="mindmap-schema-navigator-action-readonly"]'); + const zoomInput = document.querySelector('[data-testid="mindmap-schema-navigator-zoom-input"]'); + return { + navigatorVisible: navigator instanceof HTMLElement && navigator.getBoundingClientRect().height > 0, + searchOpen: shell instanceof HTMLElement ? shell.dataset.navigatorSearchOpen === "true" : false, + minimapOpen: shell instanceof HTMLElement ? shell.dataset.navigatorMinimapOpen === "true" : false, + readonly: shell instanceof HTMLElement ? shell.dataset.navigatorReadonly === "true" : false, + searchInputVisible: searchInput instanceof HTMLInputElement && searchInput.getBoundingClientRect().width > 0, + minimapVisible: minimap instanceof HTMLElement && minimap.getBoundingClientRect().height > 0, + readonlyActive: readonlyButton instanceof HTMLButtonElement ? readonlyButton.dataset.active === "true" : false, + zoomValue: zoomInput instanceof HTMLInputElement ? zoomInput.value : null, + }; + }); +} + +async function verifyNavigatorStage(page, screenshots) { + const initial = await readNavigatorMetrics(page); + assert(initial.navigatorVisible, "navigator_missing"); + assert(!initial.searchInputVisible, "navigator_search_should_be_collapsed"); + screenshots.push(await screenshot(page, "07-navigator-icons")); + + await page.getByTestId("mindmap-schema-navigator-action-search").click({ timeout: UI_TIMEOUT_MS }); + await page.waitForFunction( + () => { + const shell = document.querySelector('[data-testid="mindmap-rust-shell"]'); + const input = document.querySelector('[data-testid="mindmap-schema-navigator-search"]'); + return shell instanceof HTMLElement && shell.dataset.navigatorSearchOpen === "true" && input instanceof HTMLInputElement; + }, + null, + { timeout: UI_TIMEOUT_MS }, + ); + const searchInput = page.getByTestId("mindmap-schema-navigator-search"); + await searchInput.fill("主题", { timeout: UI_TIMEOUT_MS }); + screenshots.push(await screenshot(page, "08-search-expanded")); + await searchInput.press("Escape"); + await page.waitForFunction( + () => { + const shell = document.querySelector('[data-testid="mindmap-rust-shell"]'); + const input = document.querySelector('[data-testid="mindmap-schema-navigator-search"]'); + return shell instanceof HTMLElement && shell.dataset.navigatorSearchOpen === "false" && !(input instanceof HTMLInputElement); + }, + null, + { timeout: UI_TIMEOUT_MS }, + ); + + await page.getByTestId("mindmap-schema-navigator-action-minimap").click({ timeout: UI_TIMEOUT_MS }); + await page.waitForFunction( + () => { + const shell = document.querySelector('[data-testid="mindmap-rust-shell"]'); + const minimap = document.querySelector('[data-testid="mindmap-schema-minimap"]'); + return shell instanceof HTMLElement && shell.dataset.navigatorMinimapOpen === "true" && minimap instanceof HTMLElement; + }, + null, + { timeout: UI_TIMEOUT_MS }, + ); + + await page.getByTestId("mindmap-schema-navigator-action-readonly").click({ timeout: UI_TIMEOUT_MS }); + await page.waitForFunction( + () => { + const shell = document.querySelector('[data-testid="mindmap-rust-shell"]'); + return shell instanceof HTMLElement && shell.dataset.navigatorReadonly === "true"; + }, + null, + { timeout: UI_TIMEOUT_MS }, + ); + + const zoomInputField = page.getByTestId("mindmap-schema-navigator-zoom-input"); + const previousZoom = await zoomInputField.inputValue(); + await zoomInputField.fill("abc", { timeout: UI_TIMEOUT_MS }); + await zoomInputField.press("Enter"); + await page.waitForTimeout(200); + const afterInvalidZoom = await zoomInputField.inputValue(); + assert(afterInvalidZoom === previousZoom, `navigator_zoom_invalid_not_restored:${afterInvalidZoom}`); + + const final = await readNavigatorMetrics(page); + assert(final.minimapVisible, "navigator_minimap_not_visible"); + assert(final.readonlyActive, "navigator_readonly_not_active"); + return { initial, final }; +} + +async function restoreNavigatorDefaultState(page) { + const current = await readNavigatorMetrics(page); + if (current.minimapOpen) { + await page.getByTestId("mindmap-schema-navigator-action-minimap").click({ timeout: UI_TIMEOUT_MS }); + await page.waitForFunction( + () => { + const shell = document.querySelector('[data-testid="mindmap-rust-shell"]'); + return shell instanceof HTMLElement && shell.dataset.navigatorMinimapOpen === "false"; + }, + null, + { timeout: UI_TIMEOUT_MS }, + ); + } + if (current.readonly) { + await page.getByTestId("mindmap-schema-navigator-action-readonly").click({ timeout: UI_TIMEOUT_MS }); + await page.waitForFunction( + () => { + const shell = document.querySelector('[data-testid="mindmap-rust-shell"]'); + return shell instanceof HTMLElement && shell.dataset.navigatorReadonly === "false"; + }, + null, + { timeout: UI_TIMEOUT_MS }, + ); + } +} + +async function restoreCanvasIdleState(page) { + await page.keyboard.press("Escape").catch(() => undefined); + const root = page.getByTestId("mnote-mindmap-editor-root"); + const box = await root.boundingBox(); + if (box && box.width > 0 && box.height > 0) { + await page.mouse.click(box.x + box.width / 2, box.y + box.height / 2); + } + await page.waitForTimeout(200); +} + +async function main() { + if (!["all", "toolbar", "fullscreen", "chrome-hide", "sidebar", "sidebar-actions", "navigator", "context-menu", "theme"].includes(STAGE)) { + throw new Error(`当前 smoke 只实现 --stage all/toolbar/fullscreen/chrome-hide/sidebar/sidebar-actions/navigator/context-menu/theme,收到:${STAGE}`); + } + await fs.mkdir(OUTPUT_DIR, { recursive: true }); + + const browser = await chromium.launch({ headless: true }); + const context = await browser.newContext({ viewport: { width: 1440, height: 960 }, locale: "zh-CN" }); + const page = await context.newPage(); + const screenshots = []; + const createdIds = []; + const result = { + ok: false, + task: TASK, + stage: STAGE, + baseUrl: BASE_URL, + documentId: null, + mindmapId: null, + toolbar: null, + screenshots, + }; + + try { + await ensureAuthenticated(page, context.request); + const doc = await createTempDocument(context.request, null); + createdIds.push(doc.documentId); + const title = `task167-mindmap-${Date.now().toString().slice(-6)}`; + await renameDocument(context.request, doc.workspaceId, doc.documentId, title); + result.documentId = doc.documentId; + + await openDocument(page, doc.workspaceId, doc.documentId); + await insertMindmapThroughSlash(page); + await assertMindmapReady(page, STAGE); + result.mindmapId = (await readMindmapIdentity(page)).mindmapId; + if (STAGE === "all") { + result.toolbar = await verifyToolbarStage(page); + screenshots.push(await screenshot(page, "01-toolbar-single-row")); + result.fullscreen = await verifyFullscreenStage(page); + screenshots.push(await screenshot(page, "02-fullscreen-canvas")); + await restoreCanvasIdleState(page); + result.chromeHide = await verifyChromeHideStage(page); + screenshots.push(await screenshot(page, "03-chrome-hidden-after-leave")); + screenshots.push(await screenshot(page, "04-chrome-restored-after-click")); + result.sidebar = await verifySidebarStage(page); + screenshots.push(await screenshot(page, "05-sidebar-structure-drawer")); + await page.getByTestId("mindmap-schema-sidebar-hide-handle").click({ timeout: UI_TIMEOUT_MS }).catch(() => undefined); + await page.waitForTimeout(200); + screenshots.push(await screenshot(page, "06-sidebar-hidden-handle")); + await page.getByTestId("mindmap-schema-sidebar-restore-handle").click({ timeout: UI_TIMEOUT_MS }).catch(() => undefined); + await page.waitForTimeout(200); + await page.getByTestId("mindmap-schema-sidebar-close").click({ timeout: UI_TIMEOUT_MS }).catch(() => undefined); + await page.waitForTimeout(200); + result.navigator = await verifyNavigatorStage(page, screenshots); + await restoreNavigatorDefaultState(page); + result.contextMenu = await verifyContextMenuStage(page); + screenshots.push(await screenshot(page, "09-node-context-menu")); + await restoreCanvasIdleState(page); + result.theme = await verifyThemeStage(page); + screenshots.push(await screenshot(page, "10-kmind-theme-baseline")); + result.sidebarActions = await verifySidebarActionsStage(page); + result.toolbarRows = result.toolbar?.desktop?.toolbarRows ?? null; + result.fullscreenOk = Boolean(result.fullscreen); + result.chromeHideOk = Boolean(result.chromeHide); + result.sidebarDrawerOk = Boolean(result.sidebar); + result.navigatorOk = Boolean(result.navigator); + result.contextMenuOk = Boolean(result.contextMenu); + result.themeOk = Boolean(result.theme); + result.reloadOk = Boolean(result.sidebarActions); + } else if (STAGE === "toolbar") { + result.toolbar = await verifyToolbarStage(page); + screenshots.push(await screenshot(page, "01-toolbar-single-row")); + } else if (STAGE === "fullscreen") { + result.fullscreen = await verifyFullscreenStage(page); + screenshots.push(await screenshot(page, "02-fullscreen-canvas")); + } else if (STAGE === "chrome-hide") { + result.chromeHide = await verifyChromeHideStage(page); + screenshots.push(await screenshot(page, "03-chrome-hidden-after-leave")); + screenshots.push(await screenshot(page, "04-chrome-restored-after-click")); + } else if (STAGE === "sidebar") { + result.sidebar = await verifySidebarStage(page); + screenshots.push(await screenshot(page, "05-sidebar-structure-drawer")); + await page.getByTestId("mindmap-schema-sidebar-hide-handle").click({ timeout: UI_TIMEOUT_MS }).catch(() => undefined); + await page.waitForTimeout(200); + screenshots.push(await screenshot(page, "06-sidebar-hidden-handle")); + } else if (STAGE === "sidebar-actions") { + result.sidebarActions = await verifySidebarActionsStage(page); + } else if (STAGE === "navigator") { + result.navigator = await verifyNavigatorStage(page, screenshots); + } else if (STAGE === "context-menu") { + result.contextMenu = await verifyContextMenuStage(page); + screenshots.push(await screenshot(page, "09-node-context-menu")); + } else if (STAGE === "theme") { + result.theme = await verifyThemeStage(page); + screenshots.push(await screenshot(page, "10-kmind-theme-baseline")); + } + + result.ok = true; + await writeResult(result); + } catch (error) { + result.error = error instanceof Error ? error.stack || error.message : String(error); + screenshots.push(await screenshot(page, "99-failure").catch(() => null)); + await writeResult(result); + throw error; + } finally { + await cleanupDocuments(context.request, createdIds).catch(() => undefined); + await browser.close(); + } +} + +main().catch((error) => { + console.error(error); + process.exitCode = 1; +}); diff --git a/scripts/task168-mindmap-put-validator-smoke.js b/scripts/task168-mindmap-put-validator-smoke.js new file mode 100644 index 00000000..10d743bf --- /dev/null +++ b/scripts/task168-mindmap-put-validator-smoke.js @@ -0,0 +1,414 @@ +#!/usr/bin/env node +"use strict"; + +const fs = require("node:fs/promises"); +const path = require("node:path"); +const { chromium } = require("playwright"); +const { + BASE_URL, + UI_TIMEOUT_MS, + assert, + cleanupDocuments, + createTempDocument, + ensureAuthenticated, + openDocument, + renameDocument, +} = require("./tree-shell-smoke-helpers"); + +const TASK = "task168-mindmap-put-validator-smoke"; +const OUTPUT_DIR = path.join(process.cwd(), "tmp", TASK); +const RESULT_PATH = path.join(OUTPUT_DIR, "result.json"); +const BAD_TEXT_PATTERN = /ArgumentValidationError|domainEventHint|domainEventPlan|streamDeltaHint|command_failed|502 Bad Gateway/i; + +async function writeResult(payload) { + await fs.mkdir(OUTPUT_DIR, { recursive: true }); + await fs.writeFile(RESULT_PATH, `${JSON.stringify({ ...payload, resultPath: RESULT_PATH }, null, 2)}\n`, "utf8"); +} + +async function screenshot(page, name) { + const file = path.join(OUTPUT_DIR, `${name}.png`); + await page.screenshot({ path: file, fullPage: true }); + return file; +} + +function attachMindmapNetworkCapture(page, label, records) { + page.on("response", async (response) => { + const url = response.url(); + if (!url.includes("/api/mindmap/") && !url.includes("/mindmap/") && !url.includes("/api/documents/save")) { + return; + } + const request = response.request(); + const method = request.method(); + const status = response.status(); + let responseText = null; + if (method !== "GET" || status >= 400) { + responseText = await response.text().catch((error) => `<>`); + } + records.push({ + type: "response", + label, + method, + url, + status, + statusText: response.statusText(), + requestBody: request.postData() || null, + responseText: responseText ? responseText.slice(0, 3000) : null, + }); + }); + page.on("requestfailed", (request) => { + const url = request.url(); + if (url.includes("/api/mindmap/") || url.includes("/mindmap/") || url.includes("/api/documents/save")) { + records.push({ + type: "requestfailed", + label, + method: request.method(), + url, + failure: request.failure()?.errorText || null, + requestBody: request.postData() || null, + }); + } + }); + page.on("console", (message) => { + if (message.type() === "error") { + const text = message.text(); + if (/mindmap|ArgumentValidationError|domainEvent|502|command_failed/i.test(text)) { + records.push({ + type: "console", + label, + level: message.type(), + text: text.slice(0, 2000), + }); + } + } + }); +} + +async function insertMindmapThroughSlash(page) { + const editor = page + .locator('[data-testid="mnote-leptos-tiptap-island-editor-root"] .editor-surface .ProseMirror[contenteditable="true"]') + .first(); + await editor.waitFor({ state: "visible", timeout: UI_TIMEOUT_MS }); + await editor.click({ timeout: UI_TIMEOUT_MS }); + await page.keyboard.type("/"); + const item = page.getByTestId("slash-item-mindmap").first(); + await item.waitFor({ state: "visible", timeout: UI_TIMEOUT_MS }); + await item.click({ timeout: UI_TIMEOUT_MS }); +} + +async function readMindmapState(page) { + return page.evaluate(() => { + const root = document.querySelector('[data-testid="mnote-mindmap-editor-root"]'); + const scene = document.querySelector('[data-testid="leptos-mindmap-island"]'); + const runtime = document.querySelector('[data-testid="simple-mind-map-runtime"]'); + const error = document.querySelector('[data-testid="leptos-mindmap-error"]'); + return { + mindmapId: root instanceof HTMLElement ? root.dataset.mnoteMindmapId || null : null, + runtimeReady: runtime instanceof HTMLElement ? runtime.dataset.runtimeReady === "true" : false, + commandStatus: scene instanceof HTMLElement ? scene.dataset.commandStatus || null : null, + lastSchemaAction: scene instanceof HTMLElement ? scene.dataset.lastSchemaAction || null : null, + commandRuntimeError: scene instanceof HTMLElement ? scene.dataset.commandRuntimeError || null : null, + commandRuntimeMessage: scene instanceof HTMLElement ? scene.dataset.commandRuntimeMessage || null : null, + errorStage: error instanceof HTMLElement ? error.dataset.stage || null : null, + errorText: error instanceof HTMLElement ? (error.textContent || "").slice(0, 3000) : null, + bodyText: (document.body?.innerText || "").slice(0, 5000), + }; + }); +} + +async function assertNoValidatorLeak(page, records, stage) { + await page.waitForTimeout(500); + const state = await readMindmapState(page); + const badRecord = records.find((record) => { + if (record.type === "response" && record.status >= 500) return true; + return BAD_TEXT_PATTERN.test(`${record.responseText || ""}\n${record.text || ""}\n${record.failure || ""}`); + }); + if (badRecord || BAD_TEXT_PATTERN.test(`${state.errorText || ""}\n${state.bodyText || ""}`)) { + throw new Error( + `${stage}:mindmap_validator_or_502_leak:${JSON.stringify( + { + state, + badRecord, + recentMindmapNetwork: records.slice(-12), + }, + null, + 2, + )}`, + ); + } + return state; +} + +async function waitForMindmapReady(page, stage) { + await page + .waitForFunction( + () => { + const root = document.querySelector('[data-testid="mnote-mindmap-editor-root"]'); + const runtime = document.querySelector('[data-testid="simple-mind-map-runtime"]'); + const mindmapId = root instanceof HTMLElement ? root.dataset.mnoteMindmapId || null : null; + const registry = window.__MNOTE_LEPTOS_MINDMAP_BRIDGES__ || {}; + return ( + root instanceof HTMLElement && + runtime instanceof HTMLElement && + runtime.dataset.runtimeReady === "true" && + Boolean(mindmapId) && + Boolean(registry[mindmapId]) + ); + }, + null, + { timeout: UI_TIMEOUT_MS }, + ) + .catch((error) => { + throw new Error(`${stage}:mindmap_not_ready:${error.message}`); + }); +} + +async function waitForDocumentContentToIncludeMindmap(requestContext, documentId, workspaceId, mindmapId) { + let lastText = ""; + for (let index = 0; index < 45; index += 1) { + const response = await requestContext.fetch( + `${BASE_URL}/api/documents/content?documentId=${encodeURIComponent(documentId)}&workspaceId=${encodeURIComponent(workspaceId)}`, + { method: "GET", timeout: 10_000 }, + ); + lastText = await response.text(); + if (response.ok() && lastText.includes(mindmapId)) { + try { + return JSON.parse(lastText); + } catch { + return { raw: lastText.slice(0, 3000) }; + } + } + await new Promise((resolve) => setTimeout(resolve, 500)); + } + throw new Error( + `document_content_missing_mindmap:${JSON.stringify({ + documentId, + workspaceId, + mindmapId, + lastText: lastText.slice(0, 5000), + })}`, + ); +} + +async function fetchMindmapProjection(requestContext, documentId, mindmapId) { + const response = await requestContext.fetch( + `${BASE_URL}/api/mindmap/${encodeURIComponent(documentId)}/${encodeURIComponent(mindmapId)}?view=simple_mind_map_scene&queryName=mindmap.simple_mind_map_scene.get`, + { method: "GET", timeout: 10_000 }, + ); + const text = await response.text(); + assert(response.ok(), `mindmap_projection_fetch_failed:${response.status()}:${text.slice(0, 2000)}`); + const payload = JSON.parse(text); + return payload.result ?? payload; +} + +function collectMindmapTexts(root) { + const texts = []; + const visit = (node) => { + if (!node || typeof node !== "object") return; + const data = node.data && typeof node.data === "object" ? node.data : {}; + if (typeof data.text === "string") texts.push(data.text); + if (Array.isArray(node.children)) node.children.forEach(visit); + }; + visit(root); + return texts; +} + +async function waitForProjectionText(requestContext, documentId, mindmapId, expectedText) { + let lastProjection = null; + for (let index = 0; index < 45; index += 1) { + lastProjection = await fetchMindmapProjection(requestContext, documentId, mindmapId); + const texts = collectMindmapTexts(lastProjection.root); + if (texts.includes(expectedText)) { + return { projection: lastProjection, texts }; + } + await new Promise((resolve) => setTimeout(resolve, 500)); + } + throw new Error( + `mindmap_projection_missing_edited_text:${JSON.stringify({ + expectedText, + texts: collectMindmapTexts(lastProjection?.root), + projection: lastProjection, + }).slice(0, 5000)}`, + ); +} + +async function editTopicTextThroughRuntime(page, mindmapId, text) { + const result = await page.evaluate( + ({ mindmapId, text }) => { + const scene = document.querySelector('[data-testid="leptos-mindmap-island"]'); + if (scene instanceof HTMLElement) { + scene.dataset.lastDataChangeRefreshTriggered = ""; + scene.dataset.lastDataChangeDiffCommandCount = ""; + scene.dataset.commandStatus = "smoke-waiting-topic-edit"; + } + const registry = window.__MNOTE_LEPTOS_MINDMAP_BRIDGES__ || {}; + const bridge = registry[mindmapId]; + const instance = bridge?.instance; + const topicNode = instance?.renderer?.findNodeByUid?.("topic") || null; + if (!topicNode || typeof topicNode !== "object") { + return { ok: false, reason: "topic_node_missing" }; + } + if (typeof topicNode.setData === "function") { + topicNode.setData({ text }); + } else if (topicNode.data && typeof topicNode.data === "object") { + topicNode.data.text = text; + } else { + return { ok: false, reason: "topic_node_not_mutable" }; + } + const snapshot = typeof bridge.getSnapshot === "function" ? bridge.getSnapshot() : instance?.getData?.(true); + return { + ok: true, + snapshotText: snapshot?.children?.[0]?.data?.text ?? null, + commandStatus: scene instanceof HTMLElement ? scene.dataset.commandStatus || null : null, + diffCommandCount: scene instanceof HTMLElement ? scene.dataset.lastDataChangeDiffCommandCount || null : null, + }; + }, + { mindmapId, text }, + ); + assert(result.ok, `topic_runtime_edit_failed:${JSON.stringify(result)}`); + await page.waitForFunction( + ({ text }) => { + const bodyText = document.body?.innerText || ""; + const scene = document.querySelector('[data-testid="leptos-mindmap-island"]'); + return ( + bodyText.includes(text) || + (scene instanceof HTMLElement && scene.dataset.commandStatus !== "smoke-waiting-topic-edit") + ); + }, + { text }, + { timeout: UI_TIMEOUT_MS }, + ); + return result; +} + +async function clickInsertChild(page) { + const button = page.getByTestId("mindmap-schema-toolbar-action-insertChild"); + await button.waitFor({ state: "visible", timeout: UI_TIMEOUT_MS }); + const disabled = await button.evaluate((node) => node instanceof HTMLButtonElement && node.disabled); + if (disabled) { + await page.locator('[data-testid="simple-mind-map-runtime"] .smm-node').first().click({ timeout: UI_TIMEOUT_MS }); + await page.waitForFunction(() => { + const button = document.querySelector('[data-testid="mindmap-schema-toolbar-action-insertChild"]'); + return button instanceof HTMLButtonElement && !button.disabled; + }, null, { timeout: UI_TIMEOUT_MS }); + } + await page.evaluate(() => { + const scene = document.querySelector('[data-testid="leptos-mindmap-island"]'); + if (scene instanceof HTMLElement) { + scene.dataset.commandStatus = "smoke-waiting"; + delete scene.dataset.lastSchemaAction; + } + }); + await button.click({ timeout: UI_TIMEOUT_MS }); + await page.waitForFunction(() => { + const scene = document.querySelector('[data-testid="leptos-mindmap-island"]'); + return scene instanceof HTMLElement && scene.dataset.lastSchemaAction === "insertChild" && scene.dataset.commandStatus === "success"; + }, null, { timeout: UI_TIMEOUT_MS }); +} + +async function main() { + await fs.mkdir(OUTPUT_DIR, { recursive: true }); + + const browser = await chromium.launch({ headless: true }); + const contextA = await browser.newContext({ viewport: { width: 1440, height: 960 }, locale: "zh-CN" }); + const pageA = await contextA.newPage(); + const records = []; + attachMindmapNetworkCapture(pageA, "browser-a", records); + const screenshots = []; + const createdIds = []; + const result = { + ok: false, + task: TASK, + baseUrl: BASE_URL, + documentId: null, + workspaceId: null, + mindmapId: null, + network: records, + screenshots, + }; + + let contextB = null; + let pageB = null; + try { + await ensureAuthenticated(pageA, contextA.request); + const doc = await createTempDocument(contextA.request, null); + createdIds.push(doc.documentId); + result.documentId = doc.documentId; + result.workspaceId = doc.workspaceId; + await renameDocument(contextA.request, doc.workspaceId, doc.documentId, `task168-mindmap-${Date.now().toString().slice(-6)}`); + + await openDocument(pageA, doc.workspaceId, doc.documentId); + await insertMindmapThroughSlash(pageA); + await waitForMindmapReady(pageA, "browser-a-initial"); + const initialState = await assertNoValidatorLeak(pageA, records, "browser-a-initial"); + result.mindmapId = initialState.mindmapId; + + await clickInsertChild(pageA); + const afterCommand = await assertNoValidatorLeak(pageA, records, "browser-a-insert-child"); + assert(afterCommand.commandStatus === "success", `insert_child_not_success:${JSON.stringify(afterCommand)}`); + screenshots.push(await screenshot(pageA, "01-after-insert-child")); + result.documentContentAfterInsert = await waitForDocumentContentToIncludeMindmap( + contextA.request, + doc.documentId, + doc.workspaceId, + result.mindmapId, + ); + + const editedTopicText = `二级节点-SMOKE-${Date.now().toString().slice(-6)}`; + result.topicEditAttempt = await editTopicTextThroughRuntime(pageA, result.mindmapId, editedTopicText); + const afterTopicEdit = await assertNoValidatorLeak(pageA, records, "browser-a-topic-edit"); + result.afterTopicEdit = afterTopicEdit; + result.topicProjectionAfterEdit = await waitForProjectionText( + contextA.request, + doc.documentId, + result.mindmapId, + editedTopicText, + ); + screenshots.push(await screenshot(pageA, "02-after-topic-edit")); + + contextB = await browser.newContext({ viewport: { width: 1440, height: 960 }, locale: "zh-CN" }); + pageB = await contextB.newPage(); + attachMindmapNetworkCapture(pageB, "browser-b", records); + await ensureAuthenticated(pageB, contextB.request); + await openDocument(pageB, doc.workspaceId, doc.documentId); + await waitForMindmapReady(pageB, "browser-b-reopen"); + const secondState = await assertNoValidatorLeak(pageB, records, "browser-b-reopen"); + assert( + secondState.bodyText.includes(editedTopicText), + `second_browser_missing_edited_topic_text:${JSON.stringify({ + expected: editedTopicText, + secondState, + })}`, + ); + assert( + secondState.mindmapId === result.mindmapId, + `second_browser_mindmap_id_mismatch:${JSON.stringify({ expected: result.mindmapId, actual: secondState.mindmapId })}`, + ); + screenshots.push(await screenshot(pageB, "03-second-browser-visible")); + + result.ok = true; + result.initialState = initialState; + result.afterCommand = afterCommand; + result.secondState = secondState; + await writeResult(result); + } catch (error) { + result.error = error instanceof Error ? error.stack || error.message : String(error); + screenshots.push(await screenshot(pageA, "99-failure").catch(() => null)); + if (pageB) { + screenshots.push(await screenshot(pageB, "99-failure-browser-b").catch(() => null)); + } + await writeResult(result); + throw error; + } finally { + if (contextB) { + await contextB.close().catch(() => undefined); + } + await cleanupDocuments(contextA.request, createdIds).catch(() => undefined); + await contextA.close().catch(() => undefined); + await browser.close(); + } +} + +main().catch((error) => { + console.error(error); + process.exitCode = 1; +}); diff --git a/scripts/task169-mindmap-realtime-smoke.js b/scripts/task169-mindmap-realtime-smoke.js new file mode 100644 index 00000000..1238be54 --- /dev/null +++ b/scripts/task169-mindmap-realtime-smoke.js @@ -0,0 +1,1160 @@ +#!/usr/bin/env node +"use strict"; + +const fs = require("node:fs/promises"); +const path = require("node:path"); +const { chromium } = require("playwright"); +const { + BASE_URL, + UI_TIMEOUT_MS, + assert, + cleanupDocuments, + createTempDocument, + ensureAuthenticated, + openDocument, + openFilesystemView, + renameDocument, +} = require("./tree-shell-smoke-helpers"); + +const TASK = "task169-mindmap-realtime-smoke"; +const OUTPUT_DIR = path.join(process.cwd(), "tmp", TASK); +const RESULT_PATH = path.join(OUTPUT_DIR, "result.json"); +const LIVE_WAIT_MS = Number(process.env.MNOTE_MINDMAP_REALTIME_WAIT_MS || 12_000); +const BAD_TEXT_PATTERN = /ArgumentValidationError|domainEventHint|domainEventPlan|streamDeltaHint|command_failed|502 Bad Gateway/i; + +async function writeResult(payload) { + await fs.mkdir(OUTPUT_DIR, { recursive: true }); + await fs.writeFile(RESULT_PATH, `${JSON.stringify({ ...payload, resultPath: RESULT_PATH }, null, 2)}\n`, "utf8"); +} + +async function screenshot(page, name) { + const file = path.join(OUTPUT_DIR, `${name}.png`); + await page.screenshot({ path: file, fullPage: true }); + return file; +} + +async function installTreeEventRecorder(page) { + await page.addInitScript(() => { + window.__MNOTE_SMOKE_TREE_EVENTS__ = []; + const record = (name, event) => { + const detail = event && event.detail ? event.detail : null; + window.__MNOTE_SMOKE_TREE_EVENTS__.push({ + name, + at: Date.now(), + revision: detail && detail.revision ? String(detail.revision) : "", + data: detail && detail.payload && detail.payload.data ? detail.payload.data : null, + eventType: + detail && + detail.payload && + detail.payload.overview && + Array.isArray(detail.payload.overview.domain_events) && + detail.payload.overview.domain_events[0] + ? detail.payload.overview.domain_events[0].event_type || "" + : "", + }); + }; + window.addEventListener("tree:snapshot", (event) => record("tree:snapshot", event)); + window.addEventListener("tree:delta", (event) => record("tree:delta", event)); + window.addEventListener("tree:resync", (event) => record("tree:resync", event)); + }); +} + +async function installMindmapLoadingRecorder(page) { + await page.addInitScript(() => { + window.__MNOTE_MINDMAP_LOADING_EVENTS__ = []; + const recordLoading = (node, reason) => { + if (!(node instanceof HTMLElement)) return; + const loading = node.matches?.('[data-testid="mindmap-scene-loading"]') + ? node + : node.querySelector?.('[data-testid="mindmap-scene-loading"]'); + if (!(loading instanceof HTMLElement)) return; + window.__MNOTE_MINDMAP_LOADING_EVENTS__.push({ + at: Date.now(), + reason, + text: loading.textContent || "", + url: window.location.href, + }); + }; + const start = () => { + if (window.__MNOTE_MINDMAP_LOADING_OBSERVER__) return; + const target = document.documentElement || document.body; + if (!target) { + window.setTimeout(start, 0); + return; + } + recordLoading(target, "initial-scan"); + const observer = new MutationObserver((mutations) => { + mutations.forEach((mutation) => { + mutation.addedNodes.forEach((node) => recordLoading(node, "added-node")); + }); + }); + observer.observe(target, { childList: true, subtree: true }); + window.__MNOTE_MINDMAP_LOADING_OBSERVER__ = observer; + }; + start(); + }); +} + +function attachNetworkCapture(page, label, records) { + page.on("request", (request) => { + const url = request.url(); + if (url.includes("/api/tree/events")) { + records.push({ type: "request", label, method: request.method(), url }); + } + }); + page.on("response", async (response) => { + const url = response.url(); + if ( + !url.includes("/api/tree/events") && + !url.includes("/api/mindmap/") && + !url.includes("/mindmap/") && + !url.includes("/api/documents/save") + ) { + return; + } + const request = response.request(); + const method = request.method(); + const status = response.status(); + let responseText = null; + if (method !== "GET" || status >= 400 || url.includes("/api/documents/save")) { + responseText = await response.text().catch((error) => `<>`); + } + records.push({ + type: "response", + label, + method, + url, + status, + requestBody: request.postData() || null, + responseText: responseText ? responseText.slice(0, 4000) : null, + }); + }); + page.on("requestfailed", (request) => { + const url = request.url(); + if (url.includes("/api/tree/events") || url.includes("/api/mindmap/") || url.includes("/api/documents/save")) { + records.push({ + type: "requestfailed", + label, + method: request.method(), + url, + failure: request.failure()?.errorText || null, + requestBody: request.postData() || null, + }); + } + }); + page.on("console", (message) => { + const text = message.text(); + if (message.type() === "error" || /mindmap|tree live|EventSource|502|command_failed/i.test(text)) { + records.push({ + type: "console", + label, + level: message.type(), + text: text.slice(0, 2000), + }); + } + }); +} + +async function insertMindmapThroughSlash(page) { + const editor = page + .locator('[data-testid="mnote-leptos-tiptap-island-editor-root"] .editor-surface .ProseMirror[contenteditable="true"]') + .first(); + await editor.waitFor({ state: "visible", timeout: UI_TIMEOUT_MS }); + await editor.click({ timeout: UI_TIMEOUT_MS }); + await page.keyboard.type("/"); + const item = page.getByTestId("slash-item-mindmap").first(); + await item.waitFor({ state: "visible", timeout: UI_TIMEOUT_MS }); + await item.click({ timeout: UI_TIMEOUT_MS }); +} + +async function readPageState(page) { + return page.evaluate(() => { + const html = document.documentElement; + const root = document.querySelector('[data-testid="mnote-mindmap-editor-root"]'); + const runtime = document.querySelector('[data-testid="simple-mind-map-runtime"]'); + const scene = document.querySelector('[data-testid="leptos-mindmap-island"]'); + const error = document.querySelector('[data-testid="leptos-mindmap-error"]'); + const loading = document.querySelector('[data-testid="mindmap-scene-loading"]'); + const assetRows = Array.from(document.querySelectorAll("#sidebar-file-tree-root [data-asset-id]")) + .map((node) => (node instanceof HTMLElement ? node.getAttribute("data-asset-id") || "" : "")) + .filter(Boolean); + return { + url: window.location.href, + bodyText: (document.body?.innerText || "").slice(0, 8000), + mindmapId: root instanceof HTMLElement ? root.dataset.mnoteMindmapId || null : null, + runtimeReady: runtime instanceof HTMLElement ? runtime.dataset.runtimeReady === "true" : false, + runtimeMountCount: scene instanceof HTMLElement ? Number(scene.dataset.runtimeMountCount || "0") : 0, + runtimeProjectionApplyCount: + scene instanceof HTMLElement ? Number(scene.dataset.runtimeProjectionApplyCount || "0") : 0, + lastRuntimeMountReason: scene instanceof HTMLElement ? scene.dataset.lastRuntimeMountReason || "" : "", + lastFetchSceneReason: scene instanceof HTMLElement ? scene.dataset.lastFetchSceneReason || "" : "", + backgroundProjectionRefresh: scene instanceof HTMLElement ? scene.dataset.backgroundProjectionRefresh || "" : "", + hasMindmapError: Boolean(error), + hasMindmapLoading: Boolean(loading), + commandStatus: scene instanceof HTMLElement ? scene.dataset.commandStatus || "" : "", + treeLiveStatus: html.getAttribute("data-mnote-tree-live-status") || "", + treeLiveApplied: html.getAttribute("data-mnote-tree-live-applied") || "", + treeLiveRevision: html.getAttribute("data-mnote-tree-live-revision") || "", + treeLiveApplyError: html.getAttribute("data-mnote-tree-live-apply-error") || "", + lastMindmapAssetOpenMode: html.getAttribute("data-mnote-last-mindmap-asset-open-mode") || "", + lastMindmapAssetId: html.getAttribute("data-mnote-last-mindmap-asset-id") || "", + objectEditor: + document.querySelector("[data-mnote-object-editor]") instanceof HTMLElement + ? document.querySelector("[data-mnote-object-editor]").getAttribute("data-mnote-object-editor") || "" + : "", + objectIdentity: + document.querySelector("[data-mnote-object-identity]") instanceof HTMLElement + ? document.querySelector("[data-mnote-object-identity]").getAttribute("data-mnote-object-identity") || "" + : "", + localStorageKeys: Object.keys(window.localStorage || {}).filter((key) => + /mnote\.leptos-tiptap-spike\.document|__mindmap_object__|mindmap-object/.test(key), + ), + mindmapLoadingEvents: window.__MNOTE_MINDMAP_LOADING_EVENTS__ || [], + fileTreeText: (document.getElementById("sidebar-file-tree-root")?.textContent || "").slice(0, 4000), + fileTreeAssetIds: assetRows, + treeEvents: window.__MNOTE_SMOKE_TREE_EVENTS__ || [], + }; + }); +} + +async function readMindmapRuntimeStabilityState(page, mindmapId) { + return page.evaluate( + ({ mindmapId }) => { + const scene = document.querySelector('[data-testid="leptos-mindmap-island"]'); + const registry = window.__MNOTE_LEPTOS_MINDMAP_BRIDGES__ || {}; + const bridge = registry[mindmapId]; + const instance = bridge?.instance; + const topicNode = instance?.renderer?.findNodeByUid?.("topic") || null; + const topicRect = typeof topicNode?.getRect === "function" ? topicNode.getRect() : null; + const viewTransform = instance?.view?.getTransformData?.() || null; + return { + runtimeMountCount: scene instanceof HTMLElement ? Number(scene.dataset.runtimeMountCount || "0") : 0, + runtimeProjectionApplyCount: + scene instanceof HTMLElement ? Number(scene.dataset.runtimeProjectionApplyCount || "0") : 0, + lastRuntimeMountReason: scene instanceof HTMLElement ? scene.dataset.lastRuntimeMountReason || "" : "", + lastRuntimeProjectionApplyReason: + scene instanceof HTMLElement ? scene.dataset.lastRuntimeProjectionApplyReason || "" : "", + runtimeProjectionDeferred: + scene instanceof HTMLElement ? scene.dataset.runtimeProjectionDeferred || "" : "", + lastRuntimeProjectionDeferReason: + scene instanceof HTMLElement ? scene.dataset.lastRuntimeProjectionDeferReason || "" : "", + backgroundProjectionRefresh: scene instanceof HTMLElement ? scene.dataset.backgroundProjectionRefresh || "" : "", + commandStatus: scene instanceof HTMLElement ? scene.dataset.commandStatus || "" : "", + commandApplyMode: scene instanceof HTMLElement ? scene.dataset.commandApplyMode || "" : "", + topicRect: topicRect + ? { + x: Number(topicRect.x ?? topicRect.left ?? 0), + y: Number(topicRect.y ?? topicRect.top ?? 0), + width: Number(topicRect.width ?? 0), + height: Number(topicRect.height ?? 0), + } + : null, + viewTransform, + }; + }, + { mindmapId }, + ); +} + +function stableJson(value) { + return JSON.stringify(value ?? null); +} + +function rectCenter(rect) { + if (!rect) return null; + return { + x: rect.x + rect.width / 2, + y: rect.y + rect.height / 2, + }; +} + +function centerDistance(a, b) { + const ca = rectCenter(a); + const cb = rectCenter(b); + if (!ca || !cb) return Number.POSITIVE_INFINITY; + return Math.hypot(ca.x - cb.x, ca.y - cb.y); +} + +async function dispatchSyntheticMindmapTreeSignal(page, documentId, mindmapId, eventName) { + return page.evaluate( + ({ documentId, mindmapId, eventName }) => { + const cursorId = `smoke-command-${Date.now()}`; + const payload = + eventName === "tree:delta" + ? { + kind: "delta", + revision: JSON.stringify({ id: cursorId, createdAt: new Date().toISOString() }), + data: { + op: "resync_required", + reason: "mindmap.put", + documentId, + blockId: mindmapId, + }, + } + : { + kind: "resync", + revision: JSON.stringify({ id: cursorId, createdAt: new Date().toISOString() }), + overview: { + command_logs: [ + { + id: cursorId, + command_id: cursorId, + target_page_id: documentId, + target_block_id: mindmapId, + aggregate_type: "block", + aggregate_id: mindmapId, + payload: { + streamDelta: { + op: "resync_required", + reason: "mindmap.put", + documentId, + blockId: mindmapId, + }, + }, + }, + ], + domain_events: [], + }, + }; + window.dispatchEvent(new CustomEvent(eventName, { detail: { payload, revision: payload.revision } })); + return payload; + }, + { documentId, mindmapId, eventName }, + ); +} + +async function assertMindmapRuntimeDoesNotRefreshForLiveSignals(page, documentId, mindmapId, failures, label) { + const before = await readPageState(page); + const beforeRuntime = await readMindmapRuntimeStabilityState(page, mindmapId); + if (before.hasMindmapError || before.hasMindmapLoading || !before.runtimeReady) { + failures.push({ + code: "mindmap_unstable_before_live_signal", + label, + state: before, + }); + return { before, afterResync: before, afterDelta: before }; + } + + const resyncPayload = await dispatchSyntheticMindmapTreeSignal(page, documentId, mindmapId, "tree:resync"); + await page.waitForTimeout(2_500); + const afterResync = await readPageState(page); + const afterResyncRuntime = await readMindmapRuntimeStabilityState(page, mindmapId); + if (afterResync.runtimeMountCount !== before.runtimeMountCount) { + failures.push({ + code: "mindmap_resync_remounted_runtime", + label, + before, + after: afterResync, + payload: resyncPayload, + }); + } + if (afterResync.runtimeProjectionApplyCount !== before.runtimeProjectionApplyCount) { + failures.push({ + code: "mindmap_resync_applied_projection_despite_usability_first", + label, + before, + after: afterResync, + payload: resyncPayload, + }); + } + if (stableJson(afterResyncRuntime.viewTransform) !== stableJson(beforeRuntime.viewTransform)) { + failures.push({ + code: "mindmap_resync_changed_view_transform", + label, + before: beforeRuntime, + after: afterResyncRuntime, + payload: resyncPayload, + }); + } + if (centerDistance(beforeRuntime.topicRect, afterResyncRuntime.topicRect) > 2) { + failures.push({ + code: "mindmap_resync_moved_topic_node", + label, + before: beforeRuntime, + after: afterResyncRuntime, + payload: resyncPayload, + }); + } + + const deltaPayload = await dispatchSyntheticMindmapTreeSignal(page, documentId, mindmapId, "tree:delta"); + await page.waitForTimeout(2_500); + const afterDelta = await readPageState(page); + const afterDeltaRuntime = await readMindmapRuntimeStabilityState(page, mindmapId); + if (afterDelta.runtimeMountCount !== afterResync.runtimeMountCount) { + failures.push({ + code: "mindmap_delta_remounted_runtime", + label, + before: afterResync, + after: afterDelta, + payload: deltaPayload, + }); + } + if (afterDelta.runtimeProjectionApplyCount !== afterResync.runtimeProjectionApplyCount) { + failures.push({ + code: "mindmap_delta_applied_projection_despite_usability_first", + label, + before: afterResync, + after: afterDelta, + payload: deltaPayload, + }); + } + if (stableJson(afterDeltaRuntime.viewTransform) !== stableJson(afterResyncRuntime.viewTransform)) { + failures.push({ + code: "mindmap_delta_changed_view_transform", + label, + before: afterResyncRuntime, + after: afterDeltaRuntime, + payload: deltaPayload, + }); + } + if (centerDistance(afterResyncRuntime.topicRect, afterDeltaRuntime.topicRect) > 2) { + failures.push({ + code: "mindmap_delta_moved_topic_node", + label, + before: afterResyncRuntime, + after: afterDeltaRuntime, + payload: deltaPayload, + }); + } + if (afterDelta.hasMindmapError || afterDelta.hasMindmapLoading) { + failures.push({ + code: "mindmap_live_signal_left_error_or_loading", + label, + after: afterDelta, + }); + } + + return { before, beforeRuntime, afterResync, afterResyncRuntime, afterDelta, afterDeltaRuntime }; +} + +async function waitForMindmapReady(page, stage) { + await page + .waitForFunction( + () => { + const root = document.querySelector('[data-testid="mnote-mindmap-editor-root"]'); + const runtime = document.querySelector('[data-testid="simple-mind-map-runtime"]'); + const mindmapId = root instanceof HTMLElement ? root.dataset.mnoteMindmapId || null : null; + const registry = window.__MNOTE_LEPTOS_MINDMAP_BRIDGES__ || {}; + return ( + root instanceof HTMLElement && + runtime instanceof HTMLElement && + runtime.dataset.runtimeReady === "true" && + Boolean(mindmapId) && + Boolean(registry[mindmapId]) + ); + }, + null, + { timeout: UI_TIMEOUT_MS }, + ) + .catch((error) => { + throw new Error(`${stage}:mindmap_not_ready:${error.message}`); + }); +} + +async function waitForMindmapId(page) { + await waitForMindmapReady(page, "mindmap-id"); + const state = await readPageState(page); + assert(state.mindmapId, `mindmap_id_missing:${JSON.stringify(state)}`); + return state.mindmapId; +} + +async function waitForDocumentContentToIncludeMindmap(requestContext, documentId, workspaceId, mindmapId) { + let lastText = ""; + for (let index = 0; index < 45; index += 1) { + const response = await requestContext.fetch( + `${BASE_URL}/api/documents/content?documentId=${encodeURIComponent(documentId)}&workspaceId=${encodeURIComponent(workspaceId)}`, + { method: "GET", timeout: 10_000 }, + ); + lastText = await response.text(); + if (response.ok() && lastText.includes(mindmapId)) { + return lastText; + } + await new Promise((resolve) => setTimeout(resolve, 500)); + } + throw new Error(`document_content_missing_mindmap:${lastText.slice(0, 3000)}`); +} + +async function assertFileTreeMindmapOpenUsesObjectShell(page, documentId, mindmapId, failures) { + await openFilesystemView(page); + const opened = await page.evaluate( + ({ documentId, mindmapId }) => { + const rows = Array.from(document.querySelectorAll("#sidebar-file-tree-root [data-asset-id]")); + const row = rows.find((node) => { + if (!(node instanceof HTMLElement)) return false; + const assetId = node.getAttribute("data-asset-id") || ""; + const rowDocumentId = node.getAttribute("data-document-id") || node.getAttribute("data-doc-id") || ""; + return assetId === mindmapId && rowDocumentId === documentId; + }); + if (!(row instanceof HTMLElement)) { + return { clicked: false, reason: "mindmap_asset_row_missing" }; + } + const button = row.querySelector('[data-rust-action="open"], .tree-link'); + if (!(button instanceof HTMLElement)) { + return { clicked: false, reason: "mindmap_asset_open_button_missing" }; + } + button.click(); + return { + clicked: true, + assetId: row.getAttribute("data-asset-id") || "", + rowId: row.getAttribute("data-row-id") || "", + objectIdentity: row.getAttribute("data-object-identity") || "", + objectKind: row.getAttribute("data-object-kind") || "", + }; + }, + { documentId, mindmapId }, + ); + if (!opened.clicked) { + failures.push({ code: "filetree_mindmap_asset_open_row_missing", opened }); + return opened; + } + if (!opened.objectIdentity.includes(`"objectKind":"mindmap"`) || !opened.objectIdentity.includes(`"assetId":"${mindmapId}"`)) { + failures.push({ + code: "filetree_mindmap_asset_row_missing_object_identity", + opened, + }); + } + await page.waitForURL((url) => url.pathname.includes(`/mindmap/${encodeURIComponent(documentId)}/${encodeURIComponent(mindmapId)}`), { + timeout: UI_TIMEOUT_MS, + }).catch(() => null); + const state = await readPageState(page); + const url = new URL(state.url); + if (!url.pathname.includes(`/mindmap/${encodeURIComponent(documentId)}/${encodeURIComponent(mindmapId)}`)) { + failures.push({ + code: "filetree_mindmap_asset_open_did_not_use_object_shell", + opened, + state, + }); + } + if (url.pathname.includes(`/documents/${encodeURIComponent(documentId)}`)) { + failures.push({ + code: "filetree_mindmap_asset_open_was_swallowed_by_index_document", + opened, + state, + }); + } + await waitForMindmapReady(page, "filetree-object-shell-open"); + const readyState = await readPageState(page); + if (readyState.mindmapId !== mindmapId || !readyState.runtimeReady || readyState.hasMindmapError) { + failures.push({ + code: "filetree_mindmap_asset_object_shell_not_ready", + opened, + readyState, + }); + } + if (readyState.objectEditor !== "mindmap" || readyState.objectIdentity !== `resource:mindmap:${documentId}:${mindmapId}`) { + failures.push({ + code: "mindmap_object_shell_missing_identity_marker", + opened, + readyState, + }); + } + return { opened, state: readyState }; +} + +async function assertFileTreeIndexOpenUsesPageAggregate(page, documentId, mindmapId, failures) { + await openFilesystemView(page); + const opened = await page.evaluate( + ({ documentId }) => { + const row = + document.querySelector(`#sidebar-file-tree-root [data-row-id="index:${CSS.escape(documentId)}"]`) || + Array.from(document.querySelectorAll("#sidebar-file-tree-root [data-row-kind='index']")).find((node) => { + if (!(node instanceof HTMLElement)) return false; + const rowDocumentId = node.getAttribute("data-document-id") || node.getAttribute("data-doc-id") || ""; + return rowDocumentId === documentId; + }); + if (!(row instanceof HTMLElement)) { + return { clicked: false, reason: "index_row_missing" }; + } + const button = row.querySelector('[data-rust-action="open"], .tree-link'); + if (!(button instanceof HTMLElement)) { + return { clicked: false, reason: "index_open_button_missing" }; + } + button.click(); + return { + clicked: true, + rowId: row.getAttribute("data-row-id") || "", + objectIdentity: row.getAttribute("data-object-identity") || "", + }; + }, + { documentId }, + ); + if (!opened.clicked) { + failures.push({ code: "filetree_index_open_row_missing", opened }); + return opened; + } + if (!opened.objectIdentity.includes(`"objectKind":"index"`) || !opened.objectIdentity.includes(`"documentId":"${documentId}"`)) { + failures.push({ + code: "filetree_index_row_missing_object_identity", + opened, + }); + } + await page.waitForURL((url) => url.pathname.includes(`/documents/${encodeURIComponent(documentId)}`), { + timeout: UI_TIMEOUT_MS, + }).catch(() => null); + const state = await readPageState(page); + const url = new URL(state.url); + if (!url.pathname.includes(`/documents/${encodeURIComponent(documentId)}`)) { + failures.push({ + code: "filetree_index_open_did_not_return_document_page", + opened, + state, + }); + } + if (state.objectEditor === "mindmap" || state.objectIdentity.includes(`resource:mindmap:${documentId}:${mindmapId}`)) { + failures.push({ + code: "filetree_index_open_loaded_mindmap_object_identity", + opened, + state, + }); + } + return { opened, state }; +} + +function readMindmapBlocksFromDocumentContentText(text) { + const payload = JSON.parse(text); + const content = Array.isArray(payload?.content) + ? payload.content + : Array.isArray(payload?.result?.content) + ? payload.result.content + : Array.isArray(payload?.data?.content) + ? payload.data.content + : Array.isArray(payload?.body?.content) + ? payload.body.content + : []; + return content.filter((block) => block?.type === "mindmap" || block?.blockType === "mindmap"); +} + +async function assertDocumentMindmapBlockUsesReferenceSource(requestContext, documentId, workspaceId, mindmapId, failures, label) { + const text = await waitForDocumentContentToIncludeMindmap(requestContext, documentId, workspaceId, mindmapId); + const blocks = readMindmapBlocksFromDocumentContentText(text); + const target = blocks.find((block) => { + const props = block?.props && typeof block.props === "object" ? block.props : {}; + return props.mindmapId === mindmapId || props.mindmap_id === mindmapId || block.id === mindmapId || block.blockId === mindmapId; + }); + if (!target) { + failures.push({ + code: "document_mindmap_block_reference_missing", + label, + mindmapId, + blocks, + responseText: text.slice(0, 3000), + }); + return { ok: false, blocks }; + } + const props = target.props && typeof target.props === "object" ? target.props : {}; + if (!props.mindmapId || props.rootNodeId !== "root" || Object.prototype.hasOwnProperty.call(props, "data")) { + failures.push({ + code: "document_mindmap_block_uses_wrong_source", + label, + mindmapId, + props, + target, + }); + return { ok: false, target }; + } + return { ok: true, target }; +} + +async function waitForMindmapProjectionText(requestContext, documentId, mindmapId, expectedText) { + let lastText = ""; + for (let index = 0; index < 45; index += 1) { + const response = await requestContext.fetch( + `${BASE_URL}/api/mindmap/${encodeURIComponent(documentId)}/${encodeURIComponent(mindmapId)}?view=simple_mind_map_scene&queryName=mindmap.simple_mind_map_scene.get`, + { method: "GET", timeout: 10_000 }, + ); + lastText = await response.text(); + if (response.ok() && lastText.includes(expectedText)) return lastText; + await new Promise((resolve) => setTimeout(resolve, 500)); + } + throw new Error(`mindmap_projection_missing_text:${expectedText}:${lastText.slice(0, 3000)}`); +} + +async function readMindmapRuntimeTextState(page, mindmapId, expectedText) { + return page.evaluate( + ({ mindmapId, expectedText }) => { + const registry = window.__MNOTE_LEPTOS_MINDMAP_BRIDGES__ || {}; + const bridge = registry[mindmapId]; + const snapshot = bridge?.getSnapshot?.() ?? bridge?.instance?.getData?.(true) ?? null; + const root = snapshot && typeof snapshot === "object" && "root" in snapshot ? snapshot.root : snapshot; + const texts = []; + const visit = (node) => { + if (!node || typeof node !== "object") return; + const data = node.data && typeof node.data === "object" ? node.data : {}; + if (typeof data.text === "string") texts.push(data.text); + if (Array.isArray(node.children)) node.children.forEach(visit); + }; + visit(root); + return { + texts, + includesExpectedText: texts.some((text) => text.includes(expectedText)), + snapshot, + }; + }, + { mindmapId, expectedText }, + ); +} + +async function readMindmapProjectionText(requestContext, documentId, mindmapId) { + const response = await requestContext.fetch( + `${BASE_URL}/api/mindmap/${encodeURIComponent(documentId)}/${encodeURIComponent(mindmapId)}?view=simple_mind_map_scene&queryName=mindmap.simple_mind_map_scene.get`, + { method: "GET", timeout: 10_000 }, + ); + return { + ok: response.ok(), + status: response.status(), + text: await response.text(), + }; +} + +async function editTopicTextThroughRuntime(page, mindmapId, text) { + const result = await page.evaluate( + ({ mindmapId, text }) => { + const scene = document.querySelector('[data-testid="leptos-mindmap-island"]'); + if (scene instanceof HTMLElement) { + scene.dataset.commandStatus = "smoke-waiting-topic-edit"; + } + const registry = window.__MNOTE_LEPTOS_MINDMAP_BRIDGES__ || {}; + const bridge = registry[mindmapId]; + const instance = bridge?.instance; + const topicNode = instance?.renderer?.findNodeByUid?.("topic") || null; + if (!topicNode || typeof topicNode !== "object") return { ok: false, reason: "topic_node_missing" }; + if (typeof topicNode.setData === "function") { + topicNode.setData({ text }); + } else if (topicNode.data && typeof topicNode.data === "object") { + topicNode.data.text = text; + } else { + return { ok: false, reason: "topic_node_not_mutable" }; + } + const snapshot = typeof bridge.getSnapshot === "function" ? bridge.getSnapshot() : instance?.getData?.(true); + return { + ok: true, + snapshotText: snapshot?.children?.[0]?.data?.text ?? null, + commandStatus: scene instanceof HTMLElement ? scene.dataset.commandStatus || null : null, + }; + }, + { mindmapId, text }, + ); + assert(result.ok, `topic_runtime_edit_failed:${JSON.stringify(result)}`); + await page.waitForFunction( + ({ text }) => { + const bodyText = document.body?.innerText || ""; + const scene = document.querySelector('[data-testid="leptos-mindmap-island"]'); + return bodyText.includes(text) || (scene instanceof HTMLElement && scene.dataset.commandStatus !== "smoke-waiting-topic-edit"); + }, + { text }, + { timeout: UI_TIMEOUT_MS }, + ); + return result; +} + +async function readRuntimeTextEditState(page) { + return page.evaluate(() => { + const edit = document.querySelector(".smm-node-edit-wrap[contenteditable=\"true\"]"); + const scene = document.querySelector('[data-testid="leptos-mindmap-island"]'); + const active = document.activeElement; + return { + exists: edit instanceof HTMLElement, + visible: + edit instanceof HTMLElement && + edit.style.display !== "none" && + edit.getClientRects().length > 0, + text: edit instanceof HTMLElement ? edit.innerText || edit.textContent || "" : "", + active: + edit instanceof HTMLElement && + (active === edit || (active instanceof Node && edit.contains(active))), + runtimeMountCount: scene instanceof HTMLElement ? Number(scene.dataset.runtimeMountCount || "0") : 0, + runtimeProjectionApplyCount: + scene instanceof HTMLElement ? Number(scene.dataset.runtimeProjectionApplyCount || "0") : 0, + runtimeProjectionDeferred: + scene instanceof HTMLElement ? scene.dataset.runtimeProjectionDeferred || "" : "", + lastRuntimeProjectionDeferReason: + scene instanceof HTMLElement ? scene.dataset.lastRuntimeProjectionDeferReason || "" : "", + backgroundProjectionRefresh: + scene instanceof HTMLElement ? scene.dataset.backgroundProjectionRefresh || "" : "", + }; + }); +} + +async function openTopicTextEdit(page, mindmapId) { + const result = await page.evaluate( + ({ mindmapId }) => { + const registry = window.__MNOTE_LEPTOS_MINDMAP_BRIDGES__ || {}; + const bridge = registry[mindmapId]; + const instance = bridge?.instance; + const topicNode = instance?.renderer?.findNodeByUid?.("topic") || null; + const textEdit = instance?.renderer?.textEdit; + if (!topicNode) return { ok: false, reason: "topic_node_missing" }; + if (typeof textEdit?.show !== "function") return { ok: false, reason: "text_edit_show_missing" }; + textEdit.show({ node: topicNode, isFromKeyDown: false }); + return { ok: true }; + }, + { mindmapId }, + ); + assert(result.ok, `topic_text_edit_open_failed:${JSON.stringify(result)}`); + const edit = page.locator(".smm-node-edit-wrap[contenteditable=\"true\"]").first(); + await edit.waitFor({ state: "visible", timeout: UI_TIMEOUT_MS }); + await edit.focus(); + await page.keyboard.press("Control+A"); + await page.keyboard.press("Backspace"); +} + +async function enterTopicTextDraftWithoutCommit(page, mindmapId, text) { + await openTopicTextEdit(page, mindmapId); + await page.keyboard.insertText(text); + await page.waitForFunction( + ({ text }) => { + const edit = document.querySelector(".smm-node-edit-wrap[contenteditable=\"true\"]"); + return edit instanceof HTMLElement && (edit.innerText || edit.textContent || "").includes(text); + }, + { text }, + { timeout: UI_TIMEOUT_MS }, + ); + return readRuntimeTextEditState(page); +} + +async function assertLongLanguageEditSurvivesLiveRefresh(page, requestContext, documentId, mindmapId, failures) { + const longText = + `长文本编辑-LIVE-${Date.now().toString().slice(-6)}:` + + "第一段用于覆盖真实中文连续输入,包含标点、换行前的较长句子,确保编辑框不会因为后台实时刷新而丢焦或闪烁。"; + const secondHalf = "第二段继续输入,验证 live signal 之后仍然可以稳定完成编辑并保存到投影。"; + await openTopicTextEdit(page, mindmapId); + const beforeEditRuntime = await readMindmapRuntimeStabilityState(page, mindmapId); + await page.keyboard.insertText(longText); + const beforeLive = await readRuntimeTextEditState(page); + const resyncPayload = await dispatchSyntheticMindmapTreeSignal(page, documentId, mindmapId, "tree:resync"); + await page.waitForTimeout(2_500); + const afterLive = await readRuntimeTextEditState(page); + if (!afterLive.visible || !afterLive.active || !afterLive.text.includes(longText)) { + failures.push({ + code: "mindmap_live_refresh_interrupted_long_text_edit", + beforeLive, + afterLive, + payload: resyncPayload, + }); + return { beforeLive, afterLive, committed: false, longText: longText + secondHalf }; + } + if (afterLive.runtimeMountCount !== beforeLive.runtimeMountCount) { + failures.push({ + code: "mindmap_live_refresh_remounted_during_long_text_edit", + beforeLive, + afterLive, + payload: resyncPayload, + }); + } + if (afterLive.runtimeProjectionApplyCount !== beforeLive.runtimeProjectionApplyCount) { + failures.push({ + code: "mindmap_live_refresh_applied_projection_during_long_text_edit", + beforeLive, + afterLive, + payload: resyncPayload, + }); + } + await page.keyboard.insertText(secondHalf); + await page.keyboard.press("Enter"); + await waitForMindmapProjectionText(requestContext, documentId, mindmapId, longText + secondHalf); + await page.waitForTimeout(2_500); + const afterCommitRuntime = await readMindmapRuntimeStabilityState(page, mindmapId); + if (afterCommitRuntime.runtimeMountCount !== beforeEditRuntime.runtimeMountCount) { + failures.push({ + code: "mindmap_long_text_commit_remounted_runtime", + before: beforeEditRuntime, + after: afterCommitRuntime, + }); + } + if (afterCommitRuntime.runtimeProjectionApplyCount !== beforeEditRuntime.runtimeProjectionApplyCount) { + failures.push({ + code: "mindmap_long_text_commit_applied_projection_refresh", + before: beforeEditRuntime, + after: afterCommitRuntime, + }); + } + if (stableJson(afterCommitRuntime.viewTransform) !== stableJson(beforeEditRuntime.viewTransform)) { + failures.push({ + code: "mindmap_long_text_commit_changed_view_transform", + before: beforeEditRuntime, + after: afterCommitRuntime, + }); + } + const postCommitLivePayload = await dispatchSyntheticMindmapTreeSignal(page, documentId, mindmapId, "tree:resync"); + await page.waitForTimeout(2_500); + const afterPostCommitLiveRuntime = await readMindmapRuntimeStabilityState(page, mindmapId); + if (afterPostCommitLiveRuntime.runtimeMountCount !== afterCommitRuntime.runtimeMountCount) { + failures.push({ + code: "mindmap_post_commit_live_remounted_runtime", + before: afterCommitRuntime, + after: afterPostCommitLiveRuntime, + payload: postCommitLivePayload, + }); + } + if (afterPostCommitLiveRuntime.runtimeProjectionApplyCount !== afterCommitRuntime.runtimeProjectionApplyCount) { + failures.push({ + code: "mindmap_post_commit_live_applied_projection_refresh", + before: afterCommitRuntime, + after: afterPostCommitLiveRuntime, + payload: postCommitLivePayload, + }); + } + if (stableJson(afterPostCommitLiveRuntime.viewTransform) !== stableJson(afterCommitRuntime.viewTransform)) { + failures.push({ + code: "mindmap_post_commit_live_changed_view_transform", + before: afterCommitRuntime, + after: afterPostCommitLiveRuntime, + payload: postCommitLivePayload, + }); + } + if (centerDistance(afterCommitRuntime.topicRect, afterPostCommitLiveRuntime.topicRect) > 2) { + failures.push({ + code: "mindmap_post_commit_live_moved_topic_node", + before: afterCommitRuntime, + after: afterPostCommitLiveRuntime, + payload: postCommitLivePayload, + }); + } + return { + beforeEditRuntime, + beforeLive, + afterLive, + committed: true, + longText: longText + secondHalf, + afterCommitRuntime, + afterPostCommitLiveRuntime, + afterCommit: await readPageState(page), + }; +} + +async function waitForPageCondition(page, predicate, timeoutMs = LIVE_WAIT_MS) { + const deadline = Date.now() + timeoutMs; + let last = null; + while (Date.now() < deadline) { + last = await readPageState(page); + if (predicate(last)) { + return { ok: true, state: last }; + } + await page.waitForTimeout(500); + } + return { ok: false, state: last || (await readPageState(page)) }; +} + +function findBadRecord(records) { + return records.find((record) => { + if (record.type === "response" && record.status >= 500) return true; + return BAD_TEXT_PATTERN.test(`${record.responseText || ""}\n${record.text || ""}\n${record.failure || ""}`); + }); +} + +async function main() { + await fs.mkdir(OUTPUT_DIR, { recursive: true }); + const browser = await chromium.launch({ headless: true }); + const contextA = await browser.newContext({ viewport: { width: 1440, height: 960 }, locale: "zh-CN" }); + const contextB = await browser.newContext({ viewport: { width: 1440, height: 960 }, locale: "zh-CN" }); + const pageA = await contextA.newPage(); + const pageB = await contextB.newPage(); + await installTreeEventRecorder(pageA); + await installTreeEventRecorder(pageB); + await installMindmapLoadingRecorder(pageA); + await installMindmapLoadingRecorder(pageB); + const records = []; + attachNetworkCapture(pageA, "browser-a", records); + attachNetworkCapture(pageB, "browser-b", records); + const screenshots = []; + const createdIds = []; + const failures = []; + const result = { + ok: false, + task: TASK, + baseUrl: BASE_URL, + documentId: null, + workspaceId: null, + mindmapId: null, + liveWaitMs: LIVE_WAIT_MS, + failures, + network: records, + screenshots, + }; + + try { + await ensureAuthenticated(pageA, contextA.request); + await ensureAuthenticated(pageB, contextB.request); + + const doc = await createTempDocument(contextA.request, null); + createdIds.push(doc.documentId); + const awayDoc = await createTempDocument(contextA.request, null); + createdIds.push(awayDoc.documentId); + result.documentId = doc.documentId; + result.workspaceId = doc.workspaceId; + await renameDocument(contextA.request, doc.workspaceId, doc.documentId, `task169-mindmap-live-${Date.now().toString().slice(-6)}`); + await renameDocument(contextA.request, awayDoc.workspaceId, awayDoc.documentId, `task169-mindmap-away-${Date.now().toString().slice(-6)}`); + + await openDocument(pageA, doc.workspaceId, doc.documentId); + await openDocument(pageB, doc.workspaceId, doc.documentId); + result.browserBBeforeInsert = await readPageState(pageB); + + await insertMindmapThroughSlash(pageA); + result.mindmapId = await waitForMindmapId(pageA); + result.documentMindmapBlockAfterInsert = await assertDocumentMindmapBlockUsesReferenceSource( + contextA.request, + doc.documentId, + doc.workspaceId, + result.mindmapId, + failures, + "after-insert", + ); + result.fileTreeMindmapOpenAfterInsert = await assertFileTreeMindmapOpenUsesObjectShell( + pageA, + doc.documentId, + result.mindmapId, + failures, + ); + await waitForMindmapReady(pageA, "after-filetree-mindmap-open"); + await pageA.waitForTimeout(1000); + screenshots.push(await screenshot(pageA, "01-browser-a-after-insert")); + result.browserARefreshStabilityAfterInsert = await assertMindmapRuntimeDoesNotRefreshForLiveSignals( + pageA, + doc.documentId, + result.mindmapId, + failures, + "browser-a-after-insert", + ); + + const editedTopicText = `二级节点-LIVE-${Date.now().toString().slice(-6)}`; + result.topicEditAttempt = await editTopicTextThroughRuntime(pageA, result.mindmapId, editedTopicText); + result.browserAAfterTopicEdit = await readPageState(pageA); + screenshots.push(await screenshot(pageA, "03-browser-a-after-topic-edit")); + await openDocument(pageA, awayDoc.workspaceId, awayDoc.documentId); + result.browserAOnAwayDocument = await readPageState(pageA); + await openDocument(pageA, doc.workspaceId, doc.documentId); + await waitForMindmapReady(pageA, "return-after-topic-edit"); + await waitForMindmapProjectionText(contextA.request, doc.documentId, result.mindmapId, editedTopicText); + result.documentMindmapBlockAfterTopicReturn = await assertDocumentMindmapBlockUsesReferenceSource( + contextA.request, + doc.documentId, + doc.workspaceId, + result.mindmapId, + failures, + "after-topic-return", + ); + result.browserAAfterReturnToMindmapDocument = await readPageState(pageA); + result.runtimeTextAfterReturnToMindmapDocument = await readMindmapRuntimeTextState( + pageA, + result.mindmapId, + editedTopicText, + ); + result.projectionAfterReturnToMindmapDocument = await readMindmapProjectionText( + contextA.request, + doc.documentId, + result.mindmapId, + ); + if (!result.runtimeTextAfterReturnToMindmapDocument.includesExpectedText) { + failures.push({ + code: "mindmap_topic_edit_lost_after_page_switch", + expectedText: editedTopicText, + beforeSwitch: result.browserAAfterTopicEdit, + afterReturn: result.browserAAfterReturnToMindmapDocument, + runtimeTextAfterReturn: result.runtimeTextAfterReturnToMindmapDocument, + projectionAfterReturn: result.projectionAfterReturnToMindmapDocument, + }); + } + if (result.browserAAfterReturnToMindmapDocument.mindmapLoadingEvents.length > 0) { + failures.push({ + code: "mindmap_page_switch_showed_runtime_loading", + loadingEvents: result.browserAAfterReturnToMindmapDocument.mindmapLoadingEvents, + afterReturn: result.browserAAfterReturnToMindmapDocument, + }); + } + screenshots.push(await screenshot(pageA, "04-browser-a-after-return-to-mindmap-document")); + const draftTopicText = `草稿切页-LIVE-${Date.now().toString().slice(-6)}`; + result.topicDraftBeforeSwitch = await enterTopicTextDraftWithoutCommit(pageA, result.mindmapId, draftTopicText); + await openDocument(pageA, awayDoc.workspaceId, awayDoc.documentId); + result.browserAOnAwayAfterDraftEdit = await readPageState(pageA); + await openDocument(pageA, doc.workspaceId, doc.documentId); + await waitForMindmapReady(pageA, "return-after-draft-topic-edit"); + await waitForMindmapProjectionText(contextA.request, doc.documentId, result.mindmapId, draftTopicText); + result.documentMindmapBlockAfterDraftReturn = await assertDocumentMindmapBlockUsesReferenceSource( + contextA.request, + doc.documentId, + doc.workspaceId, + result.mindmapId, + failures, + "after-draft-return", + ); + result.runtimeTextAfterDraftReturn = await readMindmapRuntimeTextState(pageA, result.mindmapId, draftTopicText); + if (!result.runtimeTextAfterDraftReturn.includesExpectedText) { + failures.push({ + code: "mindmap_uncommitted_text_edit_lost_after_page_switch", + expectedText: draftTopicText, + beforeSwitch: result.topicDraftBeforeSwitch, + afterReturn: result.runtimeTextAfterDraftReturn, + }); + } + result.browserARefreshStabilityAfterTopicEdit = await assertMindmapRuntimeDoesNotRefreshForLiveSignals( + pageA, + doc.documentId, + result.mindmapId, + failures, + "browser-a-after-topic-edit", + ); + result.longLanguageEdit = await assertLongLanguageEditSurvivesLiveRefresh( + pageA, + contextA.request, + doc.documentId, + result.mindmapId, + failures, + ); + await openDocument(pageA, awayDoc.workspaceId, awayDoc.documentId); + result.indexOpenAfterLongLanguageEdit = await assertFileTreeIndexOpenUsesPageAggregate( + pageA, + doc.documentId, + result.mindmapId, + failures, + ); + result.fileTreeMindmapReopenAfterIndex = await assertFileTreeMindmapOpenUsesObjectShell( + pageA, + doc.documentId, + result.mindmapId, + failures, + ); + if (result.longLanguageEdit && result.longLanguageEdit.longText) { + result.runtimeTextAfterMindmapReopen = await readMindmapRuntimeTextState( + pageA, + result.mindmapId, + result.longLanguageEdit.longText, + ); + if (!result.runtimeTextAfterMindmapReopen.includesExpectedText) { + failures.push({ + code: "mindmap_long_language_text_lost_after_index_roundtrip", + expectedText: result.longLanguageEdit.longText, + indexOpen: result.indexOpenAfterLongLanguageEdit, + reopen: result.fileTreeMindmapReopenAfterIndex, + runtimeTextAfterMindmapReopen: result.runtimeTextAfterMindmapReopen, + }); + } + } + + const badRecord = findBadRecord(records); + if (badRecord) { + failures.push({ code: "mindmap_network_error_or_validator_leak", badRecord }); + } + + result.ok = failures.length === 0; + await writeResult(result); + if (!result.ok) { + throw new Error(`mindmap_realtime_failed:${JSON.stringify(failures, null, 2).slice(0, 6000)}`); + } + } catch (error) { + result.error = error instanceof Error ? error.stack || error.message : String(error); + screenshots.push(await screenshot(pageA, "99-failure-browser-a").catch(() => null)); + screenshots.push(await screenshot(pageB, "99-failure-browser-b").catch(() => null)); + await writeResult(result); + throw error; + } finally { + await cleanupDocuments(contextA.request, createdIds).catch(() => undefined); + await contextA.close().catch(() => undefined); + await contextB.close().catch(() => undefined); + await browser.close(); + } +} + +main().catch((error) => { + console.error(error); + process.exitCode = 1; +}); diff --git a/wolai-frontend/convex/_utils/documentVisibility.ts b/wolai-frontend/convex/_utils/documentVisibility.ts new file mode 100644 index 00000000..cd68828f --- /dev/null +++ b/wolai-frontend/convex/_utils/documentVisibility.ts @@ -0,0 +1,117 @@ +export type DocumentVisibilityScope = "private" | "shared" | "public" | null | undefined; + +export type DocumentVisibilityRecord = { + id: string; + user_id?: string | null; + parent_id?: string | null; + access_scope?: DocumentVisibilityScope; + deleted_at?: string | null; +}; + +export type DocumentVisibilityShareRecord = { + document_id: string; + include_descendants?: boolean | null; +}; + +type BuildVisibleDocumentIdsInput = { + userId: string; + docs: readonly DocumentVisibilityRecord[]; + directShares: readonly DocumentVisibilityShareRecord[]; + directGroupShares: readonly DocumentVisibilityShareRecord[]; + includeDeletedDocuments?: boolean; +}; + +function normalizeDocumentId(value: string | null | undefined): string | null { + const trimmed = String(value ?? "").trim(); + return trimmed.length > 0 ? trimmed : null; +} + +function buildInheritedShareMap( + shares: readonly DocumentVisibilityShareRecord[], +): Map { + const result = new Map(); + for (const share of shares) { + const documentId = normalizeDocumentId(share.document_id); + if (!documentId) continue; + const existing = result.get(documentId); + if (!existing) { + result.set(documentId, { + includeDescendants: Boolean(share.include_descendants), + }); + continue; + } + existing.includeDescendants = existing.includeDescendants || Boolean(share.include_descendants); + } + return result; +} + +function canAccessByInheritedShare(input: { + docId: string; + parentById: Map; + directShareMap: Map; + cache: Map; +}): boolean { + const cached = input.cache.get(input.docId); + if (typeof cached === "boolean") return cached; + if (input.directShareMap.has(input.docId)) { + input.cache.set(input.docId, true); + return true; + } + let parentId = input.parentById.get(input.docId) ?? null; + for (let depth = 0; depth < 60 && parentId; depth += 1) { + const parentShare = input.directShareMap.get(parentId); + if (parentShare && parentShare.includeDescendants) { + input.cache.set(input.docId, true); + return true; + } + parentId = input.parentById.get(parentId) ?? null; + } + input.cache.set(input.docId, false); + return false; +} + +export function buildVisibleDocumentIds(input: BuildVisibleDocumentIdsInput): Set { + const candidateDocs = input.includeDeletedDocuments + ? [...input.docs] + : input.docs.filter((doc) => doc.deleted_at == null); + + const parentById = new Map(); + for (const doc of candidateDocs) { + parentById.set(doc.id, normalizeDocumentId(doc.parent_id) ?? null); + } + + const directShares = buildInheritedShareMap(input.directShares); + const directGroupShares = buildInheritedShareMap(input.directGroupShares); + const shareAccessCache = new Map(); + const groupAccessCache = new Map(); + const visible = new Set(); + + for (const doc of candidateDocs) { + if (String(doc.user_id ?? "") === input.userId) { + visible.add(doc.id); + continue; + } + if (doc.access_scope === "public") { + visible.add(doc.id); + continue; + } + if ( + canAccessByInheritedShare({ + docId: doc.id, + parentById, + directShareMap: directShares, + cache: shareAccessCache, + }) || + canAccessByInheritedShare({ + docId: doc.id, + parentById, + directShareMap: directGroupShares, + cache: groupAccessCache, + }) + ) { + visible.add(doc.id); + } + } + + return visible; +} diff --git a/wolai-frontend/convex/mindmaps.ts b/wolai-frontend/convex/mindmaps.ts index 8471c360..d7ebb696 100644 --- a/wolai-frontend/convex/mindmaps.ts +++ b/wolai-frontend/convex/mindmaps.ts @@ -4,13 +4,21 @@ import { requireUserId } from "./_utils/auth"; import { nowIso } from "./_utils/time"; import { enqueueIngestMindmapJob } from "./_utils/ingestJobs"; import { internal } from "./_generated/api"; -import { requireCanonicalOwnedDocument } from "./_utils/documentRecord"; +import { getCanonicalDocumentByBusinessId, requireCanonicalOwnedDocument } from "./_utils/documentRecord"; +import { buildVisibleDocumentIds } from "./_utils/documentVisibility"; const defaultMindmapData = { data: { text: "中心主题" }, children: [], }; +const bridgeArtifactArgs = { + streamDeltaHint: v.optional(v.any()), + domainEventHint: v.optional(v.any()), + domainEventPlan: v.optional(v.any()), + domainEventPlans: v.optional(v.any()), +}; + function resolveGraceSeconds(): number { const raw = process.env.DELETE_GRACE_SECONDS ?? process.env.NEXT_PUBLIC_DELETE_GRACE_SECONDS ?? "600"; const parsed = Number(raw); @@ -31,12 +39,77 @@ async function requireOwnedDocument(ctx: any, userId: string, docId: string) { return await requireCanonicalOwnedDocument(ctx, docId, userId); } +async function requireWorkspaceMember(ctx: any, workspaceId: string, userId: string) { + const membership = await ctx.db + .query("workspace_members") + .withIndex("by_workspace_user", (q: any) => q.eq("workspace_id", workspaceId).eq("user_id", userId)) + .first(); + if (!membership) { + throw new Error("无权操作该工作空间"); + } +} + +async function readWorkspaceVisibilityContext(ctx: any, workspaceId: string, userId: string) { + const docs = await ctx.db + .query("documents") + .withIndex("by_workspace", (q: any) => q.eq("workspace_id", workspaceId)) + .collect(); + + const directShares = await ctx.db + .query("document_shares") + .withIndex("by_workspace_shared_with", (q: any) => + q.eq("workspace_id", workspaceId).eq("shared_with_user_id", userId), + ) + .collect(); + + const groupMemberships = await ctx.db + .query("group_members") + .withIndex("by_workspace_user", (q: any) => q.eq("workspace_id", workspaceId).eq("user_id", userId)) + .collect(); + const groupIds = new Set(groupMemberships.map((item: any) => String(item.group_id))); + + const directGroupShares: Array<{ document_id: string; include_descendants: boolean | null }> = []; + for (const groupId of groupIds) { + const rows = await ctx.db + .query("document_group_shares") + .withIndex("by_workspace_group", (q: any) => q.eq("workspace_id", workspaceId).eq("group_id", groupId)) + .collect(); + for (const row of rows) { + directGroupShares.push({ + document_id: row.document_id, + include_descendants: row.include_descendants, + }); + } + } + + return { docs, directShares, directGroupShares }; +} + +async function requireReadableDocument(ctx: any, userId: string, docId: string) { + const doc = await getCanonicalDocumentByBusinessId(ctx, docId); + if (!doc) { + throw new Error("页面不存在"); + } + await requireWorkspaceMember(ctx, doc.workspace_id, userId); + const visibility = await readWorkspaceVisibilityContext(ctx, doc.workspace_id, userId); + const visibleDocumentIds = buildVisibleDocumentIds({ + userId, + docs: visibility.docs, + directShares: visibility.directShares, + directGroupShares: visibility.directGroupShares, + }); + if (!visibleDocumentIds.has(doc.id)) { + throw new Error("无权限"); + } + return doc; +} + export const get = query({ args: { docId: v.string(), mindmapId: v.string() }, handler: async (ctx, args) => { const userId = await requireUserId(ctx); - const doc = await requireOwnedDocument(ctx, userId, args.docId); + const doc = await requireReadableDocument(ctx, userId, args.docId); const mindmapId = normalizeMindmapId(args.docId, args.mindmapId); const row = await ctx.db @@ -122,6 +195,7 @@ export const put = mutation({ mindmapId: v.string(), data: v.any(), createOnly: v.optional(v.boolean()), + ...bridgeArtifactArgs, }, handler: async (ctx, args) => { const userId = await requireUserId(ctx); @@ -195,7 +269,7 @@ export const put = mutation({ }); export const softDelete = mutation({ - args: { docId: v.string(), mindmapId: v.string() }, + args: { docId: v.string(), mindmapId: v.string(), ...bridgeArtifactArgs }, handler: async (ctx, args) => { const userId = await requireUserId(ctx); @@ -299,7 +373,7 @@ export const purgeIfExpired = internalMutation({ }); export const restore = mutation({ - args: { docId: v.string(), mindmapId: v.string() }, + args: { docId: v.string(), mindmapId: v.string(), ...bridgeArtifactArgs }, handler: async (ctx, args) => { const userId = await requireUserId(ctx); @@ -328,7 +402,7 @@ export const restore = mutation({ }); export const purge = mutation({ - args: { docId: v.string(), mindmapId: v.string() }, + args: { docId: v.string(), mindmapId: v.string(), ...bridgeArtifactArgs }, handler: async (ctx, args) => { const userId = await requireUserId(ctx); @@ -359,14 +433,15 @@ export const listByWorkspace = query({ handler: async (ctx, args) => { const userId = await requireUserId(ctx); - // 说明:阶段 6 先按 membership 存在即可,避免引入复杂权限模型。 - const membership = await ctx.db - .query("workspace_members") - .withIndex("by_workspace_user", (q) => q.eq("workspace_id", args.workspaceId).eq("user_id", userId)) - .first(); - if (!membership) { - throw new Error("无权操作该工作空间"); - } + await requireWorkspaceMember(ctx, args.workspaceId, userId); + const visibility = await readWorkspaceVisibilityContext(ctx, args.workspaceId, userId); + const visibleDocumentIds = buildVisibleDocumentIds({ + userId, + docs: visibility.docs, + directShares: visibility.directShares, + directGroupShares: visibility.directGroupShares, + includeDeletedDocuments: true, + }); const rows = await ctx.db .query("mindmaps") @@ -376,7 +451,7 @@ export const listByWorkspace = query({ const includeDeleted = Boolean(args.includeDeleted); return rows - .filter((r) => r.user_id === userId) + .filter((r) => visibleDocumentIds.has(r.document_id)) .filter((r) => (includeDeleted ? true : r.deleted_at == null)) .sort((a, b) => (b.updated_at ?? "").localeCompare(a.updated_at ?? "")) .map((r) => ({ diff --git a/wolai-frontend/src/app/api/mindmap/[docId]/[mindmapId]/route.ts b/wolai-frontend/src/app/api/mindmap/[docId]/[mindmapId]/route.ts index 4dc6a62d..4af47b8d 100644 --- a/wolai-frontend/src/app/api/mindmap/[docId]/[mindmapId]/route.ts +++ b/wolai-frontend/src/app/api/mindmap/[docId]/[mindmapId]/route.ts @@ -11,15 +11,34 @@ import { import { executeRustBridgeMutationTransport, executeRustBridgeQueryTransport, + recordRustBridgeCommandArtifacts, resolveRustBridgeCommandPlan, resolveRustBridgeQueryPlan, } from "@/lib/documents/rust-runtime"; +import { + applyMetadataOnlyMindmapCommands, + isMetadataOnlyMindmapCommandSet, +} from "@/lib/mindmap/mindmap-command-apply-local"; const defaultMindmapData = { data: { text: "中心主题" }, children: [], }; +async function recordMindmapCommandSuccess(args: { + context: ReturnType; + envelope: ReturnType; + client: Awaited>["client"]; + plan: Awaited>; + result: unknown; +}) { + try { + await recordRustBridgeCommandArtifacts(args); + } catch (error) { + console.warn("[mindmap-route] Rust bridge success artifacts skipped:", error); + } +} + export async function GET( request: Request, { params }: { params: Promise<{ docId: string; mindmapId: string }> }, @@ -132,6 +151,81 @@ export async function POST( }, }); const isCommandApply = commandName === "mindmap.command.apply"; + const isMetadataOnlyCommandApply = isCommandApply && isMetadataOnlyMindmapCommandSet(Array.isArray(commands) ? commands : []); + if (isMetadataOnlyCommandApply) { + const currentEnvelope = buildDocumentQueryEnvelope({ + name: "mindmaps.get", + payload: { + documentId: docId, + mindmapId, + workspaceId: null, + }, + }); + const currentPlan = await resolveRustBridgeQueryPlan({ context, envelope: currentEnvelope }); + const currentResult = await executeRustBridgeQueryTransport<{ data?: unknown }>({ + client, + plan: currentPlan, + }); + const applied = applyMetadataOnlyMindmapCommands(currentResult?.data ?? defaultMindmapData, commands); + if (applied.errors.length > 0) { + return NextResponse.json( + { + error: "mindmap_command_apply_failed", + details: applied.errors, + }, + { status: 400 }, + ); + } + const putEnvelope = buildDocumentCommandEnvelope({ + name: "mindmaps.put", + payload: { + documentId: docId, + mindmapId, + data: applied.data, + createOnly: false, + }, + context, + target: { + workspaceId: null, + pageId: docId, + blockId: mindmapId, + }, + reason: "mindmap-route:command-apply-metadata-fallback", + refs: ["task-166", "mindmap-command-bridge", "mindmap-metadata-fallback"], + }); + const putPlan = await resolveRustBridgeCommandPlan({ context, envelope: putEnvelope }); + const result = await executeRustBridgeMutationTransport<{ + ok?: boolean; + workspace_id?: string | null; + updated_at?: string | null; + }>({ + client, + plan: putPlan, + }); + await recordMindmapCommandSuccess({ + context, + envelope: putEnvelope, + client, + plan: putPlan, + result, + }); + return NextResponse.json({ + ...(result ?? { ok: true }), + commandName: "mindmap.command.apply", + applied: applied.applied, + errors: applied.errors, + projectionRevision: typeof projectionRevision === "number" ? projectionRevision : null, + meta: { + ...buildMindmapRouteMeta(request, { + workspaceId: result?.workspace_id ?? null, + documentId: docId, + mindmapId, + ownerUserId: auth.userId, + }), + updatedAt: result?.updated_at ?? null, + }, + }); + } const envelope = buildDocumentCommandEnvelope({ name: isCommandApply ? "mindmap.command.apply" : "mindmaps.put", payload: isCommandApply @@ -166,6 +260,13 @@ export async function POST( client, plan, }); + await recordMindmapCommandSuccess({ + context, + envelope, + client, + plan, + result, + }); return NextResponse.json({ ...(result ?? { ok: true }), meta: { @@ -232,6 +333,13 @@ export async function DELETE( client, plan, }); + await recordMindmapCommandSuccess({ + context, + envelope, + client, + plan, + result, + }); return NextResponse.json({ ...(result ?? { ok: true }), meta: { @@ -303,6 +411,13 @@ export async function PATCH( client, plan, }); + await recordMindmapCommandSuccess({ + context, + envelope, + client, + plan, + result, + }); return NextResponse.json({ ...(result ?? { ok: true }), meta: { diff --git a/wolai-frontend/src/components/editor/blocks/MindmapBlock.tsx b/wolai-frontend/src/components/editor/blocks/MindmapBlock.tsx index 4c22e100..496fca94 100644 --- a/wolai-frontend/src/components/editor/blocks/MindmapBlock.tsx +++ b/wolai-frontend/src/components/editor/blocks/MindmapBlock.tsx @@ -49,6 +49,7 @@ import { type MindmapProjection, type MindmapRouteMeta, } from "@/lib/mindmap/mindmap-projection"; +import { buildInitialMindmapAssetRefreshPayload } from "@/lib/mindmap/mindmap-initial-sync"; // 避免 SSR/Node 环境提前评估 simple-mind-map 内部依赖 document const loadIconModules = async () => { @@ -1588,14 +1589,15 @@ const MindmapSurfaceView = ({ }, [persistData]); const initialSyncDone = useRef(false); - useEffect(() => { - if (!docId || !mindmap || initialSyncDone.current) return; - initialSyncDone.current = true; - const data = canonicalizeMindmapData( - mindmap.getData?.(true) ?? mindmap.getData?.() ?? initialDataRef.current ?? defaultMindmapData, - ); - (async () => { - try { + useEffect(() => { + if (!docId || !mindmap || initialSyncDone.current) return; + initialSyncDone.current = true; + const data = canonicalizeMindmapData( + mindmap.getData?.(true) ?? mindmap.getData?.() ?? initialDataRef.current ?? defaultMindmapData, + ); + (async () => { + let refreshPayload: ReturnType = null; + try { const resp = await fetch(`/api/mindmap/${docId}/${mindmapId}`, { method: "POST", headers: { "Content-Type": "application/json" }, @@ -1605,19 +1607,18 @@ const MindmapSurfaceView = ({ } else { const payload = (await resp.json().catch(() => null)) as { meta?: MindmapRouteMeta } | null; syncMindmapRouteMeta(payload?.meta); + refreshPayload = buildInitialMindmapAssetRefreshPayload({ + ok: true, + docId, + mindmapId, + }); } } catch {} finally { - // 即便远端失败,也通知侧边栏刷新,保证本地文件树及时更新 - const fileName = `mindmap-${mindmapId}.json`; - emitAssetsChanged(docId, { - id: mindmapId, - document_id: docId, - asset_type: "mindmap", - file_name: fileName, - file_url: `/documents/${docId}/${fileName}`, - }); - } - })(); + if (refreshPayload) { + emitAssetsChanged(docId, refreshPayload); + } + } + })(); }, [docId, mindmap, mindmapId, syncMindmapRouteMeta]); // 初始选中根节点,后续不强制抢焦点,允许用户自由选择 diff --git a/wolai-frontend/src/components/sidebar/asset-context-menu-source.test.ts b/wolai-frontend/src/components/sidebar/asset-context-menu-source.test.ts new file mode 100644 index 00000000..ae5ce7f9 --- /dev/null +++ b/wolai-frontend/src/components/sidebar/asset-context-menu-source.test.ts @@ -0,0 +1,16 @@ +import { describe, expect, it } from "vitest"; +import fs from "node:fs"; +import path from "node:path"; + +const ASSET_CONTEXT_MENU_SOURCE = path.join(process.cwd(), "src/components/sidebar/asset-context-menu.tsx"); + +describe("asset context menu source", () => { + it("删除按钮应把删除语义交给外层,而不是在菜单内硬编码单项 asset id", () => { + const source = fs.readFileSync(ASSET_CONTEXT_MENU_SOURCE, "utf8"); + + expect(source).toContain("onDelete: () => void;"); + expect(source).toContain("onClick={() => onDelete()}"); + expect(source).not.toContain("onDelete: (assetIds: string[]) => void;"); + expect(source).not.toContain("onClick={() => onDelete([asset.id])}"); + }); +}); diff --git a/wolai-frontend/src/components/sidebar/asset-context-menu.tsx b/wolai-frontend/src/components/sidebar/asset-context-menu.tsx index 19950d49..2093d318 100644 --- a/wolai-frontend/src/components/sidebar/asset-context-menu.tsx +++ b/wolai-frontend/src/components/sidebar/asset-context-menu.tsx @@ -1,22 +1,21 @@ -"use client"; - -import { useEffect, useLayoutEffect, useRef, useState } from "react"; -import { Copy, Download, Hash, Link as LinkIcon, Move, PenLine, Trash2 } from "lucide-react"; -import type { MediaAsset } from "@/types/media"; -import { cn } from "@/lib/utils"; - -interface AssetContextMenuProps { - asset: MediaAsset; - position: { x: number; y: number }; - onClose: () => void; +"use client"; + +import { useEffect, useLayoutEffect, useRef, useState } from "react"; +import { Copy, Download, Hash, Link as LinkIcon, Move, PenLine, Trash2 } from "lucide-react"; +import type { MediaAsset } from "@/types/media"; + +interface AssetContextMenuProps { + asset: MediaAsset; + position: { x: number; y: number }; + onClose: () => void; onOpen: (asset: MediaAsset) => void; - onCopyLink: (asset: MediaAsset) => void; - onCopyPath: (asset: MediaAsset) => void; - onRename: (asset: MediaAsset) => void; - onMove: (asset: MediaAsset) => void; - onDelete: (assetIds: string[]) => void; - onDownload: (asset: MediaAsset) => void; -} + onCopyLink: (asset: MediaAsset) => void; + onCopyPath: (asset: MediaAsset) => void; + onRename: (asset: MediaAsset) => void; + onMove: (asset: MediaAsset) => void; + onDelete: () => void; + onDownload: (asset: MediaAsset) => void; +} export function AssetContextMenu({ asset, @@ -93,14 +92,14 @@ export function AssetContextMenu({ 移动到... - +
    ); } diff --git a/wolai-frontend/src/components/sidebar/sidebar-delete-preflight-source.test.ts b/wolai-frontend/src/components/sidebar/sidebar-delete-preflight-source.test.ts index d04c78a3..2aae91fc 100644 --- a/wolai-frontend/src/components/sidebar/sidebar-delete-preflight-source.test.ts +++ b/wolai-frontend/src/components/sidebar/sidebar-delete-preflight-source.test.ts @@ -12,4 +12,20 @@ describe("sidebar file tree delete preflight source", () => { expect(source).toContain("buildFileTreeShellDeletePreflightPayload("); expect(source).not.toContain("computeFileTreeShellDeleteTargets("); }); + + it("filetree DOM host 删除回调应直连 sidebar 删除入口", () => { + const source = fs.readFileSync(SIDEBAR_SOURCE, "utf8"); + + expect(source).toContain("const handleFileTreeShellDeleteSelection = useCallback("); + expect(source).toContain("void handleDeleteResourceSelection(payload);"); + expect(source).toContain("onFileTreeDeleteSelection={handleFileTreeShellDeleteSelection}"); + }); + + it("附件右键菜单删除应复用当前文件树 selection 删除入口", () => { + const source = fs.readFileSync(SIDEBAR_SOURCE, "utf8"); + + expect(source).toContain("const handleDeleteFromAssetContextMenu = useCallback("); + expect(source).toContain('if (viewMode === "filesystem") {'); + expect(source).toContain("await handleDeleteResourceSelection();"); + }); }); diff --git a/wolai-frontend/src/components/sidebar/sidebar-navigation.test.ts b/wolai-frontend/src/components/sidebar/sidebar-navigation.test.ts index 64554e8b..134a42ea 100644 --- a/wolai-frontend/src/components/sidebar/sidebar-navigation.test.ts +++ b/wolai-frontend/src/components/sidebar/sidebar-navigation.test.ts @@ -1,5 +1,8 @@ import { describe, expect, it } from "vitest"; -import { buildSidebarDocumentOpenTarget } from "./sidebar-navigation"; +import { + buildSidebarDocumentOpenTarget, + buildSidebarMindmapOpenTarget, +} from "./sidebar-navigation"; describe("sidebar-navigation", () => { it("页面树普通打开应留在当前窗口", () => { @@ -15,4 +18,18 @@ describe("sidebar-navigation", () => { url: "http://127.0.0.1:3000/documents/doc_1?preview=sidebar", }); }); + + it("文件树里的 mindmap 主打开应进入 mindmap 对象编辑页", () => { + expect(buildSidebarMindmapOpenTarget("doc_1", "mind_1", "main", "http://127.0.0.1:3000")).toEqual({ + kind: "same-window", + path: "/mindmap/doc_1/mind_1", + }); + }); + + it("显式新标签打开 mindmap 也应使用同一对象编辑页", () => { + expect(buildSidebarMindmapOpenTarget("doc_1", "mind_1", "sidebar", "http://127.0.0.1:3000")).toEqual({ + kind: "new-window", + url: "http://127.0.0.1:3000/mindmap/doc_1/mind_1", + }); + }); }); diff --git a/wolai-frontend/src/components/sidebar/sidebar-navigation.ts b/wolai-frontend/src/components/sidebar/sidebar-navigation.ts index 525e9b37..58dd06d4 100644 --- a/wolai-frontend/src/components/sidebar/sidebar-navigation.ts +++ b/wolai-frontend/src/components/sidebar/sidebar-navigation.ts @@ -17,3 +17,18 @@ export function buildSidebarDocumentOpenTarget( const base = origin ? `${origin}${path}` : path; return { kind: "new-window", url: `${base}?preview=sidebar` }; } + +export function buildSidebarMindmapOpenTarget( + documentId: string, + mindmapId: string, + mode: SidebarDocumentOpenMode, + origin?: string | null, +): SidebarDocumentOpenTarget { + const path = `/mindmap/${documentId}/${mindmapId}`; + if (mode === "main") { + return { kind: "same-window", path }; + } + + const url = origin ? `${origin}${path}` : path; + return { kind: "new-window", url }; +} diff --git a/wolai-frontend/src/components/sidebar/sidebar.tsx b/wolai-frontend/src/components/sidebar/sidebar.tsx index 95a8c2a0..33d8fcd6 100644 --- a/wolai-frontend/src/components/sidebar/sidebar.tsx +++ b/wolai-frontend/src/components/sidebar/sidebar.tsx @@ -107,6 +107,7 @@ import { } from "@/components/sidebar/tree-pane-bindings"; import { buildSidebarDocumentOpenTarget, + buildSidebarMindmapOpenTarget, type SidebarDocumentOpenMode, } from "@/components/sidebar/sidebar-navigation"; import type { MediaAsset } from "@/types/media"; @@ -290,6 +291,9 @@ function SidebarContent({ initialData, sidebarData: externalSidebarData, sidebar const mindmapAssetsSyncKeyRef = useRef(buildMediaAssetListSyncKey(sidebarData.mindmapAssets ?? [])); const tableAssetsSyncKeyRef = useRef(buildMediaAssetListSyncKey(sidebarData.tableAssets ?? [])); const pageTreeFocusedDocumentIdRef = useRef(activeId || null); + const resourceRendererSelectionRef = useRef( + createEmptyFileTreeSelectionState(), + ); const resourcePaneContainerRef = useRef(null); const creatingDocumentUnderParentRef = useRef>(new Set()); @@ -870,10 +874,18 @@ function SidebarContent({ initialData, sidebarData: externalSidebarData, sidebar }); }, []); - const handleOpenAsset = useCallback((asset: MediaAsset) => { + const handleOpenAssetInMain = useCallback((asset: MediaAsset) => { if (asset.asset_type === "mindmap") { - router.push(`/mindmap/${asset.document_id}/${asset.id}`); - setOpen(false); + const target = buildSidebarMindmapOpenTarget( + asset.document_id, + asset.id, + "main", + typeof window !== "undefined" ? window.location.origin : null, + ); + if (target.kind === "same-window") { + router.push(target.path); + setOpen(false); + } return; } if (asset.asset_type === "luckysheet") { @@ -949,6 +961,32 @@ function SidebarContent({ initialData, sidebarData: externalSidebarData, sidebar })(); }, [activeId, editorBridge, router, setOpen]); + const handleOpenAssetInNewTab = useCallback((asset: MediaAsset) => { + if (asset.asset_type === "mindmap") { + const target = buildSidebarMindmapOpenTarget( + asset.document_id, + asset.id, + "sidebar", + typeof window !== "undefined" ? window.location.origin : null, + ); + if (target.kind === "new-window" && typeof window !== "undefined") { + window.open(target.url, "_blank", "noopener,noreferrer"); + setOpen(false); + } + return; + } + + if (asset.asset_type === "luckysheet") { + if (typeof window !== "undefined") { + window.open(buildTableUrl(asset.id), "_blank", "noopener,noreferrer"); + } + setOpen(false); + return; + } + + void handleOpenAssetInMain(asset); + }, [handleOpenAssetInMain, setOpen]); + const handleResourcePaneBlankMouseDown = useCallback(() => { setLegacyResourceSelection((prev) => reduceTreePaneSelection(prev, { type: "clear" })); }, []); @@ -998,12 +1036,12 @@ function SidebarContent({ initialData, sidebarData: externalSidebarData, sidebar const handleResourceRowDoubleClick = useCallback( (row: TreePaneRow, _event?: React.MouseEvent) => { if (row.kind === "asset" || row.kind === "asset-folder") { - handleOpenAsset(row.asset); + handleOpenAssetInMain(row.asset); return; } handleOpenDocument(row.docId, "main"); }, - [handleOpenAsset, handleOpenDocument], + [handleOpenAssetInMain, handleOpenDocument], ); const handleResourceRowContextMenu = useCallback( @@ -1129,12 +1167,12 @@ function SidebarContent({ initialData, sidebarData: externalSidebarData, sidebar anchorRowId: string | null; focusedRowId: string | null; }) => { - setResourceRendererSelection( - materializeRendererSelectionSnapshot({ - payload, - hasRowId: (rowId) => resourceShellRowById.has(rowId), - }), - ); + const nextSelection = materializeRendererSelectionSnapshot({ + payload, + hasRowId: (rowId) => resourceShellRowById.has(rowId), + }); + resourceRendererSelectionRef.current = nextSelection; + setResourceRendererSelection(nextSelection); }, [resourceShellRowById], ); @@ -1145,9 +1183,9 @@ function SidebarContent({ initialData, sidebarData: externalSidebarData, sidebar if (!asset) { return; } - handleOpenAsset(asset); + handleOpenAssetInMain(asset); }, - [assetById, handleOpenAsset], + [assetById, handleOpenAssetInMain], ); const handleTreeShellMutation = useCallback(() => { @@ -1581,8 +1619,22 @@ function SidebarContent({ initialData, sidebarData: externalSidebarData, sidebar [mediaAssets, mindmapAssets, refreshTree, tableAssets], ); - const handleDeleteResourceSelection = useCallback(async () => { - const selectedRowIds = Array.from(resourceSelection.selectedRowIds); + const handleDeleteResourceSelection = useCallback(async (selectionOverride?: { + selectedRowIds: string[]; + anchorRowId: string | null; + focusedRowId: string | null; + }) => { + const effectiveSelection = + selectionOverride + ? { + selectedRowIds: new Set(selectionOverride.selectedRowIds), + anchorRowId: selectionOverride.anchorRowId, + focusedRowId: selectionOverride.focusedRowId, + } + : isRustFamilyTreeRenderer + ? resourceRendererSelectionRef.current + : resourceSelection; + const selectedRowIds = Array.from(effectiveSelection.selectedRowIds); let shellDeleteTargets: { docIds: string[]; assetIds: string[]; @@ -1614,7 +1666,7 @@ function SidebarContent({ initialData, sidebarData: externalSidebarData, sidebar const legacyDeleteTargets = !isRustFamilyTreeRenderer ? computeTreePaneDeleteTargets({ visibleRows: resourceRows, - selectedRowIds: resourceSelection.selectedRowIds, + selectedRowIds: effectiveSelection.selectedRowIds, parentById: docParentById, }) : null; @@ -1636,10 +1688,10 @@ function SidebarContent({ initialData, sidebarData: externalSidebarData, sidebar const selectedAssetHints = shellDeleteTargets?.assetHints ?? - Array.from( + Array.from( new Map( resourceRows - .filter((row) => resourceSelection.selectedRowIds.has(row.rowId)) + .filter((row) => effectiveSelection.selectedRowIds.has(row.rowId)) .filter(isAssetRow) .map((row) => [row.asset.id, row.asset] as const), ).values(), @@ -1706,13 +1758,24 @@ function SidebarContent({ initialData, sidebarData: externalSidebarData, sidebar isRustFamilyTreeRenderer, resourceRows, resourceShellRowById, - resourceSelection.selectedRowIds, + resourceSelection, handleDeleteAssets, refreshTree, router, sidebarData.activeWorkspaceId, ]); + const handleFileTreeShellDeleteSelection = useCallback( + (payload: { + selectedRowIds: string[]; + anchorRowId: string | null; + focusedRowId: string | null; + }) => { + void handleDeleteResourceSelection(payload); + }, + [handleDeleteResourceSelection], + ); + const handleResizeStart = useCallback( (event: React.MouseEvent) => { event.preventDefault(); @@ -2116,43 +2179,12 @@ function SidebarContent({ initialData, sidebarData: externalSidebarData, sidebar [handleDelete, handleDeleteResourceSelection, viewMode], ); - const handleDeleteFromAssetContextMenu = useCallback( - async (assetIds: string[], assetHint?: MediaAsset) => { - const uniqueAssetIds = Array.from(new Set(assetIds)); - if (uniqueAssetIds.length === 0) return; - - const assets = uniqueAssetIds - .map((id) => mediaAssets.find((item) => item.id === id) ?? mindmapAssets.find((item) => item.id === id) ?? tableAssets.find((item) => item.id === id)) - .filter(Boolean) as MediaAsset[]; - if (assetHint && !assets.find((item) => item.id === assetHint.id)) { - assets.unshift(assetHint); - } - - const mindmapCount = assets.filter((item) => item.asset_type === "mindmap").length; - const tableCount = assets.filter((item) => item.asset_type === "luckysheet").length; - const fileCount = assets.filter((item) => item.asset_type !== "mindmap" && item.asset_type !== "luckysheet").length; - const unknownCount = Math.max(0, uniqueAssetIds.length - mindmapCount - tableCount - fileCount); - - const parts: string[] = []; - if (fileCount > 0) parts.push(`${fileCount} 个附件(删除,10 分钟内可撤销)`); - if (mindmapCount > 0) parts.push(`${mindmapCount} 个思维导图(删除)`); - if (tableCount > 0) parts.push(`${tableCount} 个在线表格(删除)`); - if (unknownCount > 0) parts.push(`${unknownCount} 个对象(删除)`); - - const ok = window.confirm(`确认删除选中的 ${parts.join(" + ")} 吗?`); - if (!ok) return; - - try { - await handleDeleteAssets(uniqueAssetIds, assetHint); - if (!isRustFamilyTreeRenderer) { - setLegacyResourceSelection((prev) => reduceTreePaneSelection(prev, { type: "clear" })); - } - } catch (error) { - window.alert(error instanceof Error ? error.message : "删除失败"); - } - }, - [handleDeleteAssets, isRustFamilyTreeRenderer, mediaAssets, mindmapAssets, tableAssets], - ); + const handleDeleteFromAssetContextMenu = useCallback(async () => { + if (viewMode === "filesystem") { + await handleDeleteResourceSelection(); + return; + } + }, [handleDeleteResourceSelection, viewMode]); const handleConvertToChild = useCallback( async (documentId: string) => { @@ -2889,6 +2921,7 @@ function SidebarContent({ initialData, sidebarData: externalSidebarData, sidebar onNavigate={handleFileTreeShellNavigate} onFileTreeContextMenu={handleFileTreeShellContextMenu} onFileTreeSelectionChange={handleFileTreeShellSelectionChange} + onFileTreeDeleteSelection={handleFileTreeShellDeleteSelection} onAssetOpen={handleFileTreeShellAssetOpen} onTreeMutation={handleTreeShellMutation} /> @@ -3029,12 +3062,12 @@ function SidebarContent({ initialData, sidebarData: externalSidebarData, sidebar asset={assetMenu.asset} position={{ x: assetMenu.x, y: assetMenu.y }} onClose={() => setAssetMenu(null)} - onOpen={handleOpenAsset} + onOpen={handleOpenAssetInNewTab} onCopyLink={handleCopyAssetLink} onCopyPath={handleCopyAssetPath} onRename={handleRenameAsset} onMove={handleMoveAsset} - onDelete={(assetIds) => void handleDeleteFromAssetContextMenu(assetIds, assetMenu.asset)} + onDelete={() => void handleDeleteFromAssetContextMenu()} onDownload={handleDownloadAsset} /> )} diff --git a/wolai-frontend/src/components/sidebar/tree-shell-dom-host.tsx b/wolai-frontend/src/components/sidebar/tree-shell-dom-host.tsx index 831786e5..5b7b4610 100644 --- a/wolai-frontend/src/components/sidebar/tree-shell-dom-host.tsx +++ b/wolai-frontend/src/components/sidebar/tree-shell-dom-host.tsx @@ -12,11 +12,16 @@ import { type TreeShellPickerItem, } from "@/components/sidebar/tree-shell-dom-model"; import type { + FileTreeShellDeleteSelectionPayload, FileTreeShellExternalDropPayload, FileTreeShellInternalDropPayload, TreeShellHostMode, TreeShellPickerCommand, } from "@/components/sidebar/tree-shell-host"; +import { + normalizeFileTreeSelectionForVisibleRows as normalizeVisibleFileTreeSelection, + reduceFileTreeSelection, +} from "@/lib/file-tree/selection"; import type { KernelFileTreeProjectionItem } from "@/lib/kernel-file-tree"; import type { PageTreeProjectionItem } from "@/lib/tree-projection"; import { cn } from "@/lib/utils"; @@ -91,6 +96,7 @@ type TreeShellRustDomShellHostProps = { anchorRowId: string | null; focusedRowId: string | null; }) => void; + onFileTreeDeleteSelection?: (payload: FileTreeShellDeleteSelectionPayload) => void; onInternalDrop?: (payload: FileTreeShellInternalDropPayload) => void; onDropFiles?: (payload: FileTreeShellExternalDropPayload) => void; onAssetOpen?: (payload: { assetId: string; documentId: string | null }) => void; @@ -201,6 +207,35 @@ function normalizeRuntimeState(result: TreeShellRuntimeResult | null, mode: " return result.state.state as T; } +function areFileTreeSelectionsEqual( + left: FileTreeRuntimeState["selection"], + right: FileTreeRuntimeState["selection"], +) { + if (left.anchorRowId !== right.anchorRowId || left.focusedRowId !== right.focusedRowId) { + return false; + } + if (left.selectedRowIds.length !== right.selectedRowIds.length) { + return false; + } + return left.selectedRowIds.every((rowId, index) => rowId === right.selectedRowIds[index]); +} + +function toLocalSelectionState(selection: FileTreeRuntimeState["selection"]) { + return { + selectedRowIds: new Set(selection.selectedRowIds), + anchorRowId: selection.anchorRowId, + focusedRowId: selection.focusedRowId, + }; +} + +function fromLocalSelectionState(selection: ReturnType) { + return { + selectedRowIds: Array.from(selection.selectedRowIds), + anchorRowId: selection.anchorRowId, + focusedRowId: selection.focusedRowId, + }; +} + async function loadTreeShellRuntimeWasm() { if (!treeShellRuntimeWasmPromise) { treeShellRuntimeWasmPromise = (async () => { @@ -271,6 +306,7 @@ export function TreeShellRustDomShellHost({ onPageFocusChange, onFileTreeContextMenu, onFileTreeSelectionChange, + onFileTreeDeleteSelection, onInternalDrop, onDropFiles, onAssetOpen, @@ -295,6 +331,9 @@ export function TreeShellRustDomShellHost({ activeItemKey: activePickerItemKey, })); const pickerCommandSeqRef = useRef(null); + const fileTreeStateRef = useRef(fileTreeState); + const fileTreeSelectionVersionRef = useRef(0); + const fileTreeSelectionInitializedRef = useRef(false); const pageItems = useMemo(() => { if (mode !== "page") return []; @@ -319,10 +358,7 @@ export function TreeShellRustDomShellHost({ () => new Map(items.map((item) => [item.nodeId, item])), [items], ); - const filetreeItemByRowId = useMemo( - () => new Map(fileTreeItems.map((item) => [toRowId(item), item])), - [fileTreeItems], - ); + const visibleFileTreeRowIds = useMemo(() => fileTreeItems.map(toRowId), [fileTreeItems]); const visiblePageItems = useMemo(() => { const expanded = new Set(pageState.expandedIds); const visible: TreeShellDomProjectionItem[] = []; @@ -426,8 +462,55 @@ export function TreeShellRustDomShellHost({ [childrenByParent, pageItems, pageState, reduceRuntime, visiblePageItems], ); + useEffect(() => { + fileTreeStateRef.current = fileTreeState; + }, [fileTreeState]); + + const updateFileTreeState = useCallback( + (updater: (prev: FileTreeRuntimeState) => FileTreeRuntimeState) => { + let nextStateSnapshot = fileTreeStateRef.current; + setFileTreeState((prev) => { + const nextState = updater(prev); + nextStateSnapshot = nextState; + fileTreeStateRef.current = nextState; + return nextState; + }); + return nextStateSnapshot; + }, + [], + ); + + const commitFileTreeSelection = useCallback( + (nextSelection: FileTreeRuntimeState["selection"]) => { + let changed = false; + const nextState = updateFileTreeState((prev) => { + if (areFileTreeSelectionsEqual(prev.selection, nextSelection)) { + return prev; + } + changed = true; + return { + ...prev, + selection: nextSelection, + }; + }); + fileTreeSelectionInitializedRef.current = true; + if (changed) { + fileTreeSelectionVersionRef.current += 1; + onFileTreeSelectionChange?.(nextSelection); + } + return nextState; + }, + [onFileTreeSelectionChange, updateFileTreeState], + ); + + const readFileTreeState = useCallback(() => fileTreeStateRef.current, []); + const reduceFileTreeAction = useCallback( - async (action: Record, stateSnapshot: FileTreeRuntimeState = fileTreeState) => { + async ( + action: Record, + stateSnapshot: FileTreeRuntimeState = readFileTreeState(), + options?: { selectionVersion?: number }, + ) => { const requestId = `filetree-${Date.now()}-${Math.random().toString(36).slice(2)}`; const result = await reduceRuntime({ mode: "fileTree", @@ -446,13 +529,20 @@ export function TreeShellRustDomShellHost({ }); const nextState = normalizeRuntimeState(result, "fileTree"); if (nextState) { - setFileTreeState(nextState); - onFileTreeSelectionChange?.(nextState.selection); - return { result, state: nextState }; + const shouldApplySelection = + options?.selectionVersion === undefined || options.selectionVersion === fileTreeSelectionVersionRef.current; + const mergedState = updateFileTreeState((prev) => ({ + ...nextState, + selection: shouldApplySelection ? nextState.selection : prev.selection, + })); + if (shouldApplySelection && !areFileTreeSelectionsEqual(stateSnapshot.selection, mergedState.selection)) { + onFileTreeSelectionChange?.(mergedState.selection); + } + return { result, state: mergedState }; } return { result: null, state: stateSnapshot }; }, - [fileTreeItems, fileTreeState, onFileTreeSelectionChange, reduceRuntime], + [fileTreeItems, onFileTreeSelectionChange, readFileTreeState, reduceRuntime, updateFileTreeState], ); const reducePickerAction = useCallback( @@ -645,15 +735,25 @@ export function TreeShellRustDomShellHost({ useEffect(() => { if (mode !== "filetree") return; const selection = buildTreeShellDomFiletreeSelection(activeDocumentId); - setFileTreeState({ + const shouldBackfillSelection = + !fileTreeSelectionInitializedRef.current || readFileTreeState().selection.selectedRowIds.length === 0; + if (shouldBackfillSelection) { + commitFileTreeSelection(selection); + } + updateFileTreeState((prev) => ({ + ...prev, activeRowId: activeDocumentId ? `index:${activeDocumentId}` : null, - selection, - dragRowIds: [], - dragEffect: null, - dropTargetRowId: null, - }); - onFileTreeSelectionChange?.(selection); - }, [activeDocumentId, mode, onFileTreeSelectionChange]); + selection: shouldBackfillSelection ? selection : prev.selection, + })); + }, [activeDocumentId, commitFileTreeSelection, mode, readFileTreeState, updateFileTreeState]); + + useEffect(() => { + if (mode !== "filetree") return; + const normalizedSelection = fromLocalSelectionState( + normalizeVisibleFileTreeSelection(toLocalSelectionState(readFileTreeState().selection), visibleFileTreeRowIds), + ); + commitFileTreeSelection(normalizedSelection); + }, [commitFileTreeSelection, mode, readFileTreeState, visibleFileTreeRowIds]); useEffect(() => { if (mode !== "picker") return; @@ -837,8 +937,17 @@ export function TreeShellRustDomShellHost({ async (item: TreeShellDomProjectionItem, event: MouseEvent) => { event.preventDefault(); const rowId = toRowId(item); - const { state } = await reduceFileTreeAction({ kind: "selectContextRow", rowId }); - const { result } = await reduceFileTreeAction({ kind: "contextMenuRow", rowId }, state); + const state = commitFileTreeSelection( + fromLocalSelectionState( + reduceFileTreeSelection(toLocalSelectionState(readFileTreeState().selection), { + type: "contextmenu", + rowId, + }), + ), + ); + const selectionVersion = fileTreeSelectionVersionRef.current; + void reduceFileTreeAction({ kind: "selectContextRow", rowId }, state, { selectionVersion }); + const { result } = await reduceFileTreeAction({ kind: "contextMenuRow", rowId }, state, { selectionVersion }); applyFileTreeHostEvents(result?.hostEvents, { rowId, rowKind: toShellRowKind(item), @@ -846,13 +955,28 @@ export function TreeShellRustDomShellHost({ y: event.clientY, }); }, - [applyFileTreeHostEvents, reduceFileTreeAction], + [applyFileTreeHostEvents, commitFileTreeSelection, readFileTreeState, reduceFileTreeAction], ); const handleFileTreeSelect = useCallback( - async (item: TreeShellDomProjectionItem, event: MouseEvent) => { + (item: TreeShellDomProjectionItem, event: MouseEvent) => { const rowId = toRowId(item); - await reduceFileTreeAction({ + const state = commitFileTreeSelection( + fromLocalSelectionState( + reduceFileTreeSelection(toLocalSelectionState(readFileTreeState().selection), { + type: "click", + rowId, + visibleRowIds: visibleFileTreeRowIds, + modifiers: { + shiftKey: event.shiftKey, + ctrlKey: event.ctrlKey, + metaKey: event.metaKey, + }, + }), + ), + ); + const selectionVersion = fileTreeSelectionVersionRef.current; + void reduceFileTreeAction({ kind: "selectRow", rowId, modifiers: { @@ -860,9 +984,9 @@ export function TreeShellRustDomShellHost({ ctrlKey: event.ctrlKey, metaKey: event.metaKey, }, - }); + }, state, { selectionVersion }); }, - [reduceFileTreeAction], + [commitFileTreeSelection, readFileTreeState, reduceFileTreeAction, visibleFileTreeRowIds], ); const handleFileTreeKeyDown = useCallback( @@ -889,11 +1013,16 @@ export function TreeShellRustDomShellHost({ if (!action) return; event.preventDefault(); const rowId = toRowId(item); + const currentFileTreeState = readFileTreeState(); + if (action.kind === "deleteSelection") { + onFileTreeDeleteSelection?.(currentFileTreeState.selection); + return; + } const { result } = await reduceFileTreeAction(action, { - ...fileTreeState, + ...currentFileTreeState, selection: { - ...fileTreeState.selection, - focusedRowId: fileTreeState.selection.focusedRowId ?? rowId, + ...currentFileTreeState.selection, + focusedRowId: currentFileTreeState.selection.focusedRowId ?? rowId, }, }); applyFileTreeHostEvents(result?.hostEvents, { @@ -901,7 +1030,7 @@ export function TreeShellRustDomShellHost({ rowKind: toShellRowKind(item), }); }, - [applyFileTreeHostEvents, fileTreeState, reduceFileTreeAction], + [applyFileTreeHostEvents, onFileTreeDeleteSelection, readFileTreeState, reduceFileTreeAction], ); const handleFileTreeDrop = useCallback( @@ -1095,7 +1224,11 @@ export function TreeShellRustDomShellHost({ data-testid="filetree-action-menu" aria-label="更多操作" className="rounded-md px-1 text-gray-400 hover:bg-gray-100 hover:text-gray-700" - onClick={(event) => void handleFileTreeContextMenu(item, event)} + onClick={(event) => { + event.preventDefault(); + event.stopPropagation(); + void handleFileTreeContextMenu(item, event); + }} > … diff --git a/wolai-frontend/src/components/sidebar/tree-shell-host.test.tsx b/wolai-frontend/src/components/sidebar/tree-shell-host.test.tsx index 892627e6..de23d0e1 100644 --- a/wolai-frontend/src/components/sidebar/tree-shell-host.test.tsx +++ b/wolai-frontend/src/components/sidebar/tree-shell-host.test.tsx @@ -1,14 +1,23 @@ import { act } from "react"; import { createRoot, type Root } from "react-dom/client"; -import { afterEach, beforeEach, describe, expect, it } from "vitest"; +import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; +import { TreeShellRustDomShellHost } from "./tree-shell-dom-host"; import { TreeShellHost } from "./tree-shell-host"; +import type { KernelFileTreeProjectionItem } from "@/lib/kernel-file-tree"; (globalThis as typeof globalThis & { IS_REACT_ACT_ENVIRONMENT?: boolean }).IS_REACT_ACT_ENVIRONMENT = true; +type PendingRuntimeRequest = { + request: Record; + resolve: (runtimeResult?: Record | null) => void; +}; + describe("tree-shell-host", () => { let container: HTMLDivElement; let root: Root; let previousLegacyFlag: string | undefined; + let originalFetch: typeof fetch | undefined; + let pendingRuntimeRequests: PendingRuntimeRequest[]; beforeEach(() => { previousLegacyFlag = process.env.NEXT_PUBLIC_TREE_SHELL_LEGACY_IFRAME_HOST; @@ -16,13 +25,35 @@ describe("tree-shell-host", () => { container = document.createElement("div"); document.body.appendChild(container); root = createRoot(container); + originalFetch = global.fetch; + pendingRuntimeRequests = []; + global.fetch = vi.fn((_input: RequestInfo | URL, init?: RequestInit) => { + const request = JSON.parse(String(init?.body ?? "{}")) as Record; + return new Promise((resolve) => { + pendingRuntimeRequests.push({ + request, + resolve: (runtimeResult = null) => { + resolve({ + ok: true, + json: async () => runtimeResult, + } as Response); + }, + }); + }); + }) as typeof fetch; }); afterEach(() => { + pendingRuntimeRequests.splice(0).forEach(({ resolve }) => resolve(null)); act(() => { root.unmount(); }); container.remove(); + if (originalFetch) { + global.fetch = originalFetch; + } else { + delete (globalThis as typeof globalThis & { fetch?: typeof fetch }).fetch; + } if (previousLegacyFlag === undefined) { delete process.env.NEXT_PUBLIC_TREE_SHELL_LEGACY_IFRAME_HOST; } else { @@ -30,6 +61,109 @@ describe("tree-shell-host", () => { } }); + const fileTreeItems: KernelFileTreeProjectionItem[] = [ + { + projectionKind: "file_tree", + rowId: "index:doc_1", + rowKind: "index", + nodeId: "doc_1:index", + parentNodeId: null, + title: "Doc 1 索引", + depth: 0, + childCount: 0, + position: 0, + expandedByDefault: false, + iconHint: "page", + capabilities: ["select"], + resourceMeta: { + resourceKind: "document", + documentId: "doc_1", + workspaceId: "ws_1", + iconHint: "page", + }, + }, + { + projectionKind: "file_tree", + rowId: "index:doc_2", + rowKind: "index", + nodeId: "doc_2:index", + parentNodeId: null, + title: "Doc 2 索引", + depth: 0, + childCount: 0, + position: 1, + expandedByDefault: false, + iconHint: "page", + capabilities: ["select"], + resourceMeta: { + resourceKind: "document", + documentId: "doc_2", + workspaceId: "ws_1", + iconHint: "page", + }, + }, + { + projectionKind: "file_tree", + rowId: "index:doc_3", + rowKind: "index", + nodeId: "doc_3:index", + parentNodeId: null, + title: "Doc 3 索引", + depth: 0, + childCount: 0, + position: 2, + expandedByDefault: false, + iconHint: "page", + capabilities: ["select"], + resourceMeta: { + resourceKind: "document", + documentId: "doc_3", + workspaceId: "ws_1", + iconHint: "page", + }, + }, + ]; + + function queryFileTreeRow(rowId: string) { + return container.querySelector(`[data-row-id="${rowId}"]`) as HTMLElement | null; + } + + function expectSelectedRowIds(rowIds: string[]) { + const selected = Array.from(container.querySelectorAll('[data-shell-mode="filetree"][data-selected="true"]')) + .map((element) => element.getAttribute("data-row-id")) + .filter((rowId): rowId is string => Boolean(rowId)); + expect(selected).toEqual(rowIds); + } + + function renderDomHost(input: { + activeDocumentId?: string | null; + onFileTreeDeleteSelection?: (payload: { + selectedRowIds: string[]; + anchorRowId: string | null; + focusedRowId: string | null; + }) => void; + } = {}) { + act(() => { + root.render( + , + ); + }); + } + + async function flushRuntimeDispatch() { + await act(async () => { + await Promise.resolve(); + await Promise.resolve(); + }); + } + function renderHost() { act(() => { root.render( @@ -79,4 +213,158 @@ describe("tree-shell-host", () => { expect(iframe?.getAttribute("data-tree-browser-bridge")).toBe("iframe_srcdoc"); expect(iframe?.getAttribute("srcdoc")).toContain('"browserBridge":"iframe_srcdoc"'); }); + + it("filetree DOM host 应先本地提交 Ctrl/Shift selection,再异步等 runtime 对账", async () => { + renderDomHost(); + + const row2 = queryFileTreeRow("index:doc_2"); + const row3 = queryFileTreeRow("index:doc_3"); + expect(row2).not.toBeNull(); + expect(row3).not.toBeNull(); + + act(() => { + row2?.dispatchEvent(new MouseEvent("click", { bubbles: true, ctrlKey: true })); + }); + expectSelectedRowIds(["index:doc_2"]); + + act(() => { + row3?.dispatchEvent(new MouseEvent("click", { bubbles: true, shiftKey: true })); + }); + expectSelectedRowIds(["index:doc_2", "index:doc_3"]); + }); + + it("旧 runtime selection 回写不应覆盖更新后的多选,Delete 应使用当前稳定 selection", async () => { + const handleDeleteSelection = vi.fn(); + renderDomHost({ onFileTreeDeleteSelection: handleDeleteSelection }); + + const row2 = queryFileTreeRow("index:doc_2"); + const row3 = queryFileTreeRow("index:doc_3"); + expect(row2).not.toBeNull(); + expect(row3).not.toBeNull(); + + act(() => { + row2?.dispatchEvent(new MouseEvent("click", { bubbles: true, ctrlKey: true })); + }); + await flushRuntimeDispatch(); + act(() => { + row3?.dispatchEvent(new MouseEvent("click", { bubbles: true, ctrlKey: true })); + }); + expectSelectedRowIds(["index:doc_2", "index:doc_3"]); + await flushRuntimeDispatch(); + + act(() => { + pendingRuntimeRequests[0]?.resolve({ + requestId: String(pendingRuntimeRequests[0]?.request.requestId ?? "filetree-stale"), + mode: "fileTree", + state: { + mode: "fileTree", + state: { + activeRowId: null, + selection: { + selectedRowIds: ["index:doc_2"], + anchorRowId: "index:doc_2", + focusedRowId: "index:doc_2", + }, + dragRowIds: [], + dragEffect: null, + dropTargetRowId: null, + }, + }, + }); + }); + await flushRuntimeDispatch(); + expectSelectedRowIds(["index:doc_2", "index:doc_3"]); + + act(() => { + row3?.dispatchEvent(new KeyboardEvent("keydown", { bubbles: true, key: "Delete" })); + }); + await flushRuntimeDispatch(); + + expect(handleDeleteSelection).toHaveBeenCalledTimes(1); + expect(handleDeleteSelection.mock.calls[0]?.[0]).toMatchObject({ + selectedRowIds: ["index:doc_2", "index:doc_3"], + anchorRowId: "index:doc_3", + focusedRowId: "index:doc_3", + }); + }); + + it("Backspace 也应复用当前稳定多选并触发删除回调", async () => { + const handleDeleteSelection = vi.fn(); + renderDomHost({ onFileTreeDeleteSelection: handleDeleteSelection }); + + const row2 = queryFileTreeRow("index:doc_2"); + const row3 = queryFileTreeRow("index:doc_3"); + expect(row2).not.toBeNull(); + expect(row3).not.toBeNull(); + + act(() => { + row2?.dispatchEvent(new MouseEvent("click", { bubbles: true, ctrlKey: true })); + }); + await flushRuntimeDispatch(); + act(() => { + row3?.dispatchEvent(new MouseEvent("click", { bubbles: true, ctrlKey: true })); + }); + expectSelectedRowIds(["index:doc_2", "index:doc_3"]); + + act(() => { + row3?.dispatchEvent(new KeyboardEvent("keydown", { bubbles: true, key: "Backspace" })); + }); + await flushRuntimeDispatch(); + + expect(handleDeleteSelection).toHaveBeenCalledTimes(1); + expect(handleDeleteSelection.mock.calls[0]?.[0]).toMatchObject({ + selectedRowIds: ["index:doc_2", "index:doc_3"], + anchorRowId: "index:doc_3", + focusedRowId: "index:doc_3", + }); + }); + + it("点击行内更多操作时不应因为事件冒泡把多选压成单选", async () => { + renderDomHost(); + + const row2 = queryFileTreeRow("index:doc_2"); + const row3 = queryFileTreeRow("index:doc_3"); + const row3Menu = container.querySelector( + '[data-row-id="index:doc_3"] [data-testid="filetree-action-menu"]', + ) as HTMLElement | null; + expect(row2).not.toBeNull(); + expect(row3).not.toBeNull(); + expect(row3Menu).not.toBeNull(); + + act(() => { + row2?.dispatchEvent(new MouseEvent("click", { bubbles: true, ctrlKey: true })); + }); + act(() => { + row3?.dispatchEvent(new MouseEvent("click", { bubbles: true, ctrlKey: true })); + }); + expectSelectedRowIds(["index:doc_2", "index:doc_3"]); + + act(() => { + row3Menu?.dispatchEvent(new MouseEvent("click", { bubbles: true })); + }); + await flushRuntimeDispatch(); + + expectSelectedRowIds(["index:doc_2", "index:doc_3"]); + }); + + it("activeDocumentId 变化时,已有 filetree selection 不应被无条件重置", () => { + renderDomHost(); + + const row2 = queryFileTreeRow("index:doc_2"); + const row3 = queryFileTreeRow("index:doc_3"); + expect(row2).not.toBeNull(); + expect(row3).not.toBeNull(); + + act(() => { + row2?.dispatchEvent(new MouseEvent("click", { bubbles: true, ctrlKey: true })); + }); + act(() => { + row3?.dispatchEvent(new MouseEvent("click", { bubbles: true, ctrlKey: true })); + }); + expectSelectedRowIds(["index:doc_2", "index:doc_3"]); + + renderDomHost({ activeDocumentId: "doc_1" }); + + expectSelectedRowIds(["index:doc_2", "index:doc_3"]); + }); }); diff --git a/wolai-frontend/src/components/sidebar/tree-shell-host.tsx b/wolai-frontend/src/components/sidebar/tree-shell-host.tsx index 43289a4a..de6fcb26 100644 --- a/wolai-frontend/src/components/sidebar/tree-shell-host.tsx +++ b/wolai-frontend/src/components/sidebar/tree-shell-host.tsx @@ -40,6 +40,12 @@ export type FileTreeShellExternalDropPayload = { files: FileList | File[]; }; +export type FileTreeShellDeleteSelectionPayload = { + selectedRowIds: string[]; + anchorRowId: string | null; + focusedRowId: string | null; +}; + type TreeShellHostProps = { mode: TreeShellHostMode; surfaceTestId: string; @@ -79,6 +85,7 @@ type TreeShellHostProps = { anchorRowId: string | null; focusedRowId: string | null; }) => void; + onFileTreeDeleteSelection?: (payload: FileTreeShellDeleteSelectionPayload) => void; onInternalDrop?: (payload: FileTreeShellInternalDropPayload) => void; onDropFiles?: (payload: FileTreeShellExternalDropPayload) => void; onAssetOpen?: (payload: { assetId: string; documentId: string | null }) => void; @@ -114,6 +121,7 @@ export function TreeShellHost({ onPageFocusChange, onFileTreeContextMenu, onFileTreeSelectionChange, + onFileTreeDeleteSelection, onInternalDrop, onDropFiles, onAssetOpen, @@ -181,6 +189,7 @@ export function TreeShellHost({ onPageFocusChange={onPageFocusChange} onFileTreeContextMenu={onFileTreeContextMenu} onFileTreeSelectionChange={onFileTreeSelectionChange} + onFileTreeDeleteSelection={onFileTreeDeleteSelection} onInternalDrop={onInternalDrop} onDropFiles={onDropFiles} onAssetOpen={onAssetOpen} @@ -211,6 +220,7 @@ export function TreeShellHost({ onPageFocusChange={onPageFocusChange} onFileTreeContextMenu={onFileTreeContextMenu} onFileTreeSelectionChange={onFileTreeSelectionChange} + onFileTreeDeleteSelection={onFileTreeDeleteSelection} onInternalDrop={onInternalDrop} onDropFiles={onDropFiles} onAssetOpen={onAssetOpen} diff --git a/wolai-frontend/src/components/sidebar/tree-shell-surface.tsx b/wolai-frontend/src/components/sidebar/tree-shell-surface.tsx index 29686ae3..257a97ff 100644 --- a/wolai-frontend/src/components/sidebar/tree-shell-surface.tsx +++ b/wolai-frontend/src/components/sidebar/tree-shell-surface.tsx @@ -3,6 +3,7 @@ import type { DragEvent, MouseEvent } from "react"; import { TreeShellHost, + type FileTreeShellDeleteSelectionPayload, type FileTreeShellExternalDropPayload, type FileTreeShellInternalDropPayload, type TreeShellPickerCommand, @@ -71,6 +72,7 @@ type SidebarFileTreeSurfaceProps = { anchorRowId: string | null; focusedRowId: string | null; }) => void; + onFileTreeDeleteSelection?: (payload: FileTreeShellDeleteSelectionPayload) => void; onAssetOpen?: (payload: { assetId: string; documentId: string | null }) => void; onTreeMutation?: (payload: { type: string; documentId: string | null }) => void; }; @@ -153,6 +155,7 @@ export function SidebarTreeSurface(props: SidebarTreeSurfaceProps) { onPageFocusChange={props.mode === "page" ? props.onPageFocusChange : undefined} onFileTreeContextMenu={props.mode === "filetree" ? props.onFileTreeContextMenu : undefined} onFileTreeSelectionChange={props.mode === "filetree" ? props.onFileTreeSelectionChange : undefined} + onFileTreeDeleteSelection={props.mode === "filetree" ? props.onFileTreeDeleteSelection : undefined} onInternalDrop={props.mode === "filetree" ? props.onInternalDrop : undefined} onDropFiles={props.mode === "filetree" ? props.onDropFiles : undefined} onAssetOpen={props.mode === "filetree" ? props.onAssetOpen : undefined} diff --git a/wolai-frontend/src/components/sidebar/use-preferred-sidebar-snapshot.test.tsx b/wolai-frontend/src/components/sidebar/use-preferred-sidebar-snapshot.test.tsx index e262fed2..b2ac9557 100644 --- a/wolai-frontend/src/components/sidebar/use-preferred-sidebar-snapshot.test.tsx +++ b/wolai-frontend/src/components/sidebar/use-preferred-sidebar-snapshot.test.tsx @@ -72,7 +72,7 @@ describe("usePreferredSidebarSnapshot", () => { container.remove(); }); - it("tree stream live 时即使 query 更新也应继续优先使用 stream 快照", async () => { + it("tree stream 仍停在 initial 时,query 新快照不应被旧 stream 压住", async () => { const initialData = buildSidebarData([buildDocument({ title: "标题 A" })]); const staleTreeStream = buildSidebarData([buildDocument({ title: "标题 A" })]); const refreshedQuery = buildSidebarData([ @@ -81,6 +81,12 @@ describe("usePreferredSidebarSnapshot", () => { updated_at: "2026-04-21T00:00:01.000Z", }), ]); + const caughtUpTreeStream = buildSidebarData([ + buildDocument({ + title: "标题 B", + updated_at: "2026-04-21T00:00:01.000Z", + }), + ]); await act(async () => { root.render( { ); }); + expect(onState.mock.lastCall?.[0]).toMatchObject({ + source: "query", + data: expect.objectContaining({ + kernelSidebarTree: [expect.objectContaining({ title: "标题 B" })], + }), + }); + + await act(async () => { + root.render( + , + ); + }); + expect(onState.mock.lastCall?.[0]).toMatchObject({ source: "tree_stream", data: expect.objectContaining({ - kernelSidebarTree: [expect.objectContaining({ title: "标题 A" })], + kernelSidebarTree: [expect.objectContaining({ title: "标题 B" })], }), }); }); diff --git a/wolai-frontend/src/components/sidebar/use-preferred-sidebar-snapshot.ts b/wolai-frontend/src/components/sidebar/use-preferred-sidebar-snapshot.ts index d64dca2e..7b56131c 100644 --- a/wolai-frontend/src/components/sidebar/use-preferred-sidebar-snapshot.ts +++ b/wolai-frontend/src/components/sidebar/use-preferred-sidebar-snapshot.ts @@ -20,8 +20,16 @@ export function usePreferredSidebarSnapshot(input: { ); const initialSyncKey = useMemo(() => buildSidebarDataSyncKey(input.initialData), [input.initialData]); const streamIsPreferred = input.treeStreamStatus !== "fallback"; + const queryHasFreshSnapshot = + input.sidebarQueryData != null && + querySyncKey != null && + querySyncKey !== initialSyncKey && + treeStreamSyncKey === initialSyncKey; const source = useMemo(() => { + if (queryHasFreshSnapshot) { + return "query"; + } if (input.treeStreamData && streamIsPreferred) { return "tree_stream"; } @@ -32,6 +40,7 @@ export function usePreferredSidebarSnapshot(input: { }, [ input.sidebarQueryData, input.treeStreamData, + queryHasFreshSnapshot, streamIsPreferred, ]); diff --git a/wolai-frontend/src/lib/documents/document-visibility.test.ts b/wolai-frontend/src/lib/documents/document-visibility.test.ts new file mode 100644 index 00000000..03f2e78b --- /dev/null +++ b/wolai-frontend/src/lib/documents/document-visibility.test.ts @@ -0,0 +1,47 @@ +import { describe, expect, it } from "vitest"; +import { buildVisibleDocumentIds } from "../../../convex/_utils/documentVisibility"; + +describe("buildVisibleDocumentIds", () => { + const docs = [ + { id: "owner-root", user_id: "u1", parent_id: null, access_scope: "private", deleted_at: null }, + { id: "public-root", user_id: "u2", parent_id: null, access_scope: "public", deleted_at: null }, + { id: "shared-root", user_id: "u2", parent_id: null, access_scope: "private", deleted_at: null }, + { id: "shared-child", user_id: "u2", parent_id: "shared-root", access_scope: "private", deleted_at: null }, + { id: "group-root", user_id: "u3", parent_id: null, access_scope: "private", deleted_at: null }, + { id: "group-child", user_id: "u3", parent_id: "group-root", access_scope: "private", deleted_at: null }, + { id: "deleted-public", user_id: "u4", parent_id: null, access_scope: "public", deleted_at: "2026-05-12T00:00:00.000Z" }, + ] as const; + + it("允许 owner、public、直接分享与继承分享的文档可见", () => { + const visible = buildVisibleDocumentIds({ + userId: "u1", + docs, + directShares: [{ document_id: "shared-root", include_descendants: true }], + directGroupShares: [], + }); + + expect(Array.from(visible).sort()).toEqual([ + "owner-root", + "public-root", + "shared-child", + "shared-root", + ]); + }); + + it("允许群组分享向下继承,但不会包含已删除文档", () => { + const visible = buildVisibleDocumentIds({ + userId: "u9", + docs, + directShares: [], + directGroupShares: [{ document_id: "group-root", include_descendants: true }], + includeDeletedDocuments: false, + }); + + expect(Array.from(visible).sort()).toEqual([ + "group-child", + "group-root", + "public-root", + ]); + expect(visible.has("deleted-public")).toBe(false); + }); +}); diff --git a/wolai-frontend/src/lib/documents/save-contract.test.ts b/wolai-frontend/src/lib/documents/save-contract.test.ts index f383b0da..7e422ae1 100644 --- a/wolai-frontend/src/lib/documents/save-contract.test.ts +++ b/wolai-frontend/src/lib/documents/save-contract.test.ts @@ -130,6 +130,58 @@ describe("buildDocumentSavePayload", () => { }); }); + it("保留 mindmap 引用骨架,不把图数据保存成文档块真源", () => { + const payload = buildDocumentSavePayload({ + documentId: "doc_1", + workspaceId: "ws_1", + tiptapDocument: { + type: "doc", + content: [ + { + type: "paragraph", + attrs: { + blockId: "mind_block_1", + mindmapId: "mindmap_1", + mnoteBlockType: "mindmap", + projectionVersion: 1, + rootNodeId: "root", + }, + }, + ], + }, + }); + + expect(payload.editorDocument).toEqual({ + documentId: "doc_1", + rootBlockIds: ["mind_block_1"], + blocks: [ + { + blockId: "mind_block_1", + blockType: "mindmap", + props: { + mindmapId: "mindmap_1", + rootNodeId: "root", + projectionVersion: 1, + }, + contentNodes: [], + childBlockIds: [], + }, + ], + }); + expect(payload.content).toEqual([ + { + id: "mind_block_1", + type: "mindmap", + props: { + mindmapId: "mindmap_1", + rootNodeId: "root", + projectionVersion: 1, + }, + content: "", + }, + ]); + }); + it("保留正文快照采集元数据", () => { const payload = buildDocumentSavePayload({ documentId: "doc_1", diff --git a/wolai-frontend/src/lib/documents/tiptap-content-converter.test.ts b/wolai-frontend/src/lib/documents/tiptap-content-converter.test.ts index 82233c5b..cecd09ae 100644 --- a/wolai-frontend/src/lib/documents/tiptap-content-converter.test.ts +++ b/wolai-frontend/src/lib/documents/tiptap-content-converter.test.ts @@ -219,7 +219,7 @@ describe("tiptap-content-converter", () => { ]); }); - it("保留 slash 插入的 mindmap placeholder 骨架为 mindmap legacy block", () => { + it("保留 mindmap 引用骨架为 mindmap legacy block,不把图数据写回文档块", () => { const tiptapDoc = { type: "doc" as const, content: [ @@ -228,6 +228,9 @@ describe("tiptap-content-converter", () => { attrs: { blockId: "mind_1", mnoteBlockType: "mindmap", + mindmapId: "mindmap_1", + rootNodeId: "root", + projectionVersion: 1, mnoteMindmapData: { data: { uid: "root", text: "KMIND", generalization: { text: "概要" } }, children: [ @@ -251,19 +254,48 @@ describe("tiptap-content-converter", () => { id: "mind_1", type: "mindmap", props: { - data: { - data: { uid: "root", text: "KMIND", generalization: { text: "概要" } }, - children: [ - { - data: { uid: "topic", text: "二级节点" }, - children: [ - { data: { uid: "branch-1", text: "分支主题" }, children: [] }, - { data: { uid: "branch-2", text: "分支主题" }, children: [] }, - ], - }, - ], + mindmapId: "mindmap_1", + rootNodeId: "root", + projectionVersion: 1, + }, + content: "", + }, + ]); + }); + + it("读取旧 mindmap block 时只迁移引用字段,丢弃 props.data 作为块真源", () => { + const tiptapDoc = tiptapDocFromBlocks([ + { + id: "mind_legacy", + type: "mindmap", + props: { + data: { id: "mindmap_from_legacy_data", rootNodeId: "root_from_data" }, + }, + }, + ] as never); + + expect(tiptapDoc).toEqual({ + type: "doc", + content: [ + { + type: "paragraph", + attrs: { + blockId: "mind_legacy", + mnoteBlockType: "mindmap", + mindmapId: "mindmap_from_legacy_data", + rootNodeId: "root_from_data", }, }, + ], + }); + expect(blocksFromTiptapDoc(tiptapDoc)).toEqual([ + { + id: "mind_legacy", + type: "mindmap", + props: { + mindmapId: "mindmap_from_legacy_data", + rootNodeId: "root_from_data", + }, content: "", }, ]); diff --git a/wolai-frontend/src/lib/documents/tiptap-content-converter.ts b/wolai-frontend/src/lib/documents/tiptap-content-converter.ts index f1709791..e881e396 100644 --- a/wolai-frontend/src/lib/documents/tiptap-content-converter.ts +++ b/wolai-frontend/src/lib/documents/tiptap-content-converter.ts @@ -47,7 +47,9 @@ export type EditorBlock = { headingLevel?: number | null; checked?: boolean | null; language?: string | null; - data?: unknown; + mindmapId?: string | null; + rootNodeId?: string | null; + projectionVersion?: number | null; }; contentNodes?: EditorContentNode[]; childBlockIds?: string[]; @@ -178,6 +180,39 @@ function normalizeBlockId(value: unknown, fallback: string): string { return raw || fallback; } +function optionalText(value: unknown): string | null { + const raw = typeof value === "string" ? value.trim() : ""; + return raw || null; +} + +function mindmapReferenceProps( + attrsOrProps: Record | undefined, + fallbackMindmapId: string, +): NonNullable { + const data = attrsOrProps?.data && typeof attrsOrProps.data === "object" + ? attrsOrProps.data as Record + : {}; + const mindmapId = + optionalText(attrsOrProps?.mindmapId) ?? + optionalText(attrsOrProps?.mindmap_id) ?? + optionalText(data.mindmapId) ?? + optionalText(data.mindmap_id) ?? + optionalText(data.id) ?? + fallbackMindmapId; + const rootNodeId = + optionalText(attrsOrProps?.rootNodeId) ?? + optionalText(attrsOrProps?.root_node_id) ?? + optionalText(data.rootNodeId) ?? + optionalText(data.root_node_id) ?? + "root"; + const projectionVersion = Number(attrsOrProps?.projectionVersion ?? attrsOrProps?.projection_version); + return { + mindmapId, + rootNodeId, + ...(Number.isFinite(projectionVersion) ? { projectionVersion } : {}), + }; +} + function normalizeEditorContentNodes(input: unknown): EditorContentNode[] { if (Array.isArray(input)) { const nodes = input.flatMap((item) => { @@ -252,7 +287,7 @@ function normalizeLegacyBlock(block: LegacyBlockLike, index: number): EditorBloc return { blockId, blockType: "mindmap", - props: { data: props.data ?? block.content }, + props: mindmapReferenceProps(props, blockId), contentNodes: [], childBlockIds: [], }; @@ -378,9 +413,8 @@ function blockToTiptapNode(block: EditorBlock): TiptapNode { attrs: { ...commonAttrs, mnoteBlockType: "mindmap", - mnoteMindmapData: block.props?.data ?? null, + ...mindmapReferenceProps(block.props, block.blockId), }, - content: textNodesToInline(block.contentNodes), }; case "paragraph": default: @@ -433,7 +467,7 @@ function tiptapNodeToBlock(node: TiptapNode, index: number): EditorBlock | null return { blockId, blockType: "mindmap", - props: { data: node.attrs.mnoteMindmapData }, + props: mindmapReferenceProps(node.attrs, blockId), contentNodes: [], childBlockIds: [], }; @@ -623,7 +657,7 @@ export function legacyBlocksFromEditorBlockDocument(document: EditorBlockDocumen : block.blockType === "code_block" ? { language: block.props?.language ?? null } : block.blockType === "mindmap" - ? { data: block.props?.data ?? null } + ? mindmapReferenceProps(block.props, block.blockId) : undefined, content: block.blockType === "mindmap" ? "" : legacyContentFromNodes(block.contentNodes), })); diff --git a/wolai-frontend/src/lib/mindmap/leptos-mindmap-adapter.test.ts b/wolai-frontend/src/lib/mindmap/leptos-mindmap-adapter.test.ts index 8a228215..10751701 100644 --- a/wolai-frontend/src/lib/mindmap/leptos-mindmap-adapter.test.ts +++ b/wolai-frontend/src/lib/mindmap/leptos-mindmap-adapter.test.ts @@ -4,6 +4,7 @@ import { createMindmapCommandApplyEndpoint, executeMindmapCommandApply, executeMindmapCommandApplyAndRefreshProjection, + executeMindmapDataPutAndRefreshProjection, isMindmapAdapterProjection, requestMindmapAdapterProjection, } from "./leptos-mindmap-adapter"; @@ -87,6 +88,23 @@ describe("leptos-mindmap adapter projection", () => { commands: [{ type: "deleteNode", mindmapId: "mind_1", nodeId: "node_1" }], fetcher, }), - ).rejects.toMatchObject({ code: "command_failed", status: 409 }); + ).rejects.toMatchObject({ code: "command_failed", status: 409, message: "command_failed:409:revision_conflict" }); + }); + + it("data put 失败时透出 route 错误细节", async () => { + const fetcher = vi.fn(async () => ({ + ok: false, + status: 400, + json: async () => ({ error: "mindmap_put_failed", details: ["missing_root_uid"] }), + })) as unknown as typeof fetch; + + await expect( + executeMindmapDataPutAndRefreshProjection({ + documentId: "doc_1", + mindmapId: "mind_1", + data: { data: { text: "中心主题" }, children: [] }, + fetcher, + }), + ).rejects.toMatchObject({ code: "command_failed", status: 400, message: "command_failed:400:mindmap_put_failed" }); }); }); diff --git a/wolai-frontend/src/lib/mindmap/leptos-mindmap-adapter.ts b/wolai-frontend/src/lib/mindmap/leptos-mindmap-adapter.ts index b541097c..57acfef8 100644 --- a/wolai-frontend/src/lib/mindmap/leptos-mindmap-adapter.ts +++ b/wolai-frontend/src/lib/mindmap/leptos-mindmap-adapter.ts @@ -38,6 +38,15 @@ export type MindmapCommandApplyInput = { fetcher?: typeof fetch; }; +export type MindmapDataPutInput = { + documentId: string; + mindmapId: string; + data: unknown; + projectionEndpoint?: string; + endpoint?: string; + fetcher?: typeof fetch; +}; + export type MindmapCommandApplyResult = { ok: true; kernelRevision: number | null; @@ -59,6 +68,32 @@ export class MindmapCommandBridgeError extends Error { const isRecord = (value: unknown): value is Record => typeof value === "object" && value !== null && !Array.isArray(value); +const readErrorDetailFromPayload = (raw: unknown): string => { + if (!isRecord(raw)) return ""; + const detail = [raw.error, raw.message, raw.details] + .map((value) => { + if (typeof value === "string") return value.trim(); + if (Array.isArray(value) && value.length > 0) return value.join("|"); + return ""; + }) + .find(Boolean); + return detail ? `:${detail}` : ""; +}; + +const readErrorDetail = async (response: Response): Promise => { + if (typeof response.text !== "function") { + const raw = (await response.json().catch(() => null)) as unknown; + return readErrorDetailFromPayload(raw); + } + const rawText = await response.text().catch(() => ""); + if (!rawText.trim()) return ""; + try { + return readErrorDetailFromPayload(JSON.parse(rawText) as unknown) || `:${rawText.trim()}`; + } catch { + return `:${rawText.trim()}`; + } +}; + export const isMindmapAdapterProjection = (value: unknown): value is MindmapAdapterProjection => { if (!isRecord(value)) return false; return ( @@ -122,23 +157,29 @@ export const executeMindmapCommandApply = async ( } const fetcher = input.fetcher ?? fetch; const endpoint = input.endpoint ?? createMindmapCommandApplyEndpoint(input.documentId, input.mindmapId); + const requestBody = JSON.stringify({ + commandName: "mindmap.command.apply", + documentId: input.documentId, + mindmapId: input.mindmapId, + commands: input.commands, + projectionRevision: input.projectionRevision ?? null, + }); const response = await fetcher(endpoint, { method: "POST", + keepalive: requestBody.length <= 60_000, headers: { Accept: "application/json", "Content-Type": "application/json", }, - body: JSON.stringify({ - commandName: "mindmap.command.apply", - documentId: input.documentId, - mindmapId: input.mindmapId, - commands: input.commands, - projectionRevision: input.projectionRevision ?? null, - }), + body: requestBody, }); const raw = (await response.json().catch(() => null)) as unknown; if (!response.ok) { - throw new MindmapCommandBridgeError(`command_failed:${response.status}`, response.status); + const detail = readErrorDetailFromPayload(raw); + throw new MindmapCommandBridgeError( + `command_failed:${response.status}${detail}`, + response.status, + ); } return { ok: true, @@ -159,6 +200,35 @@ export const executeMindmapCommandApplyAndRefreshProjection = async ( }); }; +export const executeMindmapDataPutAndRefreshProjection = async ( + input: MindmapDataPutInput, +): Promise => { + const fetcher = input.fetcher ?? fetch; + const endpoint = input.endpoint ?? createMindmapCommandApplyEndpoint(input.documentId, input.mindmapId); + const response = await fetcher(endpoint, { + method: "POST", + headers: { + Accept: "application/json", + "Content-Type": "application/json", + }, + body: JSON.stringify({ + data: input.data, + createOnly: false, + }), + }); + if (!response.ok) { + const detail = await readErrorDetail(response); + throw new MindmapCommandBridgeError(`command_failed:${response.status}${detail}`, response.status); + } + await response.json().catch(() => null); + return requestMindmapAdapterProjection({ + documentId: input.documentId, + mindmapId: input.mindmapId, + endpoint: input.projectionEndpoint, + fetcher, + }); +}; + export const createLeptosMindmapAdapter = async ( input: LeptosMindmapAdapterOptions, ): Promise => { diff --git a/wolai-frontend/src/lib/mindmap/mindmap-action-map.test.ts b/wolai-frontend/src/lib/mindmap/mindmap-action-map.test.ts index 429ab37c..be1a02ff 100644 --- a/wolai-frontend/src/lib/mindmap/mindmap-action-map.test.ts +++ b/wolai-frontend/src/lib/mindmap/mindmap-action-map.test.ts @@ -28,7 +28,7 @@ describe("mindmap action map", () => { }, }); expect(mapMindmapActionToCommand({ actionId: "deleteNode", mindmapId: "mind_1", activeNodeId: "node_1" })).toEqual({ - runtimeCommand: "DELETE_NODE", + runtimeCommand: "REMOVE_NODE", command: { type: "deleteNode", mindmapId: "mind_1", nodeId: "node_1" }, }); }); @@ -38,6 +38,21 @@ describe("mindmap action map", () => { expect(getMindmapActionMapping("zoomIn")).toMatchObject({ target: "localView", runtimeMethod: "zoomIn" }); expect(getMindmapActionMapping("zoomOut")).toMatchObject({ target: "localView", runtimeMethod: "zoomOut" }); expect(getMindmapActionMapping("fitView")).toMatchObject({ target: "localView", runtimeMethod: "fitView" }); + expect(getMindmapActionMapping("fullscreenCanvas")).toMatchObject({ target: "localView", requiresActiveNode: false }); + expect(getMindmapActionMapping("fullscreenPage")).toMatchObject({ target: "localView", requiresActiveNode: false }); + expect(getMindmapActionMapping("exitFullscreen")).toMatchObject({ target: "localView", requiresActiveNode: false }); + expect(getMindmapActionMapping("showMenu")).toMatchObject({ target: "localView", requiresActiveNode: false }); + }); + + it("全屏动作不产生 kernel command,readonly 下仍可使用", () => { + expect(mapMindmapActionToCommand({ actionId: "fullscreenCanvas", mindmapId: "mind_1" })).toEqual({}); + expect(mapMindmapActionToCommand({ actionId: "fullscreenPage", mindmapId: "mind_1" })).toEqual({}); + expect(mapMindmapActionToCommand({ actionId: "exitFullscreen", mindmapId: "mind_1" })).toEqual({}); + expect(mapMindmapActionToCommand({ actionId: "showMenu", mindmapId: "mind_1" })).toEqual({}); + expect(getMindmapActionMapping("fullscreenCanvas")).toMatchObject({ readonlyAllowed: true }); + expect(getMindmapActionMapping("fullscreenPage")).toMatchObject({ readonlyAllowed: true }); + expect(getMindmapActionMapping("exitFullscreen")).toMatchObject({ readonlyAllowed: true }); + expect(getMindmapActionMapping("showMenu")).toMatchObject({ readonlyAllowed: true }); }); it("把主题、结构和扩展字段映射到 kernel/compat", () => { diff --git a/wolai-frontend/src/lib/mindmap/mindmap-action-map.ts b/wolai-frontend/src/lib/mindmap/mindmap-action-map.ts index a9178cc0..96c8a2ef 100644 --- a/wolai-frontend/src/lib/mindmap/mindmap-action-map.ts +++ b/wolai-frontend/src/lib/mindmap/mindmap-action-map.ts @@ -46,11 +46,11 @@ const nodeDataPath = (field: string) => (activeNodeId: string | null): string | const mappings: MindmapActionMapping[] = [ { actionId: "undo", target: "runtimeCommand", runtimeCommand: "BACK", requiresActiveNode: false, readonlyAllowed: false }, { actionId: "redo", target: "runtimeCommand", runtimeCommand: "FORWARD", requiresActiveNode: false, readonlyAllowed: false }, - { actionId: "editNode", target: "kernelCommand", requiresActiveNode: true, readonlyAllowed: false }, + { actionId: "editNode", target: "localView", requiresActiveNode: true, readonlyAllowed: false }, { actionId: "insertSiblingAfter", target: "runtimeCommand", runtimeCommand: "INSERT_NODE", requiresActiveNode: true, readonlyAllowed: false }, { actionId: "insertChild", target: "runtimeCommand", runtimeCommand: "INSERT_CHILD_NODE", requiresActiveNode: true, readonlyAllowed: false }, - { actionId: "deleteNode", target: "runtimeCommand", runtimeCommand: "DELETE_NODE", requiresActiveNode: true, readonlyAllowed: false }, - { actionId: "summary", target: "compatPatch", runtimeCommand: "ADD_GENERALIZATION", requiresActiveNode: true, readonlyAllowed: false }, + { actionId: "deleteNode", target: "runtimeCommand", runtimeCommand: "REMOVE_NODE", requiresActiveNode: true, readonlyAllowed: false }, + { actionId: "summary", target: "runtimeCommand", runtimeCommand: "ADD_GENERALIZATION", requiresActiveNode: true, readonlyAllowed: false }, { actionId: "associativeLine", target: "compatPatch", runtimeCommand: "ADD_ASSOCIATIVE_LINE", requiresActiveNode: true, readonlyAllowed: false }, { actionId: "setTheme", target: "kernelCommand", requiresActiveNode: false, readonlyAllowed: false }, { actionId: "setLayout", target: "kernelCommand", requiresActiveNode: false, readonlyAllowed: false }, @@ -67,7 +67,11 @@ const mappings: MindmapActionMapping[] = [ { actionId: "zoomIn", target: "localView", runtimeMethod: "zoomIn", requiresActiveNode: false, readonlyAllowed: true }, { actionId: "zoomOut", target: "localView", runtimeMethod: "zoomOut", requiresActiveNode: false, readonlyAllowed: true }, { actionId: "fitView", target: "localView", runtimeMethod: "fitView", requiresActiveNode: false, readonlyAllowed: true }, + { actionId: "fullscreenCanvas", target: "localView", requiresActiveNode: false, readonlyAllowed: true }, + { actionId: "fullscreenPage", target: "localView", requiresActiveNode: false, readonlyAllowed: true }, + { actionId: "exitFullscreen", target: "localView", requiresActiveNode: false, readonlyAllowed: true }, { actionId: "search", target: "localView", requiresActiveNode: false, readonlyAllowed: true }, + { actionId: "showMenu", target: "localView", requiresActiveNode: false, readonlyAllowed: true }, { actionId: "expandCollapse", target: "localView", requiresActiveNode: true, readonlyAllowed: false }, { actionId: "copyNodeText", target: "localView", requiresActiveNode: true, readonlyAllowed: true }, { actionId: "readonly", target: "localView", requiresActiveNode: false, readonlyAllowed: true }, diff --git a/wolai-frontend/src/lib/mindmap/mindmap-command-apply-local.test.ts b/wolai-frontend/src/lib/mindmap/mindmap-command-apply-local.test.ts new file mode 100644 index 00000000..5a1651bb --- /dev/null +++ b/wolai-frontend/src/lib/mindmap/mindmap-command-apply-local.test.ts @@ -0,0 +1,121 @@ +import { describe, expect, it } from "vitest"; +import { + applyMindmapCommandsLocally, + applyMetadataOnlyMindmapCommands, + isLocallyApplicableMindmapCommandSet, + isMetadataOnlyMindmapCommandSet, +} from "./mindmap-command-apply-local"; + +describe("mindmap command apply local", () => { + it("识别 metadata-only 命令集合", () => { + expect( + isMetadataOnlyMindmapCommandSet([ + { type: "setLayout", mindmapId: "mind_1", layout: "mindMap" }, + { type: "setTheme", mindmapId: "mind_1", theme: "dark" }, + { type: "patchView", mindmapId: "mind_1", patch: { state: { scale: 1.2 } } }, + { type: "compatPayloadPatch", mindmapId: "mind_1", path: "root.data.fillColor", value: "#dbeafe" }, + ]), + ).toBe(true); + expect( + isMetadataOnlyMindmapCommandSet([ + { type: "insertChild", mindmapId: "mind_1", parentNodeId: "root", node: { text: "新节点" } }, + ]), + ).toBe(false); + }); + + it("把 layout/theme/view/compat patch 合并回完整 mindmap blob", () => { + const result = applyMetadataOnlyMindmapCommands( + { + data: { uid: "root", text: "KMIND" }, + children: [{ data: { uid: "node_1", text: "子节点" }, children: [] }], + layout: "logicalStructure", + theme: "classic", + themeConfig: { lineColor: "#60a5fa" }, + view: { state: { scale: 1 } }, + compatPayload: { source: "compat-blob" }, + }, + [ + { type: "setLayout", mindmapId: "mind_1", layout: "mindMap" }, + { type: "setTheme", mindmapId: "mind_1", theme: "dark" }, + { type: "patchView", mindmapId: "mind_1", patch: { state: { scale: 1.25, x: 10 } } }, + { type: "compatPayloadPatch", mindmapId: "mind_1", path: "nodes.node_1.data.fillColor", value: "#dbeafe" }, + { type: "compatPayloadPatch", mindmapId: "mind_1", path: "style.map.backgroundColor", value: "#0f172a" }, + ], + ); + + expect(result.errors).toEqual([]); + expect(result.applied).toBe(5); + expect(result.data.layout).toBe("mindMap"); + expect(result.data.theme).toBe("dark"); + expect(result.data.view).toEqual({ state: { scale: 1.25, x: 10 } }); + expect(result.data.children[0].data.fillColor).toBe("#dbeafe"); + expect(result.data.compatPayload).toEqual({ + source: "compat-blob", + style: { + map: { + backgroundColor: "#0f172a", + }, + }, + }); + }); + + it("识别可本地应用的结构命令集合", () => { + expect( + isLocallyApplicableMindmapCommandSet([ + { type: "updateText", mindmapId: "mind_1", nodeId: "node_1", text: "改名" }, + { type: "insertChild", mindmapId: "mind_1", parentNodeId: "node_1", node: { uid: "node_2", text: "子节点" } }, + { type: "insertSiblingAfter", mindmapId: "mind_1", targetNodeId: "node_1", node: { uid: "node_3", text: "同级" } }, + { type: "deleteNode", mindmapId: "mind_1", nodeId: "node_3" }, + ]), + ).toBe(true); + expect( + isLocallyApplicableMindmapCommandSet([ + { type: "moveNode", mindmapId: "mind_1", nodeId: "node_1", newParentNodeId: "root" }, + ]), + ).toBe(false); + }); + + it("可本地应用 update/insert/delete 到 mindmap tree,避免每次都整块重挂载", () => { + const result = applyMindmapCommandsLocally( + { + data: { uid: "root", text: "KMIND" }, + children: [ + { + data: { uid: "node_1", text: "节点 1" }, + children: [], + }, + { + data: { uid: "node_2", text: "节点 2" }, + children: [], + }, + ], + layout: "logicalStructure", + theme: "default", + }, + [ + { type: "updateText", mindmapId: "mind_1", nodeId: "node_1", text: "节点 1A" }, + { + type: "insertChild", + mindmapId: "mind_1", + parentNodeId: "node_1", + node: { uid: "node_1_child", text: "子节点 A" }, + }, + { + type: "insertSiblingAfter", + mindmapId: "mind_1", + targetNodeId: "node_1", + node: { uid: "node_1_sibling", text: "同级 A" }, + }, + { type: "deleteNode", mindmapId: "mind_1", nodeId: "node_2" }, + ], + ); + + expect(result.errors).toEqual([]); + expect(result.applied).toBe(4); + expect(result.data.children).toHaveLength(2); + expect(result.data.children[0].data.text).toBe("节点 1A"); + expect(result.data.children[0].children[0].data.uid).toBe("node_1_child"); + expect(result.data.children[1].data.uid).toBe("node_1_sibling"); + expect(result.data.children[1].data.text).toBe("同级 A"); + }); +}); diff --git a/wolai-frontend/src/lib/mindmap/mindmap-command-apply-local.ts b/wolai-frontend/src/lib/mindmap/mindmap-command-apply-local.ts new file mode 100644 index 00000000..ab37fa55 --- /dev/null +++ b/wolai-frontend/src/lib/mindmap/mindmap-command-apply-local.ts @@ -0,0 +1,279 @@ +import type { MindmapCompatPayloadPatch, MindmapKernelCommand } from "./mindmap-command-diff"; + +const defaultMindmapData = { + data: { text: "中心主题" }, + children: [], +}; + +type MetadataOnlyMindmapCommand = + | Extract + | MindmapCompatPayloadPatch; + +type LocallyApplicableMindmapCommand = + | Exclude + | MindmapCompatPayloadPatch; + +type ApplyMetadataOnlyMindmapCommandsResult = { + applied: number; + data: Record; + errors: string[]; +}; + +type ApplyMindmapCommandsLocallyResult = ApplyMetadataOnlyMindmapCommandsResult; + +const isRecord = (value: unknown): value is Record => + typeof value === "object" && value !== null && !Array.isArray(value); + +const cloneJson = (value: T): T => JSON.parse(JSON.stringify(value)) as T; + +const ensureMindmapBlob = (value: unknown): Record => { + const next = isRecord(value) ? cloneJson(value) : cloneJson(defaultMindmapData); + if (!isRecord(next.data)) next.data = { text: "中心主题" }; + if (!Array.isArray(next.children)) next.children = []; + return next; +}; + +const mergeJsonObject = (base: unknown, patch: unknown): unknown => { + if (!isRecord(base)) return cloneJson(patch); + if (!isRecord(patch)) return cloneJson(patch); + const next = { ...base }; + Object.entries(patch).forEach(([key, value]) => { + if (value === null) { + delete next[key]; + return; + } + next[key] = isRecord(next[key]) && isRecord(value) ? mergeJsonObject(next[key], value) : cloneJson(value); + }); + return next; +}; + +const setNestedPath = (root: Record, path: string, value: unknown): boolean => { + const segments = path.split(".").filter(Boolean); + if (segments.length === 0) return false; + let current: Record = root; + for (const segment of segments.slice(0, -1)) { + if (!isRecord(current[segment])) current[segment] = {}; + current = current[segment] as Record; + } + current[segments[segments.length - 1]] = cloneJson(value); + return true; +}; + +const findMindmapNodeByUid = (node: unknown, uid: string): Record | null => { + if (!isRecord(node)) return null; + const data = isRecord(node.data) ? node.data : null; + if (typeof data?.uid === "string" && data.uid === uid) return node; + const children = Array.isArray(node.children) ? node.children : []; + for (const child of children) { + const found = findMindmapNodeByUid(child, uid); + if (found) return found; + } + return null; +}; + +const findMindmapNodeContainerByUid = ( + nodes: unknown[], + uid: string, +): { parentChildren: Record[]; index: number } | null => { + for (let index = 0; index < nodes.length; index += 1) { + const candidate = nodes[index]; + if (!isRecord(candidate)) continue; + const data = isRecord(candidate.data) ? candidate.data : null; + if (typeof data?.uid === "string" && data.uid === uid) { + return { + parentChildren: nodes as Record[], + index, + }; + } + const children = Array.isArray(candidate.children) ? candidate.children : []; + const found = findMindmapNodeContainerByUid(children, uid); + if (found) return found; + } + return null; +}; + +const createMindmapNodeRecord = (node: { + uid?: string; + text: string; + hyperlink?: string; + note?: string; + refs?: unknown[]; +}): Record => ({ + data: { + uid: node.uid ?? `node_${Date.now().toString(36)}`, + text: node.text, + ...(typeof node.hyperlink === "string" ? { hyperlink: node.hyperlink } : {}), + ...(typeof node.note === "string" ? { note: node.note } : {}), + ...(Array.isArray(node.refs) ? { refs: cloneJson(node.refs) } : {}), + }, + children: [], +}); + +const applyCompatPayloadPatch = (root: Record, command: MindmapCompatPayloadPatch): boolean => { + const path = String(command.path || "").trim(); + if (!path) return false; + + if (path.startsWith("root.data.")) { + const field = path.slice("root.data.".length); + const rootData = isRecord(root.data) ? root.data : (root.data = {}); + return setNestedPath(rootData as Record, field, command.value); + } + + if (path.startsWith("nodes.")) { + const [, uid, scope, ...rest] = path.split("."); + if (!uid || scope !== "data" || rest.length === 0) return false; + const node = findMindmapNodeByUid(root, uid); + if (!node) return false; + const nodeData = isRecord(node.data) ? node.data : (node.data = {}); + return setNestedPath(nodeData as Record, rest.join("."), command.value); + } + + const compatPayload = isRecord(root.compatPayload) ? root.compatPayload : (root.compatPayload = {}); + return setNestedPath(compatPayload as Record, path, command.value); +}; + +export const isMetadataOnlyMindmapCommandSet = (commands: unknown[]): commands is MetadataOnlyMindmapCommand[] => + Array.isArray(commands) && + commands.every((command) => { + if (!isRecord(command) || typeof command.type !== "string") return false; + return ["setLayout", "setTheme", "patchView", "compatPayloadPatch"].includes(command.type); + }); + +export const isLocallyApplicableMindmapCommandSet = ( + commands: unknown[], +): commands is LocallyApplicableMindmapCommand[] => + Array.isArray(commands) && + commands.every((command) => { + if (!isRecord(command) || typeof command.type !== "string") return false; + return [ + "updateText", + "insertChild", + "insertSiblingAfter", + "deleteNode", + "setLayout", + "setTheme", + "patchView", + "compatPayloadPatch", + ].includes(command.type); + }); + +export const applyMetadataOnlyMindmapCommands = ( + currentData: unknown, + commands: MetadataOnlyMindmapCommand[], +): ApplyMetadataOnlyMindmapCommandsResult => { + const nextData = ensureMindmapBlob(currentData); + const errors: string[] = []; + let applied = 0; + + commands.forEach((command) => { + if (command.type === "setLayout") { + nextData.layout = cloneJson(command.layout); + applied += 1; + return; + } + if (command.type === "setTheme") { + nextData.theme = cloneJson(command.theme); + if (command.themeConfig !== undefined && command.themeConfig !== null) { + nextData.themeConfig = cloneJson(command.themeConfig); + } + applied += 1; + return; + } + if (command.type === "patchView") { + nextData.view = mergeJsonObject(nextData.view ?? {}, command.patch) as Record; + applied += 1; + return; + } + if (command.type === "compatPayloadPatch") { + if (applyCompatPayloadPatch(nextData, command)) { + applied += 1; + } else { + errors.push(`无法应用 compatPayloadPatch:${command.path}`); + } + } + }); + + return { + applied, + data: nextData, + errors, + }; +}; + +export const applyMindmapCommandsLocally = ( + currentData: unknown, + commands: LocallyApplicableMindmapCommand[], +): ApplyMindmapCommandsLocallyResult => { + const nextData = ensureMindmapBlob(currentData); + const errors: string[] = []; + let applied = 0; + + commands.forEach((command) => { + if (command.type === "setLayout" || command.type === "setTheme" || command.type === "patchView" || command.type === "compatPayloadPatch") { + const result = applyMetadataOnlyMindmapCommands(nextData, [command]); + Object.assign(nextData, result.data); + applied += result.applied; + errors.push(...result.errors); + return; + } + + if (command.type === "updateText") { + const node = findMindmapNodeByUid(nextData, command.nodeId); + if (!node) { + errors.push(`未找到节点:${command.nodeId}`); + return; + } + const data = isRecord(node.data) ? node.data : (node.data = {}); + data.text = command.text; + applied += 1; + return; + } + + if (command.type === "insertChild") { + const parent = findMindmapNodeByUid(nextData, command.parentNodeId); + if (!parent) { + errors.push(`未找到父节点:${command.parentNodeId}`); + return; + } + const children = Array.isArray(parent.children) ? parent.children : (parent.children = []); + children.push(createMindmapNodeRecord(command.node)); + applied += 1; + return; + } + + if (command.type === "insertSiblingAfter") { + const container = findMindmapNodeContainerByUid([nextData], command.targetNodeId); + if (!container) { + errors.push(`未找到同级节点:${command.targetNodeId}`); + return; + } + if (container.parentChildren[container.index] === nextData) { + errors.push("根节点不支持插入同级节点"); + return; + } + container.parentChildren.splice(container.index + 1, 0, createMindmapNodeRecord(command.node)); + applied += 1; + return; + } + + if (command.type === "deleteNode") { + const container = findMindmapNodeContainerByUid([nextData], command.nodeId); + if (!container) { + errors.push(`未找到删除节点:${command.nodeId}`); + return; + } + if (container.parentChildren[container.index] === nextData) { + errors.push("根节点不支持删除"); + return; + } + container.parentChildren.splice(container.index, 1); + applied += 1; + } + }); + + return { + applied, + data: nextData, + errors, + }; +}; diff --git a/wolai-frontend/src/lib/mindmap/mindmap-initial-sync.test.ts b/wolai-frontend/src/lib/mindmap/mindmap-initial-sync.test.ts new file mode 100644 index 00000000..f85d8a08 --- /dev/null +++ b/wolai-frontend/src/lib/mindmap/mindmap-initial-sync.test.ts @@ -0,0 +1,30 @@ +import { describe, expect, it } from "vitest"; +import { buildInitialMindmapAssetRefreshPayload } from "./mindmap-initial-sync"; + +describe("buildInitialMindmapAssetRefreshPayload", () => { + it("远端 createOnly 成功时返回文件树刷新 payload", () => { + expect( + buildInitialMindmapAssetRefreshPayload({ + ok: true, + docId: "doc-1", + mindmapId: "mind-1", + }), + ).toEqual({ + id: "mind-1", + document_id: "doc-1", + asset_type: "mindmap", + file_name: "mindmap-mind-1.json", + file_url: "/documents/doc-1/mindmap-mind-1.json", + }); + }); + + it("远端 createOnly 失败时不应伪造文件树刷新事件", () => { + expect( + buildInitialMindmapAssetRefreshPayload({ + ok: false, + docId: "doc-1", + mindmapId: "mind-1", + }), + ).toBeNull(); + }); +}); diff --git a/wolai-frontend/src/lib/mindmap/mindmap-initial-sync.ts b/wolai-frontend/src/lib/mindmap/mindmap-initial-sync.ts new file mode 100644 index 00000000..f17f26dd --- /dev/null +++ b/wolai-frontend/src/lib/mindmap/mindmap-initial-sync.ts @@ -0,0 +1,25 @@ +export type InitialMindmapAssetRefreshPayload = { + id: string; + document_id: string; + asset_type: "mindmap"; + file_name: string; + file_url: string; +}; + +export function buildInitialMindmapAssetRefreshPayload(input: { + ok: boolean; + docId: string; + mindmapId: string; +}): InitialMindmapAssetRefreshPayload | null { + if (!input.ok) { + return null; + } + const fileName = `mindmap-${input.mindmapId}.json`; + return { + id: input.mindmapId, + document_id: input.docId, + asset_type: "mindmap", + file_name: fileName, + file_url: `/documents/${input.docId}/${fileName}`, + }; +} diff --git a/wolai-frontend/src/lib/mindmap/mindmap-projection.ts b/wolai-frontend/src/lib/mindmap/mindmap-projection.ts index f0819393..8854ae2e 100644 --- a/wolai-frontend/src/lib/mindmap/mindmap-projection.ts +++ b/wolai-frontend/src/lib/mindmap/mindmap-projection.ts @@ -95,6 +95,46 @@ export const defaultMindmapData: MindMapData = { children: [], }; +export const DEFAULT_MINDMAP_LAYOUT = "logicalStructure"; +export const DEFAULT_MINDMAP_THEME = "default"; + +export const createDefaultMindmapThemeConfig = (): Record => ({ + lineColor: "#7aa2ff", + lineStyle: "curve", + rootLineKeepSameInCurve: true, + rootLineStartPositionKeepSameInCurve: true, + generalizationLineColor: "#ef6a5b", + backgroundColor: "#f6f8fc", + root: { + fillColor: "#e25563", + color: "#ffffff", + fontWeight: "bold", + borderColor: "transparent", + borderWidth: 0, + borderRadius: 8, + }, + second: { + fillColor: "#4f7df3", + color: "#ffffff", + borderColor: "transparent", + borderWidth: 0, + borderRadius: 8, + }, + node: { + fillColor: "transparent", + color: "#315aa9", + borderColor: "transparent", + borderWidth: 0, + }, + generalization: { + fillColor: "#ffffff", + color: "#ef6a5b", + borderColor: "#ef6a5b", + borderWidth: 1, + borderRadius: 8, + }, +}); + const isRecord = (value: unknown): value is Record => typeof value === "object" && value !== null && !Array.isArray(value); @@ -299,9 +339,9 @@ export const buildMindmapSimpleMindMapScene = (input: { mindmapId: input.mindmapId, rootNodeId, root, - layout: "logicalStructure", - theme: "classic", - themeConfig: {}, + layout: DEFAULT_MINDMAP_LAYOUT, + theme: DEFAULT_MINDMAP_THEME, + themeConfig: createDefaultMindmapThemeConfig(), view: { x: 0, y: 0, scale: 1 }, config: {}, compatPayload: {}, diff --git a/wolai-frontend/src/lib/mindmap/mindmap-shortcuts.test.ts b/wolai-frontend/src/lib/mindmap/mindmap-shortcuts.test.ts new file mode 100644 index 00000000..0c19fb42 --- /dev/null +++ b/wolai-frontend/src/lib/mindmap/mindmap-shortcuts.test.ts @@ -0,0 +1,40 @@ +import { describe, expect, it } from "vitest"; +import { + resolveMindmapShortcutAction, + shouldInterceptMindmapShortcut, +} from "./mindmap-shortcuts"; + +describe("mindmap shortcuts", () => { + it("把基础快捷键解析为导图动作", () => { + expect(resolveMindmapShortcutAction({ key: "Enter" })).toBe("insertSiblingAfter"); + expect(resolveMindmapShortcutAction({ key: "Tab" })).toBe("insertChild"); + expect(resolveMindmapShortcutAction({ key: "Delete" })).toBe("deleteNode"); + expect(resolveMindmapShortcutAction({ key: "F2" })).toBe("editNode"); + expect(resolveMindmapShortcutAction({ key: "Enter", ctrlKey: true })).toBeNull(); + }); + + it("已进入 mindmap 时即使暂时没有 active node,也要拦截危险按键,避免 ProseMirror 误删整个 block", () => { + expect( + shouldInterceptMindmapShortcut({ + debugChromeEnabled: false, + bridgeReady: true, + readonly: false, + isComposing: false, + isEditableTarget: false, + targetInsideRoot: false, + keyboardShortcutArmed: true, + }), + ).toBe(true); + expect( + shouldInterceptMindmapShortcut({ + debugChromeEnabled: false, + bridgeReady: true, + readonly: false, + isComposing: false, + isEditableTarget: false, + targetInsideRoot: false, + keyboardShortcutArmed: false, + }), + ).toBe(false); + }); +}); diff --git a/wolai-frontend/src/lib/mindmap/mindmap-shortcuts.ts b/wolai-frontend/src/lib/mindmap/mindmap-shortcuts.ts new file mode 100644 index 00000000..763743ff --- /dev/null +++ b/wolai-frontend/src/lib/mindmap/mindmap-shortcuts.ts @@ -0,0 +1,40 @@ +import type { MindmapUiActionId } from "./mindmap-ui-schema"; + +type MindmapShortcutEventLike = { + key: string; + shiftKey?: boolean; + ctrlKey?: boolean; + metaKey?: boolean; + altKey?: boolean; +}; + +export type MindmapShortcutGateInput = { + debugChromeEnabled: boolean; + bridgeReady: boolean; + readonly: boolean; + isComposing: boolean; + isEditableTarget: boolean; + targetInsideRoot: boolean; + keyboardShortcutArmed: boolean; +}; + +export const resolveMindmapShortcutAction = ( + event: MindmapShortcutEventLike, +): MindmapUiActionId | null => { + if (event.ctrlKey || event.metaKey || event.altKey || event.shiftKey) return null; + if (event.key === "Enter") return "insertSiblingAfter"; + if (event.key === "Tab" || event.key === "Insert") return "insertChild"; + if (event.key === "Delete" || event.key === "Backspace") return "deleteNode"; + if (event.key === "F2") return "editNode"; + return null; +}; + +export const shouldInterceptMindmapShortcut = ( + input: MindmapShortcutGateInput, +): boolean => { + if (input.debugChromeEnabled) return false; + if (!input.bridgeReady || input.readonly || input.isComposing) return false; + if (input.isEditableTarget) return false; + if (input.targetInsideRoot) return true; + return input.keyboardShortcutArmed; +}; diff --git a/wolai-frontend/src/lib/mindmap/mindmap-ui-schema.test.ts b/wolai-frontend/src/lib/mindmap/mindmap-ui-schema.test.ts index cb8b7720..d3cf9fd0 100644 --- a/wolai-frontend/src/lib/mindmap/mindmap-ui-schema.test.ts +++ b/wolai-frontend/src/lib/mindmap/mindmap-ui-schema.test.ts @@ -1,8 +1,11 @@ import { describe, expect, it } from "vitest"; import { + MINDMAP_TOOLBAR_MORE_ACTION_ID, MINDMAP_DEBUG_CHROME_QUERY_PARAM, isMindmapDebugChromeEnabled, mindmapDefaultUiSchema, + mindmapToolbarFileActionOrder, + mindmapToolbarPrimaryActionOrder, } from "./mindmap-ui-schema"; import { getMindmapActionMapping } from "./mindmap-action-map"; @@ -12,6 +15,7 @@ describe("mindmap UI schema", () => { "history", "node", "insert", + "file", "view", ]); expect(mindmapDefaultUiSchema.sidebarPanels.map((panel) => panel.id)).toEqual([ @@ -20,6 +24,8 @@ describe("mindmap UI schema", () => { "theme", "structure", "outline", + "shortcutKey", + "settings", ]); expect(mindmapDefaultUiSchema.navigatorItems.map((item) => item.id)).toEqual([ "stats", @@ -28,6 +34,7 @@ describe("mindmap UI schema", () => { "zoomOut", "zoom", "zoomIn", + "fullscreen", "readonly", ]); }); @@ -48,6 +55,41 @@ describe("mindmap UI schema", () => { expect(new Set(actionIds).size).toBe(actionIds.length); }); + it("单行 toolbar 主按钮顺序对齐 lx-doc/KMind", () => { + expect([...mindmapToolbarPrimaryActionOrder, MINDMAP_TOOLBAR_MORE_ACTION_ID]).toEqual([ + "undo", + "redo", + "editNode", + "insertSiblingAfter", + "deleteNode", + "insertChild", + "tag", + "hyperlink", + "note", + "image", + "icon", + "summary", + "associativeLine", + "formula", + "more", + ]); + }); + + it("toolbar 元信息包含图标、短标签、长标签、优先级和溢出归类", () => { + const primaryMeta = mindmapToolbarPrimaryActionOrder.map((actionId) => mindmapDefaultUiSchema.toolbarActionMeta[actionId]); + expect(primaryMeta.map((meta) => meta.priority)).toEqual([...primaryMeta.map((meta) => meta.priority)].sort((a, b) => a - b)); + expect(primaryMeta.every((meta) => meta.cluster === "main")).toBe(true); + expect(primaryMeta.every((meta) => meta.iconKey && meta.shortLabel && meta.longLabel && meta.overflowGroup)).toBe(true); + }); + + it("导入导出属于右侧独立 toolbar cluster", () => { + expect([...mindmapToolbarFileActionOrder]).toEqual(["import", "export"]); + expect(mindmapToolbarFileActionOrder.map((actionId) => mindmapDefaultUiSchema.toolbarActionMeta[actionId].cluster)).toEqual([ + "file", + "file", + ]); + }); + it("默认 schema 中所有 action 都有 action map 映射", () => { const actionIds = [ ...mindmapDefaultUiSchema.toolbarGroups.flatMap((group) => group.actions), @@ -58,6 +100,16 @@ describe("mindmap UI schema", () => { expect(actionIds.filter((actionId) => getMindmapActionMapping(actionId) === null)).toEqual([]); }); + it("toolbar 真实可见 action 都有 action map,more 仅作为 shell 虚拟按钮", () => { + const visibleActionIds = [ + ...mindmapToolbarPrimaryActionOrder, + ...mindmapToolbarFileActionOrder, + ]; + + expect(visibleActionIds.filter((actionId) => getMindmapActionMapping(actionId) === null)).toEqual([]); + expect(mindmapDefaultUiSchema.toolbarActionMeta).not.toHaveProperty(MINDMAP_TOOLBAR_MORE_ACTION_ID); + }); + it("第一阶段 context menu 覆盖节点和画布动作", () => { expect(mindmapDefaultUiSchema.contextMenuItems.filter((item) => item.requiresNode).map((item) => item.actionId)).toEqual([ "insertChild", @@ -73,27 +125,53 @@ describe("mindmap UI schema", () => { "fitView", "search", "readonly", + "showMenu", ]); }); it("第一阶段 sidebar panel 数量受控", () => { - expect(mindmapDefaultUiSchema.sidebarPanels).toHaveLength(5); + expect(mindmapDefaultUiSchema.sidebarPanels).toHaveLength(7); }); it("第一阶段 sidebar 暴露主题、结构和 compat patch 选项", () => { const themePanel = mindmapDefaultUiSchema.sidebarPanels.find((panel) => panel.id === "theme"); - expect(themePanel?.options.map((option) => option.value)).toEqual(["classic", "classic4"]); + expect(themePanel?.options.map((option) => option.value)).toEqual(["classic", "classic4", "simple", "dark"]); const structurePanel = mindmapDefaultUiSchema.sidebarPanels.find((panel) => panel.id === "structure"); expect(structurePanel?.options.map((option) => option.value)).toEqual([ "logicalStructure", "mindMap", + "organizationStructure", + "catalogOrganization", + "timeline", "fishbone", ]); + expect(structurePanel?.options.every((option) => option.controlType === "layoutCard")).toBe(true); const nodeStylePanel = mindmapDefaultUiSchema.sidebarPanels.find((panel) => panel.id === "nodeStyle"); const baseStylePanel = mindmapDefaultUiSchema.sidebarPanels.find((panel) => panel.id === "baseStyle"); expect(nodeStylePanel?.options.every((option) => Boolean(option.compatPath))).toBe(true); expect(baseStylePanel?.options.every((option) => Boolean(option.compatPath))).toBe(true); }); + + it("每个 sidebar option 要么可写,要么显式标记只读", () => { + const options = mindmapDefaultUiSchema.sidebarPanels.flatMap((panel) => panel.options); + expect(options.length).toBeGreaterThan(0); + expect(options.every((option) => option.actionId !== null || option.readonly === true)).toBe(true); + }); + + it("可写 sidebar option 必须能映射到 compat patch 或 kernel command", () => { + const writableOptions = mindmapDefaultUiSchema.sidebarPanels.flatMap((panel) => + panel.options.filter((option) => option.readonly !== true), + ); + expect(writableOptions.length).toBeGreaterThan(0); + expect( + writableOptions.every((option) => { + if (option.compatPath) return true; + if (!option.actionId) return false; + const mapping = getMindmapActionMapping(option.actionId); + return mapping?.target === "kernelCommand" || mapping?.target === "compatPatch"; + }), + ).toBe(true); + }); }); diff --git a/wolai-frontend/src/lib/mindmap/mindmap-ui-schema.ts b/wolai-frontend/src/lib/mindmap/mindmap-ui-schema.ts index 8ded8f7d..a714d3d5 100644 --- a/wolai-frontend/src/lib/mindmap/mindmap-ui-schema.ts +++ b/wolai-frontend/src/lib/mindmap/mindmap-ui-schema.ts @@ -24,20 +24,45 @@ export type MindmapUiActionId = | "zoomOut" | "fitView" | "centerRoot" + | "fullscreenCanvas" + | "fullscreenPage" + | "exitFullscreen" | "search" + | "showMenu" | "expandCollapse" | "copyNodeText" | "readonly"; +export const MINDMAP_TOOLBAR_MORE_ACTION_ID = "more" as const; + +export type MindmapToolbarVirtualActionId = typeof MINDMAP_TOOLBAR_MORE_ACTION_ID; + +export type MindmapToolbarActionId = MindmapUiActionId | MindmapToolbarVirtualActionId; + +export type MindmapToolbarActionCluster = "main" | "file" | "view"; + +export type MindmapToolbarOverflowGroup = "history" | "node" | "insert" | "file" | "view"; + +export type MindmapToolbarActionMeta = { + id: MindmapUiActionId; + iconKey: string; + shortLabel: string; + longLabel: string; + priority: number; + overflowGroup: MindmapToolbarOverflowGroup; + cluster: MindmapToolbarActionCluster; +}; + export type MindmapToolbarGroup = { - id: "history" | "node" | "insert" | "view"; + id: MindmapToolbarOverflowGroup; label: string; actions: MindmapUiActionId[]; collapsePriority: number; }; export type MindmapSidebarPanel = { - id: "nodeStyle" | "baseStyle" | "theme" | "structure" | "outline"; + id: MindmapSidebarPanelId; + kind: MindmapSidebarPanelId; label: string; icon: string; runtimeCapability: string; @@ -45,16 +70,40 @@ export type MindmapSidebarPanel = { options: MindmapSidebarOption[]; }; +export type MindmapSidebarPanelId = + | "nodeStyle" + | "baseStyle" + | "theme" + | "structure" + | "outline" + | "shortcutKey" + | "settings"; + +export type MindmapSidebarOptionControlType = + | "button" + | "swatch" + | "segmented" + | "slider" + | "numberInput" + | "select" + | "layoutCard" + | "treeItem" + | "toggle"; + export type MindmapSidebarOption = { id: string; label: string; actionId: MindmapUiActionId | null; value: unknown; + controlType: MindmapSidebarOptionControlType; + preview?: string; + description?: string; + readonly?: boolean; compatPath?: string; }; export type MindmapNavigatorItem = { - id: "stats" | "centerRoot" | "search" | "zoomOut" | "zoom" | "zoomIn" | "readonly"; + id: "stats" | "centerRoot" | "search" | "zoomOut" | "zoom" | "zoomIn" | "fullscreen" | "readonly"; label: string; actionId: MindmapUiActionId | null; readOnly: boolean; @@ -71,11 +120,49 @@ export type MindmapContextMenuItem = { export type MindmapUiSchema = { toolbarGroups: MindmapToolbarGroup[]; + toolbarActionMeta: Record; sidebarPanels: MindmapSidebarPanel[]; navigatorItems: MindmapNavigatorItem[]; contextMenuItems: MindmapContextMenuItem[]; }; +export const mindmapToolbarPrimaryActionOrder = [ + "undo", + "redo", + "editNode", + "insertSiblingAfter", + "deleteNode", + "insertChild", + "tag", + "hyperlink", + "note", + "image", + "icon", + "summary", + "associativeLine", + "formula", +] as const satisfies readonly MindmapUiActionId[]; + +export const mindmapToolbarFileActionOrder = ["import", "export"] as const satisfies readonly MindmapUiActionId[]; + +const createToolbarActionMeta = ( + id: MindmapUiActionId, + iconKey: string, + shortLabel: string, + longLabel: string, + priority: number, + overflowGroup: MindmapToolbarOverflowGroup, + cluster: MindmapToolbarActionCluster, +): MindmapToolbarActionMeta => ({ + id, + iconKey, + shortLabel, + longLabel, + priority, + overflowGroup, + cluster, +}); + export const mindmapDefaultUiSchema: MindmapUiSchema = { toolbarGroups: [ { @@ -87,84 +174,177 @@ export const mindmapDefaultUiSchema: MindmapUiSchema = { { id: "node", label: "节点", - actions: ["editNode", "insertSiblingAfter", "insertChild", "deleteNode"], + actions: ["editNode", "insertSiblingAfter", "deleteNode", "insertChild"], collapsePriority: 1, }, { id: "insert", label: "插入", - actions: ["tag", "hyperlink", "note", "image", "icon", "summary", "associativeLine", "formula", "painter", "import", "export"], + actions: ["tag", "hyperlink", "note", "image", "icon", "summary", "associativeLine", "formula"], collapsePriority: 2, }, + { + id: "file", + label: "文件", + actions: ["import", "export"], + collapsePriority: 5, + }, { id: "view", label: "视图", - actions: ["centerRoot", "zoomOut", "zoomIn", "search", "readonly"], + actions: ["painter", "centerRoot", "zoomOut", "zoomIn", "search", "readonly"], collapsePriority: 3, }, ], + toolbarActionMeta: { + undo: createToolbarActionMeta("undo", "undo", "撤销", "撤销", 10, "history", "main"), + redo: createToolbarActionMeta("redo", "redo", "重做", "重做", 20, "history", "main"), + editNode: createToolbarActionMeta("editNode", "type", "编辑", "编辑节点", 30, "node", "main"), + insertSiblingAfter: createToolbarActionMeta("insertSiblingAfter", "sibling", "同级", "插入同级节点", 40, "node", "main"), + deleteNode: createToolbarActionMeta("deleteNode", "trash", "删除", "删除节点", 50, "node", "main"), + insertChild: createToolbarActionMeta("insertChild", "child", "子级", "插入子节点", 60, "node", "main"), + tag: createToolbarActionMeta("tag", "tag", "标签", "标签", 70, "insert", "main"), + hyperlink: createToolbarActionMeta("hyperlink", "link", "链接", "超链接", 80, "insert", "main"), + note: createToolbarActionMeta("note", "note", "备注", "备注", 90, "insert", "main"), + image: createToolbarActionMeta("image", "image", "图片", "图片", 100, "insert", "main"), + icon: createToolbarActionMeta("icon", "smile", "图标", "图标", 110, "insert", "main"), + summary: createToolbarActionMeta("summary", "summary", "概要", "概要", 120, "insert", "main"), + associativeLine: createToolbarActionMeta("associativeLine", "route", "关联", "关联线", 130, "insert", "main"), + formula: createToolbarActionMeta("formula", "formula", "公式", "公式", 140, "insert", "main"), + painter: createToolbarActionMeta("painter", "paintbrush", "格式", "格式刷", 210, "view", "view"), + import: createToolbarActionMeta("import", "import", "导入", "导入", 310, "file", "file"), + export: createToolbarActionMeta("export", "export", "导出", "导出", 320, "file", "file"), + setTheme: createToolbarActionMeta("setTheme", "palette", "主题", "主题", 410, "view", "view"), + setLayout: createToolbarActionMeta("setLayout", "layout", "结构", "结构", 420, "view", "view"), + zoomIn: createToolbarActionMeta("zoomIn", "zoom-in", "放大", "放大", 510, "view", "view"), + zoomOut: createToolbarActionMeta("zoomOut", "zoom-out", "缩小", "缩小", 500, "view", "view"), + fitView: createToolbarActionMeta("fitView", "fit", "适应", "适应画布", 520, "view", "view"), + centerRoot: createToolbarActionMeta("centerRoot", "target", "回根", "回到根节点", 490, "view", "view"), + fullscreenCanvas: createToolbarActionMeta("fullscreenCanvas", "fullscreen", "全屏", "全屏查看", 550, "view", "view"), + fullscreenPage: createToolbarActionMeta("fullscreenPage", "fullscreen-page", "全页", "全屏编辑", 560, "view", "view"), + exitFullscreen: createToolbarActionMeta("exitFullscreen", "exit-fullscreen", "退出", "退出全屏", 570, "view", "view"), + search: createToolbarActionMeta("search", "search", "搜索", "搜索", 530, "view", "view"), + showMenu: createToolbarActionMeta("showMenu", "menu", "菜单", "显示菜单", 580, "view", "view"), + expandCollapse: createToolbarActionMeta("expandCollapse", "expand", "展开", "展开/收起", 610, "view", "view"), + copyNodeText: createToolbarActionMeta("copyNodeText", "copy", "复制", "复制文本", 620, "view", "view"), + readonly: createToolbarActionMeta("readonly", "lock", "只读", "只读", 540, "view", "view"), + }, sidebarPanels: [ { id: "nodeStyle", + kind: "nodeStyle", label: "节点样式", icon: "palette", runtimeCapability: "node-style", phase: 1, options: [ - { id: "node-fill-blue", label: "蓝色节点", actionId: "painter", value: "#dbeafe", compatPath: "nodes.$active.data.fillColor" }, - { id: "node-round", label: "圆角节点", actionId: "painter", value: "roundedRectangle", compatPath: "nodes.$active.data.shape" }, + { id: "node-fill-blue", label: "海蓝", actionId: "painter", value: "#dbeafe", controlType: "swatch", preview: "#dbeafe", compatPath: "nodes.$active.data.fillColor" }, + { id: "node-fill-green", label: "薄荷", actionId: "painter", value: "#dcfce7", controlType: "swatch", preview: "#dcfce7", compatPath: "nodes.$active.data.fillColor" }, + { id: "node-fill-amber", label: "暖黄", actionId: "painter", value: "#fef3c7", controlType: "swatch", preview: "#fef3c7", compatPath: "nodes.$active.data.fillColor" }, + { id: "node-text-dark", label: "深色文字", actionId: "painter", value: "#0f172a", controlType: "swatch", preview: "#0f172a", compatPath: "nodes.$active.data.color" }, + { id: "node-text-blue", label: "蓝色文字", actionId: "painter", value: "#1d4ed8", controlType: "swatch", preview: "#1d4ed8", compatPath: "nodes.$active.data.color" }, + { id: "node-font-14", label: "14 px", actionId: "painter", value: 14, controlType: "segmented", compatPath: "nodes.$active.data.fontSize" }, + { id: "node-font-18", label: "18 px", actionId: "painter", value: 18, controlType: "segmented", compatPath: "nodes.$active.data.fontSize" }, + { id: "node-font-bold", label: "加粗", actionId: "painter", value: true, controlType: "toggle", compatPath: "nodes.$active.data.fontWeight" }, + { id: "node-font-italic", label: "斜体", actionId: "painter", value: true, controlType: "toggle", compatPath: "nodes.$active.data.fontStyle" }, + { id: "node-shape-round", label: "圆角矩形", actionId: "painter", value: "roundedRectangle", controlType: "button", compatPath: "nodes.$active.data.shape" }, + { id: "node-shape-rect", label: "矩形", actionId: "painter", value: "rectangle", controlType: "button", compatPath: "nodes.$active.data.shape" }, + { id: "node-border-blue", label: "蓝色边框", actionId: "painter", value: "#60a5fa", controlType: "swatch", preview: "#60a5fa", compatPath: "nodes.$active.data.borderColor" }, + { id: "node-line-teal", label: "青色分支线", actionId: "painter", value: "#14b8a6", controlType: "swatch", preview: "#14b8a6", compatPath: "nodes.$active.data.lineColor" }, + { id: "node-line-width-2", label: "边线 2", actionId: "painter", value: 2, controlType: "segmented", compatPath: "nodes.$active.data.lineWidth" }, ], }, { id: "baseStyle", + kind: "baseStyle", label: "导图样式", icon: "sliders", runtimeCapability: "base-style", phase: 1, options: [ - { id: "base-curve-line", label: "曲线连线", actionId: "painter", value: "curve", compatPath: "style.map.lineStyle" }, - { id: "base-rainbow-lines", label: "彩虹线条", actionId: "painter", value: { enabled: true }, compatPath: "style.map.rainbowLines" }, + { id: "base-curve-line", label: "曲线", actionId: "painter", value: "curve", controlType: "segmented", compatPath: "style.map.lineStyle" }, + { id: "base-direct-line", label: "直线", actionId: "painter", value: "straight", controlType: "segmented", compatPath: "style.map.lineStyle" }, + { id: "base-rainbow-lines", label: "彩虹线条", actionId: "painter", value: { enabled: true }, controlType: "toggle", compatPath: "style.map.rainbowLines" }, + { id: "base-line-width-2", label: "线宽 2", actionId: "painter", value: 2, controlType: "segmented", compatPath: "style.map.lineWidth" }, + { id: "base-line-width-4", label: "线宽 4", actionId: "painter", value: 4, controlType: "segmented", compatPath: "style.map.lineWidth" }, + { id: "base-background-light", label: "浅色背景", actionId: "painter", value: "#f8fafc", controlType: "swatch", preview: "#f8fafc", compatPath: "style.map.backgroundColor" }, + { id: "base-node-spacing-36", label: "节点间距 36", actionId: "painter", value: 36, controlType: "numberInput", compatPath: "style.map.nodeSpacing" }, + { id: "base-summary-bracket", label: "括号概要", actionId: "painter", value: "bracket", controlType: "select", compatPath: "style.map.summaryStyle" }, ], }, { id: "theme", + kind: "theme", label: "主题", icon: "swatch", runtimeCapability: "theme", phase: 1, options: [ - { id: "theme-classic", label: "默认主题", actionId: "setTheme", value: "classic" }, - { id: "theme-classic4", label: "KMind-like", actionId: "setTheme", value: "classic4" }, + { id: "theme-classic", label: "Classic", actionId: "setTheme", value: "classic", controlType: "swatch", preview: "#60a5fa", description: "默认主题" }, + { id: "theme-classic4", label: "KMind", actionId: "setTheme", value: "classic4", controlType: "swatch", preview: "#22c55e", description: "KMind-like" }, + { id: "theme-simple", label: "Simple", actionId: "setTheme", value: "simple", controlType: "swatch", preview: "#f59e0b", description: "轻量主题" }, + { id: "theme-dark", label: "Dark", actionId: "setTheme", value: "dark", controlType: "swatch", preview: "#334155", description: "深色主题" }, ], }, { id: "structure", + kind: "structure", label: "结构", icon: "layout", runtimeCapability: "layout", phase: 1, options: [ - { id: "layout-logical", label: "逻辑结构", actionId: "setLayout", value: "logicalStructure" }, - { id: "layout-mind-map", label: "右侧结构", actionId: "setLayout", value: "mindMap" }, - { id: "layout-fishbone", label: "鱼骨结构", actionId: "setLayout", value: "fishbone" }, + { id: "layout-logical", label: "逻辑结构图", actionId: "setLayout", value: "logicalStructure", controlType: "layoutCard", preview: "logicalStructure" }, + { id: "layout-mind-map", label: "思维导图", actionId: "setLayout", value: "mindMap", controlType: "layoutCard", preview: "mindMap" }, + { id: "layout-organization", label: "组织结构图", actionId: "setLayout", value: "organizationStructure", controlType: "layoutCard", preview: "organizationStructure" }, + { id: "layout-catalog", label: "目录组织图", actionId: "setLayout", value: "catalogOrganization", controlType: "layoutCard", preview: "catalogOrganization" }, + { id: "layout-timeline", label: "时间轴", actionId: "setLayout", value: "timeline", controlType: "layoutCard", preview: "timeline" }, + { id: "layout-fishbone", label: "鱼骨图", actionId: "setLayout", value: "fishbone", controlType: "layoutCard", preview: "fishbone" }, ], }, { id: "outline", + kind: "outline", label: "大纲", icon: "list-tree", runtimeCapability: "outline", phase: 1, options: [], }, + { + id: "shortcutKey", + kind: "shortcutKey", + label: "快捷键", + icon: "sparkles", + runtimeCapability: "shortcut-key", + phase: 1, + options: [ + { id: "shortcut-insert-child", label: "Tab", description: "插入子节点", actionId: null, value: null, controlType: "treeItem", readonly: true }, + { id: "shortcut-insert-sibling", label: "Enter", description: "插入同级节点", actionId: null, value: null, controlType: "treeItem", readonly: true }, + { id: "shortcut-delete", label: "Delete", description: "删除节点", actionId: null, value: null, controlType: "treeItem", readonly: true }, + ], + }, + { + id: "settings", + kind: "settings", + label: "设置", + icon: "hexagon", + runtimeCapability: "settings", + phase: 1, + options: [ + { id: "settings-readonly-hint", label: "只读模式", description: "导航栏切换", actionId: null, value: null, controlType: "toggle", readonly: true }, + { id: "settings-mouse", label: "鼠标行为", description: "左键选中,右键拖拽", actionId: null, value: "leftSelectRightDrag", controlType: "select", readonly: true }, + ], + }, ], navigatorItems: [ { id: "stats", label: "统计", actionId: null, readOnly: true, displayMode: "text" }, { id: "centerRoot", label: "回根节点", actionId: "centerRoot", readOnly: true, displayMode: "button" }, - { id: "search", label: "搜索", actionId: "search", readOnly: true, displayMode: "input" }, + { id: "search", label: "搜索", actionId: "search", readOnly: true, displayMode: "button" }, { id: "zoomOut", label: "缩小", actionId: "zoomOut", readOnly: true, displayMode: "button" }, - { id: "zoom", label: "缩放", actionId: null, readOnly: true, displayMode: "text" }, + { id: "zoom", label: "缩放", actionId: null, readOnly: true, displayMode: "input" }, { id: "zoomIn", label: "放大", actionId: "zoomIn", readOnly: true, displayMode: "button" }, + { id: "fullscreen", label: "全屏", actionId: "fullscreenCanvas", readOnly: true, displayMode: "button" }, { id: "readonly", label: "只读", actionId: "readonly", readOnly: true, displayMode: "button" }, ], contextMenuItems: [ @@ -179,6 +359,7 @@ export const mindmapDefaultUiSchema: MindmapUiSchema = { { id: "fitView", label: "适应画布", actionId: "fitView", requiresNode: false, phase: 1 }, { id: "search", label: "搜索", actionId: "search", requiresNode: false, phase: 1 }, { id: "readonly", label: "只读切换", actionId: "readonly", requiresNode: false, phase: 1 }, + { id: "showMenu", label: "显示菜单", actionId: "showMenu", requiresNode: false, phase: 1 }, ], }; diff --git a/wolai-frontend/src/lib/mindmap/mindmap-ui-state.test.ts b/wolai-frontend/src/lib/mindmap/mindmap-ui-state.test.ts index aab3b247..1b012146 100644 --- a/wolai-frontend/src/lib/mindmap/mindmap-ui-state.test.ts +++ b/wolai-frontend/src/lib/mindmap/mindmap-ui-state.test.ts @@ -1,5 +1,9 @@ import { describe, expect, it } from "vitest"; -import { deriveMindmapUiState } from "./mindmap-ui-state"; +import { + createDefaultMindmapShellInteractionState, + deriveMindmapUiState, + reduceMindmapChromeVisibility, +} from "./mindmap-ui-state"; describe("mindmap UI state", () => { it("无 active node 时禁用节点编辑动作,但保留视图动作", () => { @@ -11,6 +15,8 @@ describe("mindmap UI state", () => { expect(state.disabledActions.expandCollapse).toBe(true); expect(state.disabledActions.zoomIn).toBe(false); expect(state.disabledActions.centerRoot).toBe(false); + expect(state.disabledActions.fullscreenCanvas).toBe(false); + expect(state.disabledActions.exitFullscreen).toBe(false); }); it("readonly 时禁用编辑动作,保留搜索和视图动作", () => { @@ -23,6 +29,8 @@ describe("mindmap UI state", () => { expect(state.disabledActions.copyNodeText).toBe(false); expect(state.disabledActions.search).toBe(false); expect(state.disabledActions.zoomOut).toBe(false); + expect(state.disabledActions.fullscreenCanvas).toBe(false); + expect(state.disabledActions.fullscreenPage).toBe(false); }); it("缺少 runtime capability 时禁用对应 action", () => { @@ -35,4 +43,97 @@ describe("mindmap UI state", () => { expect(state.disabledActions.note).toBe(true); expect(state.disabledActions.insertChild).toBe(false); }); + + it("派生默认 shell state,给 Leptos shell 提供稳定合同", () => { + const state = deriveMindmapUiState({ + activeNodeId: "node_1", + readonly: true, + shell: { + chromeVisibility: "hiddenByPointerLeave", + toolbarOverflow: { + availableWidth: 640, + visibleActionIds: ["undo", "redo"], + overflowActionIds: ["image"], + moreOpen: true, + }, + fullscreen: { + mode: "canvas", + isFullscreen: true, + apiAvailable: false, + }, + sidebar: { + triggerVisible: false, + panelOpen: false, + activePanelId: "structure", + collapsedByToggle: true, + }, + navigator: { + searchOpen: true, + minimapOpen: true, + zoomPercent: 138.4, + }, + }, + }); + + expect(state.shell.chromeVisibility).toBe("hiddenByPointerLeave"); + expect(state.shell.toolbarOverflow).toMatchObject({ + availableWidth: 640, + visibleActionIds: ["undo", "redo"], + overflowActionIds: ["image"], + moreOpen: true, + }); + expect(state.shell.fullscreen).toMatchObject({ + mode: "canvas", + isFullscreen: true, + target: "mindmap-root", + apiAvailable: false, + }); + expect(state.shell.sidebar).toMatchObject({ + triggerVisible: false, + panelOpen: false, + activePanelId: "structure", + drawerWidth: 300, + collapsedByToggle: true, + }); + expect(state.shell.navigator).toMatchObject({ + searchOpen: true, + minimapOpen: true, + readonly: true, + zoomPercent: 138, + mouseBehavior: "leftSelectRightDrag", + }); + }); + + it("鼠标移出隐藏 chrome,鼠标移入不自动恢复,点击才恢复", () => { + const hidden = reduceMindmapChromeVisibility("visible", "pointerLeave"); + expect(hidden).toBe("hiddenByPointerLeave"); + expect(reduceMindmapChromeVisibility(hidden, "pointerEnter")).toBe("hiddenByPointerLeave"); + expect(reduceMindmapChromeVisibility(hidden, "restoreClick")).toBe("visible"); + }); + + it("sidebar 隐藏触发条后保留最近 active panel", () => { + const state = createDefaultMindmapShellInteractionState({ + sidebar: { + triggerVisible: false, + panelOpen: false, + activePanelId: "structure", + collapsedByToggle: true, + }, + }); + + expect(state.sidebar.triggerVisible).toBe(false); + expect(state.sidebar.panelOpen).toBe(false); + expect(state.sidebar.activePanelId).toBe("structure"); + expect(state.sidebar.collapsedByToggle).toBe(true); + + const restored = createDefaultMindmapShellInteractionState({ + sidebar: { + ...state.sidebar, + triggerVisible: true, + panelOpen: true, + collapsedByToggle: false, + }, + }); + expect(restored.sidebar.activePanelId).toBe("structure"); + }); }); diff --git a/wolai-frontend/src/lib/mindmap/mindmap-ui-state.ts b/wolai-frontend/src/lib/mindmap/mindmap-ui-state.ts index 70cb14a1..ad917674 100644 --- a/wolai-frontend/src/lib/mindmap/mindmap-ui-state.ts +++ b/wolai-frontend/src/lib/mindmap/mindmap-ui-state.ts @@ -3,18 +3,81 @@ import { mindmapDefaultUiSchema, type MindmapUiActionId } from "./mindmap-ui-sch export type MindmapRuntimeCapability = MindmapActionTarget; +export type MindmapChromeVisibilityState = + | "visible" + | "hiddenByPointerLeave" + | "hiddenByToggle" + | "hiddenByFullscreen"; + +export type MindmapToolbarOverflowState = { + availableWidth: number | null; + visibleActionIds: MindmapUiActionId[]; + overflowActionIds: MindmapUiActionId[]; + moreOpen: boolean; +}; + +export type MindmapFullscreenState = { + mode: "none" | "canvas" | "page"; + isFullscreen: boolean; + target: "mindmap-root" | "document-body"; + apiAvailable: boolean; +}; + +export type MindmapSidebarState = { + triggerVisible: boolean; + panelOpen: boolean; + activePanelId: string | null; + drawerWidth: number; + collapsedByToggle: boolean; +}; + +export type MindmapNavigatorState = { + searchOpen: boolean; + minimapOpen: boolean; + readonly: boolean; + zoomPercent: number; + mouseBehavior: "leftSelectRightDrag" | "leftDragRightMenu"; +}; + +export type MindmapShellInteractionState = { + chromeVisibility: MindmapChromeVisibilityState; + toolbarOverflow: MindmapToolbarOverflowState; + fullscreen: MindmapFullscreenState; + sidebar: MindmapSidebarState; + navigator: MindmapNavigatorState; +}; + export type MindmapUiStateInput = { activeNodeId?: string | null; readonly: boolean; runtimeCapabilities?: MindmapRuntimeCapability[]; + shell?: PartialMindmapShellInteractionState; }; export type MindmapUiState = { activeNodeId: string | null; readonly: boolean; disabledActions: Record; + shell: MindmapShellInteractionState; }; +export type PartialMindmapShellInteractionState = { + chromeVisibility?: MindmapChromeVisibilityState; + toolbarOverflow?: Partial; + fullscreen?: Partial; + sidebar?: Partial; + navigator?: Partial; +}; + +export type MindmapChromeVisibilityEvent = + | "pointerLeave" + | "pointerEnter" + | "restoreClick" + | "hideToggle" + | "showToggle" + | "enterFullscreen" + | "exitFullscreen"; + const allActionIds = (): MindmapUiActionId[] => { const ids = [ ...mindmapDefaultUiSchema.toolbarGroups.flatMap((group) => group.actions), @@ -30,10 +93,80 @@ const normalizeActiveNodeId = (value: string | null | undefined): string | null return trimmed ? trimmed : null; }; +const normalizeZoomPercent = (value: number | undefined): number => { + if (typeof value !== "number" || !Number.isFinite(value)) return 100; + return Math.max(10, Math.min(500, Math.round(value))); +}; + +const unsupportedActionIds = new Set([ + "tag", + "hyperlink", + "note", + "image", + "icon", + "associativeLine", + "formula", + "import", + "export", +]); + +export const createDefaultMindmapShellInteractionState = ( + input: PartialMindmapShellInteractionState = {}, +): MindmapShellInteractionState => ({ + chromeVisibility: input.chromeVisibility ?? "visible", + toolbarOverflow: { + availableWidth: input.toolbarOverflow?.availableWidth ?? null, + visibleActionIds: input.toolbarOverflow?.visibleActionIds ?? [], + overflowActionIds: input.toolbarOverflow?.overflowActionIds ?? [], + moreOpen: input.toolbarOverflow?.moreOpen ?? false, + }, + fullscreen: { + mode: input.fullscreen?.mode ?? "none", + isFullscreen: input.fullscreen?.isFullscreen ?? false, + target: input.fullscreen?.target ?? "mindmap-root", + apiAvailable: input.fullscreen?.apiAvailable ?? true, + }, + sidebar: { + triggerVisible: input.sidebar?.triggerVisible ?? true, + panelOpen: input.sidebar?.panelOpen ?? true, + activePanelId: input.sidebar?.activePanelId ?? mindmapDefaultUiSchema.sidebarPanels[0]?.id ?? null, + drawerWidth: input.sidebar?.drawerWidth ?? 300, + collapsedByToggle: input.sidebar?.collapsedByToggle ?? false, + }, + navigator: { + searchOpen: input.navigator?.searchOpen ?? false, + minimapOpen: input.navigator?.minimapOpen ?? false, + readonly: input.navigator?.readonly ?? false, + zoomPercent: normalizeZoomPercent(input.navigator?.zoomPercent), + mouseBehavior: input.navigator?.mouseBehavior ?? "leftSelectRightDrag", + }, +}); + +export const reduceMindmapChromeVisibility = ( + state: MindmapChromeVisibilityState, + event: MindmapChromeVisibilityEvent, +): MindmapChromeVisibilityState => { + if (event === "pointerLeave") return "hiddenByPointerLeave"; + if (event === "pointerEnter") return state; + if (event === "restoreClick") return "visible"; + if (event === "hideToggle") return "hiddenByToggle"; + if (event === "showToggle") return "visible"; + if (event === "enterFullscreen") return state === "visible" ? "visible" : "hiddenByFullscreen"; + if (event === "exitFullscreen") return state === "hiddenByFullscreen" ? "visible" : state; + return state; +}; + export const deriveMindmapUiState = (input: MindmapUiStateInput): MindmapUiState => { const activeNodeId = normalizeActiveNodeId(input.activeNodeId); const capabilities = input.runtimeCapabilities ? new Set(input.runtimeCapabilities) : null; const disabledActions = {} as Record; + const shell = createDefaultMindmapShellInteractionState({ + ...input.shell, + navigator: { + ...input.shell?.navigator, + readonly: input.readonly, + }, + }); allActionIds().forEach((actionId) => { const mapping = getMindmapActionMapping(actionId); @@ -53,6 +186,10 @@ export const deriveMindmapUiState = (input: MindmapUiStateInput): MindmapUiState disabledActions[actionId] = true; return; } + if (unsupportedActionIds.has(actionId)) { + disabledActions[actionId] = true; + return; + } disabledActions[actionId] = false; }); @@ -60,5 +197,6 @@ export const deriveMindmapUiState = (input: MindmapUiStateInput): MindmapUiState activeNodeId, readonly: input.readonly, disabledActions, + shell, }; }; diff --git a/wolai-frontend/src/lib/mindmap/simple-mind-map-bridge.test.ts b/wolai-frontend/src/lib/mindmap/simple-mind-map-bridge.test.ts index 823e3bf4..ce47d8d0 100644 --- a/wolai-frontend/src/lib/mindmap/simple-mind-map-bridge.test.ts +++ b/wolai-frontend/src/lib/mindmap/simple-mind-map-bridge.test.ts @@ -56,6 +56,32 @@ describe("simple-mind-map bridge contract", () => { expect(options.viewData).toEqual({ state: { scale: 0.8, x: 1, y: 2 }, transform: { scaleX: 0.8, scaleY: 0.8 } }); }); + it("fallback projection 默认使用 KMind 风格主题与右向逻辑结构", () => { + const projection = createFallbackMindmapAdapterProjection({ + mindmapId: "mind_1", + root: { data: { text: "KMIND" }, children: [] }, + }); + + expect(projection.layout).toBe("logicalStructure"); + expect(projection.theme).toBe("default"); + expect(projection.themeConfig).toMatchObject({ + lineStyle: "curve", + root: { + fillColor: "#e25563", + color: "#ffffff", + fontWeight: "bold", + }, + second: { + fillColor: "#4f7df3", + color: "#ffffff", + }, + node: { + color: "#315aa9", + }, + generalizationLineColor: "#ef6a5b", + }); + }); + it("保留 runtimeOptions 中的 fit 设置,避免初始导图被裁切", () => { const projection = createFallbackMindmapAdapterProjection({ mindmapId: "mind_1", diff --git a/wolai-frontend/src/lib/mindmap/simple-mind-map-bridge.ts b/wolai-frontend/src/lib/mindmap/simple-mind-map-bridge.ts index addff179..f677434c 100644 --- a/wolai-frontend/src/lib/mindmap/simple-mind-map-bridge.ts +++ b/wolai-frontend/src/lib/mindmap/simple-mind-map-bridge.ts @@ -1,5 +1,8 @@ import { canonicalizeMindmapData, + createDefaultMindmapThemeConfig, + DEFAULT_MINDMAP_LAYOUT, + DEFAULT_MINDMAP_THEME, defaultMindmapData, type MindMapData, } from "./mindmap-projection"; @@ -21,18 +24,40 @@ export type SimpleMindMapInstance = { execCommand?: (command: string, ...args: unknown[]) => unknown; destroy?: () => void; getData?: (withConfig?: boolean) => unknown; + getLayout?: () => unknown; + getTheme?: () => unknown; + getThemeConfig?: (prop?: unknown) => unknown; on?: (event: string, handler: (...args: unknown[]) => void) => void; off?: (event: string, handler: (...args: unknown[]) => void) => void; + setData?: (data: unknown) => void; + setLayout?: (layout: unknown, notRender?: boolean) => void; setMode?: (mode: "edit" | "readonly") => void; + setTheme?: (theme: unknown, notRender?: boolean) => void; + setThemeConfig?: (config: Record, notRender?: boolean) => void; + updateData?: (data: unknown) => void; + updateConfig?: (config?: Record) => void; view?: { scale?: number; enlarge?: () => void; narrow?: () => void; getTransformData?: () => unknown; setScale?: (scale: number, cx: number, cy: number) => void; + fit?: () => void; }; renderer?: { setRootNodeCenter?: () => void; + textEdit?: { + hideEditTextBox?: () => void; + isShowTextEdit?: () => boolean; + }; + clearActiveNodeList?: () => void; + addNodeToActiveList?: (node: unknown, skipBeforeEvent?: boolean) => void; + emitNodeActiveEvent?: (node?: unknown, activeNodeList?: unknown[]) => void; + findNodeByUid?: (uid: string) => unknown; + activeNodeList?: unknown[]; + lastActiveNodeList?: unknown[]; + root?: unknown; + renderTree?: { _node?: unknown }; }; }; @@ -62,6 +87,7 @@ export type SimpleMindMapBridge = { instance: SimpleMindMapInstance; execCommand: (command: string, ...args: unknown[]) => SimpleMindMapSafeCommandResult; getSnapshot: () => unknown; + refreshProjection?: (reason?: string) => Promise; destroy: () => void; }; @@ -125,6 +151,11 @@ const readRecord = (value: unknown): Record => { return {}; }; +const readThemeConfig = (value: unknown): Record => { + if (!isRecord(value) || Object.keys(value).length === 0) return createDefaultMindmapThemeConfig(); + return value; +}; + const readViewData = (value: unknown): Record | null => { if (!isRecord(value) || !isRecord(value.state)) return null; return { @@ -153,9 +184,9 @@ export const buildSimpleMindMapOptions = (input: { : typeof config.fit === "boolean" ? config.fit : true, - layout: readString(input.projection.layout, "logicalStructure"), - theme: readString(input.projection.theme, "classic"), - themeConfig: readRecord(input.projection.themeConfig), + layout: readString(input.projection.layout, DEFAULT_MINDMAP_LAYOUT), + theme: readString(input.projection.theme, DEFAULT_MINDMAP_THEME), + themeConfig: readThemeConfig(input.projection.themeConfig), viewData: readViewData(input.projection.view), initRootNodePosition: ["center", "center"], }; @@ -241,7 +272,9 @@ export const attachSimpleMindMapEventListeners = (input: { SIMPLE_MIND_MAP_BRIDGE_EVENTS.forEach((eventName) => { const handler = (...args: unknown[]) => { const snapshot = - eventName === "data_change" || eventName === "view_data_change" + eventName === "data_change" + ? input.instance.getData?.() + : eventName === "view_data_change" ? input.instance.getData?.(true) ?? input.instance.getData?.() : undefined; input.onEvent?.({ @@ -266,12 +299,14 @@ export const createSimpleMindMapBridge = async (input: { onEvent?: (event: SimpleMindMapBridgeEvent) => void; }): Promise => { const runtime = await loadSimpleMindMapRuntime(input.pluginNames); + const themeConfig = readThemeConfig(input.projection.themeConfig); const options = buildSimpleMindMapOptions({ el: input.el, projection: input.projection, runtimeOptions: input.runtimeOptions, }); const instance = new runtime.MindMap(options); + instance.setThemeConfig?.(themeConfig); if (input.mode) instance.setMode?.(input.mode); const detachEvents = attachSimpleMindMapEventListeners({ @@ -286,6 +321,7 @@ export const createSimpleMindMapBridge = async (input: { execCommand, getSnapshot: () => instance.getData?.(true) ?? instance.getData?.(), destroy: () => { + instance.renderer?.textEdit?.hideEditTextBox?.(); detachEvents(); instance.destroy?.(); }, @@ -300,9 +336,9 @@ export const createFallbackMindmapAdapterProjection = (input: { schema: "mnote.mindmap.simple_mind_map_scene.v1", runtime: "simple-mind-map", root: input.root ?? defaultMindmapData, - layout: "logicalStructure", - theme: "classic", - themeConfig: {}, + layout: DEFAULT_MINDMAP_LAYOUT, + theme: DEFAULT_MINDMAP_THEME, + themeConfig: createDefaultMindmapThemeConfig(), view: {}, config: {}, compatPayload: { source: "frontend-fallback", mindmapId: input.mindmapId }, diff --git a/wolai-frontend/src/lib/onlyoffice/client-session.test.ts b/wolai-frontend/src/lib/onlyoffice/client-session.test.ts index 18a54beb..70bdf4c7 100644 --- a/wolai-frontend/src/lib/onlyoffice/client-session.test.ts +++ b/wolai-frontend/src/lib/onlyoffice/client-session.test.ts @@ -14,14 +14,37 @@ describe("onlyoffice client session helpers", () => { expect(docTypeFromExt("docx")).toBe("word"); expect(docTypeFromExt("xlsx")).toBe("cell"); expect(docTypeFromExt("pptx")).toBe("slide"); - expect(docTypeFromExt("pdf")).toBe("pdf"); + expect(docTypeFromExt("pdf")).toBe("word"); }); - it("inferOnlyOfficeFileType detects Office assets from file name and MIME", () => { + it("inferOnlyOfficeFileType detects only true Office assets from file name and MIME", () => { expect(inferOnlyOfficeFileType("demo.pptx", null)).toBe("pptx"); expect(inferOnlyOfficeFileType("demo", "application/vnd.openxmlformats-officedocument.wordprocessingml.document")).toBe("docx"); - expect(inferOnlyOfficeFileType("demo", "application/pdf")).toBe("pdf"); + expect(inferOnlyOfficeFileType("demo", "application/pdf")).toBeNull(); expect(inferOnlyOfficeFileType("demo.png", "image/png")).toBeNull(); + expect(inferOnlyOfficeFileType("demo.pdf", null)).toBeNull(); + expect(inferOnlyOfficeFileType("demo.toml", null)).toBeNull(); + expect(inferOnlyOfficeFileType("demo.json", null)).toBeNull(); + expect(inferOnlyOfficeFileType("demo.yaml", null)).toBeNull(); + expect(inferOnlyOfficeFileType("demo.yml", null)).toBeNull(); + expect(inferOnlyOfficeFileType("demo.md", null)).toBeNull(); + expect(inferOnlyOfficeFileType("demo.txt", null)).toBeNull(); + expect(inferOnlyOfficeFileType("demo.ts", null)).toBeNull(); + expect(inferOnlyOfficeFileType("demo.js", null)).toBeNull(); + expect(inferOnlyOfficeFileType("demo.py", null)).toBeNull(); + expect(inferOnlyOfficeFileType("demo.rs", null)).toBeNull(); + expect(inferOnlyOfficeFileType("demo.go", null)).toBeNull(); + expect(inferOnlyOfficeFileType("demo.html", null)).toBeNull(); + expect(inferOnlyOfficeFileType("demo.css", null)).toBeNull(); + expect(inferOnlyOfficeFileType("demo.vue", null)).toBeNull(); + expect(inferOnlyOfficeFileType("demo.svelte", null)).toBeNull(); + expect(inferOnlyOfficeFileType("demo.proto", null)).toBeNull(); + expect(inferOnlyOfficeFileType("demo.graphql", null)).toBeNull(); + expect(inferOnlyOfficeFileType("demo.gradle", null)).toBeNull(); + expect(inferOnlyOfficeFileType("demo.tf", null)).toBeNull(); + expect(inferOnlyOfficeFileType("demo.pdf", "application/vnd.openxmlformats-officedocument.wordprocessingml.document")).toBeNull(); + expect(inferOnlyOfficeFileType("Dockerfile", "application/vnd.openxmlformats-officedocument.wordprocessingml.document")).toBeNull(); + expect(inferOnlyOfficeFileType(".gitignore", "application/vnd.openxmlformats-officedocument.wordprocessingml.document")).toBeNull(); }); it("buildOnlyOfficeAssetOpenUrl keeps attachment identity for callback writeback", () => { diff --git a/wolai-frontend/src/lib/onlyoffice/client-session.ts b/wolai-frontend/src/lib/onlyoffice/client-session.ts index 7535652e..0d804d7e 100644 --- a/wolai-frontend/src/lib/onlyoffice/client-session.ts +++ b/wolai-frontend/src/lib/onlyoffice/client-session.ts @@ -22,11 +22,9 @@ export const docTypeFromExt = (ext: string) => { const word = ["doc", "docx", "odt", "rtf"]; const slide = ["ppt", "pptx", "odp"]; const sheet = ["xls", "xlsx", "ods", "csv"]; - const pdf = ["pdf"]; if (word.includes(ext)) return "word"; if (slide.includes(ext)) return "slide"; if (sheet.includes(ext)) return "cell"; - if (pdf.includes(ext)) return "pdf"; return "word"; }; @@ -34,14 +32,84 @@ export const inferOnlyOfficeFileType = (fileName: string | null | undefined, mim const name = (fileName ?? "").trim().toLowerCase(); const mt = (mimeType ?? "").trim().toLowerCase(); const ext = name.includes(".") ? name.split(".").pop() ?? "" : ""; - if (["doc", "docx", "odt", "rtf"].includes(ext)) return ext; - if (["ppt", "pptx", "odp"].includes(ext)) return ext; - if (["xls", "xlsx", "ods", "csv"].includes(ext)) return ext; - if (ext === "pdf") return ext; + const officeExts = ["doc", "docx", "odt", "rtf", "ppt", "pptx", "odp", "xls", "xlsx", "ods", "csv"]; + const nonOfficeFileNames = [ + ".dockerignore", + ".editorconfig", + ".env", + ".eslintrc", + ".gitattributes", + ".gitignore", + ".npmrc", + ".prettierrc", + "cmakelists.txt", + "dockerfile", + "gemfile", + "makefile", + "procfile", + "rakefile", + ]; + const nonOfficeExts = [ + "pdf", + "toml", + "json", + "jsonc", + "json5", + "yaml", + "yml", + "md", + "markdown", + "txt", + "ini", + "env", + "xml", + "ts", + "tsx", + "js", + "jsx", + "mjs", + "cjs", + "py", + "rs", + "go", + "html", + "htm", + "css", + "scss", + "less", + "vue", + "svelte", + "astro", + "java", + "c", + "cpp", + "h", + "hpp", + "cs", + "php", + "rb", + "sh", + "bash", + "zsh", + "sql", + "lock", + "log", + "proto", + "graphql", + "gql", + "prisma", + "tf", + "tfvars", + "hcl", + "nix", + "gradle", + ]; + if (officeExts.includes(ext)) return ext; + if (nonOfficeFileNames.includes(name)) return null; + if (nonOfficeExts.includes(ext)) return null; if (mt.includes("wordprocessingml")) return "docx"; if (mt.includes("presentationml")) return "pptx"; if (mt.includes("spreadsheetml")) return "xlsx"; - if (mt.includes("pdf")) return "pdf"; return null; };