pmx-canvas 0.10.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (343) hide show
  1. package/.github/extensions/pmx-canvas/extension.mjs +3 -1
  2. package/.github/extensions/pmx-canvas/runtime.json +1 -1
  3. package/.github/extensions/pmx-canvas/tools.json +688 -128
  4. package/CHANGELOG.md +69 -0
  5. package/dist/amp-plugin/pmx-canvas/LICENSE +21 -0
  6. package/dist/amp-plugin/pmx-canvas/THIRD_PARTY_LICENSES.txt +331 -0
  7. package/dist/amp-plugin/pmx-canvas/index.js +5445 -0
  8. package/dist/amp-plugin/pmx-canvas/runtime.json +3 -0
  9. package/dist/amp-plugin/pmx-canvas/shared-runtime.mjs +194 -0
  10. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/SKILL.md +251 -0
  11. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/evals/evals.json +1086 -0
  12. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/evals/fixtures/code-exploration/src/auth/jwt.ts +17 -0
  13. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/evals/fixtures/code-exploration/src/auth/login.ts +12 -0
  14. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/evals/fixtures/code-exploration/src/auth/middleware.ts +13 -0
  15. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/evals/fixtures/code-exploration/src/routes/auth.ts +13 -0
  16. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/evals/fixtures/investigation-board/src/handlers/users.ts +27 -0
  17. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/mcp.json +36 -0
  18. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/references/ax-html-control-surface.md +101 -0
  19. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/references/codex-app-adapter.md +151 -0
  20. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/references/excalidraw-diagram-authoring.md +150 -0
  21. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/references/full-reference.md +1785 -0
  22. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/references/github-copilot-app-adapter.md +223 -0
  23. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/references/html-primitives.md +139 -0
  24. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/references/importing-context.md +132 -0
  25. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/references/installing-pmx-canvas.md +251 -0
  26. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/references/tours-and-recording.md +111 -0
  27. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/references/workbench-workflows.md +900 -0
  28. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas-orchestration/SKILL.md +141 -0
  29. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas-testing/SKILL.md +266 -0
  30. package/dist/amp-plugin/pmx-canvas/start-mcp.mjs +14857 -0
  31. package/dist/amp-plugin/pmx-canvas/tools.json +10963 -0
  32. package/dist/canvas/chunks/abnfDiagram-N423BO3Z-cwtsds5d.js +1 -0
  33. package/dist/canvas/chunks/architecture-TIHT7OUA-x63cwejs.js +1 -0
  34. package/dist/canvas/chunks/architectureDiagram-T3A2C74G-b4xc9tpz.js +36 -0
  35. package/dist/canvas/chunks/blockDiagram-VBNYF7ZC-ahp3yxxs.js +132 -0
  36. package/dist/canvas/chunks/c4Diagram-5PPSVZJV-nappnay7.js +10 -0
  37. package/dist/canvas/chunks/classDiagram-JCYQIIEL-k1j2xc1t.js +1 -0
  38. package/dist/canvas/chunks/classDiagram-v2-OCEON4UE-33x08xf2.js +1 -0
  39. package/dist/canvas/chunks/cose-bilkent-JH36ORCC-a428syda.js +1 -0
  40. package/dist/canvas/chunks/cynefin-VYW2F7L2-8v6jxfz8.js +1 -0
  41. package/dist/canvas/chunks/cynefinDiagram-MW4NZA55-nspsqebj.js +62 -0
  42. package/dist/canvas/chunks/dagre-VZM6K2ZE-8y6177fh.js +4 -0
  43. package/dist/canvas/chunks/diagram-7IWD3JNH-vym028wn.js +30 -0
  44. package/dist/canvas/chunks/diagram-B4RE2ZJO-jddqb8sy.js +3 -0
  45. package/dist/canvas/chunks/diagram-LBJQPF4R-bjwbpkrn.js +24 -0
  46. package/dist/canvas/chunks/diagram-Q27KOJAE-j6ph6hcx.js +24 -0
  47. package/dist/canvas/chunks/diagram-UB23O5K3-p09w8jej.js +41 -0
  48. package/dist/canvas/chunks/ebnfDiagram-BXEA7PRR-j975ycq5.js +1 -0
  49. package/dist/canvas/chunks/erDiagram-JOGREHBK-sxp6hjn8.js +85 -0
  50. package/dist/canvas/chunks/eventmodeling-45OFAUF4-xzfgn6xg.js +1 -0
  51. package/dist/canvas/chunks/flowDiagram-UKHOOZJN-2nsmkskb.js +1 -0
  52. package/dist/canvas/chunks/ganttDiagram-PKOTCBZU-4tv230y2.js +292 -0
  53. package/dist/canvas/chunks/gitGraph-TEB2WS4Q-macbhand.js +1 -0
  54. package/dist/canvas/chunks/gitGraphDiagram-DS77QQ5N-mqgmnw9g.js +106 -0
  55. package/dist/canvas/chunks/index-037z5dz2.js +232 -0
  56. package/dist/canvas/chunks/index-081n3har.js +207 -0
  57. package/dist/canvas/chunks/index-5n03dmb9.js +2 -0
  58. package/dist/canvas/chunks/index-5tv8v1hk.js +1 -0
  59. package/dist/canvas/chunks/index-60pgzdqe.js +157 -0
  60. package/dist/canvas/chunks/index-6ceya556.js +332 -0
  61. package/dist/canvas/chunks/index-8g1vb57n.js +2 -0
  62. package/dist/canvas/chunks/index-8rjes9r6.js +2 -0
  63. package/dist/canvas/chunks/index-9022d1n9.js +16 -0
  64. package/dist/canvas/chunks/index-9b02042t.js +2 -0
  65. package/dist/canvas/chunks/index-ap4q4vez.js +2 -0
  66. package/dist/canvas/chunks/index-dyp2nhd3.js +2 -0
  67. package/dist/canvas/chunks/index-frvta4tm.js +2 -0
  68. package/dist/canvas/chunks/index-gf4e0et4.js +2 -0
  69. package/dist/canvas/chunks/index-h9ycj8n2.js +2 -0
  70. package/dist/canvas/chunks/index-hj99nz1f.js +1 -0
  71. package/dist/canvas/chunks/index-mergmj97.js +2 -0
  72. package/dist/canvas/chunks/index-nwsya6dj.js +301 -0
  73. package/dist/canvas/chunks/index-nz8qbd1p.js +2 -0
  74. package/dist/canvas/chunks/index-qhfrazv3.js +2 -0
  75. package/dist/canvas/chunks/index-v119nznk.js +4 -0
  76. package/dist/canvas/chunks/index-vpt37m3d.js +89 -0
  77. package/dist/canvas/chunks/index-y9ma6azy.js +2 -0
  78. package/dist/canvas/chunks/index-zx0j3a2z.js +179 -0
  79. package/dist/canvas/chunks/info-DKCQHKI2-a0ykzs9z.js +1 -0
  80. package/dist/canvas/chunks/infoDiagram-6WML65LV-qv97qq6a.js +2 -0
  81. package/dist/canvas/chunks/ishikawaDiagram-WSZJBQD7-p9306gh0.js +70 -0
  82. package/dist/canvas/chunks/journeyDiagram-NVQOT4AX-sv67zats.js +139 -0
  83. package/dist/canvas/chunks/kanban-definition-27J2QSJJ-k2pfam6p.js +89 -0
  84. package/dist/canvas/chunks/katex-dmg8k4zm.js +257 -0
  85. package/dist/canvas/chunks/mermaid.core-83r0fdce.js +12 -0
  86. package/dist/canvas/chunks/mindmap-definition-FAOFIHXS-vg2newm1.js +96 -0
  87. package/dist/canvas/chunks/packet-7NZHBO7P-tqnabcdv.js +1 -0
  88. package/dist/canvas/chunks/pegDiagram-VL7TDLO6-k2h7zc5n.js +1 -0
  89. package/dist/canvas/chunks/pie-RZYD4A2V-wke6gyhe.js +1 -0
  90. package/dist/canvas/chunks/pieDiagram-7S7Q4E2Y-hg169p1v.js +39 -0
  91. package/dist/canvas/chunks/quadrantDiagram-CIZ2JOQS-bxtvsq0b.js +7 -0
  92. package/dist/canvas/chunks/radar-I7S5WNFK-w7ka0drw.js +1 -0
  93. package/dist/canvas/chunks/railroad-3IZDKUUU-y3vg318x.js +1 -0
  94. package/dist/canvas/chunks/railroad-abnf-AHOZXSZD-6hqvcz3c.js +1 -0
  95. package/dist/canvas/chunks/railroad-ebnf-EBAXGLYW-vcae260m.js +1 -0
  96. package/dist/canvas/chunks/railroad-peg-LSFZ7HO6-0dbyme23.js +1 -0
  97. package/dist/canvas/chunks/railroadDiagram-AXF67PYL-njyhcp4p.js +1 -0
  98. package/dist/canvas/chunks/requirementDiagram-LRYGKXZP-2z6v09gm.js +84 -0
  99. package/dist/canvas/chunks/sankeyDiagram-W5VNT64P-15mzam0e.js +40 -0
  100. package/dist/canvas/chunks/sequenceDiagram-SI44F4Z6-rbshyd2c.js +162 -0
  101. package/dist/canvas/chunks/sizeCapture-X5ZJPWSS-sg26xwts.js +1 -0
  102. package/dist/canvas/chunks/stateDiagram-OKZ733FA-6eahp98e.js +1 -0
  103. package/dist/canvas/chunks/stateDiagram-v2-UEYNNEHI-tty0ggn5.js +1 -0
  104. package/dist/canvas/chunks/swimlanes-SLNWSIFB-ze5db10t.js +1 -0
  105. package/dist/canvas/chunks/swimlanesDiagram-ULZ7WXOC-thze75gq.js +8 -0
  106. package/dist/canvas/chunks/timeline-definition-Z64GVDOM-vnp7jyy8.js +120 -0
  107. package/dist/canvas/chunks/treeView-QDETBFTQ-6ysffnm6.js +1 -0
  108. package/dist/canvas/chunks/treemap-6X3UGDF4-m3h9p066.js +1 -0
  109. package/dist/canvas/chunks/vennDiagram-T6HMQDX7-0qrnb7mj.js +34 -0
  110. package/dist/canvas/chunks/wardley-OPB4EBWU-dp37drwx.js +1 -0
  111. package/dist/canvas/chunks/wardleyDiagram-T6FBY63Y-8nxg8wqt.js +78 -0
  112. package/dist/canvas/chunks/xychartDiagram-ELKLHX3M-nj921e7s.js +7 -0
  113. package/dist/canvas/global.css +483 -230
  114. package/dist/canvas/index.js +158 -219
  115. package/dist/canvas/mcp-app.html +4301 -548
  116. package/dist/canvas/mermaid-entry.js +338 -338
  117. package/dist/canvas/surface-theme.css +6 -6
  118. package/dist/json-render/index.css +1 -1
  119. package/dist/json-render/index.js +49 -49
  120. package/dist/types/client/canvas/BarHint.d.ts +5 -3
  121. package/dist/types/client/canvas/BoardMoveDialog.d.ts +2 -0
  122. package/dist/types/client/canvas/CanvasNode.d.ts +0 -11
  123. package/dist/types/client/canvas/EdgeEditor.d.ts +19 -0
  124. package/dist/types/client/canvas/EdgeLayer.d.ts +1 -2
  125. package/dist/types/client/canvas/GroupNavigation.d.ts +2 -0
  126. package/dist/types/client/canvas/TextPrompt.d.ts +4 -0
  127. package/dist/types/client/canvas/auto-fit.d.ts +4 -5
  128. package/dist/types/client/mermaid-entry.d.ts +1 -2
  129. package/dist/types/client/mermaid-render.d.ts +1 -0
  130. package/dist/types/client/nodes/BoardNode.d.ts +1 -1
  131. package/dist/types/client/nodes/ExtAppFrame.d.ts +7 -90
  132. package/dist/types/client/nodes/McpAppNode.d.ts +1 -25
  133. package/dist/types/client/nodes/MermaidNode.d.ts +1 -8
  134. package/dist/types/client/nodes/PromptNode.d.ts +1 -0
  135. package/dist/types/client/nodes/ViewerFrame.d.ts +29 -0
  136. package/dist/types/client/nodes/ViewerHost.d.ts +6 -0
  137. package/dist/types/client/nodes/WorkCard.d.ts +7 -0
  138. package/dist/types/client/nodes/iframe-document-url.d.ts +3 -9
  139. package/dist/types/client/nodes/primitive-copy.d.ts +5 -0
  140. package/dist/types/client/nodes/use-ax-surface-bridge.d.ts +1 -0
  141. package/dist/types/client/nodes/use-iframe-content-height.d.ts +1 -1
  142. package/dist/types/client/nodes/use-surface-frame.d.ts +4 -6
  143. package/dist/types/client/nodes/viewer-runtime-state.d.ts +2 -1
  144. package/dist/types/client/state/canvas-store.d.ts +18 -1
  145. package/dist/types/client/state/human-store.d.ts +2 -0
  146. package/dist/types/client/state/intent-bridge.d.ts +5 -2
  147. package/dist/types/client/state/presentation.d.ts +17 -6
  148. package/dist/types/client/state/relation-store.d.ts +11 -0
  149. package/dist/types/client/types.d.ts +1 -1
  150. package/dist/types/json-render/catalog.d.ts +2 -2
  151. package/dist/types/json-render/server.d.ts +2 -1
  152. package/dist/types/server/agent-presence.d.ts +1 -0
  153. package/dist/types/server/ax-interaction.d.ts +1 -0
  154. package/dist/types/server/ax-state-manager.d.ts +10 -2
  155. package/dist/types/server/board-local.d.ts +4 -0
  156. package/dist/types/server/board-move.d.ts +38 -0
  157. package/dist/types/server/canvas-db.d.ts +12 -2
  158. package/dist/types/server/canvas-operations.d.ts +5 -6
  159. package/dist/types/server/canvas-provenance.d.ts +1 -1
  160. package/dist/types/server/canvas-serialization.d.ts +1 -0
  161. package/dist/types/server/canvas-state.d.ts +86 -20
  162. package/dist/types/server/card-relocation.d.ts +6 -0
  163. package/dist/types/server/context-reads.d.ts +3 -1
  164. package/dist/types/server/human-presence.d.ts +1 -1
  165. package/dist/types/server/index.d.ts +26 -10
  166. package/dist/types/server/intent-registry.d.ts +8 -4
  167. package/dist/types/server/knowledge-lifecycle.d.ts +4 -2
  168. package/dist/types/server/mutation-history.d.ts +7 -5
  169. package/dist/types/server/operations/ops/boards.d.ts +0 -1
  170. package/dist/types/server/operations/registry.d.ts +2 -0
  171. package/dist/types/server/tour-control.d.ts +13 -3
  172. package/dist/types/server/trace-manager.d.ts +1 -0
  173. package/dist/types/shared/ax-kinds.d.ts +6 -0
  174. package/dist/types/shared/ax-surface-protocol.d.ts +8 -9
  175. package/dist/types/shared/human-presence.d.ts +1 -0
  176. package/dist/types/shared/lifecycle-status.d.ts +2 -0
  177. package/dist/types/shared/tour.d.ts +8 -0
  178. package/docs/RELEASE.md +21 -14
  179. package/docs/agent-plugin.md +16 -2
  180. package/docs/amp-plugin.md +271 -0
  181. package/docs/cli.md +42 -3
  182. package/docs/design/Chrome.dc.html +32 -6
  183. package/docs/design/GuestName.dc.html +50 -0
  184. package/docs/design/PluginLogo.svg +7 -0
  185. package/docs/design/Types1.dc.html +3 -2
  186. package/docs/design/Types2.dc.html +1 -1
  187. package/docs/design/Types3.dc.html +1 -1
  188. package/docs/design/WorkCards.dc.html +39 -0
  189. package/docs/design/Zoom.dc.html +37 -60
  190. package/docs/design/canvas.json +17 -1
  191. package/docs/design/plugin-logo.png +0 -0
  192. package/docs/design.md +280 -12
  193. package/docs/evals/agents-md-sections.md +38 -0
  194. package/docs/http-api.md +179 -11
  195. package/docs/mcp.md +69 -9
  196. package/docs/node-types.md +109 -4
  197. package/docs/plans/plan-009-tech-debt-backlog.md +3 -3
  198. package/docs/plans/plan-019-post-0.9-roadmap.md +327 -31
  199. package/docs/plans/plan-020-wave-5-work-planning.md +553 -0
  200. package/docs/product-vision-2026-09.md +42 -17
  201. package/docs/sdk.md +18 -0
  202. package/package.json +7 -4
  203. package/plugins/pmx-canvas/assets/preview.png +0 -0
  204. package/plugins/pmx-canvas/com.github.copilot/extensions/pmx-canvas/extension.mjs +3 -1
  205. package/plugins/pmx-canvas/com.github.copilot/extensions/pmx-canvas/runtime.json +1 -1
  206. package/plugins/pmx-canvas/plugin.json +2 -2
  207. package/plugins/pmx-canvas/runtime.json +1 -1
  208. package/plugins/pmx-canvas/tools.json +688 -128
  209. package/skills/data-analysis/SKILL.md +13 -26
  210. package/skills/frontend-design/LICENSE.txt +177 -0
  211. package/skills/frontend-design/SKILL.md +3 -0
  212. package/skills/pmx-canvas/SKILL.md +232 -849
  213. package/skills/pmx-canvas/evals/evals.json +26 -3
  214. package/skills/pmx-canvas/references/full-reference.md +89 -24
  215. package/skills/pmx-canvas/references/html-primitives.md +7 -0
  216. package/skills/pmx-canvas/references/installing-pmx-canvas.md +6 -6
  217. package/skills/pmx-canvas/references/tours-and-recording.md +29 -2
  218. package/skills/pmx-canvas/references/workbench-workflows.md +900 -0
  219. package/skills/pmx-canvas-testing/SKILL.md +7 -5
  220. package/skills/published-consumer-e2e/SKILL.md +25 -8
  221. package/skills/published-consumer-e2e/scripts/run-published-consumer-e2e.sh +51 -77
  222. package/skills/web-artifacts-builder/LICENSE.txt +202 -0
  223. package/skills/web-artifacts-builder/SKILL.md +6 -0
  224. package/skills/web-artifacts-builder/scripts/init-artifact.sh +2 -2
  225. package/src/cli/commands/apps.ts +1 -0
  226. package/src/cli/commands/boards.ts +30 -0
  227. package/src/client/App.tsx +20 -4
  228. package/src/client/canvas/AttentionHistory.tsx +10 -2
  229. package/src/client/canvas/BarHint.tsx +6 -3
  230. package/src/client/canvas/BoardMoveDialog.tsx +225 -0
  231. package/src/client/canvas/CanvasNode.tsx +79 -49
  232. package/src/client/canvas/CanvasViewport.tsx +42 -14
  233. package/src/client/canvas/ContextMenu.tsx +97 -15
  234. package/src/client/canvas/EdgeEditor.tsx +149 -0
  235. package/src/client/canvas/EdgeLayer.tsx +441 -174
  236. package/src/client/canvas/ExpandedNodeOverlay.tsx +5 -2
  237. package/src/client/canvas/GroupNavigation.tsx +85 -0
  238. package/src/client/canvas/Presentation.tsx +53 -3
  239. package/src/client/canvas/RelationsPanel.tsx +9 -0
  240. package/src/client/canvas/SelectionBar.tsx +21 -0
  241. package/src/client/canvas/SessionPanel.tsx +35 -1
  242. package/src/client/canvas/TextPrompt.tsx +18 -1
  243. package/src/client/canvas/TopBar.tsx +54 -9
  244. package/src/client/canvas/auto-fit.ts +9 -11
  245. package/src/client/canvas/canvas-area.ts +2 -2
  246. package/src/client/canvas/use-focus-trap.ts +6 -1
  247. package/src/client/mermaid-entry.ts +6 -20
  248. package/src/client/mermaid-render.ts +39 -0
  249. package/src/client/nodes/AxStepControls.tsx +45 -69
  250. package/src/client/nodes/BoardNode.tsx +65 -9
  251. package/src/client/nodes/ContextNode.tsx +88 -396
  252. package/src/client/nodes/ExtAppFrame.tsx +302 -1465
  253. package/src/client/nodes/FileNode.tsx +92 -81
  254. package/src/client/nodes/HtmlNode.tsx +8 -36
  255. package/src/client/nodes/LedgerNode.tsx +31 -17
  256. package/src/client/nodes/MarkdownNode.tsx +14 -24
  257. package/src/client/nodes/McpAppNode.tsx +48 -154
  258. package/src/client/nodes/MermaidNode.tsx +80 -69
  259. package/src/client/nodes/PromptNode.tsx +44 -17
  260. package/src/client/nodes/ResponseNode.tsx +8 -6
  261. package/src/client/nodes/StatusNode.tsx +34 -7
  262. package/src/client/nodes/StatusSummary.tsx +16 -3
  263. package/src/client/nodes/TraceNode.tsx +8 -8
  264. package/src/client/nodes/ViewerFrame.tsx +273 -0
  265. package/src/client/nodes/ViewerHost.tsx +41 -0
  266. package/src/client/nodes/WebpageNode.tsx +22 -24
  267. package/src/client/nodes/WorkCard.tsx +175 -0
  268. package/src/client/nodes/iframe-document-url.ts +20 -27
  269. package/src/client/nodes/primitive-copy.ts +97 -0
  270. package/src/client/nodes/use-ax-surface-bridge.ts +18 -14
  271. package/src/client/nodes/use-iframe-content-height.ts +34 -10
  272. package/src/client/nodes/use-surface-frame.ts +22 -11
  273. package/src/client/nodes/viewer-runtime-state.ts +41 -35
  274. package/src/client/state/attention-bridge.ts +5 -0
  275. package/src/client/state/attention-store.ts +1 -0
  276. package/src/client/state/canvas-store.ts +202 -26
  277. package/src/client/state/human-store.ts +22 -2
  278. package/src/client/state/intent-bridge.ts +20 -5
  279. package/src/client/state/presentation.ts +135 -15
  280. package/src/client/state/relation-store.ts +127 -1
  281. package/src/client/state/sse-bridge.ts +18 -19
  282. package/src/client/theme/global.css +483 -230
  283. package/src/client/theme/surface-theme.css +6 -6
  284. package/src/client/types.ts +1 -0
  285. package/src/json-render/charts/tufte-components.tsx +44 -2
  286. package/src/json-render/renderer/index.css +62 -2
  287. package/src/json-render/renderer/index.tsx +31 -7
  288. package/src/json-render/server.ts +3 -2
  289. package/src/mcp/server.ts +13 -3
  290. package/src/server/agent-presence.ts +43 -23
  291. package/src/server/ax-flow-loop.ts +6 -0
  292. package/src/server/ax-gate-ttl.ts +8 -1
  293. package/src/server/ax-interaction.ts +16 -10
  294. package/src/server/ax-state-manager.ts +17 -4
  295. package/src/server/ax-wait.ts +20 -6
  296. package/src/server/board-export.ts +54 -30
  297. package/src/server/board-local.ts +20 -0
  298. package/src/server/board-move.ts +297 -0
  299. package/src/server/canvas-db.ts +249 -158
  300. package/src/server/canvas-geometry.ts +1 -0
  301. package/src/server/canvas-operations.ts +139 -109
  302. package/src/server/canvas-schema.ts +21 -0
  303. package/src/server/canvas-serialization.ts +2 -0
  304. package/src/server/canvas-state.ts +797 -159
  305. package/src/server/card-relocation.ts +53 -0
  306. package/src/server/code-graph.ts +4 -3
  307. package/src/server/context-reads.ts +83 -55
  308. package/src/server/demo-state.json +140 -114
  309. package/src/server/file-watcher.ts +30 -10
  310. package/src/server/html-primitives.ts +3 -9
  311. package/src/server/html-surface.ts +8 -0
  312. package/src/server/human-presence.ts +18 -5
  313. package/src/server/index.ts +54 -24
  314. package/src/server/intent-registry.ts +43 -5
  315. package/src/server/knowledge-lifecycle.ts +32 -9
  316. package/src/server/lifecycle-status.ts +29 -1
  317. package/src/server/mcp-app-runtime.ts +26 -7
  318. package/src/server/mutation-history.ts +37 -8
  319. package/src/server/operations/composites.ts +6 -3
  320. package/src/server/operations/mcp-contracts.ts +32 -2
  321. package/src/server/operations/mcp.ts +36 -9
  322. package/src/server/operations/ops/annotation.ts +22 -1
  323. package/src/server/operations/ops/ax-await.ts +1 -0
  324. package/src/server/operations/ops/ax-timeline.ts +28 -2
  325. package/src/server/operations/ops/batch.ts +25 -11
  326. package/src/server/operations/ops/boards.ts +45 -6
  327. package/src/server/operations/ops/nodes.ts +70 -0
  328. package/src/server/operations/ops/query.ts +32 -3
  329. package/src/server/operations/ops/snapshots.ts +1 -0
  330. package/src/server/operations/ops/viewport.ts +11 -9
  331. package/src/server/operations/registry.ts +49 -4
  332. package/src/server/server.ts +69 -75
  333. package/src/server/tour-control.ts +97 -12
  334. package/src/server/trace-manager.ts +4 -0
  335. package/src/server/web-artifacts/scripts/init-artifact.sh +2 -2
  336. package/src/shared/agent-context.ts +7 -1
  337. package/src/shared/auto-arrange.ts +5 -4
  338. package/src/shared/ax-kinds.ts +13 -0
  339. package/src/shared/ax-surface-protocol.ts +20 -9
  340. package/src/shared/content-height-reporter.ts +4 -3
  341. package/src/shared/human-presence.ts +1 -0
  342. package/src/shared/lifecycle-status.ts +2 -0
  343. package/src/shared/tour.ts +8 -0
@@ -0,0 +1,332 @@
1
+ function Ps(r,e){(e==null||e>r.length)&&(e=r.length);for(var t=0,a=Array(e);t<e;t++)a[t]=r[t];return a}function tc(r){if(Array.isArray(r))return r}function ac(r){if(Array.isArray(r))return Ps(r)}function pt(r,e){if(!(r instanceof e))throw TypeError("Cannot call a class as a function")}function nc(r,e){for(var t=0;t<e.length;t++){var a=e[t];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(r,ev(a.key),a)}}function yt(r,e,t){return e&&nc(r.prototype,e),Object.defineProperty(r,"prototype",{writable:!1}),r}function Sr(r,e){var t=typeof Symbol<"u"&&r[Symbol.iterator]||r["@@iterator"];if(!t){if(Array.isArray(r)||(t=Ys(r))||e){t&&(r=t);var a=0,n=function(){};return{s:n,n:function(){return a>=r.length?{done:!0}:{done:!1,value:r[a++]}},e:function(u){throw u},f:n}}throw TypeError(`Invalid attempt to iterate non-iterable instance.
2
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i,s=!0,o=!1;return{s:function(){t=t.call(r)},n:function(){var u=t.next();return s=u.done,u},e:function(u){o=!0,i=u},f:function(){try{s||t.return==null||t.return()}finally{if(o)throw i}}}}function jl(r,e,t){return(e=ev(e))in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}function ic(r){if(typeof Symbol<"u"&&r[Symbol.iterator]!=null||r["@@iterator"]!=null)return Array.from(r)}function sc(r,e){var t=r==null?null:typeof Symbol<"u"&&r[Symbol.iterator]||r["@@iterator"];if(t!=null){var a,n,i,s,o=[],u=!0,l=!1;try{if(i=(t=t.call(r)).next,e===0){if(Object(t)!==t)return;u=!1}else for(;!(u=(a=i.call(t)).done)&&(o.push(a.value),o.length!==e);u=!0);}catch(v){l=!0,n=v}finally{try{if(!u&&t.return!=null&&(s=t.return(),Object(s)!==s))return}finally{if(l)throw n}}return o}}function oc(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
3
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function uc(){throw TypeError(`Invalid attempt to spread non-iterable instance.
4
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function je(r,e){return tc(r)||sc(r,e)||Ys(r,e)||oc()}function bn(r){return ac(r)||ic(r)||Ys(r)||uc()}function lc(r,e){if(typeof r!="object"||!r)return r;var t=r[Symbol.toPrimitive];if(t!==void 0){var a=t.call(r,e);if(typeof a!="object")return a;throw TypeError("@@toPrimitive must return a primitive value.")}return String(r)}function ev(r){var e=lc(r,"string");return typeof e=="symbol"?e:e+""}function ar(r){return ar=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ar(r)}function Ys(r,e){if(r){if(typeof r=="string")return Ps(r,e);var t={}.toString.call(r).slice(8,-1);return t==="Object"&&r.constructor&&(t=r.constructor.name),t==="Map"||t==="Set"?Array.from(r):t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?Ps(r,e):void 0}}var rr=typeof window>"u"?null:window,So=rr?rr.navigator:null;rr&&rr.document;var vc=ar(""),rv=ar({}),fc=ar(function(){}),cc=typeof HTMLElement>"u"?"undefined":ar(HTMLElement),Ia=function(e){return e&&e.instanceString&&Ke(e.instanceString)?e.instanceString():null},ge=function(e){return e!=null&&ar(e)==vc},Ke=function(e){return e!=null&&ar(e)===fc},_e=function(e){return!kr(e)&&(Array.isArray?Array.isArray(e):e!=null&&e instanceof Array)},Ie=function(e){return e!=null&&ar(e)===rv&&!_e(e)&&e.constructor===Object},dc=function(e){return e!=null&&ar(e)===rv},ne=function(e){return e!=null&&ar(e)===ar(1)&&!isNaN(e)},hc=function(e){return ne(e)&&Math.floor(e)===e},wn=function(e){if(cc==="undefined")return;else return e!=null&&e instanceof HTMLElement},kr=function(e){return Oa(e)||tv(e)},Oa=function(e){return Ia(e)==="collection"&&e._private.single},tv=function(e){return Ia(e)==="collection"&&!e._private.single},Zs=function(e){return Ia(e)==="core"},av=function(e){return Ia(e)==="stylesheet"},gc=function(e){return Ia(e)==="event"},vt=function(e){if(e===void 0||e===null)return!0;else if(e===""||e.match(/^\s+$/))return!0;return!1},pc=function(e){if(typeof HTMLElement>"u")return!1;else return e instanceof HTMLElement},yc=function(e){return Ie(e)&&ne(e.x1)&&ne(e.x2)&&ne(e.y1)&&ne(e.y2)},mc=function(e){return dc(e)&&Ke(e.then)},bc=function(){return So&&So.userAgent.match(/msie|trident|edge/i)},Qt=function(e,t){if(!t)t=function(){if(arguments.length===1)return arguments[0];else if(arguments.length===0)return"undefined";var i=[];for(var s=0;s<arguments.length;s++)i.push(arguments[s]);return i.join("$")};var a=function(){var i=this,s=arguments,o,u=t.apply(i,s),l=a.cache;if(!(o=l[u]))o=l[u]=e.apply(i,s);return o};return a.cache={},a},Qs=Qt(function(r){return r.replace(/([A-Z])/g,function(e){return"-"+e.toLowerCase()})}),Ln=Qt(function(r){return r.replace(/(-\w)/g,function(e){return e[1].toUpperCase()})}),nv=Qt(function(r,e){return r+e[0].toUpperCase()+e.substring(1)},function(r,e){return r+"$"+e}),ko=function(e){if(vt(e))return e;return e.charAt(0).toUpperCase()+e.substring(1)},it=function(e,t){return e.slice(-1*t.length)===t},tr="(?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))",wc="rgb[a]?\\(("+tr+"[%]?)\\s*,\\s*("+tr+"[%]?)\\s*,\\s*("+tr+"[%]?)(?:\\s*,\\s*("+tr+"))?\\)",xc="rgb[a]?\\((?:"+tr+"[%]?)\\s*,\\s*(?:"+tr+"[%]?)\\s*,\\s*(?:"+tr+"[%]?)(?:\\s*,\\s*(?:"+tr+"))?\\)",Ec="hsl[a]?\\(("+tr+")\\s*,\\s*("+tr+"[%])\\s*,\\s*("+tr+"[%])(?:\\s*,\\s*("+tr+"))?\\)",Cc="hsl[a]?\\((?:"+tr+")\\s*,\\s*(?:"+tr+"[%])\\s*,\\s*(?:"+tr+"[%])(?:\\s*,\\s*(?:"+tr+"))?\\)",Tc="\\#[0-9a-fA-F]{3}",Sc="\\#[0-9a-fA-F]{6}",iv=function(e,t){if(e<t)return-1;else if(e>t)return 1;else return 0},kc=function(e,t){return-1*iv(e,t)},me=Object.assign!=null?Object.assign.bind(Object):function(r){var e=arguments;for(var t=1;t<e.length;t++){var a=e[t];if(a==null)continue;var n=Object.keys(a);for(var i=0;i<n.length;i++){var s=n[i];r[s]=a[s]}}return r},Dc=function(e){if(!(e.length===4||e.length===7)||e[0]!=="#")return;var t=e.length===4,a,n,i,s=16;if(t)a=parseInt(e[1]+e[1],s),n=parseInt(e[2]+e[2],s),i=parseInt(e[3]+e[3],s);else a=parseInt(e[1]+e[2],s),n=parseInt(e[3]+e[4],s),i=parseInt(e[5]+e[6],s);return[a,n,i]},Bc=function(e){var t,a,n,i,s,o,u,l;function v(d,y,g){if(g<0)g+=1;if(g>1)g-=1;if(g<0.16666666666666666)return d+(y-d)*6*g;if(g<0.5)return y;if(g<0.6666666666666666)return d+(y-d)*(0.6666666666666666-g)*6;return d}var f=new RegExp("^"+Ec+"$").exec(e);if(f){if(a=parseInt(f[1]),a<0)a=(360- -1*a%360)%360;else if(a>360)a=a%360;if(a/=360,n=parseFloat(f[2]),n<0||n>100)return;if(n=n/100,i=parseFloat(f[3]),i<0||i>100)return;if(i=i/100,s=f[4],s!==void 0){if(s=parseFloat(s),s<0||s>1)return}if(n===0)o=u=l=Math.round(i*255);else{var c=i<0.5?i*(1+n):i+n-i*n,h=2*i-c;o=Math.round(255*v(h,c,a+0.3333333333333333)),u=Math.round(255*v(h,c,a)),l=Math.round(255*v(h,c,a-0.3333333333333333))}t=[o,u,l,s]}return t},Pc=function(e){var t,a=new RegExp("^"+wc+"$").exec(e);if(a){t=[];var n=[];for(var i=1;i<=3;i++){var s=a[i];if(s[s.length-1]==="%")n[i]=!0;if(s=parseFloat(s),n[i])s=s/100*255;if(s<0||s>255)return;t.push(Math.floor(s))}var o=n[1]||n[2]||n[3],u=n[1]&&n[2]&&n[3];if(o&&!u)return;var l=a[4];if(l!==void 0){if(l=parseFloat(l),l<0||l>1)return;t.push(l)}}return t},Ac=function(e){return Rc[e.toLowerCase()]},sv=function(e){return(_e(e)?e:null)||Ac(e)||Dc(e)||Pc(e)||Bc(e)},Rc={transparent:[0,0,0,0],aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],grey:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},ov=function(e){var{map:t,keys:a}=e,n=a.length;for(var i=0;i<n;i++){var s=a[i];if(Ie(s))throw Error("Tried to set map with object key");if(i<a.length-1){if(t[s]==null)t[s]={};t=t[s]}else t[s]=e.value}},uv=function(e){var{map:t,keys:a}=e,n=a.length;for(var i=0;i<n;i++){var s=a[i];if(Ie(s))throw Error("Tried to get map with object key");if(t=t[s],t==null)return t}return t},Xa=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Na(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}var jn,Do;function za(){if(Do)return jn;Do=1;function r(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}return jn=r,jn}var ei,Bo;function Mc(){if(Bo)return ei;Bo=1;var r=typeof Xa=="object"&&Xa&&Xa.Object===Object&&Xa;return ei=r,ei}var ri,Po;function In(){if(Po)return ri;Po=1;var r=Mc(),e=typeof self=="object"&&self&&self.Object===Object&&self,t=r||e||Function("return this")();return ri=t,ri}var ti,Ao;function Lc(){if(Ao)return ti;Ao=1;var r=In(),e=function(){return r.Date.now()};return ti=e,ti}var ai,Ro;function Ic(){if(Ro)return ai;Ro=1;var r=/\s/;function e(t){var a=t.length;while(a--&&r.test(t.charAt(a)));return a}return ai=e,ai}var ni,Mo;function Oc(){if(Mo)return ni;Mo=1;var r=Ic(),e=/^\s+/;function t(a){return a?a.slice(0,r(a)+1).replace(e,""):a}return ni=t,ni}var ii,Lo;function Js(){if(Lo)return ii;Lo=1;var r=In(),e=r.Symbol;return ii=e,ii}var si,Io;function Nc(){if(Io)return si;Io=1;var r=Js(),e=Object.prototype,{hasOwnProperty:t,toString:a}=e,n=r?r.toStringTag:void 0;function i(s){var o=t.call(s,n),u=s[n];try{s[n]=void 0;var l=!0}catch(f){}var v=a.call(s);if(l)if(o)s[n]=u;else delete s[n];return v}return si=i,si}var oi,Oo;function zc(){if(Oo)return oi;Oo=1;var r=Object.prototype,e=r.toString;function t(a){return e.call(a)}return oi=t,oi}var ui,No;function lv(){if(No)return ui;No=1;var r=Js(),e=Nc(),t=zc(),a="[object Null]",n="[object Undefined]",i=r?r.toStringTag:void 0;function s(o){if(o==null)return o===void 0?n:a;return i&&i in Object(o)?e(o):t(o)}return ui=s,ui}var li,zo;function Fc(){if(zo)return li;zo=1;function r(e){return e!=null&&typeof e=="object"}return li=r,li}var vi,Fo;function Fa(){if(Fo)return vi;Fo=1;var r=lv(),e=Fc(),t="[object Symbol]";function a(n){return typeof n=="symbol"||e(n)&&r(n)==t}return vi=a,vi}var fi,Vo;function Vc(){if(Vo)return fi;Vo=1;var r=Oc(),e=za(),t=Fa(),a=NaN,n=/^[-+]0x[0-9a-f]+$/i,i=/^0b[01]+$/i,s=/^0o[0-7]+$/i,o=parseInt;function u(l){if(typeof l=="number")return l;if(t(l))return a;if(e(l)){var v=typeof l.valueOf=="function"?l.valueOf():l;l=e(v)?v+"":v}if(typeof l!="string")return l===0?l:+l;l=r(l);var f=i.test(l);return f||s.test(l)?o(l.slice(2),f?2:8):n.test(l)?a:+l}return fi=u,fi}var ci,qo;function qc(){if(qo)return ci;qo=1;var r=za(),e=Lc(),t=Vc(),a="Expected a function",{max:n,min:i}=Math;function s(o,u,l){var v,f,c,h,d,y,g=0,p=!1,m=!1,b=!0;if(typeof o!="function")throw TypeError(a);if(u=t(u)||0,r(l))p=!!l.leading,m="maxWait"in l,c=m?n(t(l.maxWait)||0,u):c,b="trailing"in l?!!l.trailing:b;function w(A){var R=v,L=f;return v=f=void 0,g=A,h=o.apply(L,R),h}function E(A){return g=A,d=setTimeout(S,u),p?w(A):h}function C(A){var R=A-y,L=A-g,I=u-R;return m?i(I,c-L):I}function x(A){var R=A-y,L=A-g;return y===void 0||R>=u||R<0||m&&L>=c}function S(){var A=e();if(x(A))return k(A);d=setTimeout(S,C(A))}function k(A){if(d=void 0,b&&v)return w(A);return v=f=void 0,h}function B(){if(d!==void 0)clearTimeout(d);g=0,v=y=f=d=void 0}function D(){return d===void 0?h:k(e())}function P(){var A=e(),R=x(A);if(v=arguments,f=this,y=A,R){if(d===void 0)return E(y);if(m)return clearTimeout(d),d=setTimeout(S,u),w(y)}if(d===void 0)d=setTimeout(S,u);return h}return P.cancel=B,P.flush=D,P}return ci=s,ci}var _c=qc(),Va=Na(_c),di=rr?rr.performance:null,vv=di&&di.now?function(){return di.now()}:function(){return Date.now()},Gc=function(){if(rr){if(rr.requestAnimationFrame)return function(r){rr.requestAnimationFrame(r)};else if(rr.mozRequestAnimationFrame)return function(r){rr.mozRequestAnimationFrame(r)};else if(rr.webkitRequestAnimationFrame)return function(r){rr.webkitRequestAnimationFrame(r)};else if(rr.msRequestAnimationFrame)return function(r){rr.msRequestAnimationFrame(r)}}return function(r){if(r)setTimeout(function(){r(vv())},16.666666666666668)}}(),xn=function(e){return Gc(e)},Zr=vv,kt=9261,fv=65599,Ht=5381,cv=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:kt,a=t,n;for(;;){if(n=e.next(),n.done)break;a=a*fv+n.value|0}return a},Ta=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:kt;return t*fv+e|0},Sa=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Ht;return(t<<5)+t+e|0},Hc=function(e,t){return e*2097152+t},rt=function(e){return e[0]*2097152+e[1]},Ya=function(e,t){return[Ta(e[0],t[0]),Sa(e[1],t[1])]},_o=function(e,t){var a={value:0,done:!1},n=0,i=e.length,s={next:function(){if(n<i)a.value=e[n++];else a.done=!0;return a}};return cv(s,t)},Pt=function(e,t){var a={value:0,done:!1},n=0,i=e.length,s={next:function(){if(n<i)a.value=e.charCodeAt(n++);else a.done=!0;return a}};return cv(s,t)},dv=function(){return Wc(arguments)},Wc=function(e){var t;for(var a=0;a<e.length;a++){var n=e[a];if(a===0)t=Pt(n);else t=Pt(n,t)}return t};function $c(r,e,t,a,n){var i=n*Math.PI/180,s=Math.cos(i)*(r-t)-Math.sin(i)*(e-a)+t,o=Math.sin(i)*(r-t)+Math.cos(i)*(e-a)+a;return{x:s,y:o}}var Uc=function(e,t,a,n,i,s){return{x:(e-a)*i+a,y:(t-n)*s+n}};function Kc(r,e,t){if(t===0)return r;var a=(e.x1+e.x2)/2,n=(e.y1+e.y2)/2,i=e.w/e.h,s=1/i,o=$c(r.x,r.y,a,n,t),u=Uc(o.x,o.y,a,n,i,s);return{x:u.x,y:u.y}}var Go=!0,Xc=console.warn!=null,Yc=console.trace!=null,js=Number.MAX_SAFE_INTEGER||9007199254740991,hv=function(){return!0},En=function(){return!1},Ho=function(){return 0},eo=function(){},$e=function(e){throw Error(e)},gv=function(e){if(e!==void 0)Go=!!e;else return Go},Ve=function(e){if(!gv())return;if(Xc)console.warn(e);else if(console.log(e),Yc)console.trace()},Zc=function(e){return me({},e)},Hr=function(e){if(e==null)return e;if(_e(e))return e.slice();else if(Ie(e))return Zc(e);else return e},Qc=function(e){return e.slice()},pv=function(e,t){for(t=e="";e++<36;t+=e*51&52?(e^15?8^Math.random()*(e^20?16:4):4).toString(16):"-");return t},Jc={},yv=function(){return Jc},cr=function(e){var t=Object.keys(e);return function(a){var n={};for(var i=0;i<t.length;i++){var s=t[i],o=a==null?void 0:a[s];n[s]=o===void 0?e[s]:o}return n}},ft=function(e,t,a){for(var n=e.length-1;n>=0;n--)if(e[n]===t)e.splice(n,1)},ro=function(e){e.splice(0,e.length)},jc=function(e,t){for(var a=0;a<t.length;a++){var n=t[a];e.push(n)}},br=function(e,t,a){if(a)t=nv(a,t);return e[t]},Gr=function(e,t,a,n){if(a)t=nv(a,t);e[t]=n},ed=function(){function r(){pt(this,r),this._obj={}}return yt(r,[{key:"set",value:function(t,a){return this._obj[t]=a,this}},{key:"delete",value:function(t){return this._obj[t]=void 0,this}},{key:"clear",value:function(){this._obj={}}},{key:"has",value:function(t){return this._obj[t]!==void 0}},{key:"get",value:function(t){return this._obj[t]}}])}(),Yr=typeof Map<"u"?Map:ed,rd="undefined",td=function(){function r(e){if(pt(this,r),this._obj=Object.create(null),this.size=0,e!=null){var t;if(e.instanceString!=null&&e.instanceString()===this.instanceString())t=e.toArray();else t=e;for(var a=0;a<t.length;a++)this.add(t[a])}}return yt(r,[{key:"instanceString",value:function(){return"set"}},{key:"add",value:function(t){var a=this._obj;if(a[t]!==1)a[t]=1,this.size++}},{key:"delete",value:function(t){var a=this._obj;if(a[t]===1)a[t]=0,this.size--}},{key:"clear",value:function(){this._obj=Object.create(null)}},{key:"has",value:function(t){return this._obj[t]===1}},{key:"toArray",value:function(){var t=this;return Object.keys(this._obj).filter(function(a){return t.has(a)})}},{key:"forEach",value:function(t,a){return this.toArray().forEach(t,a)}}])}(),ta=(typeof Set>"u"?"undefined":ar(Set))!==rd?Set:td,On=function(e,t){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(e===void 0||t===void 0||!Zs(e)){$e("An element must have a core reference and parameters set");return}var n=t.group;if(n==null)if(t.data&&t.data.source!=null&&t.data.target!=null)n="edges";else n="nodes";if(n!=="nodes"&&n!=="edges"){$e("An element must be of type `nodes` or `edges`; you specified `"+n+"`");return}this.length=1,this[0]=this;var i=this._private={cy:e,single:!0,data:t.data||{},position:t.position||{x:0,y:0},autoWidth:void 0,autoHeight:void 0,autoPadding:void 0,compoundBoundsClean:!1,listeners:[],group:n,style:{},rstyle:{},styleCxts:[],styleKeys:{},removed:!0,selected:t.selected?!0:!1,selectable:t.selectable===void 0?!0:t.selectable?!0:!1,locked:t.locked?!0:!1,grabbed:!1,grabbable:t.grabbable===void 0?!0:t.grabbable?!0:!1,pannable:t.pannable===void 0?n==="edges"?!0:!1:t.pannable?!0:!1,active:!1,classes:new ta,animation:{current:[],queue:[]},rscratch:{},scratch:t.scratch||{},edges:[],children:[],parent:t.parent&&t.parent.isNode()?t.parent:null,traversalCache:{},backgrounding:!1,bbCache:null,bbCacheShift:{x:0,y:0},bodyBounds:null,overlayBounds:null,labelBounds:{all:null,source:null,target:null,main:null},arrowBounds:{source:null,target:null,"mid-source":null,"mid-target":null}};if(i.position.x==null)i.position.x=0;if(i.position.y==null)i.position.y=0;if(t.renderedPosition){var s=t.renderedPosition,o=e.pan(),u=e.zoom();i.position={x:(s.x-o.x)/u,y:(s.y-o.y)/u}}var l=[];if(_e(t.classes))l=t.classes;else if(ge(t.classes))l=t.classes.split(/\s+/);for(var v=0,f=l.length;v<f;v++){var c=l[v];if(!c||c==="")continue;i.classes.add(c)}if(this.createEmitter(),a===void 0||a)this.restore();var h=t.style||t.css;if(h)Ve("Setting a `style` bypass at element creation should be done only when absolutely necessary. Try to use the stylesheet instead."),this.style(h)},Wo=function(e){return e={bfs:e.bfs||!e.dfs,dfs:e.dfs||!e.bfs},function(a,n,i){var s;if(Ie(a)&&!kr(a))s=a,a=s.roots||s.root,n=s.visit,i=s.directed;i=arguments.length===2&&!Ke(n)?n:i,n=Ke(n)?n:function(){};var o=this._private.cy,u=a=ge(a)?this.filter(a):a,l=[],v=[],f={},c={},h={},d=0,y,g=this.byGroup(),{nodes:p,edges:m}=g;for(var b=0;b<u.length;b++){var w=u[b],E=w.id();if(w.isNode()){if(l.unshift(w),e.bfs)h[E]=!0,v.push(w);c[E]=0}}var C=function(){var A=e.bfs?l.shift():l.pop(),R=A.id();if(e.dfs){if(h[R])return 0;h[R]=!0,v.push(A)}var L=c[R],I=f[R],M=I!=null?I.source():null,O=I!=null?I.target():null,q=I==null?void 0:A.same(M)?O[0]:M[0],_;if(_=n(A,I,q,d++,L),_===!0)return y=A,1;if(_===!1)return 1;var N=A.connectedEdges().filter(function(re){return(!i||re.source().same(A))&&m.has(re)});for(var V=0;V<N.length;V++){var Z=N[V],j=Z.connectedNodes().filter(function(re){return!re.same(A)&&p.has(re)}),Q=j.id();if(j.length!==0&&!h[Q]){if(j=j[0],l.push(j),e.bfs)h[Q]=!0,v.push(j);f[Q]=Z,c[Q]=c[R]+1}}},x;while(l.length!==0){if(x=C(),x===0)continue;if(x===1)break}var S=o.collection();for(var k=0;k<v.length;k++){var B=v[k],D=f[B.id()];if(D!=null)S.push(D);S.push(B)}return{path:o.collection(S),found:o.collection(y)}}},ka={breadthFirstSearch:Wo({bfs:!0}),depthFirstSearch:Wo({dfs:!0})};ka.bfs=ka.breadthFirstSearch;ka.dfs=ka.depthFirstSearch;var un={exports:{}},ad=un.exports,$o;function nd(){if($o)return un.exports;return $o=1,function(r,e){(function(){var t,a,n,i,s,o,u,l,v,f,c,h,d,y,g;n=Math.floor,f=Math.min,a=function(p,m){if(p<m)return-1;if(p>m)return 1;return 0},v=function(p,m,b,w,E){var C;if(b==null)b=0;if(E==null)E=a;if(b<0)throw Error("lo must be non-negative");if(w==null)w=p.length;while(b<w)if(C=n((b+w)/2),E(m,p[C])<0)w=C;else b=C+1;return[].splice.apply(p,[b,b-b].concat(m)),m},o=function(p,m,b){if(b==null)b=a;return p.push(m),y(p,0,p.length-1,b)},s=function(p,m){var b,w;if(m==null)m=a;if(b=p.pop(),p.length)w=p[0],p[0]=b,g(p,0,m);else w=b;return w},l=function(p,m,b){var w;if(b==null)b=a;return w=p[0],p[0]=m,g(p,0,b),w},u=function(p,m,b){var w;if(b==null)b=a;if(p.length&&b(p[0],m)<0)w=[p[0],m],m=w[0],p[0]=w[1],g(p,0,b);return m},i=function(p,m){var b,w,E,C,x,S;if(m==null)m=a;C=function(){S=[];for(var k=0,B=n(p.length/2);0<=B?k<B:k>B;0<=B?k++:k--)S.push(k);return S}.apply(this).reverse(),x=[];for(w=0,E=C.length;w<E;w++)b=C[w],x.push(g(p,b,m));return x},d=function(p,m,b){var w;if(b==null)b=a;if(w=p.indexOf(m),w===-1)return;return y(p,0,w,b),g(p,w,b)},c=function(p,m,b){var w,E,C,x,S;if(b==null)b=a;if(E=p.slice(0,m),!E.length)return E;i(E,b),S=p.slice(m);for(C=0,x=S.length;C<x;C++)w=S[C],u(E,w,b);return E.sort(b).reverse()},h=function(p,m,b){var w,E,C,x,S,k,B,D,P;if(b==null)b=a;if(m*10<=p.length){if(C=p.slice(0,m).sort(b),!C.length)return C;E=C[C.length-1],B=p.slice(m);for(x=0,k=B.length;x<k;x++)if(w=B[x],b(w,E)<0)v(C,w,0,null,b),C.pop(),E=C[C.length-1];return C}i(p,b),P=[];for(S=0,D=f(m,p.length);0<=D?S<D:S>D;0<=D?++S:--S)P.push(s(p,b));return P},y=function(p,m,b,w){var E,C,x;if(w==null)w=a;E=p[b];while(b>m){if(x=b-1>>1,C=p[x],w(E,C)<0){p[b]=C,b=x;continue}break}return p[b]=E},g=function(p,m,b){var w,E,C,x,S;if(b==null)b=a;E=p.length,S=m,C=p[m],w=2*m+1;while(w<E){if(x=w+1,x<E&&!(b(p[w],p[x])<0))w=x;p[m]=p[w],m=w,w=2*m+1}return p[m]=C,y(p,S,m,b)},t=function(){p.push=o,p.pop=s,p.replace=l,p.pushpop=u,p.heapify=i,p.updateItem=d,p.nlargest=c,p.nsmallest=h;function p(m){this.cmp=m!=null?m:a,this.nodes=[]}return p.prototype.push=function(m){return o(this.nodes,m,this.cmp)},p.prototype.pop=function(){return s(this.nodes,this.cmp)},p.prototype.peek=function(){return this.nodes[0]},p.prototype.contains=function(m){return this.nodes.indexOf(m)!==-1},p.prototype.replace=function(m){return l(this.nodes,m,this.cmp)},p.prototype.pushpop=function(m){return u(this.nodes,m,this.cmp)},p.prototype.heapify=function(){return i(this.nodes,this.cmp)},p.prototype.updateItem=function(m){return d(this.nodes,m,this.cmp)},p.prototype.clear=function(){return this.nodes=[]},p.prototype.empty=function(){return this.nodes.length===0},p.prototype.size=function(){return this.nodes.length},p.prototype.clone=function(){var m=new p;return m.nodes=this.nodes.slice(0),m},p.prototype.toArray=function(){return this.nodes.slice(0)},p.prototype.insert=p.prototype.push,p.prototype.top=p.prototype.peek,p.prototype.front=p.prototype.peek,p.prototype.has=p.prototype.contains,p.prototype.copy=p.prototype.clone,p}(),function(p,m){return r.exports=m()}(this,function(){return t})}).call(ad)}(un),un.exports}var hi,Uo;function id(){if(Uo)return hi;return Uo=1,hi=nd(),hi}var sd=id(),qa=Na(sd),od=cr({root:null,weight:function(e){return 1},directed:!1}),ud={dijkstra:function(e){if(!Ie(e)){var t=arguments;e={root:t[0],weight:t[1],directed:t[2]}}var a=od(e),{root:n,weight:i,directed:s}=a,o=this,u=i,l=ge(n)?this.filter(n)[0]:n[0],v={},f={},c={},h=this.byGroup(),{nodes:d,edges:y}=h;y.unmergeBy(function(L){return L.isLoop()});var g=function(I){return v[I.id()]},p=function(I,M){v[I.id()]=M,m.updateItem(I)},m=new qa(function(L,I){return g(L)-g(I)});for(var b=0;b<d.length;b++){var w=d[b];v[w.id()]=w.same(l)?0:1/0,m.push(w)}var E=function(I,M){var O=(s?I.edgesTo(M):I.edgesWith(M)).intersect(y),q=1/0,_;for(var N=0;N<O.length;N++){var V=O[N],Z=u(V);if(Z<q||!_)q=Z,_=V}return{edge:_,dist:q}};while(m.size()>0){var C=m.pop(),x=g(C),S=C.id();if(c[S]=x,x===1/0)continue;var k=C.neighborhood().intersect(d);for(var B=0;B<k.length;B++){var D=k[B],P=D.id(),A=E(C,D),R=x+A.dist;if(R<g(D))p(D,R),f[P]={node:C,edge:A.edge}}}return{distanceTo:function(I){var M=ge(I)?d.filter(I)[0]:I[0];return c[M.id()]},pathTo:function(I){var M=ge(I)?d.filter(I)[0]:I[0],O=[],q=M,_=q.id();if(M.length>0){O.unshift(M);while(f[_]){var N=f[_];O.unshift(N.edge),O.unshift(N.node),q=N.node,_=q.id()}}return o.spawn(O)}}}},ld={kruskal:function(e){e=e||function(b){return 1};var t=this.byGroup(),{nodes:a,edges:n}=t,i=a.length,s=Array(i),o=a,u=function(w){for(var E=0;E<s.length;E++){var C=s[E];if(C.has(w))return E}};for(var l=0;l<i;l++)s[l]=this.spawn(a[l]);var v=n.sort(function(b,w){return e(b)-e(w)});for(var f=0;f<v.length;f++){var c=v[f],h=c.source()[0],d=c.target()[0],y=u(h),g=u(d),p=s[y],m=s[g];if(y!==g)o.merge(c),p.merge(m),s.splice(g,1)}return o}},vd=cr({root:null,goal:null,weight:function(e){return 1},heuristic:function(e){return 0},directed:!1}),fd={aStar:function(e){var t=this.cy(),a=vd(e),{root:n,goal:i,heuristic:s,directed:o,weight:u}=a;n=t.collection(n)[0],i=t.collection(i)[0];var l=n.id(),v=i.id(),f={},c={},h={},d=new qa(function(_,N){return c[_.id()]-c[N.id()]}),y=new ta,g={},p={},m=function(N,V){d.push(N),y.add(V)},b,w,E=function(){b=d.pop(),w=b.id(),y.delete(w)},C=function(N){return y.has(N)};m(n,l),f[l]=0,c[l]=s(n);var x=0;while(d.size()>0){if(E(),x++,w===v){var S=[],k=i,B=v,D=p[B];for(;;){if(S.unshift(k),D!=null)S.unshift(D);if(k=g[B],k==null)break;B=k.id(),D=p[B]}return{found:!0,distance:f[w],path:this.spawn(S),steps:x}}h[w]=!0;var P=b._private.edges;for(var A=0;A<P.length;A++){var R=P[A];if(!this.hasElementWithId(R.id()))continue;if(o&&R.data("source")!==w)continue;var L=R.source(),I=R.target(),M=L.id()!==w?L:I,O=M.id();if(!this.hasElementWithId(O))continue;if(h[O])continue;var q=f[w]+u(R);if(!C(O)){f[O]=q,c[O]=q+s(M),m(M,O),g[O]=b,p[O]=R;continue}if(q<f[O])f[O]=q,c[O]=q+s(M),g[O]=b,p[O]=R}}return{found:!1,distance:void 0,path:void 0,steps:x}}},cd=cr({weight:function(e){return 1},directed:!1}),dd={floydWarshall:function(e){var t=this.cy(),a=cd(e),{weight:n,directed:i}=a,s=n,o=this.byGroup(),{nodes:u,edges:l}=o,v=u.length,f=v*v,c=function(Z){return u.indexOf(Z)},h=function(Z){return u[Z]},d=Array(f);for(var y=0;y<f;y++){var g=y%v,p=(y-g)/v;if(p===g)d[y]=0;else d[y]=1/0}var m=Array(f),b=Array(f);for(var w=0;w<l.length;w++){var E=l[w],C=E.source()[0],x=E.target()[0];if(C===x)continue;var S=c(C),k=c(x),B=S*v+k,D=s(E);if(d[B]>D)d[B]=D,m[B]=k,b[B]=E;if(!i){var P=k*v+S;if(!i&&d[P]>D)d[P]=D,m[P]=S,b[P]=E}}for(var A=0;A<v;A++)for(var R=0;R<v;R++){var L=R*v+A;for(var I=0;I<v;I++){var M=R*v+I,O=A*v+I;if(d[L]+d[O]<d[M])d[M]=d[L]+d[O],m[M]=m[L]}}var q=function(Z){return(ge(Z)?t.filter(Z):Z)[0]},_=function(Z){return c(q(Z))},N={distance:function(Z,j){var Q=_(Z),re=_(j);return d[Q*v+re]},path:function(Z,j){var Q=_(Z),re=_(j),te=h(Q);if(Q===re)return te.collection();if(m[Q*v+re]==null)return t.collection();var ie=t.collection(),Y=Q,F;ie.merge(te);while(Q!==re)Y=Q,Q=m[Q*v+re],F=b[Y*v+Q],ie.merge(F),ie.merge(h(Q));return ie}};return N}},hd=cr({weight:function(e){return 1},directed:!1,root:null}),gd={bellmanFord:function(e){var t=this,a=hd(e),{weight:n,directed:i,root:s}=a,o=n,u=this,l=this.cy(),v=this.byGroup(),{edges:f,nodes:c}=v,h=c.length,d=new Yr,y=!1,g=[];s=l.collection(s)[0],f.unmergeBy(function(xe){return xe.isLoop()});var p=f.length,m=function(be){var pe=d.get(be.id());if(!pe)pe={},d.set(be.id(),pe);return pe},b=function(be){return(ge(be)?l.$(be):be)[0]},w=function(be){return m(b(be)).dist},E=function(be){var pe=arguments.length>1&&arguments[1]!==void 0?arguments[1]:s,oe=b(be),he=[],de=oe;for(;;){if(de==null)return t.spawn();var Ee=m(de),{edge:we,pred:ke}=Ee;if(he.unshift(de[0]),de.same(pe)&&he.length>0)break;if(we!=null)he.unshift(we);de=ke}return u.spawn(he)};for(var C=0;C<h;C++){var x=c[C],S=m(x);if(x.same(s))S.dist=0;else S.dist=1/0;S.pred=null,S.edge=null}var k=!1,B=function(be,pe,oe,he,de,Ee){var we=he.dist+Ee;if(we<de.dist&&!oe.same(he.edge))de.dist=we,de.pred=be,de.edge=oe,k=!0};for(var D=1;D<h;D++){k=!1;for(var P=0;P<p;P++){var A=f[P],R=A.source(),L=A.target(),I=o(A),M=m(R),O=m(L);if(B(R,L,A,M,O,I),!i)B(L,R,A,O,M,I)}if(!k)break}if(k){var q=[];for(var _=0;_<p;_++){var N=f[_],V=N.source(),Z=N.target(),j=o(N),Q=m(V).dist,re=m(Z).dist;if(Q+j<re||!i&&re+j<Q){if(!y)Ve("Graph contains a negative weight cycle for Bellman-Ford"),y=!0;if(e.findNegativeWeightCycles!==!1){var te=[];if(Q+j<re)te.push(V);if(!i&&re+j<Q)te.push(Z);var ie=te.length;for(var Y=0;Y<ie;Y++){var F=te[Y],H=[F];H.push(m(F).edge);var W=m(F).pred;while(H.indexOf(W)===-1)H.push(W),H.push(m(W).edge),W=m(W).pred;H=H.slice(H.indexOf(W));var K=H[0].id(),ae=0;for(var ve=2;ve<H.length;ve+=2)if(H[ve].id()<K)K=H[ve].id(),ae=ve;H=H.slice(ae).concat(H.slice(0,ae)),H.push(H[0]);var Be=H.map(function(xe){return xe.id()}).join(",");if(q.indexOf(Be)===-1)g.push(u.spawn(H)),q.push(Be)}}else break}}}return{distanceTo:w,pathTo:E,hasNegativeWeightCycle:y,negativeWeightCycles:g}}},pd=Math.sqrt(2),yd=function(e,t,a){if(a.length===0)$e("Karger-Stein must be run on a connected (sub)graph");var n=a[e],i=n[1],s=n[2],o=t[i],u=t[s],l=a;for(var v=l.length-1;v>=0;v--){var f=l[v],c=f[1],h=f[2];if(t[c]===o&&t[h]===u||t[c]===u&&t[h]===o)l.splice(v,1)}for(var d=0;d<l.length;d++){var y=l[d];if(y[1]===u)l[d]=y.slice(),l[d][1]=o;else if(y[2]===u)l[d]=y.slice(),l[d][2]=o}for(var g=0;g<t.length;g++)if(t[g]===u)t[g]=o;return l},gi=function(e,t,a,n){while(a>n){var i=Math.floor(Math.random()*t.length);t=yd(i,e,t),a--}return t},md={kargerStein:function(){var e=this,t=this.byGroup(),{nodes:a,edges:n}=t;n.unmergeBy(function(O){return O.isLoop()});var i=a.length,s=n.length,o=Math.ceil(Math.pow(Math.log(i)/Math.LN2,2)),u=Math.floor(i/pd);if(i<2){$e("At least 2 nodes are required for Karger-Stein algorithm");return}var l=[];for(var v=0;v<s;v++){var f=n[v];l.push([v,a.indexOf(f.source()),a.indexOf(f.target())])}var c=1/0,h=[],d=Array(i),y=Array(i),g=Array(i),p=function(q,_){for(var N=0;N<i;N++)_[N]=q[N]};for(var m=0;m<=o;m++){for(var b=0;b<i;b++)y[b]=b;var w=gi(y,l.slice(),i,u),E=w.slice();p(y,g);var C=gi(y,w,u,2),x=gi(g,E,u,2);if(C.length<=x.length&&C.length<c)c=C.length,h=C,p(y,d);else if(x.length<=C.length&&x.length<c)c=x.length,h=x,p(g,d)}var S=this.spawn(h.map(function(O){return n[O[0]]})),k=this.spawn(),B=this.spawn(),D=d[0];for(var P=0;P<d.length;P++){var A=d[P],R=a[P];if(A===D)k.merge(R);else B.merge(R)}var L=function(q){var _=e.spawn();return q.forEach(function(N){_.merge(N),N.connectedEdges().forEach(function(V){if(e.contains(V)&&!S.contains(V))_.merge(V)})}),_},I=[L(k),L(B)],M={cut:S,components:I,partition1:k,partition2:B};return M}},pi,bd=function(e){return{x:e.x,y:e.y}},Nn=function(e,t,a){return{x:e.x*t+a.x,y:e.y*t+a.y}},mv=function(e,t,a){return{x:(e.x-a.x)/t,y:(e.y-a.y)/t}},Wt=function(e){return{x:e[0],y:e[1]}},wd=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,n=1/0;for(var i=t;i<a;i++){var s=e[i];if(isFinite(s))n=Math.min(s,n)}return n},xd=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,n=-1/0;for(var i=t;i<a;i++){var s=e[i];if(isFinite(s))n=Math.max(s,n)}return n},Ed=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,n=0,i=0;for(var s=t;s<a;s++){var o=e[s];if(isFinite(o))n+=o,i++}return n/i},Cd=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,s=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0;if(n)e=e.slice(t,a);else{if(a<e.length)e.splice(a,e.length-a);if(t>0)e.splice(0,t)}var o=0;for(var u=e.length-1;u>=0;u--){var l=e[u];if(s){if(!isFinite(l))e[u]=-1/0,o++}else e.splice(u,1)}if(i)e.sort(function(c,h){return c-h});var v=e.length,f=Math.floor(v/2);if(v%2!==0)return e[f+1+o];else return(e[f-1+o]+e[f+o])/2},Td=function(e){return Math.PI*e/180},Za=function(e,t){return Math.atan2(t,e)-Math.PI/2},to=Math.log2||function(r){return Math.log(r)/Math.log(2)},ao=function(e){if(e>0)return 1;else if(e<0)return-1;else return 0},At=function(e,t){return Math.sqrt(Tt(e,t))},Tt=function(e,t){var a=t.x-e.x,n=t.y-e.y;return a*a+n*n},Sd=function(e){var t=e.length,a=0;for(var n=0;n<t;n++)a+=e[n];for(var i=0;i<t;i++)e[i]=e[i]/a;return e},sr=function(e,t,a,n){return(1-n)*(1-n)*e+2*(1-n)*n*t+n*n*a},Kt=function(e,t,a,n){return{x:sr(e.x,t.x,a.x,n),y:sr(e.y,t.y,a.y,n)}},kd=function(e,t,a,n){var i={x:t.x-e.x,y:t.y-e.y},s=At(e,t),o={x:i.x/s,y:i.y/s};return a=a==null?0:a,n=n!=null?n:a*s,{x:e.x+o.x*n,y:e.y+o.y*n}},Da=function(e,t,a){return Math.max(e,Math.min(a,t))},wr=function(e){if(e==null)return{x1:1/0,y1:1/0,x2:-1/0,y2:-1/0,w:0,h:0};else if(e.x1!=null&&e.y1!=null){if(e.x2!=null&&e.y2!=null&&e.x2>=e.x1&&e.y2>=e.y1)return{x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2,w:e.x2-e.x1,h:e.y2-e.y1};else if(e.w!=null&&e.h!=null&&e.w>=0&&e.h>=0)return{x1:e.x1,y1:e.y1,x2:e.x1+e.w,y2:e.y1+e.h,w:e.w,h:e.h}}},Dd=function(e){return{x1:e.x1,x2:e.x2,w:e.w,y1:e.y1,y2:e.y2,h:e.h}},Bd=function(e){e.x1=1/0,e.y1=1/0,e.x2=-1/0,e.y2=-1/0,e.w=0,e.h=0},Pd=function(e,t){e.x1=Math.min(e.x1,t.x1),e.x2=Math.max(e.x2,t.x2),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,t.y1),e.y2=Math.max(e.y2,t.y2),e.h=e.y2-e.y1},bv=function(e,t,a){e.x1=Math.min(e.x1,t),e.x2=Math.max(e.x2,t),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,a),e.y2=Math.max(e.y2,a),e.h=e.y2-e.y1},ln=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return e.x1-=t,e.x2+=t,e.y1-=t,e.y2+=t,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},vn=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0],a,n,i,s;if(t.length===1)a=n=i=s=t[0];else if(t.length===2)a=i=t[0],s=n=t[1];else if(t.length===4){var o=je(t,4);a=o[0],n=o[1],i=o[2],s=o[3]}return e.x1-=s,e.x2+=n,e.y1-=a,e.y2+=i,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},Ko=function(e,t){e.x1=t.x1,e.y1=t.y1,e.x2=t.x2,e.y2=t.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1},no=function(e,t){if(e.x1>t.x2)return!1;if(t.x1>e.x2)return!1;if(e.x2<t.x1)return!1;if(t.x2<e.x1)return!1;if(e.y2<t.y1)return!1;if(t.y2<e.y1)return!1;if(e.y1>t.y2)return!1;if(t.y1>e.y2)return!1;return!0},st=function(e,t,a){return e.x1<=t&&t<=e.x2&&e.y1<=a&&a<=e.y2},Xo=function(e,t){return st(e,t.x,t.y)},wv=function(e,t){return st(e,t.x1,t.y1)&&st(e,t.x2,t.y2)},Ad=(pi=Math.hypot)!==null&&pi!==void 0?pi:function(r,e){return Math.sqrt(r*r+e*e)};function Rd(r,e){if(r.length<3)throw Error("Need at least 3 vertices");var t=function(S,k){return{x:S.x+k.x,y:S.y+k.y}},a=function(S,k){return{x:S.x-k.x,y:S.y-k.y}},n=function(S,k){return{x:S.x*k,y:S.y*k}},i=function(S,k){return S.x*k.y-S.y*k.x},s=function(S){var k=Ad(S.x,S.y);return k===0?{x:0,y:0}:{x:S.x/k,y:S.y/k}},o=function(S){var k=0;for(var B=0;B<S.length;B++){var D=S[B],P=S[(B+1)%S.length];k+=D.x*P.y-P.x*D.y}return k/2},u=function(S,k,B,D){var P=a(k,S),A=a(D,B),R=i(P,A);if(Math.abs(R)<0.000000001)return t(S,n(P,0.5));var L=i(a(B,S),A)/R;return t(S,n(P,L))},l=r.map(function(x){return{x:x.x,y:x.y}});if(o(l)<0)l.reverse();var v=l.length,f=[];for(var c=0;c<v;c++){var h=l[c],d=l[(c+1)%v],y=a(d,h),g=s({x:y.y,y:-y.x});f.push(g)}var p=f.map(function(x,S){var k=t(l[S],n(x,e)),B=t(l[(S+1)%v],n(x,e));return{p1:k,p2:B}}),m=[];for(var b=0;b<v;b++){var w=p[(b-1+v)%v],E=p[b],C=u(w.p1,w.p2,E.p1,E.p2);m.push(C)}return m}function Md(r,e,t,a,n,i){var s=_d(r,e,t,a,n),o=Rd(s,i),u=wr();return o.forEach(function(l){return bv(u,l.x,l.y)}),u}var xv=function(e,t,a,n,i,s,o){var u=arguments.length>7&&arguments[7]!==void 0?arguments[7]:"auto",l=u==="auto"?ct(i,s):u,v=i/2,f=s/2;l=Math.min(l,v,f);var c=l!==v,h=l!==f,d;if(c){var y=a-v+l-o,g=n-f-o,p=a+v-l+o,m=g;if(d=ot(e,t,a,n,y,g,p,m,!1),d.length>0)return d}if(h){var b=a+v+o,w=n-f+l-o,E=b,C=n+f-l+o;if(d=ot(e,t,a,n,b,w,E,C,!1),d.length>0)return d}if(c){var x=a-v+l-o,S=n+f+o,k=a+v-l+o,B=S;if(d=ot(e,t,a,n,x,S,k,B,!1),d.length>0)return d}if(h){var D=a-v-o,P=n-f+l-o,A=D,R=n+f-l+o;if(d=ot(e,t,a,n,D,P,A,R,!1),d.length>0)return d}var L;{var I=a-v+l,M=n-f+l;if(L=ma(e,t,a,n,I,M,l+o),L.length>0&&L[0]<=I&&L[1]<=M)return[L[0],L[1]]}{var O=a+v-l,q=n-f+l;if(L=ma(e,t,a,n,O,q,l+o),L.length>0&&L[0]>=O&&L[1]<=q)return[L[0],L[1]]}{var _=a+v-l,N=n+f-l;if(L=ma(e,t,a,n,_,N,l+o),L.length>0&&L[0]>=_&&L[1]>=N)return[L[0],L[1]]}{var V=a-v+l,Z=n+f-l;if(L=ma(e,t,a,n,V,Z,l+o),L.length>0&&L[0]<=V&&L[1]>=Z)return[L[0],L[1]]}return[]},Ld=function(e,t,a,n,i,s,o){var u=o,l=Math.min(a,i),v=Math.max(a,i),f=Math.min(n,s),c=Math.max(n,s);return l-u<=e&&e<=v+u&&f-u<=t&&t<=c+u},Id=function(e,t,a,n,i,s,o,u,l){var v={x1:Math.min(a,o,i)-l,x2:Math.max(a,o,i)+l,y1:Math.min(n,u,s)-l,y2:Math.max(n,u,s)+l};if(e<v.x1||e>v.x2||t<v.y1||t>v.y2)return!1;else return!0},Od=function(e,t,a,n){a-=n;var i=t*t-4*e*a;if(i<0)return[];var s=Math.sqrt(i),o=2*e,u=(-t+s)/o,l=(-t-s)/o;return[u,l]},Nd=function(e,t,a,n,i){var s=0.00001;if(e===0)e=s;t/=e,a/=e,n/=e;var o,u,l,v,f,c,h,d;if(u=(3*a-t*t)/9,l=-(27*n)+t*(9*a-2*(t*t)),l/=54,o=u*u*u+l*l,i[1]=0,h=t/3,o>0){f=l+Math.sqrt(o),f=f<0?-Math.pow(-f,0.3333333333333333):Math.pow(f,0.3333333333333333),c=l-Math.sqrt(o),c=c<0?-Math.pow(-c,0.3333333333333333):Math.pow(c,0.3333333333333333),i[0]=-h+f+c,h+=(f+c)/2,i[4]=i[2]=-h,h=Math.sqrt(3)*(-c+f)/2,i[3]=h,i[5]=-h;return}if(i[5]=i[3]=0,o===0){d=l<0?-Math.pow(-l,0.3333333333333333):Math.pow(l,0.3333333333333333),i[0]=-h+2*d,i[4]=i[2]=-(d+h);return}u=-u,v=u*u*u,v=Math.acos(l/Math.sqrt(v)),d=2*Math.sqrt(u),i[0]=-h+d*Math.cos(v/3),i[2]=-h+d*Math.cos((v+2*Math.PI)/3),i[4]=-h+d*Math.cos((v+4*Math.PI)/3);return},zd=function(e,t,a,n,i,s,o,u){var l=1*a*a-4*a*i+2*a*o+4*i*i-4*i*o+o*o+n*n-4*n*s+2*n*u+4*s*s-4*s*u+u*u,v=9*a*i-3*a*a-3*a*o-6*i*i+3*i*o+9*n*s-3*n*n-3*n*u-6*s*s+3*s*u,f=3*a*a-6*a*i+a*o-a*e+2*i*i+2*i*e-o*e+3*n*n-6*n*s+n*u-n*t+2*s*s+2*s*t-u*t,c=1*a*i-a*a+a*e-i*e+n*s-n*n+n*t-s*t,h=[];Nd(l,v,f,c,h);var d=0.0000001,y=[];for(var g=0;g<6;g+=2)if(Math.abs(h[g+1])<d&&h[g]>=0&&h[g]<=1)y.push(h[g]);y.push(1),y.push(0);var p=-1,m,b,w;for(var E=0;E<y.length;E++)if(m=Math.pow(1-y[E],2)*a+2*(1-y[E])*y[E]*i+y[E]*y[E]*o,b=Math.pow(1-y[E],2)*n+2*(1-y[E])*y[E]*s+y[E]*y[E]*u,w=Math.pow(m-e,2)+Math.pow(b-t,2),p>=0){if(w<p)p=w}else p=w;return p},Fd=function(e,t,a,n,i,s){var o=[e-a,t-n],u=[i-a,s-n],l=u[0]*u[0]+u[1]*u[1],v=o[0]*o[0]+o[1]*o[1],f=o[0]*u[0]+o[1]*u[1],c=f*f/l;if(f<0)return v;if(c>l)return(e-i)*(e-i)+(t-s)*(t-s);return v-c},Tr=function(e,t,a){var n,i,s,o,u,l=0;for(var v=0;v<a.length/2;v++){if(n=a[v*2],i=a[v*2+1],v+1<a.length/2)s=a[(v+1)*2],o=a[(v+1)*2+1];else s=a[(v+1-a.length/2)*2],o=a[(v+1-a.length/2)*2+1];if(n==e&&s==e);else if(n>=e&&e>=s||n<=e&&e<=s){if(u=(e-n)/(s-n)*(o-i)+i,u>t)l++}else continue}if(l%2===0)return!1;else return!0},Qr=function(e,t,a,n,i,s,o,u,l){var v=Array(a.length),f;if(u[0]!=null)if(f=Math.atan(u[1]/u[0]),u[0]<0)f=f+Math.PI/2;else f=-f-Math.PI/2;else f=u;var c=Math.cos(-f),h=Math.sin(-f);for(var d=0;d<v.length/2;d++)v[d*2]=s/2*(a[d*2]*c-a[d*2+1]*h),v[d*2+1]=o/2*(a[d*2+1]*c+a[d*2]*h),v[d*2]+=n,v[d*2+1]+=i;var y;if(l>0){var g=Tn(v,-l);y=Cn(g)}else y=v;return Tr(e,t,y)},Vd=function(e,t,a,n,i,s,o,u){var l=Array(a.length*2);for(var v=0;v<u.length;v++){var f=u[v];l[v*4+0]=f.startX,l[v*4+1]=f.startY,l[v*4+2]=f.stopX,l[v*4+3]=f.stopY;var c=Math.pow(f.cx-e,2)+Math.pow(f.cy-t,2);if(c<=Math.pow(f.radius,2))return!0}return Tr(e,t,l)},Cn=function(e){var t=Array(e.length/2),a,n,i,s,o,u,l,v;for(var f=0;f<e.length/4;f++){if(a=e[f*4],n=e[f*4+1],i=e[f*4+2],s=e[f*4+3],f<e.length/4-1)o=e[(f+1)*4],u=e[(f+1)*4+1],l=e[(f+1)*4+2],v=e[(f+1)*4+3];else o=e[0],u=e[1],l=e[2],v=e[3];var c=ot(a,n,i,s,o,u,l,v,!0);t[f*2]=c[0],t[f*2+1]=c[1]}return t},Tn=function(e,t){var a=Array(e.length*2),n,i,s,o;for(var u=0;u<e.length/2;u++){if(n=e[u*2],i=e[u*2+1],u<e.length/2-1)s=e[(u+1)*2],o=e[(u+1)*2+1];else s=e[0],o=e[1];var l=o-i,v=-(s-n),f=Math.sqrt(l*l+v*v),c=l/f,h=v/f;a[u*4]=n+c*t,a[u*4+1]=i+h*t,a[u*4+2]=s+c*t,a[u*4+3]=o+h*t}return a},qd=function(e,t,a,n,i,s){var o=a-e,u=n-t;o/=i,u/=s;var l=Math.sqrt(o*o+u*u),v=l-1;if(v<0)return[];var f=v/l;return[(a-e)*f+e,(n-t)*f+t]},Bt=function(e,t,a,n,i,s,o){return e-=i,t-=s,e/=a/2+o,t/=n/2+o,e*e+t*t<=1},ma=function(e,t,a,n,i,s,o){var u=[a-e,n-t],l=[e-i,t-s],v=u[0]*u[0]+u[1]*u[1],f=2*(l[0]*u[0]+l[1]*u[1]),c=l[0]*l[0]+l[1]*l[1]-o*o,h=f*f-4*v*c;if(h<0)return[];var d=(-f+Math.sqrt(h))/(2*v),y=(-f-Math.sqrt(h))/(2*v),g=Math.min(d,y),p=Math.max(d,y),m=[];if(g>=0&&g<=1)m.push(g);if(p>=0&&p<=1)m.push(p);if(m.length===0)return[];var b=m[0]*u[0]+e,w=m[0]*u[1]+t;if(m.length>1)if(m[0]==m[1])return[b,w];else{var E=m[1]*u[0]+e,C=m[1]*u[1]+t;return[b,w,E,C]}else return[b,w]},yi=function(e,t,a){if(t<=e&&e<=a||a<=e&&e<=t)return e;else if(e<=t&&t<=a||a<=t&&t<=e)return t;else return a},ot=function(e,t,a,n,i,s,o,u,l){var v=e-i,f=a-e,c=o-i,h=t-s,d=n-t,y=u-s,g=c*h-y*v,p=f*h-d*v,m=y*f-c*d;if(m!==0){var b=g/m,w=p/m,E=0.001,C=0-E,x=1+E;if(C<=b&&b<=x&&C<=w&&w<=x)return[e+b*f,t+b*d];else if(!l)return[];else return[e+b*f,t+b*d]}else if(g===0||p===0){if(yi(e,a,o)===o)return[o,u];if(yi(e,a,i)===i)return[i,s];if(yi(i,o,a)===a)return[a,n];return[]}else return[]},_d=function(e,t,a,n,i){var s=[],o=n/2,u=i/2,l=t,v=a;s.push({x:l+o*e[0],y:v+u*e[1]});for(var f=1;f<e.length/2;f++)s.push({x:l+o*e[f*2],y:v+u*e[f*2+1]});return s},Ba=function(e,t,a,n,i,s,o,u){var l=[],v,f=Array(a.length),c=!0;if(s==null)c=!1;var h;if(c){for(var d=0;d<f.length/2;d++)f[d*2]=a[d*2]*s+n,f[d*2+1]=a[d*2+1]*o+i;if(u>0){var y=Tn(f,-u);h=Cn(y)}else h=f}else h=a;var g,p,m,b;for(var w=0;w<h.length/2;w++){if(g=h[w*2],p=h[w*2+1],w<h.length/2-1)m=h[(w+1)*2],b=h[(w+1)*2+1];else m=h[0],b=h[1];if(v=ot(e,t,n,i,g,p,m,b),v.length!==0)l.push(v[0],v[1])}return l},Gd=function(e,t,a,n,i,s,o,u,l){var v=[],f,c=Array(a.length*2);l.forEach(function(m,b){if(b===0)c[c.length-2]=m.startX,c[c.length-1]=m.startY;else c[b*4-2]=m.startX,c[b*4-1]=m.startY;if(c[b*4]=m.stopX,c[b*4+1]=m.stopY,f=ma(e,t,n,i,m.cx,m.cy,m.radius),f.length!==0)v.push(f[0],f[1])});for(var h=0;h<c.length/4;h++)if(f=ot(e,t,n,i,c[h*4],c[h*4+1],c[h*4+2],c[h*4+3],!1),f.length!==0)v.push(f[0],f[1]);if(v.length>2){var d=[v[0],v[1]],y=Math.pow(d[0]-e,2)+Math.pow(d[1]-t,2);for(var g=1;g<v.length/2;g++){var p=Math.pow(v[g*2]-e,2)+Math.pow(v[g*2+1]-t,2);if(p<=y)d[0]=v[g*2],d[1]=v[g*2+1],y=p}return d}return v},Qa=function(e,t,a){var n=[e[0]-t[0],e[1]-t[1]],i=Math.sqrt(n[0]*n[0]+n[1]*n[1]),s=(i-a)/i;if(s<0)s=0.00001;return[t[0]+s*n[0],t[1]+s*n[1]]},mr=function(e,t){var a=As(e,t);return a=Ev(a),a},Ev=function(e){var t,a,n=e.length/2,i=1/0,s=1/0,o=-1/0,u=-1/0;for(var l=0;l<n;l++)t=e[2*l],a=e[2*l+1],i=Math.min(i,t),o=Math.max(o,t),s=Math.min(s,a),u=Math.max(u,a);var v=2/(o-i),f=2/(u-s);for(var c=0;c<n;c++)t=e[2*c]=e[2*c]*v,a=e[2*c+1]=e[2*c+1]*f,i=Math.min(i,t),o=Math.max(o,t),s=Math.min(s,a),u=Math.max(u,a);if(s<-1)for(var h=0;h<n;h++)a=e[2*h+1]=e[2*h+1]+(-1-s);return e},As=function(e,t){var a=1/e*2*Math.PI,n=e%2===0?Math.PI/2+a/2:Math.PI/2;n+=t;var i=Array(e*2),s;for(var o=0;o<e;o++)s=o*a+n,i[2*o]=Math.cos(s),i[2*o+1]=Math.sin(-s);return i},ct=function(e,t){return Math.min(e/4,t/4,8)},Cv=function(e,t){return Math.min(e/10,t/10,8)},io=function(){return 8},Hd=function(e,t,a){return[e-2*t+a,2*(t-e),e]},Rs=function(e,t){return{heightOffset:Math.min(15,0.05*t),widthOffset:Math.min(100,0.25*e),ctrlPtOffsetPct:0.05}};function mi(r,e){function t(f){var c=[];for(var h=0;h<f.length;h++){var d=f[h],y=f[(h+1)%f.length],g={x:y.x-d.x,y:y.y-d.y},p={x:-g.y,y:g.x},m=Math.sqrt(p.x*p.x+p.y*p.y);c.push({x:p.x/m,y:p.y/m})}return c}function a(f,c){var h=1/0,d=-1/0,y=Sr(f),g;try{for(y.s();!(g=y.n()).done;){var p=g.value,m=p.x*c.x+p.y*c.y;h=Math.min(h,m),d=Math.max(d,m)}}catch(b){y.e(b)}finally{y.f()}return{min:h,max:d}}function n(f,c){return!(f.max<c.min||c.max<f.min)}var i=[].concat(bn(t(r)),bn(t(e))),s=Sr(i),o;try{for(s.s();!(o=s.n()).done;){var u=o.value,l=a(r,u),v=a(e,u);if(!n(l,v))return!1}}catch(f){s.e(f)}finally{s.f()}return!0}var Wd=cr({dampingFactor:0.8,precision:0.000001,iterations:200,weight:function(e){return 1}}),$d={pageRank:function(e){var t=Wd(e),{dampingFactor:a,precision:n,iterations:i,weight:s}=t,o=this._private.cy,u=this.byGroup(),{nodes:l,edges:v}=u,f=l.length,c=f*f,h=v.length,d=Array(c),y=Array(f),g=(1-a)/f;for(var p=0;p<f;p++){for(var m=0;m<f;m++){var b=p*f+m;d[b]=0}y[p]=0}for(var w=0;w<h;w++){var E=v[w],C=E.data("source"),x=E.data("target");if(C===x)continue;var S=l.indexOfId(C),k=l.indexOfId(x),B=s(E),D=k*f+S;d[D]+=B,y[S]+=B}var P=1/f+g;for(var A=0;A<f;A++)if(y[A]===0)for(var R=0;R<f;R++){var L=R*f+A;d[L]=P}else for(var I=0;I<f;I++){var M=I*f+A;d[M]=d[M]/y[A]+g}var O=Array(f),q=Array(f),_;for(var N=0;N<f;N++)O[N]=1;for(var V=0;V<i;V++){for(var Z=0;Z<f;Z++)q[Z]=0;for(var j=0;j<f;j++)for(var Q=0;Q<f;Q++){var re=j*f+Q;q[j]+=d[re]*O[Q]}Sd(q),_=O,O=q,q=_;var te=0;for(var ie=0;ie<f;ie++){var Y=_[ie]-O[ie];te+=Y*Y}if(te<n)break}var F={rank:function(W){return W=o.collection(W)[0],O[l.indexOf(W)]}};return F}};var Yo=cr({root:null,weight:function(e){return 1},directed:!1,alpha:0}),Xt={degreeCentralityNormalized:function(e){e=Yo(e);var t=this.cy(),a=this.nodes(),n=a.length;if(!e.directed){var i={},s=0;for(var o=0;o<n;o++){var u=a[o];e.root=u;var l=this.degreeCentrality(e);if(s<l.degree)s=l.degree;i[u.id()]=l.degree}return{degree:function(b){if(s===0)return 0;if(ge(b))b=t.filter(b);return i[b.id()]/s}}}else{var v={},f={},c=0,h=0;for(var d=0;d<n;d++){var y=a[d],g=y.id();e.root=y;var p=this.degreeCentrality(e);if(c<p.indegree)c=p.indegree;if(h<p.outdegree)h=p.outdegree;v[g]=p.indegree,f[g]=p.outdegree}return{indegree:function(b){if(c==0)return 0;if(ge(b))b=t.filter(b);return v[b.id()]/c},outdegree:function(b){if(h===0)return 0;if(ge(b))b=t.filter(b);return f[b.id()]/h}}}},degreeCentrality:function(e){e=Yo(e);var t=this.cy(),a=this,n=e,{root:i,weight:s,directed:o,alpha:u}=n;if(i=t.collection(i)[0],!o){var l=i.connectedEdges().intersection(a),v=l.length,f=0;for(var c=0;c<l.length;c++)f+=s(l[c]);return{degree:Math.pow(v,1-u)*Math.pow(f,u)}}else{var h=i.connectedEdges(),d=h.filter(function(C){return C.target().same(i)&&a.has(C)}),y=h.filter(function(C){return C.source().same(i)&&a.has(C)}),g=d.length,p=y.length,m=0,b=0;for(var w=0;w<d.length;w++)m+=s(d[w]);for(var E=0;E<y.length;E++)b+=s(y[E]);return{indegree:Math.pow(g,1-u)*Math.pow(m,u),outdegree:Math.pow(p,1-u)*Math.pow(b,u)}}}};Xt.dc=Xt.degreeCentrality;Xt.dcn=Xt.degreeCentralityNormalised=Xt.degreeCentralityNormalized;var Zo=cr({harmonic:!0,weight:function(){return 1},directed:!1,root:null}),Yt={closenessCentralityNormalized:function(e){var t=Zo(e),{harmonic:a,weight:n,directed:i}=t,s=this.cy(),o={},u=0,l=this.nodes(),v=this.floydWarshall({weight:n,directed:i});for(var f=0;f<l.length;f++){var c=0,h=l[f];for(var d=0;d<l.length;d++)if(f!==d){var y=v.distance(h,l[d]);if(a)c+=1/y;else c+=y}if(!a)c=1/c;if(u<c)u=c;o[h.id()]=c}return{closeness:function(p){if(u==0)return 0;if(ge(p))p=s.filter(p)[0].id();else p=p.id();return o[p]/u}}},closenessCentrality:function(e){var t=Zo(e),{root:a,weight:n,directed:i,harmonic:s}=t;a=this.filter(a)[0];var o=this.dijkstra({root:a,weight:n,directed:i}),u=0,l=this.nodes();for(var v=0;v<l.length;v++){var f=l[v];if(!f.same(a)){var c=o.distanceTo(f);if(s)u+=1/c;else u+=c}}return s?u:1/u}};Yt.cc=Yt.closenessCentrality;Yt.ccn=Yt.closenessCentralityNormalised=Yt.closenessCentralityNormalized;var Ud=cr({weight:null,directed:!1}),Ms={betweennessCentrality:function(e){var t=Ud(e),{directed:a,weight:n}=t,i=n!=null,s=this.cy(),o=this.nodes(),u={},l={},v=0,f={set:function(b,w){if(l[b]=w,w>v)v=w},get:function(b){return l[b]}};for(var c=0;c<o.length;c++){var h=o[c],d=h.id();if(a)u[d]=h.outgoers().nodes();else u[d]=h.openNeighborhood().nodes();f.set(d,0)}var y=function(){var b=o[g].id(),w=[],E={},C={},x={},S=new qa(function(j,Q){return x[j]-x[Q]});for(var k=0;k<o.length;k++){var B=o[k].id();E[B]=[],C[B]=0,x[B]=1/0}C[b]=1,x[b]=0,S.push(b);while(!S.empty()){var D=S.pop();if(w.push(D),i)for(var P=0;P<u[D].length;P++){var A=u[D][P],R=s.getElementById(D),L=void 0;if(R.edgesTo(A).length>0)L=R.edgesTo(A)[0];else L=A.edgesTo(R)[0];var I=n(L);if(A=A.id(),x[A]>x[D]+I){if(x[A]=x[D]+I,S.nodes.indexOf(A)<0)S.push(A);else S.updateItem(A);C[A]=0,E[A]=[]}if(x[A]==x[D]+I)C[A]=C[A]+C[D],E[A].push(D)}else for(var M=0;M<u[D].length;M++){var O=u[D][M].id();if(x[O]==1/0)S.push(O),x[O]=x[D]+1;if(x[O]==x[D]+1)C[O]=C[O]+C[D],E[O].push(D)}}var q={};for(var _=0;_<o.length;_++)q[o[_].id()]=0;while(w.length>0){var N=w.pop();for(var V=0;V<E[N].length;V++){var Z=E[N][V];q[Z]=q[Z]+C[Z]/C[N]*(1+q[N])}if(N!=o[g].id())f.set(N,f.get(N)+q[N])}};for(var g=0;g<o.length;g++)y();var p={betweenness:function(b){var w=s.collection(b).id();return f.get(w)},betweennessNormalized:function(b){if(v==0)return 0;var w=s.collection(b).id();return f.get(w)/v}};return p.betweennessNormalised=p.betweennessNormalized,p}};Ms.bc=Ms.betweennessCentrality;var Kd=cr({expandFactor:2,inflateFactor:2,multFactor:1,maxIterations:20,attributes:[function(r){return 1}]}),Xd=function(e){return Kd(e)},Yd=function(e,t){var a=0;for(var n=0;n<t.length;n++)a+=t[n](e);return a},Zd=function(e,t,a){for(var n=0;n<t;n++)e[n*t+n]=a},Tv=function(e,t){var a;for(var n=0;n<t;n++){a=0;for(var i=0;i<t;i++)a+=e[i*t+n];for(var s=0;s<t;s++)e[s*t+n]=e[s*t+n]/a}},Qd=function(e,t,a){var n=Array(a*a);for(var i=0;i<a;i++){for(var s=0;s<a;s++)n[i*a+s]=0;for(var o=0;o<a;o++)for(var u=0;u<a;u++)n[i*a+u]+=e[i*a+o]*t[o*a+u]}return n},Jd=function(e,t,a){var n=e.slice(0);for(var i=1;i<a;i++)e=Qd(e,n,t);return e},jd=function(e,t,a){var n=Array(t*t);for(var i=0;i<t*t;i++)n[i]=Math.pow(e[i],a);return Tv(n,t),n},eh=function(e,t,a,n){for(var i=0;i<a;i++){var s=Math.round(e[i]*Math.pow(10,n))/Math.pow(10,n),o=Math.round(t[i]*Math.pow(10,n))/Math.pow(10,n);if(s!==o)return!1}return!0},rh=function(e,t,a,n){var i=[];for(var s=0;s<t;s++){var o=[];for(var u=0;u<t;u++)if(Math.round(e[s*t+u]*1000)/1000>0)o.push(a[u]);if(o.length!==0)i.push(n.collection(o))}return i},th=function(e,t){for(var a=0;a<e.length;a++)if(!t[a]||e[a].id()!==t[a].id())return!1;return!0},ah=function(e){for(var t=0;t<e.length;t++)for(var a=0;a<e.length;a++)if(t!=a&&th(e[t],e[a]))e.splice(a,1);return e},Qo=function(e){var t=this.nodes(),a=this.edges(),n=this.cy(),i=Xd(e),s={};for(var o=0;o<t.length;o++)s[t[o].id()]=o;var u=t.length,l=u*u,v=Array(l),f;for(var c=0;c<l;c++)v[c]=0;for(var h=0;h<a.length;h++){var d=a[h],y=s[d.source().id()],g=s[d.target().id()],p=Yd(d,i.attributes);v[y*u+g]+=p,v[g*u+y]+=p}Zd(v,u,i.multFactor),Tv(v,u);var m=!0,b=0;while(m&&b<i.maxIterations){if(m=!1,f=Jd(v,u,i.expandFactor),v=jd(f,u,i.inflateFactor),!eh(v,f,l,4))m=!0;b++}var w=rh(v,u,t,n);return w=ah(w),w},nh={markovClustering:Qo,mcl:Qo},ih=function(e){return e},Sv=function(e,t){return Math.abs(t-e)},Jo=function(e,t,a){return e+Sv(t,a)},jo=function(e,t,a){return e+Math.pow(a-t,2)},sh=function(e){return Math.sqrt(e)},oh=function(e,t,a){return Math.max(e,Sv(t,a))},fa=function(e,t,a,n,i){var s=arguments.length>5&&arguments[5]!==void 0?arguments[5]:ih,o=n,u,l;for(var v=0;v<e;v++)u=t(v),l=a(v),o=i(o,u,l);return s(o)},Jt={euclidean:function(e,t,a){if(e>=2)return fa(e,t,a,0,jo,sh);else return fa(e,t,a,0,Jo)},squaredEuclidean:function(e,t,a){return fa(e,t,a,0,jo)},manhattan:function(e,t,a){return fa(e,t,a,0,Jo)},max:function(e,t,a){return fa(e,t,a,-1/0,oh)}};Jt["squared-euclidean"]=Jt.squaredEuclidean;Jt.squaredeuclidean=Jt.squaredEuclidean;function zn(r,e,t,a,n,i){var s;if(Ke(r))s=r;else s=Jt[r]||Jt.euclidean;if(e===0&&Ke(r))return s(n,i);else return s(e,t,a,n,i)}var uh=cr({k:2,m:2,sensitivityThreshold:0.0001,distance:"euclidean",maxIterations:10,attributes:[],testMode:!1,testCentroids:null}),so=function(e){return uh(e)},Sn=function(e,t,a,n,i){var s=i!=="kMedoids",o=s?function(f){return a[f]}:function(f){return n[f](a)},u=function(c){return n[c](t)},l=a,v=t;return zn(e,n.length,o,u,l,v)},bi=function(e,t,a){var n=a.length,i=Array(n),s=Array(n),o=Array(t),u=null;for(var l=0;l<n;l++)i[l]=e.min(a[l]).value,s[l]=e.max(a[l]).value;for(var v=0;v<t;v++){u=[];for(var f=0;f<n;f++)u[f]=Math.random()*(s[f]-i[f])+i[f];o[v]=u}return o},kv=function(e,t,a,n,i){var s=1/0,o=0;for(var u=0;u<t.length;u++){var l=Sn(a,e,t[u],n,i);if(l<s)s=l,o=u}return o},Dv=function(e,t,a){var n=[],i=null;for(var s=0;s<t.length;s++)if(i=t[s],a[i.id()]===e)n.push(i);return n},lh=function(e,t,a){return Math.abs(t-e)<=a},vh=function(e,t,a){for(var n=0;n<e.length;n++)for(var i=0;i<e[n].length;i++){var s=Math.abs(e[n][i]-t[n][i]);if(s>a)return!1}return!0},fh=function(e,t,a){for(var n=0;n<a;n++)if(e===t[n])return!0;return!1},eu=function(e,t){var a=Array(t);if(e.length<50)for(var n=0;n<t;n++){var i=e[Math.floor(Math.random()*e.length)];while(fh(i,a,n))i=e[Math.floor(Math.random()*e.length)];a[n]=i}else for(var s=0;s<t;s++)a[s]=e[Math.floor(Math.random()*e.length)];return a},ru=function(e,t,a){var n=0;for(var i=0;i<t.length;i++)n+=Sn("manhattan",t[i],e,a,"kMedoids");return n},ch=function(e){var t=this.cy(),a=this.nodes(),n=null,i=so(e),s=Array(i.k),o={},u;if(i.testMode)if(typeof i.testCentroids==="number")i.testCentroids,u=bi(a,i.k,i.attributes);else if(ar(i.testCentroids)==="object")u=i.testCentroids;else u=bi(a,i.k,i.attributes);else u=bi(a,i.k,i.attributes);var l=!0,v=0;while(l&&v<i.maxIterations){for(var f=0;f<a.length;f++)n=a[f],o[n.id()]=kv(n,u,i.distance,i.attributes,"kMeans");l=!1;for(var c=0;c<i.k;c++){var h=Dv(c,a,o);if(h.length===0)continue;var d=i.attributes.length,y=u[c],g=Array(d),p=Array(d);for(var m=0;m<d;m++){p[m]=0;for(var b=0;b<h.length;b++)n=h[b],p[m]+=i.attributes[m](n);if(g[m]=p[m]/h.length,!lh(g[m],y[m],i.sensitivityThreshold))l=!0}u[c]=g,s[c]=t.collection(h)}v++}return s},dh=function(e){var t=this.cy(),a=this.nodes(),n=null,i=so(e),s=Array(i.k),o,u={},l,v=Array(i.k);if(i.testMode)if(typeof i.testCentroids==="number");else if(ar(i.testCentroids)==="object")o=i.testCentroids;else o=eu(a,i.k);else o=eu(a,i.k);var f=!0,c=0;while(f&&c<i.maxIterations){for(var h=0;h<a.length;h++)n=a[h],u[n.id()]=kv(n,o,i.distance,i.attributes,"kMedoids");f=!1;for(var d=0;d<o.length;d++){var y=Dv(d,a,u);if(y.length===0)continue;v[d]=ru(o[d],y,i.attributes);for(var g=0;g<y.length;g++)if(l=ru(y[g],y,i.attributes),l<v[d])v[d]=l,o[d]=y[g],f=!0;s[d]=t.collection(y)}c++}return s},hh=function(e,t,a,n,i){var s,o;for(var u=0;u<t.length;u++)for(var l=0;l<e.length;l++)n[u][l]=Math.pow(a[u][l],i.m);for(var v=0;v<e.length;v++)for(var f=0;f<i.attributes.length;f++){s=0,o=0;for(var c=0;c<t.length;c++)s+=n[c][v]*i.attributes[f](t[c]),o+=n[c][v];e[v][f]=s/o}},gh=function(e,t,a,n,i){for(var s=0;s<e.length;s++)t[s]=e[s].slice();var o,u,l,v=2/(i.m-1);for(var f=0;f<a.length;f++)for(var c=0;c<n.length;c++){o=0;for(var h=0;h<a.length;h++)u=Sn(i.distance,n[c],a[f],i.attributes,"cmeans"),l=Sn(i.distance,n[c],a[h],i.attributes,"cmeans"),o+=Math.pow(u/l,v);e[c][f]=1/o}},ph=function(e,t,a,n){var i=Array(a.k);for(var s=0;s<i.length;s++)i[s]=[];var o,u;for(var l=0;l<t.length;l++){o=-1/0,u=-1;for(var v=0;v<t[0].length;v++)if(t[l][v]>o)o=t[l][v],u=v;i[u].push(e[l])}for(var f=0;f<i.length;f++)i[f]=n.collection(i[f]);return i},tu=function(e){var t=this.cy(),a=this.nodes(),n=so(e),i,s,o,u,l;u=Array(a.length);for(var v=0;v<a.length;v++)u[v]=Array(n.k);o=Array(a.length);for(var f=0;f<a.length;f++)o[f]=Array(n.k);for(var c=0;c<a.length;c++){var h=0;for(var d=0;d<n.k;d++)o[c][d]=Math.random(),h+=o[c][d];for(var y=0;y<n.k;y++)o[c][y]=o[c][y]/h}s=Array(n.k);for(var g=0;g<n.k;g++)s[g]=Array(n.attributes.length);l=Array(a.length);for(var p=0;p<a.length;p++)l[p]=Array(n.k);var m=!0,b=0;while(m&&b<n.maxIterations){if(m=!1,hh(s,a,o,l,n),gh(o,u,s,a,n),!vh(o,u,n.sensitivityThreshold))m=!0;b++}return i=ph(a,o,n,t),{clusters:i,degreeOfMembership:o}},yh={kMeans:ch,kMedoids:dh,fuzzyCMeans:tu,fcm:tu},mh=cr({distance:"euclidean",linkage:"min",mode:"threshold",threshold:1/0,addDendrogram:!1,dendrogramDepth:0,attributes:[]}),bh={single:"min",complete:"max"},wh=function(e){var t=mh(e),a=bh[t.linkage];if(a!=null)t.linkage=a;return t},au=function(e,t,a,n,i){var s=0,o=1/0,u,l=i.attributes,v=function(k,B){return zn(i.distance,l.length,function(D){return l[D](k)},function(D){return l[D](B)},k,B)};for(var f=0;f<e.length;f++){var c=e[f].key,h=a[c][n[c]];if(h<o)s=c,o=h}if(i.mode==="threshold"&&o>=i.threshold||i.mode==="dendrogram"&&e.length===1)return!1;var d=t[s],y=t[n[s]],g;if(i.mode==="dendrogram")g={left:d,right:y,key:d.key};else g={value:d.value.concat(y.value),key:d.key};e[d.index]=g,e.splice(y.index,1),t[d.key]=g;for(var p=0;p<e.length;p++){var m=e[p];if(d.key===m.key)u=1/0;else if(i.linkage==="min"){if(u=a[d.key][m.key],a[d.key][m.key]>a[y.key][m.key])u=a[y.key][m.key]}else if(i.linkage==="max"){if(u=a[d.key][m.key],a[d.key][m.key]<a[y.key][m.key])u=a[y.key][m.key]}else if(i.linkage==="mean")u=(a[d.key][m.key]*d.size+a[y.key][m.key]*y.size)/(d.size+y.size);else if(i.mode==="dendrogram")u=v(m.value,d.value);else u=v(m.value[0],d.value[0]);a[d.key][m.key]=a[m.key][d.key]=u}for(var b=0;b<e.length;b++){var w=e[b].key;if(n[w]===d.key||n[w]===y.key){var E=w;for(var C=0;C<e.length;C++){var x=e[C].key;if(a[w][x]<a[w][E])E=x}n[w]=E}e[b].index=b}return d.key=y.key=d.index=y.index=null,!0},$t=function(e,t,a){if(!e)return;if(e.value)t.push(e.value);else{if(e.left)$t(e.left,t);if(e.right)$t(e.right,t)}},Ls=function(e,t){if(!e)return"";if(e.left&&e.right){var a=Ls(e.left,t),n=Ls(e.right,t),i=t.add({group:"nodes",data:{id:a+","+n}});return t.add({group:"edges",data:{source:a,target:i.id()}}),t.add({group:"edges",data:{source:n,target:i.id()}}),i.id()}else if(e.value)return e.value.id()},Is=function(e,t,a){if(!e)return[];var n=[],i=[],s=[];if(t===0){if(e.left)$t(e.left,n);if(e.right)$t(e.right,i);return s=n.concat(i),[a.collection(s)]}else if(t===1)if(e.value)return[a.collection(e.value)];else{if(e.left)$t(e.left,n);if(e.right)$t(e.right,i);return[a.collection(n),a.collection(i)]}else if(e.value)return[a.collection(e.value)];else{if(e.left)n=Is(e.left,t-1,a);if(e.right)i=Is(e.right,t-1,a);return n.concat(i)}},nu=function(e){var t=this.cy(),a=this.nodes(),n=wh(e),i=n.attributes,s=function(b,w){return zn(n.distance,i.length,function(E){return i[E](b)},function(E){return i[E](w)},b,w)},o=[],u=[],l=[],v=[];for(var f=0;f<a.length;f++){var c={value:n.mode==="dendrogram"?a[f]:[a[f]],key:f,index:f};o[f]=c,v[f]=c,u[f]=[],l[f]=0}for(var h=0;h<o.length;h++)for(var d=0;d<=h;d++){var y=void 0;if(n.mode==="dendrogram")y=h===d?1/0:s(o[h].value,o[d].value);else y=h===d?1/0:s(o[h].value[0],o[d].value[0]);if(u[h][d]=y,u[d][h]=y,y<u[h][l[h]])l[h]=d}var g=au(o,v,u,l,n);while(g)g=au(o,v,u,l,n);var p;if(n.mode==="dendrogram"){if(p=Is(o[0],n.dendrogramDepth,t),n.addDendrogram)Ls(o[0],t)}else p=Array(o.length),o.forEach(function(m,b){m.key=m.index=null,p[b]=t.collection(m.value)});return p},xh={hierarchicalClustering:nu,hca:nu},Eh=cr({distance:"euclidean",preference:"median",damping:0.8,maxIterations:1000,minIterations:100,attributes:[]}),Ch=function(e){var{damping:t,preference:a}=e;if(!(0.5<=t&&t<1))$e("Damping must range on [0.5, 1). Got: ".concat(t));var n=["median","mean","min","max"];if(!(n.some(function(i){return i===a})||ne(a)))$e("Preference must be one of [".concat(n.map(function(i){return"'".concat(i,"'")}).join(", "),"] or a number. Got: ").concat(a));return Eh(e)},Th=function(e,t,a,n){var i=function(o,u){return n[u](o)};return-zn(e,n.length,function(s){return i(t,s)},function(s){return i(a,s)},t,a)},Sh=function(e,t){var a=null;if(t==="median")a=Cd(e);else if(t==="mean")a=Ed(e);else if(t==="min")a=wd(e);else if(t==="max")a=xd(e);else a=t;return a},kh=function(e,t,a){var n=[];for(var i=0;i<e;i++)if(t[i*e+i]+a[i*e+i]>0)n.push(i);return n},iu=function(e,t,a){var n=[];for(var i=0;i<e;i++){var s=-1,o=-1/0;for(var u=0;u<a.length;u++){var l=a[u];if(t[i*e+l]>o)s=l,o=t[i*e+l]}if(s>0)n.push(s)}for(var v=0;v<a.length;v++)n[a[v]]=a[v];return n},Dh=function(e,t,a){var n=iu(e,t,a);for(var i=0;i<a.length;i++){var s=[];for(var o=0;o<n.length;o++)if(n[o]===a[i])s.push(o);var u=-1,l=-1/0;for(var v=0;v<s.length;v++){var f=0;for(var c=0;c<s.length;c++)f+=t[s[c]*e+s[v]];if(f>l)u=v,l=f}a[i]=s[u]}return n=iu(e,t,a),n},su=function(e){var t=this.cy(),a=this.nodes(),n=Ch(e),i={};for(var s=0;s<a.length;s++)i[a[s].id()]=s;var o,u,l,v,f,c;o=a.length,u=o*o,l=Array(u);for(var h=0;h<u;h++)l[h]=-1/0;for(var d=0;d<o;d++)for(var y=0;y<o;y++)if(d!==y)l[d*o+y]=Th(n.distance,a[d],a[y],n.attributes);v=Sh(l,n.preference);for(var g=0;g<o;g++)l[g*o+g]=v;f=Array(u);for(var p=0;p<u;p++)f[p]=0;c=Array(u);for(var m=0;m<u;m++)c[m]=0;var b=Array(o),w=Array(o),E=Array(o);for(var C=0;C<o;C++)b[C]=0,w[C]=0,E[C]=0;var x=Array(o*n.minIterations);for(var S=0;S<x.length;S++)x[S]=0;var k;for(k=0;k<n.maxIterations;k++){for(var B=0;B<o;B++){var D=-1/0,P=-1/0,A=-1,R=0;for(var L=0;L<o;L++)if(b[L]=f[B*o+L],R=c[B*o+L]+l[B*o+L],R>=D)P=D,D=R,A=L;else if(R>P)P=R;for(var I=0;I<o;I++)f[B*o+I]=(1-n.damping)*(l[B*o+I]-D)+n.damping*b[I];f[B*o+A]=(1-n.damping)*(l[B*o+A]-P)+n.damping*b[A]}for(var M=0;M<o;M++){var O=0;for(var q=0;q<o;q++)b[q]=c[q*o+M],w[q]=Math.max(0,f[q*o+M]),O+=w[q];O-=w[M],w[M]=f[M*o+M],O+=w[M];for(var _=0;_<o;_++)c[_*o+M]=(1-n.damping)*Math.min(0,O-w[_])+n.damping*b[_];c[M*o+M]=(1-n.damping)*(O-w[M])+n.damping*b[M]}var N=0;for(var V=0;V<o;V++){var Z=c[V*o+V]+f[V*o+V]>0?1:0;x[k%n.minIterations*o+V]=Z,N+=Z}if(N>0&&(k>=n.minIterations-1||k==n.maxIterations-1)){var j=0;for(var Q=0;Q<o;Q++){E[Q]=0;for(var re=0;re<n.minIterations;re++)E[Q]+=x[re*o+Q];if(E[Q]===0||E[Q]===n.minIterations)j++}if(j===o)break}}var te=kh(o,f,c),ie=Dh(o,l,te),Y={};for(var F=0;F<te.length;F++)Y[te[F]]=[];for(var H=0;H<a.length;H++){var W=i[a[H].id()],K=ie[W];if(K!=null)Y[K].push(a[H])}var ae=Array(te.length);for(var ve=0;ve<te.length;ve++)ae[ve]=t.collection(Y[te[ve]]);return ae},Bh={affinityPropagation:su,ap:su},Ph=cr({root:void 0,directed:!1}),Ah={hierholzer:function(e){if(!Ie(e)){var t=arguments;e={root:t[0],directed:t[1]}}var a=Ph(e),{root:n,directed:i}=a,s=this,o=!1,u,l,v;if(n)v=ge(n)?this.filter(n)[0].id():n[0].id();var f={},c={};if(i)s.forEach(function(m){var b=m.id();if(m.isNode()){var w=m.indegree(!0),E=m.outdegree(!0),C=w-E,x=E-w;if(C==1)if(u)o=!0;else u=b;else if(x==1)if(l)o=!0;else l=b;else if(x>1||C>1)o=!0;f[b]=[],m.outgoers().forEach(function(S){if(S.isEdge())f[b].push(S.id())})}else c[b]=[void 0,m.target().id()]});else s.forEach(function(m){var b=m.id();if(m.isNode()){var w=m.degree(!0);if(w%2)if(!u)u=b;else if(!l)l=b;else o=!0;f[b]=[],m.connectedEdges().forEach(function(E){return f[b].push(E.id())})}else c[b]=[m.source().id(),m.target().id()]});var h={found:!1,trail:void 0};if(o)return h;else if(l&&u){if(i){if(v&&l!=v)return h;v=l}else if(v&&l!=v&&u!=v)return h;else if(!v)v=l}else if(!v)v=s[0].id();var d=function(b){var w=b,E=[b],C,x,S;while(f[w].length){if(C=f[w].shift(),x=c[C][0],S=c[C][1],w!=S)f[S]=f[S].filter(function(k){return k!=C}),w=S;else if(!i&&w!=x)f[x]=f[x].filter(function(k){return k!=C}),w=x;E.unshift(C),E.unshift(w)}return E},y=[],g=[];g=d(v);while(g.length!=1)if(f[g[0]].length==0)y.unshift(s.getElementById(g.shift())),y.unshift(s.getElementById(g.shift()));else g=d(g.shift()).concat(g);y.unshift(s.getElementById(g.shift()));for(var p in f)if(f[p].length)return h;return h.found=!0,h.trail=this.spawn(y,!0),h}},Ja=function(){var e=this,t={},a=0,n=0,i=[],s=[],o={},u=function(c,h){var d=s.length-1,y=[],g=e.spawn();while(s[d].x!=c||s[d].y!=h)y.push(s.pop().edge),d--;y.push(s.pop().edge),y.forEach(function(p){var m=p.connectedNodes().intersection(e);g.merge(p),m.forEach(function(b){var w=b.id(),E=b.connectedEdges().intersection(e);if(g.merge(b),!t[w].cutVertex)g.merge(E);else g.merge(E.filter(function(C){return C.isLoop()}))})}),i.push(g)},l=function(c,h,d){if(c===d)n+=1;t[h]={id:a,low:a++,cutVertex:!1};var y=e.getElementById(h).connectedEdges().intersection(e);if(y.size()===0)i.push(e.spawn(e.getElementById(h)));else{var g,p,m,b;y.forEach(function(w){if(g=w.source().id(),p=w.target().id(),m=g===h?p:g,m!==d){if(b=w.id(),!o[b])o[b]=!0,s.push({x:h,y:m,edge:w});if(!(m in t)){if(l(c,m,h),t[h].low=Math.min(t[h].low,t[m].low),t[h].id<=t[m].low)t[h].cutVertex=!0,u(h,m)}else t[h].low=Math.min(t[h].low,t[m].id)}})}};e.forEach(function(f){if(f.isNode()){var c=f.id();if(!(c in t))n=0,l(c,c),t[c].cutVertex=n>1}});var v=Object.keys(t).filter(function(f){return t[f].cutVertex}).map(function(f){return e.getElementById(f)});return{cut:e.spawn(v),components:i}},Rh={hopcroftTarjanBiconnected:Ja,htbc:Ja,htb:Ja,hopcroftTarjanBiconnectedComponents:Ja},ja=function(){var e=this,t={},a=0,n=[],i=[],s=e.spawn(e),o=function(l){i.push(l),t[l]={index:a,low:a++,explored:!1};var v=e.getElementById(l).connectedEdges().intersection(e);if(v.forEach(function(y){var g=y.target().id();if(g!==l){if(!(g in t))o(g);if(!t[g].explored)t[l].low=Math.min(t[l].low,t[g].low)}}),t[l].index===t[l].low){var f=e.spawn();for(;;){var c=i.pop();if(f.merge(e.getElementById(c)),t[c].low=t[l].index,t[c].explored=!0,c===l)break}var h=f.edgesWith(f),d=f.merge(h);n.push(d),s=s.difference(d)}};return e.forEach(function(u){if(u.isNode()){var l=u.id();if(!(l in t))o(l)}}),{cut:s,components:n}},Mh={tarjanStronglyConnected:ja,tsc:ja,tscc:ja,tarjanStronglyConnectedComponents:ja},Bv={};[ka,ud,ld,fd,dd,gd,md,$d,Xt,Yt,Ms,nh,yh,xh,Bh,Ah,Rh,Mh].forEach(function(r){me(Bv,r)});/*!
5
+ Embeddable Minimum Strictly-Compliant Promises/A+ 1.1.1 Thenable
6
+ Copyright (c) 2013-2014 Ralf S. Engelschall (http://engelschall.com)
7
+ Licensed under The MIT License (http://opensource.org/licenses/MIT)
8
+ */var Pv=0,Av=1,Rv=2,zr=function(e){if(!(this instanceof zr))return new zr(e);if(this.id="Thenable/1.0.7",this.state=Pv,this.fulfillValue=void 0,this.rejectReason=void 0,this.onFulfilled=[],this.onRejected=[],this.proxy={then:this.then.bind(this)},typeof e==="function")e.call(this,this.fulfill.bind(this),this.reject.bind(this))};zr.prototype={fulfill:function(e){return ou(this,Av,"fulfillValue",e)},reject:function(e){return ou(this,Rv,"rejectReason",e)},then:function(e,t){var a=this,n=new zr;return a.onFulfilled.push(lu(e,n,"fulfill")),a.onRejected.push(lu(t,n,"reject")),Mv(a),n.proxy}};var ou=function(e,t,a,n){if(e.state===Pv)e.state=t,e[a]=n,Mv(e);return e},Mv=function(e){if(e.state===Av)uu(e,"onFulfilled",e.fulfillValue);else if(e.state===Rv)uu(e,"onRejected",e.rejectReason)},uu=function(e,t,a){if(e[t].length===0)return;var n=e[t];e[t]=[];var i=function(){for(var o=0;o<n.length;o++)n[o](a)};if(typeof setImmediate==="function")setImmediate(i);else setTimeout(i,0)},lu=function(e,t,a){return function(n){if(typeof e!=="function")t[a].call(t,n);else{var i;try{i=e(n)}catch(s){t.reject(s);return}Lv(t,i)}}},Lv=function(e,t){if(e===t||e.proxy===t){e.reject(TypeError("cannot resolve promise with itself"));return}var a;if(ar(t)==="object"&&t!==null||typeof t==="function")try{a=t.then}catch(i){e.reject(i);return}if(typeof a==="function"){var n=!1;try{a.call(t,function(i){if(n)return;if(n=!0,i===t)e.reject(TypeError("circular thenable chain"));else Lv(e,i)},function(i){if(n)return;n=!0,e.reject(i)})}catch(i){if(!n)e.reject(i)}return}e.fulfill(t)};zr.all=function(r){return new zr(function(e,t){var a=Array(r.length),n=0,i=function(u,l){if(a[u]=l,n++,n===r.length)e(a)};for(var s=0;s<r.length;s++)(function(o){var u=r[o],l=u!=null&&u.then!=null;if(l)u.then(function(f){i(o,f)},function(f){t(f)});else{var v=u;i(o,v)}})(s)})};zr.resolve=function(r){return new zr(function(e,t){e(r)})};zr.reject=function(r){return new zr(function(e,t){t(r)})};var aa=typeof Promise<"u"?Promise:zr,Os=function(e,t,a){var n=Zs(e),i=!n,s=this._private=me({duration:1000},t,a);if(s.target=e,s.style=s.style||s.css,s.started=!1,s.playing=!1,s.hooked=!1,s.applying=!1,s.progress=0,s.completes=[],s.frames=[],s.complete&&Ke(s.complete))s.completes.push(s.complete);if(i){var o=e.position();s.startPosition=s.startPosition||{x:o.x,y:o.y},s.startStyle=s.startStyle||e.cy().style().getAnimationStartStyle(e,s.style)}if(n){var u=e.pan();s.startPan={x:u.x,y:u.y},s.startZoom=e.zoom()}this.length=1,this[0]=this},Rt=Os.prototype;me(Rt,{instanceString:function(){return"animation"},hook:function(){var e=this._private;if(!e.hooked){var t,a=e.target._private.animation;if(e.queue)t=a.queue;else t=a.current;if(t.push(this),kr(e.target))e.target.cy().addToAnimationPool(e.target);e.hooked=!0}return this},play:function(){var e=this._private;if(e.progress===1)e.progress=0;return e.playing=!0,e.started=!1,e.stopped=!1,this.hook(),this},playing:function(){return this._private.playing},apply:function(){var e=this._private;return e.applying=!0,e.started=!1,e.stopped=!1,this.hook(),this},applying:function(){return this._private.applying},pause:function(){var e=this._private;return e.playing=!1,e.started=!1,this},stop:function(){var e=this._private;return e.playing=!1,e.started=!1,e.stopped=!0,this},rewind:function(){return this.progress(0)},fastforward:function(){return this.progress(1)},time:function(e){var t=this._private;if(e===void 0)return t.progress*t.duration;else return this.progress(e/t.duration)},progress:function(e){var t=this._private,a=t.playing;if(e===void 0)return t.progress;else{if(a)this.pause();if(t.progress=e,t.started=!1,a)this.play()}return this},completed:function(){return this._private.progress===1},reverse:function(){var e=this._private,t=e.playing;if(t)this.pause();e.progress=1-e.progress,e.started=!1;var a=function(l,v){var f=e[l];if(f==null)return;e[l]=e[v],e[v]=f};if(a("zoom","startZoom"),a("pan","startPan"),a("position","startPosition"),e.style)for(var n=0;n<e.style.length;n++){var i=e.style[n],s=i.name,o=e.startStyle[s];e.startStyle[s]=i,e.style[n]=o}if(t)this.play();return this},promise:function(e){var t=this._private,a;switch(e){case"frame":a=t.frames;break;default:case"complete":case"completed":a=t.completes}return new aa(function(n,i){a.push(function(){n()})})}});Rt.complete=Rt.completed;Rt.run=Rt.play;Rt.running=Rt.playing;var Lh={animated:function(){return function(){var t=this,a=t.length!==void 0,n=a?t:[t],i=this._private.cy||this;if(!i.styleEnabled())return!1;var s=n[0];if(s)return s._private.animation.current.length>0}},clearQueue:function(){return function(){var t=this,a=t.length!==void 0,n=a?t:[t],i=this._private.cy||this;if(!i.styleEnabled())return this;for(var s=0;s<n.length;s++){var o=n[s];o._private.animation.queue=[]}return this}},delay:function(){return function(t,a){var n=this._private.cy||this;if(!n.styleEnabled())return this;return this.animate({delay:t,duration:t,complete:a})}},delayAnimation:function(){return function(t,a){var n=this._private.cy||this;if(!n.styleEnabled())return this;return this.animation({delay:t,duration:t,complete:a})}},animation:function(){return function(t,a){var n=this,i=n.length!==void 0,s=i?n:[n],o=this._private.cy||this,u=!i,l=!u;if(!o.styleEnabled())return this;var v=o.style();t=me({},t,a);var f=Object.keys(t).length===0;if(f)return new Os(s[0],t);if(t.duration===void 0)t.duration=400;switch(t.duration){case"slow":t.duration=600;break;case"fast":t.duration=200;break}if(l)t.style=v.getPropsList(t.style||t.css),t.css=void 0;if(l&&t.renderedPosition!=null){var c=t.renderedPosition,h=o.pan(),d=o.zoom();t.position=mv(c,d,h)}if(u&&t.panBy!=null){var y=t.panBy,g=o.pan();t.pan={x:g.x+y.x,y:g.y+y.y}}var p=t.center||t.centre;if(u&&p!=null){var m=o.getCenterPan(p.eles,t.zoom);if(m!=null)t.pan=m}if(u&&t.fit!=null){var b=t.fit,w=o.getFitViewport(b.eles||b.boundingBox,b.padding);if(w!=null)t.pan=w.pan,t.zoom=w.zoom}if(u&&Ie(t.zoom)){var E=o.getZoomedViewport(t.zoom);if(E!=null){if(E.zoomed)t.zoom=E.zoom;if(E.panned)t.pan=E.pan}else t.zoom=null}return new Os(s[0],t)}},animate:function(){return function(t,a){var n=this,i=n.length!==void 0,s=i?n:[n],o=this._private.cy||this;if(!o.styleEnabled())return this;if(a)t=me({},t,a);for(var u=0;u<s.length;u++){var l=s[u],v=l.animated()&&(t.queue===void 0||t.queue),f=l.animation(t,v?{queue:!0}:void 0);f.play()}return this}},stop:function(){return function(t,a){var n=this,i=n.length!==void 0,s=i?n:[n],o=this._private.cy||this;if(!o.styleEnabled())return this;for(var u=0;u<s.length;u++){var l=s[u],v=l._private,f=v.animation.current;for(var c=0;c<f.length;c++){var h=f[c],d=h._private;if(a)d.duration=0}if(t)v.animation.queue=[];if(!a)v.animation.current=[]}return o.notify("draw"),this}}},wi,vu;function Fn(){if(vu)return wi;vu=1;var r=Array.isArray;return wi=r,wi}var xi,fu;function Ih(){if(fu)return xi;fu=1;var r=Fn(),e=Fa(),t=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/;function n(i,s){if(r(i))return!1;var o=typeof i;if(o=="number"||o=="symbol"||o=="boolean"||i==null||e(i))return!0;return a.test(i)||!t.test(i)||s!=null&&i in Object(s)}return xi=n,xi}var Ei,cu;function Oh(){if(cu)return Ei;cu=1;var r=lv(),e=za(),t="[object AsyncFunction]",a="[object Function]",n="[object GeneratorFunction]",i="[object Proxy]";function s(o){if(!e(o))return!1;var u=r(o);return u==a||u==n||u==t||u==i}return Ei=s,Ei}var Ci,du;function Nh(){if(du)return Ci;du=1;var r=In(),e=r["__core-js_shared__"];return Ci=e,Ci}var Ti,hu;function zh(){if(hu)return Ti;hu=1;var r=Nh(),e=function(){var a=/[^.]+$/.exec(r&&r.keys&&r.keys.IE_PROTO||"");return a?"Symbol(src)_1."+a:""}();function t(a){return!!e&&e in a}return Ti=t,Ti}var Si,gu;function Fh(){if(gu)return Si;gu=1;var r=Function.prototype,e=r.toString;function t(a){if(a!=null){try{return e.call(a)}catch(n){}try{return a+""}catch(n){}}return""}return Si=t,Si}var ki,pu;function Vh(){if(pu)return ki;pu=1;var r=Oh(),e=zh(),t=za(),a=Fh(),n=/[\\^$.*+?()[\]{}|]/g,i=/^\[object .+?Constructor\]$/,s=Function.prototype,o=Object.prototype,u=s.toString,l=o.hasOwnProperty,v=RegExp("^"+u.call(l).replace(n,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function f(c){if(!t(c)||e(c))return!1;var h=r(c)?v:i;return h.test(a(c))}return ki=f,ki}var Di,yu;function qh(){if(yu)return Di;yu=1;function r(e,t){return e==null?void 0:e[t]}return Di=r,Di}var Bi,mu;function oo(){if(mu)return Bi;mu=1;var r=Vh(),e=qh();function t(a,n){var i=e(a,n);return r(i)?i:void 0}return Bi=t,Bi}var Pi,bu;function Vn(){if(bu)return Pi;bu=1;var r=oo(),e=r(Object,"create");return Pi=e,Pi}var Ai,wu;function _h(){if(wu)return Ai;wu=1;var r=Vn();function e(){this.__data__=r?r(null):{},this.size=0}return Ai=e,Ai}var Ri,xu;function Gh(){if(xu)return Ri;xu=1;function r(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}return Ri=r,Ri}var Mi,Eu;function Hh(){if(Eu)return Mi;Eu=1;var r=Vn(),e="__lodash_hash_undefined__",t=Object.prototype,a=t.hasOwnProperty;function n(i){var s=this.__data__;if(r){var o=s[i];return o===e?void 0:o}return a.call(s,i)?s[i]:void 0}return Mi=n,Mi}var Li,Cu;function Wh(){if(Cu)return Li;Cu=1;var r=Vn(),e=Object.prototype,t=e.hasOwnProperty;function a(n){var i=this.__data__;return r?i[n]!==void 0:t.call(i,n)}return Li=a,Li}var Ii,Tu;function $h(){if(Tu)return Ii;Tu=1;var r=Vn(),e="__lodash_hash_undefined__";function t(a,n){var i=this.__data__;return this.size+=this.has(a)?0:1,i[a]=r&&n===void 0?e:n,this}return Ii=t,Ii}var Oi,Su;function Uh(){if(Su)return Oi;Su=1;var r=_h(),e=Gh(),t=Hh(),a=Wh(),n=$h();function i(s){var o=-1,u=s==null?0:s.length;this.clear();while(++o<u){var l=s[o];this.set(l[0],l[1])}}return i.prototype.clear=r,i.prototype.delete=e,i.prototype.get=t,i.prototype.has=a,i.prototype.set=n,Oi=i,Oi}var Ni,ku;function Kh(){if(ku)return Ni;ku=1;function r(){this.__data__=[],this.size=0}return Ni=r,Ni}var zi,Du;function Iv(){if(Du)return zi;Du=1;function r(e,t){return e===t||e!==e&&t!==t}return zi=r,zi}var Fi,Bu;function qn(){if(Bu)return Fi;Bu=1;var r=Iv();function e(t,a){var n=t.length;while(n--)if(r(t[n][0],a))return n;return-1}return Fi=e,Fi}var Vi,Pu;function Xh(){if(Pu)return Vi;Pu=1;var r=qn(),e=Array.prototype,t=e.splice;function a(n){var i=this.__data__,s=r(i,n);if(s<0)return!1;var o=i.length-1;if(s==o)i.pop();else t.call(i,s,1);return--this.size,!0}return Vi=a,Vi}var qi,Au;function Yh(){if(Au)return qi;Au=1;var r=qn();function e(t){var a=this.__data__,n=r(a,t);return n<0?void 0:a[n][1]}return qi=e,qi}var _i,Ru;function Zh(){if(Ru)return _i;Ru=1;var r=qn();function e(t){return r(this.__data__,t)>-1}return _i=e,_i}var Gi,Mu;function Qh(){if(Mu)return Gi;Mu=1;var r=qn();function e(t,a){var n=this.__data__,i=r(n,t);if(i<0)++this.size,n.push([t,a]);else n[i][1]=a;return this}return Gi=e,Gi}var Hi,Lu;function Jh(){if(Lu)return Hi;Lu=1;var r=Kh(),e=Xh(),t=Yh(),a=Zh(),n=Qh();function i(s){var o=-1,u=s==null?0:s.length;this.clear();while(++o<u){var l=s[o];this.set(l[0],l[1])}}return i.prototype.clear=r,i.prototype.delete=e,i.prototype.get=t,i.prototype.has=a,i.prototype.set=n,Hi=i,Hi}var Wi,Iu;function jh(){if(Iu)return Wi;Iu=1;var r=oo(),e=In(),t=r(e,"Map");return Wi=t,Wi}var $i,Ou;function eg(){if(Ou)return $i;Ou=1;var r=Uh(),e=Jh(),t=jh();function a(){this.size=0,this.__data__={hash:new r,map:new(t||e),string:new r}}return $i=a,$i}var Ui,Nu;function rg(){if(Nu)return Ui;Nu=1;function r(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}return Ui=r,Ui}var Ki,zu;function _n(){if(zu)return Ki;zu=1;var r=rg();function e(t,a){var n=t.__data__;return r(a)?n[typeof a=="string"?"string":"hash"]:n.map}return Ki=e,Ki}var Xi,Fu;function tg(){if(Fu)return Xi;Fu=1;var r=_n();function e(t){var a=r(this,t).delete(t);return this.size-=a?1:0,a}return Xi=e,Xi}var Yi,Vu;function ag(){if(Vu)return Yi;Vu=1;var r=_n();function e(t){return r(this,t).get(t)}return Yi=e,Yi}var Zi,qu;function ng(){if(qu)return Zi;qu=1;var r=_n();function e(t){return r(this,t).has(t)}return Zi=e,Zi}var Qi,_u;function ig(){if(_u)return Qi;_u=1;var r=_n();function e(t,a){var n=r(this,t),i=n.size;return n.set(t,a),this.size+=n.size==i?0:1,this}return Qi=e,Qi}var Ji,Gu;function sg(){if(Gu)return Ji;Gu=1;var r=eg(),e=tg(),t=ag(),a=ng(),n=ig();function i(s){var o=-1,u=s==null?0:s.length;this.clear();while(++o<u){var l=s[o];this.set(l[0],l[1])}}return i.prototype.clear=r,i.prototype.delete=e,i.prototype.get=t,i.prototype.has=a,i.prototype.set=n,Ji=i,Ji}var ji,Hu;function og(){if(Hu)return ji;Hu=1;var r=sg(),e="Expected a function";function t(a,n){if(typeof a!="function"||n!=null&&typeof n!="function")throw TypeError(e);var i=function(){var s=arguments,o=n?n.apply(this,s):s[0],u=i.cache;if(u.has(o))return u.get(o);var l=a.apply(this,s);return i.cache=u.set(o,l)||u,l};return i.cache=new(t.Cache||r),i}return t.Cache=r,ji=t,ji}var es,Wu;function ug(){if(Wu)return es;Wu=1;var r=og(),e=500;function t(a){var n=r(a,function(s){if(i.size===e)i.clear();return s}),i=n.cache;return n}return es=t,es}var rs,$u;function Ov(){if($u)return rs;$u=1;var r=ug(),e=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,t=/\\(\\)?/g,a=r(function(n){var i=[];if(n.charCodeAt(0)===46)i.push("");return n.replace(e,function(s,o,u,l){i.push(u?l.replace(t,"$1"):o||s)}),i});return rs=a,rs}var ts,Uu;function Nv(){if(Uu)return ts;Uu=1;function r(e,t){var a=-1,n=e==null?0:e.length,i=Array(n);while(++a<n)i[a]=t(e[a],a,e);return i}return ts=r,ts}var as,Ku;function lg(){if(Ku)return as;Ku=1;var r=Js(),e=Nv(),t=Fn(),a=Fa(),n=r?r.prototype:void 0,i=n?n.toString:void 0;function s(o){if(typeof o=="string")return o;if(t(o))return e(o,s)+"";if(a(o))return i?i.call(o):"";var u=o+"";return u=="0"&&1/o==-1/0?"-0":u}return as=s,as}var ns,Xu;function zv(){if(Xu)return ns;Xu=1;var r=lg();function e(t){return t==null?"":r(t)}return ns=e,ns}var is,Yu;function Fv(){if(Yu)return is;Yu=1;var r=Fn(),e=Ih(),t=Ov(),a=zv();function n(i,s){if(r(i))return i;return e(i,s)?[i]:t(a(i))}return is=n,is}var ss,Zu;function uo(){if(Zu)return ss;Zu=1;var r=Fa();function e(t){if(typeof t=="string"||r(t))return t;var a=t+"";return a=="0"&&1/t==-1/0?"-0":a}return ss=e,ss}var os,Qu;function vg(){if(Qu)return os;Qu=1;var r=Fv(),e=uo();function t(a,n){n=r(n,a);var i=0,s=n.length;while(a!=null&&i<s)a=a[e(n[i++])];return i&&i==s?a:void 0}return os=t,os}var us,Ju;function fg(){if(Ju)return us;Ju=1;var r=vg();function e(t,a,n){var i=t==null?void 0:r(t,a);return i===void 0?n:i}return us=e,us}var cg=fg(),dg=Na(cg),ls,ju;function hg(){if(ju)return ls;ju=1;var r=oo(),e=function(){try{var t=r(Object,"defineProperty");return t({},"",{}),t}catch(a){}}();return ls=e,ls}var vs,el;function gg(){if(el)return vs;el=1;var r=hg();function e(t,a,n){if(a=="__proto__"&&r)r(t,a,{configurable:!0,enumerable:!0,value:n,writable:!0});else t[a]=n}return vs=e,vs}var fs,rl;function pg(){if(rl)return fs;rl=1;var r=gg(),e=Iv(),t=Object.prototype,a=t.hasOwnProperty;function n(i,s,o){var u=i[s];if(!(a.call(i,s)&&e(u,o))||o===void 0&&!(s in i))r(i,s,o)}return fs=n,fs}var cs,tl;function yg(){if(tl)return cs;tl=1;var r=9007199254740991,e=/^(?:0|[1-9]\d*)$/;function t(a,n){var i=typeof a;return n=n==null?r:n,!!n&&(i=="number"||i!="symbol"&&e.test(a))&&(a>-1&&a%1==0&&a<n)}return cs=t,cs}var ds,al;function mg(){if(al)return ds;al=1;var r=pg(),e=Fv(),t=yg(),a=za(),n=uo();function i(s,o,u,l){if(!a(s))return s;o=e(o,s);var v=-1,f=o.length,c=f-1,h=s;while(h!=null&&++v<f){var d=n(o[v]),y=u;if(d==="__proto__"||d==="constructor"||d==="prototype")return s;if(v!=c){var g=h[d];if(y=l?l(g,d,h):void 0,y===void 0)y=a(g)?g:t(o[v+1])?[]:{}}r(h,d,y),h=h[d]}return s}return ds=i,ds}var hs,nl;function bg(){if(nl)return hs;nl=1;var r=mg();function e(t,a,n){return t==null?t:r(t,a,n)}return hs=e,hs}var wg=bg(),xg=Na(wg),gs,il;function Eg(){if(il)return gs;il=1;function r(e,t){var a=-1,n=e.length;t||(t=Array(n));while(++a<n)t[a]=e[a];return t}return gs=r,gs}var ps,sl;function Cg(){if(sl)return ps;sl=1;var r=Nv(),e=Eg(),t=Fn(),a=Fa(),n=Ov(),i=uo(),s=zv();function o(u){if(t(u))return r(u,i);return a(u)?[u]:e(n(s(u)))}return ps=o,ps}var Tg=Cg(),Sg=Na(Tg),kg={data:function(e){var t={field:"data",bindingEvent:"data",allowBinding:!1,allowSetting:!1,allowGetting:!1,settingEvent:"data",settingTriggersEvent:!1,triggerFnName:"trigger",immutableKeys:{},updateStyle:!1,beforeGet:function(n){},beforeSet:function(n,i){},onSet:function(n){},canSet:function(n){return!0}};return e=me({},t,e),function(n,i){var s=e,o=this,u=o.length!==void 0,l=u?o:[o],v=u?o[0]:o;if(ge(n)){var f=n.indexOf(".")!==-1,c=f&&Sg(n);if(s.allowGetting&&i===void 0){var h;if(v)if(s.beforeGet(v),c&&v._private[s.field][n]===void 0)h=dg(v._private[s.field],c);else h=v._private[s.field][n];return h}else if(s.allowSetting&&i!==void 0){var d=!s.immutableKeys[n];if(d){var y=jl({},n,i);s.beforeSet(o,y);for(var g=0,p=l.length;g<p;g++){var m=l[g];if(s.canSet(m))if(c&&v._private[s.field][n]===void 0)xg(m._private[s.field],c,i);else m._private[s.field][n]=i}if(s.updateStyle)o.updateStyle();if(s.onSet(o),s.settingTriggersEvent)o[s.triggerFnName](s.settingEvent)}}}else if(s.allowSetting&&Ie(n)){var b=n,w,E,C=Object.keys(b);s.beforeSet(o,b);for(var x=0;x<C.length;x++){w=C[x],E=b[w];var S=!s.immutableKeys[w];if(S)for(var k=0;k<l.length;k++){var B=l[k];if(s.canSet(B))B._private[s.field][w]=E}}if(s.updateStyle)o.updateStyle();if(s.onSet(o),s.settingTriggersEvent)o[s.triggerFnName](s.settingEvent)}else if(s.allowBinding&&Ke(n)){var D=n;o.on(s.bindingEvent,D)}else if(s.allowGetting&&n===void 0){var P;if(v)s.beforeGet(v),P=v._private[s.field];return P}return o}},removeData:function(e){var t={field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!1,immutableKeys:{}};return e=me({},t,e),function(n){var i=e,s=this,o=s.length!==void 0,u=o?s:[s];if(ge(n)){var l=n.split(/\s+/),v=l.length;for(var f=0;f<v;f++){var c=l[f];if(vt(c))continue;var h=!i.immutableKeys[c];if(h)for(var d=0,y=u.length;d<y;d++)u[d]._private[i.field][c]=void 0}if(i.triggerEvent)s[i.triggerFnName](i.event)}else if(n===void 0){for(var g=0,p=u.length;g<p;g++){var m=u[g]._private[i.field],b=Object.keys(m);for(var w=0;w<b.length;w++){var E=b[w],C=!i.immutableKeys[E];if(C)m[E]=void 0}}if(i.triggerEvent)s[i.triggerFnName](i.event)}return s}}},Dg={eventAliasesOn:function(e){var t=e;t.addListener=t.listen=t.bind=t.on,t.unlisten=t.unbind=t.off=t.removeListener,t.trigger=t.emit,t.pon=t.promiseOn=function(a,n){var i=this,s=Array.prototype.slice.call(arguments,0);return new aa(function(o,u){var l=function(h){i.off.apply(i,f),o(h)},v=s.concat([l]),f=v.concat([]);i.on.apply(i,v)})}}},Fe={};[Lh,kg,Dg].forEach(function(r){me(Fe,r)});var Bg={animate:Fe.animate(),animation:Fe.animation(),animated:Fe.animated(),clearQueue:Fe.clearQueue(),delay:Fe.delay(),delayAnimation:Fe.delayAnimation(),stop:Fe.stop()},fn={classes:function(e){var t=this;if(e===void 0){var a=[];return t[0]._private.classes.forEach(function(d){return a.push(d)}),a}else if(!_e(e))e=(e||"").match(/\S+/g)||[];var n=[],i=new ta(e);for(var s=0;s<t.length;s++){var o=t[s],u=o._private,l=u.classes,v=!1;for(var f=0;f<e.length;f++){var c=e[f],h=l.has(c);if(!h){v=!0;break}}if(!v)v=l.size!==e.length;if(v)u.classes=i,n.push(o)}if(n.length>0)this.spawn(n).updateStyle().emit("class");return t},addClass:function(e){return this.toggleClass(e,!0)},hasClass:function(e){var t=this[0];return t!=null&&t._private.classes.has(e)},toggleClass:function(e,t){if(!_e(e))e=e.match(/\S+/g)||[];var a=this,n=t===void 0,i=[];for(var s=0,o=a.length;s<o;s++){var u=a[s],l=u._private.classes,v=!1;for(var f=0;f<e.length;f++){var c=e[f],h=l.has(c),d=!1;if(t||n&&!h)l.add(c),d=!0;else if(!t||n&&h)l.delete(c),d=!0;if(!v&&d)i.push(u),v=!0}}if(i.length>0)this.spawn(i).updateStyle().emit("class");return a},removeClass:function(e){return this.toggleClass(e,!1)},flashClass:function(e,t){var a=this;if(t==null)t=250;else if(t===0)return a;return a.addClass(e),setTimeout(function(){a.removeClass(e)},t),a}};fn.className=fn.classNames=fn.classes;var Le={metaChar:"[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]",comparatorOp:"=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=",boolOp:"\\?|\\!|\\^",string:`"(?:\\\\"|[^"])*"|'(?:\\\\'|[^'])*'`,number:tr,meta:"degree|indegree|outdegree",separator:"\\s*,\\s*",descendant:"\\s+",child:"\\s+>\\s+",subject:"\\$",group:"node|edge|\\*",directedEdge:"\\s+->\\s+",undirectedEdge:"\\s+<->\\s+"};Le.variable="(?:[\\w-.]|(?:\\\\"+Le.metaChar+"))+";Le.className="(?:[\\w-]|(?:\\\\"+Le.metaChar+"))+";Le.value=Le.string+"|"+Le.number;Le.id=Le.variable;(function(){var r,e,t;r=Le.comparatorOp.split("|");for(t=0;t<r.length;t++)e=r[t],Le.comparatorOp+="|@"+e;r=Le.comparatorOp.split("|");for(t=0;t<r.length;t++){if(e=r[t],e.indexOf("!")>=0)continue;if(e==="=")continue;Le.comparatorOp+="|\\!"+e}})();var qe=function(){return{checks:[]}},le={GROUP:0,COLLECTION:1,FILTER:2,DATA_COMPARE:3,DATA_EXIST:4,DATA_BOOL:5,META_COMPARE:6,STATE:7,ID:8,CLASS:9,UNDIRECTED_EDGE:10,DIRECTED_EDGE:11,NODE_SOURCE:12,NODE_TARGET:13,NODE_NEIGHBOR:14,CHILD:15,DESCENDANT:16,PARENT:17,ANCESTOR:18,COMPOUND_SPLIT:19,TRUE:20},Ns=[{selector:":selected",matches:function(e){return e.selected()}},{selector:":unselected",matches:function(e){return!e.selected()}},{selector:":selectable",matches:function(e){return e.selectable()}},{selector:":unselectable",matches:function(e){return!e.selectable()}},{selector:":locked",matches:function(e){return e.locked()}},{selector:":unlocked",matches:function(e){return!e.locked()}},{selector:":visible",matches:function(e){return e.visible()}},{selector:":hidden",matches:function(e){return!e.visible()}},{selector:":transparent",matches:function(e){return e.transparent()}},{selector:":grabbed",matches:function(e){return e.grabbed()}},{selector:":free",matches:function(e){return!e.grabbed()}},{selector:":removed",matches:function(e){return e.removed()}},{selector:":inside",matches:function(e){return!e.removed()}},{selector:":grabbable",matches:function(e){return e.grabbable()}},{selector:":ungrabbable",matches:function(e){return!e.grabbable()}},{selector:":animated",matches:function(e){return e.animated()}},{selector:":unanimated",matches:function(e){return!e.animated()}},{selector:":parent",matches:function(e){return e.isParent()}},{selector:":childless",matches:function(e){return e.isChildless()}},{selector:":child",matches:function(e){return e.isChild()}},{selector:":orphan",matches:function(e){return e.isOrphan()}},{selector:":nonorphan",matches:function(e){return e.isChild()}},{selector:":compound",matches:function(e){if(e.isNode())return e.isParent();else return e.source().isParent()||e.target().isParent()}},{selector:":loop",matches:function(e){return e.isLoop()}},{selector:":simple",matches:function(e){return e.isSimple()}},{selector:":active",matches:function(e){return e.active()}},{selector:":inactive",matches:function(e){return!e.active()}},{selector:":backgrounding",matches:function(e){return e.backgrounding()}},{selector:":nonbackgrounding",matches:function(e){return!e.backgrounding()}}].sort(function(r,e){return kc(r.selector,e.selector)});var Pg=function(){var r={},e;for(var t=0;t<Ns.length;t++)e=Ns[t],r[e.selector]=e.matches;return r}(),Ag=function(e,t){return Pg[e](t)},Rg="("+Ns.map(function(r){return r.selector}).join("|")+")",Nt=function(e){return e.replace(new RegExp("\\\\("+Le.metaChar+")","g"),function(t,a){return a})},tt=function(e,t,a){e[e.length-1]=a},zs=[{name:"group",query:!0,regex:"("+Le.group+")",populate:function(e,t,a){var n=je(a,1),i=n[0];t.checks.push({type:le.GROUP,value:i==="*"?i:i+"s"})}},{name:"state",query:!0,regex:Rg,populate:function(e,t,a){var n=je(a,1),i=n[0];t.checks.push({type:le.STATE,value:i})}},{name:"id",query:!0,regex:"\\#("+Le.id+")",populate:function(e,t,a){var n=je(a,1),i=n[0];t.checks.push({type:le.ID,value:Nt(i)})}},{name:"className",query:!0,regex:"\\.("+Le.className+")",populate:function(e,t,a){var n=je(a,1),i=n[0];t.checks.push({type:le.CLASS,value:Nt(i)})}},{name:"dataExists",query:!0,regex:"\\[\\s*("+Le.variable+")\\s*\\]",populate:function(e,t,a){var n=je(a,1),i=n[0];t.checks.push({type:le.DATA_EXIST,field:Nt(i)})}},{name:"dataCompare",query:!0,regex:"\\[\\s*("+Le.variable+")\\s*("+Le.comparatorOp+")\\s*("+Le.value+")\\s*\\]",populate:function(e,t,a){var n=je(a,3),i=n[0],s=n[1],o=n[2],u=new RegExp("^"+Le.string+"$").exec(o)!=null;if(u)o=o.substring(1,o.length-1);else o=parseFloat(o);t.checks.push({type:le.DATA_COMPARE,field:Nt(i),operator:s,value:o})}},{name:"dataBool",query:!0,regex:"\\[\\s*("+Le.boolOp+")\\s*("+Le.variable+")\\s*\\]",populate:function(e,t,a){var n=je(a,2),i=n[0],s=n[1];t.checks.push({type:le.DATA_BOOL,field:Nt(s),operator:i})}},{name:"metaCompare",query:!0,regex:"\\[\\[\\s*("+Le.meta+")\\s*("+Le.comparatorOp+")\\s*("+Le.number+")\\s*\\]\\]",populate:function(e,t,a){var n=je(a,3),i=n[0],s=n[1],o=n[2];t.checks.push({type:le.META_COMPARE,field:Nt(i),operator:s,value:parseFloat(o)})}},{name:"nextQuery",separator:!0,regex:Le.separator,populate:function(e,t){var{currentSubject:a,edgeCount:n,compoundCount:i}=e,s=e[e.length-1];if(a!=null)s.subject=a,e.currentSubject=null;s.edgeCount=n,s.compoundCount=i,e.edgeCount=0,e.compoundCount=0;var o=e[e.length++]=qe();return o}},{name:"directedEdge",separator:!0,regex:Le.directedEdge,populate:function(e,t){if(e.currentSubject==null){var a=qe(),n=t,i=qe();return a.checks.push({type:le.DIRECTED_EDGE,source:n,target:i}),tt(e,t,a),e.edgeCount++,i}else{var s=qe(),o=t,u=qe();return s.checks.push({type:le.NODE_SOURCE,source:o,target:u}),tt(e,t,s),e.edgeCount++,u}}},{name:"undirectedEdge",separator:!0,regex:Le.undirectedEdge,populate:function(e,t){if(e.currentSubject==null){var a=qe(),n=t,i=qe();return a.checks.push({type:le.UNDIRECTED_EDGE,nodes:[n,i]}),tt(e,t,a),e.edgeCount++,i}else{var s=qe(),o=t,u=qe();return s.checks.push({type:le.NODE_NEIGHBOR,node:o,neighbor:u}),tt(e,t,s),u}}},{name:"child",separator:!0,regex:Le.child,populate:function(e,t){if(e.currentSubject==null){var a=qe(),n=qe(),i=e[e.length-1];return a.checks.push({type:le.CHILD,parent:i,child:n}),tt(e,t,a),e.compoundCount++,n}else if(e.currentSubject===t){var s=qe(),o=e[e.length-1],u=qe(),l=qe(),v=qe(),f=qe();return s.checks.push({type:le.COMPOUND_SPLIT,left:o,right:u,subject:l}),l.checks=t.checks,t.checks=[{type:le.TRUE}],f.checks.push({type:le.TRUE}),u.checks.push({type:le.PARENT,parent:f,child:v}),tt(e,o,s),e.currentSubject=l,e.compoundCount++,v}else{var c=qe(),h=qe(),d=[{type:le.PARENT,parent:c,child:h}];return c.checks=t.checks,t.checks=d,e.compoundCount++,h}}},{name:"descendant",separator:!0,regex:Le.descendant,populate:function(e,t){if(e.currentSubject==null){var a=qe(),n=qe(),i=e[e.length-1];return a.checks.push({type:le.DESCENDANT,ancestor:i,descendant:n}),tt(e,t,a),e.compoundCount++,n}else if(e.currentSubject===t){var s=qe(),o=e[e.length-1],u=qe(),l=qe(),v=qe(),f=qe();return s.checks.push({type:le.COMPOUND_SPLIT,left:o,right:u,subject:l}),l.checks=t.checks,t.checks=[{type:le.TRUE}],f.checks.push({type:le.TRUE}),u.checks.push({type:le.ANCESTOR,ancestor:f,descendant:v}),tt(e,o,s),e.currentSubject=l,e.compoundCount++,v}else{var c=qe(),h=qe(),d=[{type:le.ANCESTOR,ancestor:c,descendant:h}];return c.checks=t.checks,t.checks=d,e.compoundCount++,h}}},{name:"subject",modifier:!0,regex:Le.subject,populate:function(e,t){if(e.currentSubject!=null&&e.currentSubject!==t)return Ve("Redefinition of subject in selector `"+e.toString()+"`"),!1;e.currentSubject=t;var a=e[e.length-1],n=a.checks[0],i=n==null?null:n.type;if(i===le.DIRECTED_EDGE)n.type=le.NODE_TARGET;else if(i===le.UNDIRECTED_EDGE)n.type=le.NODE_NEIGHBOR,n.node=n.nodes[1],n.neighbor=n.nodes[0],n.nodes=null}}];zs.forEach(function(r){return r.regexObj=new RegExp("^"+r.regex)});var Mg=function(e){var t,a,n;for(var i=0;i<zs.length;i++){var s=zs[i],o=s.name,u=e.match(s.regexObj);if(u!=null){a=u,t=s,n=o;var l=u[0];e=e.substring(l.length);break}}return{expr:t,match:a,name:n,remaining:e}},Lg=function(e){var t=e.match(/^\s+/);if(t){var a=t[0];e=e.substring(a.length)}return e},Ig=function(e){var t=this,a=t.inputText=e,n=t[0]=qe();t.length=1,a=Lg(a);for(;;){var i=Mg(a);if(i.expr==null)return Ve("The selector `"+e+"`is invalid"),!1;else{var s=i.match.slice(1),o=i.expr.populate(t,n,s);if(o===!1)return!1;else if(o!=null)n=o}if(a=i.remaining,a.match(/^\s*$/))break}var u=t[t.length-1];if(t.currentSubject!=null)u.subject=t.currentSubject;u.edgeCount=t.edgeCount,u.compoundCount=t.compoundCount;for(var l=0;l<t.length;l++){var v=t[l];if(v.compoundCount>0&&v.edgeCount>0)return Ve("The selector `"+e+"` is invalid because it uses both a compound selector and an edge selector"),!1;if(v.edgeCount>1)return Ve("The selector `"+e+"` is invalid because it uses multiple edge selectors"),!1;else if(v.edgeCount===1)Ve("The selector `"+e+"` is deprecated. Edge selectors do not take effect on changes to source and target nodes after an edge is added, for performance reasons. Use a class or data selector on edges instead, updating the class or data of an edge when your app detects a change in source or target nodes.")}return!0},Og=function(){if(this.toStringCache!=null)return this.toStringCache;var e=function(v){if(v==null)return"";else return v},t=function(v){if(ge(v))return'"'+v+'"';else return e(v)},a=function(v){return" "+v+" "},n=function(v,f){var{type:c,value:h}=v;switch(c){case le.GROUP:{var d=e(h);return d.substring(0,d.length-1)}case le.DATA_COMPARE:{var{field:y,operator:g}=v;return"["+y+a(e(g))+t(h)+"]"}case le.DATA_BOOL:{var{operator:p,field:m}=v;return"["+e(p)+m+"]"}case le.DATA_EXIST:{var b=v.field;return"["+b+"]"}case le.META_COMPARE:{var{operator:w,field:E}=v;return"[["+E+a(e(w))+t(h)+"]]"}case le.STATE:return h;case le.ID:return"#"+h;case le.CLASS:return"."+h;case le.PARENT:case le.CHILD:return i(v.parent,f)+a(">")+i(v.child,f);case le.ANCESTOR:case le.DESCENDANT:return i(v.ancestor,f)+" "+i(v.descendant,f);case le.COMPOUND_SPLIT:{var C=i(v.left,f),x=i(v.subject,f),S=i(v.right,f);return C+(C.length>0?" ":"")+x+S}case le.TRUE:return""}},i=function(v,f){return v.checks.reduce(function(c,h,d){return c+(f===v&&d===0?"$":"")+n(h,f)},"")},s="";for(var o=0;o<this.length;o++){var u=this[o];if(s+=i(u,u.subject),this.length>1&&o<this.length-1)s+=", "}return this.toStringCache=s,s},Ng={parse:Ig,toString:Og},Vv=function(e,t,a){var n,i=ge(e),s=ne(e),o=ge(a),u,l,v=!1,f=!1,c=!1;if(t.indexOf("!")>=0)t=t.replace("!",""),f=!0;if(t.indexOf("@")>=0)t=t.replace("@",""),v=!0;if(i||o||v)u=!i&&!s?"":""+e,l=""+a;if(v)e=u=u.toLowerCase(),a=l=l.toLowerCase();switch(t){case"*=":n=u.indexOf(l)>=0;break;case"$=":n=u.indexOf(l,u.length-l.length)>=0;break;case"^=":n=u.indexOf(l)===0;break;case"=":n=e===a;break;case">":c=!0,n=e>a;break;case">=":c=!0,n=e>=a;break;case"<":c=!0,n=e<a;break;case"<=":c=!0,n=e<=a;break;default:n=!1;break}if(f&&(e!=null||!c))n=!n;return n},zg=function(e,t){switch(t){case"?":return e?!0:!1;case"!":return e?!1:!0;case"^":return e===void 0}},Fg=function(e){return e!==void 0},lo=function(e,t){return e.data(t)},Vg=function(e,t){return e[t]()},Ze=[],We=function(e,t){return e.checks.every(function(a){return Ze[a.type](a,t)})};Ze[le.GROUP]=function(r,e){var t=r.value;return t==="*"||t===e.group()};Ze[le.STATE]=function(r,e){var t=r.value;return Ag(t,e)};Ze[le.ID]=function(r,e){var t=r.value;return e.id()===t};Ze[le.CLASS]=function(r,e){var t=r.value;return e.hasClass(t)};Ze[le.META_COMPARE]=function(r,e){var{field:t,operator:a,value:n}=r;return Vv(Vg(e,t),a,n)};Ze[le.DATA_COMPARE]=function(r,e){var{field:t,operator:a,value:n}=r;return Vv(lo(e,t),a,n)};Ze[le.DATA_BOOL]=function(r,e){var{field:t,operator:a}=r;return zg(lo(e,t),a)};Ze[le.DATA_EXIST]=function(r,e){var t=r.field;return r.operator,Fg(lo(e,t))};Ze[le.UNDIRECTED_EDGE]=function(r,e){var t=r.nodes[0],a=r.nodes[1],n=e.source(),i=e.target();return We(t,n)&&We(a,i)||We(a,n)&&We(t,i)};Ze[le.NODE_NEIGHBOR]=function(r,e){return We(r.node,e)&&e.neighborhood().some(function(t){return t.isNode()&&We(r.neighbor,t)})};Ze[le.DIRECTED_EDGE]=function(r,e){return We(r.source,e.source())&&We(r.target,e.target())};Ze[le.NODE_SOURCE]=function(r,e){return We(r.source,e)&&e.outgoers().some(function(t){return t.isNode()&&We(r.target,t)})};Ze[le.NODE_TARGET]=function(r,e){return We(r.target,e)&&e.incomers().some(function(t){return t.isNode()&&We(r.source,t)})};Ze[le.CHILD]=function(r,e){return We(r.child,e)&&We(r.parent,e.parent())};Ze[le.PARENT]=function(r,e){return We(r.parent,e)&&e.children().some(function(t){return We(r.child,t)})};Ze[le.DESCENDANT]=function(r,e){return We(r.descendant,e)&&e.ancestors().some(function(t){return We(r.ancestor,t)})};Ze[le.ANCESTOR]=function(r,e){return We(r.ancestor,e)&&e.descendants().some(function(t){return We(r.descendant,t)})};Ze[le.COMPOUND_SPLIT]=function(r,e){return We(r.subject,e)&&We(r.left,e)&&We(r.right,e)};Ze[le.TRUE]=function(){return!0};Ze[le.COLLECTION]=function(r,e){var t=r.value;return t.has(e)};Ze[le.FILTER]=function(r,e){var t=r.value;return t(e)};var qg=function(e){var t=this;if(t.length===1&&t[0].checks.length===1&&t[0].checks[0].type===le.ID)return e.getElementById(t[0].checks[0].value).collection();var a=function(i){for(var s=0;s<t.length;s++){var o=t[s];if(We(o,i))return!0}return!1};if(t.text()==null)a=function(){return!0};return e.filter(a)},_g=function(e){var t=this;for(var a=0;a<t.length;a++){var n=t[a];if(We(n,e))return!0}return!1},Gg={matches:_g,filter:qg},dt=function(e){if(this.inputText=e,this.currentSubject=null,this.compoundCount=0,this.edgeCount=0,this.length=0,e==null||ge(e)&&e.match(/^\s*$/));else if(kr(e))this.addQuery({checks:[{type:le.COLLECTION,value:e.collection()}]});else if(Ke(e))this.addQuery({checks:[{type:le.FILTER,value:e}]});else if(ge(e)){if(!this.parse(e))this.invalid=!0}else $e("A selector must be created from a string; found ")},ht=dt.prototype;[Ng,Gg].forEach(function(r){return me(ht,r)});ht.text=function(){return this.inputText};ht.size=function(){return this.length};ht.eq=function(r){return this[r]};ht.sameText=function(r){return!this.invalid&&!r.invalid&&this.text()===r.text()};ht.addQuery=function(r){this[this.length++]=r};ht.selector=ht.toString;var ut={allAre:function(e){var t=new dt(e);return this.every(function(a){return t.matches(a)})},is:function(e){var t=new dt(e);return this.some(function(a){return t.matches(a)})},some:function(e,t){for(var a=0;a<this.length;a++){var n=!t?e(this[a],a,this):e.apply(t,[this[a],a,this]);if(n)return!0}return!1},every:function(e,t){for(var a=0;a<this.length;a++){var n=!t?e(this[a],a,this):e.apply(t,[this[a],a,this]);if(!n)return!1}return!0},same:function(e){if(this===e)return!0;e=this.cy().collection(e);var t=this.length,a=e.length;if(t!==a)return!1;if(t===1)return this[0]===e[0];return this.every(function(n){return e.hasElementWithId(n.id())})},anySame:function(e){return e=this.cy().collection(e),this.some(function(t){return e.hasElementWithId(t.id())})},allAreNeighbors:function(e){e=this.cy().collection(e);var t=this.neighborhood();return e.every(function(a){return t.hasElementWithId(a.id())})},contains:function(e){e=this.cy().collection(e);var t=this;return e.every(function(a){return t.hasElementWithId(a.id())})}};ut.allAreNeighbours=ut.allAreNeighbors;ut.has=ut.contains;ut.equal=ut.equals=ut.same;var Ar=function(e,t){return function(n,i,s,o){var u=n,l=this,v;if(u==null)v="";else if(kr(u)&&u.length===1)v=u.id();if(l.length===1&&v){var f=l[0]._private,c=f.traversalCache=f.traversalCache||{},h=c[t]=c[t]||[],d=Pt(v),y=h[d];if(y)return y;else return h[d]=e.call(l,n,i,s,o)}else return e.call(l,n,i,s,o)}},jt={parent:function(e){var t=[];if(this.length===1){var a=this[0]._private.parent;if(a)return a}for(var n=0;n<this.length;n++){var i=this[n],s=i._private.parent;if(s)t.push(s)}return this.spawn(t,!0).filter(e)},parents:function(e){var t=[],a=this.parent();while(a.nonempty()){for(var n=0;n<a.length;n++){var i=a[n];t.push(i)}a=a.parent()}return this.spawn(t,!0).filter(e)},commonAncestors:function(e){var t;for(var a=0;a<this.length;a++){var n=this[a],i=n.parents();t=t||i,t=t.intersect(i)}return t.filter(e)},orphans:function(e){return this.stdFilter(function(t){return t.isOrphan()}).filter(e)},nonorphans:function(e){return this.stdFilter(function(t){return t.isChild()}).filter(e)},children:Ar(function(r){var e=[];for(var t=0;t<this.length;t++){var a=this[t],n=a._private.children;for(var i=0;i<n.length;i++)e.push(n[i])}return this.spawn(e,!0).filter(r)},"children"),siblings:function(e){return this.parent().children().not(this).filter(e)},isParent:function(){var e=this[0];if(e)return e.isNode()&&e._private.children.length!==0},isChildless:function(){var e=this[0];if(e)return e.isNode()&&e._private.children.length===0},isChild:function(){var e=this[0];if(e)return e.isNode()&&e._private.parent!=null},isOrphan:function(){var e=this[0];if(e)return e.isNode()&&e._private.parent==null},descendants:function(e){var t=[];function a(n){for(var i=0;i<n.length;i++){var s=n[i];if(t.push(s),s.children().nonempty())a(s.children())}}return a(this.children()),this.spawn(t,!0).filter(e)}};function vo(r,e,t,a){var n=[],i=new ta,s=r.cy(),o=s.hasCompoundNodes();for(var u=0;u<r.length;u++){var l=r[u];if(t)n.push(l);else if(o)a(n,i,l)}while(n.length>0){var v=n.shift();if(e(v),i.add(v.id()),o)a(n,i,v)}return r}function qv(r,e,t){if(t.isParent()){var a=t._private.children;for(var n=0;n<a.length;n++){var i=a[n];if(!e.has(i.id()))r.push(i)}}}jt.forEachDown=function(r){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return vo(this,r,e,qv)};function _v(r,e,t){if(t.isChild()){var a=t._private.parent;if(!e.has(a.id()))r.push(a)}}jt.forEachUp=function(r){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return vo(this,r,e,_v)};function Hg(r,e,t){_v(r,e,t),qv(r,e,t)}jt.forEachUpAndDown=function(r){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return vo(this,r,e,Hg)};jt.ancestors=jt.parents;var Pa,Gv;Pa=Gv={data:Fe.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),removeData:Fe.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),scratch:Fe.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:Fe.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),rscratch:Fe.data({field:"rscratch",allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!0}),removeRscratch:Fe.removeData({field:"rscratch",triggerEvent:!1}),id:function(){var e=this[0];if(e)return e._private.data.id}};Pa.attr=Pa.data;Pa.removeAttr=Pa.removeData;var Wg=Gv,Gn={};function ys(r){return function(e){var t=this;if(e===void 0)e=!0;if(t.length===0)return;if(t.isNode()&&!t.removed()){var a=0,n=t[0],i=n._private.edges;for(var s=0;s<i.length;s++){var o=i[s];if(!e&&o.isLoop())continue;a+=r(n,o)}return a}else return}}me(Gn,{degree:ys(function(r,e){if(e.source().same(e.target()))return 2;else return 1}),indegree:ys(function(r,e){if(e.target().same(r))return 1;else return 0}),outdegree:ys(function(r,e){if(e.source().same(r))return 1;else return 0})});function zt(r,e){return function(t){var a,n=this.nodes();for(var i=0;i<n.length;i++){var s=n[i],o=s[r](t);if(o!==void 0&&(a===void 0||e(o,a)))a=o}return a}}me(Gn,{minDegree:zt("degree",function(r,e){return r<e}),maxDegree:zt("degree",function(r,e){return r>e}),minIndegree:zt("indegree",function(r,e){return r<e}),maxIndegree:zt("indegree",function(r,e){return r>e}),minOutdegree:zt("outdegree",function(r,e){return r<e}),maxOutdegree:zt("outdegree",function(r,e){return r>e})});me(Gn,{totalDegree:function(e){var t=0,a=this.nodes();for(var n=0;n<a.length;n++)t+=a[n].degree(e);return t}});var Nr,Hv,Wv=function(e,t,a){for(var n=0;n<e.length;n++){var i=e[n];if(!i.locked()){var s=i._private.position,o={x:t.x!=null?t.x-s.x:0,y:t.y!=null?t.y-s.y:0};if(i.isParent()&&!(o.x===0&&o.y===0))i.children().shift(o,a);i.dirtyBoundingBoxCache()}}},ol={field:"position",bindingEvent:"position",allowBinding:!0,allowSetting:!0,settingEvent:"position",settingTriggersEvent:!0,triggerFnName:"emitAndNotify",allowGetting:!0,validKeys:["x","y"],beforeGet:function(e){e.updateCompoundBounds()},beforeSet:function(e,t){Wv(e,t,!1)},onSet:function(e){e.dirtyCompoundBoundsCache()},canSet:function(e){return!e.locked()}};Nr=Hv={position:Fe.data(ol),silentPosition:Fe.data(me({},ol,{allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!1,beforeSet:function(e,t){Wv(e,t,!0)},onSet:function(e){e.dirtyCompoundBoundsCache()}})),positions:function(e,t){if(Ie(e))if(t)this.silentPosition(e);else this.position(e);else if(Ke(e)){var a=e,n=this.cy();n.startBatch();for(var i=0;i<this.length;i++){var s=this[i],o=void 0;if(o=a(s,i))if(t)s.silentPosition(o);else s.position(o)}n.endBatch()}return this},silentPositions:function(e){return this.positions(e,!0)},shift:function(e,t,a){var n;if(Ie(e))n={x:ne(e.x)?e.x:0,y:ne(e.y)?e.y:0},a=t;else if(ge(e)&&ne(t))n={x:0,y:0},n[e]=t;if(n!=null){var i=this.cy();i.startBatch();for(var s=0;s<this.length;s++){var o=this[s];if(i.hasCompoundNodes()&&o.isChild()&&o.ancestors().anySame(this))continue;var u=o.position(),l={x:u.x+n.x,y:u.y+n.y};if(a)o.silentPosition(l);else o.position(l)}i.endBatch()}return this},silentShift:function(e,t){if(Ie(e))this.shift(e,!0);else if(ge(e)&&ne(t))this.shift(e,t,!0);return this},renderedPosition:function(e,t){var a=this[0],n=this.cy(),i=n.zoom(),s=n.pan(),o=Ie(e)?e:void 0,u=o!==void 0||t!==void 0&&ge(e);if(a&&a.isNode())if(u)for(var l=0;l<this.length;l++){var v=this[l];if(t!==void 0)v.position(e,(t-s[e])/i);else if(o!==void 0)v.position(mv(o,i,s))}else{var f=a.position();if(o=Nn(f,i,s),e===void 0)return o;else return o[e]}else if(!u)return;return this},relativePosition:function(e,t){var a=this[0],n=this.cy(),i=Ie(e)?e:void 0,s=i!==void 0||t!==void 0&&ge(e),o=n.hasCompoundNodes();if(a&&a.isNode())if(s)for(var u=0;u<this.length;u++){var l=this[u],v=o?l.parent():null,f=v&&v.length>0,c=f;if(f)v=v[0];var h=c?v.position():{x:0,y:0};if(t!==void 0)l.position(e,t+h[e]);else if(i!==void 0)l.position({x:i.x+h.x,y:i.y+h.y})}else{var d=a.position(),y=o?a.parent():null,g=y&&y.length>0,p=g;if(g)y=y[0];var m=p?y.position():{x:0,y:0};if(i={x:d.x-m.x,y:d.y-m.y},e===void 0)return i;else return i[e]}else if(!s)return;return this}};Nr.modelPosition=Nr.point=Nr.position;Nr.modelPositions=Nr.points=Nr.positions;Nr.renderedPoint=Nr.renderedPosition;Nr.relativePoint=Nr.relativePosition;var $g=Hv,ea=function(e){switch(e){case"left":case"right-inside":return"left";case"right":case"left-inside":return"right";default:return"center"}},ra=function(e){switch(e){case"top":case"bottom-inside":return"top";case"bottom":case"top-inside":return"bottom";default:return"center"}},Ug=function(e){switch(e){case"left":return"right";case"right":return"left";case"left-inside":return"left";case"right-inside":return"right";default:return"center"}},Zt,mt;Zt=mt={};mt.renderedBoundingBox=function(r){var e=this.boundingBox(r),t=this.cy(),a=t.zoom(),n=t.pan(),i=e.x1*a+n.x,s=e.x2*a+n.x,o=e.y1*a+n.y,u=e.y2*a+n.y;return{x1:i,x2:s,y1:o,y2:u,w:s-i,h:u-o}};mt.dirtyCompoundBoundsCache=function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,e=this.cy();if(!e.styleEnabled()||!e.hasCompoundNodes())return this;return this.forEachUp(function(t){if(t.isParent()){var a=t._private;if(a.compoundBoundsClean=!1,a.bbCache=null,!r)t.emitAndNotify("bounds")}}),this};mt.updateCompoundBounds=function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,e=this.cy();if(!e.styleEnabled()||!e.hasCompoundNodes())return this;if(!r&&e.batching())return this;function t(s){if(!s.isParent())return;var o=s._private,u=s.children(),l=s.pstyle("compound-sizing-wrt-labels").value==="include",v={width:{val:s.pstyle("min-width").pfValue,left:s.pstyle("min-width-bias-left"),right:s.pstyle("min-width-bias-right")},height:{val:s.pstyle("min-height").pfValue,top:s.pstyle("min-height-bias-top"),bottom:s.pstyle("min-height-bias-bottom")}},f=u.boundingBox({includeLabels:l,includeOverlays:!1,useCache:!1}),c=o.position;if(f.w===0||f.h===0)f={w:s.pstyle("width").pfValue,h:s.pstyle("height").pfValue},f.x1=c.x-f.w/2,f.x2=c.x+f.w/2,f.y1=c.y-f.h/2,f.y2=c.y+f.h/2;function h(k,B,D){var P=0,A=0,R=B+D;if(k>0&&R>0)P=B/R*k,A=D/R*k;return{biasDiff:P,biasComplementDiff:A}}function d(k,B,D,P){if(D.units==="%")switch(P){case"width":return k>0?D.pfValue*k:0;case"height":return B>0?D.pfValue*B:0;case"average":return k>0&&B>0?D.pfValue*(k+B)/2:0;case"min":return k>0&&B>0?k>B?D.pfValue*B:D.pfValue*k:0;case"max":return k>0&&B>0?k>B?D.pfValue*k:D.pfValue*B:0;default:return 0}else if(D.units==="px")return D.pfValue;else return 0}var y=v.width.left.value;if(v.width.left.units==="px"&&v.width.val>0)y=y*100/v.width.val;var g=v.width.right.value;if(v.width.right.units==="px"&&v.width.val>0)g=g*100/v.width.val;var p=v.height.top.value;if(v.height.top.units==="px"&&v.height.val>0)p=p*100/v.height.val;var m=v.height.bottom.value;if(v.height.bottom.units==="px"&&v.height.val>0)m=m*100/v.height.val;var b=h(v.width.val-f.w,y,g),{biasDiff:w,biasComplementDiff:E}=b,C=h(v.height.val-f.h,p,m),{biasDiff:x,biasComplementDiff:S}=C;o.autoPadding=d(f.w,f.h,s.pstyle("padding"),s.pstyle("padding-relative-to").value),o.autoWidth=Math.max(f.w,v.width.val),c.x=(-w+f.x1+f.x2+E)/2,o.autoHeight=Math.max(f.h,v.height.val),c.y=(-x+f.y1+f.y2+S)/2}for(var a=0;a<this.length;a++){var n=this[a],i=n._private;if(!i.compoundBoundsClean||r){if(t(n),!e.batching())i.compoundBoundsClean=!0}}return this};var Pr=function(e){if(e===1/0||e===-1/0)return 0;return e},Or=function(e,t,a,n,i){if(n-t===0||i-a===0)return;if(t==null||a==null||n==null||i==null)return;e.x1=t<e.x1?t:e.x1,e.x2=n>e.x2?n:e.x2,e.y1=a<e.y1?a:e.y1,e.y2=i>e.y2?i:e.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1},nt=function(e,t){if(t==null)return e;return Or(e,t.x1,t.y1,t.x2,t.y2)},ca=function(e,t,a){return br(e,t,a)},en=function(e,t,a){if(t.cy().headless())return;var n=t._private,i=n.rstyle,s=i.arrowWidth/2,o=t.pstyle(a+"-arrow-shape").value,u,l;if(o!=="none"){if(a==="source")u=i.srcX,l=i.srcY;else if(a==="target")u=i.tgtX,l=i.tgtY;else u=i.midX,l=i.midY;var v=n.arrowBounds=n.arrowBounds||{},f=v[a]=v[a]||{};f.x1=u-s,f.y1=l-s,f.x2=u+s,f.y2=l+s,f.w=f.x2-f.x1,f.h=f.y2-f.y1,ln(f,1),Or(e,f.x1,f.y1,f.x2,f.y2)}},ms=function(e,t,a){if(t.cy().headless())return;var n;if(a)n=a+"-";else n="";var i=t._private,s=i.rstyle,o=t.pstyle(n+"label").strValue;if(o){var u=t.pstyle("text-halign"),l=t.pstyle("text-valign"),v=ca(s,"labelWidth",a),f=ca(s,"labelHeight",a),c=ca(s,"labelX",a),h=ca(s,"labelY",a),d=t.pstyle(n+"text-margin-x").pfValue,y=t.pstyle(n+"text-margin-y").pfValue,g=t.isEdge(),p=t.pstyle(n+"text-rotation"),m=t.pstyle("text-outline-width").pfValue,b=t.pstyle("text-border-width").pfValue,w=b/2,E=t.pstyle("text-background-padding").pfValue,C=2,x=f,S=v,k=S/2,B=x/2,D,P,A,R;if(g)D=c-k,P=c+k,A=h-B,R=h+B;else{switch(ea(u.value)){case"left":D=c-S,P=c;break;case"center":D=c-k,P=c+k;break;case"right":D=c,P=c+S;break}switch(ra(l.value)){case"top":A=h-x,R=h;break;case"center":A=h-B,R=h+B;break;case"bottom":A=h,R=h+x;break}}var L=d-Math.max(m,w)-E-C,I=d+Math.max(m,w)+E+C,M=y-Math.max(m,w)-E-C,O=y+Math.max(m,w)+E+C;D+=L,P+=I,A+=M,R+=O;var q=a||"main",_=i.labelBounds,N=_[q]=_[q]||{};N.x1=D,N.y1=A,N.x2=P,N.y2=R,N.w=P-D,N.h=R-A,N.leftPad=L,N.rightPad=I,N.topPad=M,N.botPad=O;var V=g&&p.strValue==="autorotate",Z=p.pfValue!=null&&p.pfValue!==0;if(V||Z){var j=V?ca(i.rstyle,"labelAngle",a):p.pfValue,Q=Math.cos(j),re=Math.sin(j),te=(D+P)/2,ie=(A+R)/2;if(!g){switch(ea(u.value)){case"left":te=P;break;case"right":te=D;break}switch(ra(l.value)){case"top":ie=R;break;case"bottom":ie=A;break}}var Y=function(xe,be){return xe=xe-te,be=be-ie,{x:xe*Q-be*re+te,y:xe*re+be*Q+ie}},F=Y(D,A),H=Y(D,R),W=Y(P,A),K=Y(P,R);D=Math.min(F.x,H.x,W.x,K.x),P=Math.max(F.x,H.x,W.x,K.x),A=Math.min(F.y,H.y,W.y,K.y),R=Math.max(F.y,H.y,W.y,K.y)}var ae=q+"Rot",ve=_[ae]=_[ae]||{};ve.x1=D,ve.y1=A,ve.x2=P,ve.y2=R,ve.w=P-D,ve.h=R-A,Or(e,D,A,P,R),Or(i.labelBounds.all,D,A,P,R)}return e},ul=function(e,t){if(t.cy().headless())return;var a=t.pstyle("outline-opacity").value,n=t.pstyle("outline-width").value,i=t.pstyle("outline-offset").value,s=n+i;$v(e,t,a,s,"outside",s/2)},$v=function(e,t,a,n,i,s){if(a===0||n<=0||i==="inside")return;var o=t.cy(),u=o.renderer(),l=u.nodeShapes[u.getNodeShape(t)];if(!l)return;var v=t.position(),{x:f,y:c}=v,h=t.width(),d=t.height();if(l.hasMiterBounds){if(i==="center")n/=2;var y=l.miterBounds(f,c,h,d,n);nt(e,y)}else if(s!=null&&s>0)vn(e,[s,s,s,s])},Kg=function(e,t){if(t.cy().headless())return;var a=t.pstyle("border-opacity").value,n=t.pstyle("border-width").pfValue,i=t.pstyle("border-position").value;$v(e,t,a,n,i)},Xg=function(e,t){var a=e._private.cy,n=a.styleEnabled(),i=a.headless(),s=wr(),o=e._private,u=e.isNode(),l=e.isEdge(),v,f,c,h,d,y,g=o.rstyle,p=u&&n?e.pstyle("bounds-expansion").pfValue:[0],m=function(Be){return Be.pstyle("display").value!=="none"},b=!n||m(e)&&(!l||m(e.source())&&m(e.target()));if(b){var w=0,E=0;if(n&&t.includeOverlays){if(w=e.pstyle("overlay-opacity").value,w!==0)E=e.pstyle("overlay-padding").value}var C=0,x=0;if(n&&t.includeUnderlays){if(C=e.pstyle("underlay-opacity").value,C!==0)x=e.pstyle("underlay-padding").value}var S=Math.max(E,x),k=0,B=0;if(n)k=e.pstyle("width").pfValue,B=k/2;if(u&&t.includeNodes){var D=e.position();d=D.x,y=D.y;var P=e.outerWidth(),A=P/2,R=e.outerHeight(),L=R/2;if(v=d-A,f=d+A,c=y-L,h=y+L,Or(s,v,c,f,h),n)ul(s,e);if(n&&t.includeOutlines&&!i)ul(s,e);if(n)Kg(s,e)}else if(l&&t.includeEdges)if(n&&!i){var I=e.pstyle("curve-style").strValue;if(v=Math.min(g.srcX,g.midX,g.tgtX),f=Math.max(g.srcX,g.midX,g.tgtX),c=Math.min(g.srcY,g.midY,g.tgtY),h=Math.max(g.srcY,g.midY,g.tgtY),v-=B,f+=B,c-=B,h+=B,Or(s,v,c,f,h),I==="haystack"){var M=g.haystackPts;if(M&&M.length===2){if(v=M[0].x,c=M[0].y,f=M[1].x,h=M[1].y,v>f){var O=v;v=f,f=O}if(c>h){var q=c;c=h,h=q}Or(s,v-B,c-B,f+B,h+B)}}else if(I==="bezier"||I==="unbundled-bezier"||it(I,"segments")||it(I,"taxi")){var _;switch(I){case"bezier":case"unbundled-bezier":_=g.bezierPts;break;case"segments":case"taxi":case"round-segments":case"round-taxi":_=g.linePts;break}if(_!=null)for(var N=0;N<_.length;N++){var V=_[N];v=V.x-B,f=V.x+B,c=V.y-B,h=V.y+B,Or(s,v,c,f,h)}}}else{var Z=e.source(),j=Z.position(),Q=e.target(),re=Q.position();if(v=j.x,f=re.x,c=j.y,h=re.y,v>f){var te=v;v=f,f=te}if(c>h){var ie=c;c=h,h=ie}v-=B,f+=B,c-=B,h+=B,Or(s,v,c,f,h)}if(n&&t.includeEdges&&l)en(s,e,"mid-source"),en(s,e,"mid-target"),en(s,e,"source"),en(s,e,"target");if(n){var Y=e.pstyle("ghost").value==="yes";if(Y){var F=e.pstyle("ghost-offset-x").pfValue,H=e.pstyle("ghost-offset-y").pfValue;Or(s,s.x1+F,s.y1+H,s.x2+F,s.y2+H)}}var W=o.bodyBounds=o.bodyBounds||{};if(Ko(W,s),vn(W,p),ln(W,1),n)v=s.x1,f=s.x2,c=s.y1,h=s.y2,Or(s,v-S,c-S,f+S,h+S);var K=o.overlayBounds=o.overlayBounds||{};Ko(K,s),vn(K,p),ln(K,1);var ae=o.labelBounds=o.labelBounds||{};if(ae.all!=null)Bd(ae.all);else ae.all=wr();if(n&&t.includeLabels){if(t.includeMainLabels)ms(s,e,null);if(l){if(t.includeSourceLabels)ms(s,e,"source");if(t.includeTargetLabels)ms(s,e,"target")}}}if(s.x1=Pr(s.x1),s.y1=Pr(s.y1),s.x2=Pr(s.x2),s.y2=Pr(s.y2),s.w=Pr(s.x2-s.x1),s.h=Pr(s.y2-s.y1),s.w>0&&s.h>0&&b)vn(s,p),ln(s,1);return s},Uv=function(e){var t=0,a=function(s){return(s?1:0)<<t++},n=0;return n+=a(e.incudeNodes),n+=a(e.includeEdges),n+=a(e.includeLabels),n+=a(e.includeMainLabels),n+=a(e.includeSourceLabels),n+=a(e.includeTargetLabels),n+=a(e.includeOverlays),n+=a(e.includeOutlines),n},Kv=function(e){var t=function(o){return Math.round(o)};if(e.isEdge()){var a=e.source().position(),n=e.target().position();return _o([t(a.x),t(a.y),t(n.x),t(n.y)])}else{var i=e.position();return _o([t(i.x),t(i.y)])}},ll=function(e,t){var a=e._private,n,i=e.isEdge(),s=t==null?vl:Uv(t),o=s===vl;if(a.bbCache==null)n=Xg(e,Aa),a.bbCache=n,a.bbCachePosKey=Kv(e);else n=a.bbCache;if(!o){var u=e.isNode();if(n=wr(),t.includeNodes&&u||t.includeEdges&&!u)if(t.includeOverlays)nt(n,a.overlayBounds);else nt(n,a.bodyBounds);if(t.includeLabels)if(t.includeMainLabels&&(!i||t.includeSourceLabels&&t.includeTargetLabels))nt(n,a.labelBounds.all);else{if(t.includeMainLabels)nt(n,a.labelBounds.mainRot);if(t.includeSourceLabels)nt(n,a.labelBounds.sourceRot);if(t.includeTargetLabels)nt(n,a.labelBounds.targetRot)}n.w=n.x2-n.x1,n.h=n.y2-n.y1}return n},Aa={includeNodes:!0,includeEdges:!0,includeLabels:!0,includeMainLabels:!0,includeSourceLabels:!0,includeTargetLabels:!0,includeOverlays:!0,includeUnderlays:!0,includeOutlines:!0,useCache:!0},vl=Uv(Aa),fl=cr(Aa);mt.boundingBox=function(r){var e,t=r===void 0||r.useCache===void 0||r.useCache===!0,a=Qt(function(v){var f=v._private;return f.bbCache==null||f.styleDirty||f.bbCachePosKey!==Kv(v)},function(v){return v.id()});if(t&&this.length===1&&!a(this[0])){if(r===void 0)r=Aa;else r=fl(r);e=ll(this[0],r)}else{e=wr(),r=r||Aa;var n=fl(r),i=this,s=i.cy(),o=s.styleEnabled();if(this.edges().forEach(a),this.nodes().forEach(a),o)this.recalculateRenderedStyle(t);this.updateCompoundBounds(!t);for(var u=0;u<i.length;u++){var l=i[u];if(a(l))l.dirtyBoundingBoxCache();nt(e,ll(l,n))}}return e.x1=Pr(e.x1),e.y1=Pr(e.y1),e.x2=Pr(e.x2),e.y2=Pr(e.y2),e.w=Pr(e.x2-e.x1),e.h=Pr(e.y2-e.y1),e};mt.dirtyBoundingBoxCache=function(){for(var r=0;r<this.length;r++){var e=this[r]._private;e.bbCache=null,e.bbCachePosKey=null,e.bodyBounds=null,e.overlayBounds=null,e.labelBounds.all=null,e.labelBounds.source=null,e.labelBounds.target=null,e.labelBounds.main=null,e.labelBounds.sourceRot=null,e.labelBounds.targetRot=null,e.labelBounds.mainRot=null,e.arrowBounds.source=null,e.arrowBounds.target=null,e.arrowBounds["mid-source"]=null,e.arrowBounds["mid-target"]=null}return this.emitAndNotify("bounds"),this};mt.boundingBoxAt=function(r){var e=this.nodes(),t=this.cy(),a=t.hasCompoundNodes(),n=t.collection();if(a)n=e.filter(function(l){return l.isParent()}),e=e.not(n);if(Ie(r)){var i=r;r=function(){return i}}var s=function(v,f){return v._private.bbAtOldPos=r(v,f)},o=function(v){return v._private.bbAtOldPos};if(t.startBatch(),e.forEach(s).silentPositions(r),a)n.dirtyCompoundBoundsCache(),n.dirtyBoundingBoxCache(),n.updateCompoundBounds(!0);var u=Dd(this.boundingBox({useCache:!1}));if(e.silentPositions(o),a)n.dirtyCompoundBoundsCache(),n.dirtyBoundingBoxCache(),n.updateCompoundBounds(!0);return t.endBatch(),u};Zt.boundingbox=Zt.bb=Zt.boundingBox;Zt.renderedBoundingbox=Zt.renderedBoundingBox;var Yg=mt,ba,_a;ba=_a={};var Xv=function(e){e.uppercaseName=ko(e.name),e.autoName="auto"+e.uppercaseName,e.labelName="label"+e.uppercaseName,e.outerName="outer"+e.uppercaseName,e.uppercaseOuterName=ko(e.outerName),ba[e.name]=function(){var a=this[0],n=a._private,i=n.cy,s=i._private.styleEnabled;if(a)if(s){if(a.isParent())return a.updateCompoundBounds(),n[e.autoName]||0;var o=a.pstyle(e.name);switch(o.strValue){case"label":return a.recalculateRenderedStyle(),n.rstyle[e.labelName]||0;default:return o.pfValue}}else return 1},ba["outer"+e.uppercaseName]=function(){var a=this[0],n=a._private,i=n.cy,s=i._private.styleEnabled;if(a)if(s){var o=a[e.name](),u=a.pstyle("border-position").value,l;if(u==="center")l=a.pstyle("border-width").pfValue;else if(u==="outside")l=2*a.pstyle("border-width").pfValue;else l=0;var v=2*a.padding();return o+l+v}else return 1},ba["rendered"+e.uppercaseName]=function(){var a=this[0];if(a){var n=a[e.name]();return n*this.cy().zoom()}},ba["rendered"+e.uppercaseOuterName]=function(){var a=this[0];if(a){var n=a[e.outerName]();return n*this.cy().zoom()}}};Xv({name:"width"});Xv({name:"height"});_a.padding=function(){var r=this[0],e=r._private;if(r.isParent())if(r.updateCompoundBounds(),e.autoPadding!==void 0)return e.autoPadding;else return r.pstyle("padding").pfValue;else return r.pstyle("padding").pfValue};_a.paddedHeight=function(){var r=this[0];return r.height()+2*r.padding()};_a.paddedWidth=function(){var r=this[0];return r.width()+2*r.padding()};var Zg=_a,Qg=function(e,t){if(e.isEdge()&&e.takesUpSpace())return t(e)},Jg=function(e,t){if(e.isEdge()&&e.takesUpSpace()){var a=e.cy();return Nn(t(e),a.zoom(),a.pan())}},jg=function(e,t){if(e.isEdge()&&e.takesUpSpace()){var a=e.cy(),n=a.pan(),i=a.zoom();return t(e).map(function(s){return Nn(s,i,n)})}},ep=function(e){return e.renderer().getControlPoints(e)},rp=function(e){return e.renderer().getSegmentPoints(e)},tp=function(e){return e.renderer().getSourceEndpoint(e)},ap=function(e){return e.renderer().getTargetEndpoint(e)},np=function(e){return e.renderer().getEdgeMidpoint(e)},cl={controlPoints:{get:ep,mult:!0},segmentPoints:{get:rp,mult:!0},sourceEndpoint:{get:tp},targetEndpoint:{get:ap},midpoint:{get:np}},ip=function(e){return"rendered"+e[0].toUpperCase()+e.substr(1)},sp=Object.keys(cl).reduce(function(r,e){var t=cl[e],a=ip(e);if(r[e]=function(){return Qg(this,t.get)},t.mult)r[a]=function(){return jg(this,t.get)};else r[a]=function(){return Jg(this,t.get)};return r},{}),op=me({},$g,Yg,Zg,sp);/*!
9
+ Event object based on jQuery events, MIT license
10
+
11
+ https://jquery.org/license/
12
+ https://tldrlegal.com/license/mit-license
13
+ https://github.com/jquery/jquery/blob/master/src/event.js
14
+ */var Yv=function(e,t){this.recycle(e,t)};function da(){return!1}function rn(){return!0}Yv.prototype={instanceString:function(){return"event"},recycle:function(e,t){if(this.isImmediatePropagationStopped=this.isPropagationStopped=this.isDefaultPrevented=da,e!=null&&e.preventDefault)this.type=e.type,this.isDefaultPrevented=e.defaultPrevented?rn:da;else if(e!=null&&e.type)t=e;else this.type=e;if(t!=null)this.originalEvent=t.originalEvent,this.type=t.type!=null?t.type:this.type,this.cy=t.cy,this.target=t.target,this.position=t.position,this.renderedPosition=t.renderedPosition,this.namespace=t.namespace,this.layout=t.layout;if(this.cy!=null&&this.position!=null&&this.renderedPosition==null){var a=this.position,n=this.cy.zoom(),i=this.cy.pan();this.renderedPosition={x:a.x*n+i.x,y:a.y*n+i.y}}this.timeStamp=e&&e.timeStamp||Date.now()},preventDefault:function(){this.isDefaultPrevented=rn;var e=this.originalEvent;if(!e)return;if(e.preventDefault)e.preventDefault()},stopPropagation:function(){this.isPropagationStopped=rn;var e=this.originalEvent;if(!e)return;if(e.stopPropagation)e.stopPropagation()},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=rn,this.stopPropagation()},isDefaultPrevented:da,isPropagationStopped:da,isImmediatePropagationStopped:da};var Zv=/^([^.]+)(\.(?:[^.]+))?$/,up=".*",Qv={qualifierCompare:function(e,t){return e===t},eventMatches:function(){return!0},addEventFields:function(){},callbackContext:function(e){return e},beforeEmit:function(){},afterEmit:function(){},bubble:function(){return!1},parent:function(){return null},context:null},dl=Object.keys(Qv),lp={};function Hn(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:lp,e=arguments.length>1?arguments[1]:void 0;for(var t=0;t<dl.length;t++){var a=dl[t];this[a]=r[a]||Qv[a]}this.context=e||this.context,this.listeners=[],this.emitting=0}var gt=Hn.prototype,Jv=function(e,t,a,n,i,s,o){if(Ke(n))i=n,n=null;if(o)if(s==null)s=o;else s=me({},s,o);var u=_e(a)?a:a.split(/\s+/);for(var l=0;l<u.length;l++){var v=u[l];if(vt(v))continue;var f=v.match(Zv);if(f){var c=f[1],h=f[2]?f[2]:null,d=t(e,v,c,h,n,i,s);if(d===!1)break}}},hl=function(e,t){return e.addEventFields(e.context,t),new Yv(t.type,t)},vp=function(e,t,a){if(gc(a)){t(e,a);return}else if(Ie(a)){t(e,hl(e,a));return}var n=_e(a)?a:a.split(/\s+/);for(var i=0;i<n.length;i++){var s=n[i];if(vt(s))continue;var o=s.match(Zv);if(o){var u=o[1],l=o[2]?o[2]:null,v=hl(e,{type:u,namespace:l,target:e.context});t(e,v)}}};gt.on=gt.addListener=function(r,e,t,a,n){return Jv(this,function(i,s,o,u,l,v,f){if(Ke(v))i.listeners.push({event:s,callback:v,type:o,namespace:u,qualifier:l,conf:f})},r,e,t,a,n),this};gt.one=function(r,e,t,a){return this.on(r,e,t,a,{one:!0})};gt.removeListener=gt.off=function(r,e,t,a){var n=this;if(this.emitting!==0)this.listeners=Qc(this.listeners);var i=this.listeners,s=function(l){var v=i[l];Jv(n,function(f,c,h,d,y,g){if((v.type===h||r==="*")&&(!d&&v.namespace!==".*"||v.namespace===d)&&(!y||f.qualifierCompare(v.qualifier,y))&&(!g||v.callback===g))return i.splice(l,1),!1},r,e,t,a)};for(var o=i.length-1;o>=0;o--)s(o);return this};gt.removeAllListeners=function(){return this.removeListener("*")};gt.emit=gt.trigger=function(r,e,t){var a=this.listeners,n=a.length;if(this.emitting++,!_e(e))e=[e];return vp(this,function(i,s){if(t!=null)a=[{event:s.event,type:s.type,namespace:s.namespace,callback:t}],n=a.length;var o=function(){var v=a[u];if(v.type===s.type&&(!v.namespace||v.namespace===s.namespace||v.namespace===up)&&i.eventMatches(i.context,v,s)){var f=[s];if(e!=null)jc(f,e);if(i.beforeEmit(i.context,v,s),v.conf&&v.conf.one)i.listeners=i.listeners.filter(function(d){return d!==v});var c=i.callbackContext(i.context,v,s),h=v.callback.apply(c,f);if(i.afterEmit(i.context,v,s),h===!1)s.stopPropagation(),s.preventDefault()}};for(var u=0;u<n;u++)o();if(i.bubble(i.context)&&!s.isPropagationStopped())i.parent(i.context).emit(s,e)},r),this.emitting--,this};var fp={qualifierCompare:function(e,t){if(e==null||t==null)return e==null&&t==null;else return e.sameText(t)},eventMatches:function(e,t,a){var n=t.qualifier;if(n!=null)return e!==a.target&&Oa(a.target)&&n.matches(a.target);return!0},addEventFields:function(e,t){t.cy=e.cy(),t.target=e},callbackContext:function(e,t,a){return t.qualifier!=null?a.target:e},beforeEmit:function(e,t){if(t.conf&&t.conf.once)t.conf.onceCollection.removeListener(t.event,t.qualifier,t.callback)},bubble:function(){return!0},parent:function(e){return e.isChild()?e.parent():e.cy()}},tn=function(e){if(ge(e))return new dt(e);else return e},jv={createEmitter:function(){for(var e=0;e<this.length;e++){var t=this[e],a=t._private;if(!a.emitter)a.emitter=new Hn(fp,t)}return this},emitter:function(){return this._private.emitter},on:function(e,t,a){var n=tn(t);for(var i=0;i<this.length;i++){var s=this[i];s.emitter().on(e,n,a)}return this},removeListener:function(e,t,a){var n=tn(t);for(var i=0;i<this.length;i++){var s=this[i];s.emitter().removeListener(e,n,a)}return this},removeAllListeners:function(){for(var e=0;e<this.length;e++){var t=this[e];t.emitter().removeAllListeners()}return this},one:function(e,t,a){var n=tn(t);for(var i=0;i<this.length;i++){var s=this[i];s.emitter().one(e,n,a)}return this},once:function(e,t,a){var n=tn(t);for(var i=0;i<this.length;i++){var s=this[i];s.emitter().on(e,n,a,{once:!0,onceCollection:this})}},emit:function(e,t){for(var a=0;a<this.length;a++){var n=this[a];n.emitter().emit(e,t)}return this},emitAndNotify:function(e,t){if(this.length===0)return;return this.cy().notify(e,this),this.emit(e,t),this}};Fe.eventAliasesOn(jv);var ef={nodes:function(e){return this.filter(function(t){return t.isNode()}).filter(e)},edges:function(e){return this.filter(function(t){return t.isEdge()}).filter(e)},byGroup:function(){var e=this.spawn(),t=this.spawn();for(var a=0;a<this.length;a++){var n=this[a];if(n.isNode())e.push(n);else t.push(n)}return{nodes:e,edges:t}},filter:function(e,t){if(e===void 0)return this;else if(ge(e)||kr(e))return new dt(e).filter(this);else if(Ke(e)){var a=this.spawn(),n=this;for(var i=0;i<n.length;i++){var s=n[i],o=t?e.apply(t,[s,i,n]):e(s,i,n);if(o)a.push(s)}return a}return this.spawn()},not:function(e){if(!e)return this;else{if(ge(e))e=this.filter(e);var t=this.spawn();for(var a=0;a<this.length;a++){var n=this[a],i=e.has(n);if(!i)t.push(n)}return t}},absoluteComplement:function(){var e=this.cy();return e.mutableElements().not(this)},intersect:function(e){if(ge(e)){var t=e;return this.filter(t)}var a=this.spawn(),n=this,i=e,s=this.length<e.length,o=s?n:i,u=s?i:n;for(var l=0;l<o.length;l++){var v=o[l];if(u.has(v))a.push(v)}return a},xor:function(e){var t=this._private.cy;if(ge(e))e=t.$(e);var a=this.spawn(),n=this,i=e,s=function(u,l){for(var v=0;v<u.length;v++){var f=u[v],c=f._private.data.id,h=l.hasElementWithId(c);if(!h)a.push(f)}};return s(n,i),s(i,n),a},diff:function(e){var t=this._private.cy;if(ge(e))e=t.$(e);var a=this.spawn(),n=this.spawn(),i=this.spawn(),s=this,o=e,u=function(v,f,c){for(var h=0;h<v.length;h++){var d=v[h],y=d._private.data.id,g=f.hasElementWithId(y);if(g)i.merge(d);else c.push(d)}};return u(s,o,a),u(o,s,n),{left:a,right:n,both:i}},add:function(e){var t=this._private.cy;if(!e)return this;if(ge(e)){var a=e;e=t.mutableElements().filter(a)}var n=this.spawnSelf();for(var i=0;i<e.length;i++){var s=e[i],o=!this.has(s);if(o)n.push(s)}return n},merge:function(e){var t=this._private,a=t.cy;if(!e)return this;if(e&&ge(e)){var n=e;e=a.mutableElements().filter(n)}var i=t.map;for(var s=0;s<e.length;s++){var o=e[s],u=o._private.data.id,l=!i.has(u);if(l){var v=this.length++;this[v]=o,i.set(u,{ele:o,index:v})}}return this},unmergeAt:function(e){var t=this[e],a=t.id(),n=this._private,i=n.map;this[e]=void 0,i.delete(a);var s=e===this.length-1;if(this.length>1&&!s){var o=this.length-1,u=this[o],l=u._private.data.id;this[o]=void 0,this[e]=u,i.set(l,{ele:u,index:e})}return this.length--,this},unmergeOne:function(e){e=e[0];var t=this._private,a=e._private.data.id,n=t.map,i=n.get(a);if(!i)return this;var s=i.index;return this.unmergeAt(s),this},unmerge:function(e){var t=this._private.cy;if(!e)return this;if(e&&ge(e)){var a=e;e=t.mutableElements().filter(a)}for(var n=0;n<e.length;n++)this.unmergeOne(e[n]);return this},unmergeBy:function(e){for(var t=this.length-1;t>=0;t--){var a=this[t];if(e(a))this.unmergeAt(t)}return this},map:function(e,t){var a=[],n=this;for(var i=0;i<n.length;i++){var s=n[i],o=t?e.apply(t,[s,i,n]):e(s,i,n);a.push(o)}return a},reduce:function(e,t){var a=t,n=this;for(var i=0;i<n.length;i++)a=e(a,n[i],i,n);return a},max:function(e,t){var a=-1/0,n,i=this;for(var s=0;s<i.length;s++){var o=i[s],u=t?e.apply(t,[o,s,i]):e(o,s,i);if(u>a)a=u,n=o}return{value:a,ele:n}},min:function(e,t){var a=1/0,n,i=this;for(var s=0;s<i.length;s++){var o=i[s],u=t?e.apply(t,[o,s,i]):e(o,s,i);if(u<a)a=u,n=o}return{value:a,ele:n}}},Ne=ef;Ne.u=Ne["|"]=Ne["+"]=Ne.union=Ne.or=Ne.add;Ne["\\"]=Ne["!"]=Ne["-"]=Ne.difference=Ne.relativeComplement=Ne.subtract=Ne.not;Ne.n=Ne["&"]=Ne["."]=Ne.and=Ne.intersection=Ne.intersect;Ne["^"]=Ne["(+)"]=Ne["(-)"]=Ne.symmetricDifference=Ne.symdiff=Ne.xor;Ne.fnFilter=Ne.filterFn=Ne.stdFilter=Ne.filter;Ne.complement=Ne.abscomp=Ne.absoluteComplement;var cp={isNode:function(){return this.group()==="nodes"},isEdge:function(){return this.group()==="edges"},isLoop:function(){return this.isEdge()&&this.source()[0]===this.target()[0]},isSimple:function(){return this.isEdge()&&this.source()[0]!==this.target()[0]},group:function(){var e=this[0];if(e)return e._private.group}},rf=function(e,t){var a=e.cy(),n=a.hasCompoundNodes();function i(v){var f=v.pstyle("z-compound-depth");if(f.value==="auto")return n?v.zDepth():0;else if(f.value==="bottom")return-1;else if(f.value==="top")return js;return 0}var s=i(e)-i(t);if(s!==0)return s;function o(v){var f=v.pstyle("z-index-compare");if(f.value==="auto")return v.isNode()?1:0;return 0}var u=o(e)-o(t);if(u!==0)return u;var l=e.pstyle("z-index").value-t.pstyle("z-index").value;if(l!==0)return l;return e.poolIndex()-t.poolIndex()},kn={forEach:function(e,t){if(Ke(e)){var a=this.length;for(var n=0;n<a;n++){var i=this[n],s=t?e.apply(t,[i,n,this]):e(i,n,this);if(s===!1)break}}return this},toArray:function(){var e=[];for(var t=0;t<this.length;t++)e.push(this[t]);return e},slice:function(e,t){var a=[],n=this.length;if(t==null)t=n;if(e==null)e=0;if(e<0)e=n+e;if(t<0)t=n+t;for(var i=e;i>=0&&i<t&&i<n;i++)a.push(this[i]);return this.spawn(a)},size:function(){return this.length},eq:function(e){return this[e]||this.spawn()},first:function(){return this[0]||this.spawn()},last:function(){return this[this.length-1]||this.spawn()},empty:function(){return this.length===0},nonempty:function(){return!this.empty()},sort:function(e){if(!Ke(e))return this;var t=this.toArray().sort(e);return this.spawn(t)},sortByZIndex:function(){return this.sort(rf)},zDepth:function(){var e=this[0];if(!e)return;var t=e._private,a=t.group;if(a==="nodes"){var n=t.data.parent?e.parents().size():0;if(!e.isParent())return js-1;return n}else{var{source:i,target:s}=t,o=i.zDepth(),u=s.zDepth();return Math.max(o,u,0)}}};kn.each=kn.forEach;var dp=function(){var e="undefined",t=(typeof Symbol>"u"?"undefined":ar(Symbol))!=e&&ar(Symbol.iterator)!=e;if(t)kn[Symbol.iterator]=function(){var a=this,n={value:void 0,done:!1},i=0,s=this.length;return jl({next:function(){if(i<s)n.value=a[i++];else n.value=void 0,n.done=!0;return n}},Symbol.iterator,function(){return this})}};dp();var hp=cr({nodeDimensionsIncludeLabels:!1}),cn={layoutDimensions:function(e){e=hp(e);var t;if(!this.takesUpSpace())t={w:0,h:0};else if(e.nodeDimensionsIncludeLabels){var a=this.boundingBox();t={w:a.w,h:a.h}}else t={w:this.outerWidth(),h:this.outerHeight()};if(t.w===0||t.h===0)t.w=t.h=1;return t},layoutPositions:function(e,t,a){var n=this.nodes().filter(function(E){return!E.isParent()}),i=this.cy(),s=t.eles,o=function(C){return C.id()},u=Qt(a,o);e.emit({type:"layoutstart",layout:e}),e.animations=[];var l=function(C,x,S){var k={x:x.x1+x.w/2,y:x.y1+x.h/2},B={x:(S.x-k.x)*C,y:(S.y-k.y)*C};return{x:k.x+B.x,y:k.y+B.y}},v=t.spacingFactor&&t.spacingFactor!==1,f=function(){if(!v)return null;var C=wr();for(var x=0;x<n.length;x++){var S=n[x],k=u(S,x);bv(C,k.x,k.y)}return C},c=f(),h=Qt(function(E,C){var x=u(E,C);if(v){var S=Math.abs(t.spacingFactor);x=l(S,c,x)}if(t.transform!=null)x=t.transform(E,x);return x},o);if(t.animate){for(var d=0;d<n.length;d++){var y=n[d],g=h(y,d),p=t.animateFilter==null||t.animateFilter(y,d);if(p){var m=y.animation({position:g,duration:t.animationDuration,easing:t.animationEasing});e.animations.push(m)}else y.position(g)}if(t.fit){var b=i.animation({fit:{boundingBox:s.boundingBoxAt(h),padding:t.padding},duration:t.animationDuration,easing:t.animationEasing});e.animations.push(b)}else if(t.zoom!==void 0&&t.pan!==void 0){var w=i.animation({zoom:t.zoom,pan:t.pan,duration:t.animationDuration,easing:t.animationEasing});e.animations.push(w)}e.animations.forEach(function(E){return E.play()}),e.one("layoutready",t.ready),e.emit({type:"layoutready",layout:e}),aa.all(e.animations.map(function(E){return E.promise()})).then(function(){e.one("layoutstop",t.stop),e.emit({type:"layoutstop",layout:e})})}else{if(n.positions(h),t.fit)i.fit(t.eles,t.padding);if(t.zoom!=null)i.zoom(t.zoom);if(t.pan)i.pan(t.pan);e.one("layoutready",t.ready),e.emit({type:"layoutready",layout:e}),e.one("layoutstop",t.stop),e.emit({type:"layoutstop",layout:e})}return this},layout:function(e){var t=this.cy();return t.makeLayout(me({},e,{eles:this}))}};cn.createLayout=cn.makeLayout=cn.layout;function tf(r,e,t){var a=t._private,n=a.styleCache=a.styleCache||[],i;if((i=n[r])!=null)return i;else return i=n[r]=e(t),i}function Wn(r,e){return r=Pt(r),function(a){return tf(r,e,a)}}function $n(r,e){r=Pt(r);var t=function(n){return e.call(n)};return function(){var n=this[0];if(n)return tf(r,t,n)}}var vr={recalculateRenderedStyle:function(e){var t=this.cy(),a=t.renderer(),n=t.styleEnabled();if(a&&n)a.recalculateRenderedStyle(this,e);return this},dirtyStyleCache:function(){var e=this.cy(),t=function(i){return i._private.styleCache=null};if(e.hasCompoundNodes()){var a=this.spawnSelf().merge(this.descendants()).merge(this.parents());a.merge(a.connectedEdges()),a.forEach(t)}else this.forEach(function(n){t(n),n.connectedEdges().forEach(t)});return this},updateStyle:function(e){var t=this._private.cy;if(!t.styleEnabled())return this;if(t.batching()){var a=t._private.batchStyleEles;return a.merge(this),this}var n=t.hasCompoundNodes(),i=this;if(e=e||e===void 0?!0:!1,n)i=this.spawnSelf().merge(this.descendants()).merge(this.parents());var s=i;if(e)s.emitAndNotify("style");else s.emit("style");return i.forEach(function(o){return o._private.styleDirty=!0}),this},cleanStyle:function(){var e=this.cy();if(!e.styleEnabled())return;for(var t=0;t<this.length;t++){var a=this[t];if(a._private.styleDirty)a._private.styleDirty=!1,e.style().apply(a)}},parsedStyle:function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,a=this[0],n=a.cy();if(!n.styleEnabled())return;if(a){if(a._private.styleDirty)a._private.styleDirty=!1,n.style().apply(a);var i=a._private.style[e];if(i!=null)return i;else if(t)return n.style().getDefaultProperty(e);else return null}},numericStyle:function(e){var t=this[0];if(!t.cy().styleEnabled())return;if(t){var a=t.pstyle(e);return a.pfValue!==void 0?a.pfValue:a.value}},numericStyleUnits:function(e){var t=this[0];if(!t.cy().styleEnabled())return;if(t)return t.pstyle(e).units},renderedStyle:function(e){var t=this.cy();if(!t.styleEnabled())return this;var a=this[0];if(a)return t.style().getRenderedStyle(a,e)},style:function(e,t){var a=this.cy();if(!a.styleEnabled())return this;var n=!1,i=a.style();if(Ie(e)){var s=e;i.applyBypass(this,s,n),this.emitAndNotify("style")}else if(ge(e))if(t===void 0){var o=this[0];if(o)return i.getStylePropertyValue(o,e);else return}else i.applyBypass(this,e,t,n),this.emitAndNotify("style");else if(e===void 0){var u=this[0];if(u)return i.getRawStyle(u);else return}return this},removeStyle:function(e){var t=this.cy();if(!t.styleEnabled())return this;var a=!1,n=t.style(),i=this;if(e===void 0)for(var s=0;s<i.length;s++){var o=i[s];n.removeAllBypasses(o,a)}else{e=e.split(/\s+/);for(var u=0;u<i.length;u++){var l=i[u];n.removeBypasses(l,e,a)}}return this.emitAndNotify("style"),this},show:function(){return this.css("display","element"),this},hide:function(){return this.css("display","none"),this},effectiveOpacity:function(){var e=this.cy();if(!e.styleEnabled())return 1;var t=e.hasCompoundNodes(),a=this[0];if(a){var n=a._private,i=a.pstyle("opacity").value;if(!t)return i;var s=!n.data.parent?null:a.parents();if(s)for(var o=0;o<s.length;o++){var u=s[o],l=u.pstyle("opacity").value;i=l*i}return i}},transparent:function(){var e=this.cy();if(!e.styleEnabled())return!1;var t=this[0],a=t.cy().hasCompoundNodes();if(t)if(!a)return t.pstyle("opacity").value===0;else return t.effectiveOpacity()===0},backgrounding:function(){var e=this.cy();if(!e.styleEnabled())return!1;var t=this[0];return t._private.backgrounding?!0:!1}};function bs(r,e){var t=r._private,a=t.data.parent?r.parents():null;if(a)for(var n=0;n<a.length;n++){var i=a[n];if(!e(i))return!1}return!0}function fo(r){var e=r.ok,t=r.edgeOkViaNode||r.ok,a=r.parentOk||r.ok;return function(){var n=this.cy();if(!n.styleEnabled())return!0;var i=this[0],s=n.hasCompoundNodes();if(i){var o=i._private;if(!e(i))return!1;if(i.isNode())return!s||bs(i,a);else{var{source:u,target:l}=o;return t(u)&&(!s||bs(u,t))&&(u===l||t(l)&&(!s||bs(l,t)))}}}}var na=Wn("eleTakesUpSpace",function(r){return r.pstyle("display").value==="element"&&r.width()!==0&&(r.isNode()?r.height()!==0:!0)});vr.takesUpSpace=$n("takesUpSpace",fo({ok:na}));var gp=Wn("eleInteractive",function(r){return r.pstyle("events").value==="yes"&&r.pstyle("visibility").value==="visible"&&na(r)}),pp=Wn("parentInteractive",function(r){return r.pstyle("visibility").value==="visible"&&na(r)});vr.interactive=$n("interactive",fo({ok:gp,parentOk:pp,edgeOkViaNode:na}));vr.noninteractive=function(){var r=this[0];if(r)return!r.interactive()};var yp=Wn("eleVisible",function(r){return r.pstyle("visibility").value==="visible"&&r.pstyle("opacity").pfValue!==0&&na(r)}),mp=na;vr.visible=$n("visible",fo({ok:yp,edgeOkViaNode:mp}));vr.hidden=function(){var r=this[0];if(r)return!r.visible()};vr.isBundledBezier=$n("isBundledBezier",function(){if(!this.cy().styleEnabled())return!1;return!this.removed()&&this.pstyle("curve-style").value==="bezier"&&this.takesUpSpace()});vr.bypass=vr.css=vr.style;vr.renderedCss=vr.renderedStyle;vr.removeBypass=vr.removeCss=vr.removeStyle;vr.pstyle=vr.parsedStyle;var lt={};function gl(r){return function(){var e=arguments,t=[];if(e.length===2){var a=e[0],n=e[1];this.on(r.event,a,n)}else if(e.length===1&&Ke(e[0])){var i=e[0];this.on(r.event,i)}else if(e.length===0||e.length===1&&_e(e[0])){var s=e.length===1?e[0]:null;for(var o=0;o<this.length;o++){var u=this[o],l=!r.ableField||u._private[r.ableField],v=u._private[r.field]!=r.value;if(r.overrideAble){var f=r.overrideAble(u);if(f!==void 0){if(l=f,!f)return this}}if(l){if(u._private[r.field]=r.value,v)t.push(u)}}var c=this.spawn(t);if(c.updateStyle(),c.emit(r.event),s)c.emit(s)}return this}}function ia(r){lt[r.field]=function(){var e=this[0];if(e){if(r.overrideField){var t=r.overrideField(e);if(t!==void 0)return t}return e._private[r.field]}},lt[r.on]=gl({event:r.on,field:r.field,ableField:r.ableField,overrideAble:r.overrideAble,value:!0}),lt[r.off]=gl({event:r.off,field:r.field,ableField:r.ableField,overrideAble:r.overrideAble,value:!1})}ia({field:"locked",overrideField:function(e){return e.cy().autolock()?!0:void 0},on:"lock",off:"unlock"});ia({field:"grabbable",overrideField:function(e){return e.cy().autoungrabify()||e.pannable()?!1:void 0},on:"grabify",off:"ungrabify"});ia({field:"selected",ableField:"selectable",overrideAble:function(e){return e.cy().autounselectify()?!1:void 0},on:"select",off:"unselect"});ia({field:"selectable",overrideField:function(e){return e.cy().autounselectify()?!1:void 0},on:"selectify",off:"unselectify"});lt.deselect=lt.unselect;lt.grabbed=function(){var r=this[0];if(r)return r._private.grabbed};ia({field:"active",on:"activate",off:"unactivate"});ia({field:"pannable",on:"panify",off:"unpanify"});lt.inactive=function(){var r=this[0];if(r)return!r._private.active};var gr={},pl=function(e){return function(a){var n=this,i=[];for(var s=0;s<n.length;s++){var o=n[s];if(!o.isNode())continue;var u=!1,l=o.connectedEdges();for(var v=0;v<l.length;v++){var f=l[v],c=f.source(),h=f.target();if(e.noIncomingEdges&&h===o&&c!==o||e.noOutgoingEdges&&c===o&&h!==o){u=!0;break}}if(!u)i.push(o)}return this.spawn(i,!0).filter(a)}},yl=function(e){return function(t){var a=this,n=[];for(var i=0;i<a.length;i++){var s=a[i];if(!s.isNode())continue;var o=s.connectedEdges();for(var u=0;u<o.length;u++){var l=o[u],v=l.source(),f=l.target();if(e.outgoing&&v===s)n.push(l),n.push(f);else if(e.incoming&&f===s)n.push(l),n.push(v)}}return this.spawn(n,!0).filter(t)}},ml=function(e){return function(t){var a=this,n=[],i={};for(;;){var s=e.outgoing?a.outgoers():a.incomers();if(s.length===0)break;var o=!1;for(var u=0;u<s.length;u++){var l=s[u],v=l.id();if(!i[v])i[v]=!0,n.push(l),o=!0}if(!o)break;a=s}return this.spawn(n,!0).filter(t)}};gr.clearTraversalCache=function(){for(var r=0;r<this.length;r++)this[r]._private.traversalCache=null};me(gr,{roots:pl({noIncomingEdges:!0}),leaves:pl({noOutgoingEdges:!0}),outgoers:Ar(yl({outgoing:!0}),"outgoers"),successors:ml({outgoing:!0}),incomers:Ar(yl({incoming:!0}),"incomers"),predecessors:ml({})});me(gr,{neighborhood:Ar(function(r){var e=[],t=this.nodes();for(var a=0;a<t.length;a++){var n=t[a],i=n.connectedEdges();for(var s=0;s<i.length;s++){var o=i[s],u=o.source(),l=o.target(),v=n===u?l:u;if(v.length>0)e.push(v[0]);e.push(o[0])}}return this.spawn(e,!0).filter(r)},"neighborhood"),closedNeighborhood:function(e){return this.neighborhood().add(this).filter(e)},openNeighborhood:function(e){return this.neighborhood(e)}});gr.neighbourhood=gr.neighborhood;gr.closedNeighbourhood=gr.closedNeighborhood;gr.openNeighbourhood=gr.openNeighborhood;me(gr,{source:Ar(function(e){var t=this[0],a;if(t)a=t._private.source||t.cy().collection();return a&&e?a.filter(e):a},"source"),target:Ar(function(e){var t=this[0],a;if(t)a=t._private.target||t.cy().collection();return a&&e?a.filter(e):a},"target"),sources:bl({attr:"source"}),targets:bl({attr:"target"})});function bl(r){return function(t){var a=[];for(var n=0;n<this.length;n++){var i=this[n],s=i._private[r.attr];if(s)a.push(s)}return this.spawn(a,!0).filter(t)}}me(gr,{edgesWith:Ar(wl(),"edgesWith"),edgesTo:Ar(wl({thisIsSrc:!0}),"edgesTo")});function wl(r){return function(t){var a=[],n=this._private.cy,i=r||{};if(ge(t))t=n.$(t);for(var s=0;s<t.length;s++){var o=t[s]._private.edges;for(var u=0;u<o.length;u++){var l=o[u],v=l._private.data,f=this.hasElementWithId(v.source)&&t.hasElementWithId(v.target),c=t.hasElementWithId(v.source)&&this.hasElementWithId(v.target),h=f||c;if(!h)continue;if(i.thisIsSrc||i.thisIsTgt){if(i.thisIsSrc&&!f)continue;if(i.thisIsTgt&&!c)continue}a.push(l)}}return this.spawn(a,!0)}}me(gr,{connectedEdges:Ar(function(r){var e=[],t=this;for(var a=0;a<t.length;a++){var n=t[a];if(!n.isNode())continue;var i=n._private.edges;for(var s=0;s<i.length;s++){var o=i[s];e.push(o)}}return this.spawn(e,!0).filter(r)},"connectedEdges"),connectedNodes:Ar(function(r){var e=[],t=this;for(var a=0;a<t.length;a++){var n=t[a];if(!n.isEdge())continue;e.push(n.source()[0]),e.push(n.target()[0])}return this.spawn(e,!0).filter(r)},"connectedNodes"),parallelEdges:Ar(xl(),"parallelEdges"),codirectedEdges:Ar(xl({codirected:!0}),"codirectedEdges")});function xl(r){var e={codirected:!1};return r=me({},e,r),function(a){var n=[],i=this.edges(),s=r;for(var o=0;o<i.length;o++){var u=i[o],l=u._private,v=l.source,f=v._private.data.id,c=l.data.target,h=v._private.edges;for(var d=0;d<h.length;d++){var y=h[d],g=y._private.data,{target:p,source:m}=g,b=p===c&&m===f,w=f===p&&c===m;if(s.codirected&&b||!s.codirected&&(b||w))n.push(y)}}return this.spawn(n,!0).filter(a)}}me(gr,{components:function(e){var t=this,a=t.cy(),n=a.collection(),i=e==null?t.nodes():e.nodes(),s=[];if(e!=null&&i.empty())i=e.sources();var o=function(v,f){n.merge(v),i.unmerge(v),f.merge(v)};if(i.empty())return t.spawn();var u=function(){var v=a.collection();s.push(v);var f=i[0];o(f,v),t.bfs({directed:!1,roots:f,visit:function(h){return o(h,v)}}),v.forEach(function(c){c.connectedEdges().forEach(function(h){if(t.has(h)&&v.has(h.source())&&v.has(h.target()))v.merge(h)})})};do u();while(i.length>0);return s},component:function(){var e=this[0];return e.cy().mutableElements().components(e)[0]}});gr.componentsOf=gr.components;var fr=function(e,t){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(e===void 0){$e("A collection must have a reference to the core");return}var i=new Yr,s=!1;if(!t)t=[];else if(t.length>0&&Ie(t[0])&&!Oa(t[0])){s=!0;var o=[],u=new ta;for(var l=0,v=t.length;l<v;l++){var f=t[l];if(f.data==null)f.data={};var c=f.data;if(c.id==null)c.id=pv();else if(e.hasElementWithId(c.id)||u.has(c.id))continue;var h=new On(e,f,!1);o.push(h),u.add(c.id)}t=o}this.length=0;for(var d=0,y=t.length;d<y;d++){var g=t[d][0];if(g==null)continue;var p=g._private.data.id;if(!a||!i.has(p)){if(a)i.set(p,{index:this.length,ele:g});this[this.length]=g,this.length++}}if(this._private={eles:this,cy:e,get map(){if(this.lazyMap==null)this.rebuildMap();return this.lazyMap},set map(m){this.lazyMap=m},rebuildMap:function(){var b=this.lazyMap=new Yr,w=this.eles;for(var E=0;E<w.length;E++){var C=w[E];b.set(C.id(),{index:E,ele:C})}}},a)this._private.map=i;if(s&&!n)this.restore()},He=On.prototype=fr.prototype=Object.create(Array.prototype);He.instanceString=function(){return"collection"};He.spawn=function(r,e){return new fr(this.cy(),r,e)};He.spawnSelf=function(){return this.spawn(this)};He.cy=function(){return this._private.cy};He.renderer=function(){return this._private.cy.renderer()};He.element=function(){return this[0]};He.collection=function(){if(tv(this))return this;else return new fr(this._private.cy,[this])};He.unique=function(){return new fr(this._private.cy,this,!0)};He.hasElementWithId=function(r){return r=""+r,this._private.map.has(r)};He.getElementById=function(r){r=""+r;var e=this._private.cy,t=this._private.map.get(r);return t?t.ele:new fr(e)};He.$id=He.getElementById;He.poolIndex=function(){var r=this._private.cy,e=r._private.elements,t=this[0]._private.data.id;return e._private.map.get(t).index};He.indexOf=function(r){var e=r[0]._private.data.id;return this._private.map.get(e).index};He.indexOfId=function(r){return r=""+r,this._private.map.get(r).index};He.json=function(r){var e=this.element(),t=this.cy();if(e==null&&r)return this;if(e==null)return;var a=e._private;if(Ie(r)){if(t.startBatch(),r.data){e.data(r.data);var n=a.data;if(e.isEdge()){var i=!1,s={},o=r.data.source,u=r.data.target;if(o!=null&&o!=n.source)s.source=""+o,i=!0;if(u!=null&&u!=n.target)s.target=""+u,i=!0;if(i)e=e.move(s)}else{var l="parent"in r.data,v=r.data.parent;if(l&&(v!=null||n.parent!=null)&&v!=n.parent){if(v===void 0)v=null;if(v!=null)v=""+v;e=e.move({parent:v})}}}if(r.position)e.position(r.position);var f=function(y,g,p){var m=r[y];if(m!=null&&m!==a[y])if(m)e[g]();else e[p]()};if(f("removed","remove","restore"),f("selected","select","unselect"),f("selectable","selectify","unselectify"),f("locked","lock","unlock"),f("grabbable","grabify","ungrabify"),f("pannable","panify","unpanify"),r.classes!=null)e.classes(r.classes);return t.endBatch(),this}else if(r===void 0){var c={data:Hr(a.data),position:Hr(a.position),group:a.group,removed:a.removed,selected:a.selected,selectable:a.selectable,locked:a.locked,grabbable:a.grabbable,pannable:a.pannable,classes:null};c.classes="";var h=0;return a.classes.forEach(function(d){return c.classes+=h++===0?d:" "+d}),c}};He.jsons=function(){var r=[];for(var e=0;e<this.length;e++){var t=this[e],a=t.json();r.push(a)}return r};He.clone=function(){var r=this.cy(),e=[];for(var t=0;t<this.length;t++){var a=this[t],n=a.json(),i=new On(r,n,!1);e.push(i)}return new fr(r,e)};He.copy=He.clone;He.restore=function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,t=this,a=t.cy(),n=a._private,i=[],s=[],o;for(var u=0,l=t.length;u<l;u++){var v=t[u];if(e&&!v.removed())continue;if(v.isNode())i.push(v);else s.push(v)}o=i.concat(s);var f,c=function(){o.splice(f,1),f--};for(f=0;f<o.length;f++){var h=o[f],d=h._private,y=d.data;if(h.clearTraversalCache(),!e&&!d.removed);else if(y.id===void 0)y.id=pv();else if(ne(y.id))y.id=""+y.id;else if(vt(y.id)||!ge(y.id)){$e("Can not create element with invalid string ID `"+y.id+"`"),c();continue}else if(a.hasElementWithId(y.id)){$e("Can not create second element with ID `"+y.id+"`"),c();continue}var g=y.id;if(h.isNode()){var p=d.position;if(p.x==null)p.x=0;if(p.y==null)p.y=0}if(h.isEdge()){var m=h,b=["source","target"],w=b.length,E=!1;for(var C=0;C<w;C++){var x=b[C],S=y[x];if(ne(S))S=y[x]=""+y[x];if(S==null||S==="")$e("Can not create edge `"+g+"` with unspecified "+x),E=!0;else if(!a.hasElementWithId(S))$e("Can not create edge `"+g+"` with nonexistent "+x+" `"+S+"`"),E=!0}if(E){c();continue}var k=a.getElementById(y.source),B=a.getElementById(y.target);if(k.same(B))k._private.edges.push(m);else k._private.edges.push(m),B._private.edges.push(m);m._private.source=k,m._private.target=B}if(d.map=new Yr,d.map.set(g,{ele:h,index:0}),d.removed=!1,e)a.addToPool(h)}for(var D=0;D<i.length;D++){var P=i[D],A=P._private.data;if(ne(A.parent))A.parent=""+A.parent;var R=A.parent,L=R!=null;if(L||P._private.parent){var I=P._private.parent?a.collection().merge(P._private.parent):a.getElementById(R);if(I.empty())A.parent=void 0;else if(I[0].removed())Ve("Node added with missing parent, reference to parent removed"),A.parent=void 0,P._private.parent=null;else{var M=!1,O=I;while(!O.empty()){if(P.same(O)){M=!0,A.parent=void 0;break}O=O.parent()}if(!M)I[0]._private.children.push(P),P._private.parent=I[0],n.hasCompoundNodes=!0}}}if(o.length>0){var q=o.length===t.length?t:new fr(a,o);for(var _=0;_<q.length;_++){var N=q[_];if(N.isNode())continue;N.parallelEdges().clearTraversalCache(),N.source().clearTraversalCache(),N.target().clearTraversalCache()}var V;if(n.hasCompoundNodes)V=a.collection().merge(q).merge(q.connectedNodes()).merge(q.parent());else V=q;if(V.dirtyCompoundBoundsCache().dirtyBoundingBoxCache().updateStyle(r),r)q.emitAndNotify("add");else if(e)q.emit("add")}return t};He.removed=function(){var r=this[0];return r&&r._private.removed};He.inside=function(){var r=this[0];return r&&!r._private.removed};He.remove=function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,t=this,a=[],n={},i=t._private.cy;function s(R){var L=R._private.edges;for(var I=0;I<L.length;I++)u(L[I])}function o(R){var L=R._private.children;for(var I=0;I<L.length;I++)u(L[I])}function u(R){var L=n[R.id()];if(e&&R.removed()||L)return;else n[R.id()]=!0;if(R.isNode())a.push(R),s(R),o(R);else a.unshift(R)}for(var l=0,v=t.length;l<v;l++){var f=t[l];u(f)}function c(R,L){var I=R._private.edges;ft(I,L),R.clearTraversalCache()}function h(R){R.clearTraversalCache()}var d=[];d.ids={};function y(R,L){L=L[0],R=R[0];var I=R._private.children,M=R.id();if(ft(I,L),L._private.parent=null,!d.ids[M])d.ids[M]=!0,d.push(R)}if(t.dirtyCompoundBoundsCache(),e)i.removeFromPool(a);for(var g=0;g<a.length;g++){var p=a[g];if(p.isEdge()){var m=p.source()[0],b=p.target()[0];c(m,p),c(b,p);var w=p.parallelEdges();for(var E=0;E<w.length;E++){var C=w[E];if(h(C),C.isBundledBezier())C.dirtyBoundingBoxCache()}}else{var x=p.parent();if(x.length!==0)y(x,p)}if(e)p._private.removed=!0}var S=i._private.elements;i._private.hasCompoundNodes=!1;for(var k=0;k<S.length;k++){var B=S[k];if(B.isParent()){i._private.hasCompoundNodes=!0;break}}var D=new fr(this.cy(),a);if(D.size()>0){if(r)D.emitAndNotify("remove");else if(e)D.emit("remove")}for(var P=0;P<d.length;P++){var A=d[P];if(!e||!A.removed())A.updateStyle()}return D};He.move=function(r){var e=this._private.cy,t=this,a=!1,n=!1,i=function(d){return d==null?d:""+d};if(r.source!==void 0||r.target!==void 0){var s=i(r.source),o=i(r.target),u=s!=null&&e.hasElementWithId(s),l=o!=null&&e.hasElementWithId(o);if(u||l)e.batch(function(){t.remove(a,n),t.emitAndNotify("moveout");for(var h=0;h<t.length;h++){var d=t[h],y=d._private.data;if(d.isEdge()){if(u)y.source=s;if(l)y.target=o}}t.restore(a,n)}),t.emitAndNotify("move")}else if(r.parent!==void 0){var v=i(r.parent),f=v===null||e.hasElementWithId(v);if(f){var c=v===null?void 0:v;e.batch(function(){var h=t.remove(a,n);h.emitAndNotify("moveout");for(var d=0;d<t.length;d++){var y=t[d],g=y._private.data;if(y.isNode())g.parent=c}h.restore(a,n)}),t.emitAndNotify("move")}}return this};[Bv,Bg,fn,ut,jt,Wg,Gn,op,jv,ef,cp,kn,cn,vr,lt,gr].forEach(function(r){me(He,r)});var bp={add:function(e){var t,a=this;if(kr(e)){var n=e;if(n._private.cy===a)t=n.restore();else{var i=[];for(var s=0;s<n.length;s++){var o=n[s];i.push(o.json())}t=new fr(a,i)}}else if(_e(e)){var u=e;t=new fr(a,u)}else if(Ie(e)&&(_e(e.nodes)||_e(e.edges))){var l=e,v=[],f=["nodes","edges"];for(var c=0,h=f.length;c<h;c++){var d=f[c],y=l[d];if(_e(y))for(var g=0,p=y.length;g<p;g++){var m=me({group:d},y[g]);v.push(m)}}t=new fr(a,v)}else{var b=e;t=new On(a,b).collection()}return t},remove:function(e){if(kr(e));else if(ge(e)){var t=e;e=this.$(t)}return e.remove()}};/*! Bezier curve function generator. Copyright Gaetan Renaudeau. MIT License: http://en.wikipedia.org/wiki/MIT_License */function wp(r,e,t,a){var n=4,i=0.001,s=0.0000001,o=10,u=11,l=1/(u-1),v=typeof Float32Array<"u";if(arguments.length!==4)return!1;for(var f=0;f<4;++f)if(typeof arguments[f]!=="number"||isNaN(arguments[f])||!isFinite(arguments[f]))return!1;r=Math.min(r,1),t=Math.min(t,1),r=Math.max(r,0),t=Math.max(t,0);var c=v?new Float32Array(u):Array(u);function h(B,D){return 1-3*D+3*B}function d(B,D){return 3*D-6*B}function y(B){return 3*B}function g(B,D,P){return((h(D,P)*B+d(D,P))*B+y(D))*B}function p(B,D,P){return 3*h(D,P)*B*B+2*d(D,P)*B+y(D)}function m(B,D){for(var P=0;P<n;++P){var A=p(D,r,t);if(A===0)return D;var R=g(D,r,t)-B;D-=R/A}return D}function b(){for(var B=0;B<u;++B)c[B]=g(B*l,r,t)}function w(B,D,P){var A,R,L=0;do if(R=D+(P-D)/2,A=g(R,r,t)-B,A>0)P=R;else D=R;while(Math.abs(A)>s&&++L<o);return R}function E(B){var D=0,P=1,A=u-1;for(;P!==A&&c[P]<=B;++P)D+=l;--P;var R=(B-c[P])/(c[P+1]-c[P]),L=D+R*l,I=p(L,r,t);if(I>=i)return m(B,L);else if(I===0)return L;else return w(B,D,D+l)}var C=!1;function x(){if(C=!0,r!==e||t!==a)b()}var S=function(D){if(!C)x();if(r===e&&t===a)return D;if(D===0)return 0;if(D===1)return 1;return g(E(D),e,a)};S.getControlPoints=function(){return[{x:r,y:e},{x:t,y:a}]};var k="generateBezier("+[r,e,t,a]+")";return S.toString=function(){return k},S}/*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License */var xp=function(){function r(a){return-a.tension*a.x-a.friction*a.v}function e(a,n,i){var s={x:a.x+i.dx*n,v:a.v+i.dv*n,tension:a.tension,friction:a.friction};return{dx:s.v,dv:r(s)}}function t(a,n){var i={dx:a.v,dv:r(a)},s=e(a,n*0.5,i),o=e(a,n*0.5,s),u=e(a,n,o),l=0.16666666666666666*(i.dx+2*(s.dx+o.dx)+u.dx),v=0.16666666666666666*(i.dv+2*(s.dv+o.dv)+u.dv);return a.x=a.x+l*n,a.v=a.v+v*n,a}return function a(n,i,s){var o={x:-1,v:0,tension:null,friction:null},u=[0],l=0,v=0.0001,f=0.016,c,h,d;if(n=parseFloat(n)||500,i=parseFloat(i)||20,s=s||null,o.tension=n,o.friction=i,c=s!==null,c)l=a(n,i),h=l/s*f;else h=f;for(;;)if(d=t(d||o,h),u.push(1+d.x),l+=16,!(Math.abs(d.x)>v&&Math.abs(d.v)>v))break;return!c?l:function(y){return u[y*(u.length-1)|0]}}}(),Ge=function(e,t,a,n){var i=wp(e,t,a,n);return function(s,o,u){return s+(o-s)*i(u)}},dn={linear:function(e,t,a){return e+(t-e)*a},ease:Ge(0.25,0.1,0.25,1),"ease-in":Ge(0.42,0,1,1),"ease-out":Ge(0,0,0.58,1),"ease-in-out":Ge(0.42,0,0.58,1),"ease-in-sine":Ge(0.47,0,0.745,0.715),"ease-out-sine":Ge(0.39,0.575,0.565,1),"ease-in-out-sine":Ge(0.445,0.05,0.55,0.95),"ease-in-quad":Ge(0.55,0.085,0.68,0.53),"ease-out-quad":Ge(0.25,0.46,0.45,0.94),"ease-in-out-quad":Ge(0.455,0.03,0.515,0.955),"ease-in-cubic":Ge(0.55,0.055,0.675,0.19),"ease-out-cubic":Ge(0.215,0.61,0.355,1),"ease-in-out-cubic":Ge(0.645,0.045,0.355,1),"ease-in-quart":Ge(0.895,0.03,0.685,0.22),"ease-out-quart":Ge(0.165,0.84,0.44,1),"ease-in-out-quart":Ge(0.77,0,0.175,1),"ease-in-quint":Ge(0.755,0.05,0.855,0.06),"ease-out-quint":Ge(0.23,1,0.32,1),"ease-in-out-quint":Ge(0.86,0,0.07,1),"ease-in-expo":Ge(0.95,0.05,0.795,0.035),"ease-out-expo":Ge(0.19,1,0.22,1),"ease-in-out-expo":Ge(1,0,0,1),"ease-in-circ":Ge(0.6,0.04,0.98,0.335),"ease-out-circ":Ge(0.075,0.82,0.165,1),"ease-in-out-circ":Ge(0.785,0.135,0.15,0.86),spring:function(e,t,a){if(a===0)return dn.linear;var n=xp(e,t,a);return function(i,s,o){return i+(s-i)*n(o)}},"cubic-bezier":Ge};function El(r,e,t,a,n){if(a===1)return t;if(e===t)return t;var i=n(e,t,a);if(r==null)return i;if(r.roundValue||r.color)i=Math.round(i);if(r.min!==void 0)i=Math.max(i,r.min);if(r.max!==void 0)i=Math.min(i,r.max);return i}function Cl(r,e){if(r.pfValue!=null||r.value!=null)if(r.pfValue!=null&&(e==null||e.type.units!=="%"))return r.pfValue;else return r.value;else return r}function Ft(r,e,t,a,n){var i=n!=null?n.type:null;if(t<0)t=0;else if(t>1)t=1;var s=Cl(r,n),o=Cl(e,n);if(ne(s)&&ne(o))return El(i,s,o,t,a);else if(_e(s)&&_e(o)){var u=[];for(var l=0;l<o.length;l++){var v=s[l],f=o[l];if(v!=null&&f!=null){var c=El(i,v,f,t,a);u.push(c)}else u.push(f)}return u}return}function Ep(r,e,t,a){var n=!a,i=r._private,s=e._private,{easing:o,startTime:u}=s,l=a?r:r.cy(),v=l.style();if(!s.easingImpl)if(o==null)s.easingImpl=dn.linear;else{var f;if(ge(o)){var c=v.parse("transition-timing-function",o);f=c.value}else f=o;var h,d;if(ge(f))h=f,d=[];else h=f[1],d=f.slice(2).map(function(q){return+q});if(d.length>0){if(h==="spring")d.push(s.duration);s.easingImpl=dn[h].apply(null,d)}else s.easingImpl=dn[h]}var y=s.easingImpl,g;if(s.duration===0)g=1;else g=(t-u)/s.duration;if(s.applying)g=s.progress;if(g<0)g=0;else if(g>1)g=1;if(s.delay==null){var{startPosition:p,position:m}=s;if(m&&n&&!r.locked()){var b={};if(ha(p.x,m.x))b.x=Ft(p.x,m.x,g,y);if(ha(p.y,m.y))b.y=Ft(p.y,m.y,g,y);r.position(b)}var{startPan:w,pan:E}=s,C=i.pan,x=E!=null&&a;if(x){if(ha(w.x,E.x))C.x=Ft(w.x,E.x,g,y);if(ha(w.y,E.y))C.y=Ft(w.y,E.y,g,y);r.emit("pan")}var{startZoom:S,zoom:k}=s,B=k!=null&&a;if(B){if(ha(S,k))i.zoom=Da(i.minZoom,Ft(S,k,g,y),i.maxZoom);r.emit("zoom")}if(x||B)r.emit("viewport");var D=s.style;if(D&&D.length>0&&n){for(var P=0;P<D.length;P++){var A=D[P],R=A.name,L=A,I=s.startStyle[R],M=v.properties[I.name],O=Ft(I,L,g,y,M);v.overrideBypass(r,R,O)}r.emit("style")}}return s.progress=g,g}function ha(r,e){if(r==null||e==null)return!1;if(ne(r)&&ne(e))return!0;else if(r&&e)return!0;return!1}function Cp(r,e,t,a){var n=e._private;n.started=!0,n.startTime=t-n.progress*n.duration}function Tl(r,e){var t=e._private.aniEles,a=[];function n(v,f){var c=v._private,h=c.animation.current,d=c.animation.queue,y=!1;if(h.length===0){var g=d.shift();if(g)h.push(g)}var p=function(C){for(var x=C.length-1;x>=0;x--){var S=C[x];S()}C.splice(0,C.length)};for(var m=h.length-1;m>=0;m--){var b=h[m],w=b._private;if(w.stopped){h.splice(m,1),w.hooked=!1,w.playing=!1,w.started=!1,p(w.frames);continue}if(!w.playing&&!w.applying)continue;if(w.playing&&w.applying)w.applying=!1;if(!w.started)Cp(v,b,r);if(Ep(v,b,r,f),w.applying)w.applying=!1;if(p(w.frames),w.step!=null)w.step(r);if(b.completed())h.splice(m,1),w.hooked=!1,w.playing=!1,w.started=!1,p(w.completes);y=!0}if(!f&&h.length===0&&d.length===0)a.push(v);return y}var i=!1;for(var s=0;s<t.length;s++){var o=t[s],u=n(o);i=i||u}var l=n(e,!0);if(i||l)if(t.length>0)e.notify("draw",t);else e.notify("draw");t.unmerge(a),e.emit("step")}var Tp={animate:Fe.animate(),animation:Fe.animation(),animated:Fe.animated(),clearQueue:Fe.clearQueue(),delay:Fe.delay(),delayAnimation:Fe.delayAnimation(),stop:Fe.stop(),addToAnimationPool:function(e){var t=this;if(!t.styleEnabled())return;t._private.aniEles.merge(e)},stopAnimationLoop:function(){this._private.animationsRunning=!1},startAnimationLoop:function(){var e=this;if(e._private.animationsRunning=!0,!e.styleEnabled())return;function t(){if(!e._private.animationsRunning)return;xn(function(i){Tl(i,e),t()})}var a=e.renderer();if(a&&a.beforeRender)a.beforeRender(function(i,s){Tl(s,e)},a.beforeRenderPriorities.animations);else t()}},Sp={qualifierCompare:function(e,t){if(e==null||t==null)return e==null&&t==null;else return e.sameText(t)},eventMatches:function(e,t,a){var n=t.qualifier;if(n!=null)return e!==a.target&&Oa(a.target)&&n.matches(a.target);return!0},addEventFields:function(e,t){t.cy=e,t.target=e},callbackContext:function(e,t,a){return t.qualifier!=null?a.target:e}},an=function(e){if(ge(e))return new dt(e);else return e},af={createEmitter:function(){var e=this._private;if(!e.emitter)e.emitter=new Hn(Sp,this);return this},emitter:function(){return this._private.emitter},on:function(e,t,a){return this.emitter().on(e,an(t),a),this},removeListener:function(e,t,a){return this.emitter().removeListener(e,an(t),a),this},removeAllListeners:function(){return this.emitter().removeAllListeners(),this},one:function(e,t,a){return this.emitter().one(e,an(t),a),this},once:function(e,t,a){return this.emitter().one(e,an(t),a),this},emit:function(e,t){return this.emitter().emit(e,t),this},emitAndNotify:function(e,t){return this.emit(e),this.notify(e,t),this}};Fe.eventAliasesOn(af);var Fs={png:function(e){var t=this._private.renderer;return e=e||{},t.png(e)},jpg:function(e){var t=this._private.renderer;return e=e||{},e.bg=e.bg||"#fff",t.jpg(e)}};Fs.jpeg=Fs.jpg;var hn={layout:function(e){var t=this;if(e==null){$e("Layout options must be specified to make a layout");return}if(e.name==null){$e("A `name` must be specified to make a layout");return}var a=e.name,n=t.extension("layout",a);if(n==null){$e("No such layout `"+a+"` found. Did you forget to import it and `cytoscape.use()` it?");return}var i;if(ge(e.eles))i=t.$(e.eles);else i=e.eles!=null?e.eles:t.$();var s=new n(me({},e,{cy:t,eles:i}));return s}};hn.createLayout=hn.makeLayout=hn.layout;var kp={notify:function(e,t){var a=this._private;if(this.batching()){a.batchNotifications=a.batchNotifications||{};var n=a.batchNotifications[e]=a.batchNotifications[e]||this.collection();if(t!=null)n.merge(t);return}if(!a.notificationsEnabled)return;var i=this.renderer();if(this.destroyed()||!i)return;i.notify(e,t)},notifications:function(e){var t=this._private;if(e===void 0)return t.notificationsEnabled;else t.notificationsEnabled=e?!0:!1;return this},noNotifications:function(e){this.notifications(!1),e(),this.notifications(!0)},batching:function(){return this._private.batchCount>0},startBatch:function(){var e=this._private;if(e.batchCount==null)e.batchCount=0;if(e.batchCount===0)e.batchStyleEles=this.collection(),e.batchNotifications={};return e.batchCount++,this},endBatch:function(){var e=this._private;if(e.batchCount===0)return this;if(e.batchCount--,e.batchCount===0){e.batchStyleEles.updateStyle();var t=this.renderer();Object.keys(e.batchNotifications).forEach(function(a){var n=e.batchNotifications[a];if(n.empty())t.notify(a);else t.notify(a,n)})}return this},batch:function(e){return this.startBatch(),e(),this.endBatch(),this},batchData:function(e){var t=this;return this.batch(function(){var a=Object.keys(e);for(var n=0;n<a.length;n++){var i=a[n],s=e[i],o=t.getElementById(i);o.data(s)}})}},Dp=cr({hideEdgesOnViewport:!1,textureOnViewport:!1,motionBlur:!1,motionBlurOpacity:0.05,pixelRatio:void 0,desktopTapThreshold:4,touchTapThreshold:8,wheelSensitivity:1,debug:!1,showFps:!1,webgl:!1,webglDebug:!1,webglDebugShowAtlases:!1,webglTexSize:2048,webglTexRows:36,webglTexRowsNodes:18,webglBatchSize:2048,webglTexPerBatch:14,webglBgColor:[255,255,255]}),Vs={renderTo:function(e,t,a,n){var i=this._private.renderer;return i.renderTo(e,t,a,n),this},renderer:function(){return this._private.renderer},forceRender:function(){return this.notify("draw"),this},resize:function(){return this.invalidateSize(),this.emitAndNotify("resize"),this},initRenderer:function(e){var t=this,a=t.extension("renderer",e.name);if(a==null){$e("Can not initialise: No such renderer `".concat(e.name,"` found. Did you forget to import it and `cytoscape.use()` it?"));return}if(e.wheelSensitivity!==void 0)Ve("You have set a custom wheel sensitivity. This will make your app zoom unnaturally when using mainstream mice. You should change this value from the default only if you can guarantee that all your users will use the same hardware and OS configuration as your current machine.");var n=Dp(e);n.cy=t,t._private.renderer=new a(n),this.notify("init")},destroyRenderer:function(){var e=this;e.notify("destroy");var t=e.container();if(t){t._cyreg=null;while(t.childNodes.length>0)t.removeChild(t.childNodes[0])}e._private.renderer=null,e.mutableElements().forEach(function(a){var n=a._private;n.rscratch={},n.rstyle={},n.animation.current=[],n.animation.queue=[]})},onRender:function(e){return this.on("render",e)},offRender:function(e){return this.off("render",e)}};Vs.invalidateDimensions=Vs.resize;var gn={collection:function(e,t){if(ge(e))return this.$(e);else if(kr(e))return e.collection();else if(_e(e)){if(!t)t={};return new fr(this,e,t.unique,t.removed)}return new fr(this)},nodes:function(e){var t=this.$(function(a){return a.isNode()});if(e)return t.filter(e);return t},edges:function(e){var t=this.$(function(a){return a.isEdge()});if(e)return t.filter(e);return t},$:function(e){var t=this._private.elements;if(e)return t.filter(e);else return t.spawnSelf()},mutableElements:function(){return this._private.elements}};gn.elements=gn.filter=gn.$;var ur={},xa="t",Bp="f";ur.apply=function(r){var e=this,t=e._private,a=t.cy,n=a.collection();for(var i=0;i<r.length;i++){var s=r[i],o=e.getContextMeta(s);if(o.empty)continue;var u=e.getContextStyle(o),l=e.applyContextStyle(o,u,s);if(s._private.appliedInitStyle)e.updateTransitions(s,l.diffProps);else s._private.appliedInitStyle=!0;var v=e.updateStyleHints(s);if(v)n.push(s)}return n};ur.getPropertiesDiff=function(r,e){var t=this,a=t._private.propDiffs=t._private.propDiffs||{},n=r+"-"+e,i=a[n];if(i)return i;var s=[],o={};for(var u=0;u<t.length;u++){var l=t[u],v=r[u]===xa,f=e[u]===xa,c=v!==f,h=l.mappedProperties.length>0;if(c||f&&h){var d=void 0;if(c&&h)d=l.properties;else if(c)d=l.properties;else if(h)d=l.mappedProperties;for(var y=0;y<d.length;y++){var g=d[y],p=g.name,m=!1;for(var b=u+1;b<t.length;b++){var w=t[b],E=e[b]===xa;if(!E)continue;if(m=w.properties[g.name]!=null,m)break}if(!o[p]&&!m)o[p]=!0,s.push(p)}}}return a[n]=s,s};ur.getContextMeta=function(r){var e=this,t="",a,n=r._private.styleCxtKey||"";for(var i=0;i<e.length;i++){var s=e[i],o=s.selector&&s.selector.matches(r);if(o)t+=xa;else t+=Bp}return a=e.getPropertiesDiff(n,t),r._private.styleCxtKey=t,{key:t,diffPropNames:a,empty:a.length===0}};ur.getContextStyle=function(r){var e=r.key,t=this,a=this._private.contextStyles=this._private.contextStyles||{};if(a[e])return a[e];var n={_private:{key:e}};for(var i=0;i<t.length;i++){var s=t[i],o=e[i]===xa;if(!o)continue;for(var u=0;u<s.properties.length;u++){var l=s.properties[u];n[l.name]=l}}return a[e]=n,n};ur.applyContextStyle=function(r,e,t){var a=this,n=r.diffPropNames,i={},s=a.types;for(var o=0;o<n.length;o++){var u=n[o],l=e[u],v=t.pstyle(u);if(!l)if(!v)continue;else if(v.bypass)l={name:u,deleteBypassed:!0};else l={name:u,delete:!0};if(v===l)continue;if(l.mapped===s.fn&&v!=null&&v.mapping!=null&&v.mapping.value===l.value){var f=v.mapping,c=f.fnValue=l.value(t);if(c===f.prevFnValue)continue}var h=i[u]={prev:v};if(a.applyParsedProperty(t,l),h.next=t.pstyle(u),h.next&&h.next.bypass)h.next=h.next.bypassed}return{diffProps:i}};ur.updateStyleHints=function(r){var e=r._private,t=this,{propertyGroupNames:a,propertyGroupKeys:n}=t,i=function(W,K,ae){return t.getPropertiesHash(W,K,ae)},s=e.styleKey;if(r.removed())return!1;var o=e.group==="nodes",u=r._private.style;a=Object.keys(u);for(var l=0;l<n.length;l++){var v=n[l];e.styleKeys[v]=[kt,Ht]}var f=function(W,K){return e.styleKeys[K][0]=Ta(W,e.styleKeys[K][0])},c=function(W,K){return e.styleKeys[K][1]=Sa(W,e.styleKeys[K][1])},h=function(W,K){f(W,K),c(W,K)},d=function(W,K){for(var ae=0;ae<W.length;ae++){var ve=W.charCodeAt(ae);f(ve,K),c(ve,K)}},y=2000000000,g=function(W){return-128<W&&W<128&&Math.floor(W)!==W?y-(W*1024|0):W};for(var p=0;p<a.length;p++){var m=a[p],b=u[m];if(b==null)continue;var w=this.properties[m],{type:E,groupKey:C}=w,x=void 0;if(w.hashOverride!=null)x=w.hashOverride(r,b);else if(b.pfValue!=null)x=b.pfValue;var S=w.enums==null?b.value:null,k=x!=null,B=S!=null,D=k||B,P=b.units;if(E.number&&D&&!E.multiple){var A=k?x:S;if(h(g(A),C),!k&&P!=null)d(P,C)}else d(b.strValue,C)}var R=[kt,Ht];for(var L=0;L<n.length;L++){var I=n[L],M=e.styleKeys[I];R[0]=Ta(M[0],R[0]),R[1]=Sa(M[1],R[1])}e.styleKey=Hc(R[0],R[1]);var O=e.styleKeys;e.labelDimsKey=rt(O.labelDimensions);var q=i(r,["label"],O.labelDimensions);if(e.labelKey=rt(q),e.labelStyleKey=rt(Ya(O.commonLabel,q)),!o){var _=i(r,["source-label"],O.labelDimensions);e.sourceLabelKey=rt(_),e.sourceLabelStyleKey=rt(Ya(O.commonLabel,_));var N=i(r,["target-label"],O.labelDimensions);e.targetLabelKey=rt(N),e.targetLabelStyleKey=rt(Ya(O.commonLabel,N))}if(o){var V=e.styleKeys,{nodeBody:Z,nodeBorder:j,nodeOutline:Q,backgroundImage:re,compound:te,pie:ie,stripe:Y}=V,F=[Z,j,Q,re,te,ie,Y].filter(function(H){return H!=null}).reduce(Ya,[kt,Ht]);e.nodeKey=rt(F),e.hasPie=ie!=null&&ie[0]!==kt&&ie[1]!==Ht,e.hasStripe=Y!=null&&Y[0]!==kt&&Y[1]!==Ht}return s!==e.styleKey};ur.clearStyleHints=function(r){var e=r._private;e.styleCxtKey="",e.styleKeys={},e.styleKey=null,e.labelKey=null,e.labelStyleKey=null,e.sourceLabelKey=null,e.sourceLabelStyleKey=null,e.targetLabelKey=null,e.targetLabelStyleKey=null,e.nodeKey=null,e.hasPie=null,e.hasStripe=null};ur.applyParsedProperty=function(r,e){var t=this,a=e,n=r._private.style,i,s=t.types,o=t.properties[a.name].type,u=a.bypass,l=n[a.name],v=l&&l.bypass,f=r._private,c="mapping",h=function(Z){if(Z==null)return null;else if(Z.pfValue!=null)return Z.pfValue;else return Z.value},d=function(){var Z=h(l),j=h(a);t.checkTriggers(r,a.name,Z,j)};if(e.name==="curve-style"&&r.isEdge()&&(e.value!=="bezier"&&r.isLoop()||e.value==="haystack"&&(r.source().isParent()||r.target().isParent())))a=e=this.parse(e.name,"bezier",u);if(a.delete)return n[a.name]=void 0,d(),!0;if(a.deleteBypassed)if(!l)return d(),!0;else if(l.bypass)return l.bypassed=void 0,d(),!0;else return!1;if(a.deleteBypass)if(!l)return d(),!0;else if(l.bypass)return n[a.name]=l.bypassed,d(),!0;else return!1;var y=function(){Ve("Do not assign mappings to elements without corresponding data (i.e. ele `"+r.id()+"` has no mapping for property `"+a.name+"` with data field `"+a.field+"`); try a `["+a.field+"]` selector to limit scope to elements with `"+a.field+"` defined")};switch(a.mapped){case s.mapData:{var g=a.field.split("."),p=f.data;for(var m=0;m<g.length&&p;m++){var b=g[m];p=p[b]}if(p==null)return y(),!1;var w;if(!ne(p))return Ve("Do not use continuous mappers without specifying numeric data (i.e. `"+a.field+": "+p+"` for `"+r.id()+"` is non-numeric)"),!1;else{var E=a.fieldMax-a.fieldMin;if(E===0)w=0;else w=(p-a.fieldMin)/E}if(w<0)w=0;else if(w>1)w=1;if(o.color){var C=a.valueMin[0],x=a.valueMax[0],S=a.valueMin[1],k=a.valueMax[1],B=a.valueMin[2],D=a.valueMax[2],P=a.valueMin[3]==null?1:a.valueMin[3],A=a.valueMax[3]==null?1:a.valueMax[3],R=[Math.round(C+(x-C)*w),Math.round(S+(k-S)*w),Math.round(B+(D-B)*w),Math.round(P+(A-P)*w)];i={bypass:a.bypass,name:a.name,value:R,strValue:"rgb("+R[0]+", "+R[1]+", "+R[2]+")"}}else if(o.number){var L=a.valueMin+(a.valueMax-a.valueMin)*w;i=this.parse(a.name,L,a.bypass,c)}else return!1;if(!i)return y(),!1;i.mapping=a,a=i;break}case s.data:{var I=a.field.split("."),M=f.data;for(var O=0;O<I.length&&M;O++){var q=I[O];M=M[q]}if(M!=null)i=this.parse(a.name,M,a.bypass,c);if(!i)return y(),!1;i.mapping=a,a=i;break}case s.fn:{var _=a.value,N=a.fnValue!=null?a.fnValue:_(r);if(a.prevFnValue=N,N==null)return Ve("Custom function mappers may not return null (i.e. `"+a.name+"` for ele `"+r.id()+"` is null)"),!1;if(i=this.parse(a.name,N,a.bypass,c),!i)return Ve("Custom function mappers may not return invalid values for the property type (i.e. `"+a.name+"` for ele `"+r.id()+"` is invalid)"),!1;i.mapping=Hr(a),a=i;break}case void 0:break;default:return!1}if(u){if(v)a.bypassed=l.bypassed;else a.bypassed=l;n[a.name]=a}else if(v)l.bypassed=a;else n[a.name]=a;return d(),!0};ur.cleanElements=function(r,e){for(var t=0;t<r.length;t++){var a=r[t];if(this.clearStyleHints(a),a.dirtyCompoundBoundsCache(),a.dirtyBoundingBoxCache(),!e)a._private.style={};else{var n=a._private.style,i=Object.keys(n);for(var s=0;s<i.length;s++){var o=i[s],u=n[o];if(u!=null)if(u.bypass)u.bypassed=null;else n[o]=null}}}};ur.update=function(){var r=this._private.cy,e=r.mutableElements();e.updateStyle()};ur.updateTransitions=function(r,e){var t=this,a=r._private,n=r.pstyle("transition-property").value,i=r.pstyle("transition-duration").pfValue,s=r.pstyle("transition-delay").pfValue;if(n.length>0&&i>0){var o={},u=!1;for(var l=0;l<n.length;l++){var v=n[l],f=r.pstyle(v),c=e[v];if(!c)continue;var h=c.prev,d=h,y=c.next!=null?c.next:f,g=!1,p=void 0,m=0.000001;if(!d)continue;if(ne(d.pfValue)&&ne(y.pfValue))g=y.pfValue-d.pfValue,p=d.pfValue+m*g;else if(ne(d.value)&&ne(y.value))g=y.value-d.value,p=d.value+m*g;else if(_e(d.value)&&_e(y.value))g=d.value[0]!==y.value[0]||d.value[1]!==y.value[1]||d.value[2]!==y.value[2],p=d.strValue;if(g)o[v]=y.strValue,this.applyBypass(r,v,p),u=!0}if(!u)return;a.transitioning=!0,new aa(function(b){if(s>0)r.delayAnimation(s).play().promise().then(b);else b()}).then(function(){return r.animation({style:o,duration:i,easing:r.pstyle("transition-timing-function").value,queue:!1}).play().promise()}).then(function(){t.removeBypasses(r,n),r.emitAndNotify("style"),a.transitioning=!1})}else if(a.transitioning)this.removeBypasses(r,n),r.emitAndNotify("style"),a.transitioning=!1};ur.checkTrigger=function(r,e,t,a,n,i){var s=this.properties[e],o=n(s);if(r.removed())return;if(o!=null&&o(t,a,r))i(s)};ur.checkZOrderTrigger=function(r,e,t,a){var n=this;this.checkTrigger(r,e,t,a,function(i){return i.triggersZOrder},function(){n._private.cy.notify("zorder",r)})};ur.checkBoundsTrigger=function(r,e,t,a){this.checkTrigger(r,e,t,a,function(n){return n.triggersBounds},function(n){r.dirtyCompoundBoundsCache(),r.dirtyBoundingBoxCache()})};ur.checkConnectedEdgesBoundsTrigger=function(r,e,t,a){this.checkTrigger(r,e,t,a,function(n){return n.triggersBoundsOfConnectedEdges},function(n){r.connectedEdges().forEach(function(i){i.dirtyBoundingBoxCache()})})};ur.checkParallelEdgesBoundsTrigger=function(r,e,t,a){this.checkTrigger(r,e,t,a,function(n){return n.triggersBoundsOfParallelEdges},function(n){r.parallelEdges().forEach(function(i){i.dirtyBoundingBoxCache()})})};ur.checkTriggers=function(r,e,t,a){r.dirtyStyleCache(),this.checkZOrderTrigger(r,e,t,a),this.checkBoundsTrigger(r,e,t,a),this.checkConnectedEdgesBoundsTrigger(r,e,t,a),this.checkParallelEdgesBoundsTrigger(r,e,t,a)};var Ga={};Ga.applyBypass=function(r,e,t,a){var n=this,i=[],s=!0;if(e==="*"||e==="**"){if(t!==void 0)for(var o=0;o<n.properties.length;o++){var u=n.properties[o],l=u.name,v=this.parse(l,t,!0);if(v)i.push(v)}}else if(ge(e)){var f=this.parse(e,t,!0);if(f)i.push(f)}else if(Ie(e)){var c=e;a=t;var h=Object.keys(c);for(var d=0;d<h.length;d++){var y=h[d],g=c[y];if(g===void 0)g=c[Ln(y)];if(g!==void 0){var p=this.parse(y,g,!0);if(p)i.push(p)}}}else return!1;if(i.length===0)return!1;var m=!1;for(var b=0;b<r.length;b++){var w=r[b],E={},C=void 0;for(var x=0;x<i.length;x++){var S=i[x];if(a){var k=w.pstyle(S.name);C=E[S.name]={prev:k}}if(m=this.applyParsedProperty(w,Hr(S))||m,a)C.next=w.pstyle(S.name)}if(m)this.updateStyleHints(w);if(a)this.updateTransitions(w,E,s)}return m};Ga.overrideBypass=function(r,e,t){e=Qs(e);for(var a=0;a<r.length;a++){var n=r[a],i=n._private.style[e],s=this.properties[e].type,{color:o,mutiple:u}=s,l=!i?null:i.pfValue!=null?i.pfValue:i.value;if(!i||!i.bypass)this.applyBypass(n,e,t);else{if(i.value=t,i.pfValue!=null)i.pfValue=t;if(o)i.strValue="rgb("+t.join(",")+")";else if(u)i.strValue=t.join(" ");else i.strValue=""+t;this.updateStyleHints(n)}this.checkTriggers(n,e,l,t)}};Ga.removeAllBypasses=function(r,e){return this.removeBypasses(r,this.propertyNames,e)};Ga.removeBypasses=function(r,e,t){var a=!0;for(var n=0;n<r.length;n++){var i=r[n],s={};for(var o=0;o<e.length;o++){var u=e[o],l=this.properties[u],v=i.pstyle(l.name);if(!v||!v.bypass)continue;var f="",c=this.parse(u,f,!0),h=s[l.name]={prev:v};this.applyParsedProperty(i,c),h.next=i.pstyle(l.name)}if(this.updateStyleHints(i),t)this.updateTransitions(i,s,a)}};var co={};co.getEmSizeInPixels=function(){var r=this.containerCss("font-size");if(r!=null)return parseFloat(r);else return 1};co.containerCss=function(r){var e=this._private.cy,t=e.container(),a=e.window();if(a&&t&&a.getComputedStyle)return a.getComputedStyle(t).getPropertyValue(r)};var Wr={};Wr.getRenderedStyle=function(r,e){if(e)return this.getStylePropertyValue(r,e,!0);else return this.getRawStyle(r,!0)};Wr.getRawStyle=function(r,e){var t=this;if(r=r[0],r){var a={};for(var n=0;n<t.properties.length;n++){var i=t.properties[n],s=t.getStylePropertyValue(r,i.name,e);if(s!=null)a[i.name]=s,a[Ln(i.name)]=s}return a}};Wr.getIndexedStyle=function(r,e,t,a){var n=r.pstyle(e)[t][a];return n!=null?n:r.cy().style().getDefaultProperty(e)[t][0]};Wr.getStylePropertyValue=function(r,e,t){var a=this;if(r=r[0],r){var n=a.properties[e];if(n.alias)n=n.pointsTo;var i=n.type,s=r.pstyle(n.name);if(s){var{value:o,units:u,strValue:l}=s;if(t&&i.number&&o!=null&&ne(o)){var v=r.cy().zoom(),f=function(g){return g*v},c=function(g,p){return f(g)+p},h=_e(o),d=h?u.every(function(y){return y!=null}):u!=null;if(d)if(h)return o.map(function(y,g){return c(y,u[g])}).join(" ");else return c(o,u);else if(h)return o.map(function(y){return ge(y)?y:""+f(y)}).join(" ");else return""+f(o)}else if(l!=null)return l}return null}};Wr.getAnimationStartStyle=function(r,e){var t={};for(var a=0;a<e.length;a++){var n=e[a],i=n.name,s=r.pstyle(i);if(s!==void 0)if(Ie(s))s=this.parse(i,s.strValue);else s=this.parse(i,s);if(s)t[i]=s}return t};Wr.getPropsList=function(r){var e=this,t=[],a=r,n=e.properties;if(a){var i=Object.keys(a);for(var s=0;s<i.length;s++){var o=i[s],u=a[o],l=n[o]||n[Qs(o)],v=this.parse(l.name,u);if(v)t.push(v)}}return t};Wr.getNonDefaultPropertiesHash=function(r,e,t){var a=t.slice(),n,i,s,o,u,l;for(u=0;u<e.length;u++)if(n=e[u],i=r.pstyle(n,!1),i==null)continue;else if(i.pfValue!=null)a[0]=Ta(o,a[0]),a[1]=Sa(o,a[1]);else{s=i.strValue;for(l=0;l<s.length;l++)o=s.charCodeAt(l),a[0]=Ta(o,a[0]),a[1]=Sa(o,a[1])}return a};Wr.getPropertiesHash=Wr.getNonDefaultPropertiesHash;var Un={};Un.appendFromJson=function(r){var e=this;for(var t=0;t<r.length;t++){var a=r[t],n=a.selector,i=a.style||a.css,s=Object.keys(i);e.selector(n);for(var o=0;o<s.length;o++){var u=s[o],l=i[u];e.css(u,l)}}return e};Un.fromJson=function(r){var e=this;return e.resetToDefault(),e.appendFromJson(r),e};Un.json=function(){var r=[];for(var e=this.defaultLength;e<this.length;e++){var t=this[e],{selector:a,properties:n}=t,i={};for(var s=0;s<n.length;s++){var o=n[s];i[o.name]=o.strValue}r.push({selector:!a?"core":a.toString(),style:i})}return r};var ho={};ho.appendFromString=function(r){var e=this,t=this,a=""+r,n,i,s;a=a.replace(/[/][*](\s|.)+?[*][/]/g,"");function o(){if(a.length>n.length)a=a.substr(n.length);else a=""}function u(){if(i.length>s.length)i=i.substr(s.length);else i=""}for(;;){var l=a.match(/^\s*$/);if(l)break;var v=a.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);if(!v){Ve("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: "+a);break}n=v[0];var f=v[1];if(f!=="core"){var c=new dt(f);if(c.invalid){Ve("Skipping parsing of block: Invalid selector found in string stylesheet: "+f),o();continue}}var h=v[2],d=!1;i=h;var y=[];for(;;){var g=i.match(/^\s*$/);if(g)break;var p=i.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/);if(!p){Ve("Skipping parsing of block: Invalid formatting of style property and value definitions found in:"+h),d=!0;break}s=p[0];var m=p[1],b=p[2],w=e.properties[m];if(!w){Ve("Skipping property: Invalid property name in: "+s),u();continue}var E=t.parse(m,b);if(!E){Ve("Skipping property: Invalid property definition in: "+s),u();continue}y.push({name:m,val:b}),u()}if(d){o();break}t.selector(f);for(var C=0;C<y.length;C++){var x=y[C];t.css(x.name,x.val)}o()}return t};ho.fromString=function(r){var e=this;return e.resetToDefault(),e.appendFromString(r),e};var Je={};(function(){var r=tr,e=xc,t=Cc,a=Tc,n=Sc,i=function(H){return"^"+H+"\\s*\\(\\s*([\\w\\.]+)\\s*\\)$"},s=function(H){var W=r+"|\\w+|"+e+"|"+t+"|"+a+"|"+n;return"^"+H+"\\s*\\(([\\w\\.]+)\\s*\\,\\s*("+r+")\\s*\\,\\s*("+r+")\\s*,\\s*("+W+")\\s*\\,\\s*("+W+")\\)$"},o=[`^url\\s*\\(\\s*['"]?(.+?)['"]?\\s*\\)$`,"^(none)$","^(.+)$"];Je.types={time:{number:!0,min:0,units:"s|ms",implicitUnits:"ms"},percent:{number:!0,min:0,max:100,units:"%",implicitUnits:"%"},percentages:{number:!0,min:0,max:100,units:"%",implicitUnits:"%",multiple:!0},zeroOneNumber:{number:!0,min:0,max:1,unitless:!0},zeroOneNumbers:{number:!0,min:0,max:1,unitless:!0,multiple:!0},nOneOneNumber:{number:!0,min:-1,max:1,unitless:!0},nonNegativeInt:{number:!0,min:0,integer:!0,unitless:!0},nonNegativeNumber:{number:!0,min:0,unitless:!0},position:{enums:["parent","origin"]},nodeSize:{number:!0,min:0,enums:["label"]},number:{number:!0,unitless:!0},numbers:{number:!0,unitless:!0,multiple:!0},positiveNumber:{number:!0,unitless:!0,min:0,strictMin:!0},size:{number:!0,min:0},bidirectionalSize:{number:!0},bidirectionalSizeMaybePercent:{number:!0,allowPercent:!0},bidirectionalSizes:{number:!0,multiple:!0},sizeMaybePercent:{number:!0,min:0,allowPercent:!0},axisDirection:{enums:["horizontal","leftward","rightward","vertical","upward","downward","auto"]},axisDirectionExplicit:{enums:["leftward","rightward","upward","downward"]},axisDirectionPrimary:{enums:["horizontal","vertical"]},paddingRelativeTo:{enums:["width","height","average","min","max"]},bgWH:{number:!0,min:0,allowPercent:!0,enums:["auto"],multiple:!0},bgPos:{number:!0,allowPercent:!0,multiple:!0},bgRelativeTo:{enums:["inner","include-padding"],multiple:!0},bgRepeat:{enums:["repeat","repeat-x","repeat-y","no-repeat"],multiple:!0},bgFit:{enums:["none","contain","cover"],multiple:!0},bgCrossOrigin:{enums:["anonymous","use-credentials","null"],multiple:!0},bgClip:{enums:["none","node"],multiple:!0},bgContainment:{enums:["inside","over"],multiple:!0},boxSelection:{enums:["contain","overlap","none"]},color:{color:!0},colors:{color:!0,multiple:!0},fill:{enums:["solid","linear-gradient","radial-gradient"]},bool:{enums:["yes","no"]},bools:{enums:["yes","no"],multiple:!0},lineStyle:{enums:["solid","dotted","dashed"]},lineCap:{enums:["butt","round","square"]},linePosition:{enums:["center","inside","outside"]},lineJoin:{enums:["round","bevel","miter"]},borderStyle:{enums:["solid","dotted","dashed","double"]},curveStyle:{enums:["bezier","unbundled-bezier","haystack","segments","straight","straight-triangle","taxi","round-segments","round-taxi"]},radiusType:{enums:["arc-radius","influence-radius"],multiple:!0},fontFamily:{regex:"^([\\w- \\\"]+(?:\\s*,\\s*[\\w- \\\"]+)*)$"},fontStyle:{enums:["italic","normal","oblique"]},fontWeight:{enums:["normal","bold","bolder","lighter","100","200","300","400","500","600","800","900",100,200,300,400,500,600,700,800,900]},textDecoration:{enums:["none","underline","overline","line-through"]},textTransform:{enums:["none","uppercase","lowercase"]},textWrap:{enums:["none","wrap","ellipsis"]},textOverflowWrap:{enums:["whitespace","anywhere"]},textBackgroundShape:{enums:["rectangle","roundrectangle","round-rectangle","circle"]},nodeShape:{enums:["rectangle","roundrectangle","round-rectangle","cutrectangle","cut-rectangle","bottomroundrectangle","bottom-round-rectangle","barrel","ellipse","triangle","round-triangle","square","pentagon","round-pentagon","hexagon","round-hexagon","concavehexagon","concave-hexagon","heptagon","round-heptagon","octagon","round-octagon","tag","round-tag","star","diamond","round-diamond","vee","rhomboid","right-rhomboid","polygon"]},overlayShape:{enums:["roundrectangle","round-rectangle","ellipse"]},cornerRadius:{number:!0,min:0,units:"px|em",implicitUnits:"px",enums:["auto"]},compoundIncludeLabels:{enums:["include","exclude"]},arrowShape:{enums:["tee","triangle","triangle-tee","circle-triangle","triangle-cross","triangle-backcurve","vee","square","circle","diamond","chevron","none"]},arrowFill:{enums:["filled","hollow"]},arrowWidth:{number:!0,units:"%|px|em",implicitUnits:"px",enums:["match-line"]},display:{enums:["element","none"]},visibility:{enums:["hidden","visible"]},zCompoundDepth:{enums:["bottom","orphan","auto","top"]},zIndexCompare:{enums:["auto","manual"]},valign:{enums:["top","top-inside","center","bottom","bottom-inside"]},halign:{enums:["left","left-inside","center","right","right-inside"]},justification:{enums:["left","center","right","auto"]},textMetrics:{enums:["font","glyph"]},text:{string:!0},data:{mapping:!0,regex:i("data")},layoutData:{mapping:!0,regex:i("layoutData")},scratch:{mapping:!0,regex:i("scratch")},mapData:{mapping:!0,regex:s("mapData")},mapLayoutData:{mapping:!0,regex:s("mapLayoutData")},mapScratch:{mapping:!0,regex:s("mapScratch")},fn:{mapping:!0,fn:!0},url:{regexes:o,singleRegexMatchValue:!0},urls:{regexes:o,singleRegexMatchValue:!0,multiple:!0},propList:{propList:!0},angle:{number:!0,units:"deg|rad",implicitUnits:"rad"},textRotation:{number:!0,units:"deg|rad",implicitUnits:"rad",enums:["none","autorotate"]},polygonPointList:{number:!0,multiple:!0,evenMultiple:!0,min:-1,max:1,unitless:!0},edgeDistances:{enums:["intersection","node-position","endpoints"]},edgeEndpoint:{number:!0,multiple:!0,units:"%|px|em|deg|rad",implicitUnits:"px",enums:["inside-to-node","outside-to-node","outside-to-node-or-label","outside-to-line","outside-to-line-or-label"],singleEnum:!0,validate:function(H,W){switch(H.length){case 2:return W[0]!=="deg"&&W[0]!=="rad"&&W[1]!=="deg"&&W[1]!=="rad";case 1:return ge(H[0])||W[0]==="deg"||W[0]==="rad";default:return!1}}},easing:{regexes:["^(spring)\\s*\\(\\s*("+r+")\\s*,\\s*("+r+")\\s*\\)$","^(cubic-bezier)\\s*\\(\\s*("+r+")\\s*,\\s*("+r+")\\s*,\\s*("+r+")\\s*,\\s*("+r+")\\s*\\)$"],enums:["linear","ease","ease-in","ease-out","ease-in-out","ease-in-sine","ease-out-sine","ease-in-out-sine","ease-in-quad","ease-out-quad","ease-in-out-quad","ease-in-cubic","ease-out-cubic","ease-in-out-cubic","ease-in-quart","ease-out-quart","ease-in-out-quart","ease-in-quint","ease-out-quint","ease-in-out-quint","ease-in-expo","ease-out-expo","ease-in-out-expo","ease-in-circ","ease-out-circ","ease-in-out-circ"]},gradientDirection:{enums:["to-bottom","to-top","to-left","to-right","to-bottom-right","to-bottom-left","to-top-right","to-top-left","to-right-bottom","to-left-bottom","to-right-top","to-left-top"]},boundsExpansion:{number:!0,multiple:!0,min:0,validate:function(H){var W=H.length;return W===1||W===2||W===4}}};var u={zeroNonZero:function(H,W){if((H==null||W==null)&&H!==W)return!0;if(H==0&&W!=0)return!0;else if(H!=0&&W==0)return!0;else return!1},any:function(H,W){return H!=W},emptyNonEmpty:function(H,W){var K=vt(H),ae=vt(W);return K&&!ae||!K&&ae}},l=Je.types,v=[{name:"label",type:l.text,triggersBounds:u.any,triggersZOrder:u.emptyNonEmpty},{name:"text-rotation",type:l.textRotation,triggersBounds:u.any},{name:"text-margin-x",type:l.bidirectionalSize,triggersBounds:u.any},{name:"text-margin-y",type:l.bidirectionalSize,triggersBounds:u.any}],f=[{name:"source-label",type:l.text,triggersBounds:u.any},{name:"source-text-rotation",type:l.textRotation,triggersBounds:u.any},{name:"source-text-margin-x",type:l.bidirectionalSize,triggersBounds:u.any},{name:"source-text-margin-y",type:l.bidirectionalSize,triggersBounds:u.any},{name:"source-text-offset",type:l.size,triggersBounds:u.any}],c=[{name:"target-label",type:l.text,triggersBounds:u.any},{name:"target-text-rotation",type:l.textRotation,triggersBounds:u.any},{name:"target-text-margin-x",type:l.bidirectionalSize,triggersBounds:u.any},{name:"target-text-margin-y",type:l.bidirectionalSize,triggersBounds:u.any},{name:"target-text-offset",type:l.size,triggersBounds:u.any}],h=[{name:"font-family",type:l.fontFamily,triggersBounds:u.any},{name:"font-style",type:l.fontStyle,triggersBounds:u.any},{name:"font-weight",type:l.fontWeight,triggersBounds:u.any},{name:"font-size",type:l.size,triggersBounds:u.any},{name:"text-transform",type:l.textTransform,triggersBounds:u.any},{name:"text-wrap",type:l.textWrap,triggersBounds:u.any},{name:"text-overflow-wrap",type:l.textOverflowWrap,triggersBounds:u.any},{name:"text-max-width",type:l.size,triggersBounds:u.any},{name:"text-outline-width",type:l.size,triggersBounds:u.any},{name:"line-height",type:l.positiveNumber,triggersBounds:u.any}],d=[{name:"text-valign",type:l.valign,triggersBounds:u.any},{name:"text-halign",type:l.halign,triggersBounds:u.any},{name:"color",type:l.color},{name:"text-outline-color",type:l.color},{name:"text-outline-opacity",type:l.zeroOneNumber},{name:"text-background-color",type:l.color},{name:"text-background-opacity",type:l.zeroOneNumber},{name:"text-background-padding",type:l.size,triggersBounds:u.any},{name:"text-border-opacity",type:l.zeroOneNumber},{name:"text-border-color",type:l.color},{name:"text-border-width",type:l.size,triggersBounds:u.any},{name:"text-border-style",type:l.borderStyle,triggersBounds:u.any},{name:"text-background-shape",type:l.textBackgroundShape,triggersBounds:u.any},{name:"text-justification",type:l.justification},{name:"text-metrics",type:l.textMetrics},{name:"box-select-labels",type:l.bool,triggersBounds:u.any}],y=[{name:"events",type:l.bool,triggersZOrder:u.any},{name:"text-events",type:l.bool,triggersZOrder:u.any},{name:"box-selection",type:l.boxSelection,triggersZOrder:u.any}],g=[{name:"display",type:l.display,triggersZOrder:u.any,triggersBounds:u.any,triggersBoundsOfConnectedEdges:u.any,triggersBoundsOfParallelEdges:function(H,W,K){if(H===W)return!1;return K.pstyle("curve-style").value==="bezier"}},{name:"visibility",type:l.visibility,triggersZOrder:u.any},{name:"opacity",type:l.zeroOneNumber,triggersZOrder:u.zeroNonZero},{name:"text-opacity",type:l.zeroOneNumber},{name:"min-zoomed-font-size",type:l.size},{name:"z-compound-depth",type:l.zCompoundDepth,triggersZOrder:u.any},{name:"z-index-compare",type:l.zIndexCompare,triggersZOrder:u.any},{name:"z-index",type:l.number,triggersZOrder:u.any}],p=[{name:"overlay-padding",type:l.size,triggersBounds:u.any},{name:"overlay-color",type:l.color},{name:"overlay-opacity",type:l.zeroOneNumber,triggersBounds:u.zeroNonZero},{name:"overlay-shape",type:l.overlayShape,triggersBounds:u.any},{name:"overlay-corner-radius",type:l.cornerRadius}],m=[{name:"underlay-padding",type:l.size,triggersBounds:u.any},{name:"underlay-color",type:l.color},{name:"underlay-opacity",type:l.zeroOneNumber,triggersBounds:u.zeroNonZero},{name:"underlay-shape",type:l.overlayShape,triggersBounds:u.any},{name:"underlay-corner-radius",type:l.cornerRadius}],b=[{name:"transition-property",type:l.propList},{name:"transition-duration",type:l.time},{name:"transition-delay",type:l.time},{name:"transition-timing-function",type:l.easing}],w=function(H,W){if(W.value==="label")return-H.poolIndex();else return W.pfValue},E=[{name:"height",type:l.nodeSize,triggersBounds:u.any,hashOverride:w},{name:"width",type:l.nodeSize,triggersBounds:u.any,hashOverride:w},{name:"shape",type:l.nodeShape,triggersBounds:u.any},{name:"shape-polygon-points",type:l.polygonPointList,triggersBounds:u.any},{name:"corner-radius",type:l.cornerRadius},{name:"background-color",type:l.color},{name:"background-fill",type:l.fill},{name:"background-opacity",type:l.zeroOneNumber},{name:"background-blacken",type:l.nOneOneNumber},{name:"background-gradient-stop-colors",type:l.colors},{name:"background-gradient-stop-positions",type:l.percentages},{name:"background-gradient-direction",type:l.gradientDirection},{name:"padding",type:l.sizeMaybePercent,triggersBounds:u.any},{name:"padding-relative-to",type:l.paddingRelativeTo,triggersBounds:u.any},{name:"bounds-expansion",type:l.boundsExpansion,triggersBounds:u.any}],C=[{name:"border-color",type:l.color},{name:"border-opacity",type:l.zeroOneNumber},{name:"border-width",type:l.size,triggersBounds:u.any},{name:"border-style",type:l.borderStyle},{name:"border-cap",type:l.lineCap},{name:"border-join",type:l.lineJoin},{name:"border-dash-pattern",type:l.numbers},{name:"border-dash-offset",type:l.number},{name:"border-position",type:l.linePosition}],x=[{name:"outline-color",type:l.color},{name:"outline-opacity",type:l.zeroOneNumber},{name:"outline-width",type:l.size,triggersBounds:u.any},{name:"outline-style",type:l.borderStyle},{name:"outline-offset",type:l.size,triggersBounds:u.any}],S=[{name:"background-image",type:l.urls},{name:"background-image-crossorigin",type:l.bgCrossOrigin},{name:"background-image-opacity",type:l.zeroOneNumbers},{name:"background-image-containment",type:l.bgContainment},{name:"background-image-smoothing",type:l.bools},{name:"background-position-x",type:l.bgPos},{name:"background-position-y",type:l.bgPos},{name:"background-width-relative-to",type:l.bgRelativeTo},{name:"background-height-relative-to",type:l.bgRelativeTo},{name:"background-repeat",type:l.bgRepeat},{name:"background-fit",type:l.bgFit},{name:"background-clip",type:l.bgClip},{name:"background-width",type:l.bgWH},{name:"background-height",type:l.bgWH},{name:"background-offset-x",type:l.bgPos},{name:"background-offset-y",type:l.bgPos}],k=[{name:"position",type:l.position,triggersBounds:u.any},{name:"compound-sizing-wrt-labels",type:l.compoundIncludeLabels,triggersBounds:u.any},{name:"min-width",type:l.size,triggersBounds:u.any},{name:"min-width-bias-left",type:l.sizeMaybePercent,triggersBounds:u.any},{name:"min-width-bias-right",type:l.sizeMaybePercent,triggersBounds:u.any},{name:"min-height",type:l.size,triggersBounds:u.any},{name:"min-height-bias-top",type:l.sizeMaybePercent,triggersBounds:u.any},{name:"min-height-bias-bottom",type:l.sizeMaybePercent,triggersBounds:u.any}],B=[{name:"line-style",type:l.lineStyle},{name:"line-color",type:l.color},{name:"line-fill",type:l.fill},{name:"line-cap",type:l.lineCap},{name:"line-opacity",type:l.zeroOneNumber},{name:"line-dash-pattern",type:l.numbers},{name:"line-dash-offset",type:l.number},{name:"line-outline-width",type:l.size},{name:"line-outline-color",type:l.color},{name:"line-gradient-stop-colors",type:l.colors},{name:"line-gradient-stop-positions",type:l.percentages},{name:"curve-style",type:l.curveStyle,triggersBounds:u.any,triggersBoundsOfParallelEdges:function(H,W){if(H===W)return!1;return H==="bezier"||W==="bezier"}},{name:"haystack-radius",type:l.zeroOneNumber,triggersBounds:u.any},{name:"source-endpoint",type:l.edgeEndpoint,triggersBounds:u.any},{name:"target-endpoint",type:l.edgeEndpoint,triggersBounds:u.any},{name:"control-point-step-size",type:l.size,triggersBounds:u.any},{name:"control-point-distances",type:l.bidirectionalSizes,triggersBounds:u.any},{name:"control-point-weights",type:l.numbers,triggersBounds:u.any},{name:"segment-distances",type:l.bidirectionalSizes,triggersBounds:u.any},{name:"segment-weights",type:l.numbers,triggersBounds:u.any},{name:"segment-radii",type:l.numbers,triggersBounds:u.any},{name:"radius-type",type:l.radiusType,triggersBounds:u.any},{name:"taxi-turn",type:l.bidirectionalSizeMaybePercent,triggersBounds:u.any},{name:"taxi-turn-min-distance",type:l.size,triggersBounds:u.any},{name:"taxi-direction",type:l.axisDirection,triggersBounds:u.any},{name:"taxi-radius",type:l.number,triggersBounds:u.any},{name:"edge-distances",type:l.edgeDistances,triggersBounds:u.any},{name:"arrow-scale",type:l.positiveNumber,triggersBounds:u.any},{name:"loop-direction",type:l.angle,triggersBounds:u.any},{name:"loop-sweep",type:l.angle,triggersBounds:u.any},{name:"source-distance-from-node",type:l.size,triggersBounds:u.any},{name:"target-distance-from-node",type:l.size,triggersBounds:u.any}],D=[{name:"ghost",type:l.bool,triggersBounds:u.any},{name:"ghost-offset-x",type:l.bidirectionalSize,triggersBounds:u.any},{name:"ghost-offset-y",type:l.bidirectionalSize,triggersBounds:u.any},{name:"ghost-opacity",type:l.zeroOneNumber}],P=[{name:"selection-box-color",type:l.color},{name:"selection-box-opacity",type:l.zeroOneNumber},{name:"selection-box-border-color",type:l.color},{name:"selection-box-border-width",type:l.size},{name:"active-bg-color",type:l.color},{name:"active-bg-opacity",type:l.zeroOneNumber},{name:"active-bg-size",type:l.size},{name:"outside-texture-bg-color",type:l.color},{name:"outside-texture-bg-opacity",type:l.zeroOneNumber}],A=[];Je.pieBackgroundN=16,A.push({name:"pie-size",type:l.sizeMaybePercent}),A.push({name:"pie-hole",type:l.sizeMaybePercent}),A.push({name:"pie-start-angle",type:l.angle});for(var R=1;R<=Je.pieBackgroundN;R++)A.push({name:"pie-"+R+"-background-color",type:l.color}),A.push({name:"pie-"+R+"-background-size",type:l.percent}),A.push({name:"pie-"+R+"-background-opacity",type:l.zeroOneNumber});var L=[];Je.stripeBackgroundN=16,L.push({name:"stripe-size",type:l.sizeMaybePercent}),L.push({name:"stripe-direction",type:l.axisDirectionPrimary});for(var I=1;I<=Je.stripeBackgroundN;I++)L.push({name:"stripe-"+I+"-background-color",type:l.color}),L.push({name:"stripe-"+I+"-background-size",type:l.percent}),L.push({name:"stripe-"+I+"-background-opacity",type:l.zeroOneNumber});var M=[],O=Je.arrowPrefixes=["source","mid-source","target","mid-target"];[{name:"arrow-shape",type:l.arrowShape,triggersBounds:u.any},{name:"arrow-color",type:l.color},{name:"arrow-fill",type:l.arrowFill},{name:"arrow-width",type:l.arrowWidth}].forEach(function(F){O.forEach(function(H){var W=H+"-"+F.name,{type:K,triggersBounds:ae}=F;M.push({name:W,type:K,triggersBounds:ae})})},{});var q=Je.properties=[].concat(y,b,g,p,m,D,d,h,v,f,c,E,C,x,S,A,L,k,B,M,P),_=Je.propertyGroups={behavior:y,transition:b,visibility:g,overlay:p,underlay:m,ghost:D,commonLabel:d,labelDimensions:h,mainLabel:v,sourceLabel:f,targetLabel:c,nodeBody:E,nodeBorder:C,nodeOutline:x,backgroundImage:S,pie:A,stripe:L,compound:k,edgeLine:B,edgeArrow:M,core:P},N=Je.propertyGroupNames={},V=Je.propertyGroupKeys=Object.keys(_);V.forEach(function(F){N[F]=_[F].map(function(H){return H.name}),_[F].forEach(function(H){return H.groupKey=F})});var Z=Je.aliases=[{name:"content",pointsTo:"label"},{name:"control-point-distance",pointsTo:"control-point-distances"},{name:"control-point-weight",pointsTo:"control-point-weights"},{name:"segment-distance",pointsTo:"segment-distances"},{name:"segment-weight",pointsTo:"segment-weights"},{name:"segment-radius",pointsTo:"segment-radii"},{name:"edge-text-rotation",pointsTo:"text-rotation"},{name:"padding-left",pointsTo:"padding"},{name:"padding-right",pointsTo:"padding"},{name:"padding-top",pointsTo:"padding"},{name:"padding-bottom",pointsTo:"padding"}];Je.propertyNames=q.map(function(F){return F.name});for(var j=0;j<q.length;j++){var Q=q[j];q[Q.name]=Q}for(var re=0;re<Z.length;re++){var te=Z[re],ie=q[te.pointsTo],Y={name:te.name,alias:!0,pointsTo:ie};q.push(Y),q[te.name]=Y}})();Je.getDefaultProperty=function(r){return this.getDefaultProperties()[r]};Je.getDefaultProperties=function(){var r=this._private;if(r.defaultProperties!=null)return r.defaultProperties;var e=me({"selection-box-color":"#ddd","selection-box-opacity":0.65,"selection-box-border-color":"#aaa","selection-box-border-width":1,"active-bg-color":"black","active-bg-opacity":0.15,"active-bg-size":30,"outside-texture-bg-color":"#000","outside-texture-bg-opacity":0.125,events:"yes","text-events":"no","text-valign":"top","text-halign":"center","text-justification":"auto","line-height":1,color:"#000","box-selection":"contain","text-outline-color":"#000","text-outline-width":0,"text-outline-opacity":1,"text-opacity":1,"text-decoration":"none","text-transform":"none","text-wrap":"none","text-overflow-wrap":"whitespace","text-max-width":9999,"text-background-color":"#000","text-background-opacity":0,"text-background-shape":"rectangle","text-background-padding":0,"text-border-opacity":0,"text-border-width":0,"text-border-style":"solid","text-border-color":"#000","font-family":"Helvetica Neue, Helvetica, sans-serif","font-style":"normal","font-weight":"normal","font-size":16,"min-zoomed-font-size":0,"text-rotation":"none","source-text-rotation":"none","target-text-rotation":"none",visibility:"visible",display:"element",opacity:1,"z-compound-depth":"auto","z-index-compare":"auto","z-index":0,label:"","text-margin-x":0,"text-margin-y":0,"source-label":"","source-text-offset":0,"source-text-margin-x":0,"source-text-margin-y":0,"target-label":"","target-text-offset":0,"target-text-margin-x":0,"target-text-margin-y":0,"overlay-opacity":0,"overlay-color":"#000","overlay-padding":10,"overlay-shape":"round-rectangle","overlay-corner-radius":"auto","underlay-opacity":0,"underlay-color":"#000","underlay-padding":10,"underlay-shape":"round-rectangle","underlay-corner-radius":"auto","text-metrics":"font","transition-property":"none","transition-duration":0,"transition-delay":0,"transition-timing-function":"linear","box-select-labels":"no","background-blacken":0,"background-color":"#999","background-fill":"solid","background-opacity":1,"background-image":"none","background-image-crossorigin":"anonymous","background-image-opacity":1,"background-image-containment":"inside","background-image-smoothing":"yes","background-position-x":"50%","background-position-y":"50%","background-offset-x":0,"background-offset-y":0,"background-width-relative-to":"include-padding","background-height-relative-to":"include-padding","background-repeat":"no-repeat","background-fit":"none","background-clip":"node","background-width":"auto","background-height":"auto","border-color":"#000","border-opacity":1,"border-width":0,"border-style":"solid","border-dash-pattern":[4,2],"border-dash-offset":0,"border-cap":"butt","border-join":"miter","border-position":"center","outline-color":"#999","outline-opacity":1,"outline-width":0,"outline-offset":0,"outline-style":"solid",height:30,width:30,shape:"ellipse","shape-polygon-points":"-1, -1, 1, -1, 1, 1, -1, 1","corner-radius":"auto","bounds-expansion":0,"background-gradient-direction":"to-bottom","background-gradient-stop-colors":"#999","background-gradient-stop-positions":"0%",ghost:"no","ghost-offset-y":0,"ghost-offset-x":0,"ghost-opacity":0,padding:0,"padding-relative-to":"width",position:"origin","compound-sizing-wrt-labels":"include","min-width":0,"min-width-bias-left":0,"min-width-bias-right":0,"min-height":0,"min-height-bias-top":0,"min-height-bias-bottom":0},{"pie-size":"100%","pie-hole":0,"pie-start-angle":"0deg"},[{name:"pie-{{i}}-background-color",value:"black"},{name:"pie-{{i}}-background-size",value:"0%"},{name:"pie-{{i}}-background-opacity",value:1}].reduce(function(u,l){for(var v=1;v<=Je.pieBackgroundN;v++){var f=l.name.replace("{{i}}",v),c=l.value;u[f]=c}return u},{}),{"stripe-size":"100%","stripe-direction":"horizontal"},[{name:"stripe-{{i}}-background-color",value:"black"},{name:"stripe-{{i}}-background-size",value:"0%"},{name:"stripe-{{i}}-background-opacity",value:1}].reduce(function(u,l){for(var v=1;v<=Je.stripeBackgroundN;v++){var f=l.name.replace("{{i}}",v),c=l.value;u[f]=c}return u},{}),{"line-style":"solid","line-color":"#999","line-fill":"solid","line-cap":"butt","line-opacity":1,"line-outline-width":0,"line-outline-color":"#000","line-gradient-stop-colors":"#999","line-gradient-stop-positions":"0%","control-point-step-size":40,"control-point-weights":0.5,"segment-weights":0.5,"segment-distances":20,"segment-radii":15,"radius-type":"arc-radius","taxi-turn":"50%","taxi-radius":15,"taxi-turn-min-distance":10,"taxi-direction":"auto","edge-distances":"intersection","curve-style":"haystack","haystack-radius":0,"arrow-scale":1,"loop-direction":"-45deg","loop-sweep":"-90deg","source-distance-from-node":0,"target-distance-from-node":0,"source-endpoint":"outside-to-node","target-endpoint":"outside-to-node","line-dash-pattern":[6,3],"line-dash-offset":0},[{name:"arrow-shape",value:"none"},{name:"arrow-color",value:"#999"},{name:"arrow-fill",value:"filled"},{name:"arrow-width",value:1}].reduce(function(u,l){return Je.arrowPrefixes.forEach(function(v){var f=v+"-"+l.name,c=l.value;u[f]=c}),u},{})),t={};for(var a=0;a<this.properties.length;a++){var n=this.properties[a];if(n.pointsTo)continue;var i=n.name,s=e[i],o=this.parse(i,s);t[i]=o}return r.defaultProperties=t,r.defaultProperties};Je.addDefaultStylesheet=function(){this.selector(":parent").css({shape:"rectangle",padding:10,"background-color":"#eee","border-color":"#ccc","border-width":1}).selector("edge").css({width:3}).selector(":loop").css({"curve-style":"bezier"}).selector("edge:compound").css({"curve-style":"bezier","source-endpoint":"outside-to-line","target-endpoint":"outside-to-line"}).selector(":selected").css({"background-color":"#0169D9","line-color":"#0169D9","source-arrow-color":"#0169D9","target-arrow-color":"#0169D9","mid-source-arrow-color":"#0169D9","mid-target-arrow-color":"#0169D9"}).selector(":parent:selected").css({"background-color":"#CCE1F9","border-color":"#aec8e5"}).selector(":active").css({"overlay-color":"black","overlay-padding":10,"overlay-opacity":0.25}),this.defaultLength=this.length};var Kn={};Kn.parse=function(r,e,t,a){var n=this;if(Ke(e))return n.parseImplWarn(r,e,t,a);var i=a==="mapping"||a===!0||a===!1||a==null?"dontcare":a,s=t?"t":"f",o=""+e,u=dv(r,o,s,i),l=n.propCache=n.propCache||[],v;if(!(v=l[u]))v=l[u]=n.parseImplWarn(r,e,t,a);if(t||a==="mapping"){if(v=Hr(v),v)v.value=Hr(v.value)}return v};Kn.parseImplWarn=function(r,e,t,a){var n=this.parseImpl(r,e,t,a);if(!n&&e!=null)Ve("The style property `".concat(r,": ").concat(e,"` is invalid"));if(n&&(n.name==="width"||n.name==="height")&&e==="label")Ve("The style value of `label` is deprecated for `"+n.name+"`");return n};Kn.parseImpl=function(r,e,t,a){var n=this;r=Qs(r);var i=n.properties[r],s=e,o=n.types;if(!i)return null;if(e===void 0)return null;if(i.alias)i=i.pointsTo,r=i.name;var u=ge(e);if(u)e=e.trim();var l=i.type;if(!l)return null;if(t&&(e===""||e===null))return{name:r,value:e,bypass:!0,deleteBypass:!0};if(Ke(e))return{name:r,value:e,strValue:"fn",mapped:o.fn,bypass:t};var v,f;if(!u||a||e.length<7||e[1]!=="a");else if(e.length>=7&&e[0]==="d"&&(v=new RegExp(o.data.regex).exec(e))){if(t)return!1;var c=o.data;return{name:r,value:v,strValue:""+e,mapped:c,field:v[1],bypass:t}}else if(e.length>=10&&e[0]==="m"&&(f=new RegExp(o.mapData.regex).exec(e))){if(t)return!1;if(l.multiple)return!1;var h=o.mapData;if(!(l.color||l.number))return!1;var d=this.parse(r,f[4]);if(!d||d.mapped)return!1;var y=this.parse(r,f[5]);if(!y||y.mapped)return!1;if(d.pfValue===y.pfValue||d.strValue===y.strValue)return Ve("`"+r+": "+e+"` is not a valid mapper because the output range is zero; converting to `"+r+": "+d.strValue+"`"),this.parse(r,d.strValue);else if(l.color){var g=d.value,p=y.value,m=g[0]===p[0]&&g[1]===p[1]&&g[2]===p[2]&&(g[3]===p[3]||(g[3]==null||g[3]===1)&&(p[3]==null||p[3]===1));if(m)return!1}return{name:r,value:f,strValue:""+e,mapped:h,field:f[1],fieldMin:parseFloat(f[2]),fieldMax:parseFloat(f[3]),valueMin:d.value,valueMax:y.value,bypass:t}}if(l.multiple&&a!=="multiple"){var b;if(u)b=e.split(/\s+/);else if(_e(e))b=e;else b=[e];if(l.evenMultiple&&b.length%2!==0)return null;var w=[],E=[],C=[],x="",S=!1;for(var k=0;k<b.length;k++){var B=n.parse(r,b[k],t,"multiple");S=S||ge(B.value),w.push(B.value),C.push(B.pfValue!=null?B.pfValue:B.value),E.push(B.units),x+=(k>0?" ":"")+B.strValue}if(l.validate&&!l.validate(w,E))return null;if(l.singleEnum&&S)if(w.length===1&&ge(w[0]))return{name:r,value:w[0],strValue:w[0],bypass:t};else return null;return{name:r,value:w,pfValue:C,strValue:x,bypass:t,units:E}}var D=function(){for(var Y=0;Y<l.enums.length;Y++){var F=l.enums[Y];if(F===e)return{name:r,value:e,strValue:""+e,bypass:t}}return null};if(l.number){var P,A="px";if(l.units)P=l.units;if(l.implicitUnits)A=l.implicitUnits;if(!l.unitless){if(u){var R="px|em"+(l.allowPercent?"|\\%":"");if(P)R=P;var L=e.match("^("+tr+")("+R+")?$");if(L)e=L[1],P=L[2]||A}else if(!P||l.implicitUnits)P=A}if(e=parseFloat(e),isNaN(e)&&l.enums===void 0)return null;if(isNaN(e)&&l.enums!==void 0)return e=s,D();if(l.integer&&!hc(e))return null;if(l.min!==void 0&&(e<l.min||l.strictMin&&e===l.min)||l.max!==void 0&&(e>l.max||l.strictMax&&e===l.max))return null;var I={name:r,value:e,strValue:""+e+(P?P:""),units:P,bypass:t};if(l.unitless||P!=="px"&&P!=="em")I.pfValue=e;else I.pfValue=P==="px"||!P?e:this.getEmSizeInPixels()*e;if(P==="ms"||P==="s")I.pfValue=P==="ms"?e:1000*e;if(P==="deg"||P==="rad")I.pfValue=P==="rad"?e:Td(e);if(P==="%")I.pfValue=e/100;return I}else if(l.propList){var M=[],O=""+e;if(O==="none");else{var q=O.split(/\s*,\s*|\s+/);for(var _=0;_<q.length;_++){var N=q[_].trim();if(n.properties[N])M.push(N);else Ve("`"+N+"` is not a valid property name")}if(M.length===0)return null}return{name:r,value:M,strValue:M.length===0?"none":M.join(" "),bypass:t}}else if(l.color){var V=sv(e);if(!V)return null;return{name:r,value:V,pfValue:V,strValue:"rgb("+V[0]+","+V[1]+","+V[2]+")",bypass:t}}else if(l.regex||l.regexes){if(l.enums){var Z=D();if(Z)return Z}var j=l.regexes?l.regexes:[l.regex];for(var Q=0;Q<j.length;Q++){var re=new RegExp(j[Q]),te=re.exec(e);if(te)return{name:r,value:l.singleRegexMatchValue?te[1]:te,strValue:""+e,bypass:t}}return null}else if(l.string)return{name:r,value:""+e,strValue:""+e,bypass:t};else if(l.enums)return D();else return null};var or=function(e){if(!(this instanceof or))return new or(e);if(!Zs(e)){$e("A style must have a core reference");return}this._private={cy:e,coreStyle:{}},this.length=0,this.resetToDefault()},pr=or.prototype;pr.instanceString=function(){return"style"};pr.clear=function(){var r=this._private,e=r.cy,t=e.elements();for(var a=0;a<this.length;a++)this[a]=void 0;return this.length=0,r.contextStyles={},r.propDiffs={},this.cleanElements(t,!0),t.forEach(function(n){var i=n[0]._private;i.styleDirty=!0,i.appliedInitStyle=!1}),this};pr.resetToDefault=function(){return this.clear(),this.addDefaultStylesheet(),this};pr.core=function(r){return this._private.coreStyle[r]||this.getDefaultProperty(r)};pr.selector=function(r){var e=r==="core"?null:new dt(r),t=this.length++;return this[t]={selector:e,properties:[],mappedProperties:[],index:t},this};pr.css=function(){var r=this,e=arguments;if(e.length===1){var t=e[0];for(var a=0;a<r.properties.length;a++){var n=r.properties[a],i=t[n.name];if(i===void 0)i=t[Ln(n.name)];if(i!==void 0)this.cssRule(n.name,i)}}else if(e.length===2)this.cssRule(e[0],e[1]);return this};pr.style=pr.css;pr.cssRule=function(r,e){var t=this.parse(r,e);if(t){var a=this.length-1;if(this[a].properties.push(t),this[a].properties[t.name]=t,t.name.match(/pie-(\d+)-background-size/)&&t.value)this._private.hasPie=!0;if(t.name.match(/stripe-(\d+)-background-size/)&&t.value)this._private.hasStripe=!0;if(t.mapped)this[a].mappedProperties.push(t);var n=!this[a].selector;if(n)this._private.coreStyle[t.name]=t}return this};pr.append=function(r){if(av(r))r.appendToStyle(this);else if(_e(r))this.appendFromJson(r);else if(ge(r))this.appendFromString(r);return this};or.fromJson=function(r,e){var t=new or(r);return t.fromJson(e),t};or.fromString=function(r,e){return new or(r).fromString(e)};[ur,Ga,co,Wr,Un,ho,Je,Kn].forEach(function(r){me(pr,r)});or.types=pr.types;or.properties=pr.properties;or.propertyGroups=pr.propertyGroups;or.propertyGroupNames=pr.propertyGroupNames;or.propertyGroupKeys=pr.propertyGroupKeys;var Pp={style:function(e){if(e){var t=this.setStyle(e);t.update()}return this._private.style},setStyle:function(e){var t=this._private;if(av(e))t.style=e.generateStyle(this);else if(_e(e))t.style=or.fromJson(this,e);else if(ge(e))t.style=or.fromString(this,e);else t.style=or(this);return t.style},updateStyle:function(){this.mutableElements().updateStyle()}},Ap="single",Mt={autolock:function(e){if(e!==void 0)this._private.autolock=e?!0:!1;else return this._private.autolock;return this},autoungrabify:function(e){if(e!==void 0)this._private.autoungrabify=e?!0:!1;else return this._private.autoungrabify;return this},autounselectify:function(e){if(e!==void 0)this._private.autounselectify=e?!0:!1;else return this._private.autounselectify;return this},selectionType:function(e){var t=this._private;if(t.selectionType==null)t.selectionType=Ap;if(e!==void 0){if(e==="additive"||e==="single")t.selectionType=e}else return t.selectionType;return this},panningEnabled:function(e){if(e!==void 0)this._private.panningEnabled=e?!0:!1;else return this._private.panningEnabled;return this},userPanningEnabled:function(e){if(e!==void 0)this._private.userPanningEnabled=e?!0:!1;else return this._private.userPanningEnabled;return this},zoomingEnabled:function(e){if(e!==void 0)this._private.zoomingEnabled=e?!0:!1;else return this._private.zoomingEnabled;return this},userZoomingEnabled:function(e){if(e!==void 0)this._private.userZoomingEnabled=e?!0:!1;else return this._private.userZoomingEnabled;return this},boxSelectionEnabled:function(e){if(e!==void 0)this._private.boxSelectionEnabled=e?!0:!1;else return this._private.boxSelectionEnabled;return this},pan:function(){var e=arguments,t=this._private.pan,a,n,i,s,o;switch(e.length){case 0:return t;case 1:if(ge(e[0]))return a=e[0],t[a];else if(Ie(e[0])){if(!this._private.panningEnabled)return this;if(i=e[0],s=i.x,o=i.y,ne(s))t.x=s;if(ne(o))t.y=o;this.emit("pan viewport")}break;case 2:if(!this._private.panningEnabled)return this;if(a=e[0],n=e[1],(a==="x"||a==="y")&&ne(n))t[a]=n;this.emit("pan viewport");break}return this.notify("viewport"),this},panBy:function(e,t){var a=arguments,n=this._private.pan,i,s,o,u,l;if(!this._private.panningEnabled)return this;switch(a.length){case 1:if(Ie(e)){if(o=a[0],u=o.x,l=o.y,ne(u))n.x+=u;if(ne(l))n.y+=l;this.emit("pan viewport")}break;case 2:if(i=e,s=t,(i==="x"||i==="y")&&ne(s))n[i]+=s;this.emit("pan viewport");break}return this.notify("viewport"),this},gc:function(){this.notify("gc")},fit:function(e,t){var a=this.getFitViewport(e,t);if(a){var n=this._private;n.zoom=a.zoom,n.pan=a.pan,this.emit("pan zoom viewport"),this.notify("viewport")}return this},getFitViewport:function(e,t){if(ne(e)&&t===void 0)t=e,e=void 0;if(!this._private.panningEnabled||!this._private.zoomingEnabled)return;var a;if(ge(e)){var n=e;e=this.$(n)}else if(yc(e)){var i=e;a={x1:i.x1,y1:i.y1,x2:i.x2,y2:i.y2},a.w=a.x2-a.x1,a.h=a.y2-a.y1}else if(!kr(e))e=this.mutableElements();if(kr(e)&&e.empty())return;a=a||e.boundingBox();var s=this.width(),o=this.height(),u;if(t=ne(t)?t:0,!isNaN(s)&&!isNaN(o)&&s>0&&o>0&&!isNaN(a.w)&&!isNaN(a.h)&&a.w>0&&a.h>0){u=Math.min((s-2*t)/a.w,(o-2*t)/a.h),u=u>this._private.maxZoom?this._private.maxZoom:u,u=u<this._private.minZoom?this._private.minZoom:u;var l={x:(s-u*(a.x1+a.x2))/2,y:(o-u*(a.y1+a.y2))/2};return{zoom:u,pan:l}}return},zoomRange:function(e,t){var a=this._private;if(t==null){var n=e;e=n.min,t=n.max}if(ne(e)&&ne(t)&&e<=t)a.minZoom=e,a.maxZoom=t;else if(ne(e)&&t===void 0&&e<=a.maxZoom)a.minZoom=e;else if(ne(t)&&e===void 0&&t>=a.minZoom)a.maxZoom=t;return this},minZoom:function(e){if(e===void 0)return this._private.minZoom;else return this.zoomRange({min:e})},maxZoom:function(e){if(e===void 0)return this._private.maxZoom;else return this.zoomRange({max:e})},getZoomedViewport:function(e){var t=this._private,{pan:a,zoom:n}=t,i,s,o=!1;if(!t.zoomingEnabled)o=!0;if(ne(e))s=e;else if(Ie(e)){if(s=e.level,e.position!=null)i=Nn(e.position,n,a);else if(e.renderedPosition!=null)i=e.renderedPosition;if(i!=null&&!t.panningEnabled)o=!0}if(s=s>t.maxZoom?t.maxZoom:s,s=s<t.minZoom?t.minZoom:s,o||!ne(s)||s===n||i!=null&&(!ne(i.x)||!ne(i.y)))return null;if(i!=null){var u=a,l=n,v=s,f={x:-v/l*(i.x-u.x)+i.x,y:-v/l*(i.y-u.y)+i.y};return{zoomed:!0,panned:!0,zoom:v,pan:f}}else return{zoomed:!0,panned:!1,zoom:s,pan:a}},zoom:function(e){if(e===void 0)return this._private.zoom;else{var t=this.getZoomedViewport(e),a=this._private;if(t==null||!t.zoomed)return this;if(a.zoom=t.zoom,t.panned)a.pan.x=t.pan.x,a.pan.y=t.pan.y;return this.emit("zoom"+(t.panned?" pan":"")+" viewport"),this.notify("viewport"),this}},viewport:function(e){var t=this._private,a=!0,n=!0,i=[],s=!1,o=!1;if(!e)return this;if(!ne(e.zoom))a=!1;if(!Ie(e.pan))n=!1;if(!a&&!n)return this;if(a){var u=e.zoom;if(u<t.minZoom||u>t.maxZoom||!t.zoomingEnabled)s=!0;else t.zoom=u,i.push("zoom")}if(n&&(!s||!e.cancelOnFailedZoom)&&t.panningEnabled){var l=e.pan;if(ne(l.x))t.pan.x=l.x,o=!1;if(ne(l.y))t.pan.y=l.y,o=!1;if(!o)i.push("pan")}if(i.length>0)i.push("viewport"),this.emit(i.join(" ")),this.notify("viewport");return this},center:function(e){var t=this.getCenterPan(e);if(t)this._private.pan=t,this.emit("pan viewport"),this.notify("viewport");return this},getCenterPan:function(e,t){if(!this._private.panningEnabled)return;if(ge(e)){var a=e;e=this.mutableElements().filter(a)}else if(!kr(e))e=this.mutableElements();if(e.length===0)return;var n=e.boundingBox(),i=this.width(),s=this.height();t=t===void 0?this._private.zoom:t;var o={x:(i-t*(n.x1+n.x2))/2,y:(s-t*(n.y1+n.y2))/2};return o},reset:function(){if(!this._private.panningEnabled||!this._private.zoomingEnabled)return this;return this.viewport({pan:{x:0,y:0},zoom:1}),this},invalidateSize:function(){this._private.sizeCache=null},size:function(){var e=this._private,t=e.container,a=this;return e.sizeCache=e.sizeCache||(t?function(){var n=a.window().getComputedStyle(t),i=function(o){return parseFloat(n.getPropertyValue(o))};return{width:t.clientWidth-i("padding-left")-i("padding-right"),height:t.clientHeight-i("padding-top")-i("padding-bottom")}}():{width:1,height:1})},width:function(){return this.size().width},height:function(){return this.size().height},extent:function(){var e=this._private.pan,t=this._private.zoom,a=this.renderedExtent(),n={x1:(a.x1-e.x)/t,x2:(a.x2-e.x)/t,y1:(a.y1-e.y)/t,y2:(a.y2-e.y)/t};return n.w=n.x2-n.x1,n.h=n.y2-n.y1,n},renderedExtent:function(){var e=this.width(),t=this.height();return{x1:0,y1:0,x2:e,y2:t,w:e,h:t}},multiClickDebounceTime:function(e){if(e)this._private.multiClickDebounceTime=e;else return this._private.multiClickDebounceTime;return this}};Mt.centre=Mt.center;Mt.autolockNodes=Mt.autolock;Mt.autoungrabifyNodes=Mt.autoungrabify;var Ra={data:Fe.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeData:Fe.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),scratch:Fe.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:Fe.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0})};Ra.attr=Ra.data;Ra.removeAttr=Ra.removeData;var Ma=function(e){var t=this;e=me({},e);var a=e.container;if(a&&!wn(a)&&wn(a[0]))a=a[0];var n=a?a._cyreg:null;if(n=n||{},n&&n.cy)n.cy.destroy(),n={};var i=n.readies=n.readies||[];if(a)a._cyreg=n;n.cy=t;var s=rr!==void 0&&a!==void 0&&!e.headless,o=e;o.layout=me({name:s?"grid":"null"},o.layout),o.renderer=me({name:s?"canvas":"null"},o.renderer);var u=function(d,y,g){if(y!==void 0)return y;else if(g!==void 0)return g;else return d},l=this._private={container:a,ready:!1,options:o,elements:new fr(this),listeners:[],aniEles:new fr(this),data:o.data||{},scratch:{},layout:null,renderer:null,destroyed:!1,notificationsEnabled:!0,minZoom:0.00000000000000000000000000000000000000000000000001,maxZoom:100000000000000000000000000000000000000000000000000,zoomingEnabled:u(!0,o.zoomingEnabled),userZoomingEnabled:u(!0,o.userZoomingEnabled),panningEnabled:u(!0,o.panningEnabled),userPanningEnabled:u(!0,o.userPanningEnabled),boxSelectionEnabled:u(!0,o.boxSelectionEnabled),autolock:u(!1,o.autolock,o.autolockNodes),autoungrabify:u(!1,o.autoungrabify,o.autoungrabifyNodes),autounselectify:u(!1,o.autounselectify),styleEnabled:o.styleEnabled===void 0?s:o.styleEnabled,zoom:ne(o.zoom)?o.zoom:1,pan:{x:Ie(o.pan)&&ne(o.pan.x)?o.pan.x:0,y:Ie(o.pan)&&ne(o.pan.y)?o.pan.y:0},animation:{current:[],queue:[]},hasCompoundNodes:!1,multiClickDebounceTime:u(250,o.multiClickDebounceTime)};this.createEmitter(),this.selectionType(o.selectionType),this.zoomRange({min:o.minZoom,max:o.maxZoom});var v=function(d,y){var g=d.some(mc);if(g)return aa.all(d).then(y);else y(d)};if(l.styleEnabled)t.setStyle([]);var f=me({},o,o.renderer);t.initRenderer(f);var c=function(d,y,g){t.notifications(!1);var p=t.mutableElements();if(p.length>0)p.remove();if(d!=null){if(Ie(d)||_e(d))t.add(d)}t.one("layoutready",function(b){t.notifications(!0),t.emit(b),t.one("load",y),t.emitAndNotify("load")}).one("layoutstop",function(){t.one("done",g),t.emit("done")});var m=me({},t._private.options.layout);m.eles=t.elements(),t.layout(m).run()};v([o.style,o.elements],function(h){var d=h[0],y=h[1];if(l.styleEnabled)t.style().append(d);c(y,function(){if(t.startAnimationLoop(),l.ready=!0,Ke(o.ready))t.on("ready",o.ready);for(var g=0;g<i.length;g++){var p=i[g];t.on("ready",p)}if(n)n.readies=[];t.emit("ready")},o.done)})},Dn=Ma.prototype;me(Dn,{instanceString:function(){return"core"},isReady:function(){return this._private.ready},destroyed:function(){return this._private.destroyed},ready:function(e){if(this.isReady())this.emitter().emit("ready",[],e);else this.on("ready",e);return this},destroy:function(){var e=this;if(e.destroyed())return;return e.stopAnimationLoop(),e.destroyRenderer(),this.emit("destroy"),e._private.destroyed=!0,e},hasElementWithId:function(e){return this._private.elements.hasElementWithId(e)},getElementById:function(e){return this._private.elements.getElementById(e)},hasCompoundNodes:function(){return this._private.hasCompoundNodes},headless:function(){return this._private.renderer.isHeadless()},styleEnabled:function(){return this._private.styleEnabled},addToPool:function(e){return this._private.elements.merge(e),this},removeFromPool:function(e){return this._private.elements.unmerge(e),this},container:function(){return this._private.container||null},window:function(){var e=this._private.container;if(e==null)return rr;var t=this._private.container.ownerDocument;if(t===void 0||t==null)return rr;return t.defaultView||rr},mount:function(e){if(e==null)return;var t=this,a=t._private,n=a.options;if(!wn(e)&&wn(e[0]))e=e[0];return t.stopAnimationLoop(),t.destroyRenderer(),a.container=e,a.styleEnabled=!0,t.invalidateSize(),t.initRenderer(me({},n,n.renderer,{name:n.renderer.name==="null"?"canvas":n.renderer.name})),t.startAnimationLoop(),t.style(n.style),t.emit("mount"),t},unmount:function(){var e=this;return e.stopAnimationLoop(),e.destroyRenderer(),e.initRenderer({name:"null"}),e.emit("unmount"),e},options:function(){return Hr(this._private.options)},json:function(e){var t=this,a=t._private,n=t.mutableElements(),i=function(w){return t.getElementById(w.id())};if(Ie(e)){if(t.startBatch(),e.elements){var s={},o=function(w,E){var C=[],x=[];for(var S=0;S<w.length;S++){var k=w[S];if(!k.data.id){Ve("cy.json() cannot handle elements without an ID attribute");continue}var B=""+k.data.id,D=t.getElementById(B);if(s[B]=!0,D.length!==0)x.push({ele:D,json:k});else if(E)k.group=E,C.push(k);else C.push(k)}t.add(C);for(var P=0;P<x.length;P++){var A=x[P],{ele:R,json:L}=A;R.json(L)}};if(_e(e.elements))o(e.elements);else{var u=["nodes","edges"];for(var l=0;l<u.length;l++){var v=u[l],f=e.elements[v];if(_e(f))o(f,v)}}var c=t.collection();n.filter(function(b){return!s[b.id()]}).forEach(function(b){if(b.isParent())c.merge(b);else b.remove()}),c.forEach(function(b){return b.children().move({parent:null})}),c.forEach(function(b){return i(b).remove()})}if(e.style)t.style(e.style);if(e.zoom!=null&&e.zoom!==a.zoom)t.zoom(e.zoom);if(e.pan){if(e.pan.x!==a.pan.x||e.pan.y!==a.pan.y)t.pan(e.pan)}if(e.data)t.data(e.data);var h=["minZoom","maxZoom","zoomingEnabled","userZoomingEnabled","panningEnabled","userPanningEnabled","boxSelectionEnabled","autolock","autoungrabify","autounselectify","multiClickDebounceTime"];for(var d=0;d<h.length;d++){var y=h[d];if(e[y]!=null)t[y](e[y])}return t.endBatch(),this}else{var g=!!e,p={};if(g)p.elements=this.elements().map(function(b){return b.json()});else p.elements={},n.forEach(function(b){var w=b.group();if(!p.elements[w])p.elements[w]=[];p.elements[w].push(b.json())});if(this._private.styleEnabled)p.style=t.style().json();p.data=Hr(t.data());var m=a.options;return p.zoomingEnabled=a.zoomingEnabled,p.userZoomingEnabled=a.userZoomingEnabled,p.zoom=a.zoom,p.minZoom=a.minZoom,p.maxZoom=a.maxZoom,p.panningEnabled=a.panningEnabled,p.userPanningEnabled=a.userPanningEnabled,p.pan=Hr(a.pan),p.boxSelectionEnabled=a.boxSelectionEnabled,p.renderer=Hr(m.renderer),p.hideEdgesOnViewport=m.hideEdgesOnViewport,p.textureOnViewport=m.textureOnViewport,p.wheelSensitivity=m.wheelSensitivity,p.motionBlur=m.motionBlur,p.multiClickDebounceTime=m.multiClickDebounceTime,p}}});Dn.$id=Dn.getElementById;[bp,Tp,af,Fs,hn,kp,Vs,gn,Pp,Mt,Ra].forEach(function(r){me(Dn,r)});var Rp={fit:!0,directed:!1,direction:"downward",padding:30,circle:!1,grid:!1,spacingFactor:1.75,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,roots:void 0,depthSort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}},Mp={maximal:!1,acyclic:!1},Vt=function(e){return e.scratch("breadthfirst")},Sl=function(e,t){return e.scratch("breadthfirst",t)};function nf(r){this.options=me({},Rp,Mp,r)}nf.prototype.run=function(){var r=this.options,{cy:e,eles:t}=r,a=t.nodes().filter(function(pe){return pe.isChildless()}),n=t,i=r.directed,s=r.acyclic||r.maximal||r.maximalAdjustments>0,o=!!r.boundingBox,u=wr(o?r.boundingBox:structuredClone(e.extent())),l;if(kr(r.roots))l=r.roots;else if(_e(r.roots)){var v=[];for(var f=0;f<r.roots.length;f++){var c=r.roots[f],h=e.getElementById(c);v.push(h)}l=e.collection(v)}else if(ge(r.roots))l=e.$(r.roots);else if(i)l=a.roots();else{var d=t.components();l=e.collection();var y=function(){var oe=d[g],he=oe.maxDegree(!1),de=oe.filter(function(Ee){return Ee.degree(!1)===he});l=l.add(de)};for(var g=0;g<d.length;g++)y()}var p=[],m={},b=function(oe,he){if(p[he]==null)p[he]=[];var de=p[he].length;p[he].push(oe),Sl(oe,{index:de,depth:he})},w=function(oe,he){var de=Vt(oe),{depth:Ee,index:we}=de;if(p[Ee][we]=null,oe.isChildless())b(oe,he)};n.bfs({roots:l,directed:r.directed,visit:function(oe,he,de,Ee,we){var ke=oe[0],Pe=ke.id();if(ke.isChildless())b(ke,we);m[Pe]=!0}});var E=[];for(var C=0;C<a.length;C++){var x=a[C];if(m[x.id()])continue;else E.push(x)}var S=function(oe){var he=p[oe];for(var de=0;de<he.length;de++){var Ee=he[de];if(Ee==null){he.splice(de,1),de--;continue}Sl(Ee,{depth:oe,index:de})}},k=function(oe,he){var de=Vt(oe),Ee=oe.incomers().filter(function(J){return J.isNode()&&t.has(J)}),we=-1,ke=oe.id();for(var Pe=0;Pe<Ee.length;Pe++){var ze=Ee[Pe],Oe=Vt(ze);we=Math.max(we,Oe.depth)}if(de.depth<=we){if(!r.acyclic&&he[ke])return null;var Me=we+1;return w(oe,Me),he[ke]=Me,!0}return!1};if(i&&s){var B=[],D={},P=function(oe){return B.push(oe)},A=function(){return B.shift()};a.forEach(function(pe){return B.push(pe)});while(B.length>0){var R=A(),L=k(R,D);if(L)R.outgoers().filter(function(pe){return pe.isNode()&&t.has(pe)}).forEach(P);else if(L===null){Ve("Detected double maximal shift for node `"+R.id()+"`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.");break}}}var I=0;if(r.avoidOverlap)for(var M=0;M<a.length;M++){var O=a[M],q=O.layoutDimensions(r),{w:_,h:N}=q;I=Math.max(I,_,N)}var V={},Z=function(oe){if(V[oe.id()])return V[oe.id()];var he=Vt(oe).depth,de=oe.neighborhood(),Ee=0,we=0;for(var ke=0;ke<de.length;ke++){var Pe=de[ke];if(Pe.isEdge()||Pe.isParent()||!a.has(Pe))continue;var ze=Vt(Pe);if(ze==null)continue;var{index:Oe,depth:Me}=ze;if(Oe==null||Me==null)continue;var J=p[Me].length;if(Me<he)Ee+=Oe/J,we++}if(we=Math.max(1,we),Ee=Ee/we,we===0)Ee=0;return V[oe.id()]=Ee,Ee},j=function(oe,he){var de=Z(oe),Ee=Z(he),we=de-Ee;if(we===0)return iv(oe.id(),he.id());else return we};if(r.depthSort!==void 0)j=r.depthSort;var Q=p.length;for(var re=0;re<Q;re++)p[re].sort(j),S(re);var te=[];for(var ie=0;ie<E.length;ie++)te.push(E[ie]);var Y=function(){for(var oe=0;oe<Q;oe++)S(oe)};if(te.length)p.unshift(te),Q=p.length,Y();var F=0;for(var H=0;H<Q;H++)F=Math.max(p[H].length,F);var W={x:u.x1+u.w/2,y:u.y1+u.h/2},K=a.reduce(function(pe,oe){return function(he){return{w:pe.w===-1?he.w:(pe.w+he.w)/2,h:pe.h===-1?he.h:(pe.h+he.h)/2}}(oe.boundingBox({includeLabels:r.nodeDimensionsIncludeLabels}))},{w:-1,h:-1}),ae=Math.max(Q===1?0:o?(u.h-r.padding*2-K.h)/(Q-1):(u.h-r.padding*2-K.h)/(Q+1),I),ve=p.reduce(function(pe,oe){return Math.max(pe,oe.length)},0),Be=function(oe){var he=Vt(oe),{depth:de,index:Ee}=he;if(r.circle){var we=Math.min(u.w/2/Q,u.h/2/Q);we=Math.max(we,I);var ke=we*de+we-(Q>0&&p[0].length<=3?we/2:0),Pe=2*Math.PI/p[de].length*Ee;if(de===0&&p[0].length===1)ke=1;return{x:W.x+ke*Math.cos(Pe),y:W.y+ke*Math.sin(Pe)}}else{var ze=p[de].length,Oe=Math.max(ze===1?0:o?(u.w-r.padding*2-K.w)/((r.grid?ve:ze)-1):(u.w-r.padding*2-K.w)/((r.grid?ve:ze)+1),I),Me={x:W.x+(Ee+1-(ze+1)/2)*Oe,y:W.y+(de+1-(Q+1)/2)*ae};return Me}},xe={downward:0,leftward:90,upward:180,rightward:-90};if(Object.keys(xe).indexOf(r.direction)===-1)$e("Invalid direction '".concat(r.direction,"' specified for breadthfirst layout. Valid values are: ").concat(Object.keys(xe).join(", ")));var be=function(oe){return Kc(Be(oe),u,xe[r.direction])};return t.nodes().layoutPositions(this,r,be),this};var Lp={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,radius:void 0,startAngle:1.5*Math.PI,sweep:void 0,clockwise:!0,sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function sf(r){this.options=me({},Lp,r)}sf.prototype.run=function(){var r=this.options,e=r,t=r.cy,a=e.eles,n=e.counterclockwise!==void 0?!e.counterclockwise:e.clockwise,i=a.nodes().not(":parent");if(e.sort)i=i.sort(e.sort);var s=wr(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:t.width(),h:t.height()}),o={x:s.x1+s.w/2,y:s.y1+s.h/2},u=e.sweep===void 0?2*Math.PI-2*Math.PI/i.length:e.sweep,l=u/Math.max(1,i.length-1),v,f=0;for(var c=0;c<i.length;c++){var h=i[c],d=h.layoutDimensions(e),{w:y,h:g}=d;f=Math.max(f,y,g)}if(ne(e.radius))v=e.radius;else if(i.length<=1)v=0;else v=Math.min(s.h,s.w)/2-f;if(i.length>1&&e.avoidOverlap){f*=1.75;var p=Math.cos(l)-Math.cos(0),m=Math.sin(l)-Math.sin(0),b=Math.sqrt(f*f/(p*p+m*m));v=Math.max(b,v)}var w=function(C,x){var S=e.startAngle+x*l*(n?1:-1),k=v*Math.cos(S),B=v*Math.sin(S),D={x:o.x+k,y:o.y+B};return D};return a.nodes().layoutPositions(this,e,w),this};var Ip={fit:!0,padding:30,startAngle:1.5*Math.PI,sweep:void 0,clockwise:!0,equidistant:!1,minNodeSpacing:10,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,height:void 0,width:void 0,spacingFactor:void 0,concentric:function(e){return e.degree()},levelWidth:function(e){return e.maxDegree()/4},animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function of(r){this.options=me({},Ip,r)}of.prototype.run=function(){var r=this.options,e=r,t=e.counterclockwise!==void 0?!e.counterclockwise:e.clockwise,a=r.cy,n=e.eles,i=n.nodes().not(":parent"),s=wr(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:a.width(),h:a.height()}),o={x:s.x1+s.w/2,y:s.y1+s.h/2},u=[],l=0;for(var v=0;v<i.length;v++){var f=i[v],c=void 0;c=e.concentric(f),u.push({value:c,node:f}),f._private.scratch.concentric=c}i.updateStyle();for(var h=0;h<i.length;h++){var d=i[h],y=d.layoutDimensions(e);l=Math.max(l,y.w,y.h)}u.sort(function(ae,ve){return ve.value-ae.value});var g=e.levelWidth(i),p=[[]],m=p[0];for(var b=0;b<u.length;b++){var w=u[b];if(m.length>0){var E=Math.abs(m[0].value-w.value);if(E>=g)m=[],p.push(m)}m.push(w)}var C=l+e.minNodeSpacing;if(!e.avoidOverlap){var x=p.length>0&&p[0].length>1,S=Math.min(s.w,s.h)/2-C,k=S/(p.length+x?1:0);C=Math.min(C,k)}var B=0;for(var D=0;D<p.length;D++){var P=p[D],A=e.sweep===void 0?2*Math.PI-2*Math.PI/P.length:e.sweep,R=P.dTheta=A/Math.max(1,P.length-1);if(P.length>1&&e.avoidOverlap){var L=Math.cos(R)-Math.cos(0),I=Math.sin(R)-Math.sin(0),M=Math.sqrt(C*C/(L*L+I*I));B=Math.max(M,B)}P.r=B,B+=C}if(e.equidistant){var O=0,q=0;for(var _=0;_<p.length;_++){var N=p[_],V=N.r-q;O=Math.max(O,V)}q=0;for(var Z=0;Z<p.length;Z++){var j=p[Z];if(Z===0)q=j.r;j.r=q,q+=O}}var Q={};for(var re=0;re<p.length;re++){var te=p[re],{dTheta:ie,r:Y}=te;for(var F=0;F<te.length;F++){var H=te[F],W=e.startAngle+(t?1:-1)*ie*F,K={x:o.x+Y*Math.cos(W),y:o.y+Y*Math.sin(W)};Q[H.node.id()]=K}}return n.nodes().layoutPositions(this,e,function(ae){var ve=ae.id();return Q[ve]}),this};var ws,Op={ready:function(){},stop:function(){},animate:!0,animationEasing:void 0,animationDuration:void 0,animateFilter:function(e,t){return!0},animationThreshold:250,refresh:20,fit:!0,padding:30,boundingBox:void 0,nodeDimensionsIncludeLabels:!1,randomize:!1,componentSpacing:40,nodeRepulsion:function(e){return 2048},nodeOverlap:4,idealEdgeLength:function(e){return 32},edgeElasticity:function(e){return 32},nestingFactor:1.2,gravity:1,numIter:1000,initialTemp:1000,coolingFactor:0.99,minTemp:1};function Xn(r){this.options=me({},Op,r),this.options.layout=this;var e=this.options.eles.nodes(),t=this.options.eles.edges(),a=t.filter(function(n){var i=n.source().data("id"),s=n.target().data("id"),o=e.some(function(l){return l.data("id")===i}),u=e.some(function(l){return l.data("id")===s});return!o||!u});this.options.eles=this.options.eles.not(a)}Xn.prototype.run=function(){var r=this.options,e=r.cy,t=this;if(t.stopped=!1,r.animate===!0||r.animate===!1)t.emit({type:"layoutstart",layout:t});if(r.debug===!0)ws=!0;else ws=!1;var a=Np(e,t,r);if(ws)Fp(a);if(r.randomize)Vp(a);var n=Zr(),i=function(){if(qp(a,e,r),r.fit===!0)e.fit(r.padding)},s=function(c){if(t.stopped||c>=r.numIter)return!1;if(_p(a,r),a.temperature=a.temperature*r.coolingFactor,a.temperature<r.minTemp)return!1;return!0},o=function(){if(r.animate===!0||r.animate===!1)i(),t.one("layoutstop",r.stop),t.emit({type:"layoutstop",layout:t});else{var c=r.eles.nodes(),h=lf(a,r,c);c.layoutPositions(t,r,h)}},u=0,l=!0;if(r.animate===!0){var v=function(){var c=0;while(l&&c<r.refresh)l=s(u),u++,c++;if(!l)Dl(a,r),o();else{var h=Zr();if(h-n>=r.animationThreshold)i();xn(v)}};v()}else{while(l)l=s(u),u++;Dl(a,r),o()}return this};Xn.prototype.stop=function(){if(this.stopped=!0,this.thread)this.thread.stop();return this.emit("layoutstop"),this};Xn.prototype.destroy=function(){if(this.thread)this.thread.stop();return this};var Np=function(e,t,a){var n=a.eles.edges(),i=a.eles.nodes(),s=wr(a.boundingBox?a.boundingBox:{x1:0,y1:0,w:e.width(),h:e.height()}),o={isCompound:e.hasCompoundNodes(),layoutNodes:[],idToIndex:{},nodeSize:i.size(),graphSet:[],indexToGraph:[],layoutEdges:[],edgeSize:n.size(),temperature:a.initialTemp,clientWidth:s.w,clientHeight:s.h,boundingBox:s},u=a.eles.components(),l={};for(var v=0;v<u.length;v++){var f=u[v];for(var c=0;c<f.length;c++){var h=f[c];l[h.id()]=v}}for(var v=0;v<o.nodeSize;v++){var d=i[v],y=d.layoutDimensions(a),g={};g.isLocked=d.locked(),g.id=d.data("id"),g.parentId=d.data("parent"),g.cmptId=l[d.id()],g.children=[],g.positionX=d.position("x"),g.positionY=d.position("y"),g.offsetX=0,g.offsetY=0,g.height=y.w,g.width=y.h,g.maxX=g.positionX+g.width/2,g.minX=g.positionX-g.width/2,g.maxY=g.positionY+g.height/2,g.minY=g.positionY-g.height/2,g.padLeft=parseFloat(d.style("padding")),g.padRight=parseFloat(d.style("padding")),g.padTop=parseFloat(d.style("padding")),g.padBottom=parseFloat(d.style("padding")),g.nodeRepulsion=Ke(a.nodeRepulsion)?a.nodeRepulsion(d):a.nodeRepulsion,o.layoutNodes.push(g),o.idToIndex[g.id]=v}var p=[],m=0,b=-1,w=[];for(var v=0;v<o.nodeSize;v++){var d=o.layoutNodes[v],E=d.parentId;if(E!=null)o.layoutNodes[o.idToIndex[E]].children.push(d.id);else p[++b]=d.id,w.push(d.id)}o.graphSet.push(w);while(m<=b){var C=p[m++],x=o.idToIndex[C],h=o.layoutNodes[x],S=h.children;if(S.length>0){o.graphSet.push(S);for(var v=0;v<S.length;v++)p[++b]=S[v]}}for(var v=0;v<o.graphSet.length;v++){var k=o.graphSet[v];for(var c=0;c<k.length;c++){var B=o.idToIndex[k[c]];o.indexToGraph[B]=v}}for(var v=0;v<o.edgeSize;v++){var D=n[v],P={};P.id=D.data("id"),P.sourceId=D.data("source"),P.targetId=D.data("target");var A=Ke(a.idealEdgeLength)?a.idealEdgeLength(D):a.idealEdgeLength,R=Ke(a.edgeElasticity)?a.edgeElasticity(D):a.edgeElasticity,L=o.idToIndex[P.sourceId],I=o.idToIndex[P.targetId],M=o.indexToGraph[L],O=o.indexToGraph[I];if(M!=O){var q=zp(P.sourceId,P.targetId,o),_=o.graphSet[q],N=0,g=o.layoutNodes[L];while(_.indexOf(g.id)===-1)g=o.layoutNodes[o.idToIndex[g.parentId]],N++;g=o.layoutNodes[I];while(_.indexOf(g.id)===-1)g=o.layoutNodes[o.idToIndex[g.parentId]],N++;A*=N*a.nestingFactor}P.idealLength=A,P.elasticity=R,o.layoutEdges.push(P)}return o},zp=function(e,t,a){var n=uf(e,t,0,a);if(2>n.count)return 0;else return n.graph},uf=function(e,t,a,n){var i=n.graphSet[a];if(-1<i.indexOf(e)&&-1<i.indexOf(t))return{count:2,graph:a};var s=0;for(var o=0;o<i.length;o++){var u=i[o],l=n.idToIndex[u],v=n.layoutNodes[l].children;if(v.length===0)continue;var f=n.indexToGraph[n.idToIndex[v[0]]],c=uf(e,t,f,n);if(c.count===0)continue;else if(c.count===1){if(s++,s===2)break}else return c}return{count:s,graph:a}},Fp,Vp=function(e,t){var{clientWidth:a,clientHeight:n}=e;for(var i=0;i<e.nodeSize;i++){var s=e.layoutNodes[i];if(s.children.length===0&&!s.isLocked)s.positionX=Math.random()*a,s.positionY=Math.random()*n}},lf=function(e,t,a){var n=e.boundingBox,i={x1:1/0,x2:-1/0,y1:1/0,y2:-1/0};if(t.boundingBox)a.forEach(function(s){var o=e.layoutNodes[e.idToIndex[s.data("id")]];i.x1=Math.min(i.x1,o.positionX),i.x2=Math.max(i.x2,o.positionX),i.y1=Math.min(i.y1,o.positionY),i.y2=Math.max(i.y2,o.positionY)}),i.w=i.x2-i.x1,i.h=i.y2-i.y1;return function(s,o){var u=e.layoutNodes[e.idToIndex[s.data("id")]];if(t.boundingBox){var l=i.w===0?0.5:(u.positionX-i.x1)/i.w,v=i.h===0?0.5:(u.positionY-i.y1)/i.h;return{x:n.x1+l*n.w,y:n.y1+v*n.h}}else return{x:u.positionX,y:u.positionY}}},qp=function(e,t,a){var n=a.layout,i=a.eles.nodes(),s=lf(e,a,i);if(i.positions(s),e.ready!==!0)e.ready=!0,n.one("layoutready",a.ready),n.emit({type:"layoutready",layout:this})},_p=function(e,t,a){Gp(e,t),$p(e),Up(e,t),Kp(e),Xp(e)},Gp=function(e,t){for(var a=0;a<e.graphSet.length;a++){var n=e.graphSet[a],i=n.length;for(var s=0;s<i;s++){var o=e.layoutNodes[e.idToIndex[n[s]]];for(var u=s+1;u<i;u++){var l=e.layoutNodes[e.idToIndex[n[u]]];Hp(o,l,e,t)}}}},kl=function(e){return-e+2*e*Math.random()},Hp=function(e,t,a,n){var i=e.cmptId,s=t.cmptId;if(i!==s&&!a.isCompound)return;var o=t.positionX-e.positionX,u=t.positionY-e.positionY,l=1;if(o===0&&u===0)o=kl(l),u=kl(l);var v=Wp(e,t,o,u);if(v>0)var f=n.nodeOverlap*v,c=Math.sqrt(o*o+u*u),h=f*o/c,d=f*u/c;else var y=Bn(e,o,u),g=Bn(t,-1*o,-1*u),p=g.x-y.x,m=g.y-y.y,b=p*p+m*m,c=Math.sqrt(b),f=(e.nodeRepulsion+t.nodeRepulsion)/b,h=f*p/c,d=f*m/c;if(!e.isLocked)e.offsetX-=h,e.offsetY-=d;if(!t.isLocked)t.offsetX+=h,t.offsetY+=d;return},Wp=function(e,t,a,n){if(a>0)var i=e.maxX-t.minX;else var i=t.maxX-e.minX;if(n>0)var s=e.maxY-t.minY;else var s=t.maxY-e.minY;if(i>=0&&s>=0)return Math.sqrt(i*i+s*s);else return 0},Bn=function(e,t,a){var{positionX:n,positionY:i}=e,s=e.height||1,o=e.width||1,u=a/t,l=s/o,v={};if(t===0&&0<a)return v.x=n,v.y=i+s/2,v;if(t===0&&0>a)return v.x=n,v.y=i+s/2,v;if(0<t&&-1*l<=u&&u<=l)return v.x=n+o/2,v.y=i+o*a/2/t,v;if(0>t&&-1*l<=u&&u<=l)return v.x=n-o/2,v.y=i-o*a/2/t,v;if(0<a&&(u<=-1*l||u>=l))return v.x=n+s*t/2/a,v.y=i+s/2,v;if(0>a&&(u<=-1*l||u>=l))return v.x=n-s*t/2/a,v.y=i-s/2,v;return v},$p=function(e,t){for(var a=0;a<e.edgeSize;a++){var n=e.layoutEdges[a],i=e.idToIndex[n.sourceId],s=e.layoutNodes[i],o=e.idToIndex[n.targetId],u=e.layoutNodes[o],l=u.positionX-s.positionX,v=u.positionY-s.positionY;if(l===0&&v===0)continue;var f=Bn(s,l,v),c=Bn(u,-1*l,-1*v),h=c.x-f.x,d=c.y-f.y,y=Math.sqrt(h*h+d*d),g=Math.pow(n.idealLength-y,2)/n.elasticity;if(y!==0)var p=g*h/y,m=g*d/y;else var p=0,m=0;if(!s.isLocked)s.offsetX+=p,s.offsetY+=m;if(!u.isLocked)u.offsetX-=p,u.offsetY-=m}},Up=function(e,t){if(t.gravity===0)return;var a=1;for(var n=0;n<e.graphSet.length;n++){var i=e.graphSet[n],s=i.length;if(n===0)var o=e.clientHeight/2,u=e.clientWidth/2;else var l=e.layoutNodes[e.idToIndex[i[0]]],v=e.layoutNodes[e.idToIndex[l.parentId]],{positionX:o,positionY:u}=v;for(var f=0;f<s;f++){var c=e.layoutNodes[e.idToIndex[i[f]]];if(c.isLocked)continue;var h=o-c.positionX,d=u-c.positionY,y=Math.sqrt(h*h+d*d);if(y>a){var g=t.gravity*h/y,p=t.gravity*d/y;c.offsetX+=g,c.offsetY+=p}}}},Kp=function(e,t){var a=[],n=0,i=-1;a.push.apply(a,e.graphSet[0]),i+=e.graphSet[0].length;while(n<=i){var s=a[n++],o=e.idToIndex[s],u=e.layoutNodes[o],l=u.children;if(0<l.length&&!u.isLocked){var{offsetX:v,offsetY:f}=u;for(var c=0;c<l.length;c++){var h=e.layoutNodes[e.idToIndex[l[c]]];h.offsetX+=v,h.offsetY+=f,a[++i]=l[c]}u.offsetX=0,u.offsetY=0}}},Xp=function(e,t){for(var a=0;a<e.nodeSize;a++){var n=e.layoutNodes[a];if(0<n.children.length)n.maxX=void 0,n.minX=void 0,n.maxY=void 0,n.minY=void 0}for(var a=0;a<e.nodeSize;a++){var n=e.layoutNodes[a];if(0<n.children.length||n.isLocked)continue;var i=Yp(n.offsetX,n.offsetY,e.temperature);n.positionX+=i.x,n.positionY+=i.y,n.offsetX=0,n.offsetY=0,n.minX=n.positionX-n.width,n.maxX=n.positionX+n.width,n.minY=n.positionY-n.height,n.maxY=n.positionY+n.height,vf(n,e)}for(var a=0;a<e.nodeSize;a++){var n=e.layoutNodes[a];if(0<n.children.length&&!n.isLocked)n.positionX=(n.maxX+n.minX)/2,n.positionY=(n.maxY+n.minY)/2,n.width=n.maxX-n.minX,n.height=n.maxY-n.minY}},Yp=function(e,t,a){var n=Math.sqrt(e*e+t*t);if(n>a)var i={x:a*e/n,y:a*t/n};else var i={x:e,y:t};return i},vf=function(e,t){var a=e.parentId;if(a==null)return;var n=t.layoutNodes[t.idToIndex[a]],i=!1;if(n.maxX==null||e.maxX+n.padRight>n.maxX)n.maxX=e.maxX+n.padRight,i=!0;if(n.minX==null||e.minX-n.padLeft<n.minX)n.minX=e.minX-n.padLeft,i=!0;if(n.maxY==null||e.maxY+n.padBottom>n.maxY)n.maxY=e.maxY+n.padBottom,i=!0;if(n.minY==null||e.minY-n.padTop<n.minY)n.minY=e.minY-n.padTop,i=!0;if(i)return vf(n,t);return},Dl=function(e,t){var a=e.layoutNodes,n=[];for(var i=0;i<a.length;i++){var s=a[i],o=s.cmptId,u=n[o]=n[o]||[];u.push(s)}var l=0;for(var i=0;i<n.length;i++){var v=n[i];if(!v)continue;v.x1=1/0,v.x2=-1/0,v.y1=1/0,v.y2=-1/0;for(var f=0;f<v.length;f++){var c=v[f];v.x1=Math.min(v.x1,c.positionX-c.width/2),v.x2=Math.max(v.x2,c.positionX+c.width/2),v.y1=Math.min(v.y1,c.positionY-c.height/2),v.y2=Math.max(v.y2,c.positionY+c.height/2)}v.w=v.x2-v.x1,v.h=v.y2-v.y1,l+=v.w*v.h}n.sort(function(m,b){return b.w*b.h-m.w*m.h});var h=0,d=0,y=0,g=0,p=Math.sqrt(l)*e.clientWidth/e.clientHeight;for(var i=0;i<n.length;i++){var v=n[i];if(!v)continue;for(var f=0;f<v.length;f++){var c=v[f];if(!c.isLocked)c.positionX+=h-v.x1,c.positionY+=d-v.y1}if(h+=v.w+t.componentSpacing,y+=v.w+t.componentSpacing,g=Math.max(g,v.h),y>p)d+=g+t.componentSpacing,h=0,y=0,g=0}},Zp={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,avoidOverlapPadding:10,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,condense:!1,rows:void 0,cols:void 0,position:function(e){},sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function ff(r){this.options=me({},Zp,r)}ff.prototype.run=function(){var r=this.options,e=r,t=r.cy,a=e.eles,n=a.nodes().not(":parent");if(e.sort)n=n.sort(e.sort);var i=wr(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:t.width(),h:t.height()});if(i.h===0||i.w===0)a.nodes().layoutPositions(this,e,function(Z){return{x:i.x1,y:i.y1}});else{var s=n.size(),o=Math.sqrt(s*i.h/i.w),u=Math.round(o),l=Math.round(i.w/i.h*o),v=function(j){if(j==null)return Math.min(u,l);else{var Q=Math.min(u,l);if(Q==u)u=j;else l=j}},f=function(j){if(j==null)return Math.max(u,l);else{var Q=Math.max(u,l);if(Q==u)u=j;else l=j}},c=e.rows,h=e.cols!=null?e.cols:e.columns;if(c!=null&&h!=null)u=c,l=h;else if(c!=null&&h==null)u=c,l=Math.ceil(s/u);else if(c==null&&h!=null)l=h,u=Math.ceil(s/l);else if(l*u>s){var d=v(),y=f();if((d-1)*y>=s)v(d-1);else if((y-1)*d>=s)f(y-1)}else while(l*u<s){var g=v(),p=f();if((p+1)*g>=s)f(p+1);else v(g+1)}var m=i.w/l,b=i.h/u;if(e.condense)m=0,b=0;if(e.avoidOverlap)for(var w=0;w<n.length;w++){var E=n[w],C=E._private.position;if(C.x==null||C.y==null)C.x=0,C.y=0;var x=E.layoutDimensions(e),S=e.avoidOverlapPadding,k=x.w+S,B=x.h+S;m=Math.max(m,k),b=Math.max(b,B)}var D={},P=function(j,Q){return D["c-"+j+"-"+Q]?!0:!1},A=function(j,Q){D["c-"+j+"-"+Q]=!0},R=0,L=0,I=function(){if(L++,L>=l)L=0,R++},M={};for(var O=0;O<n.length;O++){var q=n[O],_=e.position(q);if(_&&(_.row!==void 0||_.col!==void 0)){var N={row:_.row,col:_.col};if(N.col===void 0){N.col=0;while(P(N.row,N.col))N.col++}else if(N.row===void 0){N.row=0;while(P(N.row,N.col))N.row++}M[q.id()]=N,A(N.row,N.col)}}var V=function(j,Q){var re,te;if(j.locked()||j.isParent())return!1;var ie=M[j.id()];if(ie)re=ie.col*m+m/2+i.x1,te=ie.row*b+b/2+i.y1;else{while(P(R,L))I();re=L*m+m/2+i.x1,te=R*b+b/2+i.y1,A(R,L),I()}return{x:re,y:te}};n.layoutPositions(this,e,V)}return this};var Qp={ready:function(){},stop:function(){}};function go(r){this.options=me({},Qp,r)}go.prototype.run=function(){var r=this.options,e=r.eles,t=this;return r.cy,t.emit("layoutstart"),e.nodes().positions(function(){return{x:0,y:0}}),t.one("layoutready",r.ready),t.emit("layoutready"),t.one("layoutstop",r.stop),t.emit("layoutstop"),this};go.prototype.stop=function(){return this};var Jp={positions:void 0,zoom:void 0,pan:void 0,fit:!0,padding:30,spacingFactor:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function cf(r){this.options=me({},Jp,r)}cf.prototype.run=function(){var r=this.options,e=r.eles,t=e.nodes(),a=Ke(r.positions);function n(i){if(r.positions==null)return bd(i.position());if(a)return r.positions(i);var s=r.positions[i._private.data.id];if(s==null)return null;return s}return t.layoutPositions(this,r,function(i,s){var o=n(i);if(i.locked()||o==null)return!1;return o}),this};var jp={fit:!0,padding:30,boundingBox:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function df(r){this.options=me({},jp,r)}df.prototype.run=function(){var r=this.options,{cy:e,eles:t}=r,a=wr(r.boundingBox?r.boundingBox:{x1:0,y1:0,w:e.width(),h:e.height()}),n=function(s,o){return{x:a.x1+Math.round(Math.random()*a.w),y:a.y1+Math.round(Math.random()*a.h)}};return t.nodes().layoutPositions(this,r,n),this};var ey=[{name:"breadthfirst",impl:nf},{name:"circle",impl:sf},{name:"concentric",impl:of},{name:"cose",impl:Xn},{name:"grid",impl:ff},{name:"null",impl:go},{name:"preset",impl:cf},{name:"random",impl:df}];function hf(r){this.options=r,this.notifications=0}var Bl=function(){},Pl=function(){throw Error("A headless instance can not render images")};hf.prototype={recalculateRenderedStyle:Bl,notify:function(){this.notifications++},init:Bl,isHeadless:function(){return!0},png:Pl,jpg:Pl};var po={};po.arrowShapeWidth=0.3;po.registerArrowShapes=function(){var r=this.arrowShapes={},e=this,t=function(l,v,f,c,h,d,y){var g=h.x-f/2-y,p=h.x+f/2+y,m=h.y-f/2-y,b=h.y+f/2+y,w=g<=l&&l<=p&&m<=v&&v<=b;return w},a=function(l,v,f,c,h){var d=l*Math.cos(c)-v*Math.sin(c),y=l*Math.sin(c)+v*Math.cos(c),g=d*f,p=y*f,m=g+h.x,b=p+h.y;return{x:m,y:b}},n=function(l,v,f,c){var h=[];for(var d=0;d<l.length;d+=2){var y=l[d],g=l[d+1];h.push(a(y,g,v,f,c))}return h},i=function(l){var v=[];for(var f=0;f<l.length;f++){var c=l[f];v.push(c.x,c.y)}return v},s=function(l){return l.pstyle("width").pfValue*l.pstyle("arrow-scale").pfValue*2},o=function(l,v){if(ge(v))v=r[v];r[l]=me({name:l,points:[-0.15,-0.3,0.15,-0.3,0.15,0.3,-0.15,0.3],collide:function(c,h,d,y,g,p){var m=i(n(this.points,d+2*p,y,g)),b=Tr(c,h,m);return b},roughCollide:t,draw:function(c,h,d,y){var g=n(this.points,h,d,y);e.arrowShapeImpl("polygon")(c,g)},spacing:function(c){return 0},gap:s},v)};o("none",{collide:En,roughCollide:En,draw:eo,spacing:Ho,gap:Ho}),o("triangle",{points:[-0.15,-0.3,0,0,0.15,-0.3]}),o("arrow","triangle"),o("triangle-backcurve",{points:r.triangle.points,controlPoint:[0,-0.15],roughCollide:t,draw:function(l,v,f,c,h){var d=n(this.points,v,f,c),y=this.controlPoint,g=a(y[0],y[1],v,f,c);e.arrowShapeImpl(this.name)(l,d,g)},gap:function(l){return s(l)*0.8}}),o("triangle-tee",{points:[0,0,0.15,-0.3,-0.15,-0.3,0,0],pointsTee:[-0.15,-0.4,-0.15,-0.5,0.15,-0.5,0.15,-0.4],collide:function(l,v,f,c,h,d,y){var g=i(n(this.points,f+2*y,c,h)),p=i(n(this.pointsTee,f+2*y,c,h)),m=Tr(l,v,g)||Tr(l,v,p);return m},draw:function(l,v,f,c,h){var d=n(this.points,v,f,c),y=n(this.pointsTee,v,f,c);e.arrowShapeImpl(this.name)(l,d,y)}}),o("circle-triangle",{radius:0.15,pointsTr:[0,-0.15,0.15,-0.45,-0.15,-0.45,0,-0.15],collide:function(l,v,f,c,h,d,y){var g=h,p=Math.pow(g.x-l,2)+Math.pow(g.y-v,2)<=Math.pow((f+2*y)*this.radius,2),m=i(n(this.points,f+2*y,c,h));return Tr(l,v,m)||p},draw:function(l,v,f,c,h){var d=n(this.pointsTr,v,f,c);e.arrowShapeImpl(this.name)(l,d,c.x,c.y,this.radius*v)},spacing:function(l){return e.getArrowWidth(l.pstyle("width").pfValue,l.pstyle("arrow-scale").value)*this.radius}}),o("triangle-cross",{points:[0,0,0.15,-0.3,-0.15,-0.3,0,0],baseCrossLinePts:[-0.15,-0.4,-0.15,-0.4,0.15,-0.4,0.15,-0.4],crossLinePts:function(l,v){var f=this.baseCrossLinePts.slice(),c=v/l,h=3,d=5;return f[h]=f[h]-c,f[d]=f[d]-c,f},collide:function(l,v,f,c,h,d,y){var g=i(n(this.points,f+2*y,c,h)),p=i(n(this.crossLinePts(f,d),f+2*y,c,h)),m=Tr(l,v,g)||Tr(l,v,p);return m},draw:function(l,v,f,c,h){var d=n(this.points,v,f,c),y=n(this.crossLinePts(v,h),v,f,c);e.arrowShapeImpl(this.name)(l,d,y)}}),o("vee",{points:[-0.15,-0.3,0,0,0.15,-0.3,0,-0.15],gap:function(l){return s(l)*0.525}}),o("circle",{radius:0.15,collide:function(l,v,f,c,h,d,y){var g=h,p=Math.pow(g.x-l,2)+Math.pow(g.y-v,2)<=Math.pow((f+2*y)*this.radius,2);return p},draw:function(l,v,f,c,h){e.arrowShapeImpl(this.name)(l,c.x,c.y,this.radius*v)},spacing:function(l){return e.getArrowWidth(l.pstyle("width").pfValue,l.pstyle("arrow-scale").value)*this.radius}}),o("tee",{points:[-0.15,0,-0.15,-0.1,0.15,-0.1,0.15,0],spacing:function(l){return 1},gap:function(l){return 1}}),o("square",{points:[-0.15,0,0.15,0,0.15,-0.3,-0.15,-0.3]}),o("diamond",{points:[-0.15,-0.15,0,-0.3,0.15,-0.15,0,0],gap:function(l){return l.pstyle("width").pfValue*l.pstyle("arrow-scale").value}}),o("chevron",{points:[0,0,-0.15,-0.15,-0.1,-0.2,0,-0.1,0.1,-0.2,0.15,-0.15],gap:function(l){return 0.95*l.pstyle("width").pfValue*l.pstyle("arrow-scale").value}})};var It={};It.projectIntoViewport=function(r,e){var t=this.cy,a=this.findContainerClientCoords(),n=a[0],i=a[1],s=a[4],o=t.pan(),u=t.zoom(),l=((r-n)/s-o.x)/u,v=((e-i)/s-o.y)/u;return[l,v]};It.findContainerClientCoords=function(){if(this.containerBB)return this.containerBB;var r=this.container,e=r.getBoundingClientRect(),t=this.cy.window().getComputedStyle(r),a=function(p){return parseFloat(t.getPropertyValue(p))},n={left:a("padding-left"),right:a("padding-right"),top:a("padding-top"),bottom:a("padding-bottom")},i={left:a("border-left-width"),right:a("border-right-width"),top:a("border-top-width"),bottom:a("border-bottom-width")},{clientWidth:s,clientHeight:o}=r,u=n.left+n.right,l=n.top+n.bottom,v=i.left+i.right,f=e.width/(s+v),c=s-u,h=o-l,d=e.left+n.left+i.left,y=e.top+n.top+i.top;return this.containerBB=[d,y,c,h,f]};It.invalidateContainerClientCoordsCache=function(){this.containerBB=null};It.findNearestElement=function(r,e,t,a){return this.findNearestElements(r,e,t,a)[0]};It.findNearestElements=function(r,e,t,a){var n=this,i=this,s=i.getCachedZSortedEles(),o=[],u=i.cy.zoom(),l=i.cy.hasCompoundNodes(),v=(a?24:8)/u,f=(a?8:2)/u,c=(a?8:2)/u,h=1/0,d,y;if(t)s=s.interactive;function g(x,S){if(x.isNode())if(y)return;else y=x,o.push(x);if(x.isEdge()&&(S==null||S<h))if(d){if(d.pstyle("z-compound-depth").value===x.pstyle("z-compound-depth").value&&d.pstyle("z-compound-depth").value===x.pstyle("z-compound-depth").value){for(var k=0;k<o.length;k++)if(o[k].isEdge()){o[k]=x,d=x,h=S!=null?S:h;break}}}else o.push(x),d=x,h=S!=null?S:h}function p(x){var S=x.outerWidth()+2*f,k=x.outerHeight()+2*f,B=S/2,D=k/2,P=x.position(),A=x.pstyle("corner-radius").value==="auto"?"auto":x.pstyle("corner-radius").pfValue,R=x._private.rscratch;if(P.x-B<=r&&r<=P.x+B&&P.y-D<=e&&e<=P.y+D){var L=i.nodeShapes[n.getNodeShape(x)];if(L.checkPoint(r,e,0,S,k,P.x,P.y,A,R))return g(x,0),!0}}function m(x){var S=x._private,k=S.rscratch,B=x.pstyle("width").pfValue,D=x.pstyle("arrow-scale").value,P=B/2+v,A=P*P,R=P*2,{source:O,target:q}=S,L;if(k.edgeType==="segments"||k.edgeType==="straight"||k.edgeType==="haystack"){var I=k.allpts;for(var M=0;M+3<I.length;M+=2)if(Ld(r,e,I[M],I[M+1],I[M+2],I[M+3],R)&&A>(L=Fd(r,e,I[M],I[M+1],I[M+2],I[M+3])))return g(x,L),!0}else if(k.edgeType==="bezier"||k.edgeType==="multibezier"||k.edgeType==="self"||k.edgeType==="compound"){var I=k.allpts;for(var M=0;M+5<k.allpts.length;M+=4)if(Id(r,e,I[M],I[M+1],I[M+2],I[M+3],I[M+4],I[M+5],R)&&A>(L=zd(r,e,I[M],I[M+1],I[M+2],I[M+3],I[M+4],I[M+5])))return g(x,L),!0}var O=O||S.source,q=q||S.target,_=n.getArrowWidth(B,D),N=[{name:"source",x:k.arrowStartX,y:k.arrowStartY,angle:k.srcArrowAngle},{name:"target",x:k.arrowEndX,y:k.arrowEndY,angle:k.tgtArrowAngle},{name:"mid-source",x:k.midX,y:k.midY,angle:k.midsrcArrowAngle},{name:"mid-target",x:k.midX,y:k.midY,angle:k.midtgtArrowAngle}];for(var M=0;M<N.length;M++){var V=N[M],Z=i.arrowShapes[x.pstyle(V.name+"-arrow-shape").value],j=x.pstyle("width").pfValue;if(Z.roughCollide(r,e,_,V.angle,{x:V.x,y:V.y},j,v)&&Z.collide(r,e,_,V.angle,{x:V.x,y:V.y},j,v))return g(x),!0}if(l&&o.length>0)p(O),p(q)}function b(x,S,k){return br(x,S,k)}function w(x,S){var k=x._private,B=c,D;if(S)D=S+"-";else D="";x.boundingBox();var P=k.labelBounds[S||"main"],A=x.pstyle(D+"label").value,R=x.pstyle("text-events").strValue==="yes";if(!R||!A)return;var L=b(k.rscratch,"labelX",S),I=b(k.rscratch,"labelY",S),M=b(k.rscratch,"labelAngle",S),O=x.pstyle(D+"text-margin-x").pfValue,q=x.pstyle(D+"text-margin-y").pfValue,_=P.x1-B-O,N=P.x2+B-O,V=P.y1-B-q,Z=P.y2+B-q;if(M){var j=Math.cos(M),Q=Math.sin(M),re=function(K,ae){return K=K-L,ae=ae-I,{x:K*j-ae*Q+L,y:K*Q+ae*j+I}},te=re(_,V),ie=re(_,Z),Y=re(N,V),F=re(N,Z),H=[te.x+O,te.y+q,Y.x+O,Y.y+q,F.x+O,F.y+q,ie.x+O,ie.y+q];if(Tr(r,e,H))return g(x),!0}else if(st(P,r,e))return g(x),!0}for(var E=s.length-1;E>=0;E--){var C=s[E];if(C.isNode())p(C)||w(C);else m(C)||w(C)||w(C,"source")||w(C,"target")}return o};It.getAllInBox=function(r,e,t,a){var n=this.getCachedZSortedEles().interactive,i=this.cy.zoom(),s=2/i,o=[],u=Math.min(r,t),l=Math.max(r,t),v=Math.min(e,a),f=Math.max(e,a);r=u,t=l,e=v,a=f;var c=wr({x1:r,y1:e,x2:t,y2:a}),h=[{x:c.x1,y:c.y1},{x:c.x2,y:c.y1},{x:c.x2,y:c.y2},{x:c.x1,y:c.y2}],d=[[h[0],h[1]],[h[1],h[2]],[h[2],h[3]],[h[3],h[0]]];function y(K,ae,ve){return br(K,ae,ve)}function g(K,ae){var ve=K._private,Be=s,xe="";K.boundingBox();var be=ve.labelBounds.main;if(!be)return null;var pe=y(ve.rscratch,"labelX",ae),oe=y(ve.rscratch,"labelY",ae),he=y(ve.rscratch,"labelAngle",ae),de=K.pstyle(xe+"text-margin-x").pfValue,Ee=K.pstyle(xe+"text-margin-y").pfValue,we=be.x1-Be-de,ke=be.x2+Be-de,Pe=be.y1-Be-Ee,ze=be.y2+Be-Ee;if(he){var Oe=Math.cos(he),Me=Math.sin(he),J=function(z,G){return z=z-pe,G=G-oe,{x:z*Oe-G*Me+pe,y:z*Me+G*Oe+oe}};return[J(we,Pe),J(ke,Pe),J(ke,ze),J(we,ze)]}else return[{x:we,y:Pe},{x:ke,y:Pe},{x:ke,y:ze},{x:we,y:ze}]}function p(K,ae,ve,Be){function xe(be,pe,oe){return(oe.y-be.y)*(pe.x-be.x)>(pe.y-be.y)*(oe.x-be.x)}return xe(K,ve,Be)!==xe(ae,ve,Be)&&xe(K,ae,ve)!==xe(K,ae,Be)}for(var m=0;m<n.length;m++){var b=n[m];if(b.isNode()){var w=b,E=w.pstyle("text-events").strValue==="yes",C=w.pstyle("box-selection").strValue,x=w.pstyle("box-select-labels").strValue==="yes";if(C==="none")continue;var S=(C==="overlap"||x)&&E,k=w.boundingBox({includeNodes:!0,includeEdges:!1,includeLabels:S});if(C==="contain"){var B=!1;if(x&&E){var D=g(w);if(D&&mi(D,h))o.push(w),B=!0}if(!B&&wv(c,k))o.push(w)}else if(C==="overlap"){if(no(c,k)){var P=w.boundingBox({includeNodes:!0,includeEdges:!0,includeLabels:!1,includeMainLabels:!1,includeSourceLabels:!1,includeTargetLabels:!1}),A=[{x:P.x1,y:P.y1},{x:P.x2,y:P.y1},{x:P.x2,y:P.y2},{x:P.x1,y:P.y2}];if(mi(A,h))o.push(w);else{var R=g(w);if(R&&mi(R,h))o.push(w)}}}}else{var L=b,I=L._private,M=I.rscratch,O=L.pstyle("box-selection").strValue;if(O==="none")continue;if(O==="contain"){if(M.startX!=null&&M.startY!=null&&!st(c,M.startX,M.startY))continue;if(M.endX!=null&&M.endY!=null&&!st(c,M.endX,M.endY))continue;if(M.edgeType==="bezier"||M.edgeType==="multibezier"||M.edgeType==="self"||M.edgeType==="compound"||M.edgeType==="segments"||M.edgeType==="haystack"){var q=I.rstyle.bezierPts||I.rstyle.linePts||I.rstyle.haystackPts,_=!0;for(var N=0;N<q.length;N++)if(!Xo(c,q[N])){_=!1;break}if(_)o.push(L)}else if(M.edgeType==="straight")o.push(L)}else if(O==="overlap"){var V=!1;if(M.startX!=null&&M.startY!=null&&M.endX!=null&&M.endY!=null&&(st(c,M.startX,M.startY)||st(c,M.endX,M.endY)))o.push(L),V=!0;else if(!V&&M.edgeType==="haystack"){var Z=I.rstyle.haystackPts;for(var j=0;j<Z.length;j++)if(Xo(c,Z[j])){o.push(L),V=!0;break}}if(!V){var Q=I.rstyle.bezierPts||I.rstyle.linePts||I.rstyle.haystackPts;if((!Q||Q.length<2)&&M.edgeType==="straight"){if(M.startX!=null&&M.startY!=null&&M.endX!=null&&M.endY!=null)Q=[{x:M.startX,y:M.startY},{x:M.endX,y:M.endY}]}if(!Q||Q.length<2)continue;for(var re=0;re<Q.length-1;re++){var te=Q[re],ie=Q[re+1];for(var Y=0;Y<d.length;Y++){var F=je(d[Y],2),H=F[0],W=F[1];if(p(te,ie,H,W)){o.push(L),V=!0;break}}if(V)break}}}}}return o};var Pn={};Pn.calculateArrowAngles=function(r){var e=r._private.rscratch,t=e.edgeType==="haystack",a=e.edgeType==="bezier",n=e.edgeType==="multibezier",i=e.edgeType==="segments",s=e.edgeType==="compound",o=e.edgeType==="self",u,l,v,f,c,h,p,m;if(t)v=e.haystackPts[0],f=e.haystackPts[1],c=e.haystackPts[2],h=e.haystackPts[3];else v=e.arrowStartX,f=e.arrowStartY,c=e.arrowEndX,h=e.arrowEndY;if(p=e.midX,m=e.midY,i)u=v-e.segpts[0],l=f-e.segpts[1];else if(n||s||o||a){var d=e.allpts,y=sr(d[0],d[2],d[4],0.1),g=sr(d[1],d[3],d[5],0.1);u=v-y,l=f-g}else u=v-p,l=f-m;e.srcArrowAngle=Za(u,l);var{midX:p,midY:m}=e;if(t)p=(v+c)/2,m=(f+h)/2;if(u=c-v,l=h-f,i){var d=e.allpts;if(d.length/2%2===0){var b=d.length/2,w=b-2;u=d[b]-d[w],l=d[b+1]-d[w+1]}else if(e.isRound)u=e.midVector[1],l=-e.midVector[0];else{var b=d.length/2-1,w=b-2;u=d[b]-d[w],l=d[b+1]-d[w+1]}}else if(n||s||o){var{allpts:d,ctrlpts:E}=e,C,x,S,k;if(E.length/2%2===0){var B=d.length/2-1,D=B+2,P=D+2;C=sr(d[B],d[D],d[P],0),x=sr(d[B+1],d[D+1],d[P+1],0),S=sr(d[B],d[D],d[P],0.0001),k=sr(d[B+1],d[D+1],d[P+1],0.0001)}else{var D=d.length/2-1,B=D-2,P=D+2;C=sr(d[B],d[D],d[P],0.4999),x=sr(d[B+1],d[D+1],d[P+1],0.4999),S=sr(d[B],d[D],d[P],0.5),k=sr(d[B+1],d[D+1],d[P+1],0.5)}u=S-C,l=k-x}if(e.midtgtArrowAngle=Za(u,l),e.midDispX=u,e.midDispY=l,u*=-1,l*=-1,i){var d=e.allpts;if(d.length/2%2===0);else if(!e.isRound){var b=d.length/2-1,A=b+2;u=-(d[A]-d[b]),l=-(d[A+1]-d[b+1])}}if(e.midsrcArrowAngle=Za(u,l),i)u=c-e.segpts[e.segpts.length-2],l=h-e.segpts[e.segpts.length-1];else if(n||s||o||a){var d=e.allpts,R=d.length,y=sr(d[R-6],d[R-4],d[R-2],0.9),g=sr(d[R-5],d[R-3],d[R-1],0.9);u=c-y,l=h-g}else u=c-p,l=h-m;e.tgtArrowAngle=Za(u,l)};Pn.getArrowWidth=Pn.getArrowHeight=function(r,e){var t=this.arrowWidthCache=this.arrowWidthCache||{},a=t[r+", "+e];if(a)return a;return a=Math.max(Math.pow(r*13.37,0.9),29)*e,t[r+", "+e]=a,a};var qs,_s,_r={},Br={},Al,Rl,Dt,pn,Xr,Et,St,Vr,qt,nn,gf,pf,Gs,Hs,Ml,Ll=function(e,t,a){a.x=t.x-e.x,a.y=t.y-e.y,a.len=Math.sqrt(a.x*a.x+a.y*a.y),a.nx=a.x/a.len,a.ny=a.y/a.len,a.ang=Math.atan2(a.ny,a.nx)},ry=function(e,t){t.x=e.x*-1,t.y=e.y*-1,t.nx=e.nx*-1,t.ny=e.ny*-1,t.ang=e.ang>0?-(Math.PI-e.ang):Math.PI+e.ang},ty=function(e,t,a,n,i){if(e!==Ml?Ll(t,e,_r):ry(Br,_r),Ll(t,a,Br),Al=_r.nx*Br.ny-_r.ny*Br.nx,Rl=_r.nx*Br.nx-_r.ny*-Br.ny,Xr=Math.asin(Math.max(-1,Math.min(1,Al))),Math.abs(Xr)<0.000001){qs=t.x,_s=t.y,St=qt=0;return}if(Dt=1,pn=!1,Rl<0)if(Xr<0)Xr=Math.PI+Xr;else Xr=Math.PI-Xr,Dt=-1,pn=!0;else if(Xr>0)Dt=-1,pn=!0;if(t.radius!==void 0)qt=t.radius;else qt=n;if(Et=Xr/2,nn=Math.min(_r.len/2,Br.len/2),i)if(Vr=Math.abs(Math.cos(Et)*qt/Math.sin(Et)),Vr>nn)Vr=nn,St=Math.abs(Vr*Math.sin(Et)/Math.cos(Et));else St=qt;else Vr=Math.min(nn,qt),St=Math.abs(Vr*Math.sin(Et)/Math.cos(Et));Gs=t.x+Br.nx*Vr,Hs=t.y+Br.ny*Vr,qs=Gs-Br.ny*St*Dt,_s=Hs+Br.nx*St*Dt,gf=t.x+_r.nx*Vr,pf=t.y+_r.ny*Vr,Ml=t};function yf(r,e){if(e.radius===0)r.lineTo(e.cx,e.cy);else r.arc(e.cx,e.cy,e.radius,e.startAngle,e.endAngle,e.counterClockwise)}function yo(r,e,t,a){var n=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0;if(a===0||e.radius===0)return{cx:e.x,cy:e.y,radius:0,startX:e.x,startY:e.y,stopX:e.x,stopY:e.y,startAngle:void 0,endAngle:void 0,counterClockwise:void 0};return ty(r,e,t,a,n),{cx:qs,cy:_s,radius:St,startX:gf,startY:pf,stopX:Gs,stopY:Hs,startAngle:_r.ang+Math.PI/2*Dt,endAngle:Br.ang-Math.PI/2*Dt,counterClockwise:pn}}var La=0.01,ay=Math.sqrt(2*La),yr={};yr.findMidptPtsEtc=function(r,e){var{posPts:t,intersectionPts:a,vectorNormInverse:n}=e,i,s=r.pstyle("source-endpoint"),o=r.pstyle("target-endpoint"),u=s.units!=null&&o.units!=null,l=function(E,C,x,S){var k=S-C,B=x-E,D=Math.sqrt(B*B+k*k);return{x:-k/D,y:B/D}},v=r.pstyle("edge-distances").value;switch(v){case"node-position":i=t;break;case"intersection":i=a;break;case"endpoints":{if(u){var f=this.manualEndptToPx(r.source()[0],s),c=je(f,2),h=c[0],d=c[1],y=this.manualEndptToPx(r.target()[0],o),g=je(y,2),p=g[0],m=g[1],b={x1:h,y1:d,x2:p,y2:m};n=l(h,d,p,m),i=b}else Ve("Edge ".concat(r.id()," has edge-distances:endpoints specified without manual endpoints specified via source-endpoint and target-endpoint. Falling back on edge-distances:intersection (default).")),i=a;break}}return{midptPts:i,vectorNormInverse:n}};yr.findHaystackPoints=function(r){for(var e=0;e<r.length;e++){var t=r[e],a=t._private,n=a.rscratch;if(!n.haystack){var i=Math.random()*2*Math.PI;n.source={x:Math.cos(i),y:Math.sin(i)},i=Math.random()*2*Math.PI,n.target={x:Math.cos(i),y:Math.sin(i)}}var{source:s,target:o}=a,u=s.position(),l=o.position(),v=s.width(),f=o.width(),c=s.height(),h=o.height(),d=t.pstyle("haystack-radius").value,y=d/2;n.haystackPts=n.allpts=[n.source.x*v*y+u.x,n.source.y*c*y+u.y,n.target.x*f*y+l.x,n.target.y*h*y+l.y],n.midX=(n.allpts[0]+n.allpts[2])/2,n.midY=(n.allpts[1]+n.allpts[3])/2,n.edgeType="haystack",n.haystack=!0,this.storeEdgeProjections(t),this.calculateArrowAngles(t),this.recalculateEdgeLabelProjections(t),this.calculateLabelAngles(t)}};yr.findSegmentsPoints=function(r,e){var t=r._private.rscratch,a=r.pstyle("segment-weights"),n=r.pstyle("segment-distances"),i=r.pstyle("segment-radii"),s=r.pstyle("radius-type"),o=Math.min(a.pfValue.length,n.pfValue.length),u=i.pfValue[i.pfValue.length-1],l=s.pfValue[s.pfValue.length-1];t.edgeType="segments",t.segpts=[],t.radii=[],t.isArcRadius=[];for(var v=0;v<o;v++){var f=a.pfValue[v],c=n.pfValue[v],h=1-f,d=f,y=this.findMidptPtsEtc(r,e),{midptPts:g,vectorNormInverse:p}=y,m={x:g.x1*h+g.x2*d,y:g.y1*h+g.y2*d};t.segpts.push(m.x+p.x*c,m.y+p.y*c),t.radii.push(i.pfValue[v]!==void 0?i.pfValue[v]:u),t.isArcRadius.push((s.pfValue[v]!==void 0?s.pfValue[v]:l)==="arc-radius")}};yr.findLoopPoints=function(r,e,t,a){var n=r._private.rscratch,{dirCounts:i,srcPos:s}=e,o=r.pstyle("control-point-distances"),u=o?o.pfValue[0]:void 0,l=r.pstyle("loop-direction").pfValue,v=r.pstyle("loop-sweep").pfValue,f=r.pstyle("control-point-step-size").pfValue;n.edgeType="self";var c=t,h=f;if(a)c=0,h=u;var d=l-Math.PI/2,y=d-v/2,g=d+v/2,p=String(l+"_"+v);c=i[p]===void 0?i[p]=0:++i[p],n.ctrlpts=[s.x+Math.cos(y)*1.4*h*(c/3+1),s.y+Math.sin(y)*1.4*h*(c/3+1),s.x+Math.cos(g)*1.4*h*(c/3+1),s.y+Math.sin(g)*1.4*h*(c/3+1)]};yr.findCompoundLoopPoints=function(r,e,t,a){var n=r._private.rscratch;n.edgeType="compound";var{srcPos:i,tgtPos:s,srcW:o,srcH:u,tgtW:l,tgtH:v}=e,f=r.pstyle("control-point-step-size").pfValue,c=r.pstyle("control-point-distances"),h=c?c.pfValue[0]:void 0,d=t,y=f;if(a)d=0,y=h;var g=50,p={x:i.x-o/2,y:i.y-u/2},m={x:s.x-l/2,y:s.y-v/2},b={x:Math.min(p.x,m.x),y:Math.min(p.y,m.y)},w=0.5,E=Math.max(w,Math.log(o*La)),C=Math.max(w,Math.log(l*La));n.ctrlpts=[b.x,b.y-(1+Math.pow(g,1.12)/100)*y*(d/3+1)*E,b.x-(1+Math.pow(g,1.12)/100)*y*(d/3+1)*C,b.y]};yr.findStraightEdgePoints=function(r){r._private.rscratch.edgeType="straight"};yr.findBezierPoints=function(r,e,t,a,n){var i=r._private.rscratch,s=r.pstyle("control-point-step-size").pfValue,o=r.pstyle("control-point-distances"),u=r.pstyle("control-point-weights"),l=o&&u?Math.min(o.value.length,u.value.length):1,v=o?o.pfValue[0]:void 0,f=u.value[0],c=a;i.edgeType=c?"multibezier":"bezier",i.ctrlpts=[];for(var h=0;h<l;h++){var d=(0.5-e.eles.length/2+t)*s*(n?-1:1),y=void 0,g=ao(d);if(c)v=o?o.pfValue[h]:s,f=u.value[h];if(a)y=v;else y=v!==void 0?g*v:void 0;var p=y!==void 0?y:d,m=1-f,b=f,w=this.findMidptPtsEtc(r,e),{midptPts:E,vectorNormInverse:C}=w,x={x:E.x1*m+E.x2*b,y:E.y1*m+E.y2*b};i.ctrlpts.push(x.x+C.x*p,x.y+C.y*p)}};yr.findTaxiPoints=function(r,e){var t=r._private.rscratch;t.edgeType="segments";var a="vertical",n="horizontal",i="leftward",s="rightward",o="downward",u="upward",l="auto",{posPts:v,srcW:f,srcH:c,tgtW:h,tgtH:d}=e,y=r.pstyle("edge-distances").value,g=y!=="node-position",p=r.pstyle("taxi-direction").value,m=p,b=r.pstyle("taxi-turn"),w=b.units==="%",E=b.pfValue,C=E<0,x=r.pstyle("taxi-turn-min-distance").pfValue,S=g?(f+h)/2:0,k=g?(c+d)/2:0,B=v.x2-v.x1,D=v.y2-v.y1,P=function(G,U){if(G>0)return Math.max(G-U,0);else return Math.min(G+U,0)},A=P(B,S),R=P(D,k),L=!1;if(m===l)p=Math.abs(A)>Math.abs(R)?n:a;else if(m===u||m===o)p=a,L=!0;else if(m===i||m===s)p=n,L=!0;var I=p===a,M=I?R:A,O=I?D:B,q=ao(O),_=!1;if(!(L&&(w||C))&&(m===o&&O<0||m===u&&O>0||m===i&&O>0||m===s&&O<0))q*=-1,M=q*Math.abs(M),_=!0;var N;if(w){var V=E<0?1+E:E;N=V*M}else{var Z=E<0?M:0;N=Z+E*q}var j=function(G){return Math.abs(G)<x||Math.abs(G)>=Math.abs(M)},Q=j(N),re=j(Math.abs(M)-Math.abs(N)),te=Q||re;if(te&&!_)if(I){var ie=Math.abs(O)<=c/2,Y=Math.abs(B)<=h/2;if(ie){var F=(v.x1+v.x2)/2,{y1:H,y2:W}=v;t.segpts=[F,H,F,W]}else if(Y){var K=(v.y1+v.y2)/2,{x1:ae,x2:ve}=v;t.segpts=[ae,K,ve,K]}else t.segpts=[v.x1,v.y2]}else{var Be=Math.abs(O)<=f/2,xe=Math.abs(D)<=d/2;if(Be){var be=(v.y1+v.y2)/2,{x1:pe,x2:oe}=v;t.segpts=[pe,be,oe,be]}else if(xe){var he=(v.x1+v.x2)/2,{y1:de,y2:Ee}=v;t.segpts=[he,de,he,Ee]}else t.segpts=[v.x2,v.y1]}else if(I){var we=v.y1+N+(g?c/2*q:0),{x1:ke,x2:Pe}=v;t.segpts=[ke,we,Pe,we]}else{var ze=v.x1+N+(g?f/2*q:0),{y1:Oe,y2:Me}=v;t.segpts=[ze,Oe,ze,Me]}if(t.isRound){var J=r.pstyle("taxi-radius").value,T=r.pstyle("radius-type").value[0]==="arc-radius";t.radii=Array(t.segpts.length/2).fill(J),t.isArcRadius=Array(t.segpts.length/2).fill(T)}};yr.tryToCorrectInvalidPoints=function(r,e){var t=r._private.rscratch;if(t.edgeType==="bezier"){var{srcPos:a,tgtPos:n,srcW:i,srcH:s,tgtW:o,tgtH:u,srcShape:l,tgtShape:v,srcCornerRadius:f,tgtCornerRadius:c,srcRs:h,tgtRs:d}=e,y=!ne(t.startX)||!ne(t.startY),g=!ne(t.arrowStartX)||!ne(t.arrowStartY),p=!ne(t.endX)||!ne(t.endY),m=!ne(t.arrowEndX)||!ne(t.arrowEndY),b=3,w=this.getArrowWidth(r.pstyle("width").pfValue,r.pstyle("arrow-scale").value)*this.arrowShapeWidth,E=b*w,C=At({x:t.ctrlpts[0],y:t.ctrlpts[1]},{x:t.startX,y:t.startY}),x=C<E,S=At({x:t.ctrlpts[0],y:t.ctrlpts[1]},{x:t.endX,y:t.endY}),k=S<E,B=!1;if(y||g||x){B=!0;var D={x:t.ctrlpts[0]-a.x,y:t.ctrlpts[1]-a.y},P=Math.sqrt(D.x*D.x+D.y*D.y),A={x:D.x/P,y:D.y/P},R=Math.max(i,s),L={x:t.ctrlpts[0]+A.x*2*R,y:t.ctrlpts[1]+A.y*2*R},I=l.intersectLine(a.x,a.y,i,s,L.x,L.y,0,f,h);if(x)t.ctrlpts[0]=t.ctrlpts[0]+A.x*(E-C),t.ctrlpts[1]=t.ctrlpts[1]+A.y*(E-C);else t.ctrlpts[0]=I[0]+A.x*E,t.ctrlpts[1]=I[1]+A.y*E}if(p||m||k){B=!0;var M={x:t.ctrlpts[0]-n.x,y:t.ctrlpts[1]-n.y},O=Math.sqrt(M.x*M.x+M.y*M.y),q={x:M.x/O,y:M.y/O},_=Math.max(i,s),N={x:t.ctrlpts[0]+q.x*2*_,y:t.ctrlpts[1]+q.y*2*_},V=v.intersectLine(n.x,n.y,o,u,N.x,N.y,0,c,d);if(k)t.ctrlpts[0]=t.ctrlpts[0]+q.x*(E-S),t.ctrlpts[1]=t.ctrlpts[1]+q.y*(E-S);else t.ctrlpts[0]=V[0]+q.x*E,t.ctrlpts[1]=V[1]+q.y*E}if(B)this.findEndpoints(r)}};yr.storeAllpts=function(r){var e=r._private.rscratch;if(e.edgeType==="multibezier"||e.edgeType==="bezier"||e.edgeType==="self"||e.edgeType==="compound"){e.allpts=[],e.allpts.push(e.startX,e.startY);for(var t=0;t+1<e.ctrlpts.length;t+=2)if(e.allpts.push(e.ctrlpts[t],e.ctrlpts[t+1]),t+3<e.ctrlpts.length)e.allpts.push((e.ctrlpts[t]+e.ctrlpts[t+2])/2,(e.ctrlpts[t+1]+e.ctrlpts[t+3])/2);e.allpts.push(e.endX,e.endY);var a,n;if(e.ctrlpts.length/2%2===0)a=e.allpts.length/2-1,e.midX=e.allpts[a],e.midY=e.allpts[a+1];else a=e.allpts.length/2-3,n=0.5,e.midX=sr(e.allpts[a],e.allpts[a+2],e.allpts[a+4],n),e.midY=sr(e.allpts[a+1],e.allpts[a+3],e.allpts[a+5],n)}else if(e.edgeType==="straight")e.allpts=[e.startX,e.startY,e.endX,e.endY],e.midX=(e.startX+e.endX+e.arrowStartX+e.arrowEndX)/4,e.midY=(e.startY+e.endY+e.arrowStartY+e.arrowEndY)/4;else if(e.edgeType==="segments"){if(e.allpts=[],e.allpts.push(e.startX,e.startY),e.allpts.push.apply(e.allpts,e.segpts),e.allpts.push(e.endX,e.endY),e.isRound){e.roundCorners=[];for(var i=2;i+3<e.allpts.length;i+=2){var s=e.radii[i/2-1],o=e.isArcRadius[i/2-1];e.roundCorners.push(yo({x:e.allpts[i-2],y:e.allpts[i-1]},{x:e.allpts[i],y:e.allpts[i+1],radius:s},{x:e.allpts[i+2],y:e.allpts[i+3]},s,o))}}if(e.segpts.length%4===0){var u=e.segpts.length/2,l=u-2;e.midX=(e.segpts[l]+e.segpts[u])/2,e.midY=(e.segpts[l+1]+e.segpts[u+1])/2}else{var v=e.segpts.length/2-1;if(!e.isRound)e.midX=e.segpts[v],e.midY=e.segpts[v+1];else{var f={x:e.segpts[v],y:e.segpts[v+1]},c=e.roundCorners[v/2];if(c.radius===0){var h={x:e.segpts[v+2],y:e.segpts[v+3]};e.midX=f.x,e.midY=f.y,e.midVector=[f.y-h.y,h.x-f.x]}else{var d=[f.x-c.cx,f.y-c.cy],y=c.radius/Math.sqrt(Math.pow(d[0],2)+Math.pow(d[1],2));d=d.map(function(g){return g*y}),e.midX=c.cx+d[0],e.midY=c.cy+d[1],e.midVector=d}}}}};yr.checkForInvalidEdgeWarning=function(r){var e=r[0]._private.rscratch;if(e.nodesOverlap||ne(e.startX)&&ne(e.startY)&&ne(e.endX)&&ne(e.endY))e.loggedErr=!1;else if(!e.loggedErr)e.loggedErr=!0,Ve("Edge `"+r.id()+"` has invalid endpoints and so it is impossible to draw. Adjust your edge style (e.g. control points) accordingly or use an alternative edge type. This is expected behaviour when the source node and the target node overlap.")};yr.findEdgeControlPoints=function(r){var e=this;if(!r||r.length===0)return;var t=this,a=t.cy,n=a.hasCompoundNodes(),i=new Yr,s=function(k,B){return[].concat(bn(k),[B?1:0]).join("-")},o=[],u=[];for(var l=0;l<r.length;l++){var v=r[l],f=v._private,c=v.pstyle("curve-style").value;if(v.removed()||!v.takesUpSpace())continue;if(c==="haystack"){u.push(v);continue}var h=c==="unbundled-bezier"||it(c,"segments")||c==="straight"||c==="straight-triangle"||it(c,"taxi"),d=c==="unbundled-bezier"||c==="bezier",{source:y,target:g}=f,p=y.poolIndex(),m=g.poolIndex(),b=[p,m].sort(),w=s(b,h),E=i.get(w);if(E==null)E={eles:[]},o.push({pairId:b,edgeIsUnbundled:h}),i.set(w,E);if(E.eles.push(v),h)E.hasUnbundled=!0;if(d)E.hasBezier=!0}var C=function(){var k=o[x],{pairId:B,edgeIsUnbundled:D}=k,P=s(B,D),A=i.get(P),R;if(!A.hasUnbundled){var L=A.eles[0].parallelEdges().filter(function(T){return T.isBundledBezier()});ro(A.eles),L.forEach(function(T){return A.eles.push(T)}),A.eles.sort(function(T,z){return T.poolIndex()-z.poolIndex()})}var I=A.eles[0],M=I.source(),O=I.target();if(M.poolIndex()>O.poolIndex()){var q=M;M=O,O=q}var _=A.srcPos=M.position(),N=A.tgtPos=O.position(),V=A.srcW=M.outerWidth(),Z=A.srcH=M.outerHeight(),j=A.tgtW=O.outerWidth(),Q=A.tgtH=O.outerHeight(),re=A.srcShape=t.nodeShapes[e.getNodeShape(M)],te=A.tgtShape=t.nodeShapes[e.getNodeShape(O)],ie=A.srcCornerRadius=M.pstyle("corner-radius").value==="auto"?"auto":M.pstyle("corner-radius").pfValue,Y=A.tgtCornerRadius=O.pstyle("corner-radius").value==="auto"?"auto":O.pstyle("corner-radius").pfValue,F=A.tgtRs=O._private.rscratch,H=A.srcRs=M._private.rscratch;A.dirCounts={north:0,west:0,south:0,east:0,northwest:0,southwest:0,northeast:0,southeast:0};for(var W=0;W<A.eles.length;W++){var K=A.eles[W],ae=K[0]._private.rscratch,ve=K.pstyle("curve-style").value,Be=ve==="unbundled-bezier"||it(ve,"segments")||it(ve,"taxi"),xe=!M.same(K.source());if(!A.calculatedIntersection&&M!==O&&(A.hasBezier||A.hasUnbundled)){A.calculatedIntersection=!0;var be=re.intersectLine(_.x,_.y,V,Z,N.x,N.y,0,ie,H),pe=A.srcIntn=be,oe=te.intersectLine(N.x,N.y,j,Q,_.x,_.y,0,Y,F),he=A.tgtIntn=oe,de=A.intersectionPts={x1:be[0],x2:oe[0],y1:be[1],y2:oe[1]},Ee=A.posPts={x1:_.x,x2:N.x,y1:_.y,y2:N.y},we=oe[1]-be[1],ke=oe[0]-be[0],Pe=Math.sqrt(ke*ke+we*we);if(ne(Pe)&&Pe>=ay);else Pe=Math.sqrt(Math.max(ke*ke,La)+Math.max(we*we,La));var ze=A.vector={x:ke,y:we},Oe=A.vectorNorm={x:ze.x/Pe,y:ze.y/Pe},Me={x:-Oe.y,y:Oe.x};A.nodesOverlap=!ne(Pe)||te.checkPoint(be[0],be[1],0,j,Q,N.x,N.y,Y,F)||re.checkPoint(oe[0],oe[1],0,V,Z,_.x,_.y,ie,H),A.vectorNormInverse=Me,R={nodesOverlap:A.nodesOverlap,dirCounts:A.dirCounts,calculatedIntersection:!0,hasBezier:A.hasBezier,hasUnbundled:A.hasUnbundled,eles:A.eles,srcPos:N,srcRs:F,tgtPos:_,tgtRs:H,srcW:j,srcH:Q,tgtW:V,tgtH:Z,srcIntn:he,tgtIntn:pe,srcShape:te,tgtShape:re,posPts:{x1:Ee.x2,y1:Ee.y2,x2:Ee.x1,y2:Ee.y1},intersectionPts:{x1:de.x2,y1:de.y2,x2:de.x1,y2:de.y1},vector:{x:-ze.x,y:-ze.y},vectorNorm:{x:-Oe.x,y:-Oe.y},vectorNormInverse:{x:-Me.x,y:-Me.y}}}var J=xe?R:A;if(ae.nodesOverlap=J.nodesOverlap,ae.srcIntn=J.srcIntn,ae.tgtIntn=J.tgtIntn,ae.isRound=ve.startsWith("round"),n&&(M.isParent()||M.isChild()||O.isParent()||O.isChild())&&(M.parents().anySame(O)||O.parents().anySame(M)||M.same(O)&&M.isParent()))e.findCompoundLoopPoints(K,J,W,Be);else if(M===O)e.findLoopPoints(K,J,W,Be);else if(ve.endsWith("segments"))e.findSegmentsPoints(K,J);else if(ve.endsWith("taxi"))e.findTaxiPoints(K,J);else if(ve==="straight"||!Be&&A.eles.length%2===1&&W===Math.floor(A.eles.length/2))e.findStraightEdgePoints(K);else e.findBezierPoints(K,J,W,Be,xe);e.findEndpoints(K),e.tryToCorrectInvalidPoints(K,J),e.checkForInvalidEdgeWarning(K),e.storeAllpts(K),e.storeEdgeProjections(K),e.calculateArrowAngles(K),e.recalculateEdgeLabelProjections(K),e.calculateLabelAngles(K)}};for(var x=0;x<o.length;x++)C();this.findHaystackPoints(u)};function mf(r){var e=[];if(r==null)return;for(var t=0;t<r.length;t+=2){var a=r[t],n=r[t+1];e.push({x:a,y:n})}return e}yr.getSegmentPoints=function(r){var e=r[0]._private.rscratch;this.recalculateRenderedStyle(r);var t=e.edgeType;if(t==="segments")return mf(e.segpts)};yr.getControlPoints=function(r){var e=r[0]._private.rscratch;this.recalculateRenderedStyle(r);var t=e.edgeType;if(t==="bezier"||t==="multibezier"||t==="self"||t==="compound")return mf(e.ctrlpts)};yr.getEdgeMidpoint=function(r){var e=r[0]._private.rscratch;return this.recalculateRenderedStyle(r),{x:e.midX,y:e.midY}};var Ha={};Ha.manualEndptToPx=function(r,e){var t=this,a=r.position(),n=r.outerWidth(),i=r.outerHeight(),s=r._private.rscratch;if(e.value.length===2){var o=[e.pfValue[0],e.pfValue[1]];if(e.units[0]==="%")o[0]=o[0]*n;if(e.units[1]==="%")o[1]=o[1]*i;return o[0]+=a.x,o[1]+=a.y,o}else{var u=e.pfValue[0];u=-Math.PI/2+u;var l=2*Math.max(n,i),v=[a.x+Math.cos(u)*l,a.y+Math.sin(u)*l];return t.nodeShapes[this.getNodeShape(r)].intersectLine(a.x,a.y,n,i,v[0],v[1],0,r.pstyle("corner-radius").value==="auto"?"auto":r.pstyle("corner-radius").pfValue,s)}};Ha.findEndpoints=function(r){var e,t,a,n,i=this,s,o=r.source()[0],u=r.target()[0],l=o.position(),v=u.position(),f=r.pstyle("target-arrow-shape").value,c=r.pstyle("source-arrow-shape").value,h=r.pstyle("target-distance-from-node").pfValue,d=r.pstyle("source-distance-from-node").pfValue,y=o._private.rscratch,g=u._private.rscratch,p=r.pstyle("curve-style").value,m=r._private.rscratch,b=m.edgeType,w=it(p,"taxi"),E=b==="self"||b==="compound",C=b==="bezier"||b==="multibezier"||E,x=b!=="bezier",S=b==="straight"||b==="segments",k=b==="segments",B=C||x||S,D=E||w,P=r.pstyle("source-endpoint"),A=D?"outside-to-node":P.value,R=o.pstyle("corner-radius").value==="auto"?"auto":o.pstyle("corner-radius").pfValue,L=r.pstyle("target-endpoint"),I=D?"outside-to-node":L.value,M=u.pstyle("corner-radius").value==="auto"?"auto":u.pstyle("corner-radius").pfValue;m.srcManEndpt=P,m.tgtManEndpt=L;var O,q,_,N,V=(e=(L===null||L===void 0||(t=L.pfValue)===null||t===void 0?void 0:t.length)===2?L.pfValue:null)!==null&&e!==void 0?e:[0,0],Z=(a=(P===null||P===void 0||(n=P.pfValue)===null||n===void 0?void 0:n.length)===2?P.pfValue:null)!==null&&a!==void 0?a:[0,0];if(C){var j=[m.ctrlpts[0],m.ctrlpts[1]],Q=x?[m.ctrlpts[m.ctrlpts.length-2],m.ctrlpts[m.ctrlpts.length-1]]:j;O=Q,q=j}else if(S){var re=!k?[v.x+V[0],v.y+V[1]]:m.segpts.slice(0,2),te=!k?[l.x+Z[0],l.y+Z[1]]:m.segpts.slice(m.segpts.length-2);O=te,q=re}if(I==="inside-to-node")s=[v.x,v.y];else if(L.units)s=this.manualEndptToPx(u,L);else if(I==="outside-to-line")s=m.tgtIntn;else{if(I==="outside-to-node"||I==="outside-to-node-or-label")_=O;else if(I==="outside-to-line"||I==="outside-to-line-or-label")_=[l.x,l.y];if(s=i.nodeShapes[this.getNodeShape(u)].intersectLine(v.x,v.y,u.outerWidth(),u.outerHeight(),_[0],_[1],0,M,g),I==="outside-to-node-or-label"||I==="outside-to-line-or-label"){var ie=u._private.rscratch,{labelWidth:Y,labelHeight:F,labelX:H,labelY:W}=ie,K=Y/2,ae=F/2,ve=u.pstyle("text-valign").value;if(ve=ra(ve),ve==="top")W-=ae;else if(ve==="bottom")W+=ae;var Be=u.pstyle("text-halign").value;if(Be=ea(Be),Be==="left")H-=K;else if(Be==="right")H+=K;var xe=Ba(_[0],_[1],[H-K,W-ae,H+K,W-ae,H+K,W+ae,H-K,W+ae],v.x,v.y);if(xe.length>0){var be=l,pe=Tt(be,Wt(s)),oe=Tt(be,Wt(xe)),he=pe;if(oe<pe)s=xe,he=oe;if(xe.length>2){var de=Tt(be,{x:xe[2],y:xe[3]});if(de<he)s=[xe[2],xe[3]]}}}}var Ee=Qa(s,O,i.arrowShapes[f].spacing(r)+h),we=Qa(s,O,i.arrowShapes[f].gap(r)+h);if(m.endX=we[0],m.endY=we[1],m.arrowEndX=Ee[0],m.arrowEndY=Ee[1],A==="inside-to-node")s=[l.x,l.y];else if(P.units)s=this.manualEndptToPx(o,P);else if(A==="outside-to-line")s=m.srcIntn;else{if(A==="outside-to-node"||A==="outside-to-node-or-label")N=q;else if(A==="outside-to-line"||A==="outside-to-line-or-label")N=[v.x,v.y];if(s=i.nodeShapes[this.getNodeShape(o)].intersectLine(l.x,l.y,o.outerWidth(),o.outerHeight(),N[0],N[1],0,R,y),A==="outside-to-node-or-label"||A==="outside-to-line-or-label"){var ke=o._private.rscratch,{labelWidth:Pe,labelHeight:ze,labelX:Oe,labelY:Me}=ke,J=Pe/2,T=ze/2,z=o.pstyle("text-valign").value;if(z=ra(z),z==="top")Me-=T;else if(z==="bottom")Me+=T;var G=o.pstyle("text-halign").value;if(G=ea(G),G==="left")Oe-=J;else if(G==="right")Oe+=J;var U=Ba(N[0],N[1],[Oe-J,Me-T,Oe+J,Me-T,Oe+J,Me+T,Oe-J,Me+T],l.x,l.y);if(U.length>0){var X=v,fe=Tt(X,Wt(s)),ee=Tt(X,Wt(U)),se=fe;if(ee<fe)s=[U[0],U[1]],se=ee;if(U.length>2){var ue=Tt(X,{x:U[2],y:U[3]});if(ue<se)s=[U[2],U[3]]}}}}var ye=Qa(s,q,i.arrowShapes[c].spacing(r)+d),Ce=Qa(s,q,i.arrowShapes[c].gap(r)+d);if(m.startX=Ce[0],m.startY=Ce[1],m.arrowStartX=ye[0],m.arrowStartY=ye[1],B)if(!ne(m.startX)||!ne(m.startY)||!ne(m.endX)||!ne(m.endY))m.badLine=!0;else m.badLine=!1};Ha.getSourceEndpoint=function(r){var e=r[0]._private.rscratch;switch(this.recalculateRenderedStyle(r),e.edgeType){case"haystack":return{x:e.haystackPts[0],y:e.haystackPts[1]};default:return{x:e.arrowStartX,y:e.arrowStartY}}};Ha.getTargetEndpoint=function(r){var e=r[0]._private.rscratch;switch(this.recalculateRenderedStyle(r),e.edgeType){case"haystack":return{x:e.haystackPts[2],y:e.haystackPts[3]};default:return{x:e.arrowEndX,y:e.arrowEndY}}};var mo={};function ny(r,e,t){var a=function(l,v,f,c){return sr(l,v,f,c)},n=e._private,i=n.rstyle.bezierPts;for(var s=0;s<r.bezierProjPcts.length;s++){var o=r.bezierProjPcts[s];i.push({x:a(t[0],t[2],t[4],o),y:a(t[1],t[3],t[5],o)})}}mo.storeEdgeProjections=function(r){var e=r._private,t=e.rscratch,a=t.edgeType;if(e.rstyle.bezierPts=null,e.rstyle.linePts=null,e.rstyle.haystackPts=null,a==="multibezier"||a==="bezier"||a==="self"||a==="compound"){e.rstyle.bezierPts=[];for(var n=0;n+5<t.allpts.length;n+=4)ny(this,r,t.allpts.slice(n,n+6))}else if(a==="segments"){var i=e.rstyle.linePts=[];for(var n=0;n+1<t.allpts.length;n+=2)i.push({x:t.allpts[n],y:t.allpts[n+1]})}else if(a==="haystack"){var s=t.haystackPts;e.rstyle.haystackPts=[{x:s[0],y:s[1]},{x:s[2],y:s[3]}]}e.rstyle.arrowWidth=this.getArrowWidth(r.pstyle("width").pfValue,r.pstyle("arrow-scale").value)*this.arrowShapeWidth};mo.recalculateEdgeProjections=function(r){this.findEdgeControlPoints(r)};var $r={};$r.recalculateNodeLabelProjection=function(r){var e=r.pstyle("label").strValue;if(vt(e))return;var t,a,n=r._private,i=r.width(),s=r.height(),o=r.padding(),u=r.position(),l=r.pstyle("text-halign").strValue,v=r.pstyle("text-valign").strValue,{rscratch:f,rstyle:c}=n;switch(l){case"left":t=u.x-i/2-o;break;case"left-inside":t=u.x-i/2+o;break;case"right":t=u.x+i/2+o;break;case"right-inside":t=u.x+i/2-o;break;default:t=u.x}switch(v){case"top":a=u.y-s/2-o;break;case"top-inside":a=u.y-s/2+o;break;case"bottom":a=u.y+s/2+o;break;case"bottom-inside":a=u.y+s/2-o;break;default:a=u.y}f.labelX=t,f.labelY=a,c.labelX=t,c.labelY=a,this.calculateLabelAngles(r),this.applyLabelDimensions(r)};var bf=function(e,t){var a=Math.atan(t/e);if(e===0&&a<0)a=a*-1;return a},wf=function(e,t){var a=t.x-e.x,n=t.y-e.y;return bf(a,n)},iy=function(e,t,a,n){var i=Da(0,n-0.001,1),s=Da(0,n+0.001,1),o=Kt(e,t,a,i),u=Kt(e,t,a,s);return wf(o,u)};$r.recalculateEdgeLabelProjections=function(r){var e,t=r._private,a=t.rscratch,n=this,i={mid:r.pstyle("label").strValue,source:r.pstyle("source-label").strValue,target:r.pstyle("target-label").strValue};if(i.mid||i.source||i.target);else return;e={x:a.midX,y:a.midY};var s=function(f,c,h){Gr(t.rscratch,f,c,h),Gr(t.rstyle,f,c,h)};s("labelX",null,e.x),s("labelY",null,e.y);var o=bf(a.midDispX,a.midDispY);s("labelAutoAngle",null,o);var u=function(){if(u.cache)return u.cache;var f=[];for(var c=0;c+5<a.allpts.length;c+=4){var h={x:a.allpts[c],y:a.allpts[c+1]},d={x:a.allpts[c+2],y:a.allpts[c+3]},y={x:a.allpts[c+4],y:a.allpts[c+5]};f.push({p0:h,p1:d,p2:y,startDist:0,length:0,segments:[]})}var g=t.rstyle.bezierPts,p=n.bezierProjPcts.length;function m(x,S,k,B,D){var P=At(S,k),A=x.segments[x.segments.length-1],R={p0:S,p1:k,t0:B,t1:D,startDist:A?A.startDist+A.length:0,length:P};x.segments.push(R),x.length+=P}for(var b=0;b<f.length;b++){var w=f[b],E=f[b-1];if(E)w.startDist=E.startDist+E.length;m(w,w.p0,g[b*p],0,n.bezierProjPcts[0]);for(var C=0;C<p-1;C++)m(w,g[b*p+C],g[b*p+C+1],n.bezierProjPcts[C],n.bezierProjPcts[C+1]);m(w,g[b*p+p-1],w.p2,n.bezierProjPcts[p-1],1)}return u.cache=f},l=function(f){var c,h=f==="source";if(!i[f])return;var d=r.pstyle(f+"-text-offset").pfValue;switch(a.edgeType){case"self":case"compound":case"bezier":case"multibezier":{var y=u(),g,p=0,m=0;for(var b=0;b<y.length;b++){var w=y[h?b:y.length-1-b];for(var E=0;E<w.segments.length;E++){var C=w.segments[h?E:w.segments.length-1-E],x=b===y.length-1&&E===w.segments.length-1;if(p=m,m+=C.length,m>=d||x){g={cp:w,segment:C};break}}if(g)break}var S=g.cp,k=g.segment,B=(d-p)/k.length,D=k.t1-k.t0,P=h?k.t0+D*B:k.t1-D*B;P=Da(0,P,1),e=Kt(S.p0,S.p1,S.p2,P),c=iy(S.p0,S.p1,S.p2,P);break}case"straight":case"segments":case"haystack":{var A=0,R,L,I,M,O=a.allpts.length;for(var q=0;q+3<O;q+=2){if(h)I={x:a.allpts[q],y:a.allpts[q+1]},M={x:a.allpts[q+2],y:a.allpts[q+3]};else I={x:a.allpts[O-2-q],y:a.allpts[O-1-q]},M={x:a.allpts[O-4-q],y:a.allpts[O-3-q]};if(R=At(I,M),L=A,A+=R,A>=d)break}var _=d-L,N=_/R;N=Da(0,N,1),e=kd(I,M,N),c=wf(I,M);break}}s("labelX",f,e.x),s("labelY",f,e.y),s("labelAutoAngle",f,c)};l("source"),l("target"),this.applyLabelDimensions(r)};$r.applyLabelDimensions=function(r){if(this.applyPrefixedLabelDimensions(r),r.isEdge())this.applyPrefixedLabelDimensions(r,"source"),this.applyPrefixedLabelDimensions(r,"target")};$r.applyPrefixedLabelDimensions=function(r,e){var t=r._private,a=this.getLabelText(r,e),n=Pt(a,r._private.labelDimsKey);if(br(t.rscratch,"prefixedLabelDimsKey",e)===n)return;Gr(t.rscratch,"prefixedLabelDimsKey",e,n);var i=this.calculateLabelDimensions(r,a),s=r.pstyle("line-height").pfValue,o=r.pstyle("font-size").pfValue,u=r.pstyle("text-wrap").strValue,l=br(t.rscratch,"labelWrapCachedLines",e)||[],v=u!=="wrap"?1:Math.max(l.length,1),f=o*s,c=i.width,h=i.height+(v-1)*(s-1)*o;Gr(t.rstyle,"labelWidth",e,c),Gr(t.rscratch,"labelWidth",e,c),Gr(t.rstyle,"labelHeight",e,h),Gr(t.rscratch,"labelHeight",e,h),Gr(t.rscratch,"labelLineHeight",e,f),Gr(t.rscratch,"labelActualDescent",e,i.labelActualDescent)};$r.getLabelText=function(r,e){var t=r._private,a=e?e+"-":"",n=r.pstyle(a+"label").strValue,i=r.pstyle("text-transform").value,s=function(Z,j){if(j)return Gr(t.rscratch,Z,e,j),j;else return br(t.rscratch,Z,e)};if(!n)return"";if(i=="none");else if(i=="uppercase")n=n.toUpperCase();else if(i=="lowercase")n=n.toLowerCase();var o=r.pstyle("text-wrap").value;if(o==="wrap"){var u=s("labelKey");if(u!=null&&s("labelWrapKey")===u)return s("labelWrapCachedText");var l="​",v=n.split(`
15
+ `),f=r.pstyle("text-max-width").pfValue,c=r.pstyle("text-overflow-wrap").value,h=c==="anywhere",d=[],y=/[\s\u200b]+|$/g;for(var g=0;g<v.length;g++){var p=v[g],m=this.calculateLabelDimensions(r,p),b=m.width;if(h){var w=p.split("").join(l);p=w}if(b>f){var E=p.matchAll(y),C="",x=0,S=Sr(E),k;try{for(S.s();!(k=S.n()).done;){var B=k.value,D=B[0],P=p.substring(x,B.index);x=B.index+D.length;var A=C.length===0?P:C+P+D,R=this.calculateLabelDimensions(r,A),L=R.width;if(L<=f)C+=P+D;else{if(C)d.push(C);C=P+D}}}catch(V){S.e(V)}finally{S.f()}if(!C.match(/^[\s\u200b]+$/))d.push(C)}else d.push(p)}s("labelWrapCachedLines",d),n=s("labelWrapCachedText",d.join(`
16
+ `)),s("labelWrapKey",u)}else if(o==="ellipsis"){var I=r.pstyle("text-max-width").pfValue,M="",O="…",q=!1;if(this.calculateLabelDimensions(r,n).width<I)return n;for(var _=0;_<n.length;_++){var N=this.calculateLabelDimensions(r,M+n[_]+O).width;if(N>I)break;if(M+=n[_],_===n.length-1)q=!0}if(!q)M+=O;return M}return n};$r.getLabelJustification=function(r){var e=r.pstyle("text-justification").strValue,t=r.pstyle("text-halign").strValue;if(e==="auto")if(r.isNode())return Ug(t);else return"center";else return e};$r.calculateLabelDimensions=function(r,e){var t=this,a=t.cy.window(),n=a.document,i=0,s=r.pstyle("font-style").strValue,o=r.pstyle("font-size").pfValue,u=r.pstyle("font-family").strValue,l=r.pstyle("font-weight").strValue,v=r.pstyle("text-metrics").strValue||"font",f=this.labelCalcCanvas,c=this.labelCalcCanvasContext;if(!f){f=this.labelCalcCanvas=n.createElement("canvas"),c=this.labelCalcCanvasContext=f.getContext("2d");var h=f.style;h.position="absolute",h.left="-9999px",h.top="-9999px",h.zIndex="-1",h.visibility="hidden",h.pointerEvents="none"}c.font="".concat(s," ").concat(l," ").concat(o,"px ").concat(u);var d=0,y=0,g=e.split(`
17
+ `),p=g.length,m=0,b=0;for(var w=0;w<p;w++){var E=g[w],C=c.measureText(E),x=Math.ceil(C.width),S=o;if(v==="glyph"){if(w===0)b=C.actualBoundingBoxAscent;if(w===p-1)m=C.actualBoundingBoxDescent}d=Math.max(x,d),y+=S}if(v==="glyph")y-=o-b-m;return d+=i,y+=i,{width:d,height:y,labelActualAscent:b,labelActualDescent:m}};$r.calculateLabelAngle=function(r,e){var t=r._private,a=t.rscratch,n=r.isEdge(),i=e?e+"-":"",s=r.pstyle(i+"text-rotation"),o=s.strValue;if(o==="none")return 0;else if(n&&o==="autorotate")return a.labelAutoAngle;else if(o==="autorotate")return 0;else return s.pfValue};$r.calculateLabelAngles=function(r){var e=this,t=r.isEdge(),a=r._private,n=a.rscratch;if(n.labelAngle=e.calculateLabelAngle(r),t)n.sourceLabelAngle=e.calculateLabelAngle(r,"source"),n.targetLabelAngle=e.calculateLabelAngle(r,"target")};var xf={},Il=28,Ol=!1;xf.getNodeShape=function(r){var e=this,t=r.pstyle("shape").value;if(t==="cutrectangle"&&(r.width()<Il||r.height()<Il)){if(!Ol)Ve("The `cutrectangle` node shape can not be used at small sizes so `rectangle` is used instead"),Ol=!0;return"rectangle"}if(r.isParent())if(t==="rectangle"||t==="roundrectangle"||t==="round-rectangle"||t==="cutrectangle"||t==="cut-rectangle"||t==="barrel")return t;else return"rectangle";if(t==="polygon"){var a=r.pstyle("shape-polygon-points").value;return e.nodeShapes.makePolygon(a).name}return t};var Yn={};Yn.registerCalculationListeners=function(){var r=this.cy,e=r.collection(),t=this,a=function(s){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(e.merge(s),o)for(var u=0;u<s.length;u++){var l=s[u],v=l._private,f=v.rstyle;f.clean=!1,f.cleanConnected=!1}};t.binder(r).on("bounds.* dirty.*",function(s){var o=s.target;a(o)}).on("style.* background.*",function(s){var o=s.target;a(o,!1)});var n=function(s){if(s){var o=t.onUpdateEleCalcsFns;e.cleanStyle();for(var u=0;u<e.length;u++){var l=e[u],v=l._private.rstyle;if(l.isNode()&&!v.cleanConnected)a(l.connectedEdges()),v.cleanConnected=!0}if(o)for(var f=0;f<o.length;f++){var c=o[f];c(s,e)}t.recalculateRenderedStyle(e),e=r.collection()}};t.flushRenderedStyleQueue=function(){n(!0)},t.beforeRender(n,t.beforeRenderPriorities.eleCalcs)};Yn.onUpdateEleCalcs=function(r){var e=this.onUpdateEleCalcsFns=this.onUpdateEleCalcsFns||[];e.push(r)};Yn.recalculateRenderedStyle=function(r,e){var t=function(w){return w._private.rstyle.cleanConnected};if(r.length===0)return;var a=[],n=[];if(this.destroyed)return;if(e===void 0)e=!0;for(var i=0;i<r.length;i++){var s=r[i],o=s._private,u=o.rstyle;if(s.isEdge()&&(!t(s.source())||!t(s.target())))u.clean=!1;if(s.isEdge()&&s.isBundledBezier()){if(s.parallelEdges().some(function(b){return!b._private.rstyle.clean&&b.isBundledBezier()}))u.clean=!1}if(e&&u.clean||s.removed())continue;if(s.pstyle("display").value==="none")continue;if(o.group==="nodes")n.push(s);else a.push(s);u.clean=!0}for(var l=0;l<n.length;l++){var v=n[l],f=v._private,c=f.rstyle,h=v.position();this.recalculateNodeLabelProjection(v),c.nodeX=h.x,c.nodeY=h.y,c.nodeW=v.pstyle("width").pfValue,c.nodeH=v.pstyle("height").pfValue}this.recalculateEdgeProjections(a);for(var d=0;d<a.length;d++){var y=a[d],g=y._private,{rstyle:p,rscratch:m}=g;p.srcX=m.arrowStartX,p.srcY=m.arrowStartY,p.tgtX=m.arrowEndX,p.tgtY=m.arrowEndY,p.midX=m.midX,p.midY=m.midY,p.labelAngle=m.labelAngle,p.sourceLabelAngle=m.sourceLabelAngle,p.targetLabelAngle=m.targetLabelAngle}};var Zn={};Zn.updateCachedGrabbedEles=function(){var r=this.cachedZSortedEles;if(!r)return;r.drag=[],r.nondrag=[];var e=[];for(var t=0;t<r.length;t++){var a=r[t],n=a._private.rscratch;if(a.grabbed()&&!a.isParent())e.push(a);else if(n.inDragLayer)r.drag.push(a);else r.nondrag.push(a)}for(var t=0;t<e.length;t++){var a=e[t];r.drag.push(a)}};Zn.invalidateCachedZSortedEles=function(){this.cachedZSortedEles=null};Zn.getCachedZSortedEles=function(r){if(r||!this.cachedZSortedEles){var e=this.cy.mutableElements().toArray();e.sort(rf),e.interactive=e.filter(function(t){return t.interactive()}),this.cachedZSortedEles=e,this.updateCachedGrabbedEles()}else e=this.cachedZSortedEles;return e};var Ef={};[It,Pn,yr,Ha,mo,$r,xf,Yn,Zn].forEach(function(r){me(Ef,r)});var Cf={};Cf.getCachedImage=function(r,e,t){var a=this,n=a.imageCache=a.imageCache||{},i=n[r];if(i){if(!i.image.complete)i.image.addEventListener("load",t);return i.image}else{i=n[r]=n[r]||{};var s=i.image=new Image;s.addEventListener("load",t),s.addEventListener("error",function(){s.error=!0});var o="data:",u=r.substring(0,o.length).toLowerCase()===o;if(!u)e=e==="null"?null:e,s.crossOrigin=e;return s.src=r,s}};var Tf=function(e,t){var a=e[0];if(!a||a._private.grabbed===t)return;a._private.grabbed=t,e.updateStyle(!1)},sy=function(e){Tf(e,!0)},oy=function(e){Tf(e,!1)},sa={};sa.registerBinding=function(r,e,t,a){var n=Array.prototype.slice.apply(arguments,[1]);if(Array.isArray(r)){var i=[];for(var s=0;s<r.length;s++){var o=r[s];if(o!==void 0){var u=this.binder(o);i.push(u.on.apply(u,n))}}return i}var u=this.binder(r);return u.on.apply(u,n)};sa.binder=function(r){var e=this,t=e.cy.window(),a=r===t||r===t.document||r===t.document.body||pc(r);if(e.supportsPassiveEvents==null){var n=!1;try{var i=Object.defineProperty({},"passive",{get:function(){return n=!0,!0}});t.addEventListener("test",null,i)}catch(o){}e.supportsPassiveEvents=n}var s=function(u,l,v){var f=Array.prototype.slice.call(arguments);if(a&&e.supportsPassiveEvents)f[2]={capture:v!=null?v:!1,passive:!1,once:!1};return e.bindings.push({target:r,args:f}),(r.addEventListener||r.on).apply(r,f),this};return{on:s,addEventListener:s,addListener:s,bind:s}};sa.nodeIsDraggable=function(r){return r&&r.isNode()&&!r.locked()&&r.grabbable()};sa.nodeIsGrabbable=function(r){return this.nodeIsDraggable(r)&&r.interactive()};sa.load=function(){var r=this,e=r.cy.window(),t=function(T){return T.selected()},a=function(T){var z=T.getRootNode();if(z&&z.nodeType===11&&z.host!==void 0)return z},n=function(T,z,G,U){if(T==null)T=r.cy;for(var X=0;X<z.length;X++){var fe=z[X];T.emit({originalEvent:G,type:fe,position:U})}},i=function(T){return T.shiftKey||T.metaKey||T.ctrlKey},s=function(T,z){var G=!0;if(r.cy.hasCompoundNodes()&&T&&T.pannable())for(var U=0;z&&U<z.length;U++){var T=z[U];if(T.isNode()&&T.isParent()&&!T.pannable()){G=!1;break}}else G=!0;return G},o=function(T){T[0]._private.rscratch.inDragLayer=!0},u=function(T){T[0]._private.rscratch.inDragLayer=!1},l=function(T){T[0]._private.rscratch.isGrabTarget=!0},v=function(T){T[0]._private.rscratch.isGrabTarget=!1},f=function(T,z){var G=z.addToList,U=G.has(T);if(!U&&T.grabbable()&&!T.locked())G.merge(T),sy(T)},c=function(T,z){if(!T.cy().hasCompoundNodes())return;if(z.inDragLayer==null&&z.addToList==null)return;var G=T.descendants();if(z.inDragLayer)G.forEach(o),G.connectedEdges().forEach(o);if(z.addToList)f(G,z)},h=function(T,z){z=z||{};var G=T.cy().hasCompoundNodes();if(z.inDragLayer)T.forEach(o),T.neighborhood().stdFilter(function(U){return!G||U.isEdge()}).forEach(o);if(z.addToList)T.forEach(function(U){f(U,z)});c(T,z),g(T,{inDragLayer:z.inDragLayer}),r.updateCachedGrabbedEles()},d=h,y=function(T){if(!T)return;r.getCachedZSortedEles().forEach(function(z){oy(z),u(z),v(z)}),r.updateCachedGrabbedEles()},g=function(T,z){if(z.inDragLayer==null&&z.addToList==null)return;if(!T.cy().hasCompoundNodes())return;var G=T.ancestors().orphans();if(G.same(T))return;var U=G.descendants().spawnSelf().merge(G).unmerge(T).unmerge(T.descendants()),X=U.connectedEdges();if(z.inDragLayer)X.forEach(o),U.forEach(o);if(z.addToList)U.forEach(function(fe){f(fe,z)})},p=function(){if(document.activeElement!=null&&document.activeElement.blur!=null)document.activeElement.blur()},m=typeof MutationObserver<"u",b=typeof ResizeObserver<"u";if(m){if(r.removeObserver=new MutationObserver(function(J){for(var T=0;T<J.length;T++){var z=J[T],G=z.removedNodes;if(G)for(var U=0;U<G.length;U++){var X=G[U];if(X===r.container){r.destroy();break}}}}),r.container.parentNode)r.removeObserver.observe(r.container.parentNode,{childList:!0})}else r.registerBinding(r.container,"DOMNodeRemoved",function(J){r.destroy()});var w=Va(function(){r.cy.resize()},100);if(m)r.styleObserver=new MutationObserver(w),r.styleObserver.observe(r.container,{attributes:!0});if(r.registerBinding(e,"resize",w),b)r.resizeObserver=new ResizeObserver(w),r.resizeObserver.observe(r.container);var E=function(T,z){while(T!=null)z(T),T=T.parentNode},C=function(){r.invalidateContainerClientCoordsCache()};E(r.container,function(J){r.registerBinding(J,"transitionend",C),r.registerBinding(J,"animationend",C),r.registerBinding(J,"scroll",C)}),r.registerBinding(r.container,"contextmenu",function(J){J.preventDefault()});var x=function(){return r.selection[4]!==0},S=function(T){var z=r.findContainerClientCoords(),G=z[0],U=z[1],X=z[2],fe=z[3],ee=T.touches?T.touches:[T],se=!1;for(var ue=0;ue<ee.length;ue++){var ye=ee[ue];if(G<=ye.clientX&&ye.clientX<=G+X&&U<=ye.clientY&&ye.clientY<=U+fe){se=!0;break}}if(!se)return!1;var Ce=r.container,Te=T.target,ce=Te.parentNode,De=!1;while(ce){if(ce===Ce){De=!0;break}ce=ce.parentNode}if(!De)return!1;return!0};r.registerBinding(r.container,"mousedown",function(T){if(!S(T))return;if(r.hoverData.which===1&&T.which!==1)return;T.preventDefault(),p(),r.hoverData.capture=!0,r.hoverData.which=T.which;var z=r.cy,G=[T.clientX,T.clientY],U=r.projectIntoViewport(G[0],G[1]),X=r.selection,fe=r.findNearestElements(U[0],U[1],!0,!1),ee=fe[0],se=r.dragData.possibleDragElements;r.hoverData.mdownPos=U,r.hoverData.mdownGPos=G;var ue=function(Ae){return{originalEvent:T,type:Ae,position:{x:U[0],y:U[1]}}},ye=function(){r.hoverData.tapholdCancelled=!1,clearTimeout(r.hoverData.tapholdTimeout),r.hoverData.tapholdTimeout=setTimeout(function(){if(r.hoverData.tapholdCancelled)return;else{var Ae=r.hoverData.down;if(Ae)Ae.emit(ue("taphold"));else z.emit(ue("taphold"))}},r.tapholdDuration)};if(T.which==3){r.hoverData.cxtStarted=!0;var Ce={originalEvent:T,type:"cxttapstart",position:{x:U[0],y:U[1]}};if(ee)ee.activate(),ee.emit(Ce),r.hoverData.down=ee;else z.emit(Ce);r.hoverData.downTime=new Date().getTime(),r.hoverData.cxtDragged=!1}else if(T.which==1){if(ee)ee.activate();{if(ee!=null){if(r.nodeIsGrabbable(ee)){var Te=function(Ae){Ae.emit(ue("grab"))};if(l(ee),!ee.selected())se=r.dragData.possibleDragElements=z.collection(),d(ee,{addToList:se}),ee.emit(ue("grabon")).emit(ue("grab"));else{se=r.dragData.possibleDragElements=z.collection();var ce=z.$(function(De){return De.isNode()&&De.selected()&&r.nodeIsGrabbable(De)});h(ce,{addToList:se}),ee.emit(ue("grabon")),ce.forEach(Te)}r.redrawHint("eles",!0),r.redrawHint("drag",!0)}}r.hoverData.down=ee,r.hoverData.downs=fe,r.hoverData.downTime=new Date().getTime()}if(n(ee,["mousedown","tapstart","vmousedown"],T,{x:U[0],y:U[1]}),ee==null)X[4]=1,r.data.bgActivePosistion={x:U[0],y:U[1]},r.redrawHint("select",!0),r.redraw();else if(ee.pannable())X[4]=1;ye()}X[0]=X[2]=U[0],X[1]=X[3]=U[1]},!1);var k=a(r.container);r.registerBinding([e,k],"mousemove",function(T){var z=r.hoverData.capture;if(!z&&!S(T))return;var G=!1,U=r.cy,X=U.zoom(),fe=[T.clientX,T.clientY],ee=r.projectIntoViewport(fe[0],fe[1]),se=r.hoverData.mdownPos,ue=r.hoverData.mdownGPos,ye=r.selection,Ce=null;if(!r.hoverData.draggingEles&&!r.hoverData.dragging&&!r.hoverData.selecting)Ce=r.findNearestElement(ee[0],ee[1],!0,!1);var Te=r.hoverData.last,ce=r.hoverData.down,De=[ee[0]-ye[2],ee[1]-ye[3]],Ae=r.dragData.possibleDragElements,ir;if(ue){var Xe=fe[0]-ue[0],Rr=Xe*Xe,Ye=fe[1]-ue[1],Qe=Ye*Ye,er=Rr+Qe;r.hoverData.isOverThresholdDrag=ir=er>=r.desktopTapThreshold2}var lr=i(T);if(ir)r.hoverData.tapholdCancelled=!0;var Fr=function(){var Dr=r.hoverData.dragDelta=r.hoverData.dragDelta||[];if(Dr.length===0)Dr.push(De[0]),Dr.push(De[1]);else Dr[0]+=De[0],Dr[1]+=De[1]};G=!0,n(Ce,["mousemove","vmousemove","tapdrag"],T,{x:ee[0],y:ee[1]});var Ue=function(Dr){return{originalEvent:T,type:Dr,position:{x:ee[0],y:ee[1]}}},Kr=function(){if(r.data.bgActivePosistion=void 0,!r.hoverData.selecting)U.emit(Ue("boxstart"));ye[4]=1,r.hoverData.selecting=!0,r.redrawHint("select",!0),r.redraw()};if(r.hoverData.which===3){if(ir){var Mr=Ue("cxtdrag");if(ce)ce.emit(Mr);else U.emit(Mr);if(r.hoverData.cxtDragged=!0,!r.hoverData.cxtOver||Ce!==r.hoverData.cxtOver){if(r.hoverData.cxtOver)r.hoverData.cxtOver.emit(Ue("cxtdragout"));if(r.hoverData.cxtOver=Ce,Ce)Ce.emit(Ue("cxtdragover"))}}}else if(r.hoverData.dragging){if(G=!0,U.panningEnabled()&&U.userPanningEnabled()){var et;if(r.hoverData.justStartedPan){var Ua=r.hoverData.mdownPos;et={x:(ee[0]-Ua[0])*X,y:(ee[1]-Ua[1])*X},r.hoverData.justStartedPan=!1}else et={x:De[0]*X,y:De[1]*X};U.panBy(et),U.emit(Ue("dragpan")),r.hoverData.dragged=!0}ee=r.projectIntoViewport(T.clientX,T.clientY)}else if(ye[4]==1&&(ce==null||ce.pannable())){if(ir){if(!r.hoverData.dragging&&U.boxSelectionEnabled()&&(lr||!U.panningEnabled()||!U.userPanningEnabled()))Kr();else if(!r.hoverData.selecting&&U.panningEnabled()&&U.userPanningEnabled()){var xt=s(ce,r.hoverData.downs);if(xt)r.hoverData.dragging=!0,r.hoverData.justStartedPan=!0,ye[4]=0,r.data.bgActivePosistion=Wt(se),r.redrawHint("select",!0),r.redraw()}if(ce&&ce.pannable()&&ce.active())ce.unactivate()}}else{if(ce&&ce.pannable()&&ce.active())ce.unactivate();if((!ce||!ce.grabbed())&&Ce!=Te){if(Te)n(Te,["mouseout","tapdragout"],T,{x:ee[0],y:ee[1]});if(Ce)n(Ce,["mouseover","tapdragover"],T,{x:ee[0],y:ee[1]});r.hoverData.last=Ce}if(ce)if(ir){if(U.boxSelectionEnabled()&&lr){if(ce&&ce.grabbed()){if(y(Ae),ce.emit(Ue("freeon")),Ae.emit(Ue("free")),r.dragData.didDrag)ce.emit(Ue("dragfreeon")),Ae.emit(Ue("dragfree"))}Kr()}else if(ce&&ce.grabbed()&&r.nodeIsDraggable(ce)){var Er=!r.dragData.didDrag;if(Er)r.redrawHint("eles",!0);if(r.dragData.didDrag=!0,!r.hoverData.draggingEles)h(Ae,{inDragLayer:!0});var hr={x:0,y:0};if(ne(De[0])&&ne(De[1])){if(hr.x+=De[0],hr.y+=De[1],Er){var Cr=r.hoverData.dragDelta;if(Cr&&ne(Cr[0])&&ne(Cr[1]))hr.x+=Cr[0],hr.y+=Cr[1]}}r.hoverData.draggingEles=!0,Ae.silentShift(hr).emit(Ue("position")).emit(Ue("drag")),r.redrawHint("drag",!0),r.redraw()}}else Fr();G=!0}if(ye[2]=ee[0],ye[3]=ee[1],G){if(T.stopPropagation)T.stopPropagation();if(T.preventDefault)T.preventDefault();return!1}},!1);var B,D,P;r.registerBinding(e,"mouseup",function(T){if(r.hoverData.which===1&&T.which!==1&&r.hoverData.capture)return;var z=r.hoverData.capture;if(!z)return;r.hoverData.capture=!1;var G=r.cy,U=r.projectIntoViewport(T.clientX,T.clientY),X=r.selection,fe=r.findNearestElement(U[0],U[1],!0,!1),ee=r.dragData.possibleDragElements,se=r.hoverData.down,ue=i(T);if(r.data.bgActivePosistion)r.redrawHint("select",!0),r.redraw();if(r.hoverData.tapholdCancelled=!0,r.data.bgActivePosistion=void 0,se)se.unactivate();var ye=function(Xe){return{originalEvent:T,type:Xe,position:{x:U[0],y:U[1]}}};if(r.hoverData.which===3){var Ce=ye("cxttapend");if(se)se.emit(Ce);else G.emit(Ce);if(!r.hoverData.cxtDragged){var Te=ye("cxttap");if(se)se.emit(Te);else G.emit(Te)}r.hoverData.cxtDragged=!1,r.hoverData.which=null}else if(r.hoverData.which===1){if(n(fe,["mouseup","tapend","vmouseup"],T,{x:U[0],y:U[1]}),!r.dragData.didDrag&&!r.hoverData.dragged&&!r.hoverData.selecting&&!r.hoverData.isOverThresholdDrag)if(n(se,["click","tap","vclick"],T,{x:U[0],y:U[1]}),D=!1,T.timeStamp-P<=G.multiClickDebounceTime())B&&clearTimeout(B),D=!0,P=null,n(se,["dblclick","dbltap","vdblclick"],T,{x:U[0],y:U[1]});else B=setTimeout(function(){if(D)return;n(se,["oneclick","onetap","voneclick"],T,{x:U[0],y:U[1]})},G.multiClickDebounceTime()),P=T.timeStamp;if(se==null&&!r.dragData.didDrag&&!r.hoverData.selecting&&!r.hoverData.dragged&&!i(T)){if(G.$(t).unselect(["tapunselect"]),ee.length>0)r.redrawHint("eles",!0);r.dragData.possibleDragElements=ee=G.collection()}if(fe==se&&!r.dragData.didDrag&&!r.hoverData.selecting){if(fe!=null&&fe._private.selectable){if(r.hoverData.dragging);else if(G.selectionType()==="additive"||ue)if(fe.selected())fe.unselect(["tapunselect"]);else fe.select(["tapselect"]);else if(!ue)G.$(t).unmerge(fe).unselect(["tapunselect"]),fe.select(["tapselect"]);r.redrawHint("eles",!0)}}if(r.hoverData.selecting){var ce=G.collection(r.getAllInBox(X[0],X[1],X[2],X[3]));if(r.redrawHint("select",!0),ce.length>0)r.redrawHint("eles",!0);G.emit(ye("boxend"));var De=function(Xe){return Xe.selectable()&&!Xe.selected()};if(G.selectionType()==="additive")ce.emit(ye("box")).stdFilter(De).select().emit(ye("boxselect"));else{if(!ue)G.$(t).unmerge(ce).unselect();ce.emit(ye("box")).stdFilter(De).select().emit(ye("boxselect"))}r.redraw()}if(r.hoverData.dragging)r.hoverData.dragging=!1,r.redrawHint("select",!0),r.redrawHint("eles",!0),r.redraw();if(!X[4]){r.redrawHint("drag",!0),r.redrawHint("eles",!0);var Ae=se&&se.grabbed();if(y(ee),Ae){if(se.emit(ye("freeon")),ee.emit(ye("free")),r.dragData.didDrag)se.emit(ye("dragfreeon")),ee.emit(ye("dragfree"))}}}X[4]=0,r.hoverData.down=null,r.hoverData.cxtStarted=!1,r.hoverData.draggingEles=!1,r.hoverData.selecting=!1,r.hoverData.isOverThresholdDrag=!1,r.dragData.didDrag=!1,r.hoverData.dragged=!1,r.hoverData.dragDelta=[],r.hoverData.mdownPos=null,r.hoverData.mdownGPos=null,r.hoverData.which=null},!1);var A=[],R=4,L,I=1e5,M=function(T,z){for(var G=0;G<T.length;G++)if(T[G]%z!==0)return!1;return!0},O=function(T){var z=Math.abs(T[0]);for(var G=1;G<T.length;G++)if(Math.abs(T[G])!==z)return!1;return!0},q=function(T){var z=!1,G=T.deltaY;if(G==null){if(T.wheelDeltaY!=null)G=T.wheelDeltaY/4;else if(T.wheelDelta!=null)G=T.wheelDelta/4}if(G===0)return;if(L==null)if(A.length>=R){var U=A;if(L=M(U,5),!L){var X=Math.abs(U[0]);L=O(U)&&X>5}if(L)for(var fe=0;fe<U.length;fe++)I=Math.min(Math.abs(U[fe]),I)}else A.push(G),z=!0;else if(L)I=Math.min(Math.abs(G),I);if(r.scrollingPage)return;var ee=r.cy,se=ee.zoom(),ue=ee.pan(),ye=r.projectIntoViewport(T.clientX,T.clientY),Ce=[ye[0]*se+ue.x,ye[1]*se+ue.y];if(r.hoverData.draggingEles||r.hoverData.dragging||r.hoverData.cxtStarted||x()){T.preventDefault();return}if(ee.panningEnabled()&&ee.userPanningEnabled()&&ee.zoomingEnabled()&&ee.userZoomingEnabled()){T.preventDefault(),r.data.wheelZooming=!0,clearTimeout(r.data.wheelTimeout),r.data.wheelTimeout=setTimeout(function(){r.data.wheelZooming=!1,r.redrawHint("eles",!0),r.redraw()},150);var Te;if(z&&Math.abs(G)>5)G=ao(G)*5;if(Te=G/-250,L)Te/=I,Te*=3;Te=Te*r.wheelSensitivity;var ce=T.deltaMode===1;if(ce)Te*=33;var De=ee.zoom()*Math.pow(10,Te);if(T.type==="gesturechange")De=r.gestureStartZoom*T.scale;ee.zoom({level:De,renderedPosition:{x:Ce[0],y:Ce[1]}}),ee.emit({type:T.type==="gesturechange"?"pinchzoom":"scrollzoom",originalEvent:T,position:{x:ye[0],y:ye[1]}})}};r.registerBinding(r.container,"wheel",q,!0),r.registerBinding(e,"scroll",function(T){r.scrollingPage=!0,clearTimeout(r.scrollingPageTimeout),r.scrollingPageTimeout=setTimeout(function(){r.scrollingPage=!1},250)},!0),r.registerBinding(r.container,"gesturestart",function(T){if(r.gestureStartZoom=r.cy.zoom(),!r.hasTouchStarted)T.preventDefault()},!0),r.registerBinding(r.container,"gesturechange",function(J){if(!r.hasTouchStarted)q(J)},!0),r.registerBinding(r.container,"mouseout",function(T){var z=r.projectIntoViewport(T.clientX,T.clientY);r.cy.emit({originalEvent:T,type:"mouseout",position:{x:z[0],y:z[1]}})},!1),r.registerBinding(r.container,"mouseover",function(T){var z=r.projectIntoViewport(T.clientX,T.clientY);r.cy.emit({originalEvent:T,type:"mouseover",position:{x:z[0],y:z[1]}})},!1);var _,N,V,Z,j,Q,re,te,ie,Y,F,H,W,K=function(T,z,G,U){return Math.sqrt((G-T)*(G-T)+(U-z)*(U-z))},ae=function(T,z,G,U){return(G-T)*(G-T)+(U-z)*(U-z)},ve;r.registerBinding(r.container,"touchstart",ve=function(T){if(r.hasTouchStarted=!0,!S(T))return;p(),r.touchData.capture=!0,r.data.bgActivePosistion=void 0;var z=r.cy,G=r.touchData.now,U=r.touchData.earlier;if(T.touches[0]){var X=r.projectIntoViewport(T.touches[0].clientX,T.touches[0].clientY);G[0]=X[0],G[1]=X[1]}if(T.touches[1]){var X=r.projectIntoViewport(T.touches[1].clientX,T.touches[1].clientY);G[2]=X[0],G[3]=X[1]}if(T.touches[2]){var X=r.projectIntoViewport(T.touches[2].clientX,T.touches[2].clientY);G[4]=X[0],G[5]=X[1]}var fe=function(lr){return{originalEvent:T,type:lr,position:{x:G[0],y:G[1]}}};if(T.touches[1]){r.touchData.singleTouchMoved=!0,y(r.dragData.touchDragEles);var ee=r.findContainerClientCoords();ie=ee[0],Y=ee[1],F=ee[2],H=ee[3],_=T.touches[0].clientX-ie,N=T.touches[0].clientY-Y,V=T.touches[1].clientX-ie,Z=T.touches[1].clientY-Y,W=0<=_&&_<=F&&0<=V&&V<=F&&0<=N&&N<=H&&0<=Z&&Z<=H;var se=z.pan(),ue=z.zoom();j=K(_,N,V,Z),Q=ae(_,N,V,Z),re=[(_+V)/2,(N+Z)/2],te=[(re[0]-se.x)/ue,(re[1]-se.y)/ue];var ye=200,Ce=ye*ye;if(Q<Ce&&!T.touches[2]){var Te=r.findNearestElement(G[0],G[1],!0,!0),ce=r.findNearestElement(G[2],G[3],!0,!0);if(Te&&Te.isNode())Te.activate().emit(fe("cxttapstart")),r.touchData.start=Te;else if(ce&&ce.isNode())ce.activate().emit(fe("cxttapstart")),r.touchData.start=ce;else z.emit(fe("cxttapstart"));if(r.touchData.start)r.touchData.start._private.grabbed=!1;r.touchData.cxt=!0,r.touchData.cxtDragged=!1,r.data.bgActivePosistion=void 0,r.redraw();return}}if(T.touches[2]){if(z.boxSelectionEnabled())T.preventDefault()}else if(T.touches[1]);else if(T.touches[0]){var De=r.findNearestElements(G[0],G[1],!0,!0),Ae=De[0];if(Ae!=null){if(Ae.activate(),r.touchData.start=Ae,r.touchData.starts=De,r.nodeIsGrabbable(Ae)){var ir=r.dragData.touchDragEles=z.collection(),Xe=null;if(r.redrawHint("eles",!0),r.redrawHint("drag",!0),Ae.selected())Xe=z.$(function(er){return er.selected()&&r.nodeIsGrabbable(er)}),h(Xe,{addToList:ir});else d(Ae,{addToList:ir});if(l(Ae),Ae.emit(fe("grabon")),Xe)Xe.forEach(function(er){er.emit(fe("grab"))});else Ae.emit(fe("grab"))}}if(n(Ae,["touchstart","tapstart","vmousedown"],T,{x:G[0],y:G[1]}),Ae==null)r.data.bgActivePosistion={x:X[0],y:X[1]},r.redrawHint("select",!0),r.redraw();r.touchData.singleTouchMoved=!1,r.touchData.singleTouchStartTime=+new Date,clearTimeout(r.touchData.tapholdTimeout),r.touchData.tapholdTimeout=setTimeout(function(){if(r.touchData.singleTouchMoved===!1&&!r.pinching&&!r.touchData.selecting)n(r.touchData.start,["taphold"],T,{x:G[0],y:G[1]})},r.tapholdDuration)}if(T.touches.length>=1){var Rr=r.touchData.startPosition=[null,null,null,null,null,null];for(var Ye=0;Ye<G.length;Ye++)Rr[Ye]=U[Ye]=G[Ye];var Qe=T.touches[0];r.touchData.startGPosition=[Qe.clientX,Qe.clientY]}},!1);var Be;r.registerBinding(e,"touchmove",Be=function(T){var z=r.touchData.capture;if(!z&&!S(T))return;var{selection:G,cy:U}=r,X=r.touchData.now,fe=r.touchData.earlier,ee=U.zoom();if(T.touches[0]){var se=r.projectIntoViewport(T.touches[0].clientX,T.touches[0].clientY);X[0]=se[0],X[1]=se[1]}if(T.touches[1]){var se=r.projectIntoViewport(T.touches[1].clientX,T.touches[1].clientY);X[2]=se[0],X[3]=se[1]}if(T.touches[2]){var se=r.projectIntoViewport(T.touches[2].clientX,T.touches[2].clientY);X[4]=se[0],X[5]=se[1]}var ue=function(rc){return{originalEvent:T,type:rc,position:{x:X[0],y:X[1]}}},ye=r.touchData.startGPosition,Ce;if(z&&T.touches[0]&&ye){var Te=[];for(var ce=0;ce<X.length;ce++)Te[ce]=X[ce]-fe[ce];var De=T.touches[0].clientX-ye[0],Ae=De*De,ir=T.touches[0].clientY-ye[1],Xe=ir*ir,Rr=Ae+Xe;Ce=Rr>=r.touchTapThreshold2}if(z&&r.touchData.cxt){T.preventDefault();var Ye=T.touches[0].clientX-ie,Qe=T.touches[0].clientY-Y,er=T.touches[1].clientX-ie,lr=T.touches[1].clientY-Y,Fr=ae(Ye,Qe,er,lr),Ue=Fr/Q,Kr=150,Mr=Kr*Kr,et=1.5,Ua=et*et;if(Ue>=Ua||Fr>=Mr){r.touchData.cxt=!1,r.data.bgActivePosistion=void 0,r.redrawHint("select",!0);var xt=ue("cxttapend");if(r.touchData.start)r.touchData.start.unactivate().emit(xt),r.touchData.start=null;else U.emit(xt)}}if(z&&r.touchData.cxt){var xt=ue("cxtdrag");if(r.data.bgActivePosistion=void 0,r.redrawHint("select",!0),r.touchData.start)r.touchData.start.emit(xt);else U.emit(xt);if(r.touchData.start)r.touchData.start._private.grabbed=!1;r.touchData.cxtDragged=!0;var Er=r.findNearestElement(X[0],X[1],!0,!0);if(!r.touchData.cxtOver||Er!==r.touchData.cxtOver){if(r.touchData.cxtOver)r.touchData.cxtOver.emit(ue("cxtdragout"));if(r.touchData.cxtOver=Er,Er)Er.emit(ue("cxtdragover"))}}else if(z&&T.touches[2]&&U.boxSelectionEnabled()){if(T.preventDefault(),r.data.bgActivePosistion=void 0,this.lastThreeTouch=+new Date,!r.touchData.selecting)U.emit(ue("boxstart"));if(r.touchData.selecting=!0,r.touchData.didSelect=!0,G[4]=1,!G||G.length===0||G[0]===void 0)G[0]=(X[0]+X[2]+X[4])/3,G[1]=(X[1]+X[3]+X[5])/3,G[2]=(X[0]+X[2]+X[4])/3+1,G[3]=(X[1]+X[3]+X[5])/3+1;else G[2]=(X[0]+X[2]+X[4])/3,G[3]=(X[1]+X[3]+X[5])/3;r.redrawHint("select",!0),r.redraw()}else if(z&&T.touches[1]&&!r.touchData.didSelect&&U.zoomingEnabled()&&U.panningEnabled()&&U.userZoomingEnabled()&&U.userPanningEnabled()){T.preventDefault(),r.data.bgActivePosistion=void 0,r.redrawHint("select",!0);var hr=r.dragData.touchDragEles;if(hr){r.redrawHint("drag",!0);for(var Cr=0;Cr<hr.length;Cr++){var ua=hr[Cr]._private;ua.grabbed=!1,ua.rscratch.inDragLayer=!1}}var Dr=r.touchData.start,Ye=T.touches[0].clientX-ie,Qe=T.touches[0].clientY-Y,er=T.touches[1].clientX-ie,lr=T.touches[1].clientY-Y,xo=K(Ye,Qe,er,lr),Uf=xo/j;if(W){var Kf=Ye-_,Xf=Qe-N,Yf=er-V,Zf=lr-Z,Qf=(Kf+Yf)/2,Jf=(Xf+Zf)/2,la=U.zoom(),Qn=la*Uf,Ka=U.pan(),Eo=te[0]*la+Ka.x,Co=te[1]*la+Ka.y,jf={x:-Qn/la*(Eo-Ka.x-Qf)+Eo,y:-Qn/la*(Co-Ka.y-Jf)+Co};if(Dr&&Dr.active()){var hr=r.dragData.touchDragEles;if(y(hr),r.redrawHint("drag",!0),r.redrawHint("eles",!0),Dr.unactivate().emit(ue("freeon")),hr.emit(ue("free")),r.dragData.didDrag)Dr.emit(ue("dragfreeon")),hr.emit(ue("dragfree"))}U.viewport({zoom:Qn,pan:jf,cancelOnFailedZoom:!0}),U.emit(ue("pinchzoom")),j=xo,_=Ye,N=Qe,V=er,Z=lr,r.pinching=!0}if(T.touches[0]){var se=r.projectIntoViewport(T.touches[0].clientX,T.touches[0].clientY);X[0]=se[0],X[1]=se[1]}if(T.touches[1]){var se=r.projectIntoViewport(T.touches[1].clientX,T.touches[1].clientY);X[2]=se[0],X[3]=se[1]}if(T.touches[2]){var se=r.projectIntoViewport(T.touches[2].clientX,T.touches[2].clientY);X[4]=se[0],X[5]=se[1]}}else if(T.touches[0]&&!r.touchData.didSelect){var Lr=r.touchData.start,Jn=r.touchData.last,Er;if(!r.hoverData.draggingEles&&!r.swipePanning)Er=r.findNearestElement(X[0],X[1],!0,!0);if(z&&Lr!=null)T.preventDefault();if(z&&Lr!=null&&r.nodeIsDraggable(Lr))if(Ce){var hr=r.dragData.touchDragEles,To=!r.dragData.didDrag;if(To)h(hr,{inDragLayer:!0});r.dragData.didDrag=!0;var va={x:0,y:0};if(ne(Te[0])&&ne(Te[1])){if(va.x+=Te[0],va.y+=Te[1],To){r.redrawHint("eles",!0);var Ir=r.touchData.dragDelta;if(Ir&&ne(Ir[0])&&ne(Ir[1]))va.x+=Ir[0],va.y+=Ir[1]}}if(r.hoverData.draggingEles=!0,hr.silentShift(va).emit(ue("position")).emit(ue("drag")),r.redrawHint("drag",!0),r.touchData.startPosition[0]==fe[0]&&r.touchData.startPosition[1]==fe[1])r.redrawHint("eles",!0);r.redraw()}else{var Ir=r.touchData.dragDelta=r.touchData.dragDelta||[];if(Ir.length===0)Ir.push(Te[0]),Ir.push(Te[1]);else Ir[0]+=Te[0],Ir[1]+=Te[1]}{if(n(Lr||Er,["touchmove","tapdrag","vmousemove"],T,{x:X[0],y:X[1]}),(!Lr||!Lr.grabbed())&&Er!=Jn){if(Jn)Jn.emit(ue("tapdragout"));if(Er)Er.emit(ue("tapdragover"))}r.touchData.last=Er}if(z){for(var Cr=0;Cr<X.length;Cr++)if(X[Cr]&&r.touchData.startPosition[Cr]&&Ce)r.touchData.singleTouchMoved=!0}if(z&&(Lr==null||Lr.pannable())&&U.panningEnabled()&&U.userPanningEnabled()){var ec=s(Lr,r.touchData.starts);if(ec){if(T.preventDefault(),!r.data.bgActivePosistion)r.data.bgActivePosistion=Wt(r.touchData.startPosition);if(r.swipePanning)U.panBy({x:Te[0]*ee,y:Te[1]*ee}),U.emit(ue("dragpan"));else if(Ce){if(r.swipePanning=!0,U.panBy({x:De*ee,y:ir*ee}),U.emit(ue("dragpan")),Lr)Lr.unactivate(),r.redrawHint("select",!0),r.touchData.start=null}}var se=r.projectIntoViewport(T.touches[0].clientX,T.touches[0].clientY);X[0]=se[0],X[1]=se[1]}}for(var ce=0;ce<X.length;ce++)fe[ce]=X[ce];if(z&&T.touches.length>0&&!r.hoverData.draggingEles&&!r.swipePanning&&r.data.bgActivePosistion!=null)r.data.bgActivePosistion=void 0,r.redrawHint("select",!0),r.redraw()},!1);var xe;r.registerBinding(e,"touchcancel",xe=function(T){var z=r.touchData.start;if(r.touchData.capture=!1,z)z.unactivate()});var be,pe,oe,he;if(r.registerBinding(e,"touchend",be=function(T){var z=r.touchData.start,G=r.touchData.capture;if(G){if(T.touches.length===0)r.touchData.capture=!1;T.preventDefault()}else return;var U=r.selection;r.swipePanning=!1,r.hoverData.draggingEles=!1;var X=r.cy,fe=X.zoom(),ee=r.touchData.now,se=r.touchData.earlier;if(T.touches[0]){var ue=r.projectIntoViewport(T.touches[0].clientX,T.touches[0].clientY);ee[0]=ue[0],ee[1]=ue[1]}if(T.touches[1]){var ue=r.projectIntoViewport(T.touches[1].clientX,T.touches[1].clientY);ee[2]=ue[0],ee[3]=ue[1]}if(T.touches[2]){var ue=r.projectIntoViewport(T.touches[2].clientX,T.touches[2].clientY);ee[4]=ue[0],ee[5]=ue[1]}var ye=function(Mr){return{originalEvent:T,type:Mr,position:{x:ee[0],y:ee[1]}}};if(z)z.unactivate();var Ce;if(r.touchData.cxt){if(Ce=ye("cxttapend"),z)z.emit(Ce);else X.emit(Ce);if(!r.touchData.cxtDragged){var Te=ye("cxttap");if(z)z.emit(Te);else X.emit(Te)}if(r.touchData.start)r.touchData.start._private.grabbed=!1;r.touchData.cxt=!1,r.touchData.start=null,r.redraw();return}if(!T.touches[2]&&X.boxSelectionEnabled()&&r.touchData.selecting){r.touchData.selecting=!1;var ce=X.collection(r.getAllInBox(U[0],U[1],U[2],U[3]));U[0]=void 0,U[1]=void 0,U[2]=void 0,U[3]=void 0,U[4]=0,r.redrawHint("select",!0),X.emit(ye("boxend"));var De=function(Mr){return Mr.selectable()&&!Mr.selected()};if(ce.emit(ye("box")).stdFilter(De).select().emit(ye("boxselect")),ce.nonempty())r.redrawHint("eles",!0);r.redraw()}if(z!=null)z.unactivate();if(T.touches[2])r.data.bgActivePosistion=void 0,r.redrawHint("select",!0);else if(T.touches[1]);else if(T.touches[0]);else if(!T.touches[0]){r.data.bgActivePosistion=void 0,r.redrawHint("select",!0);var Ae=r.dragData.touchDragEles;if(z!=null){var ir=z._private.grabbed;if(y(Ae),r.redrawHint("drag",!0),r.redrawHint("eles",!0),ir){if(z.emit(ye("freeon")),Ae.emit(ye("free")),r.dragData.didDrag)z.emit(ye("dragfreeon")),Ae.emit(ye("dragfree"))}n(z,["touchend","tapend","vmouseup","tapdragout"],T,{x:ee[0],y:ee[1]}),z.unactivate(),r.touchData.start=null}else{var Xe=r.findNearestElement(ee[0],ee[1],!0,!0);n(Xe,["touchend","tapend","vmouseup","tapdragout"],T,{x:ee[0],y:ee[1]})}var Rr=r.touchData.startPosition[0]-ee[0],Ye=Rr*Rr,Qe=r.touchData.startPosition[1]-ee[1],er=Qe*Qe,lr=Ye+er,Fr=lr*fe*fe;if(!r.touchData.singleTouchMoved){if(!z)X.$(":selected").unselect(["tapunselect"]);if(n(z,["tap","vclick"],T,{x:ee[0],y:ee[1]}),pe=!1,T.timeStamp-he<=X.multiClickDebounceTime())oe&&clearTimeout(oe),pe=!0,he=null,n(z,["dbltap","vdblclick"],T,{x:ee[0],y:ee[1]});else oe=setTimeout(function(){if(pe)return;n(z,["onetap","voneclick"],T,{x:ee[0],y:ee[1]})},X.multiClickDebounceTime()),he=T.timeStamp}if(z!=null&&!r.dragData.didDrag&&z._private.selectable&&Fr<r.touchTapThreshold2&&!r.pinching){if(X.selectionType()==="single")X.$(t).unmerge(z).unselect(["tapunselect"]),z.select(["tapselect"]);else if(z.selected())z.unselect(["tapunselect"]);else z.select(["tapselect"]);r.redrawHint("eles",!0)}r.touchData.singleTouchMoved=!0}for(var Ue=0;Ue<ee.length;Ue++)se[Ue]=ee[Ue];if(r.dragData.didDrag=!1,T.touches.length===0)r.touchData.dragDelta=[],r.touchData.startPosition=[null,null,null,null,null,null],r.touchData.startGPosition=null,r.touchData.didSelect=!1;if(T.touches.length<2){if(T.touches.length===1)r.touchData.startGPosition=[T.touches[0].clientX,T.touches[0].clientY];r.pinching=!1,r.redrawHint("eles",!0),r.redraw()}},!1),typeof TouchEvent>"u"){var de=[],Ee=function(T){return{clientX:T.clientX,clientY:T.clientY,force:1,identifier:T.pointerId,pageX:T.pageX,pageY:T.pageY,radiusX:T.width/2,radiusY:T.height/2,screenX:T.screenX,screenY:T.screenY,target:T.target}},we=function(T){return{event:T,touch:Ee(T)}},ke=function(T){de.push(we(T))},Pe=function(T){for(var z=0;z<de.length;z++){var G=de[z];if(G.event.pointerId===T.pointerId){de.splice(z,1);return}}},ze=function(T){var z=de.filter(function(G){return G.event.pointerId===T.pointerId})[0];z.event=T,z.touch=Ee(T)},Oe=function(T){T.touches=de.map(function(z){return z.touch})},Me=function(T){return T.pointerType==="mouse"||T.pointerType===4};r.registerBinding(r.container,"pointerdown",function(J){if(Me(J))return;J.preventDefault(),ke(J),Oe(J),ve(J)}),r.registerBinding(r.container,"pointerup",function(J){if(Me(J))return;Pe(J),Oe(J),be(J)}),r.registerBinding(r.container,"pointercancel",function(J){if(Me(J))return;Pe(J),Oe(J),xe(J)}),r.registerBinding(r.container,"pointermove",function(J){if(Me(J))return;J.preventDefault(),ze(J),Oe(J),Be(J)})}};var Jr={};Jr.generatePolygon=function(r,e){return this.nodeShapes[r]={renderer:this,name:r,points:e,draw:function(a,n,i,s,o,u){this.renderer.nodeShapeImpl("polygon",a,n,i,s,o,this.points)},intersectLine:function(a,n,i,s,o,u,l,v){return Ba(o,u,this.points,a,n,i/2,s/2,l)},checkPoint:function(a,n,i,s,o,u,l,v){return Qr(a,n,this.points,u,l,s,o,[0,-1],i)},hasMiterBounds:r!=="rectangle",miterBounds:function(a,n,i,s,o,u){return Md(this.points,a,n,i,s,o)}}};Jr.generateEllipse=function(){return this.nodeShapes.ellipse={renderer:this,name:"ellipse",draw:function(e,t,a,n,i,s){this.renderer.nodeShapeImpl(this.name,e,t,a,n,i)},intersectLine:function(e,t,a,n,i,s,o,u){return qd(i,s,e,t,a/2+o,n/2+o)},checkPoint:function(e,t,a,n,i,s,o,u){return Bt(e,t,n,i,s,o,a)}}};Jr.generateRoundPolygon=function(r,e){return this.nodeShapes[r]={renderer:this,name:r,points:e,getOrCreateCorners:function(a,n,i,s,o,u,l){if(u[l]!==void 0&&u[l+"-cx"]===a&&u[l+"-cy"]===n)return u[l];u[l]=Array(e.length/2),u[l+"-cx"]=a,u[l+"-cy"]=n;var v=i/2,f=s/2;o=o==="auto"?Cv(i,s):o;var c=Array(e.length/2);for(var h=0;h<e.length/2;h++)c[h]={x:a+v*e[h*2],y:n+f*e[h*2+1]};var d,y,g,p,m=c.length;y=c[m-1];for(d=0;d<m;d++)g=c[d%m],p=c[(d+1)%m],u[l][d]=yo(y,g,p,o),y=g,g=p;return u[l]},draw:function(a,n,i,s,o,u,l){this.renderer.nodeShapeImpl("round-polygon",a,n,i,s,o,this.points,this.getOrCreateCorners(n,i,s,o,u,l,"drawCorners"))},intersectLine:function(a,n,i,s,o,u,l,v,f){return Gd(o,u,this.points,a,n,i,s,l,this.getOrCreateCorners(a,n,i,s,v,f,"corners"))},checkPoint:function(a,n,i,s,o,u,l,v,f){return Vd(a,n,this.points,u,l,s,o,this.getOrCreateCorners(u,l,s,o,v,f,"corners"))}}};Jr.generateRoundRectangle=function(){return this.nodeShapes["round-rectangle"]=this.nodeShapes.roundrectangle={renderer:this,name:"round-rectangle",points:mr(4,0),draw:function(e,t,a,n,i,s){this.renderer.nodeShapeImpl(this.name,e,t,a,n,i,this.points,s)},intersectLine:function(e,t,a,n,i,s,o,u){return xv(i,s,e,t,a,n,o,u)},checkPoint:function(e,t,a,n,i,s,o,u){var l=n/2,v=i/2;u=u==="auto"?ct(n,i):u,u=Math.min(l,v,u);var f=u*2;if(Qr(e,t,this.points,s,o,n,i-f,[0,-1],a))return!0;if(Qr(e,t,this.points,s,o,n-f,i,[0,-1],a))return!0;if(Bt(e,t,f,f,s-l+u,o-v+u,a))return!0;if(Bt(e,t,f,f,s+l-u,o-v+u,a))return!0;if(Bt(e,t,f,f,s+l-u,o+v-u,a))return!0;if(Bt(e,t,f,f,s-l+u,o+v-u,a))return!0;return!1}}};Jr.generateCutRectangle=function(){return this.nodeShapes["cut-rectangle"]=this.nodeShapes.cutrectangle={renderer:this,name:"cut-rectangle",cornerLength:io(),points:mr(4,0),draw:function(e,t,a,n,i,s){this.renderer.nodeShapeImpl(this.name,e,t,a,n,i,null,s)},generateCutTrianglePts:function(e,t,a,n,i){var s=i==="auto"?this.cornerLength:i,o=t/2,u=e/2,l=a-u,v=a+u,f=n-o,c=n+o;return{topLeft:[l,f+s,l+s,f,l+s,f+s],topRight:[v-s,f,v,f+s,v-s,f+s],bottomRight:[v,c-s,v-s,c,v-s,c-s],bottomLeft:[l+s,c,l,c-s,l+s,c-s]}},intersectLine:function(e,t,a,n,i,s,o,u){var l=this.generateCutTrianglePts(a+2*o,n+2*o,e,t,u),v=[].concat.apply([],[l.topLeft.splice(0,4),l.topRight.splice(0,4),l.bottomRight.splice(0,4),l.bottomLeft.splice(0,4)]);return Ba(i,s,v,e,t)},checkPoint:function(e,t,a,n,i,s,o,u){var l=u==="auto"?this.cornerLength:u;if(Qr(e,t,this.points,s,o,n,i-2*l,[0,-1],a))return!0;if(Qr(e,t,this.points,s,o,n-2*l,i,[0,-1],a))return!0;var v=this.generateCutTrianglePts(n,i,s,o);return Tr(e,t,v.topLeft)||Tr(e,t,v.topRight)||Tr(e,t,v.bottomRight)||Tr(e,t,v.bottomLeft)}}};Jr.generateBarrel=function(){return this.nodeShapes.barrel={renderer:this,name:"barrel",points:mr(4,0),draw:function(e,t,a,n,i,s){this.renderer.nodeShapeImpl(this.name,e,t,a,n,i)},intersectLine:function(e,t,a,n,i,s,o,u){var l=0.15,v=0.5,f=0.85,c=this.generateBarrelBezierPts(a+2*o,n+2*o,e,t),h=function(g){var p=Kt({x:g[0],y:g[1]},{x:g[2],y:g[3]},{x:g[4],y:g[5]},l),m=Kt({x:g[0],y:g[1]},{x:g[2],y:g[3]},{x:g[4],y:g[5]},v),b=Kt({x:g[0],y:g[1]},{x:g[2],y:g[3]},{x:g[4],y:g[5]},f);return[g[0],g[1],p.x,p.y,m.x,m.y,b.x,b.y,g[4],g[5]]},d=[].concat(h(c.topLeft),h(c.topRight),h(c.bottomRight),h(c.bottomLeft));return Ba(i,s,d,e,t)},generateBarrelBezierPts:function(e,t,a,n){var i=t/2,s=e/2,o=a-s,u=a+s,l=n-i,v=n+i,f=Rs(e,t),{heightOffset:c,widthOffset:h}=f,d=f.ctrlPtOffsetPct*e,y={topLeft:[o,l+c,o+d,l,o+h,l],topRight:[u-h,l,u-d,l,u,l+c],bottomRight:[u,v-c,u-d,v,u-h,v],bottomLeft:[o+h,v,o+d,v,o,v-c]};return y.topLeft.isTop=!0,y.topRight.isTop=!0,y.bottomLeft.isBottom=!0,y.bottomRight.isBottom=!0,y},checkPoint:function(e,t,a,n,i,s,o,u){var l=Rs(n,i),{heightOffset:v,widthOffset:f}=l;if(Qr(e,t,this.points,s,o,n,i-2*v,[0,-1],a))return!0;if(Qr(e,t,this.points,s,o,n-2*f,i,[0,-1],a))return!0;var c=this.generateBarrelBezierPts(n,i,s,o),h=function(S,k,B){var D=B[4],P=B[2],A=B[0],R=B[5],L=B[1],I=Math.min(D,A),M=Math.max(D,A),O=Math.min(R,L),q=Math.max(R,L);if(I<=S&&S<=M&&O<=k&&k<=q){var _=Hd(D,P,A),N=Od(_[0],_[1],_[2],S),V=N.filter(function(Z){return 0<=Z&&Z<=1});if(V.length>0)return V[0]}return null},d=Object.keys(c);for(var y=0;y<d.length;y++){var g=d[y],p=c[g],m=h(e,t,p);if(m==null)continue;var b=p[5],w=p[3],E=p[1],C=sr(b,w,E,m);if(p.isTop&&C<=t)return!0;if(p.isBottom&&t<=C)return!0}return!1}}};Jr.generateBottomRoundrectangle=function(){return this.nodeShapes["bottom-round-rectangle"]=this.nodeShapes.bottomroundrectangle={renderer:this,name:"bottom-round-rectangle",points:mr(4,0),draw:function(e,t,a,n,i,s){this.renderer.nodeShapeImpl(this.name,e,t,a,n,i,this.points,s)},intersectLine:function(e,t,a,n,i,s,o,u){var l=e-(a/2+o),v=t-(n/2+o),f=v,c=e+(a/2+o),h=ot(i,s,e,t,l,v,c,f,!1);if(h.length>0)return h;return xv(i,s,e,t,a,n,o,u)},checkPoint:function(e,t,a,n,i,s,o,u){u=u==="auto"?ct(n,i):u;var l=2*u;if(Qr(e,t,this.points,s,o,n,i-l,[0,-1],a))return!0;if(Qr(e,t,this.points,s,o,n-l,i,[0,-1],a))return!0;var v=n/2+2*a,f=i/2+2*a,c=[s-v,o-f,s-v,o,s+v,o,s+v,o-f];if(Tr(e,t,c))return!0;if(Bt(e,t,l,l,s+n/2-u,o+i/2-u,a))return!0;if(Bt(e,t,l,l,s-n/2+u,o+i/2-u,a))return!0;return!1}}};Jr.registerNodeShapes=function(){var r=this.nodeShapes={},e=this;this.generateEllipse(),this.generatePolygon("triangle",mr(3,0)),this.generateRoundPolygon("round-triangle",mr(3,0)),this.generatePolygon("rectangle",mr(4,0)),r.square=r.rectangle,this.generateRoundRectangle(),this.generateCutRectangle(),this.generateBarrel(),this.generateBottomRoundrectangle();{var t=[0,1,1,0,0,-1,-1,0];this.generatePolygon("diamond",t),this.generateRoundPolygon("round-diamond",t)}this.generatePolygon("pentagon",mr(5,0)),this.generateRoundPolygon("round-pentagon",mr(5,0)),this.generatePolygon("hexagon",mr(6,0)),this.generateRoundPolygon("round-hexagon",mr(6,0)),this.generatePolygon("heptagon",mr(7,0)),this.generateRoundPolygon("round-heptagon",mr(7,0)),this.generatePolygon("octagon",mr(8,0)),this.generateRoundPolygon("round-octagon",mr(8,0));var a=Array(20);{var n=As(5,0),i=As(5,Math.PI/5),s=0.5*(3-Math.sqrt(5));s*=1.57;for(var o=0;o<i.length/2;o++)i[o*2]*=s,i[o*2+1]*=s;for(var o=0;o<5;o++)a[o*4]=n[o*2],a[o*4+1]=n[o*2+1],a[o*4+2]=i[o*2],a[o*4+3]=i[o*2+1]}a=Ev(a),this.generatePolygon("star",a),this.generatePolygon("vee",[-1,-1,0,-0.333,1,-1,0,1]),this.generatePolygon("rhomboid",[-1,-1,0.333,-1,1,1,-0.333,1]),this.generatePolygon("right-rhomboid",[-0.333,-1,1,-1,0.333,1,-1,1]),this.nodeShapes.concavehexagon=this.generatePolygon("concave-hexagon",[-1,-0.95,-0.75,0,-1,0.95,1,0.95,0.75,0,1,-0.95]);{var u=[-1,-1,0.25,-1,1,0,0.25,1,-1,1];this.generatePolygon("tag",u),this.generateRoundPolygon("round-tag",u)}r.makePolygon=function(l){var v=l.join("$"),f="polygon-"+v,c;if(c=this[f])return c;return e.generatePolygon(f,l)}};var Wa={};Wa.timeToRender=function(){return this.redrawTotalTime/this.redrawCount};Wa.redraw=function(r){r=r||yv();var e=this;if(e.averageRedrawTime===void 0)e.averageRedrawTime=0;if(e.lastRedrawTime===void 0)e.lastRedrawTime=0;if(e.lastDrawTime===void 0)e.lastDrawTime=0;e.requestedFrame=!0,e.renderOptions=r};Wa.beforeRender=function(r,e){if(this.destroyed)return;if(e==null)$e("Priority is not optional for beforeRender");var t=this.beforeRenderCallbacks;t.push({fn:r,priority:e}),t.sort(function(a,n){return n.priority-a.priority})};var Nl=function(e,t,a){var n=e.beforeRenderCallbacks;for(var i=0;i<n.length;i++)n[i].fn(t,a)};Wa.startRenderLoop=function(){var r=this,e=r.cy;if(r.renderLoopStarted)return;else r.renderLoopStarted=!0;var t=function(n){if(r.destroyed)return;if(e.batching());else if(r.requestedFrame&&!r.skipFrame){Nl(r,!0,n);var i=Zr();r.render(r.renderOptions);var s=r.lastDrawTime=Zr();if(r.averageRedrawTime===void 0)r.averageRedrawTime=s-i;if(r.redrawCount===void 0)r.redrawCount=0;if(r.redrawCount++,r.redrawTotalTime===void 0)r.redrawTotalTime=0;var o=s-i;r.redrawTotalTime+=o,r.lastRedrawTime=o,r.averageRedrawTime=r.averageRedrawTime/2+o/2,r.requestedFrame=!1}else Nl(r,!1,n);r.skipFrame=!1,xn(t)};xn(t)};var uy=function(e){this.init(e)},Sf=uy,oa=Sf.prototype;oa.clientFunctions=["redrawHint","render","renderTo","matchCanvasSize","nodeShapeImpl","arrowShapeImpl"];oa.init=function(r){var e=this;e.options=r,e.cy=r.cy;var t=e.container=r.cy.container(),a=e.cy.window();if(a){var n=a.document,i=n.head,s="__________cytoscape_stylesheet",o="__________cytoscape_container",u=n.getElementById(s)!=null;if(t.className.indexOf(o)<0)t.className=(t.className||"")+" "+o;if(!u){var l=n.createElement("style");l.id=s,l.textContent="."+o+" { position: relative; }",i.insertBefore(l,i.children[0])}var v=a.getComputedStyle(t),f=v.getPropertyValue("position");if(f==="static")Ve("A Cytoscape container has style position:static and so can not use UI extensions properly")}e.selection=[void 0,void 0,void 0,void 0,0],e.bezierProjPcts=[0.05,0.225,0.4,0.5,0.6,0.775,0.95],e.hoverData={down:null,last:null,downTime:null,triggerMode:null,dragging:!1,initialPan:[null,null],capture:!1},e.dragData={possibleDragElements:[]},e.touchData={start:null,capture:!1,startPosition:[null,null,null,null,null,null],singleTouchStartTime:null,singleTouchMoved:!0,now:[null,null,null,null,null,null],earlier:[null,null,null,null,null,null]},e.redraws=0,e.showFps=r.showFps,e.debug=r.debug,e.webgl=r.webgl,e.hideEdgesOnViewport=r.hideEdgesOnViewport,e.textureOnViewport=r.textureOnViewport,e.wheelSensitivity=r.wheelSensitivity,e.motionBlurEnabled=r.motionBlur,e.forcedPixelRatio=ne(r.pixelRatio)?r.pixelRatio:null,e.motionBlur=r.motionBlur,e.motionBlurOpacity=r.motionBlurOpacity,e.motionBlurTransparency=1-e.motionBlurOpacity,e.motionBlurPxRatio=1,e.mbPxRBlurry=1,e.minMbLowQualFrames=4,e.fullQualityMb=!1,e.clearedForMotionBlur=[],e.desktopTapThreshold=r.desktopTapThreshold,e.desktopTapThreshold2=r.desktopTapThreshold*r.desktopTapThreshold,e.touchTapThreshold=r.touchTapThreshold,e.touchTapThreshold2=r.touchTapThreshold*r.touchTapThreshold,e.tapholdDuration=500,e.bindings=[],e.beforeRenderCallbacks=[],e.beforeRenderPriorities={animations:400,eleCalcs:300,eleTxrDeq:200,lyrTxrDeq:150,lyrTxrSkip:100},e.registerNodeShapes(),e.registerArrowShapes(),e.registerCalculationListeners()};oa.notify=function(r,e){var t=this,a=t.cy;if(this.destroyed)return;if(r==="init"){t.load();return}if(r==="destroy"){t.destroy();return}if(r==="add"||r==="remove"||r==="move"&&a.hasCompoundNodes()||r==="load"||r==="zorder"||r==="mount")t.invalidateCachedZSortedEles();if(r==="viewport")t.redrawHint("select",!0);if(r==="gc")t.redrawHint("gc",!0);if(r==="load"||r==="resize"||r==="mount")t.invalidateContainerClientCoordsCache(),t.matchCanvasSize(t.container);t.redrawHint("eles",!0),t.redrawHint("drag",!0),this.startRenderLoop(),this.redraw()};oa.destroy=function(){var r=this;r.destroyed=!0,r.cy.stopAnimationLoop();for(var e=0;e<r.bindings.length;e++){var t=r.bindings[e],a=t,n=a.target;(n.off||n.removeEventListener).apply(n,a.args)}if(r.bindings=[],r.beforeRenderCallbacks=[],r.onUpdateEleCalcsFns=[],r.removeObserver)r.removeObserver.disconnect();if(r.styleObserver)r.styleObserver.disconnect();if(r.resizeObserver)r.resizeObserver.disconnect();if(r.labelCalcDiv)try{document.body.removeChild(r.labelCalcDiv)}catch(i){}};oa.isHeadless=function(){return!1};[po,Ef,Cf,sa,Jr,Wa].forEach(function(r){me(oa,r)});var xs=16.666666666666668,kf={setupDequeueing:function(e){return function(){var a=this,n=this.renderer;if(a.dequeueingSetup)return;else a.dequeueingSetup=!0;var i=Va(function(){n.redrawHint("eles",!0),n.redrawHint("drag",!0),n.redraw()},e.deqRedrawThreshold),s=function(l,v){var f=Zr(),{averageRedrawTime:c,lastRedrawTime:h}=n,d=[],y=n.cy.extent(),g=n.getPixelRatio();if(!l)n.flushRenderedStyleQueue();while(!0){var p=Zr(),m=p-f,b=p-v;if(h<xs){var w=xs-(l?c:0);if(b>=e.deqFastCost*w)break}else if(l){if(m>=e.deqCost*h||m>=e.deqAvgCost*c)break}else if(b>=e.deqNoDrawCost*xs)break;var E=e.deq(a,g,y);if(E.length>0)for(var C=0;C<E.length;C++)d.push(E[C]);else break}if(d.length>0){if(e.onDeqd(a,d),!l&&e.shouldRedraw(a,d,g,y))i()}},o=e.priority||eo;n.beforeRender(s,o(a))}}},ly=function(){function r(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:En;pt(this,r),this.idsByKey=new Yr,this.keyForId=new Yr,this.cachesByLvl=new Yr,this.lvls=[],this.getKey=e,this.doesEleInvalidateKey=t}return yt(r,[{key:"getIdsFor",value:function(t){if(t==null)$e("Can not get id list for null key");var a=this.idsByKey,n=this.idsByKey.get(t);if(!n)n=new ta,a.set(t,n);return n}},{key:"addIdForKey",value:function(t,a){if(t!=null)this.getIdsFor(t).add(a)}},{key:"deleteIdForKey",value:function(t,a){if(t!=null)this.getIdsFor(t).delete(a)}},{key:"getNumberOfIdsForKey",value:function(t){if(t==null)return 0;else return this.getIdsFor(t).size}},{key:"updateKeyMappingFor",value:function(t){var a=t.id(),n=this.keyForId.get(a),i=this.getKey(t);this.deleteIdForKey(n,a),this.addIdForKey(i,a),this.keyForId.set(a,i)}},{key:"deleteKeyMappingFor",value:function(t){var a=t.id(),n=this.keyForId.get(a);this.deleteIdForKey(n,a),this.keyForId.delete(a)}},{key:"keyHasChangedFor",value:function(t){var a=t.id(),n=this.keyForId.get(a),i=this.getKey(t);return n!==i}},{key:"isInvalid",value:function(t){return this.keyHasChangedFor(t)||this.doesEleInvalidateKey(t)}},{key:"getCachesAt",value:function(t){var a=this.cachesByLvl,n=this.lvls,i=a.get(t);if(!i)i=new Yr,a.set(t,i),n.push(t);return i}},{key:"getCache",value:function(t,a){return this.getCachesAt(a).get(t)}},{key:"get",value:function(t,a){var n=this.getKey(t),i=this.getCache(n,a);if(i!=null)this.updateKeyMappingFor(t);return i}},{key:"getForCachedKey",value:function(t,a){var n=this.keyForId.get(t.id()),i=this.getCache(n,a);return i}},{key:"hasCache",value:function(t,a){return this.getCachesAt(a).has(t)}},{key:"has",value:function(t,a){var n=this.getKey(t);return this.hasCache(n,a)}},{key:"setCache",value:function(t,a,n){n.key=t,this.getCachesAt(a).set(t,n)}},{key:"set",value:function(t,a,n){var i=this.getKey(t);this.setCache(i,a,n),this.updateKeyMappingFor(t)}},{key:"deleteCache",value:function(t,a){this.getCachesAt(a).delete(t)}},{key:"delete",value:function(t,a){var n=this.getKey(t);this.deleteCache(n,a)}},{key:"invalidateKey",value:function(t){var a=this;this.lvls.forEach(function(n){return a.deleteCache(t,n)})}},{key:"invalidate",value:function(t){var a=t.id(),n=this.keyForId.get(a);this.deleteKeyMappingFor(t);var i=this.doesEleInvalidateKey(t);if(i)this.invalidateKey(n);return i||this.getNumberOfIdsForKey(n)===0}}])}(),zl=25,sn=50,yn=-4,Ws=3,Df=7.99,vy=8,fy=1024,cy=1024,dy=1024,hy=0.2,gy=0.8,py=10,yy=0.15,my=0.1,by=0.9,wy=0.9,xy=100,Ey=1,Ut={dequeue:"dequeue",downscale:"downscale",highQuality:"highQuality"},Cy=cr({getKey:null,doesEleInvalidateKey:En,drawElement:null,getBoundingBox:null,getRotationPoint:null,getRotationOffset:null,isVisible:hv,allowEdgeTxrCaching:!0,allowParentTxrCaching:!0}),wa=function(e,t){var a=this;a.renderer=e,a.onDequeues=[];var n=Cy(t);me(a,n),a.lookup=new ly(n.getKey,n.doesEleInvalidateKey),a.setupDequeueing()},nr=wa.prototype;nr.reasons=Ut;nr.getTextureQueue=function(r){var e=this;return e.eleImgCaches=e.eleImgCaches||{},e.eleImgCaches[r]=e.eleImgCaches[r]||[]};nr.getRetiredTextureQueue=function(r){var e=this,t=e.eleImgCaches.retired=e.eleImgCaches.retired||{},a=t[r]=t[r]||[];return a};nr.getElementQueue=function(){var r=this,e=r.eleCacheQueue=r.eleCacheQueue||new qa(function(t,a){return a.reqs-t.reqs});return e};nr.getElementKeyToQueue=function(){var r=this,e=r.eleKeyToCacheQueue=r.eleKeyToCacheQueue||{};return e};nr.getElement=function(r,e,t,a,n){var i=this,s=this.renderer,o=s.cy.zoom(),u=this.lookup;if(!e||e.w===0||e.h===0||isNaN(e.w)||isNaN(e.h)||!r.visible()||r.removed())return null;if(!i.allowEdgeTxrCaching&&r.isEdge()||!i.allowParentTxrCaching&&r.isParent())return null;if(a==null)a=Math.ceil(to(o*t));if(a<yn)a=yn;else if(o>=Df||a>Ws)return null;var l=Math.pow(2,a),v=e.h*l,f=e.w*l,c=s.eleTextBiggerThanMin(r,l);if(!this.isVisible(r,c))return null;var h=u.get(r,a);if(h&&h.invalidated)h.invalidated=!1,h.texture.invalidatedWidth-=h.width;if(h)return h;var d;if(v<=zl)d=zl;else if(v<=sn)d=sn;else d=Math.ceil(v/sn)*sn;if(v>dy||f>cy)return null;var y=i.getTextureQueue(d),g=y[y.length-2],p=function(){return i.recycleTexture(d,f)||i.addTexture(d,f)};if(!g)g=y[y.length-1];if(!g)g=p();if(g.width-g.usedWidth<f)g=p();var m=function(I){return I&&I.scaledLabelShown===c},b=n&&n===Ut.dequeue,w=n&&n===Ut.highQuality,E=n&&n===Ut.downscale,C;for(var x=a+1;x<=Ws;x++){var S=u.get(r,x);if(S){C=S;break}}var k=C&&C.level===a+1?C:null,B=function(){g.context.drawImage(k.texture.canvas,k.x,0,k.width,k.height,g.usedWidth,0,f,v)};if(g.context.setTransform(1,0,0,1,0,0),g.context.clearRect(g.usedWidth,0,f,d),m(k))B();else if(m(C))if(w){for(var D=C.level;D>a;D--)k=i.getElement(r,e,t,D,Ut.downscale);B()}else return i.queueElement(r,C.level-1),C;else{var P;if(!b&&!w&&!E)for(var A=a-1;A>=yn;A--){var R=u.get(r,A);if(R){P=R;break}}if(m(P))return i.queueElement(r,a),P;g.context.translate(g.usedWidth,0),g.context.scale(l,l),this.drawElement(g.context,r,e,c,!1),g.context.scale(1/l,1/l),g.context.translate(-g.usedWidth,0)}return h={x:g.usedWidth,texture:g,level:a,scale:l,width:f,height:v,scaledLabelShown:c},g.usedWidth+=Math.ceil(f+vy),g.eleCaches.push(h),u.set(r,a,h),i.checkTextureFullness(g),h};nr.invalidateElements=function(r){for(var e=0;e<r.length;e++)this.invalidateElement(r[e])};nr.invalidateElement=function(r){var e=this,t=e.lookup,a=[],n=t.isInvalid(r);if(!n)return;for(var i=yn;i<=Ws;i++){var s=t.getForCachedKey(r,i);if(s)a.push(s)}var o=t.invalidate(r);if(o)for(var u=0;u<a.length;u++){var l=a[u],v=l.texture;v.invalidatedWidth+=l.width,l.invalidated=!0,e.checkTextureUtility(v)}e.removeFromQueue(r)};nr.checkTextureUtility=function(r){if(r.invalidatedWidth>=hy*r.width)this.retireTexture(r)};nr.checkTextureFullness=function(r){var e=this,t=e.getTextureQueue(r.height);if(r.usedWidth/r.width>gy&&r.fullnessChecks>=py)ft(t,r);else r.fullnessChecks++};nr.retireTexture=function(r){var e=this,t=r.height,a=e.getTextureQueue(t),n=this.lookup;ft(a,r),r.retired=!0;var i=r.eleCaches;for(var s=0;s<i.length;s++){var o=i[s];n.deleteCache(o.key,o.level)}ro(i);var u=e.getRetiredTextureQueue(t);u.push(r)};nr.addTexture=function(r,e){var t=this,a=t.getTextureQueue(r),n={};return a.push(n),n.eleCaches=[],n.height=r,n.width=Math.max(fy,e),n.usedWidth=0,n.invalidatedWidth=0,n.fullnessChecks=0,n.canvas=t.renderer.makeOffscreenCanvas(n.width,n.height),n.context=n.canvas.getContext("2d"),n};nr.recycleTexture=function(r,e){var t=this,a=t.getTextureQueue(r),n=t.getRetiredTextureQueue(r);for(var i=0;i<n.length;i++){var s=n[i];if(s.width>=e)return s.retired=!1,s.usedWidth=0,s.invalidatedWidth=0,s.fullnessChecks=0,ro(s.eleCaches),s.context.setTransform(1,0,0,1,0,0),s.context.clearRect(0,0,s.width,s.height),ft(n,s),a.push(s),s}};nr.queueElement=function(r,e){var t=this,a=t.getElementQueue(),n=t.getElementKeyToQueue(),i=this.getKey(r),s=n[i];if(s)s.level=Math.max(s.level,e),s.eles.merge(r),s.reqs++,a.updateItem(s);else{var o={eles:r.spawn().merge(r),level:e,reqs:1,key:i};a.push(o),n[i]=o}};nr.dequeue=function(r){var e=this,t=e.getElementQueue(),a=e.getElementKeyToQueue(),n=[],i=e.lookup;for(var s=0;s<Ey;s++)if(t.size()>0){var o=t.pop(),u=o.key,l=o.eles[0],v=i.hasCache(l,o.level);if(a[u]=null,v)continue;n.push(o);var f=e.getBoundingBox(l);e.getElement(l,f,r,o.level,Ut.dequeue)}else break;return n};nr.removeFromQueue=function(r){var e=this,t=e.getElementQueue(),a=e.getElementKeyToQueue(),n=this.getKey(r),i=a[n];if(i!=null)if(i.eles.length===1)i.reqs=js,t.updateItem(i),t.pop(),a[n]=null;else i.eles.unmerge(r)};nr.onDequeue=function(r){this.onDequeues.push(r)};nr.offDequeue=function(r){ft(this.onDequeues,r)};nr.setupDequeueing=kf.setupDequeueing({deqRedrawThreshold:xy,deqCost:yy,deqAvgCost:my,deqNoDrawCost:by,deqFastCost:wy,deq:function(e,t,a){return e.dequeue(t,a)},onDeqd:function(e,t){for(var a=0;a<e.onDequeues.length;a++){var n=e.onDequeues[a];n(t)}},shouldRedraw:function(e,t,a,n){for(var i=0;i<t.length;i++){var s=t[i].eles;for(var o=0;o<s.length;o++){var u=s[o].boundingBox();if(no(u,n))return!0}}return!1},priority:function(e){return e.renderer.beforeRenderPriorities.eleTxrDeq}});var Ty=1,Ea=-4,An=2,Sy=3.99,ky=50,Dy=50,By=0.15,Py=0.1,Ay=0.9,Ry=0.9,My=1,Fl=250,Ly=16000000,Vl=32767,Iy=!0,Bf=function(e){var t=this,a=t.renderer=e,n=a.cy;t.layersByLevel={},t.firstGet=!0,t.lastInvalidationTime=Zr()-2*Fl,t.skipping=!1,t.eleTxrDeqs=n.collection(),t.scheduleElementRefinement=Va(function(){t.refineElementTextures(t.eleTxrDeqs),t.eleTxrDeqs.unmerge(t.eleTxrDeqs)},Dy),a.beforeRender(function(s,o){if(o-t.lastInvalidationTime<=Fl)t.skipping=!0;else t.skipping=!1},a.beforeRenderPriorities.lyrTxrSkip);var i=function(o,u){return u.reqs-o.reqs};t.layersQueue=new qa(i),t.setupDequeueing()},dr=Bf.prototype,ql=0,Oy=Math.pow(2,53)-1;dr.makeLayer=function(r,e){var t=Math.pow(2,e),a=Math.ceil(r.w*t),n=Math.ceil(r.h*t),i=this.renderer.makeOffscreenCanvas(a,n),s={id:ql=++ql%Oy,bb:r,level:e,width:a,height:n,canvas:i,context:i.getContext("2d"),eles:[],elesQueue:[],reqs:0},o=s.context,u=-s.bb.x1,l=-s.bb.y1;return o.scale(t,t),o.translate(u,l),s};dr.getLayers=function(r,e,t){var a=this,n=a.renderer,i=n.cy,s=i.zoom(),o=a.firstGet;if(a.firstGet=!1,t==null){if(t=Math.ceil(to(s*e)),t<Ea)t=Ea;else if(s>=Sy||t>An)return null}a.validateLayersElesOrdering(t,r);var u=a.layersByLevel,l=Math.pow(2,t),v=u[t]=u[t]||[],f,c=a.levelIsComplete(t,r),h,d=function(){var B=function(L){if(a.validateLayersElesOrdering(L,r),a.levelIsComplete(L,r))return h=u[L],!0},D=function(L){if(h)return;for(var I=t+L;Ea<=I&&I<=An;I+=L)if(B(I))break};D(1),D(-1);for(var P=v.length-1;P>=0;P--){var A=v[P];if(A.invalid)ft(v,A)}};if(!c)d();else return v;var y=function(){if(!f){f=wr();for(var B=0;B<r.length;B++)Pd(f,r[B].boundingBox())}return f},g=function(B){B=B||{};var D=B.after;y();var P=Math.ceil(f.w*l),A=Math.ceil(f.h*l);if(P>Vl||A>Vl)return null;var R=P*A;if(R>Ly)return null;var L=a.makeLayer(f,t);if(D!=null){var I=v.indexOf(D)+1;v.splice(I,0,L)}else if(B.insert===void 0||B.insert)v.unshift(L);return L};if(a.skipping&&!o)return null;var p=null,m=r.length/Ty,b=!o;for(var w=0;w<r.length;w++){var E=r[w],C=E._private.rscratch,x=C.imgLayerCaches=C.imgLayerCaches||{},S=x[t];if(S){p=S;continue}if(!p||p.eles.length>=m||!wv(p.bb,E.boundingBox())){if(p=g({insert:!0,after:p}),!p)return null}if(h||b)a.queueLayer(p,E);else a.drawEleInLayer(p,E,t,e);p.eles.push(E),x[t]=p}if(h)return h;if(b)return null;return v};dr.getEleLevelForLayerLevel=function(r,e){return r};dr.drawEleInLayer=function(r,e,t,a){var n=this,i=this.renderer,s=r.context,o=e.boundingBox();if(o.w===0||o.h===0||!e.visible())return;t=n.getEleLevelForLayerLevel(t,a),i.setImgSmoothing(s,!1),i.drawCachedElement(s,e,null,null,t,Iy),i.setImgSmoothing(s,!0)};dr.levelIsComplete=function(r,e){var t=this,a=t.layersByLevel[r];if(!a||a.length===0)return!1;var n=0;for(var i=0;i<a.length;i++){var s=a[i];if(s.reqs>0)return!1;if(s.invalid)return!1;n+=s.eles.length}if(n!==e.length)return!1;return!0};dr.validateLayersElesOrdering=function(r,e){var t=this.layersByLevel[r];if(!t)return;for(var a=0;a<t.length;a++){var n=t[a],i=-1;for(var s=0;s<e.length;s++)if(n.eles[0]===e[s]){i=s;break}if(i<0){this.invalidateLayer(n);continue}var o=i;for(var s=0;s<n.eles.length;s++)if(n.eles[s]!==e[o+s]){this.invalidateLayer(n);break}}};dr.updateElementsInLayers=function(r,e){var t=this,a=Oa(r[0]);for(var n=0;n<r.length;n++){var i=a?null:r[n],s=a?r[n]:r[n].ele,o=s._private.rscratch,u=o.imgLayerCaches=o.imgLayerCaches||{};for(var l=Ea;l<=An;l++){var v=u[l];if(!v)continue;if(i&&t.getEleLevelForLayerLevel(v.level)!==i.level)continue;e(v,s,i)}}};dr.haveLayers=function(){var r=this,e=!1;for(var t=Ea;t<=An;t++){var a=r.layersByLevel[t];if(a&&a.length>0){e=!0;break}}return e};dr.invalidateElements=function(r){var e=this;if(r.length===0)return;if(e.lastInvalidationTime=Zr(),r.length===0||!e.haveLayers())return;e.updateElementsInLayers(r,function(a,n,i){e.invalidateLayer(a)})};dr.invalidateLayer=function(r){if(this.lastInvalidationTime=Zr(),r.invalid)return;var{level:e,eles:t}=r,a=this.layersByLevel[e];if(ft(a,r),r.elesQueue=[],r.invalid=!0,r.replacement)r.replacement.invalid=!0;for(var n=0;n<t.length;n++){var i=t[n]._private.rscratch.imgLayerCaches;if(i)i[e]=null}};dr.refineElementTextures=function(r){var e=this;e.updateElementsInLayers(r,function(a,n,i){var s=a.replacement;if(!s)s=a.replacement=e.makeLayer(a.bb,a.level),s.replaces=a,s.eles=a.eles;if(!s.reqs)for(var o=0;o<s.eles.length;o++)e.queueLayer(s,s.eles[o])})};dr.enqueueElementRefinement=function(r){this.eleTxrDeqs.merge(r),this.scheduleElementRefinement()};dr.queueLayer=function(r,e){var t=this,a=t.layersQueue,n=r.elesQueue,i=n.hasId=n.hasId||{};if(r.replacement)return;if(e){if(i[e.id()])return;n.push(e),i[e.id()]=!0}if(r.reqs)r.reqs++,a.updateItem(r);else r.reqs=1,a.push(r)};dr.dequeue=function(r){var e=this,t=e.layersQueue,a=[],n=0;while(n<My){if(t.size()===0)break;var i=t.peek();if(i.replacement){t.pop();continue}if(i.replaces&&i!==i.replaces.replacement){t.pop();continue}if(i.invalid){t.pop();continue}var s=i.elesQueue.shift();if(s)e.drawEleInLayer(i,s,i.level,r),n++;if(a.length===0)a.push(!0);if(i.elesQueue.length===0){if(t.pop(),i.reqs=0,i.replaces)e.applyLayerReplacement(i);e.requestRedraw()}}return a};dr.applyLayerReplacement=function(r){var e=this,t=e.layersByLevel[r.level],a=r.replaces,n=t.indexOf(a);if(n<0||a.invalid)return;t[n]=r;for(var i=0;i<r.eles.length;i++){var s=r.eles[i]._private,o=s.imgLayerCaches=s.imgLayerCaches||{};if(o)o[r.level]=r}e.requestRedraw()};dr.requestRedraw=Va(function(){var r=this.renderer;r.redrawHint("eles",!0),r.redrawHint("drag",!0),r.redraw()},100);dr.setupDequeueing=kf.setupDequeueing({deqRedrawThreshold:ky,deqCost:By,deqAvgCost:Py,deqNoDrawCost:Ay,deqFastCost:Ry,deq:function(e,t){return e.dequeue(t)},onDeqd:eo,shouldRedraw:hv,priority:function(e){return e.renderer.beforeRenderPriorities.lyrTxrDeq}});var Pf={},_l;function Ny(r,e){for(var t=0;t<e.length;t++){var a=e[t];r.lineTo(a.x,a.y)}}function zy(r,e,t){var a;for(var n=0;n<e.length;n++){var i=e[n];if(n===0)a=i;r.lineTo(i.x,i.y)}r.quadraticCurveTo(t.x,t.y,a.x,a.y)}function Gl(r,e,t){if(r.beginPath)r.beginPath();var a=e;for(var n=0;n<a.length;n++){var i=a[n];r.lineTo(i.x,i.y)}var s=t,o=t[0];r.moveTo(o.x,o.y);for(var n=1;n<s.length;n++){var i=s[n];r.lineTo(i.x,i.y)}if(r.closePath)r.closePath()}function Fy(r,e,t,a,n){if(r.beginPath)r.beginPath();r.arc(t,a,n,0,Math.PI*2,!1);var i=e,s=i[0];r.moveTo(s.x,s.y);for(var o=0;o<i.length;o++){var u=i[o];r.lineTo(u.x,u.y)}if(r.closePath)r.closePath()}function Vy(r,e,t,a){r.arc(e,t,a,0,Math.PI*2,!1)}Pf.arrowShapeImpl=function(r){return(_l||(_l={polygon:Ny,"triangle-backcurve":zy,"triangle-tee":Gl,"circle-triangle":Fy,"triangle-cross":Gl,circle:Vy}))[r]};var Ur={};Ur.drawElement=function(r,e,t,a,n,i){var s=this;if(e.isNode())s.drawNode(r,e,t,a,n,i);else s.drawEdge(r,e,t,a,n,i)};Ur.drawElementOverlay=function(r,e){var t=this;if(e.isNode())t.drawNodeOverlay(r,e);else t.drawEdgeOverlay(r,e)};Ur.drawElementUnderlay=function(r,e){var t=this;if(e.isNode())t.drawNodeUnderlay(r,e);else t.drawEdgeUnderlay(r,e)};Ur.drawCachedElementPortion=function(r,e,t,a,n,i,s,o){var u=this,l=t.getBoundingBox(e);if(l.w===0||l.h===0)return;var v=t.getElement(e,l,a,n,i);if(v!=null){var f=o(u,e);if(f===0)return;var c=s(u,e),{x1:h,y1:d,w:y,h:g}=l,p,m,b,w,E;if(c!==0){var C=t.getRotationPoint(e);if(b=C.x,w=C.y,r.translate(b,w),r.rotate(c),E=u.getImgSmoothing(r),!E)u.setImgSmoothing(r,!0);var x=t.getRotationOffset(e);p=x.x,m=x.y}else p=h,m=d;var S;if(f!==1)S=r.globalAlpha,r.globalAlpha=S*f;if(r.drawImage(v.texture.canvas,v.x,0,v.width,v.height,p,m,y,g),f!==1)r.globalAlpha=S;if(c!==0){if(r.rotate(-c),r.translate(-b,-w),!E)u.setImgSmoothing(r,!1)}}else t.drawElement(r,e)};var qy=function(){return 0},_y=function(e,t){return e.getTextAngle(t,null)},Gy=function(e,t){return e.getTextAngle(t,"source")},Hy=function(e,t){return e.getTextAngle(t,"target")},Wy=function(e,t){return t.effectiveOpacity()},Es=function(e,t){return t.pstyle("text-opacity").pfValue*t.effectiveOpacity()};Ur.drawCachedElement=function(r,e,t,a,n,i){var s=this,o=s.data,{eleTxrCache:u,lblTxrCache:l,slbTxrCache:v,tlbTxrCache:f}=o,c=e.boundingBox(),h=i===!0?u.reasons.highQuality:null;if(c.w===0||c.h===0||!e.visible())return;if(!a||no(c,a)){var d=e.isEdge(),y=e.element()._private.rscratch.badLine;if(s.drawElementUnderlay(r,e),s.drawCachedElementPortion(r,e,u,t,n,h,qy,Wy),!d||!y)s.drawCachedElementPortion(r,e,l,t,n,h,_y,Es);if(d&&!y)s.drawCachedElementPortion(r,e,v,t,n,h,Gy,Es),s.drawCachedElementPortion(r,e,f,t,n,h,Hy,Es);s.drawElementOverlay(r,e)}};Ur.drawElements=function(r,e){var t=this;for(var a=0;a<e.length;a++){var n=e[a];t.drawElement(r,n)}};Ur.drawCachedElements=function(r,e,t,a){var n=this;for(var i=0;i<e.length;i++){var s=e[i];n.drawCachedElement(r,s,t,a)}};Ur.drawCachedNodes=function(r,e,t,a){var n=this;for(var i=0;i<e.length;i++){var s=e[i];if(!s.isNode())continue;n.drawCachedElement(r,s,t,a)}};Ur.drawLayeredElements=function(r,e,t,a){var n=this,i=n.data.lyrTxrCache.getLayers(e,t);if(i)for(var s=0;s<i.length;s++){var o=i[s],u=o.bb;if(u.w===0||u.h===0)continue;r.drawImage(o.canvas,u.x1,u.y1,u.w,u.h)}else n.drawCachedElements(r,e,t,a)};var jr={};jr.drawEdge=function(r,e,t){var a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,n=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,s=this,o=e._private.rscratch;if(i&&!e.visible())return;if(o.badLine||o.allpts==null||isNaN(o.allpts[0]))return;var u;if(t)u=t,r.translate(-u.x1,-u.y1);var l=i?e.pstyle("opacity").value:1,v=i?e.pstyle("line-opacity").value:1,f=e.pstyle("curve-style").value,c=e.pstyle("line-style").value,h=e.pstyle("width").pfValue,d=e.pstyle("line-cap").value,y=e.pstyle("line-outline-width").value,g=e.pstyle("line-outline-color").value,p=l*v,m=l*v,b=function(){var L=arguments.length>0&&arguments[0]!==void 0?arguments[0]:p;if(f==="straight-triangle")s.eleStrokeStyle(r,e,L),s.drawEdgeTrianglePath(e,r,o.allpts);else r.lineWidth=h,r.lineCap=d,s.eleStrokeStyle(r,e,L),s.drawEdgePath(e,r,o.allpts,c),r.lineCap="butt"},w=function(){var L=arguments.length>0&&arguments[0]!==void 0?arguments[0]:p;if(r.lineWidth=h+y,r.lineCap=d,y>0)s.colorStrokeStyle(r,g[0],g[1],g[2],L);else{r.lineCap="butt";return}if(f==="straight-triangle")s.drawEdgeTrianglePath(e,r,o.allpts);else s.drawEdgePath(e,r,o.allpts,c),r.lineCap="butt"},E=function(){if(!n)return;s.drawEdgeOverlay(r,e)},C=function(){if(!n)return;s.drawEdgeUnderlay(r,e)},x=function(){var L=arguments.length>0&&arguments[0]!==void 0?arguments[0]:m;s.drawArrowheads(r,e,L)},S=function(){s.drawElementText(r,e,null,a)};r.lineJoin="round";var k=e.pstyle("ghost").value==="yes";if(k){var B=e.pstyle("ghost-offset-x").pfValue,D=e.pstyle("ghost-offset-y").pfValue,P=e.pstyle("ghost-opacity").value,A=p*P;r.translate(B,D),b(A),x(A),r.translate(-B,-D)}else w();if(C(),b(),x(),E(),S(),t)r.translate(u.x1,u.y1)};var Af=function(e){if(!["overlay","underlay"].includes(e))throw Error("Invalid state");return function(t,a){if(!a.visible())return;var n=a.pstyle("".concat(e,"-opacity")).value;if(n===0)return;var i=this,s=i.usePaths(),o=a._private.rscratch,u=a.pstyle("".concat(e,"-padding")).pfValue,l=2*u,v=a.pstyle("".concat(e,"-color")).value;if(t.lineWidth=l,o.edgeType==="self"&&!s)t.lineCap="butt";else t.lineCap="round";i.colorStrokeStyle(t,v[0],v[1],v[2],n),i.drawEdgePath(a,t,o.allpts,"solid")}};jr.drawEdgeOverlay=Af("overlay");jr.drawEdgeUnderlay=Af("underlay");jr.drawEdgePath=function(r,e,t,a){var n=r._private.rscratch,i=e,s,o=!1,u=this.usePaths(),l=r.pstyle("line-dash-pattern").pfValue,v=r.pstyle("line-dash-offset").pfValue;if(u){var f=t.join("$"),c=n.pathCacheKey&&n.pathCacheKey===f;if(c)s=e=n.pathCache,o=!0;else s=e=new Path2D,n.pathCacheKey=f,n.pathCache=s}if(i.setLineDash)switch(a){case"dotted":i.setLineDash([1,1]);break;case"dashed":i.setLineDash(l),i.lineDashOffset=v;break;case"solid":i.setLineDash([]);break}if(!o&&!n.badLine){if(e.beginPath)e.beginPath();switch(e.moveTo(t[0],t[1]),n.edgeType){case"bezier":case"self":case"compound":case"multibezier":for(var h=2;h+3<t.length;h+=4)e.quadraticCurveTo(t[h],t[h+1],t[h+2],t[h+3]);break;case"straight":case"haystack":for(var d=2;d+1<t.length;d+=2)e.lineTo(t[d],t[d+1]);break;case"segments":if(n.isRound){var y=Sr(n.roundCorners),g;try{for(y.s();!(g=y.n()).done;){var p=g.value;yf(e,p)}}catch(b){y.e(b)}finally{y.f()}e.lineTo(t[t.length-2],t[t.length-1])}else for(var m=2;m+1<t.length;m+=2)e.lineTo(t[m],t[m+1]);break}}if(e=i,u)e.stroke(s);else e.stroke();if(e.setLineDash)e.setLineDash([])};jr.drawEdgeTrianglePath=function(r,e,t){e.fillStyle=e.strokeStyle;var a=r.pstyle("width").pfValue;for(var n=0;n+1<t.length;n+=2){var i=[t[n+2]-t[n],t[n+3]-t[n+1]],s=Math.sqrt(i[0]*i[0]+i[1]*i[1]),o=[i[1]/s,-i[0]/s],u=[o[0]*a/2,o[1]*a/2];e.beginPath(),e.moveTo(t[n]-u[0],t[n+1]-u[1]),e.lineTo(t[n]+u[0],t[n+1]+u[1]),e.lineTo(t[n+2],t[n+3]),e.closePath(),e.fill()}};jr.drawArrowheads=function(r,e,t){var a=e._private.rscratch,n=a.edgeType==="haystack";if(!n)this.drawArrowhead(r,e,"source",a.arrowStartX,a.arrowStartY,a.srcArrowAngle,t);if(this.drawArrowhead(r,e,"mid-target",a.midX,a.midY,a.midtgtArrowAngle,t),this.drawArrowhead(r,e,"mid-source",a.midX,a.midY,a.midsrcArrowAngle,t),!n)this.drawArrowhead(r,e,"target",a.arrowEndX,a.arrowEndY,a.tgtArrowAngle,t)};jr.drawArrowhead=function(r,e,t,a,n,i,s){if(isNaN(a)||a==null||isNaN(n)||n==null||isNaN(i)||i==null)return;var o=this,u=e.pstyle(t+"-arrow-shape").value;if(u==="none")return;var l=e.pstyle(t+"-arrow-fill").value==="hollow"?"both":"filled",v=e.pstyle(t+"-arrow-fill").value,f=e.pstyle("width").pfValue,c=e.pstyle(t+"-arrow-width"),h=c.value==="match-line"?f:c.pfValue;if(c.units==="%")h*=f;var d=e.pstyle("opacity").value;if(s===void 0)s=d;var y=r.globalCompositeOperation;if(s!==1||v==="hollow")r.globalCompositeOperation="destination-out",o.colorFillStyle(r,255,255,255,1),o.colorStrokeStyle(r,255,255,255,1),o.drawArrowShape(e,r,l,f,u,h,a,n,i),r.globalCompositeOperation=y;var g=e.pstyle(t+"-arrow-color").value;o.colorFillStyle(r,g[0],g[1],g[2],s),o.colorStrokeStyle(r,g[0],g[1],g[2],s),o.drawArrowShape(e,r,v,f,u,h,a,n,i)};jr.drawArrowShape=function(r,e,t,a,n,i,s,o,u){var l=this,v=this.usePaths()&&n!=="triangle-cross",f=!1,c,h=e,d={x:s,y:o},y=r.pstyle("arrow-scale").value,g=this.getArrowWidth(a,y),p=l.arrowShapes[n];if(v){var m=l.arrowPathCache=l.arrowPathCache||[],b=Pt(n),w=m[b];if(w!=null)c=e=w,f=!0;else c=e=new Path2D,m[b]=c}if(!f){if(e.beginPath)e.beginPath();if(v)p.draw(e,1,0,{x:0,y:0},1);else p.draw(e,g,u,d,a);if(e.closePath)e.closePath()}if(e=h,v)e.translate(s,o),e.rotate(u),e.scale(g,g);if(t==="filled"||t==="both")if(v)e.fill(c);else e.fill();if(t==="hollow"||t==="both")if(e.lineWidth=i/(v?g:1),e.lineJoin="miter",v)e.stroke(c);else e.stroke();if(v)e.scale(1/g,1/g),e.rotate(-u),e.translate(-s,-o)};var bo={};bo.safeDrawImage=function(r,e,t,a,n,i,s,o,u,l){if(n<=0||i<=0||u<=0||l<=0)return;try{r.drawImage(e,t,a,n,i,s,o,u,l)}catch(v){Ve(v)}};bo.drawInscribedImage=function(r,e,t,a,n){var i=this,s=t.position(),{x:o,y:u}=s,l=t.cy().style(),v=l.getIndexedStyle.bind(l),f=v(t,"background-fit","value",a),c=v(t,"background-repeat","value",a),h=t.width(),d=t.height(),y=t.padding()*2,g=h+(v(t,"background-width-relative-to","value",a)==="inner"?0:y),p=d+(v(t,"background-height-relative-to","value",a)==="inner"?0:y),m=t._private.rscratch,b=v(t,"background-clip","value",a),w=b==="node",E=v(t,"background-image-opacity","value",a)*n,C=v(t,"background-image-smoothing","value",a),x=t.pstyle("corner-radius").value;if(x!=="auto")x=t.pstyle("corner-radius").pfValue;var S=e.width||e.cachedW,k=e.height||e.cachedH;if(S==null||k==null)document.body.appendChild(e),S=e.cachedW=e.width||e.offsetWidth,k=e.cachedH=e.height||e.offsetHeight,document.body.removeChild(e);var B=S,D=k;if(v(t,"background-width","value",a)!=="auto")if(v(t,"background-width","units",a)==="%")B=v(t,"background-width","pfValue",a)*g;else B=v(t,"background-width","pfValue",a);if(v(t,"background-height","value",a)!=="auto")if(v(t,"background-height","units",a)==="%")D=v(t,"background-height","pfValue",a)*p;else D=v(t,"background-height","pfValue",a);if(B===0||D===0)return;if(f==="contain"){var P=Math.min(g/B,p/D);B*=P,D*=P}else if(f==="cover"){var P=Math.max(g/B,p/D);B*=P,D*=P}var A=o-g/2,R=v(t,"background-position-x","units",a),L=v(t,"background-position-x","pfValue",a);if(R==="%")A+=(g-B)*L;else A+=L;var I=v(t,"background-offset-x","units",a),M=v(t,"background-offset-x","pfValue",a);if(I==="%")A+=(g-B)*M;else A+=M;var O=u-p/2,q=v(t,"background-position-y","units",a),_=v(t,"background-position-y","pfValue",a);if(q==="%")O+=(p-D)*_;else O+=_;var N=v(t,"background-offset-y","units",a),V=v(t,"background-offset-y","pfValue",a);if(N==="%")O+=(p-D)*V;else O+=V;if(m.pathCache)A-=o,O-=u,o=0,u=0;var Z=r.globalAlpha;r.globalAlpha=E;var j=i.getImgSmoothing(r),Q=!1;if(C==="no"&&j)i.setImgSmoothing(r,!1),Q=!0;else if(C==="yes"&&!j)i.setImgSmoothing(r,!0),Q=!0;if(c==="no-repeat"){if(w)if(r.save(),m.pathCache)r.clip(m.pathCache);else i.nodeShapes[i.getNodeShape(t)].draw(r,o,u,g,p,x,m),r.clip();if(i.safeDrawImage(r,e,0,0,S,k,A,O,B,D),w)r.restore()}else{var re=r.createPattern(e,c);r.fillStyle=re,i.nodeShapes[i.getNodeShape(t)].draw(r,o,u,g,p,x,m),r.translate(A,O),r.fill(),r.translate(-A,-O)}if(r.globalAlpha=Z,Q)i.setImgSmoothing(r,j)};var Ot={};Ot.eleTextBiggerThanMin=function(r,e){if(!e){var t=r.cy().zoom(),a=this.getPixelRatio(),n=Math.ceil(to(t*a));e=Math.pow(2,n)}var i=r.pstyle("font-size").pfValue*e,s=r.pstyle("min-zoomed-font-size").pfValue;if(i<s)return!1;return!0};Ot.drawElementText=function(r,e,t,a,n){var i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,s=this;if(a==null){if(i&&!s.eleTextBiggerThanMin(e))return}else if(a===!1)return;if(e.isNode()){var o=e.pstyle("label");if(!o||!o.value)return;var u=s.getLabelJustification(e),l=e.pstyle("text-metrics").strValue==="glyph";r.textAlign=u,r.textBaseline=l?"alphabetic":"bottom"}else{var v=e.element()._private.rscratch.badLine,f=e.pstyle("label"),c=e.pstyle("source-label"),h=e.pstyle("target-label");if(v||(!f||!f.value)&&(!c||!c.value)&&(!h||!h.value))return;r.textAlign="center",r.textBaseline="bottom"}var d=!t,y;if(t)y=t,r.translate(-y.x1,-y.y1);if(n==null){if(s.drawText(r,e,null,d,i),e.isEdge())s.drawText(r,e,"source",d,i),s.drawText(r,e,"target",d,i)}else s.drawText(r,e,n,d,i);if(t)r.translate(y.x1,y.y1)};Ot.getFontCache=function(r){var e;this.fontCaches=this.fontCaches||[];for(var t=0;t<this.fontCaches.length;t++)if(e=this.fontCaches[t],e.context===r)return e;return e={context:r},this.fontCaches.push(e),e};Ot.setupTextStyle=function(r,e){var t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,a=e.pstyle("font-style").strValue,n=e.pstyle("font-size").pfValue+"px",i=e.pstyle("font-family").strValue,s=e.pstyle("font-weight").strValue,o=t?e.effectiveOpacity()*e.pstyle("text-opacity").value:1,u=e.pstyle("text-outline-opacity").value*o,l=e.pstyle("color").value,v=e.pstyle("text-outline-color").value;r.font=a+" "+s+" "+n+" "+i,r.lineJoin="round",this.colorFillStyle(r,l[0],l[1],l[2],o),this.colorStrokeStyle(r,v[0],v[1],v[2],u)};function $y(r,e,t,a,n){var i=Math.min(a,n),s=i/2,o=e+a/2,u=t+n/2;r.beginPath(),r.arc(o,u,s,0,Math.PI*2),r.closePath()}function Hl(r,e,t,a,n){var i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:5,s=Math.min(i,a/2,n/2);r.beginPath(),r.moveTo(e+s,t),r.lineTo(e+a-s,t),r.quadraticCurveTo(e+a,t,e+a,t+s),r.lineTo(e+a,t+n-s),r.quadraticCurveTo(e+a,t+n,e+a-s,t+n),r.lineTo(e+s,t+n),r.quadraticCurveTo(e,t+n,e,t+n-s),r.lineTo(e,t+s),r.quadraticCurveTo(e,t,e+s,t),r.closePath()}Ot.getTextAngle=function(r,e){var t,a=r._private,n=a.rscratch,i=e?e+"-":"",s=r.pstyle(i+"text-rotation");if(s.strValue==="autorotate"){var o=br(n,"labelAngle",e);t=r.isEdge()?o:0}else if(s.strValue==="none")t=0;else t=s.pfValue;return t};Ot.drawText=function(r,e,t){var a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,n=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,i=e._private,s=i.rscratch,o=n?e.effectiveOpacity():1;if(n&&(o===0||e.pstyle("text-opacity").value===0))return;if(t==="main")t=null;var u=br(s,"labelX",t),l=br(s,"labelY",t),v,f,c=this.getLabelText(e,t);if(c!=null&&c!==""&&!isNaN(u)&&!isNaN(l)){this.setupTextStyle(r,e,n);var h=t?t+"-":"",d=br(s,"labelWidth",t),y=br(s,"labelHeight",t),g=br(s,"labelActualDescent",t),p=e.pstyle(h+"text-margin-x").pfValue,m=e.pstyle(h+"text-margin-y").pfValue,b=e.isEdge(),w=e.pstyle("text-halign").value,E=e.pstyle("text-valign").value;if(b)w="center",E="center";u+=p,l+=m;var C;if(!a)C=0;else C=this.getTextAngle(e,t);if(C!==0)v=u,f=l,r.translate(v,f),r.rotate(C),u=0,l=0;var x=ea(w),S=ra(E);switch(S){case"top":break;case"center":l+=y/2;break;case"bottom":l+=y;break}var k=e.pstyle("text-background-opacity").value,B=e.pstyle("text-border-opacity").value,D=e.pstyle("text-border-width").pfValue,P=e.pstyle("text-background-padding").pfValue,A=e.pstyle("text-background-shape").strValue,R=A==="round-rectangle"||A==="roundrectangle",L=A==="circle",I=2;if(k>0||D>0&&B>0){var{fillStyle:M,strokeStyle:O,lineWidth:q}=r,_=e.pstyle("text-background-color").value,N=e.pstyle("text-border-color").value,V=e.pstyle("text-border-style").value,Z=k>0,j=D>0&&B>0,Q=u-P;switch(x){case"left":Q-=d;break;case"center":Q-=d/2;break}var re=l-y-P,te=d+2*P,ie=y+2*P;if(Z)r.fillStyle="rgba(".concat(_[0],",").concat(_[1],",").concat(_[2],",").concat(k*o,")");if(j){if(r.strokeStyle="rgba(".concat(N[0],",").concat(N[1],",").concat(N[2],",").concat(B*o,")"),r.lineWidth=D,r.setLineDash)switch(V){case"dotted":r.setLineDash([1,1]);break;case"dashed":r.setLineDash([4,2]);break;case"double":r.lineWidth=D/4,r.setLineDash([]);break;case"solid":default:r.setLineDash([]);break}}if(R)r.beginPath(),Hl(r,Q,re,te,ie,I);else if(L)r.beginPath(),$y(r,Q,re,te,ie);else r.beginPath(),r.rect(Q,re,te,ie);if(Z)r.fill();if(j)r.stroke();if(j&&V==="double"){var Y=D/2;if(r.beginPath(),R)Hl(r,Q+Y,re+Y,te-2*Y,ie-2*Y,I);else r.rect(Q+Y,re+Y,te-2*Y,ie-2*Y);r.stroke()}if(r.fillStyle=M,r.strokeStyle=O,r.lineWidth=q,r.setLineDash)r.setLineDash([])}var F=2*e.pstyle("text-outline-width").pfValue;if(F>0)r.lineWidth=F;if(l-=g,e.pstyle("text-wrap").value==="wrap"){var H=br(s,"labelWrapCachedLines",t),W=br(s,"labelLineHeight",t),K=d/2,ae=this.getLabelJustification(e);if(ae==="auto");else if(x==="left"){if(ae==="left")u+=-d;else if(ae==="center")u+=-K}else if(x==="center"){if(ae==="left")u+=-K;else if(ae==="right")u+=K}else if(x==="right"){if(ae==="center")u+=K;else if(ae==="right")u+=d}switch(S){case"top":l-=(H.length-1)*W;break;case"center":case"bottom":l-=(H.length-1)*W;break}for(var ve=0;ve<H.length;ve++){if(F>0)r.strokeText(H[ve],u,l);r.fillText(H[ve],u,l),l+=W}}else{if(F>0)r.strokeText(c,u,l);r.fillText(c,u,l)}if(C!==0)r.rotate(-C),r.translate(-v,-f)}};var bt={};bt.drawNode=function(r,e,t){var a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,n=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,s=this,o,u,l=e._private,v=l.rscratch,f=e.position();if(!ne(f.x)||!ne(f.y))return;if(i&&!e.visible())return;var c=i?e.effectiveOpacity():1,h=s.usePaths(),d,y=!1,g=e.padding();o=e.width()+2*g,u=e.height()+2*g;var p;if(t)p=t,r.translate(-p.x1,-p.y1);var m=e.pstyle("background-image"),b=m.value,w=Array(b.length),E=Array(b.length),C=0;for(var x=0;x<b.length;x++){var S=b[x],k=w[x]=S!=null&&S!=="none";if(k){var B=e.cy().style().getIndexedStyle(e,"background-image-crossorigin","value",x);C++,E[x]=s.getCachedImage(S,B,function(){l.backgroundTimestamp=Date.now(),e.emitAndNotify("background")})}}var D=e.pstyle("background-blacken").value,P=e.pstyle("border-width").pfValue,A=e.pstyle("background-opacity").value*c,R=e.pstyle("border-color").value,L=e.pstyle("border-style").value,I=e.pstyle("border-join").value,M=e.pstyle("border-cap").value,O=e.pstyle("border-position").value,q=e.pstyle("border-dash-pattern").pfValue,_=e.pstyle("border-dash-offset").pfValue,N=e.pstyle("border-opacity").value*c,V=e.pstyle("outline-width").pfValue,Z=e.pstyle("outline-color").value,j=e.pstyle("outline-style").value,Q=e.pstyle("outline-opacity").value*c,re=e.pstyle("outline-offset").value,te=e.pstyle("corner-radius").value;if(te!=="auto")te=e.pstyle("corner-radius").pfValue;var ie=function(){var T=arguments.length>0&&arguments[0]!==void 0?arguments[0]:A;s.eleFillStyle(r,e,T)},Y=function(){var T=arguments.length>0&&arguments[0]!==void 0?arguments[0]:N;s.colorStrokeStyle(r,R[0],R[1],R[2],T)},F=function(){var T=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Q;s.colorStrokeStyle(r,Z[0],Z[1],Z[2],T)},H=function(T,z,G,U){var X=s.nodePathCache=s.nodePathCache||[],fe=dv(G==="polygon"?G+","+U.join(","):G,""+z,""+T,""+te),ee=X[fe],se,ue=!1;if(ee!=null)se=ee,ue=!0,v.pathCache=se;else se=new Path2D,X[fe]=v.pathCache=se;return{path:se,cacheHit:ue}},W=e.pstyle("shape").strValue,K=e.pstyle("shape-polygon-points").pfValue;if(h){r.translate(f.x,f.y);var ae=H(o,u,W,K);d=ae.path,y=ae.cacheHit}var ve=function(){if(!y){var T=f;if(h)T={x:0,y:0};s.nodeShapes[s.getNodeShape(e)].draw(d||r,T.x,T.y,o,u,te,v)}if(h)r.fill(d);else r.fill()},Be=function(){var T=arguments.length>0&&arguments[0]!==void 0?arguments[0]:c,z=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,G=l.backgrounding,U=0;for(var X=0;X<E.length;X++){var fe=e.cy().style().getIndexedStyle(e,"background-image-containment","value",X);if(z&&fe==="over"||!z&&fe==="inside"){U++;continue}if(w[X]&&E[X].complete&&!E[X].error)U++,s.drawInscribedImage(r,E[X],e,X,T)}if(l.backgrounding=U!==C,G!==l.backgrounding)e.updateStyle(!1)},xe=function(){var T=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,z=arguments.length>1&&arguments[1]!==void 0?arguments[1]:c;if(s.hasPie(e)){if(s.drawPie(r,e,z),T){if(!h)s.nodeShapes[s.getNodeShape(e)].draw(r,f.x,f.y,o,u,te,v)}}},be=function(){var T=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,z=arguments.length>1&&arguments[1]!==void 0?arguments[1]:c;if(s.hasStripe(e)){if(r.save(),h)r.clip(v.pathCache);else s.nodeShapes[s.getNodeShape(e)].draw(r,f.x,f.y,o,u,te,v),r.clip();if(s.drawStripe(r,e,z),r.restore(),T){if(!h)s.nodeShapes[s.getNodeShape(e)].draw(r,f.x,f.y,o,u,te,v)}}},pe=function(){var T=arguments.length>0&&arguments[0]!==void 0?arguments[0]:c,z=(D>0?D:-D)*T,G=D>0?0:255;if(D!==0)if(s.colorFillStyle(r,G,G,G,z),h)r.fill(d);else r.fill()},oe=function(){if(P>0){if(r.lineWidth=P,r.lineCap=M,r.lineJoin=I,r.setLineDash)switch(L){case"dotted":r.setLineDash([1,1]);break;case"dashed":r.setLineDash(q),r.lineDashOffset=_;break;case"solid":case"double":r.setLineDash([]);break}if(O!=="center"){if(r.save(),r.lineWidth*=2,O==="inside")h?r.clip(d):r.clip();else{var T=new Path2D;T.rect(-o/2-P,-u/2-P,o+2*P,u+2*P),T.addPath(d),r.clip(T,"evenodd")}h?r.stroke(d):r.stroke(),r.restore()}else h?r.stroke(d):r.stroke();if(L==="double"){r.lineWidth=P/3;var z=r.globalCompositeOperation;if(r.globalCompositeOperation="destination-out",h)r.stroke(d);else r.stroke();r.globalCompositeOperation=z}if(r.setLineDash)r.setLineDash([])}},he=function(){if(V>0){if(r.lineWidth=V,r.lineCap="butt",r.setLineDash)switch(j){case"dotted":r.setLineDash([1,1]);break;case"dashed":r.setLineDash([4,2]);break;case"solid":case"double":r.setLineDash([]);break}var T=f;if(h)T={x:0,y:0};var z=s.getNodeShape(e),G=P;if(O==="inside")G=0;if(O==="outside")G*=2;var U=(o+G+(V+re))/o,X=(u+G+(V+re))/u,fe=o*U,ee=u*X,se=s.nodeShapes[z].points,ue;if(h){var ye=H(fe,ee,z,se);ue=ye.path}if(z==="ellipse")s.drawEllipsePath(ue||r,T.x,T.y,fe,ee);else if(["round-diamond","round-heptagon","round-hexagon","round-octagon","round-pentagon","round-polygon","round-triangle","round-tag"].includes(z)){var Ce=0,Te=0,ce=0;if(z==="round-diamond")Ce=(G+re+V)*1.4;else if(z==="round-heptagon")Ce=(G+re+V)*1.075,ce=-(G/2+re+V)/35;else if(z==="round-hexagon")Ce=(G+re+V)*1.12;else if(z==="round-pentagon")Ce=(G+re+V)*1.13,ce=-(G/2+re+V)/15;else if(z==="round-tag")Ce=(G+re+V)*1.12,Te=(G/2+V+re)*0.07;else if(z==="round-triangle")Ce=(G+re+V)*(Math.PI/2),ce=-(G+re/2+V)/Math.PI;if(Ce!==0){if(U=(o+Ce)/o,fe=o*U,!["round-hexagon","round-tag"].includes(z))X=(u+Ce)/u,ee=u*X}te=te==="auto"?Cv(fe,ee):te;var De=fe/2,Ae=ee/2,ir=te+(G+V+re)/2,Xe=Array(se.length/2),Rr=Array(se.length/2);for(var Ye=0;Ye<se.length/2;Ye++)Xe[Ye]={x:T.x+Te+De*se[Ye*2],y:T.y+ce+Ae*se[Ye*2+1]};var Qe,er,lr,Fr,Ue=Xe.length;er=Xe[Ue-1];for(Qe=0;Qe<Ue;Qe++)lr=Xe[Qe%Ue],Fr=Xe[(Qe+1)%Ue],Rr[Qe]=yo(er,lr,Fr,ir),er=lr,lr=Fr;s.drawRoundPolygonPath(ue||r,T.x+Te,T.y+ce,o*U,u*X,se,Rr)}else if(["roundrectangle","round-rectangle"].includes(z))te=te==="auto"?ct(fe,ee):te,s.drawRoundRectanglePath(ue||r,T.x,T.y,fe,ee,te+(G+V+re)/2);else if(["cutrectangle","cut-rectangle"].includes(z))te=te==="auto"?io():te,s.drawCutRectanglePath(ue||r,T.x,T.y,fe,ee,null,te+(G+V+re)/4);else if(["bottomroundrectangle","bottom-round-rectangle"].includes(z))te=te==="auto"?ct(fe,ee):te,s.drawBottomRoundRectanglePath(ue||r,T.x,T.y,fe,ee,te+(G+V+re)/2);else if(z==="barrel")s.drawBarrelPath(ue||r,T.x,T.y,fe,ee);else if(z.startsWith("polygon")||["rhomboid","right-rhomboid","round-tag","tag","vee"].includes(z)){var Kr=(G+V+re)/o;se=Cn(Tn(se,Kr)),s.drawPolygonPath(ue||r,T.x,T.y,o,u,se)}else{var Mr=(G+V+re)/o;se=Cn(Tn(se,-Mr)),s.drawPolygonPath(ue||r,T.x,T.y,o,u,se)}if(h)r.stroke(ue);else r.stroke();if(j==="double"){r.lineWidth=G/3;var et=r.globalCompositeOperation;if(r.globalCompositeOperation="destination-out",h)r.stroke(ue);else r.stroke();r.globalCompositeOperation=et}if(r.setLineDash)r.setLineDash([])}},de=function(){if(n)s.drawNodeOverlay(r,e,f,o,u)},Ee=function(){if(n)s.drawNodeUnderlay(r,e,f,o,u)},we=function(){s.drawElementText(r,e,null,a)},ke=e.pstyle("ghost").value==="yes";if(ke){var Pe=e.pstyle("ghost-offset-x").pfValue,ze=e.pstyle("ghost-offset-y").pfValue,Oe=e.pstyle("ghost-opacity").value,Me=Oe*c;r.translate(Pe,ze),F(),he(),ie(Oe*A),ve(),Be(Me,!0),Y(Oe*N),oe(),xe(D!==0||P!==0),be(D!==0||P!==0),Be(Me,!1),pe(Me),r.translate(-Pe,-ze)}if(h)r.translate(-f.x,-f.y);if(Ee(),h)r.translate(f.x,f.y);if(F(),he(),ie(),ve(),Be(c,!0),Y(),oe(),xe(D!==0||P!==0),be(D!==0||P!==0),Be(c,!1),pe(),h)r.translate(-f.x,-f.y);if(we(),de(),t)r.translate(p.x1,p.y1)};var Rf=function(e){if(!["overlay","underlay"].includes(e))throw Error("Invalid state");return function(t,a,n,i,s){var o=this;if(!a.visible())return;var u=a.pstyle("".concat(e,"-padding")).pfValue,l=a.pstyle("".concat(e,"-opacity")).value,v=a.pstyle("".concat(e,"-color")).value,f=a.pstyle("".concat(e,"-shape")).value,c=a.pstyle("".concat(e,"-corner-radius")).value;if(l>0){if(n=n||a.position(),i==null||s==null){var h=a.padding();i=a.width()+2*h,s=a.height()+2*h}o.colorFillStyle(t,v[0],v[1],v[2],l),o.nodeShapes[f].draw(t,n.x,n.y,i+u*2,s+u*2,c),t.fill()}}};bt.drawNodeOverlay=Rf("overlay");bt.drawNodeUnderlay=Rf("underlay");bt.hasPie=function(r){return r=r[0],r._private.hasPie};bt.hasStripe=function(r){return r=r[0],r._private.hasStripe};bt.drawPie=function(r,e,t,a){e=e[0],a=a||e.position();var n=e.cy().style(),i=e.pstyle("pie-size"),s=e.pstyle("pie-hole"),o=e.pstyle("pie-start-angle").pfValue,u=a.x,l=a.y,v=e.width(),f=e.height(),c=Math.min(v,f)/2,h,d=0,y=this.usePaths();if(y)u=0,l=0;if(i.units==="%")c=c*i.pfValue;else if(i.pfValue!==void 0)c=i.pfValue/2;if(s.units==="%")h=c*s.pfValue;else if(s.pfValue!==void 0)h=s.pfValue/2;if(h>=c)return;for(var g=1;g<=n.pieBackgroundN;g++){var p=e.pstyle("pie-"+g+"-background-size").value,m=e.pstyle("pie-"+g+"-background-color").value,b=e.pstyle("pie-"+g+"-background-opacity").value*t,w=p/100;if(w+d>1)w=1-d;var E=1.5*Math.PI+2*Math.PI*d;E+=o;var C=2*Math.PI*w,x=E+C;if(p===0||d>=1||d+w>1)continue;if(h===0)r.beginPath(),r.moveTo(u,l),r.arc(u,l,c,E,x),r.closePath();else r.beginPath(),r.arc(u,l,c,E,x),r.arc(u,l,h,x,E,!0),r.closePath();this.colorFillStyle(r,m[0],m[1],m[2],b),r.fill(),d+=w}};bt.drawStripe=function(r,e,t,a){e=e[0],a=a||e.position();var n=e.cy().style(),i=a.x,s=a.y,o=e.width(),u=e.height(),l=0,v=this.usePaths();r.save();var f=e.pstyle("stripe-direction").value,c=e.pstyle("stripe-size");switch(f){case"vertical":break;case"righward":r.rotate(-Math.PI/2);break}var h=o,d=u;if(c.units==="%")h=h*c.pfValue,d=d*c.pfValue;else if(c.pfValue!==void 0)h=c.pfValue,d=c.pfValue;if(v)i=0,s=0;s-=h/2,i-=d/2;for(var y=1;y<=n.stripeBackgroundN;y++){var g=e.pstyle("stripe-"+y+"-background-size").value,p=e.pstyle("stripe-"+y+"-background-color").value,m=e.pstyle("stripe-"+y+"-background-opacity").value*t,b=g/100;if(b+l>1)b=1-l;if(g===0||l>=1||l+b>1)continue;r.beginPath(),r.rect(i,s+d*l,h,d*b),r.closePath(),this.colorFillStyle(r,p[0],p[1],p[2],m),r.fill(),l+=b}r.restore()};var xr={},Uy=100;xr.getPixelRatio=function(){var r=this.data.contexts[0];if(this.forcedPixelRatio!=null)return this.forcedPixelRatio;var e=this.cy.window(),t=r.backingStorePixelRatio||r.webkitBackingStorePixelRatio||r.mozBackingStorePixelRatio||r.msBackingStorePixelRatio||r.oBackingStorePixelRatio||r.backingStorePixelRatio||1;return(e.devicePixelRatio||1)/t};xr.paintCache=function(r){var e=this.paintCaches=this.paintCaches||[],t=!0,a;for(var n=0;n<e.length;n++)if(a=e[n],a.context===r){t=!1;break}if(t)a={context:r},e.push(a);return a};xr.createGradientStyleFor=function(r,e,t,a,n){var i,s=this.usePaths(),o=t.pstyle(e+"-gradient-stop-colors").value,u=t.pstyle(e+"-gradient-stop-positions").pfValue;if(a==="radial-gradient")if(t.isEdge()){var l=t.sourceEndpoint(),v=t.targetEndpoint(),f=t.midpoint(),c=At(l,f),h=At(v,f);i=r.createRadialGradient(f.x,f.y,0,f.x,f.y,Math.max(c,h))}else{var d=s?{x:0,y:0}:t.position(),y=t.paddedWidth(),g=t.paddedHeight();i=r.createRadialGradient(d.x,d.y,0,d.x,d.y,Math.max(y,g))}else if(t.isEdge()){var p=t.sourceEndpoint(),m=t.targetEndpoint();i=r.createLinearGradient(p.x,p.y,m.x,m.y)}else{var b=s?{x:0,y:0}:t.position(),w=t.paddedWidth(),E=t.paddedHeight(),C=w/2,x=E/2,S=t.pstyle("background-gradient-direction").value;switch(S){case"to-bottom":i=r.createLinearGradient(b.x,b.y-x,b.x,b.y+x);break;case"to-top":i=r.createLinearGradient(b.x,b.y+x,b.x,b.y-x);break;case"to-left":i=r.createLinearGradient(b.x+C,b.y,b.x-C,b.y);break;case"to-right":i=r.createLinearGradient(b.x-C,b.y,b.x+C,b.y);break;case"to-bottom-right":case"to-right-bottom":i=r.createLinearGradient(b.x-C,b.y-x,b.x+C,b.y+x);break;case"to-top-right":case"to-right-top":i=r.createLinearGradient(b.x-C,b.y+x,b.x+C,b.y-x);break;case"to-bottom-left":case"to-left-bottom":i=r.createLinearGradient(b.x+C,b.y-x,b.x-C,b.y+x);break;case"to-top-left":case"to-left-top":i=r.createLinearGradient(b.x+C,b.y+x,b.x-C,b.y-x);break}}if(!i)return null;var k=u.length===o.length,B=o.length;for(var D=0;D<B;D++)i.addColorStop(k?u[D]:D/(B-1),"rgba("+o[D][0]+","+o[D][1]+","+o[D][2]+","+n+")");return i};xr.gradientFillStyle=function(r,e,t,a){var n=this.createGradientStyleFor(r,"background",e,t,a);if(!n)return null;r.fillStyle=n};xr.colorFillStyle=function(r,e,t,a,n){r.fillStyle="rgba("+e+","+t+","+a+","+n+")"};xr.eleFillStyle=function(r,e,t){var a=e.pstyle("background-fill").value;if(a==="linear-gradient"||a==="radial-gradient")this.gradientFillStyle(r,e,a,t);else{var n=e.pstyle("background-color").value;this.colorFillStyle(r,n[0],n[1],n[2],t)}};xr.gradientStrokeStyle=function(r,e,t,a){var n=this.createGradientStyleFor(r,"line",e,t,a);if(!n)return null;r.strokeStyle=n};xr.colorStrokeStyle=function(r,e,t,a,n){r.strokeStyle="rgba("+e+","+t+","+a+","+n+")"};xr.eleStrokeStyle=function(r,e,t){var a=e.pstyle("line-fill").value;if(a==="linear-gradient"||a==="radial-gradient")this.gradientStrokeStyle(r,e,a,t);else{var n=e.pstyle("line-color").value;this.colorStrokeStyle(r,n[0],n[1],n[2],t)}};xr.matchCanvasSize=function(r){var e=this,t=e.data,a=e.findContainerClientCoords(),n=a[2],i=a[3],s=e.getPixelRatio(),o=e.motionBlurPxRatio;if(r===e.data.bufferCanvases[e.MOTIONBLUR_BUFFER_NODE]||r===e.data.bufferCanvases[e.MOTIONBLUR_BUFFER_DRAG])s=o;var u=n*s,l=i*s,v;if(u===e.canvasWidth&&l===e.canvasHeight)return;e.fontCaches=null;var f=t.canvasContainer;f.style.width=n+"px",f.style.height=i+"px";for(var c=0;c<e.CANVAS_LAYERS;c++)v=t.canvases[c],v.width=u,v.height=l,v.style.width=n+"px",v.style.height=i+"px";for(var c=0;c<e.BUFFER_COUNT;c++)v=t.bufferCanvases[c],v.width=u,v.height=l,v.style.width=n+"px",v.style.height=i+"px";if(e.textureMult=1,s<=1)v=t.bufferCanvases[e.TEXTURE_BUFFER],e.textureMult=2,v.width=u*e.textureMult,v.height=l*e.textureMult;e.canvasWidth=u,e.canvasHeight=l,e.pixelRatio=s};xr.renderTo=function(r,e,t,a){this.render({forcedContext:r,forcedZoom:e,forcedPan:t,drawAllLayers:!0,forcedPxRatio:a})};xr.clearCanvas=function(){var r=this,e=r.data;function t(a){a.clearRect(0,0,r.canvasWidth,r.canvasHeight)}t(e.contexts[r.NODE]),t(e.contexts[r.DRAG])};xr.render=function(r){var e=this;r=r||yv();var t=e.cy,a=r.forcedContext,n=r.drawAllLayers,i=r.drawOnlyNodeLayer,s=r.forcedZoom,o=r.forcedPan,u=r.forcedPxRatio===void 0?this.getPixelRatio():r.forcedPxRatio,l=e.data,v=l.canvasNeedsRedraw,f=e.textureOnViewport&&!a&&(e.pinching||e.hoverData.dragging||e.swipePanning||e.data.wheelZooming),c=r.motionBlur!==void 0?r.motionBlur:e.motionBlur,h=e.motionBlurPxRatio,d=t.hasCompoundNodes(),y=e.hoverData.draggingEles,g=e.hoverData.selecting||e.touchData.selecting?!0:!1;c=c&&!a&&e.motionBlurEnabled&&!g;var p=c;if(!a){if(e.prevPxRatio!==u)e.invalidateContainerClientCoordsCache(),e.matchCanvasSize(e.container),e.redrawHint("eles",!0),e.redrawHint("drag",!0);e.prevPxRatio=u}if(!a&&e.motionBlurTimeout)clearTimeout(e.motionBlurTimeout);if(c){if(e.mbFrames==null)e.mbFrames=0;if(e.mbFrames++,e.mbFrames<3)p=!1;if(e.mbFrames>e.minMbLowQualFrames)e.motionBlurPxRatio=e.mbPxRBlurry}if(e.clearingMotionBlur)e.motionBlurPxRatio=1;if(e.textureDrawLastFrame&&!f)v[e.NODE]=!0,v[e.SELECT_BOX]=!0;var m=t.style(),b=t.zoom(),w=s!==void 0?s:b,E=t.pan(),C={x:E.x,y:E.y},x={zoom:b,pan:{x:E.x,y:E.y}},S=e.prevViewport,k=S===void 0||x.zoom!==S.zoom||x.pan.x!==S.pan.x||x.pan.y!==S.pan.y;if(!k&&!(y&&!d))e.motionBlurPxRatio=1;if(o)C=o;w*=u,C.x*=u,C.y*=u;var B=e.getCachedZSortedEles();function D(Y,F,H,W,K){var ae=Y.globalCompositeOperation;Y.globalCompositeOperation="destination-out",e.colorFillStyle(Y,255,255,255,e.motionBlurTransparency),Y.fillRect(F,H,W,K),Y.globalCompositeOperation=ae}function P(Y,F){var H,W,K,ae;if(!e.clearingMotionBlur&&(Y===l.bufferContexts[e.MOTIONBLUR_BUFFER_NODE]||Y===l.bufferContexts[e.MOTIONBLUR_BUFFER_DRAG]))H={x:E.x*h,y:E.y*h},W=b*h,K=e.canvasWidth*h,ae=e.canvasHeight*h;else H=C,W=w,K=e.canvasWidth,ae=e.canvasHeight;if(Y.setTransform(1,0,0,1,0,0),F==="motionBlur")D(Y,0,0,K,ae);else if(!a&&(F===void 0||F))Y.clearRect(0,0,K,ae);if(!n)Y.translate(H.x,H.y),Y.scale(W,W);if(o)Y.translate(o.x,o.y);if(s)Y.scale(s,s)}if(!f)e.textureDrawLastFrame=!1;if(f){if(e.textureDrawLastFrame=!0,!e.textureCache){e.textureCache={},e.textureCache.bb=t.mutableElements().boundingBox(),e.textureCache.texture=e.data.bufferCanvases[e.TEXTURE_BUFFER];var A=e.data.bufferContexts[e.TEXTURE_BUFFER];A.setTransform(1,0,0,1,0,0),A.clearRect(0,0,e.canvasWidth*e.textureMult,e.canvasHeight*e.textureMult),e.render({forcedContext:A,drawOnlyNodeLayer:!0,forcedPxRatio:u*e.textureMult});var x=e.textureCache.viewport={zoom:t.zoom(),pan:t.pan(),width:e.canvasWidth,height:e.canvasHeight};x.mpan={x:(0-x.pan.x)/x.zoom,y:(0-x.pan.y)/x.zoom}}v[e.DRAG]=!1,v[e.NODE]=!1;var R=l.contexts[e.NODE],L=e.textureCache.texture,x=e.textureCache.viewport;if(R.setTransform(1,0,0,1,0,0),c)D(R,0,0,x.width,x.height);else R.clearRect(0,0,x.width,x.height);var I=m.core("outside-texture-bg-color").value,M=m.core("outside-texture-bg-opacity").value;e.colorFillStyle(R,I[0],I[1],I[2],M),R.fillRect(0,0,x.width,x.height);var b=t.zoom();P(R,!1),R.clearRect(x.mpan.x,x.mpan.y,x.width/x.zoom/u,x.height/x.zoom/u),R.drawImage(L,x.mpan.x,x.mpan.y,x.width/x.zoom/u,x.height/x.zoom/u)}else if(e.textureOnViewport&&!a)e.textureCache=null;var O=t.extent(),q=e.pinching||e.hoverData.dragging||e.swipePanning||e.data.wheelZooming||e.hoverData.draggingEles||e.cy.animated(),_=e.hideEdgesOnViewport&&q,N=[];if(N[e.NODE]=!v[e.NODE]&&c&&!e.clearedForMotionBlur[e.NODE]||e.clearingMotionBlur,N[e.NODE])e.clearedForMotionBlur[e.NODE]=!0;if(N[e.DRAG]=!v[e.DRAG]&&c&&!e.clearedForMotionBlur[e.DRAG]||e.clearingMotionBlur,N[e.DRAG])e.clearedForMotionBlur[e.DRAG]=!0;if(v[e.NODE]||n||i||N[e.NODE]){var V=c&&!N[e.NODE]&&h!==1,R=a||(V?e.data.bufferContexts[e.MOTIONBLUR_BUFFER_NODE]:l.contexts[e.NODE]),Z=c&&!V?"motionBlur":void 0;if(P(R,Z),_)e.drawCachedNodes(R,B.nondrag,u,O);else e.drawLayeredElements(R,B.nondrag,u,O);if(e.debug)e.drawDebugPoints(R,B.nondrag);if(!n&&!c)v[e.NODE]=!1}if(!i&&(v[e.DRAG]||n||N[e.DRAG])){var V=c&&!N[e.DRAG]&&h!==1,R=a||(V?e.data.bufferContexts[e.MOTIONBLUR_BUFFER_DRAG]:l.contexts[e.DRAG]);if(P(R,c&&!V?"motionBlur":void 0),_)e.drawCachedNodes(R,B.drag,u,O);else e.drawCachedElements(R,B.drag,u,O);if(e.debug)e.drawDebugPoints(R,B.drag);if(!n&&!c)v[e.DRAG]=!1}if(this.drawSelectionRectangle(r,P),c&&h!==1){var j=l.contexts[e.NODE],Q=e.data.bufferCanvases[e.MOTIONBLUR_BUFFER_NODE],re=l.contexts[e.DRAG],te=e.data.bufferCanvases[e.MOTIONBLUR_BUFFER_DRAG],ie=function(F,H,W){if(F.setTransform(1,0,0,1,0,0),W||!p)F.clearRect(0,0,e.canvasWidth,e.canvasHeight);else D(F,0,0,e.canvasWidth,e.canvasHeight);var K=h;F.drawImage(H,0,0,e.canvasWidth*K,e.canvasHeight*K,0,0,e.canvasWidth,e.canvasHeight)};if(v[e.NODE]||N[e.NODE])ie(j,Q,N[e.NODE]),v[e.NODE]=!1;if(v[e.DRAG]||N[e.DRAG])ie(re,te,N[e.DRAG]),v[e.DRAG]=!1}if(e.prevViewport=x,e.clearingMotionBlur)e.clearingMotionBlur=!1,e.motionBlurCleared=!0,e.motionBlur=!0;if(c)e.motionBlurTimeout=setTimeout(function(){e.motionBlurTimeout=null,e.clearedForMotionBlur[e.NODE]=!1,e.clearedForMotionBlur[e.DRAG]=!1,e.motionBlur=!1,e.clearingMotionBlur=!f,e.mbFrames=0,v[e.NODE]=!0,v[e.DRAG]=!0,e.redraw()},Uy);if(!a)t.emit("render")};var ga;xr.drawSelectionRectangle=function(r,e){var t=this,{cy:a,data:n}=t,i=a.style(),{drawOnlyNodeLayer:s,drawAllLayers:o}=r,u=n.canvasNeedsRedraw,l=r.forcedContext;if(t.showFps||!s&&u[t.SELECT_BOX]&&!o){var v=l||n.contexts[t.SELECT_BOX];if(e(v),t.selection[4]==1&&(t.hoverData.selecting||t.touchData.selecting)){var f=t.cy.zoom(),c=i.core("selection-box-border-width").value/f;if(v.lineWidth=c,v.fillStyle="rgba("+i.core("selection-box-color").value[0]+","+i.core("selection-box-color").value[1]+","+i.core("selection-box-color").value[2]+","+i.core("selection-box-opacity").value+")",v.fillRect(t.selection[0],t.selection[1],t.selection[2]-t.selection[0],t.selection[3]-t.selection[1]),c>0)v.strokeStyle="rgba("+i.core("selection-box-border-color").value[0]+","+i.core("selection-box-border-color").value[1]+","+i.core("selection-box-border-color").value[2]+","+i.core("selection-box-opacity").value+")",v.strokeRect(t.selection[0],t.selection[1],t.selection[2]-t.selection[0],t.selection[3]-t.selection[1])}if(n.bgActivePosistion&&!t.hoverData.selecting){var f=t.cy.zoom(),h=n.bgActivePosistion;v.fillStyle="rgba("+i.core("active-bg-color").value[0]+","+i.core("active-bg-color").value[1]+","+i.core("active-bg-color").value[2]+","+i.core("active-bg-opacity").value+")",v.beginPath(),v.arc(h.x,h.y,i.core("active-bg-size").pfValue/f,0,2*Math.PI),v.fill()}var d=t.lastRedrawTime;if(t.showFps&&d){d=Math.round(d);var y=Math.round(1000/d),g="1 frame = "+d+" ms = "+y+" fps";if(v.setTransform(1,0,0,1,0,0),v.fillStyle="rgba(255, 0, 0, 0.75)",v.strokeStyle="rgba(255, 0, 0, 0.75)",v.font="30px Arial",!ga){var p=v.measureText(g);ga=p.actualBoundingBoxAscent}v.fillText(g,0,ga);var m=60;v.strokeRect(0,ga+10,250,20),v.fillRect(0,ga+10,250*Math.min(y/m,1),20)}if(!o)u[t.SELECT_BOX]=!1}};function Wl(r,e,t){var a=r.createShader(e);if(r.shaderSource(a,t),r.compileShader(a),!r.getShaderParameter(a,r.COMPILE_STATUS))throw Error(r.getShaderInfoLog(a));return a}function Ky(r,e,t){var a=Wl(r,r.VERTEX_SHADER,e),n=Wl(r,r.FRAGMENT_SHADER,t),i=r.createProgram();if(r.attachShader(i,a),r.attachShader(i,n),r.linkProgram(i),!r.getProgramParameter(i,r.LINK_STATUS))throw Error("Could not initialize shaders");return i}function Xy(r,e,t){if(t===void 0)t=e;var a=r.makeOffscreenCanvas(e,t),n=a.context=a.getContext("2d");return a.clear=function(){return n.clearRect(0,0,a.width,a.height)},a.clear(),a}function wo(r){var e=r.pixelRatio,t=r.cy.zoom(),a=r.cy.pan();return{zoom:t*e,pan:{x:a.x*e,y:a.y*e}}}function Yy(r){var e=r.pixelRatio,t=r.cy.zoom();return t*e}function Zy(r,e,t,a,n){var i=a*t+e.x,s=n*t+e.y;return s=Math.round(r.canvasHeight-s),[i,s]}function Qy(r,e){if(e.picking)return!0;else{if(r.pstyle("background-fill").value!=="solid")return!1;if(r.pstyle("background-image").strValue!=="none")return!1;if(r.pstyle("border-width").value===0)return!0;if(r.pstyle("border-opacity").value===0)return!0;if(r.pstyle("border-style").value!=="solid")return!1;return!0}}function Jy(r,e){if(r.length!==e.length)return!1;for(var t=0;t<r.length;t++)if(r[t]!==e[t])return!1;return!0}function Ct(r,e,t){var a=r[0]/255,n=r[1]/255,i=r[2]/255,s=e,o=t||[,,,,];return o[0]=a*s,o[1]=n*s,o[2]=i*s,o[3]=s,o}function _t(r,e){var t=e||[,,,,];return t[0]=(r>>0&255)/255,t[1]=(r>>8&255)/255,t[2]=(r>>16&255)/255,t[3]=(r>>24&255)/255,t}function jy(r){return r[0]+(r[1]<<8)+(r[2]<<16)+(r[3]<<24)}function em(r,e){var t=r.createTexture();return t.buffer=function(a){r.bindTexture(r.TEXTURE_2D,t),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.LINEAR_MIPMAP_NEAREST),r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,a),r.generateMipmap(r.TEXTURE_2D),r.bindTexture(r.TEXTURE_2D,null)},t.deleteTexture=function(){r.deleteTexture(t)},t}function Mf(r,e){switch(e){case"float":return[1,r.FLOAT,4];case"vec2":return[2,r.FLOAT,4];case"vec3":return[3,r.FLOAT,4];case"vec4":return[4,r.FLOAT,4];case"int":return[1,r.INT,4];case"ivec2":return[2,r.INT,4]}}function Lf(r,e,t){switch(e){case r.FLOAT:return new Float32Array(t);case r.INT:return new Int32Array(t)}}function rm(r,e,t,a,n,i){switch(e){case r.FLOAT:return new Float32Array(t.buffer,i*a,n);case r.INT:return new Int32Array(t.buffer,i*a,n)}}function tm(r,e,t,a){var n=Mf(r,e),i=je(n,2),s=i[0],o=i[1],u=Lf(r,o,a),l=r.createBuffer();if(r.bindBuffer(r.ARRAY_BUFFER,l),r.bufferData(r.ARRAY_BUFFER,u,r.STATIC_DRAW),o===r.FLOAT)r.vertexAttribPointer(t,s,o,!1,0,0);else if(o===r.INT)r.vertexAttribIPointer(t,s,o,0,0);return r.enableVertexAttribArray(t),r.bindBuffer(r.ARRAY_BUFFER,null),l}function qr(r,e,t,a){var n=Mf(r,t),i=je(n,3),s=i[0],o=i[1],u=i[2],l=Lf(r,o,e*s),v=s*u,f=r.createBuffer();if(r.bindBuffer(r.ARRAY_BUFFER,f),r.bufferData(r.ARRAY_BUFFER,e*v,r.DYNAMIC_DRAW),r.enableVertexAttribArray(a),o===r.FLOAT)r.vertexAttribPointer(a,s,o,!1,v,0);else if(o===r.INT)r.vertexAttribIPointer(a,s,o,v,0);r.vertexAttribDivisor(a,1),r.bindBuffer(r.ARRAY_BUFFER,null);var c=Array(e);for(var h=0;h<e;h++)c[h]=rm(r,o,l,v,s,h);return f.dataArray=l,f.stride=v,f.size=s,f.getView=function(d){return c[d]},f.setPoint=function(d,y,g){var p=c[d];p[0]=y,p[1]=g},f.bufferSubData=function(d){if(r.bindBuffer(r.ARRAY_BUFFER,f),d)r.bufferSubData(r.ARRAY_BUFFER,0,l,0,d*s);else r.bufferSubData(r.ARRAY_BUFFER,0,l)},f}function am(r,e,t){var a=9,n=new Float32Array(e*a),i=Array(e);for(var s=0;s<e;s++){var o=s*a*4;i[s]=new Float32Array(n.buffer,o,a)}var u=r.createBuffer();r.bindBuffer(r.ARRAY_BUFFER,u),r.bufferData(r.ARRAY_BUFFER,n.byteLength,r.DYNAMIC_DRAW);for(var l=0;l<3;l++){var v=t+l;r.enableVertexAttribArray(v),r.vertexAttribPointer(v,3,r.FLOAT,!1,36,l*12),r.vertexAttribDivisor(v,1)}return r.bindBuffer(r.ARRAY_BUFFER,null),u.getMatrixView=function(f){return i[f]},u.setData=function(f,c){i[c].set(f,0)},u.bufferSubData=function(){r.bindBuffer(r.ARRAY_BUFFER,u),r.bufferSubData(r.ARRAY_BUFFER,0,n)},u}function nm(r){var e=r.createFramebuffer();r.bindFramebuffer(r.FRAMEBUFFER,e);var t=r.createTexture();return r.bindTexture(r.TEXTURE_2D,t),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,t,0),r.bindFramebuffer(r.FRAMEBUFFER,null),e.setFramebufferAttachmentSizes=function(a,n){r.bindTexture(r.TEXTURE_2D,t),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,a,n,0,r.RGBA,r.UNSIGNED_BYTE,null)},e}var $l=typeof Float32Array<"u"?Float32Array:Array;if(!Math.hypot)Math.hypot=function(){var r=0,e=arguments.length;while(e--)r+=arguments[e]*arguments[e];return Math.sqrt(r)};function Cs(){var r=new $l(9);if($l!=Float32Array)r[1]=0,r[2]=0,r[3]=0,r[5]=0,r[6]=0,r[7]=0;return r[0]=1,r[4]=1,r[8]=1,r}function Ul(r){return r[0]=1,r[1]=0,r[2]=0,r[3]=0,r[4]=1,r[5]=0,r[6]=0,r[7]=0,r[8]=1,r}function im(r,e,t){var a=e[0],n=e[1],i=e[2],s=e[3],o=e[4],u=e[5],l=e[6],v=e[7],f=e[8],c=t[0],h=t[1],d=t[2],y=t[3],g=t[4],p=t[5],m=t[6],b=t[7],w=t[8];return r[0]=c*a+h*s+d*l,r[1]=c*n+h*o+d*v,r[2]=c*i+h*u+d*f,r[3]=y*a+g*s+p*l,r[4]=y*n+g*o+p*v,r[5]=y*i+g*u+p*f,r[6]=m*a+b*s+w*l,r[7]=m*n+b*o+w*v,r[8]=m*i+b*u+w*f,r}function mn(r,e,t){var a=e[0],n=e[1],i=e[2],s=e[3],o=e[4],u=e[5],l=e[6],v=e[7],f=e[8],c=t[0],h=t[1];return r[0]=a,r[1]=n,r[2]=i,r[3]=s,r[4]=o,r[5]=u,r[6]=c*a+h*s+l,r[7]=c*n+h*o+v,r[8]=c*i+h*u+f,r}function Kl(r,e,t){var a=e[0],n=e[1],i=e[2],s=e[3],o=e[4],u=e[5],l=e[6],v=e[7],f=e[8],c=Math.sin(t),h=Math.cos(t);return r[0]=h*a+c*s,r[1]=h*n+c*o,r[2]=h*i+c*u,r[3]=h*s-c*a,r[4]=h*o-c*n,r[5]=h*u-c*i,r[6]=l,r[7]=v,r[8]=f,r}function $s(r,e,t){var a=t[0],n=t[1];return r[0]=a*e[0],r[1]=a*e[1],r[2]=a*e[2],r[3]=n*e[3],r[4]=n*e[4],r[5]=n*e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r}function sm(r,e,t){return r[0]=2/e,r[1]=0,r[2]=0,r[3]=0,r[4]=-2/t,r[5]=0,r[6]=-1,r[7]=1,r[8]=1,r}var om=function(){function r(e,t,a,n){pt(this,r),this.debugID=Math.floor(Math.random()*1e4),this.r=e,this.texSize=t,this.texRows=a,this.texHeight=Math.floor(t/a),this.enableWrapping=!0,this.locked=!1,this.texture=null,this.needsBuffer=!0,this.freePointer={x:0,row:0},this.keyToLocation=new Map,this.canvas=n(e,t,t),this.scratch=n(e,t,this.texHeight,"scratch")}return yt(r,[{key:"lock",value:function(){this.locked=!0}},{key:"getKeys",value:function(){return new Set(this.keyToLocation.keys())}},{key:"getScale",value:function(t){var{w:a,h:n}=t,i=this.texHeight,s=this.texSize,o=i/n,u=a*o,l=n*o;if(u>s)o=s/a,u=a*o,l=n*o;return{scale:o,texW:u,texH:l}}},{key:"draw",value:function(t,a,n){var i=this;if(this.locked)throw Error("can't draw, atlas is locked");var s=this.texSize,o=this.texRows,u=this.texHeight,l=this.getScale(a),{scale:v,texW:f,texH:c}=l,h=function(b,w){if(n&&w){var E=w.context,{x:C,row:x}=b,S=C,k=u*x;E.save(),E.translate(S,k),E.scale(v,v),n(E,a),E.restore()}},d=[null,null],y=function(){if(h(i.freePointer,i.canvas),d[0]={x:i.freePointer.x,y:i.freePointer.row*u,w:f,h:c},d[1]={x:i.freePointer.x+f,y:i.freePointer.row*u,w:0,h:c},i.freePointer.x+=f,i.freePointer.x==s)i.freePointer.x=0,i.freePointer.row++},g=function(){var{scratch:b,canvas:w}=i;b.clear(),h({x:0,row:0},b);var E=s-i.freePointer.x,C=f-E,x=u;{var S=i.freePointer.x,k=i.freePointer.row*u,B=E;w.context.drawImage(b,0,0,B,x,S,k,B,x),d[0]={x:S,y:k,w:B,h:c}}{var D=E,P=(i.freePointer.row+1)*u,A=C;if(w)w.context.drawImage(b,D,0,A,x,0,P,A,x);d[1]={x:0,y:P,w:A,h:c}}i.freePointer.x=C,i.freePointer.row++},p=function(){i.freePointer.x=0,i.freePointer.row++};if(this.freePointer.x+f<=s)y();else if(this.freePointer.row>=o-1)return!1;else if(this.freePointer.x===s)p(),y();else if(this.enableWrapping)g();else p(),y();return this.keyToLocation.set(t,d),this.needsBuffer=!0,d}},{key:"getOffsets",value:function(t){return this.keyToLocation.get(t)}},{key:"isEmpty",value:function(){return this.freePointer.x===0&&this.freePointer.row===0}},{key:"canFit",value:function(t){if(this.locked)return!1;var a=this.texSize,n=this.texRows,i=this.getScale(t),s=i.texW;if(this.freePointer.x+s>a)return this.freePointer.row<n-1;return!0}},{key:"bufferIfNeeded",value:function(t){if(!this.texture)this.texture=em(t,this.debugID);if(this.needsBuffer){if(this.texture.buffer(this.canvas),this.needsBuffer=!1,this.locked)this.canvas=null,this.scratch=null}}},{key:"dispose",value:function(){if(this.texture)this.texture.deleteTexture(),this.texture=null;this.canvas=null,this.scratch=null,this.locked=!0}}])}(),um=function(){function r(e,t,a,n){pt(this,r),this.r=e,this.texSize=t,this.texRows=a,this.createTextureCanvas=n,this.atlases=[],this.styleKeyToAtlas=new Map,this.markedKeys=new Set}return yt(r,[{key:"getKeys",value:function(){return new Set(this.styleKeyToAtlas.keys())}},{key:"_createAtlas",value:function(){var t=this.r,a=this.texSize,n=this.texRows,i=this.createTextureCanvas;return new om(t,a,n,i)}},{key:"_getScratchCanvas",value:function(){if(!this.scratch){var t=this.r,a=this.texSize,n=this.texRows,i=this.createTextureCanvas,s=Math.floor(a/n);this.scratch=i(t,a,s,"scratch")}return this.scratch}},{key:"draw",value:function(t,a,n){var i=this.styleKeyToAtlas.get(t);if(!i){if(i=this.atlases[this.atlases.length-1],!i||!i.canFit(a)){if(i)i.lock();i=this._createAtlas(),this.atlases.push(i)}i.draw(t,a,n),this.styleKeyToAtlas.set(t,i)}return i}},{key:"getAtlas",value:function(t){return this.styleKeyToAtlas.get(t)}},{key:"hasAtlas",value:function(t){return this.styleKeyToAtlas.has(t)}},{key:"markKeyForGC",value:function(t){this.markedKeys.add(t)}},{key:"gc",value:function(){var t=this,a=this.markedKeys;if(a.size===0){console.log("nothing to garbage collect");return}var n=[],i=new Map,s=null,o=Sr(this.atlases),u;try{var l=function(){var f=u.value,c=f.getKeys(),h=lm(a,c);if(h.size===0)return n.push(f),c.forEach(function(E){return i.set(E,f)}),1;if(!s)s=t._createAtlas(),n.push(s);var d=Sr(c),y;try{for(d.s();!(y=d.n()).done;){var g=y.value;if(!h.has(g)){var p=f.getOffsets(g),m=je(p,2),b=m[0],w=m[1];if(!s.canFit({w:b.w+w.w,h:b.h}))s.lock(),s=t._createAtlas(),n.push(s);if(f.canvas)t._copyTextureToNewAtlas(g,f,s),i.set(g,s)}}}catch(E){d.e(E)}finally{d.f()}f.dispose()};for(o.s();!(u=o.n()).done;)if(l())continue}catch(v){o.e(v)}finally{o.f()}this.atlases=n,this.styleKeyToAtlas=i,this.markedKeys=new Set}},{key:"_copyTextureToNewAtlas",value:function(t,a,n){var i=a.getOffsets(t),s=je(i,2),o=s[0],u=s[1];if(u.w===0)n.draw(t,o,function(c){c.drawImage(a.canvas,o.x,o.y,o.w,o.h,0,0,o.w,o.h)});else{var l=this._getScratchCanvas();l.clear(),l.context.drawImage(a.canvas,o.x,o.y,o.w,o.h,0,0,o.w,o.h),l.context.drawImage(a.canvas,u.x,u.y,u.w,u.h,o.w,0,u.w,u.h);var v=o.w+u.w,f=o.h;n.draw(t,{w:v,h:f},function(c){c.drawImage(l,0,0,v,f,0,0,v,f)})}}},{key:"getCounts",value:function(){return{keyCount:this.styleKeyToAtlas.size,atlasCount:new Set(this.styleKeyToAtlas.values()).size}}}])}();function lm(r,e){if(r.intersection)return r.intersection(e);else return new Set(bn(r).filter(function(t){return e.has(t)}))}var vm=function(){function r(e,t){pt(this,r),this.r=e,this.globalOptions=t,this.atlasSize=t.webglTexSize,this.maxAtlasesPerBatch=t.webglTexPerBatch,this.renderTypes=new Map,this.collections=new Map,this.typeAndIdToKey=new Map}return yt(r,[{key:"getAtlasSize",value:function(){return this.atlasSize}},{key:"addAtlasCollection",value:function(t,a){var n=this.globalOptions,{webglTexSize:i,createTextureCanvas:s}=n,o=a.texRows,u=this._cacheScratchCanvas(s),l=new um(this.r,i,o,u);this.collections.set(t,l)}},{key:"addRenderType",value:function(t,a){var n=a.collection;if(!this.collections.has(n))throw Error("invalid atlas collection name '".concat(n,"'"));var i=this.collections.get(n),s=me({type:t,atlasCollection:i},a);this.renderTypes.set(t,s)}},{key:"getRenderTypeOpts",value:function(t){return this.renderTypes.get(t)}},{key:"getAtlasCollection",value:function(t){return this.collections.get(t)}},{key:"_cacheScratchCanvas",value:function(t){var a=-1,n=-1,i=null;return function(s,o,u,l){if(l){if(!i||o!=a||u!=n)a=o,n=u,i=t(s,o,u);return i}else return t(s,o,u)}}},{key:"_key",value:function(t,a){return"".concat(t,"-").concat(a)}},{key:"invalidate",value:function(t){var a=this,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=n.forceRedraw,s=i===void 0?!1:i,o=n.filterEle,u=o===void 0?function(){return!0}:o,l=n.filterType,v=l===void 0?function(){return!0}:l,f=!1,c=!1,h=Sr(t),d;try{for(h.s();!(d=h.n()).done;){var y=d.value;if(u(y)){var g=Sr(this.renderTypes.values()),p;try{var m=function(){var w=p.value,E=w.type;if(v(E)){var C=a.collections.get(w.collection),x=w.getKey(y),S=Array.isArray(x)?x:[x];if(s)S.forEach(function(P){return C.markKeyForGC(P)}),c=!0;else{var k=w.getID?w.getID(y):y.id(),B=a._key(E,k),D=a.typeAndIdToKey.get(B);if(D!==void 0&&!Jy(S,D))f=!0,a.typeAndIdToKey.delete(B),D.forEach(function(P){return C.markKeyForGC(P)})}}};for(g.s();!(p=g.n()).done;)m()}catch(b){g.e(b)}finally{g.f()}}}}catch(b){h.e(b)}finally{h.f()}if(c)this.gc(),f=!1;return f}},{key:"gc",value:function(){var t=Sr(this.collections.values()),a;try{for(t.s();!(a=t.n()).done;){var n=a.value;n.gc()}}catch(i){t.e(i)}finally{t.f()}}},{key:"getOrCreateAtlas",value:function(t,a,n,i){var s=this.renderTypes.get(a),o=this.collections.get(s.collection),u=!1,l=o.draw(i,n,function(c){if(s.drawClipped)c.save(),c.beginPath(),c.rect(0,0,n.w,n.h),c.clip(),s.drawElement(c,t,n,!0,!0),c.restore();else s.drawElement(c,t,n,!0,!0);u=!0});if(u){var v=s.getID?s.getID(t):t.id(),f=this._key(a,v);if(this.typeAndIdToKey.has(f))this.typeAndIdToKey.get(f).push(i);else this.typeAndIdToKey.set(f,[i])}return l}},{key:"getAtlasInfo",value:function(t,a){var n=this,i=this.renderTypes.get(a),s=i.getKey(t),o=Array.isArray(s)?s:[s];return o.map(function(u){var l=i.getBoundingBox(t,u),v=n.getOrCreateAtlas(t,a,l,u),f=v.getOffsets(u),c=je(f,2),h=c[0],d=c[1];return{atlas:v,tex:h,tex1:h,tex2:d,bb:l}})}},{key:"getDebugInfo",value:function(){var t=[],a=Sr(this.collections),n;try{for(a.s();!(n=a.n()).done;){var i=je(n.value,2),s=i[0],o=i[1],u=o.getCounts(),{keyCount:l,atlasCount:v}=u;t.push({type:s,keyCount:l,atlasCount:v})}}catch(f){a.e(f)}finally{a.f()}return t}}])}(),fm=function(){function r(e){pt(this,r),this.globalOptions=e,this.atlasSize=e.webglTexSize,this.maxAtlasesPerBatch=e.webglTexPerBatch,this.batchAtlases=[]}return yt(r,[{key:"getMaxAtlasesPerBatch",value:function(){return this.maxAtlasesPerBatch}},{key:"getAtlasSize",value:function(){return this.atlasSize}},{key:"getIndexArray",value:function(){return Array.from({length:this.maxAtlasesPerBatch},function(t,a){return a})}},{key:"startBatch",value:function(){this.batchAtlases=[]}},{key:"getAtlasCount",value:function(){return this.batchAtlases.length}},{key:"getAtlases",value:function(){return this.batchAtlases}},{key:"canAddToCurrentBatch",value:function(t){if(this.batchAtlases.length===this.maxAtlasesPerBatch)return this.batchAtlases.includes(t);return!0}},{key:"getAtlasIndexForBatch",value:function(t){var a=this.batchAtlases.indexOf(t);if(a<0){if(this.batchAtlases.length===this.maxAtlasesPerBatch)throw Error("cannot add more atlases to batch");this.batchAtlases.push(t),a=this.batchAtlases.length-1}return a}}])}(),cm=`
18
+ float circleSD(vec2 p, float r) {
19
+ return distance(vec2(0), p) - r; // signed distance
20
+ }
21
+ `,dm=`
22
+ float rectangleSD(vec2 p, vec2 b) {
23
+ vec2 d = abs(p)-b;
24
+ return distance(vec2(0),max(d,0.0)) + min(max(d.x,d.y),0.0);
25
+ }
26
+ `,hm=`
27
+ float roundRectangleSD(vec2 p, vec2 b, vec4 cr) {
28
+ cr.xy = (p.x > 0.0) ? cr.xy : cr.zw;
29
+ cr.x = (p.y > 0.0) ? cr.x : cr.y;
30
+ vec2 q = abs(p) - b + cr.x;
31
+ return min(max(q.x, q.y), 0.0) + distance(vec2(0), max(q, 0.0)) - cr.x;
32
+ }
33
+ `,gm=`
34
+ float ellipseSD(vec2 p, vec2 ab) {
35
+ p = abs( p ); // symmetry
36
+
37
+ // find root with Newton solver
38
+ vec2 q = ab*(p-ab);
39
+ float w = (q.x<q.y)? 1.570796327 : 0.0;
40
+ for( int i=0; i<5; i++ ) {
41
+ vec2 cs = vec2(cos(w),sin(w));
42
+ vec2 u = ab*vec2( cs.x,cs.y);
43
+ vec2 v = ab*vec2(-cs.y,cs.x);
44
+ w = w + dot(p-u,v)/(dot(p-u,u)+dot(v,v));
45
+ }
46
+
47
+ // compute final point and distance
48
+ float d = length(p-ab*vec2(cos(w),sin(w)));
49
+
50
+ // return signed distance
51
+ return (dot(p/ab,p/ab)>1.0) ? d : -d;
52
+ }
53
+ `,Ca={SCREEN:{name:"screen",screen:!0},PICKING:{name:"picking",picking:!0}},Rn={IGNORE:1,USE_BB:2},Ts=0,Xl=1,Yl=2,Ss=3,Gt=4,on=5,pa=6,ya=7,pm=function(){function r(e,t,a){pt(this,r),this.r=e,this.gl=t,this.maxInstances=a.webglBatchSize,this.atlasSize=a.webglTexSize,this.bgColor=a.bgColor,this.debug=a.webglDebug,this.batchDebugInfo=[],a.enableWrapping=!0,a.createTextureCanvas=Xy,this.atlasManager=new vm(e,a),this.batchManager=new fm(a),this.simpleShapeOptions=new Map,this.program=this._createShaderProgram(Ca.SCREEN),this.pickingProgram=this._createShaderProgram(Ca.PICKING),this.vao=this._createVAO()}return yt(r,[{key:"addAtlasCollection",value:function(t,a){this.atlasManager.addAtlasCollection(t,a)}},{key:"addTextureAtlasRenderType",value:function(t,a){this.atlasManager.addRenderType(t,a)}},{key:"addSimpleShapeRenderType",value:function(t,a){this.simpleShapeOptions.set(t,a)}},{key:"invalidate",value:function(t){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=a.type,i=this.atlasManager;if(n)return i.invalidate(t,{filterType:function(o){return o===n},forceRedraw:!0});else return i.invalidate(t)}},{key:"gc",value:function(){this.atlasManager.gc()}},{key:"_createShaderProgram",value:function(t){var a=this.gl,n=`#version 300 es
54
+ precision highp float;
55
+
56
+ uniform mat3 uPanZoomMatrix;
57
+ uniform int uAtlasSize;
58
+
59
+ // instanced
60
+ in vec2 aPosition; // a vertex from the unit square
61
+
62
+ in mat3 aTransform; // used to transform verticies, eg into a bounding box
63
+ in int aVertType; // the type of thing we are rendering
64
+
65
+ // the z-index that is output when using picking mode
66
+ in vec4 aIndex;
67
+
68
+ // For textures
69
+ in int aAtlasId; // which shader unit/atlas to use
70
+ in vec4 aTex; // x/y/w/h of texture in atlas
71
+
72
+ // for edges
73
+ in vec4 aPointAPointB;
74
+ in vec4 aPointCPointD;
75
+ in vec2 aLineWidth; // also used for node border width
76
+
77
+ // simple shapes
78
+ in vec4 aCornerRadius; // for round-rectangle [top-right, bottom-right, top-left, bottom-left]
79
+ in vec4 aColor; // also used for edges
80
+ in vec4 aBorderColor; // aLineWidth is used for border width
81
+
82
+ // output values passed to the fragment shader
83
+ out vec2 vTexCoord;
84
+ out vec4 vColor;
85
+ out vec2 vPosition;
86
+ // flat values are not interpolated
87
+ flat out int vAtlasId;
88
+ flat out int vVertType;
89
+ flat out vec2 vTopRight;
90
+ flat out vec2 vBotLeft;
91
+ flat out vec4 vCornerRadius;
92
+ flat out vec4 vBorderColor;
93
+ flat out vec2 vBorderWidth;
94
+ flat out vec4 vIndex;
95
+
96
+ void main(void) {
97
+ int vid = gl_VertexID;
98
+ vec2 position = aPosition; // TODO make this a vec3, simplifies some code below
99
+
100
+ if(aVertType == `.concat(Ts,`) {
101
+ float texX = aTex.x; // texture coordinates
102
+ float texY = aTex.y;
103
+ float texW = aTex.z;
104
+ float texH = aTex.w;
105
+
106
+ if(vid == 1 || vid == 2 || vid == 4) {
107
+ texX += texW;
108
+ }
109
+ if(vid == 2 || vid == 4 || vid == 5) {
110
+ texY += texH;
111
+ }
112
+
113
+ float d = float(uAtlasSize);
114
+ vTexCoord = vec2(texX / d, texY / d); // tex coords must be between 0 and 1
115
+
116
+ gl_Position = vec4(uPanZoomMatrix * aTransform * vec3(position, 1.0), 1.0);
117
+ }
118
+ else if(aVertType == `).concat(Gt," || aVertType == ").concat(ya,`
119
+ || aVertType == `).concat(on," || aVertType == ").concat(pa,`) { // simple shapes
120
+
121
+ // the bounding box is needed by the fragment shader
122
+ vBotLeft = (aTransform * vec3(0, 0, 1)).xy; // flat
123
+ vTopRight = (aTransform * vec3(1, 1, 1)).xy; // flat
124
+ vPosition = (aTransform * vec3(position, 1)).xy; // will be interpolated
125
+
126
+ // calculations are done in the fragment shader, just pass these along
127
+ vColor = aColor;
128
+ vCornerRadius = aCornerRadius;
129
+ vBorderColor = aBorderColor;
130
+ vBorderWidth = aLineWidth;
131
+
132
+ gl_Position = vec4(uPanZoomMatrix * aTransform * vec3(position, 1.0), 1.0);
133
+ }
134
+ else if(aVertType == `).concat(Xl,`) {
135
+ vec2 source = aPointAPointB.xy;
136
+ vec2 target = aPointAPointB.zw;
137
+
138
+ // adjust the geometry so that the line is centered on the edge
139
+ position.y = position.y - 0.5;
140
+
141
+ // stretch the unit square into a long skinny rectangle
142
+ vec2 xBasis = target - source;
143
+ vec2 yBasis = normalize(vec2(-xBasis.y, xBasis.x));
144
+ vec2 point = source + xBasis * position.x + yBasis * aLineWidth[0] * position.y;
145
+
146
+ gl_Position = vec4(uPanZoomMatrix * vec3(point, 1.0), 1.0);
147
+ vColor = aColor;
148
+ }
149
+ else if(aVertType == `).concat(Yl,`) {
150
+ vec2 pointA = aPointAPointB.xy;
151
+ vec2 pointB = aPointAPointB.zw;
152
+ vec2 pointC = aPointCPointD.xy;
153
+ vec2 pointD = aPointCPointD.zw;
154
+
155
+ // adjust the geometry so that the line is centered on the edge
156
+ position.y = position.y - 0.5;
157
+
158
+ vec2 p0, p1, p2, pos;
159
+ if(position.x == 0.0) { // The left side of the unit square
160
+ p0 = pointA;
161
+ p1 = pointB;
162
+ p2 = pointC;
163
+ pos = position;
164
+ } else { // The right side of the unit square, use same approach but flip the geometry upside down
165
+ p0 = pointD;
166
+ p1 = pointC;
167
+ p2 = pointB;
168
+ pos = vec2(0.0, -position.y);
169
+ }
170
+
171
+ vec2 p01 = p1 - p0;
172
+ vec2 p12 = p2 - p1;
173
+ vec2 p21 = p1 - p2;
174
+
175
+ // Find the normal vector.
176
+ vec2 tangent = normalize(normalize(p12) + normalize(p01));
177
+ vec2 normal = vec2(-tangent.y, tangent.x);
178
+
179
+ // Find the vector perpendicular to p0 -> p1.
180
+ vec2 p01Norm = normalize(vec2(-p01.y, p01.x));
181
+
182
+ // Determine the bend direction.
183
+ float sigma = sign(dot(p01 + p21, normal));
184
+ float width = aLineWidth[0];
185
+
186
+ if(sign(pos.y) == -sigma) {
187
+ // This is an intersecting vertex. Adjust the position so that there's no overlap.
188
+ vec2 point = 0.5 * width * normal * -sigma / dot(normal, p01Norm);
189
+ gl_Position = vec4(uPanZoomMatrix * vec3(p1 + point, 1.0), 1.0);
190
+ } else {
191
+ // This is a non-intersecting vertex. Treat it like a mitre join.
192
+ vec2 point = 0.5 * width * normal * sigma * dot(normal, p01Norm);
193
+ gl_Position = vec4(uPanZoomMatrix * vec3(p1 + point, 1.0), 1.0);
194
+ }
195
+
196
+ vColor = aColor;
197
+ }
198
+ else if(aVertType == `).concat(Ss,` && vid < 3) {
199
+ // massage the first triangle into an edge arrow
200
+ if(vid == 0)
201
+ position = vec2(-0.15, -0.3);
202
+ if(vid == 1)
203
+ position = vec2( 0.0, 0.0);
204
+ if(vid == 2)
205
+ position = vec2( 0.15, -0.3);
206
+
207
+ gl_Position = vec4(uPanZoomMatrix * aTransform * vec3(position, 1.0), 1.0);
208
+ vColor = aColor;
209
+ }
210
+ else {
211
+ gl_Position = vec4(2.0, 0.0, 0.0, 1.0); // discard vertex by putting it outside webgl clip space
212
+ }
213
+
214
+ vAtlasId = aAtlasId;
215
+ vVertType = aVertType;
216
+ vIndex = aIndex;
217
+ }
218
+ `),i=this.batchManager.getIndexArray(),s=`#version 300 es
219
+ precision highp float;
220
+
221
+ // declare texture unit for each texture atlas in the batch
222
+ `.concat(i.map(function(l){return"uniform sampler2D uTexture".concat(l,";")}).join(`
223
+ `),`
224
+
225
+ uniform vec4 uBGColor;
226
+ uniform float uZoom;
227
+
228
+ in vec2 vTexCoord;
229
+ in vec4 vColor;
230
+ in vec2 vPosition; // model coordinates
231
+
232
+ flat in int vAtlasId;
233
+ flat in vec4 vIndex;
234
+ flat in int vVertType;
235
+ flat in vec2 vTopRight;
236
+ flat in vec2 vBotLeft;
237
+ flat in vec4 vCornerRadius;
238
+ flat in vec4 vBorderColor;
239
+ flat in vec2 vBorderWidth;
240
+
241
+ out vec4 outColor;
242
+
243
+ `).concat(cm,`
244
+ `).concat(dm,`
245
+ `).concat(hm,`
246
+ `).concat(gm,`
247
+
248
+ vec4 blend(vec4 top, vec4 bot) { // blend colors with premultiplied alpha
249
+ return vec4(
250
+ top.rgb + (bot.rgb * (1.0 - top.a)),
251
+ top.a + (bot.a * (1.0 - top.a))
252
+ );
253
+ }
254
+
255
+ vec4 distInterp(vec4 cA, vec4 cB, float d) { // interpolate color using Signed Distance
256
+ // scale to the zoom level so that borders don't look blurry when zoomed in
257
+ // note 1.5 is an aribitrary value chosen because it looks good
258
+ return mix(cA, cB, 1.0 - smoothstep(0.0, 1.5 / uZoom, abs(d)));
259
+ }
260
+
261
+ void main(void) {
262
+ if(vVertType == `).concat(Ts,`) {
263
+ // look up the texel from the texture unit
264
+ `).concat(i.map(function(l){return"if(vAtlasId == ".concat(l,") outColor = texture(uTexture").concat(l,", vTexCoord);")}).join(`
265
+ else `),`
266
+ }
267
+ else if(vVertType == `).concat(Ss,`) {
268
+ // mimics how canvas renderer uses context.globalCompositeOperation = 'destination-out';
269
+ outColor = blend(vColor, uBGColor);
270
+ outColor.a = 1.0; // make opaque, masks out line under arrow
271
+ }
272
+ else if(vVertType == `).concat(Gt,` && vBorderWidth == vec2(0.0)) { // simple rectangle with no border
273
+ outColor = vColor; // unit square is already transformed to the rectangle, nothing else needs to be done
274
+ }
275
+ else if(vVertType == `).concat(Gt," || vVertType == ").concat(ya,`
276
+ || vVertType == `).concat(on," || vVertType == ").concat(pa,`) { // use SDF
277
+
278
+ float outerBorder = vBorderWidth[0];
279
+ float innerBorder = vBorderWidth[1];
280
+ float borderPadding = outerBorder * 2.0;
281
+ float w = vTopRight.x - vBotLeft.x - borderPadding;
282
+ float h = vTopRight.y - vBotLeft.y - borderPadding;
283
+ vec2 b = vec2(w/2.0, h/2.0); // half width, half height
284
+ vec2 p = vPosition - vec2(vTopRight.x - b[0] - outerBorder, vTopRight.y - b[1] - outerBorder); // translate to center
285
+
286
+ float d; // signed distance
287
+ if(vVertType == `).concat(Gt,`) {
288
+ d = rectangleSD(p, b);
289
+ } else if(vVertType == `).concat(ya,` && w == h) {
290
+ d = circleSD(p, b.x); // faster than ellipse
291
+ } else if(vVertType == `).concat(ya,`) {
292
+ d = ellipseSD(p, b);
293
+ } else {
294
+ d = roundRectangleSD(p, b, vCornerRadius.wzyx);
295
+ }
296
+
297
+ // use the distance to interpolate a color to smooth the edges of the shape, doesn't need multisampling
298
+ // we must smooth colors inwards, because we can't change pixels outside the shape's bounding box
299
+ if(d > 0.0) {
300
+ if(d > outerBorder) {
301
+ discard;
302
+ } else {
303
+ outColor = distInterp(vBorderColor, vec4(0), d - outerBorder);
304
+ }
305
+ } else {
306
+ if(d > innerBorder) {
307
+ vec4 outerColor = outerBorder == 0.0 ? vec4(0) : vBorderColor;
308
+ vec4 innerBorderColor = blend(vBorderColor, vColor);
309
+ outColor = distInterp(innerBorderColor, outerColor, d);
310
+ }
311
+ else {
312
+ vec4 outerColor;
313
+ if(innerBorder == 0.0 && outerBorder == 0.0) {
314
+ outerColor = vec4(0);
315
+ } else if(innerBorder == 0.0) {
316
+ outerColor = vBorderColor;
317
+ } else {
318
+ outerColor = blend(vBorderColor, vColor);
319
+ }
320
+ outColor = distInterp(vColor, outerColor, d - innerBorder);
321
+ }
322
+ }
323
+ }
324
+ else {
325
+ outColor = vColor;
326
+ }
327
+
328
+ `).concat(t.picking?`if(outColor.a == 0.0) discard;
329
+ else outColor = vIndex;`:"",`
330
+ }
331
+ `),o=Ky(a,n,s);o.aPosition=a.getAttribLocation(o,"aPosition"),o.aIndex=a.getAttribLocation(o,"aIndex"),o.aVertType=a.getAttribLocation(o,"aVertType"),o.aTransform=a.getAttribLocation(o,"aTransform"),o.aAtlasId=a.getAttribLocation(o,"aAtlasId"),o.aTex=a.getAttribLocation(o,"aTex"),o.aPointAPointB=a.getAttribLocation(o,"aPointAPointB"),o.aPointCPointD=a.getAttribLocation(o,"aPointCPointD"),o.aLineWidth=a.getAttribLocation(o,"aLineWidth"),o.aColor=a.getAttribLocation(o,"aColor"),o.aCornerRadius=a.getAttribLocation(o,"aCornerRadius"),o.aBorderColor=a.getAttribLocation(o,"aBorderColor"),o.uPanZoomMatrix=a.getUniformLocation(o,"uPanZoomMatrix"),o.uAtlasSize=a.getUniformLocation(o,"uAtlasSize"),o.uBGColor=a.getUniformLocation(o,"uBGColor"),o.uZoom=a.getUniformLocation(o,"uZoom"),o.uTextures=[];for(var u=0;u<this.batchManager.getMaxAtlasesPerBatch();u++)o.uTextures.push(a.getUniformLocation(o,"uTexture".concat(u)));return o}},{key:"_createVAO",value:function(){var t=[0,0,1,0,1,1,0,0,1,1,0,1];this.vertexCount=t.length/2;var a=this.maxInstances,n=this.gl,i=this.program,s=n.createVertexArray();return n.bindVertexArray(s),tm(n,"vec2",i.aPosition,t),this.transformBuffer=am(n,a,i.aTransform),this.indexBuffer=qr(n,a,"vec4",i.aIndex),this.vertTypeBuffer=qr(n,a,"int",i.aVertType),this.atlasIdBuffer=qr(n,a,"int",i.aAtlasId),this.texBuffer=qr(n,a,"vec4",i.aTex),this.pointAPointBBuffer=qr(n,a,"vec4",i.aPointAPointB),this.pointCPointDBuffer=qr(n,a,"vec4",i.aPointCPointD),this.lineWidthBuffer=qr(n,a,"vec2",i.aLineWidth),this.colorBuffer=qr(n,a,"vec4",i.aColor),this.cornerRadiusBuffer=qr(n,a,"vec4",i.aCornerRadius),this.borderColorBuffer=qr(n,a,"vec4",i.aBorderColor),n.bindVertexArray(null),s}},{key:"buffers",get:function(){var t=this;if(!this._buffers)this._buffers=Object.keys(this).filter(function(a){return it(a,"Buffer")}).map(function(a){return t[a]});return this._buffers}},{key:"startFrame",value:function(t){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Ca.SCREEN;this.panZoomMatrix=t,this.renderTarget=a,this.batchDebugInfo=[],this.wrappedCount=0,this.simpleCount=0,this.startBatch()}},{key:"startBatch",value:function(){this.instanceCount=0,this.batchManager.startBatch()}},{key:"endFrame",value:function(){this.endBatch()}},{key:"_isVisible",value:function(t,a){if(t.visible()){if(a&&a.isVisible)return a.isVisible(t);return!0}return!1}},{key:"drawTexture",value:function(t,a,n){var i=this.atlasManager,s=this.batchManager,o=i.getRenderTypeOpts(n);if(!this._isVisible(t,o))return;if(t.isEdge()&&!this._isValidEdge(t))return;if(this.renderTarget.picking&&o.getTexPickingMode){var u=o.getTexPickingMode(t);if(u===Rn.IGNORE)return;else if(u==Rn.USE_BB){this.drawPickingRectangle(t,a,n);return}}var l=i.getAtlasInfo(t,n),v=Sr(l),f;try{for(v.s();!(f=v.n()).done;){var c=f.value,{atlas:h,tex1:d,tex2:y}=c;if(!s.canAddToCurrentBatch(h))this.endBatch();var g=s.getAtlasIndexForBatch(h);for(var p=0,m=[[d,!0],[y,!1]];p<m.length;p++){var b=je(m[p],2),w=b[0],E=b[1];if(w.w!=0){var C=this.instanceCount;this.vertTypeBuffer.getView(C)[0]=Ts;var x=this.indexBuffer.getView(C);_t(a,x);var S=this.atlasIdBuffer.getView(C);S[0]=g;var k=this.texBuffer.getView(C);k[0]=w.x,k[1]=w.y,k[2]=w.w,k[3]=w.h;var B=this.transformBuffer.getMatrixView(C);if(this.setTransformMatrix(t,B,o,c,E),this.instanceCount++,!E)this.wrappedCount++;if(this.instanceCount>=this.maxInstances)this.endBatch()}}}}catch(D){v.e(D)}finally{v.f()}}},{key:"setTransformMatrix",value:function(t,a,n,i){var s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,o=0;if(n.shapeProps&&n.shapeProps.padding)o=t.pstyle(n.shapeProps.padding).pfValue;if(i){var{bb:u,tex1:l,tex2:v}=i,f=l.w/(l.w+v.w);if(!s)f=1-f;var c=this._getAdjustedBB(u,o,s,f);this._applyTransformMatrix(a,c,n,t)}else{var h=n.getBoundingBox(t),d=this._getAdjustedBB(h,o,!0,1);this._applyTransformMatrix(a,d,n,t)}}},{key:"_applyTransformMatrix",value:function(t,a,n,i){var s,o;Ul(t);var u=n.getRotation?n.getRotation(i):0;if(u!==0){var l=n.getRotationPoint(i),{x:v,y:f}=l;mn(t,t,[v,f]),Kl(t,t,u);var c=n.getRotationOffset(i);s=c.x+(a.xOffset||0),o=c.y+(a.yOffset||0)}else s=a.x1,o=a.y1;mn(t,t,[s,o]),$s(t,t,[a.w,a.h])}},{key:"_getAdjustedBB",value:function(t,a,n,i){var{x1:s,y1:o,w:u,h:l,yOffset:v}=t;if(a)s-=a,o-=a,u+=2*a,l+=2*a;var f=0,c=u*i;if(n&&i<1)u=c;else if(!n&&i<1)f=u-c,s+=f,u=c;return{x1:s,y1:o,w:u,h:l,xOffset:f,yOffset:v}}},{key:"drawPickingRectangle",value:function(t,a,n){var i=this.atlasManager.getRenderTypeOpts(n),s=this.instanceCount;this.vertTypeBuffer.getView(s)[0]=Gt;var o=this.indexBuffer.getView(s);_t(a,o);var u=this.colorBuffer.getView(s);Ct([0,0,0],1,u);var l=this.transformBuffer.getMatrixView(s);if(this.setTransformMatrix(t,l,i),this.simpleCount++,this.instanceCount++,this.instanceCount>=this.maxInstances)this.endBatch()}},{key:"drawNode",value:function(t,a,n){var i=this.simpleShapeOptions.get(n);if(!this._isVisible(t,i))return;var s=i.shapeProps,o=this._getVertTypeForShape(t,s.shape);if(o===void 0||i.isSimple&&!i.isSimple(t,this.renderTarget)){this.drawTexture(t,a,n);return}var u=this.instanceCount;if(this.vertTypeBuffer.getView(u)[0]=o,o===on||o===pa){var l=i.getBoundingBox(t),v=this._getCornerRadius(t,s.radius,l),f=this.cornerRadiusBuffer.getView(u);if(f[0]=v,f[1]=v,f[2]=v,f[3]=v,o===pa)f[0]=0,f[2]=0}var c=this.indexBuffer.getView(u);_t(a,c);var h=this.renderTarget.picking?1:n==="node-body"?t.effectiveOpacity():1,d=this.renderTarget.picking?1:t.pstyle(s.opacity).value*h,y=t.pstyle(s.color).value,g=this.colorBuffer.getView(u);Ct(y,d,g);var p=this.lineWidthBuffer.getView(u);if(p[0]=0,p[1]=0,s.border){var m=t.pstyle("border-width").value;if(m>0){var b=t.pstyle("border-color").value,w=h*t.pstyle("border-opacity").value,E=this.borderColorBuffer.getView(u);Ct(b,w,E);var C=t.pstyle("border-position").value;if(C==="inside")p[0]=0,p[1]=-m;else if(C==="outside")p[0]=m,p[1]=0;else{var x=m/2;p[0]=x,p[1]=-x}}}var S=this.transformBuffer.getMatrixView(u);if(this.setTransformMatrix(t,S,i),this.simpleCount++,this.instanceCount++,this.instanceCount>=this.maxInstances)this.endBatch()}},{key:"_getVertTypeForShape",value:function(t,a){var n=t.pstyle(a).value;switch(n){case"rectangle":return Gt;case"ellipse":return ya;case"roundrectangle":case"round-rectangle":return on;case"bottom-round-rectangle":return pa;default:return}}},{key:"_getCornerRadius",value:function(t,a,n){var{w:i,h:s}=n;if(t.pstyle(a).value==="auto")return ct(i,s);else{var o=t.pstyle(a).pfValue,u=i/2,l=s/2;return Math.min(o,l,u)}}},{key:"drawEdgeArrow",value:function(t,a,n){if(!t.visible())return;var i=t._private.rscratch,s,o,u;if(n==="source")s=i.arrowStartX,o=i.arrowStartY,u=i.srcArrowAngle;else s=i.arrowEndX,o=i.arrowEndY,u=i.tgtArrowAngle;if(isNaN(s)||s==null||isNaN(o)||o==null||isNaN(u)||u==null)return;var l=t.pstyle(n+"-arrow-shape").value;if(l==="none")return;var v=t.pstyle(n+"-arrow-color").value,f=t.pstyle("opacity").value,c=t.pstyle("line-opacity").value,h=f*c,d=t.pstyle("width").pfValue,y=t.pstyle("arrow-scale").value,g=this.r.getArrowWidth(d,y),p=this.instanceCount,m=this.transformBuffer.getMatrixView(p);Ul(m),mn(m,m,[s,o]),$s(m,m,[g,g]),Kl(m,m,u),this.vertTypeBuffer.getView(p)[0]=Ss;var b=this.indexBuffer.getView(p);_t(a,b);var w=this.colorBuffer.getView(p);if(Ct(v,h,w),this.instanceCount++,this.instanceCount>=this.maxInstances)this.endBatch()}},{key:"drawEdgeLine",value:function(t,a){if(!t.visible())return;var n=this._getEdgePoints(t);if(!n)return;var i=t.pstyle("opacity").value,s=t.pstyle("line-opacity").value,o=t.pstyle("width").pfValue,u=t.pstyle("line-color").value,l=i*s;if(n.length/2+this.instanceCount>this.maxInstances)this.endBatch();if(n.length==4){var v=this.instanceCount;this.vertTypeBuffer.getView(v)[0]=Xl;var f=this.indexBuffer.getView(v);_t(a,f);var c=this.colorBuffer.getView(v);Ct(u,l,c);var h=this.lineWidthBuffer.getView(v);h[0]=o;var d=this.pointAPointBBuffer.getView(v);if(d[0]=n[0],d[1]=n[1],d[2]=n[2],d[3]=n[3],this.instanceCount++,this.instanceCount>=this.maxInstances)this.endBatch()}else for(var y=0;y<n.length-2;y+=2){var g=this.instanceCount;this.vertTypeBuffer.getView(g)[0]=Yl;var p=this.indexBuffer.getView(g);_t(a,p);var m=this.colorBuffer.getView(g);Ct(u,l,m);var b=this.lineWidthBuffer.getView(g);b[0]=o;var w=n[y-2],E=n[y-1],C=n[y],x=n[y+1],S=n[y+2],k=n[y+3],B=n[y+4],D=n[y+5];if(y==0)w=2*C-S+0.001,E=2*x-k+0.001;if(y==n.length-4)B=2*S-C+0.001,D=2*k-x+0.001;var P=this.pointAPointBBuffer.getView(g);P[0]=w,P[1]=E,P[2]=C,P[3]=x;var A=this.pointCPointDBuffer.getView(g);if(A[0]=S,A[1]=k,A[2]=B,A[3]=D,this.instanceCount++,this.instanceCount>=this.maxInstances)this.endBatch()}}},{key:"_isValidEdge",value:function(t){var a=t._private.rscratch;if(a.badLine||a.allpts==null||isNaN(a.allpts[0]))return!1;return!0}},{key:"_getEdgePoints",value:function(t){var a=t._private.rscratch;if(!this._isValidEdge(t))return;var n=a.allpts;if(n.length==4)return n;var i=this._getNumSegments(t);return this._getCurveSegmentPoints(n,i)}},{key:"_getNumSegments",value:function(t){var a=15;return Math.min(Math.max(a,5),this.maxInstances)}},{key:"_getCurveSegmentPoints",value:function(t,a){if(t.length==4)return t;var n=Array((a+1)*2);for(var i=0;i<=a;i++)if(i==0)n[0]=t[0],n[1]=t[1];else if(i==a)n[i*2]=t[t.length-2],n[i*2+1]=t[t.length-1];else{var s=i/a;this._setCurvePoint(t,s,n,i*2)}return n}},{key:"_setCurvePoint",value:function(t,a,n,i){if(t.length<=2)n[i]=t[0],n[i+1]=t[1];else{var s=Array(t.length-2);for(var o=0;o<s.length;o+=2){var u=(1-a)*t[o]+a*t[o+2],l=(1-a)*t[o+1]+a*t[o+3];s[o]=u,s[o+1]=l}return this._setCurvePoint(s,a,n,i)}}},{key:"endBatch",value:function(){var t=this.gl,a=this.vao,n=this.vertexCount,i=this.instanceCount;if(i===0)return;var s=this.renderTarget.picking?this.pickingProgram:this.program;t.useProgram(s),t.bindVertexArray(a);var o=Sr(this.buffers),u;try{for(o.s();!(u=o.n()).done;){var l=u.value;l.bufferSubData(i)}}catch(d){o.e(d)}finally{o.f()}var v=this.batchManager.getAtlases();for(var f=0;f<v.length;f++)v[f].bufferIfNeeded(t);for(var c=0;c<v.length;c++)t.activeTexture(t.TEXTURE0+c),t.bindTexture(t.TEXTURE_2D,v[c].texture),t.uniform1i(s.uTextures[c],c);t.uniform1f(s.uZoom,Yy(this.r)),t.uniformMatrix3fv(s.uPanZoomMatrix,!1,this.panZoomMatrix),t.uniform1i(s.uAtlasSize,this.batchManager.getAtlasSize());var h=Ct(this.bgColor,1);if(t.uniform4fv(s.uBGColor,h),t.drawArraysInstanced(t.TRIANGLES,0,n,i),t.bindVertexArray(null),t.bindTexture(t.TEXTURE_2D,null),this.debug)this.batchDebugInfo.push({count:i,atlasCount:v.length});this.startBatch()}},{key:"getDebugInfo",value:function(){var t=this.atlasManager.getDebugInfo(),a=t.reduce(function(s,o){return s+o.atlasCount},0),n=this.batchDebugInfo,i=n.reduce(function(s,o){return s+o.count},0);return{atlasInfo:t,totalAtlases:a,wrappedCount:this.wrappedCount,simpleCount:this.simpleCount,batchCount:n.length,batchInfo:n,totalInstances:i}}}])}(),If={};If.initWebgl=function(r,e){var t=this,a=t.data.contexts[t.WEBGL];r.bgColor=ym(t),r.webglTexSize=Math.min(r.webglTexSize,a.getParameter(a.MAX_TEXTURE_SIZE)),r.webglTexRows=Math.min(r.webglTexRows,54),r.webglTexRowsNodes=Math.min(r.webglTexRowsNodes,54),r.webglBatchSize=Math.min(r.webglBatchSize,16384),r.webglTexPerBatch=Math.min(r.webglTexPerBatch,a.getParameter(a.MAX_TEXTURE_IMAGE_UNITS)),t.webglDebug=r.webglDebug,t.webglDebugShowAtlases=r.webglDebugShowAtlases,t.pickingFrameBuffer=nm(a),t.pickingFrameBuffer.needsDraw=!0,t.drawing=new pm(t,a,r);var n=function(f){return function(c){return t.getTextAngle(c,f)}},i=function(f){return function(c){var h=c.pstyle(f);return h&&h.value}},s=function(f){return function(c){return c.pstyle("".concat(f,"-opacity")).value>0}},o=function(f){var c=f.pstyle("text-events").strValue==="yes";return c?Rn.USE_BB:Rn.IGNORE},u=function(f){var c=f.position(),{x:h,y:d}=c,y=f.outerWidth(),g=f.outerHeight();return{w:y,h:g,x1:h-y/2,y1:d-g/2}};t.drawing.addAtlasCollection("node",{texRows:r.webglTexRowsNodes}),t.drawing.addAtlasCollection("label",{texRows:r.webglTexRows}),t.drawing.addTextureAtlasRenderType("node-body",{collection:"node",getKey:e.getStyleKey,getBoundingBox:e.getElementBox,drawElement:e.drawElement}),t.drawing.addSimpleShapeRenderType("node-body",{getBoundingBox:u,isSimple:Qy,shapeProps:{shape:"shape",color:"background-color",opacity:"background-opacity",radius:"corner-radius",border:!0}}),t.drawing.addSimpleShapeRenderType("node-overlay",{getBoundingBox:u,isVisible:s("overlay"),shapeProps:{shape:"overlay-shape",color:"overlay-color",opacity:"overlay-opacity",padding:"overlay-padding",radius:"overlay-corner-radius"}}),t.drawing.addSimpleShapeRenderType("node-underlay",{getBoundingBox:u,isVisible:s("underlay"),shapeProps:{shape:"underlay-shape",color:"underlay-color",opacity:"underlay-opacity",padding:"underlay-padding",radius:"underlay-corner-radius"}}),t.drawing.addTextureAtlasRenderType("label",{collection:"label",getTexPickingMode:o,getKey:ks(e.getLabelKey,null),getBoundingBox:Ds(e.getLabelBox,null),drawClipped:!0,drawElement:e.drawLabel,getRotation:n(null),getRotationPoint:e.getLabelRotationPoint,getRotationOffset:e.getLabelRotationOffset,isVisible:i("label")}),t.drawing.addTextureAtlasRenderType("edge-source-label",{collection:"label",getTexPickingMode:o,getKey:ks(e.getSourceLabelKey,"source"),getBoundingBox:Ds(e.getSourceLabelBox,"source"),drawClipped:!0,drawElement:e.drawSourceLabel,getRotation:n("source"),getRotationPoint:e.getSourceLabelRotationPoint,getRotationOffset:e.getSourceLabelRotationOffset,isVisible:i("source-label")}),t.drawing.addTextureAtlasRenderType("edge-target-label",{collection:"label",getTexPickingMode:o,getKey:ks(e.getTargetLabelKey,"target"),getBoundingBox:Ds(e.getTargetLabelBox,"target"),drawClipped:!0,drawElement:e.drawTargetLabel,getRotation:n("target"),getRotationPoint:e.getTargetLabelRotationPoint,getRotationOffset:e.getTargetLabelRotationOffset,isVisible:i("target-label")});var l=Va(function(){console.log("garbage collect flag set"),t.data.gc=!0},1e4);t.onUpdateEleCalcs(function(v,f){var c=!1;if(f&&f.length>0)c|=t.drawing.invalidate(f);if(c)l()}),mm(t)};function ym(r){var e=r.cy.container(),t=e&&e.style&&e.style.backgroundColor||"white";return sv(t)}function Of(r,e){var t=r._private.rscratch;return br(t,"labelWrapCachedLines",e)||[]}var ks=function(e,t){return function(a){var n=e(a),i=Of(a,t);if(i.length>1)return i.map(function(s,o){return"".concat(n,"_").concat(o)});return n}},Ds=function(e,t){return function(a,n){var i=e(a);if(typeof n==="string"){var s=n.indexOf("_");if(s>0){var o=Number(n.substring(s+1)),u=Of(a,t),l=i.h/u.length,v=l*o,f=i.y1+v;return{x1:i.x1,w:i.w,y1:f,h:l,yOffset:v}}}return i}};function mm(r){{var e=r.render;r.render=function(i){i=i||{};var s=r.cy;if(r.webgl)if(s.zoom()>Df)bm(r),e.call(r,i);else wm(r),zf(r,i,Ca.SCREEN)}}{var t=r.matchCanvasSize;r.matchCanvasSize=function(i){t.call(r,i),r.pickingFrameBuffer.setFramebufferAttachmentSizes(r.canvasWidth,r.canvasHeight),r.pickingFrameBuffer.needsDraw=!0}}r.findNearestElements=function(i,s,o,u){return km(r,i,s)};{var a=r.invalidateCachedZSortedEles;r.invalidateCachedZSortedEles=function(){a.call(r),r.pickingFrameBuffer.needsDraw=!0}}{var n=r.notify;r.notify=function(i,s){if(n.call(r,i,s),i==="viewport"||i==="bounds")r.pickingFrameBuffer.needsDraw=!0;else if(i==="background")r.drawing.invalidate(s,{type:"node-body"})}}}function bm(r){var e=r.data.contexts[r.WEBGL];e.clear(e.COLOR_BUFFER_BIT|e.DEPTH_BUFFER_BIT)}function wm(r){var e=function(a){a.save(),a.setTransform(1,0,0,1,0,0),a.clearRect(0,0,r.canvasWidth,r.canvasHeight),a.restore()};e(r.data.contexts[r.NODE]),e(r.data.contexts[r.DRAG])}function xm(r){var{canvasWidth:e,canvasHeight:t}=r,a=wo(r),{pan:n,zoom:i}=a,s=Cs();mn(s,s,[n.x,n.y]),$s(s,s,[i,i]);var o=Cs();sm(o,e,t);var u=Cs();return im(u,o,s),u}function Nf(r,e){var{canvasWidth:t,canvasHeight:a}=r,n=wo(r),{pan:i,zoom:s}=n;e.setTransform(1,0,0,1,0,0),e.clearRect(0,0,t,a),e.translate(i.x,i.y),e.scale(s,s)}function Em(r,e){r.drawSelectionRectangle(e,function(t){return Nf(r,t)})}function Cm(r){var e=r.data.contexts[r.NODE];e.save(),Nf(r,e),e.strokeStyle="rgba(0, 0, 0, 0.3)",e.beginPath(),e.moveTo(-1000,0),e.lineTo(1000,0),e.stroke(),e.beginPath(),e.moveTo(0,-1000),e.lineTo(0,1000),e.stroke(),e.restore()}function Tm(r){var e=function(n,i,s){var o=n.atlasManager.getAtlasCollection(i),u=r.data.contexts[r.NODE],l=o.atlases;for(var v=0;v<l.length;v++){var f=l[v],c=f.canvas;if(c){var{width:h,height:d}=c,y=h*v,g=c.height*s,p=0.4;u.save(),u.scale(p,p),u.drawImage(c,y,g),u.strokeStyle="black",u.rect(y,g,h,d),u.stroke(),u.restore()}}},t=0;e(r.drawing,"node",t++),e(r.drawing,"label",t++)}function Sm(r,e,t,a,n){var i,s,o,u,l=wo(r),{pan:v,zoom:f}=l;{var c=Zy(r,v,f,e,t),h=je(c,2),d=h[0],y=h[1],g=6;i=d-g/2,s=y-g/2,o=g,u=g}if(o===0||u===0)return[];var p=r.data.contexts[r.WEBGL];if(p.bindFramebuffer(p.FRAMEBUFFER,r.pickingFrameBuffer),r.pickingFrameBuffer.needsDraw)p.viewport(0,0,p.canvas.width,p.canvas.height),zf(r,null,Ca.PICKING),r.pickingFrameBuffer.needsDraw=!1;var m=o*u,b=new Uint8Array(m*4);p.readPixels(i,s,o,u,p.RGBA,p.UNSIGNED_BYTE,b),p.bindFramebuffer(p.FRAMEBUFFER,null);var w=new Set;for(var E=0;E<m;E++){var C=b.slice(E*4,E*4+4),x=jy(C)-1;if(x>=0)w.add(x)}return w}function km(r,e,t){var a=Sm(r,e,t),n=r.getCachedZSortedEles(),i,s,o=Sr(a),u;try{for(o.s();!(u=o.n()).done;){var l=u.value,v=n[l];if(!i&&v.isNode())i=v;if(!s&&v.isEdge())s=v;if(i&&s)break}}catch(f){o.e(f)}finally{o.f()}return[i,s].filter(Boolean)}function Bs(r,e,t){var a=r.drawing;if(e+=1,t.isNode())a.drawNode(t,e,"node-underlay"),a.drawNode(t,e,"node-body"),a.drawTexture(t,e,"label"),a.drawNode(t,e,"node-overlay");else a.drawEdgeLine(t,e),a.drawEdgeArrow(t,e,"source"),a.drawEdgeArrow(t,e,"target"),a.drawTexture(t,e,"label"),a.drawTexture(t,e,"edge-source-label"),a.drawTexture(t,e,"edge-target-label")}function zf(r,e,t){var a;if(r.webglDebug)a=performance.now();var n=r.drawing,i=0;if(t.screen){if(r.data.canvasNeedsRedraw[r.SELECT_BOX])Em(r,e)}if(r.data.canvasNeedsRedraw[r.NODE]||t.picking){var s=r.data.contexts[r.WEBGL];if(t.screen)s.clearColor(0,0,0,0),s.enable(s.BLEND),s.blendFunc(s.ONE,s.ONE_MINUS_SRC_ALPHA);else s.disable(s.BLEND);s.clear(s.COLOR_BUFFER_BIT|s.DEPTH_BUFFER_BIT),s.viewport(0,0,s.canvas.width,s.canvas.height);var o=xm(r),u=r.getCachedZSortedEles();if(i=u.length,n.startFrame(o,t),t.screen){for(var l=0;l<u.nondrag.length;l++)Bs(r,l,u.nondrag[l]);for(var v=0;v<u.drag.length;v++)Bs(r,v,u.drag[v])}else if(t.picking)for(var f=0;f<u.length;f++)Bs(r,f,u[f]);if(n.endFrame(),t.screen&&r.webglDebugShowAtlases)Cm(r),Tm(r);r.data.canvasNeedsRedraw[r.NODE]=!1,r.data.canvasNeedsRedraw[r.DRAG]=!1}if(r.webglDebug){var c=performance.now(),h=!1,d=Math.ceil(c-a),y=n.getDebugInfo(),g=["".concat(i," elements"),"".concat(y.totalInstances," instances"),"".concat(y.batchCount," batches"),"".concat(y.totalAtlases," atlases"),"".concat(y.wrappedCount," wrapped textures"),"".concat(y.simpleCount," simple shapes")].join(", ");if(h)console.log("WebGL (".concat(t.name,") - time ").concat(d,"ms, ").concat(g));else{console.log("WebGL (".concat(t.name,") - frame time ").concat(d,"ms")),console.log("Totals:"),console.log(" ".concat(g)),console.log("Texture Atlases Used:");var p=y.atlasInfo,m=Sr(p),b;try{for(m.s();!(b=m.n()).done;){var w=b.value;console.log(" ".concat(w.type,": ").concat(w.keyCount," keys, ").concat(w.atlasCount," atlases"))}}catch(E){m.e(E)}finally{m.f()}console.log("")}}if(r.data.gc)console.log("Garbage Collect!"),r.data.gc=!1,n.gc()}var wt={};wt.drawPolygonPath=function(r,e,t,a,n,i){var s=a/2,o=n/2;if(r.beginPath)r.beginPath();r.moveTo(e+s*i[0],t+o*i[1]);for(var u=1;u<i.length/2;u++)r.lineTo(e+s*i[u*2],t+o*i[u*2+1]);r.closePath()};wt.drawRoundPolygonPath=function(r,e,t,a,n,i,s){s.forEach(function(o){return yf(r,o)}),r.closePath()};wt.drawRoundRectanglePath=function(r,e,t,a,n,i){var s=a/2,o=n/2,u=i==="auto"?ct(a,n):Math.min(i,o,s);if(r.beginPath)r.beginPath();r.moveTo(e,t-o),r.arcTo(e+s,t-o,e+s,t,u),r.arcTo(e+s,t+o,e,t+o,u),r.arcTo(e-s,t+o,e-s,t,u),r.arcTo(e-s,t-o,e,t-o,u),r.lineTo(e,t-o),r.closePath()};wt.drawBottomRoundRectanglePath=function(r,e,t,a,n,i){var s=a/2,o=n/2,u=i==="auto"?ct(a,n):i;if(r.beginPath)r.beginPath();r.moveTo(e,t-o),r.lineTo(e+s,t-o),r.lineTo(e+s,t),r.arcTo(e+s,t+o,e,t+o,u),r.arcTo(e-s,t+o,e-s,t,u),r.lineTo(e-s,t-o),r.lineTo(e,t-o),r.closePath()};wt.drawCutRectanglePath=function(r,e,t,a,n,i,s){var o=a/2,u=n/2,l=s==="auto"?io():s;if(r.beginPath)r.beginPath();r.moveTo(e-o+l,t-u),r.lineTo(e+o-l,t-u),r.lineTo(e+o,t-u+l),r.lineTo(e+o,t+u-l),r.lineTo(e+o-l,t+u),r.lineTo(e-o+l,t+u),r.lineTo(e-o,t+u-l),r.lineTo(e-o,t-u+l),r.closePath()};wt.drawBarrelPath=function(r,e,t,a,n){var i=a/2,s=n/2,o=e-i,u=e+i,l=t-s,v=t+s,f=Rs(a,n),{widthOffset:c,heightOffset:h}=f,d=f.ctrlPtOffsetPct*c;if(r.beginPath)r.beginPath();r.moveTo(o,l+h),r.lineTo(o,v-h),r.quadraticCurveTo(o+d,v,o+c,v),r.lineTo(u-c,v),r.quadraticCurveTo(u-d,v,u,v-h),r.lineTo(u,l+h),r.quadraticCurveTo(u-d,l,u-c,l),r.lineTo(o+c,l),r.quadraticCurveTo(o+d,l,o,l+h),r.closePath()};var Zl=Math.sin(0),Ql=Math.cos(0),Us={},Ks={},Ff=Math.PI/40;for(at=0*Math.PI;at<2*Math.PI;at+=Ff)Us[at]=Math.sin(at),Ks[at]=Math.cos(at);var at;wt.drawEllipsePath=function(r,e,t,a,n){if(r.beginPath)r.beginPath();if(r.ellipse)r.ellipse(e,t,a/2,n/2,0,0,2*Math.PI);else{var i,s,o=a/2,u=n/2;for(var l=0*Math.PI;l<2*Math.PI;l+=Ff)if(i=e-o*Us[l]*Zl+o*Ks[l]*Ql,s=t+u*Ks[l]*Zl+u*Us[l]*Ql,l===0)r.moveTo(i,s);else r.lineTo(i,s)}r.closePath()};var $a={};$a.createBuffer=function(r,e){var t=document.createElement("canvas");return t.width=r,t.height=e,[t,t.getContext("2d")]};$a.bufferCanvasImage=function(r){var e=this.cy,t=e.mutableElements(),a=t.boundingBox(),n=this.findContainerClientCoords(),i=r.full?Math.ceil(a.w):n[2],s=r.full?Math.ceil(a.h):n[3],o=ne(r.maxWidth)||ne(r.maxHeight),u=this.getPixelRatio(),l=1;if(r.scale!==void 0)i*=r.scale,s*=r.scale,l=r.scale;else if(o){var v=1/0,f=1/0;if(ne(r.maxWidth))v=l*r.maxWidth/i;if(ne(r.maxHeight))f=l*r.maxHeight/s;l=Math.min(v,f),i*=l,s*=l}if(!o)i*=u,s*=u,l*=u;var c=document.createElement("canvas");c.width=i,c.height=s,c.style.width=i+"px",c.style.height=s+"px";var h=c.getContext("2d");if(i>0&&s>0){h.clearRect(0,0,i,s),h.globalCompositeOperation="source-over";var d=this.getCachedZSortedEles();if(r.full)h.translate(-a.x1*l,-a.y1*l),h.scale(l,l),this.drawElements(h,d),h.scale(1/l,1/l),h.translate(a.x1*l,a.y1*l);else{var y=e.pan(),g={x:y.x*l,y:y.y*l};l*=e.zoom(),h.translate(g.x,g.y),h.scale(l,l),this.drawElements(h,d),h.scale(1/l,1/l),h.translate(-g.x,-g.y)}if(r.bg)h.globalCompositeOperation="destination-over",h.fillStyle=r.bg,h.rect(0,0,i,s),h.fill()}return c};function Dm(r,e){var t=atob(r),a=new ArrayBuffer(t.length),n=new Uint8Array(a);for(var i=0;i<t.length;i++)n[i]=t.charCodeAt(i);return new Blob([a],{type:e})}function Jl(r){var e=r.indexOf(",");return r.substr(e+1)}function Vf(r,e,t){var a=function(){return e.toDataURL(t,r.quality)};switch(r.output){case"blob-promise":return new aa(function(n,i){try{e.toBlob(function(s){if(s!=null)n(s);else i(Error("`canvas.toBlob()` sent a null value in its callback"))},t,r.quality)}catch(s){i(s)}});case"blob":return Dm(Jl(a()),t);case"base64":return Jl(a());case"base64uri":default:return a()}}$a.png=function(r){return Vf(r,this.bufferCanvasImage(r),"image/png")};$a.jpg=function(r){return Vf(r,this.bufferCanvasImage(r),"image/jpeg")};var qf={};qf.nodeShapeImpl=function(r,e,t,a,n,i,s,o){switch(r){case"ellipse":return this.drawEllipsePath(e,t,a,n,i);case"polygon":return this.drawPolygonPath(e,t,a,n,i,s);case"round-polygon":return this.drawRoundPolygonPath(e,t,a,n,i,s,o);case"roundrectangle":case"round-rectangle":return this.drawRoundRectanglePath(e,t,a,n,i,o);case"cutrectangle":case"cut-rectangle":return this.drawCutRectanglePath(e,t,a,n,i,s,o);case"bottomroundrectangle":case"bottom-round-rectangle":return this.drawBottomRoundRectanglePath(e,t,a,n,i,o);case"barrel":return this.drawBarrelPath(e,t,a,n,i)}};var Bm=_f,Se=_f.prototype;Se.CANVAS_LAYERS=3;Se.SELECT_BOX=0;Se.DRAG=1;Se.NODE=2;Se.WEBGL=3;Se.CANVAS_TYPES=["2d","2d","2d","webgl2"];Se.BUFFER_COUNT=3;Se.TEXTURE_BUFFER=0;Se.MOTIONBLUR_BUFFER_NODE=1;Se.MOTIONBLUR_BUFFER_DRAG=2;function _f(r){var e=this,t=e.cy.window(),a=t.document;if(r.webgl)Se.CANVAS_LAYERS=e.CANVAS_LAYERS=4,console.log("webgl rendering enabled");e.data={canvases:Array(Se.CANVAS_LAYERS),contexts:Array(Se.CANVAS_LAYERS),canvasNeedsRedraw:Array(Se.CANVAS_LAYERS),bufferCanvases:Array(Se.BUFFER_COUNT),bufferContexts:Array(Se.CANVAS_LAYERS)};var n="-webkit-tap-highlight-color",i="rgba(0,0,0,0)";e.data.canvasContainer=a.createElement("div");var s=e.data.canvasContainer.style;e.data.canvasContainer.style[n]=i,s.position="relative",s.zIndex="0",s.overflow="hidden";var o=r.cy.container();o.appendChild(e.data.canvasContainer),o.style[n]=i;var u={"-webkit-user-select":"none","-moz-user-select":"-moz-none","user-select":"none","-webkit-tap-highlight-color":"rgba(0,0,0,0)","outline-style":"none"};if(bc())u["-ms-touch-action"]="none",u["touch-action"]="none";for(var l=0;l<Se.CANVAS_LAYERS;l++){var v=e.data.canvases[l]=a.createElement("canvas"),f=Se.CANVAS_TYPES[l];if(e.data.contexts[l]=v.getContext(f),!e.data.contexts[l])$e("Could not create canvas of type "+f);Object.keys(u).forEach(function(Y){v.style[Y]=u[Y]}),v.style.position="absolute",v.setAttribute("data-id","layer"+l),v.style.zIndex=String(Se.CANVAS_LAYERS-l),e.data.canvasContainer.appendChild(v),e.data.canvasNeedsRedraw[l]=!1}if(e.data.topCanvas=e.data.canvases[0],e.data.canvases[Se.NODE].setAttribute("data-id","layer"+Se.NODE+"-node"),e.data.canvases[Se.SELECT_BOX].setAttribute("data-id","layer"+Se.SELECT_BOX+"-selectbox"),e.data.canvases[Se.DRAG].setAttribute("data-id","layer"+Se.DRAG+"-drag"),e.data.canvases[Se.WEBGL])e.data.canvases[Se.WEBGL].setAttribute("data-id","layer"+Se.WEBGL+"-webgl");for(var l=0;l<Se.BUFFER_COUNT;l++)e.data.bufferCanvases[l]=a.createElement("canvas"),e.data.bufferContexts[l]=e.data.bufferCanvases[l].getContext("2d"),e.data.bufferCanvases[l].style.position="absolute",e.data.bufferCanvases[l].setAttribute("data-id","buffer"+l),e.data.bufferCanvases[l].style.zIndex=String(-l-1),e.data.bufferCanvases[l].style.visibility="hidden";e.pathsEnabled=!0;var c=wr(),h=function(F){return{x:(F.x1+F.x2)/2,y:(F.y1+F.y2)/2}},d=function(F){return{x:-F.w/2,y:-F.h/2}},y=function(F){var H=F[0]._private,W=H.oldBackgroundTimestamp===H.backgroundTimestamp;return!W},g=function(F){return F[0]._private.nodeKey},p=function(F){return F[0]._private.labelStyleKey},m=function(F){return F[0]._private.sourceLabelStyleKey},b=function(F){return F[0]._private.targetLabelStyleKey},w=function(F,H,W,K,ae){return e.drawElement(F,H,W,!1,!1,ae)},E=function(F,H,W,K,ae){return e.drawElementText(F,H,W,K,"main",ae)},C=function(F,H,W,K,ae){return e.drawElementText(F,H,W,K,"source",ae)},x=function(F,H,W,K,ae){return e.drawElementText(F,H,W,K,"target",ae)},S=function(F){return F.boundingBox(),F[0]._private.bodyBounds},k=function(F){return F.boundingBox(),F[0]._private.labelBounds.main||c},B=function(F){return F.boundingBox(),F[0]._private.labelBounds.source||c},D=function(F){return F.boundingBox(),F[0]._private.labelBounds.target||c},P=function(F,H){return H},A=function(F){return h(S(F))},R=function(F,H,W){var K=F?F+"-":"";return{x:H.x+W.pstyle(K+"text-margin-x").pfValue,y:H.y+W.pstyle(K+"text-margin-y").pfValue}},L=function(F,H,W){var K=F[0]._private.rscratch;return{x:K[H],y:K[W]}},I=function(F){return R("",L(F,"labelX","labelY"),F)},M=function(F){return R("source",L(F,"sourceLabelX","sourceLabelY"),F)},O=function(F){return R("target",L(F,"targetLabelX","targetLabelY"),F)},q=function(F){return d(S(F))},_=function(F){return d(B(F))},N=function(F){return d(D(F))},V=function(F){var H=k(F),W=d(k(F));if(F.isNode()){switch(ea(F.pstyle("text-halign").value)){case"left":W.x=-H.w-(H.leftPad||0);break;case"right":W.x=-(H.rightPad||0);break}switch(ra(F.pstyle("text-valign").value)){case"top":W.y=-H.h-(H.topPad||0);break;case"bottom":W.y=-(H.botPad||0);break}}return W},Z=e.data.eleTxrCache=new wa(e,{getKey:g,doesEleInvalidateKey:y,drawElement:w,getBoundingBox:S,getRotationPoint:A,getRotationOffset:q,allowEdgeTxrCaching:!1,allowParentTxrCaching:!1}),j=e.data.lblTxrCache=new wa(e,{getKey:p,drawElement:E,getBoundingBox:k,getRotationPoint:I,getRotationOffset:V,isVisible:P}),Q=e.data.slbTxrCache=new wa(e,{getKey:m,drawElement:C,getBoundingBox:B,getRotationPoint:M,getRotationOffset:_,isVisible:P}),re=e.data.tlbTxrCache=new wa(e,{getKey:b,drawElement:x,getBoundingBox:D,getRotationPoint:O,getRotationOffset:N,isVisible:P}),te=e.data.lyrTxrCache=new Bf(e);e.onUpdateEleCalcs(function(F,H){Z.invalidateElements(H),j.invalidateElements(H),Q.invalidateElements(H),re.invalidateElements(H),te.invalidateElements(H);for(var W=0;W<H.length;W++){var K=H[W]._private;K.oldBackgroundTimestamp=K.backgroundTimestamp}});var ie=function(F){for(var H=0;H<F.length;H++)te.enqueueElementRefinement(F[H].ele)};if(Z.onDequeue(ie),j.onDequeue(ie),Q.onDequeue(ie),re.onDequeue(ie),r.webgl)e.initWebgl(r,{getStyleKey:g,getLabelKey:p,getSourceLabelKey:m,getTargetLabelKey:b,drawElement:w,drawLabel:E,drawSourceLabel:C,drawTargetLabel:x,getElementBox:S,getLabelBox:k,getSourceLabelBox:B,getTargetLabelBox:D,getElementRotationPoint:A,getElementRotationOffset:q,getLabelRotationPoint:I,getSourceLabelRotationPoint:M,getTargetLabelRotationPoint:O,getLabelRotationOffset:V,getSourceLabelRotationOffset:_,getTargetLabelRotationOffset:N})}Se.redrawHint=function(r,e){var t=this;switch(r){case"eles":t.data.canvasNeedsRedraw[Se.NODE]=e;break;case"drag":t.data.canvasNeedsRedraw[Se.DRAG]=e;break;case"select":t.data.canvasNeedsRedraw[Se.SELECT_BOX]=e;break;case"gc":t.data.gc=!0;break}};var Pm=typeof Path2D<"u";Se.path2dEnabled=function(r){if(r===void 0)return this.pathsEnabled;this.pathsEnabled=r?!0:!1};Se.usePaths=function(){return Pm&&this.pathsEnabled};Se.setImgSmoothing=function(r,e){if(r.imageSmoothingEnabled!=null)r.imageSmoothingEnabled=e;else r.webkitImageSmoothingEnabled=e,r.mozImageSmoothingEnabled=e,r.msImageSmoothingEnabled=e};Se.getImgSmoothing=function(r){if(r.imageSmoothingEnabled!=null)return r.imageSmoothingEnabled;else return r.webkitImageSmoothingEnabled||r.mozImageSmoothingEnabled||r.msImageSmoothingEnabled};Se.makeOffscreenCanvas=function(r,e){var t;if((typeof OffscreenCanvas>"u"?"undefined":ar(OffscreenCanvas))!=="undefined")t=new OffscreenCanvas(r,e);else{var a=this.cy.window(),n=a.document;t=n.createElement("canvas"),t.width=r,t.height=e}return t};[Pf,Ur,jr,bo,Ot,bt,xr,If,wt,$a,qf].forEach(function(r){me(Se,r)});var Am=[{name:"null",impl:hf},{name:"base",impl:Sf},{name:"canvas",impl:Bm}],Rm=[{type:"layout",extensions:ey},{type:"renderer",extensions:Am}],Gf={},Hf={};function Wf(r,e,t){var a=t,n=function(S){Ve("Can not register `"+e+"` for `"+r+"` since `"+S+"` already exists in the prototype and can not be overridden")};if(r==="core")if(Ma.prototype[e])return n(e);else Ma.prototype[e]=t;else if(r==="collection")if(fr.prototype[e])return n(e);else fr.prototype[e]=t;else if(r==="layout"){var i=function(S){if(this.options=S,t.call(this,S),!Ie(this._private))this._private={};this._private.cy=S.cy,this._private.listeners=[],this.createEmitter()},s=i.prototype=Object.create(t.prototype),o=[];for(var u=0;u<o.length;u++){var l=o[u];s[l]=s[l]||function(){return this}}if(s.start&&!s.run)s.run=function(){return this.start(),this};else if(!s.start&&s.run)s.start=function(){return this.run(),this};var v=t.prototype.stop;if(s.stop=function(){var x=this.options;if(x&&x.animate){var S=this.animations;if(S)for(var k=0;k<S.length;k++)S[k].stop()}if(v)v.call(this);else this.emit("layoutstop");return this},!s.destroy)s.destroy=function(){return this};s.cy=function(){return this._private.cy};var f=function(S){return S._private.cy},c={addEventFields:function(S,k){k.layout=S,k.cy=f(S),k.target=S},bubble:function(){return!0},parent:function(S){return f(S)}};me(s,{createEmitter:function(){return this._private.emitter=new Hn(c,this),this},emitter:function(){return this._private.emitter},on:function(S,k){return this.emitter().on(S,k),this},one:function(S,k){return this.emitter().one(S,k),this},once:function(S,k){return this.emitter().one(S,k),this},removeListener:function(S,k){return this.emitter().removeListener(S,k),this},removeAllListeners:function(){return this.emitter().removeAllListeners(),this},emit:function(S,k){return this.emitter().emit(S,k),this}}),Fe.eventAliasesOn(s),a=i}else if(r==="renderer"&&e!=="null"&&e!=="base"){var h=$f("renderer","base"),d=h.prototype,y=t,g=t.prototype,p=function(){h.apply(this,arguments),y.apply(this,arguments)},m=p.prototype;for(var b in d){var w=d[b],E=g[b]!=null;if(E)return n(b);m[b]=w}for(var C in g)m[C]=g[C];d.clientFunctions.forEach(function(x){m[x]=m[x]||function(){$e("Renderer does not implement `renderer."+x+"()` on its prototype")}}),a=p}else if(r==="__proto__"||r==="constructor"||r==="prototype")return $e(r+" is an illegal type to be registered, possibly lead to prototype pollutions");return ov({map:Gf,keys:[r,e],value:a})}function $f(r,e){return uv({map:Gf,keys:[r,e]})}function Mm(r,e,t,a,n){return ov({map:Hf,keys:[r,e,t,a],value:n})}function Lm(r,e,t,a){return uv({map:Hf,keys:[r,e,t,a]})}var Xs=function(){if(arguments.length===2)return $f.apply(null,arguments);else if(arguments.length===3)return Wf.apply(null,arguments);else if(arguments.length===4)return Lm.apply(null,arguments);else if(arguments.length===5)return Mm.apply(null,arguments);else $e("Invalid extension access syntax")};Ma.prototype.extension=Xs;Rm.forEach(function(r){r.extensions.forEach(function(e){Wf(r.type,e.name,e.impl)})});var Mn=function(){if(!(this instanceof Mn))return new Mn;this.length=0},Lt=Mn.prototype;Lt.instanceString=function(){return"stylesheet"};Lt.selector=function(r){var e=this.length++;return this[e]={selector:r,properties:[]},this};Lt.css=function(r,e){var t=this.length-1;if(ge(r))this[t].properties.push({name:r,value:e});else if(Ie(r)){var a=r,n=Object.keys(a);for(var i=0;i<n.length;i++){var s=n[i],o=a[s];if(o==null)continue;var u=or.properties[s]||or.properties[Ln(s)];if(u==null)continue;var l=u.name,v=o;this[t].properties.push({name:l,value:v})}}return this};Lt.style=Lt.css;Lt.generateStyle=function(r){var e=new or(r);return this.appendToStyle(e)};Lt.appendToStyle=function(r){for(var e=0;e<this.length;e++){var t=this[e],{selector:a,properties:n}=t;r.selector(a);for(var i=0;i<n.length;i++){var s=n[i];r.css(s.name,s.value)}}return r};var Im="3.34.0",Re=function(e){if(e===void 0)e={};if(Ie(e))return new Ma(e);else if(ge(e))return Xs.apply(Xs,arguments)};Re.use=function(r){var e=Array.prototype.slice.call(arguments,1);return e.unshift(Re),r.apply(null,e),this};Re.warnings=function(r){return gv(r)};Re.version=Im;Re.stylesheet=Re.Stylesheet=Mn;
332
+ export{Re};